From c6691e77bd6f11cb4e43e4e59eb2abb15ee72a12 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 10:51:42 +0100 Subject: [PATCH 001/335] New Crowdin Translations (automated) (#38380) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 33 ++++++++++++------ app/javascript/mastodon/locales/ca.json | 2 ++ app/javascript/mastodon/locales/cy.json | 10 ------ app/javascript/mastodon/locales/da.json | 33 ++++++++++++------ app/javascript/mastodon/locales/de.json | 33 ++++++++++++------ app/javascript/mastodon/locales/el.json | 33 ++++++++++++------ app/javascript/mastodon/locales/en-GB.json | 8 ----- app/javascript/mastodon/locales/eo.json | 1 - app/javascript/mastodon/locales/es-AR.json | 33 ++++++++++++------ app/javascript/mastodon/locales/es-MX.json | 33 ++++++++++++------ app/javascript/mastodon/locales/es.json | 10 ------ app/javascript/mastodon/locales/fi.json | 33 ++++++++++++------ app/javascript/mastodon/locales/fo.json | 5 --- app/javascript/mastodon/locales/fr-CA.json | 13 ++----- app/javascript/mastodon/locales/fr.json | 13 ++----- app/javascript/mastodon/locales/ga.json | 33 ++++++++++++------ app/javascript/mastodon/locales/gl.json | 20 +++++------ app/javascript/mastodon/locales/he.json | 13 ++----- app/javascript/mastodon/locales/hu.json | 38 +++++++++++++++------ app/javascript/mastodon/locales/is.json | 33 ++++++++++++------ app/javascript/mastodon/locales/it.json | 33 ++++++++++++------ app/javascript/mastodon/locales/ko.json | 3 -- app/javascript/mastodon/locales/nan-TW.json | 10 ------ app/javascript/mastodon/locales/nl.json | 10 ------ app/javascript/mastodon/locales/nn.json | 10 ------ app/javascript/mastodon/locales/no.json | 4 --- app/javascript/mastodon/locales/oc.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 33 +++++++++++++----- app/javascript/mastodon/locales/pt-PT.json | 10 ------ app/javascript/mastodon/locales/sq.json | 37 ++++++++++++++------ app/javascript/mastodon/locales/sv.json | 10 ++---- app/javascript/mastodon/locales/tr.json | 13 ++----- app/javascript/mastodon/locales/vi.json | 33 ++++++++++++------ app/javascript/mastodon/locales/zh-CN.json | 33 ++++++++++++------ app/javascript/mastodon/locales/zh-TW.json | 33 ++++++++++++------ config/locales/ca.yml | 1 + config/locales/fi.yml | 1 + config/locales/hu.yml | 8 +++-- config/locales/sv.yml | 1 + 39 files changed, 414 insertions(+), 300 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index aa510b681f25fa..888834b3b70ef2 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -141,34 +141,39 @@ "account.unmute": "Не ігнараваць @{name}", "account.unmute_notifications_short": "Апавяшчаць", "account.unmute_short": "Не ігнараваць", + "account_edit.bio.edit_label": "Змяніць апісанне", + "account_edit.bio.label": "хто я", "account_edit.bio.placeholder": "Коратка апішыце сябе, каб дапамагчы іншым пазнаць Вас.", "account_edit.bio.title": "Хто я", "account_edit.bio_modal.add_title": "Апісаць сябе", "account_edit.bio_modal.edit_title": "Змяніць апісанне", - "account_edit.button.add": "Дадаць {item}", - "account_edit.button.delete": "Выдаліць {item}", - "account_edit.button.edit": "Змяніць {item}", "account_edit.column_button": "Гатова", "account_edit.column_title": "Рэдагаваць профіль", - "account_edit.custom_fields.name": "поле", + "account_edit.custom_fields.add_label": "Дадаць поле", + "account_edit.custom_fields.edit_label": "Рэдагаваць поле", "account_edit.custom_fields.placeholder": "Дадайце свае займеннікі, знешнія спасылкі ці нешта іншае, чым Вы хацелі б падзяліцца.", "account_edit.custom_fields.reorder_button": "Змяніць парадак палёў", "account_edit.custom_fields.tip_content": "Вы можаце лёгка дадаць даверу да свайго ўліковага запісу Mastodon пацвярджэннем спасылак на любы з Вашых сайтаў.", "account_edit.custom_fields.tip_title": "Падказка: Дадаванне пацверджаных спасылак", "account_edit.custom_fields.title": "Адвольныя палі", "account_edit.custom_fields.verified_hint": "Як мне дадаць пацверджаную спасылку?", + "account_edit.display_name.add_label": "Дадаць бачнае імя", + "account_edit.display_name.edit_label": "Рэдагаваць бачнае імя", "account_edit.display_name.placeholder": "Вашае бачнае імя — гэта імя, якое іншыя людзі бачаць у Вашым профілі і ў стужках.", "account_edit.display_name.title": "Бачнае імя", - "account_edit.featured_hashtags.item": "хэштэгі", + "account_edit.featured_hashtags.edit_label": "Дадаць хэштэгі", "account_edit.featured_hashtags.placeholder": "Дапамажыце іншым зразумець, якія тэмы Вас цікавяць, і атрымаць доступ да іх.", "account_edit.featured_hashtags.title": "Выбраныя хэштэгі", + "account_edit.field_actions.delete": "Выдаліць поле", + "account_edit.field_actions.edit": "Рэдагаваць поле", "account_edit.field_delete_modal.confirm": "Вы ўпэўненыя, што хочаце выдаліць гэтае адвольнае поле? Гэтае дзеянне будзе незваротным.", "account_edit.field_delete_modal.delete_button": "Выдаліць", "account_edit.field_delete_modal.title": "Выдаліць адвольнае поле?", "account_edit.field_edit_modal.add_title": "Дадаць адвольнае поле", + "account_edit.field_edit_modal.discard_confirm": "Адхіліць", + "account_edit.field_edit_modal.discard_message": "У Вас ёсць незахаваныя змены. Вы сапраўды хочаце адхіліць іх?", "account_edit.field_edit_modal.edit_title": "Рэдагаваць адвольнае поле", - "account_edit.field_edit_modal.limit_header": "Перавышаная рэкамендаваная колькасць сімвалаў", - "account_edit.field_edit_modal.limit_message": "Карыстальнікі мабільных прылад могуць не ўбачыць Вашае поле цалкам.", + "account_edit.field_edit_modal.limit_warning": "Перавышаны рэкамендаваны ліміт сімвалаў. Карыстальнікі мабільных прылад могуць не пабачыць Вашае поле цалкам.", "account_edit.field_edit_modal.link_emoji_warning": "Мы раім не ўжываць адвольныя эмодзі разам з url-спасылкамі. Адвольныя палі, якія ўтрымліваюць і тое, і другое, будуць адлюстраваныя выключна як тэкст, а не спасылкі, каб не блытаць карыстальнікаў.", "account_edit.field_edit_modal.name_hint": "Напрыклад, \"Асабісты Сайт\"", "account_edit.field_edit_modal.name_label": "Назва", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Рэдагаваць альт. тэкст", "account_edit.image_edit.remove_button": "Прыбраць відарыс", "account_edit.image_edit.replace_button": "Замяніць відарыс", + "account_edit.item_list.delete": "Выдаліць {name}", + "account_edit.item_list.edit": "Рэдагаваць {name}", "account_edit.name_modal.add_title": "Дадаць бачнае імя", "account_edit.name_modal.edit_title": "Змяніць бачнае імя", "account_edit.profile_tab.button_label": "Змяніць", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Перацягн. сюды, каб запамп.", "account_edit.upload_modal.step_upload.header": "Выбраць відарыс", "account_edit.upload_modal.step_upload.hint": "Фармату WEBP, PNG, GIF або JPG, да {limit} МБ.{br}Відарыс будзе сціснуты да памеру {width}x{height} пікселяў.", - "account_edit.upload_modal.title_add": "Дадаць фота профілю", - "account_edit.upload_modal.title_replace": "Замяніць фота профілю", + "account_edit.upload_modal.title_add.avatar": "Дадаць фота профілю", + "account_edit.upload_modal.title_add.header": "Дадаць фота вокладкі", + "account_edit.upload_modal.title_replace.avatar": "Замяніць фота профілю", + "account_edit.upload_modal.title_replace.header": "Замяніць фота вокладкі", "account_edit.verified_modal.details": "Дадайце даверу да Вашага профілю Mastodon, пацвярджэннем спасылак на ўласныя сайты. Вось як гэта працуе:", "account_edit.verified_modal.invisible_link.details": "Дадайце спасылку ў свой загаловак. Важнай часткай з'яўляецца rel=\"me\", яна прадухіляе выдачу сябе за іншую асобу на сайтах з карыстальніцкім кантэнтам. Вы нават можаце выкарыстоўваць тэг link у загалоўку старонкі замест {tag}, але HTML код павінен быць даступным без выканання JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Як мне зрабіць спасылку нябачнай?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Дадаць свой сайт як адвольнае поле", "account_edit.verified_modal.title": "Як дадаць пацверджаную спасылку", "account_edit_tags.add_tag": "Дадаць #{tagName}", - "account_edit_tags.column_title": "Змяніць выбраныя хэштэгі", + "account_edit_tags.column_title": "Рэдагаваць тэгі", "account_edit_tags.help_text": "Выбраныя хэштэгі дапамагаюць карыстальнікам знаходзіць Ваш профіль і ўзаемадзейнічаць з ім. Яны дзейнічаюць як фільтры пры праглядзе актыўнасці на Вашай старонцы.", + "account_edit_tags.max_tags_reached": "Вы выкарысталі максімальную колькасць рэкамендаваных хэштэгаў.", "account_edit_tags.search_placeholder": "Увядзіце хэштэг…", "account_edit_tags.suggestions": "Прапановы:", "account_edit_tags.tag_status_count": "{count, plural, one {допіс} few {допісы} many {допісаў} other {допісаў}}", + "account_list.total": "{total, plural,one {# уліковы запіс} few{# уліковыя запісы} other {# уліковых запісаў}}", "account_note.placeholder": "Націсніце, каб дадаць нататку", "admin.dashboard.daily_retention": "Штодзённы паказчык утрымання карыстальнікаў пасля рэгістрацыі", "admin.dashboard.monthly_retention": "Штомесячны паказчык утрымання карыстальнікаў пасля рэгістрацыі", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "На каго падпісацца", "followed_tags": "Падпіскі на хэштэгі", "followers.hide_other_followers": "Гэты карыстальнік вырашыў не паказваць сваіх іншых падпісчыкаў", + "followers.title": "Падпісаны(-ая) на {name}", "following.hide_other_following": "Гэты карыстальнік вырашыў не паказваць свае іншыя падпіскі", + "following.title": "Падпісаны(-ая) {name}", "footer.about": "Пра нас", "footer.about_mastodon": "Пра Mastodon", "footer.about_server": "Пра {domain}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 08b644dd521959..5e8e42371ec7de 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -205,6 +205,7 @@ "closed_registrations_modal.find_another_server": "Troba un altre servidor", "closed_registrations_modal.preamble": "Mastodon és descentralitzat. Per tant, tinguis on tinguis el compte, seràs capaç de seguir i interactuar amb tothom des d'aquest servidor. Fins i tot pots tenir el compte en el teu propi servidor!", "closed_registrations_modal.title": "Registrant-se a Mastodon", + "collections.account_count": "{count, plural, one {# compte} other {# comptes}}", "collections.collection_description": "Descripció", "collections.collection_name": "Nom", "collections.collection_topic": "Tema", @@ -213,6 +214,7 @@ "collections.delete_collection": "Elimina la coŀlecció", "collections.description_length_hint": "Límit de 100 caràcters", "collections.error_loading_collections": "Hi ha hagut un error en carregar les vostres coŀleccions.", + "collections.last_updated_at": "Última actualització: {date}", "collections.mark_as_sensitive": "Marcar com a sensible", "collections.mark_as_sensitive_hint": "Amaga la descripció i els comptes de la coŀlecció rere un avís de contingut. El nom de la coŀlecció serà encara visible.", "collections.no_collections_yet": "Encara no hi ha coŀleccions.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index ccb9375d7f44a9..637534fa1e5171 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Cyflwyniad", "account_edit.bio_modal.add_title": "Ychwanegu cyflwyniad", "account_edit.bio_modal.edit_title": "Golygu'r cyflwyniad", - "account_edit.button.add": "Ychwanegu {item}", - "account_edit.button.delete": "Dileu {item}", - "account_edit.button.edit": "Golygu {item}", "account_edit.column_button": "Gorffen", "account_edit.column_title": "Golygu Proffil", - "account_edit.custom_fields.name": "maes", "account_edit.custom_fields.placeholder": "Ychwanegwch eich rhagenwau, dolenni allanol, neu unrhyw beth arall hoffech ei rannu.", "account_edit.custom_fields.reorder_button": "Ail-drefnu meysydd", "account_edit.custom_fields.tip_content": "Gallwch chi ychwanegu hygrededd at eich cyfrif Mastodon yn hawdd trwy wirio dolenni i unrhyw wefannau rydych chi'n berchen arnyn nhw.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Sut ydw i'n ychwanegu dolen wedi'i gwirio?", "account_edit.display_name.placeholder": "Eich enw dangos yw sut mae'ch enw'n ymddangos ar eich proffil ac mewn llinellau amser.", "account_edit.display_name.title": "Enw dangos", - "account_edit.featured_hashtags.item": "hashnodau", "account_edit.featured_hashtags.placeholder": "Helpwch eraill i adnabod, a chael mynediad cyflym at eich hoff bynciau.", "account_edit.featured_hashtags.title": "Hashnodau dan sylw", "account_edit.field_delete_modal.confirm": "Ydych chi'n siŵr eich bod chi eisiau dileu'r maes cyfaddas hwn? Does dim modd dadwneud y weithred hon.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Dileu maes cyfaddas?", "account_edit.field_edit_modal.add_title": "Ychwanegu maes cyfaddas", "account_edit.field_edit_modal.edit_title": "Golygu maes cyfaddas", - "account_edit.field_edit_modal.limit_header": "Wedi mynd dros y terfyn nodau sy'n cael eu hargymell", - "account_edit.field_edit_modal.limit_message": "Efallai na fydd defnyddwyr symudol yn gweld eich maes yn llawn.", "account_edit.field_edit_modal.link_emoji_warning": "Rydym yn argymell yn erbyn defnyddio emoji personol ar y cyd ag URLau. Bydd meysydd personol sy'n cynnwys y ddau yn cael eu harddangos fel testun yn unig yn hytrach nag fel dolen, er mwyn atal dryswch ymhlith defnyddwyr.", "account_edit.field_edit_modal.name_hint": "e.e. “Gwefan bersonol”", "account_edit.field_edit_modal.url_warning": "I ychwanegu dolen, cofiwch gynnwys {protocol} ar y dechrau.", @@ -218,8 +211,6 @@ "account_edit.upload_modal.step_upload.dragging": "Gollwng i lwytho i fyny", "account_edit.upload_modal.step_upload.header": "Dewiswch ddelwedd", "account_edit.upload_modal.step_upload.hint": "Fformat WEBP, PNG, GIF neu JPG, hyd at {limit}MB.{br}Bydd y ddelwedd yn cael ei haddasu i {width}x{height}px.", - "account_edit.upload_modal.title_add": "Ychwanegu llun proffil", - "account_edit.upload_modal.title_replace": "Amnewid llun proffil", "account_edit.verified_modal.details": "Ychwanegwch hygrededd at eich proffil Mastodon trwy wirio dolenni i wefannau personol. Dyma sut mae'n gweithio:", "account_edit.verified_modal.invisible_link.details": "Ychwanegwch y ddolen at eich pennyn. Y rhan bwysig yw rel=\"me\" sy'n atal dynwared ar wefannau gyda chynnwys sy'n cael ei gynhyrchu gan ddefnyddwyr. Gallwch hyd yn oed ddefnyddio tag dolen ym mhennyn y dudalen yn lle {tag}, ond rhaid bod yr HTML yn hygyrch ac heb weithredu JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Sut ydw i'n gwneud y ddolen yn anweledig?", @@ -228,7 +219,6 @@ "account_edit.verified_modal.step2.header": "Ychwanegwch eich gwefan fel maes cyfaddas", "account_edit.verified_modal.title": "Sut i ychwanegu dolen wedi'i gwirio", "account_edit_tags.add_tag": "Ychwanegu #{tagName}", - "account_edit_tags.column_title": "Golygu hashnodau dan sylw", "account_edit_tags.help_text": "Mae hashnodau dan sylw yn helpu defnyddwyr i ddarganfod a rhyngweithio â'ch proffil. Maen nhw'n ymddangos fel hidlwyr ar olwg Gweithgaredd eich tudalen Proffil.", "account_edit_tags.search_placeholder": "Rhowch hashnod…", "account_edit_tags.suggestions": "Awgrymiadau:", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 8eb992fd4ed262..512f9cbdf9b306 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -141,34 +141,39 @@ "account.unmute": "Vis @{name} igen", "account.unmute_notifications_short": "Vis notifikationer igen", "account.unmute_short": "Vis igen", + "account_edit.bio.edit_label": "Rediger bio", + "account_edit.bio.label": "bio", "account_edit.bio.placeholder": "Tilføj en kort introduktion, så andre kan få et indtryk af, hvem du er.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Tilføj bio", "account_edit.bio_modal.edit_title": "Rediger bio", - "account_edit.button.add": "Tilføj {item}", - "account_edit.button.delete": "Slet {item}", - "account_edit.button.edit": "Rediger {item}", "account_edit.column_button": "Færdig", "account_edit.column_title": "Rediger profil", - "account_edit.custom_fields.name": "felt", + "account_edit.custom_fields.add_label": "Tilføj felt", + "account_edit.custom_fields.edit_label": "Rediger felt", "account_edit.custom_fields.placeholder": "Tilføj dine pronominer, eksterne links eller andet, du gerne vil dele.", "account_edit.custom_fields.reorder_button": "Omsorter felter", "account_edit.custom_fields.tip_content": "Du kan nemt øge troværdigheden af din Mastodon-konto ved at verificere links til alle websteder, du ejer.", "account_edit.custom_fields.tip_title": "Tip: Tilføjelse af bekræftede links", "account_edit.custom_fields.title": "Brugerdefinerede felter", "account_edit.custom_fields.verified_hint": "Hvordan tilføjer jeg et bekræftet link?", + "account_edit.display_name.add_label": "Tilføj visningsnavn", + "account_edit.display_name.edit_label": "Rediger visningsnavn", "account_edit.display_name.placeholder": "Dit visningsnavn er det navn, der vises på din profil og i tidslinjer.", "account_edit.display_name.title": "Visningsnavn", - "account_edit.featured_hashtags.item": "hashtags", + "account_edit.featured_hashtags.edit_label": "Tilføj hashtags", "account_edit.featured_hashtags.placeholder": "Hjælp andre med at identificere og få hurtig adgang til dine yndlingsemner.", "account_edit.featured_hashtags.title": "Fremhævede hashtags", + "account_edit.field_actions.delete": "Slet felt", + "account_edit.field_actions.edit": "Rediger felt", "account_edit.field_delete_modal.confirm": "Er du sikker på, at du vil slette dette brugerdefinerede felt? Denne handling kan ikke fortrydes.", "account_edit.field_delete_modal.delete_button": "Slet", "account_edit.field_delete_modal.title": "Slet brugerdefineret felt?", "account_edit.field_edit_modal.add_title": "Tilføj brugerdefineret felt", + "account_edit.field_edit_modal.discard_confirm": "Kassér", + "account_edit.field_edit_modal.discard_message": "Du har ændringer, der ikke er gemt. Er du sikker på, at du vil kassere dem?", "account_edit.field_edit_modal.edit_title": "Rediger brugerdefineret felt", - "account_edit.field_edit_modal.limit_header": "Anbefalet tegngrænse overskredet", - "account_edit.field_edit_modal.limit_message": "Mobilbrugere kan muligvis ikke se hele dit felt.", + "account_edit.field_edit_modal.limit_warning": "Anbefalet tegngrænse overskredet. Mobilbrugere kan muligvis ikke se hele dit felt.", "account_edit.field_edit_modal.link_emoji_warning": "Vi fraråder brug af brugerdefinerede emoji i kombination med url'er. Brugerdefinerede felter, der indeholder begge dele, vises kun som tekst i stedet for som et link for at undgå forvirring hos brugerne.", "account_edit.field_edit_modal.name_hint": "F.eks. “Personligt websted”", "account_edit.field_edit_modal.name_label": "Etiket", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Rediger alt-tekst", "account_edit.image_edit.remove_button": "Fjern billede", "account_edit.image_edit.replace_button": "Erstat billede", + "account_edit.item_list.delete": "Slet {name}", + "account_edit.item_list.edit": "Rediger {name}", "account_edit.name_modal.add_title": "Tilføj visningsnavn", "account_edit.name_modal.edit_title": "Rediger visningsnavn", "account_edit.profile_tab.button_label": "Tilpas", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Slip for at uploade", "account_edit.upload_modal.step_upload.header": "Vælg et billede", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eller JPG-format, op til {limit} MB.{br}Billede vil blive skaleret til {width}x{height} px.", - "account_edit.upload_modal.title_add": "Tilføj profilfoto", - "account_edit.upload_modal.title_replace": "Erstat profilfoto", + "account_edit.upload_modal.title_add.avatar": "Tilføj profilfoto", + "account_edit.upload_modal.title_add.header": "Tilføj coverfoto", + "account_edit.upload_modal.title_replace.avatar": "Erstat profilfoto", + "account_edit.upload_modal.title_replace.header": "Erstat coverfoto", "account_edit.verified_modal.details": "Øg troværdigheden af din Mastodon-profil ved at verificere links til personlige websteder. Sådan fungerer det:", "account_edit.verified_modal.invisible_link.details": "Føj linket til din header. Det vigtige er rel=\"me\", som forhindrer imitatorer på websteder med brugergenereret indhold. Du kan endda bruge et link-tag i sidens header i stedet for {tag}, men HTML-koden skal være tilgængelig uden at afvikle JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Hvordan gør jeg linket usynligt?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Tilføj dit websted som et brugerdefineret felt", "account_edit.verified_modal.title": "Sådan tilføjes et bekræftet link", "account_edit_tags.add_tag": "Tilføj #{tagName}", - "account_edit_tags.column_title": "Rediger fremhævede hashtags", + "account_edit_tags.column_title": "Rediger etiket", "account_edit_tags.help_text": "Fremhævede hashtags hjælper brugere med at finde og interagere med din profil. De vises som filtre i aktivitetsvisningen på din profilside.", + "account_edit_tags.max_tags_reached": "Du har nået det maksimale antal fremhævede hashtags.", "account_edit_tags.search_placeholder": "Angiv et hashtag…", "account_edit_tags.suggestions": "Forslag:", "account_edit_tags.tag_status_count": "{count, plural, one {# indlæg} other {# indlæg}}", + "account_list.total": "{total, plural, one {# konto} other {# konti}}", "account_note.placeholder": "Klik for at tilføje notat", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding", "admin.dashboard.monthly_retention": "Brugerfastholdelsesrate pr. måned efter tilmelding", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Profiler, du kan følge", "followed_tags": "Hashtags, som følges", "followers.hide_other_followers": "Denne bruger har valgt ikke at gøre sine øvrige følgere synlige", + "followers.title": "Følger {name}", "following.hide_other_following": "Denne bruger har valgt at skjule resten af sine fulgte konti", + "following.title": "Følges af {name}", "footer.about": "Om", "footer.about_mastodon": "Om Mastodon", "footer.about_server": "Om {domain}", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index a0f9b9f06b18b0..0346c0b0171bbb 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -141,34 +141,39 @@ "account.unmute": "Stummschaltung von @{name} aufheben", "account.unmute_notifications_short": "Stummschaltung der Benachrichtigungen aufheben", "account.unmute_short": "Stummschaltung aufheben", + "account_edit.bio.edit_label": "Biografie bearbeiten", + "account_edit.bio.label": "Biografie", "account_edit.bio.placeholder": "Gib anderen einen Einblick über dich, damit sie wissen, wer du bist.", "account_edit.bio.title": "Über mich", "account_edit.bio_modal.add_title": "Biografie hinzufügen", "account_edit.bio_modal.edit_title": "Biografie bearbeiten", - "account_edit.button.add": "{item} hinzufügen", - "account_edit.button.delete": "{item} löschen", - "account_edit.button.edit": "{item} bearbeiten", "account_edit.column_button": "Erledigt", "account_edit.column_title": "Profil bearbeiten", - "account_edit.custom_fields.name": "Feld", + "account_edit.custom_fields.add_label": "Zusatzfeld hinzufügen", + "account_edit.custom_fields.edit_label": "Zusatzfeld bearbeiten", "account_edit.custom_fields.placeholder": "Ergänze deine Pronomen, weiterführenden Links oder etwas anderes, das du teilen möchtest.", "account_edit.custom_fields.reorder_button": "Felder neu anordnen", "account_edit.custom_fields.tip_content": "Du kannst deine Echtheit im Mastodon-Profil beweisen, wenn du verifizierte Links zu deinen Websites bereitstellst.", "account_edit.custom_fields.tip_title": "Tipp: Ergänze verifizierte Links", "account_edit.custom_fields.title": "Zusatzfelder", "account_edit.custom_fields.verified_hint": "Wie erstelle ich einen verifizierten Link?", + "account_edit.display_name.add_label": "Anzeigenamen hinzufügen", + "account_edit.display_name.edit_label": "Anzeigenamen bearbeiten", "account_edit.display_name.placeholder": "Dein Anzeigename wird auf deinem Profil und in Timelines angezeigt.", "account_edit.display_name.title": "Anzeigename", - "account_edit.featured_hashtags.item": "Hashtags", + "account_edit.featured_hashtags.edit_label": "Hashtags hinzufügen", "account_edit.featured_hashtags.placeholder": "Präsentiere deine Lieblingsthemen und ermögliche anderen einen schnellen Zugriff darauf.", "account_edit.featured_hashtags.title": "Vorgestellte Hashtags", + "account_edit.field_actions.delete": "Zusatzfeld löschen", + "account_edit.field_actions.edit": "Zusatzfeld bearbeiten", "account_edit.field_delete_modal.confirm": "Möchtest du dieses Zusatzfeld wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.", "account_edit.field_delete_modal.delete_button": "Löschen", "account_edit.field_delete_modal.title": "Zusatzfeld löschen?", "account_edit.field_edit_modal.add_title": "Zusatzfeld hinzufügen", + "account_edit.field_edit_modal.discard_confirm": "Verwerfen", + "account_edit.field_edit_modal.discard_message": "Du hast Änderungen vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?", "account_edit.field_edit_modal.edit_title": "Zusatzfeld bearbeiten", - "account_edit.field_edit_modal.limit_header": "Empfohlenes Zeichenlimit überschritten", - "account_edit.field_edit_modal.limit_message": "Auf mobilen Endgeräten wird das Feld möglicherweise nicht vollständig angezeigt.", + "account_edit.field_edit_modal.limit_warning": "Empfohlenes Zeichenlimit überschritten. Auf mobilen Endgeräten wird der Inhalt möglicherweise nicht vollständig angezeigt.", "account_edit.field_edit_modal.link_emoji_warning": "Das Verwenden von Emojis wird bei URLs nicht empfohlen. Die Zusatzfelder werden bei dieser Kombination nur als Text und nicht als Link dargestellt.", "account_edit.field_edit_modal.name_hint": "z. B. „Meine Website“", "account_edit.field_edit_modal.name_label": "Beschriftung", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Bildbeschreibung bearbeiten", "account_edit.image_edit.remove_button": "Bild entfernen", "account_edit.image_edit.replace_button": "Bild ersetzen", + "account_edit.item_list.delete": "{name} löschen", + "account_edit.item_list.edit": "{name} bearbeiten", "account_edit.name_modal.add_title": "Anzeigenamen hinzufügen", "account_edit.name_modal.edit_title": "Anzeigenamen bearbeiten", "account_edit.profile_tab.button_label": "Anpassen", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Zum Hochladen hier ablegen", "account_edit.upload_modal.step_upload.header": "Wähle ein Bild", "account_edit.upload_modal.step_upload.hint": "WebP, PNG, GIF oder JPG. Höchstens {limit} MB groß.{br}Das Bild wird auf {width}x{height} px skaliert.", - "account_edit.upload_modal.title_add": "Profilbild hinzufügen", - "account_edit.upload_modal.title_replace": "Profilbild ändern", + "account_edit.upload_modal.title_add.avatar": "Profilbild hinzufügen", + "account_edit.upload_modal.title_add.header": "Titelbild hinzufügen", + "account_edit.upload_modal.title_replace.avatar": "Profilbild ersetzen", + "account_edit.upload_modal.title_replace.header": "Titelbild ersetzen", "account_edit.verified_modal.details": "Beweise die Echtheit deines Mastodon-Profils, indem du verifizierte Links zu deinen persönlichen Websites ergänzt. So funktioniert’s:", "account_edit.verified_modal.invisible_link.details": "Füge den Link in den Header ein. Der wichtige Teil ist rel=\"me\". Du kannst auch den Tag link im Header (statt {tag}) verwenden, jedoch muss die Internetseite ohne JavaScript abrufbar sein.", "account_edit.verified_modal.invisible_link.summary": "Wie blende ich den Link aus?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Ergänze deine Website in ein Zusatzfeld", "account_edit.verified_modal.title": "So erstellst du einen verifizierten Link", "account_edit_tags.add_tag": "#{tagName} hinzufügen", - "account_edit_tags.column_title": "Vorgestellte Hashtags bearbeiten", + "account_edit_tags.column_title": "Hashtags bearbeiten", "account_edit_tags.help_text": "Vorgestellte Hashtags können dabei helfen, dein Profil zu entdecken und besser mit dir zu interagieren. Sie dienen als Filter in der Aktivitätenübersicht deines Profils.", + "account_edit_tags.max_tags_reached": "Du hast die maximale Anzahl an vorgestellten Hashtags erreicht.", "account_edit_tags.search_placeholder": "Gib einen Hashtag ein …", "account_edit_tags.suggestions": "Vorschläge:", "account_edit_tags.tag_status_count": "{count, plural, one {# Beitrag} other {# Beiträge}}", + "account_list.total": "{total, plural, one {# Konto} other {# Konten}}", "account_note.placeholder": "Klicken, um private Anmerkung hinzuzufügen", "admin.dashboard.daily_retention": "Verweildauer der Nutzer*innen pro Tag seit der Registrierung", "admin.dashboard.monthly_retention": "Verweildauer der Nutzer*innen pro Monat seit der Registrierung", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Wem folgen?", "followed_tags": "Abonnierte Hashtags", "followers.hide_other_followers": "Dieses Profil möchte die weiteren Follower geheim halten", + "followers.title": "Folgt {name}", "following.hide_other_following": "Dieses Profil möchte die gefolgten Profile geheim halten", + "following.title": "Gefolgt von {name}", "footer.about": "Über", "footer.about_mastodon": "Über Mastodon", "footer.about_server": "Über {domain}", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 16b51552fd8612..a4e907780132b6 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -141,34 +141,39 @@ "account.unmute": "Άρση σίγασης @{name}", "account.unmute_notifications_short": "Σίγαση ειδοποιήσεων", "account.unmute_short": "Κατάργηση σίγασης", + "account_edit.bio.edit_label": "Επεξεργασία βιογραφικού", + "account_edit.bio.label": "βιογραφικό", "account_edit.bio.placeholder": "Προσθέστε μια σύντομη εισαγωγή για να βοηθήσετε άλλους να σας αναγνωρίσουν.", "account_edit.bio.title": "Βιογραφικό", "account_edit.bio_modal.add_title": "Προσθήκη βιογραφικού", "account_edit.bio_modal.edit_title": "Επεξεργασία βιογραφικού", - "account_edit.button.add": "Προσθήκη {item}", - "account_edit.button.delete": "Διαγραφή {item}", - "account_edit.button.edit": "Επεξεργασία {item}", "account_edit.column_button": "Έγινε", "account_edit.column_title": "Επεξεργασία Προφίλ", - "account_edit.custom_fields.name": "πεδίο", + "account_edit.custom_fields.add_label": "Προσθήκη πεδίου", + "account_edit.custom_fields.edit_label": "Επεξεργασία πεδίου", "account_edit.custom_fields.placeholder": "Προσθέστε τις αντωνυμίες σας, εξωτερικούς συνδέσμους ή οτιδήποτε άλλο θέλετε να μοιραστείτε.", "account_edit.custom_fields.reorder_button": "Αναδιάταξη πεδίων", "account_edit.custom_fields.tip_content": "Μπορείς εύκολα να προσθέσεις αξιοπιστία στον Mastodon λογαριασμό σου επαληθεύοντας συνδέσμους σε οποιεσδήποτε ιστοσελίδες κατέχεις.", "account_edit.custom_fields.tip_title": "Συμβουλή: Προσθήκη επαληθευμένων συνδέσμων", "account_edit.custom_fields.title": "Προσαρμοσμένα πεδία", "account_edit.custom_fields.verified_hint": "Πώς προσθέτω έναν επαληθευμένο σύνδεσμο;", + "account_edit.display_name.add_label": "Προσθήκη εμφανιζόμενου ονόματος", + "account_edit.display_name.edit_label": "Επεξεργασία εμφανιζόμενου ονόματος", "account_edit.display_name.placeholder": "Το εμφανιζόμενο όνομα σας είναι πως εμφανίζεται το όνομά σας στο προφίλ σας και στα χρονοδιαγράμματα.", "account_edit.display_name.title": "Εμφανιζόμενο όνομα", - "account_edit.featured_hashtags.item": "ετικέτες", + "account_edit.featured_hashtags.edit_label": "Προσθήκη ετικετών", "account_edit.featured_hashtags.placeholder": "Βοηθήστε τους άλλους να εντοπίσουν και να έχουν γρήγορη πρόσβαση στα αγαπημένα σας θέματα.", "account_edit.featured_hashtags.title": "Αναδεδειγμένες ετικέτες", + "account_edit.field_actions.delete": "Διαγραφή πεδίου", + "account_edit.field_actions.edit": "Επεξεργασία πεδίου", "account_edit.field_delete_modal.confirm": "Σίγουρα θέλετε να διαγράψετε αυτό το προσαρμοσμένο πεδίο; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.", "account_edit.field_delete_modal.delete_button": "Διαγραφή", "account_edit.field_delete_modal.title": "Διαγραφή προσαρμοσμένου πεδίου;", "account_edit.field_edit_modal.add_title": "Προσθήκη προσαρμοσμένου πεδίου", + "account_edit.field_edit_modal.discard_confirm": "Απόρριψη", + "account_edit.field_edit_modal.discard_message": "Έχετε μη αποθηκευμένες αλλαγές. Σίγουρα θέλετε να τις απορρίψετε;", "account_edit.field_edit_modal.edit_title": "Επεξεργασία προσαρμοσμένου πεδίου", - "account_edit.field_edit_modal.limit_header": "Ξεπεράστηκε το συνιστώμενο όριο χαρακτήρων", - "account_edit.field_edit_modal.limit_message": "Οι χρήστες κινητών ενδέχεται να μην βλέπουν πλήρως το πεδίο σας.", + "account_edit.field_edit_modal.limit_warning": "Υπέρβαση του συνιστώμενου ορίου χαρακτήρων. Οι χρήστες κινητών ενδέχεται να μην βλέπουν το πεδίο σας πλήρες.", "account_edit.field_edit_modal.link_emoji_warning": "Δεν συνιστούμε τη χρήση προσαρμοσμένων emoji σε συνδυασμό με URL. Τα προσαρμοσμένα πεδία που περιέχουν και τα δύο θα εμφανίζονται ως κείμενο μόνο αντί ως σύνδεσμος, προκειμένου να αποφευχθεί η σύγχυση του χρήστη.", "account_edit.field_edit_modal.name_hint": "Π.χ. “Προσωπική ιστοσελίδα”", "account_edit.field_edit_modal.name_label": "Ετικέτα", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Επεξεργασία εναλλακτικού κειμένου", "account_edit.image_edit.remove_button": "Αφαίρεση εικόνας", "account_edit.image_edit.replace_button": "Αντικατάσταση εικόνας", + "account_edit.item_list.delete": "Διαγραφή {name}", + "account_edit.item_list.edit": "Επεξεργασία {name}", "account_edit.name_modal.add_title": "Προσθήκη εμφανιζόμενου ονόματος", "account_edit.name_modal.edit_title": "Επεξεργασία εμφανιζόμενου ονόματος", "account_edit.profile_tab.button_label": "Προσαρμογή", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Αποθέστε εδώ για ανέβασμα", "account_edit.upload_modal.step_upload.header": "Επιλέξτε μια εικόνα", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF ή JPG μορφή, μέχρι {limit}MB.{br}Η ανάλυση της εικόνας θα προσαρμοστεί στα {width}x{height}px.", - "account_edit.upload_modal.title_add": "Προσθήκη εικόνας προφίλ", - "account_edit.upload_modal.title_replace": "Αντικατάσταση εικόνας προφίλ", + "account_edit.upload_modal.title_add.avatar": "Προσθήκη εικόνας προφίλ", + "account_edit.upload_modal.title_add.header": "Προσθήκη εικόνας εξωφύλλου", + "account_edit.upload_modal.title_replace.avatar": "Αντικατάσταση εικόνας προφίλ", + "account_edit.upload_modal.title_replace.header": "Αντικατάσταση εικόνας εξωφύλλου", "account_edit.verified_modal.details": "Πρόσθεσε αξιοπιστία στο Mastodon προφίλ σας επαληθεύοντας συνδέσμους σε προσωπικές ιστοσελίδες. Ορίστε πως δουλεύει:", "account_edit.verified_modal.invisible_link.details": "Πρόσθεσε τον σύνδεσμο στην κεφαλίδα σου. Το σημαντικό μέρος είναι το rel=\"me\" που αποτρέπει την μίμηση σε ιστοσελίδες με περιεχόμενο παραγόμενο από χρήστες. Μπορείς ακόμα να χρησιμοποιήσεις μια ετικέτα link στην κεφαλίδα της σελίδας αντί για {tag}, αλλά η HTML πρέπει να είναι προσβάσιμη χωρίς την εκτέλεση JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Πώς κάνω αυτόν τον σύνδεσμο αόρατο;", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Πρόσθεσε την ιστοσελίδα σου ως προσαρμοσμένο πεδίο", "account_edit.verified_modal.title": "Πώς να προσθέσεις έναν επαληθευμένο σύνδεσμο", "account_edit_tags.add_tag": "Προσθήκη #{tagName}", - "account_edit_tags.column_title": "Επεξεργασία αναδεδειγμένων ετικετών", + "account_edit_tags.column_title": "Επεξεργασία Ετικετών", "account_edit_tags.help_text": "Οι αναδεδειγμένες ετικέτες βοηθούν τους χρήστες να ανακαλύψουν και να αλληλεπιδράσουν με το προφίλ σας. Εμφανίζονται ως φίλτρα στην προβολή Δραστηριότητας της σελίδας προφίλ σας.", + "account_edit_tags.max_tags_reached": "Έχετε φτάσει τον μέγιστο αριθμό των προτεινόμενων ετικετών.", "account_edit_tags.search_placeholder": "Εισάγετε μια ετικέτα…", "account_edit_tags.suggestions": "Προτάσεις:", "account_edit_tags.tag_status_count": "{count, plural, one {# ανάρτηση} other {# αναρτήσεις}}", + "account_list.total": "{total, plural, one {# λογαριασμός} other {# λογαριασμοί}}", "account_note.placeholder": "Κάνε κλικ για να προσθέσεις σημείωση", "admin.dashboard.daily_retention": "Ποσοστό χρηστών που παραμένουν μετά την εγγραφή, ανά ημέρα", "admin.dashboard.monthly_retention": "Ποσοστό χρηστών που παραμένουν μετά την εγγραφή, ανά μήνα", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Ποιον να ακολουθήσεις", "followed_tags": "Ακολουθούμενες ετικέτες", "followers.hide_other_followers": "Αυτός ο χρήστης έχει επιλέξει να μην κάνει τους άλλους ακολούθους του ορατούς", + "followers.title": "Ακολουθούν {name}", "following.hide_other_following": "Αυτός ο χρήστης έχει επιλέξει να μην κάνει τους υπόλοιπους που ακολουθεί ορατούς", + "following.title": "Ακολουθούνται από {name}", "footer.about": "Σχετικά με", "footer.about_mastodon": "Σχετικά με το Mastodon", "footer.about_server": "Σχετικά με το {domain}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 59bed6624b8a60..8946539592f418 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Add bio", "account_edit.bio_modal.edit_title": "Edit bio", - "account_edit.button.add": "Add {item}", - "account_edit.button.delete": "Delete {item}", - "account_edit.button.edit": "Edit {item}", "account_edit.column_button": "Done", "account_edit.column_title": "Edit Profile", - "account_edit.custom_fields.name": "field", "account_edit.custom_fields.placeholder": "Add your pronouns, external links, or anything else you’d like to share.", "account_edit.custom_fields.reorder_button": "Reorder fields", "account_edit.custom_fields.tip_content": "You can easily add credibility to your Mastodon account by verifying links to any websites you own.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "How do I add a verified link?", "account_edit.display_name.placeholder": "Your display name is how your name appears on your profile and in timelines.", "account_edit.display_name.title": "Display name", - "account_edit.featured_hashtags.item": "hashtags", "account_edit.featured_hashtags.placeholder": "Help others identify, and have quick access to, your favourite topics.", "account_edit.featured_hashtags.title": "Featured hashtags", "account_edit.field_delete_modal.confirm": "Are you sure you want to delete this custom field? This action can’t be undone.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Delete custom field?", "account_edit.field_edit_modal.add_title": "Add custom field", "account_edit.field_edit_modal.edit_title": "Edit custom field", - "account_edit.field_edit_modal.limit_header": "Recommended character limit exceeded", - "account_edit.field_edit_modal.limit_message": "Mobile users might not see your field in full.", "account_edit.field_edit_modal.link_emoji_warning": "We recommend against the use of custom emoji in combination with URLs. Custom fields containing both will display as text only instead of as a link, in order to prevent user confusion.", "account_edit.field_edit_modal.name_hint": "Eg “Personal website”", "account_edit.field_edit_modal.name_label": "Label", @@ -210,7 +203,6 @@ "account_edit.verified_modal.step2.header": "Add your website as a custom field", "account_edit.verified_modal.title": "How to add a verified link", "account_edit_tags.add_tag": "Add #{tagName}", - "account_edit_tags.column_title": "Edit Tags", "account_edit_tags.help_text": "Featured hashtags help users discover and interact with your profile. They appear as filters on your Profile page’s Activity view.", "account_edit_tags.search_placeholder": "Enter a hashtag…", "account_edit_tags.suggestions": "Suggestions:", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 67de7b360b1e87..81d280f38272d6 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -91,7 +91,6 @@ "account.unmute": "Malsilentigi @{name}", "account.unmute_notifications_short": "Malsilentigu sciigojn", "account.unmute_short": "Ne plu silentigi", - "account_edit.featured_hashtags.item": "kradvortoj", "account_edit.featured_hashtags.title": "Elstarigitaj kradvortoj", "account_edit.save": "Konservi", "account_edit_tags.add_tag": "Aldoni #{tagName}", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 67106dc618f975..7372b4baead4d2 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -141,34 +141,39 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications_short": "Dejar de silenciar notificaciones", "account.unmute_short": "Dejar de silenciar", + "account_edit.bio.edit_label": "Editar biografía", + "account_edit.bio.label": "biografía", "account_edit.bio.placeholder": "Agregá una breve introducción para ayudar a otras personas a identificarte.", "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Agregar biografía", "account_edit.bio_modal.edit_title": "Editar biografía", - "account_edit.button.add": "Agregar {item}", - "account_edit.button.delete": "Eliminar {item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Listo", "account_edit.column_title": "Editar perfil", - "account_edit.custom_fields.name": "campo", + "account_edit.custom_fields.add_label": "Agregar campo", + "account_edit.custom_fields.edit_label": "Editar campo", "account_edit.custom_fields.placeholder": "Agregá tus pronombres personales, enlaces externos o cualquier otra cosa que quisieras compartir.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Podés agregar fácilmente credibilidad a tu cuenta de Mastodon verificando enlaces a cualquier sitio web que tengas.", "account_edit.custom_fields.tip_title": "Consejo: Agregá enlaces verificados", "account_edit.custom_fields.title": "Campos personalizados", "account_edit.custom_fields.verified_hint": "¿Cómo agrego un enlace verificado?", + "account_edit.display_name.add_label": "Agregar nombre a mostrar", + "account_edit.display_name.edit_label": "Editar nombre a mostrar", "account_edit.display_name.placeholder": "Tu nombre a mostrar es cómo aparecerá tu nombre en tu perfil y en las líneas temporales.", "account_edit.display_name.title": "Nombre a mostrar", - "account_edit.featured_hashtags.item": "etiquetas", + "account_edit.featured_hashtags.edit_label": "Agregar etiquetas", "account_edit.featured_hashtags.placeholder": "Ayudá a otras personas a identificarte y a tener un rápido acceso a tus temas favoritos.", "account_edit.featured_hashtags.title": "Etiquetas destacadas", + "account_edit.field_actions.delete": "Eliminar campo", + "account_edit.field_actions.edit": "Editar campo", "account_edit.field_delete_modal.confirm": "¿De verdad querés eliminar este campo personalizado? Esta acción no se puede deshacer.", "account_edit.field_delete_modal.delete_button": "Eliminar", "account_edit.field_delete_modal.title": "¿Eliminar campo personalizado?", "account_edit.field_edit_modal.add_title": "Agregar campo personalizado", + "account_edit.field_edit_modal.discard_confirm": "Descartar", + "account_edit.field_edit_modal.discard_message": "Tenés cambios sin guardar. ¿De verdad querés descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_header": "Se excedió el límite de caracteres recomendado", - "account_edit.field_edit_modal.limit_message": "Es posible que los usuarios en dispositivos móviles no vean tu campo completamente.", + "account_edit.field_edit_modal.limit_warning": "Se excedió el límite recomendado de caracteres. Es posible que los usuarios en dispositivos móviles no vean tu campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "No recomendamos el uso de emojis personalizados en combinación con direcciones web. Los campos personalizados que contengan ambos solo se mostrarán como texto en lugar de como enlace, con el fin de evitar la confusión del usuario.", "account_edit.field_edit_modal.name_hint": "Por ejemplo: «Sitio web personal»", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Editar texto alternativo", "account_edit.image_edit.remove_button": "Quitar imagen", "account_edit.image_edit.replace_button": "Reemplazar imagen", + "account_edit.item_list.delete": "Eliminar {name}", + "account_edit.item_list.edit": "Editar {name}", "account_edit.name_modal.add_title": "Agregar nombre a mostrar", "account_edit.name_modal.edit_title": "Editar nombre a mostrar", "account_edit.profile_tab.button_label": "Personalizar", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Arrastrá para subir", "account_edit.upload_modal.step_upload.header": "Elegí una imagen", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, hasta {limit} MB.{br}La imagen será escalada a {width}x{height} píxeles.", - "account_edit.upload_modal.title_add": "Agregar imagen de perfil", - "account_edit.upload_modal.title_replace": "Reemplazar imagen de perfil", + "account_edit.upload_modal.title_add.avatar": "Agregar imagen de perfil", + "account_edit.upload_modal.title_add.header": "Agregar imagen de cubierta", + "account_edit.upload_modal.title_replace.avatar": "Reemplazar imagen de perfil", + "account_edit.upload_modal.title_replace.header": "Reemplazar imagen de cubierta", "account_edit.verified_modal.details": "Agregá credibilidad a tu perfil de Mastodon verificando enlaces a sitios web personales. Así es cómo funciona:", "account_edit.verified_modal.invisible_link.details": "Agregá el enlace a tu encabezado. La parte importante es rel=\"yo\" que evita la suplantación en sitios web con contenido generado por el usuario. Incluso podés usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el código HTML debe ser accesible sin ejecutar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "¿Cómo hago el enlace invisible?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Agregá tu sitio web como un campo personalizado", "account_edit.verified_modal.title": "¿Cómo agregar un enlace verificado?", "account_edit_tags.add_tag": "Agregar #{tagName}", - "account_edit_tags.column_title": "Editar etiquetas destacadas", + "account_edit_tags.column_title": "Editar etiquetas", "account_edit_tags.help_text": "Las etiquetas destacadas ayudan a los usuarios a descubrir e interactuar con tu perfil. Las etiquetas destacadas aparecen como filtros en la vista de actividad de la página de tu perfil.", + "account_edit_tags.max_tags_reached": "Alcanzaste el número máximo de etiquetas destacadas.", "account_edit_tags.search_placeholder": "Ingresá una etiqueta…", "account_edit_tags.suggestions": "Sugerencias:", "account_edit_tags.tag_status_count": "{count, plural, one {voto} other {votos}}", + "account_list.total": "{total, plural, one {# hora} other {# horas}}", "account_note.placeholder": "Hacé clic par agregar una nota", "admin.dashboard.daily_retention": "Tasa de retención de usuarios por día, después del registro", "admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes, después del registro", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "A quién seguir", "followed_tags": "Etiquetas seguidas", "followers.hide_other_followers": "Este usuario eligió no hacer visibles a sus otros seguidores", + "followers.title": "Seguiendo a {name}", "following.hide_other_following": "Este usuario eligió no hacer visibles al resto de quienes lo siguen", + "following.title": "Seguido por {name}", "footer.about": "Información", "footer.about_mastodon": "Acerca de Mastodon", "footer.about_server": "Acerca de {domain}", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 6057084391c5a9..9dd92e85859bd5 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -141,34 +141,39 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications_short": "Dejar de silenciar notificaciones", "account.unmute_short": "Dejar de silenciar", + "account_edit.bio.edit_label": "Editar biografía", + "account_edit.bio.label": "biografía", "account_edit.bio.placeholder": "Añade una breve introducción para ayudar a los demás a identificarte.", "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Añadir biografía", "account_edit.bio_modal.edit_title": "Editar biografía", - "account_edit.button.add": "Añadir {item}", - "account_edit.button.delete": "Eliminar {item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Hecho", "account_edit.column_title": "Editar perfil", - "account_edit.custom_fields.name": "campo", + "account_edit.custom_fields.add_label": "Añadir campo", + "account_edit.custom_fields.edit_label": "Editar campo", "account_edit.custom_fields.placeholder": "Añade tus pronombres, enlaces externos o cualquier otra información que quieras compartir.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Puedes añadir fácilmente credibilidad a tu cuenta de Mastodon verificando los enlaces a cualquier sitio web que poseas.", "account_edit.custom_fields.tip_title": "Consejo: Añadir enlaces verificados", "account_edit.custom_fields.title": "Campos personalizados", "account_edit.custom_fields.verified_hint": "¿Cómo agrego un enlace verificado?", + "account_edit.display_name.add_label": "Añadir nombre para mostrar", + "account_edit.display_name.edit_label": "Editar nombre para mostrar", "account_edit.display_name.placeholder": "Tu nombre de usuario es el nombre que aparece en tu perfil y en las líneas de tiempo.", "account_edit.display_name.title": "Nombre para mostrar", - "account_edit.featured_hashtags.item": "etiquetas", + "account_edit.featured_hashtags.edit_label": "Añadir etiquetas", "account_edit.featured_hashtags.placeholder": "Ayuda a otros a identificar tus temas favoritos y a acceder rápidamente a ellos.", "account_edit.featured_hashtags.title": "Etiquetas destacadas", + "account_edit.field_actions.delete": "Eliminar campo", + "account_edit.field_actions.edit": "Editar campo", "account_edit.field_delete_modal.confirm": "¿Estás seguro de que deseas eliminar este campo personalizado? Esta acción no se puede deshacer.", "account_edit.field_delete_modal.delete_button": "Eliminar", "account_edit.field_delete_modal.title": "¿Eliminar campo personalizado?", "account_edit.field_edit_modal.add_title": "Agregar campo personalizado", + "account_edit.field_edit_modal.discard_confirm": "Descartar", + "account_edit.field_edit_modal.discard_message": "Tienes cambios sin guardar. ¿Estás seguro/a de que quieres descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_header": "Se ha superado el límite de caracteres recomendado", - "account_edit.field_edit_modal.limit_message": "Es posible que los usuarios de dispositivos móviles no vean tu campo completo.", + "account_edit.field_edit_modal.limit_warning": "Se ha superado el límite de caracteres recomendado. Es posible que los usuarios de dispositivos móviles no vean el campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "No recomendamos el uso de emojis personalizados en combinación con direcciones URL. Los campos personalizados que contengan ambos se mostrarán solo como texto en lugar de como un enlace, con el fin de evitar confusiones al usuario.", "account_edit.field_edit_modal.name_hint": "Por ejemplo, «sitio web personal»", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Editar texto alternativo", "account_edit.image_edit.remove_button": "Eliminar imagen", "account_edit.image_edit.replace_button": "Reemplazar imagen", + "account_edit.item_list.delete": "Eliminar {name}", + "account_edit.item_list.edit": "Editar {name}", "account_edit.name_modal.add_title": "Añadir nombre para mostrar", "account_edit.name_modal.edit_title": "Editar nombre para mostrar", "account_edit.profile_tab.button_label": "Personalizar", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Arrastrar para subir", "account_edit.upload_modal.step_upload.header": "Elegir una imagen", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, con un tamaño máximo de {limit} MB.{br}La imagen se redimensionará a {width} x {height} píxeles.", - "account_edit.upload_modal.title_add": "Agregar foto de perfil", - "account_edit.upload_modal.title_replace": "Reemplazar foto de perfil", + "account_edit.upload_modal.title_add.avatar": "Añadir foto de perfil", + "account_edit.upload_modal.title_add.header": "Añadir foto de cabecera", + "account_edit.upload_modal.title_replace.avatar": "Reemplazar foto de perfil", + "account_edit.upload_modal.title_replace.header": "Reemplazar foto de cabecera", "account_edit.verified_modal.details": "Agrega credibilidad a tu perfil de Mastodon verificando los enlaces a sitios web personales. Así es como funciona:", "account_edit.verified_modal.invisible_link.details": "Agrega el enlace a tu encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en sitios web con contenido generado por los usuarios. Incluso puedes usar una etiqueta de enlace en el encabezado de la página en lugar de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "¿Cómo hago para que el enlace sea invisible?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Agrega tu sitio web como campo personalizado", "account_edit.verified_modal.title": "Cómo agregar un enlace verificado", "account_edit_tags.add_tag": "Añadir #{tagName}", - "account_edit_tags.column_title": "Editar etiquetas destacadas", + "account_edit_tags.column_title": "Editar etiquetas", "account_edit_tags.help_text": "Las etiquetas destacadas ayudan a los usuarios a descubrir tu perfil e interactuar con él. Aparecen como filtros en la vista Actividad de tu página de perfil.", + "account_edit_tags.max_tags_reached": "Has alcanzado el número máximo de etiquetas destacadas.", "account_edit_tags.search_placeholder": "Introduce una etiqueta…", "account_edit_tags.suggestions": "Sugerencias:", "account_edit_tags.tag_status_count": "{count, plural,one {# publicación} other {# publicaciones}}", + "account_list.total": "{total, plural,one {# cuenta} other {# cuentas}}", "account_note.placeholder": "Haz clic para añadir una nota", "admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después de unirse", "admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después de unirse", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Recomendamos seguir", "followed_tags": "Etiquetas seguidas", "followers.hide_other_followers": "Este usuario ha elegido no hacer visibles a sus otros seguidores", + "followers.title": "Siguiendo a {name}", "following.hide_other_following": "Este usuario ha elegido no hacer visible el resto de personas a las que sigue", + "following.title": "Seguido por {name}", "footer.about": "Acerca de", "footer.about_mastodon": "Acerca de Mastodon", "footer.about_server": "Acerca de {domain}", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index c04df9cfd1ade8..4d8f4caa28a266 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Añadir biografía", "account_edit.bio_modal.edit_title": "Editar biografía", - "account_edit.button.add": "Añadir {item}", - "account_edit.button.delete": "Eliminar {item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Hecho", "account_edit.column_title": "Editar perfil", - "account_edit.custom_fields.name": "campo", "account_edit.custom_fields.placeholder": "Añade tus pronombres, enlaces externos o cualquier otra cosa que quieras compartir.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Puedes añadir credibilidad fácilmente a tu cuenta de Mastodon verificando los enlaces a tus propias webs.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "¿Cómo añado un enlace verificado?", "account_edit.display_name.placeholder": "Tu nombre de usuario es el nombre que aparece en tu perfil y en las cronologías.", "account_edit.display_name.title": "Nombre para mostrar", - "account_edit.featured_hashtags.item": "etiquetas", "account_edit.featured_hashtags.placeholder": "Ayuda a otros a identificar tus temas favoritos y a acceder rápidamente a ellos.", "account_edit.featured_hashtags.title": "Etiquetas destacadas", "account_edit.field_delete_modal.confirm": "¿Estás seguro de que quieres borrar este campo personalizado? La acción no se puede deshacer.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "¿Borrar campo personalizado?", "account_edit.field_edit_modal.add_title": "Añadir campo personalizado", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_header": "Se ha sobrepasado el límite de caracteres recomendado", - "account_edit.field_edit_modal.limit_message": "Los usuarios de móviles no verán tu campo entero.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos no usar emojis personalizados combinados con enlaces. Los campos personalizados que contengan ambos solo se mostrarán como texto en vez de un enlace, para evitar confusiones.", "account_edit.field_edit_modal.name_hint": "Ej. \"Web personal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Suelta para subir", "account_edit.upload_modal.step_upload.header": "Elige una imagen", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, hasta {limit}MB.{br}La imagen será escalada a {width}x{height}px.", - "account_edit.upload_modal.title_add": "Añadir foto de perfil", - "account_edit.upload_modal.title_replace": "Reemplazar foto de perfil", "account_edit.verified_modal.details": "Añade credibilidad a tu perfil de Mastodon verificando enlaces a tus webs personales. Así es como funciona:", "account_edit.verified_modal.invisible_link.details": "Añade el enlace en el encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en webs con contenido generado por usuarios. Incluso puedes utilizar un enlace con etiqueta en el encabezado de la página en vez de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "¿Cómo puedo hacer el enlace invisible?", @@ -229,7 +220,6 @@ "account_edit.verified_modal.step2.header": "Añade tu web como un campo personalizado", "account_edit.verified_modal.title": "Cómo añadir un enlace verificado", "account_edit_tags.add_tag": "Agregar #{tagName}", - "account_edit_tags.column_title": "Editar etiquetas destacadas", "account_edit_tags.help_text": "Las etiquetas destacadas ayudan a los usuarios a descubrir e interactuar con tu perfil. Aparecen como filtros en la vista de actividad de tu página de perfil.", "account_edit_tags.search_placeholder": "Introduce una etiqueta…", "account_edit_tags.suggestions": "Sugerencias:", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index ffec8d59e851bb..0fa0d632f0e987 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -141,34 +141,39 @@ "account.unmute": "Kumoa käyttäjän @{name} mykistys", "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys", "account.unmute_short": "Kumoa mykistys", + "account_edit.bio.edit_label": "Muokkaa elämäkertaa", + "account_edit.bio.label": "elämäkerta", "account_edit.bio.placeholder": "Lisää lyhyt esittely, joka auttaa muita tunnistamaan sinut.", "account_edit.bio.title": "Elämäkerta", "account_edit.bio_modal.add_title": "Lisää elämäkerta", "account_edit.bio_modal.edit_title": "Muokkaa elämäkertaa", - "account_edit.button.add": "Lisää {item}", - "account_edit.button.delete": "Poista {item}", - "account_edit.button.edit": "Muokkaa {item}", "account_edit.column_button": "Valmis", "account_edit.column_title": "Muokkaa profiilia", - "account_edit.custom_fields.name": "kenttä", + "account_edit.custom_fields.add_label": "Lisää kenttä", + "account_edit.custom_fields.edit_label": "Muokkaa kenttää", "account_edit.custom_fields.placeholder": "Lisää pronominisi, ulkoisia linkkejä tai mitä tahansa muuta, jonka haluat jakaa.", "account_edit.custom_fields.reorder_button": "Järjestele kenttiä", "account_edit.custom_fields.tip_content": "Voit helposti lisätä Mastodon-tilisi uskottavuutta vahvistamalla mihin tahansa omistamaasi verkkosivustoon ohjaavat linkit.", "account_edit.custom_fields.tip_title": "Vinkki: Vahvistettujen linkkien lisääminen", "account_edit.custom_fields.title": "Mukautetut kentät", "account_edit.custom_fields.verified_hint": "Miten lisään vahvistetun linkin?", + "account_edit.display_name.add_label": "Lisää näyttönimi", + "account_edit.display_name.edit_label": "Muokkaa näyttönimeä", "account_edit.display_name.placeholder": "Näyttönimesi on nimi, joka näkyy profiilissasi ja aikajanoilla.", "account_edit.display_name.title": "Näyttönimi", - "account_edit.featured_hashtags.item": "aihetunnisteet", + "account_edit.featured_hashtags.edit_label": "Lisää aihetunnisteita", "account_edit.featured_hashtags.placeholder": "Auta muita tunnistamaan suosikkiaiheesi ja saamaan nopea pääsy niihin.", "account_edit.featured_hashtags.title": "Esiteltävät aihetunnisteet", + "account_edit.field_actions.delete": "Poista kenttä", + "account_edit.field_actions.edit": "Muokkaa kenttää", "account_edit.field_delete_modal.confirm": "Haluatko varmasti poistaa tämän mukautetun kentän? Tätä toimea ei voi peruuttaa.", "account_edit.field_delete_modal.delete_button": "Poista", "account_edit.field_delete_modal.title": "Poistetaanko mukautettu kenttä?", "account_edit.field_edit_modal.add_title": "Lisää mukautettu kenttä", + "account_edit.field_edit_modal.discard_confirm": "Hylkää", + "account_edit.field_edit_modal.discard_message": "Sinulla on tallentamattomia muutoksia. Haluatko varmasti hylätä ne?", "account_edit.field_edit_modal.edit_title": "Muokkaa mukautettua kenttää", - "account_edit.field_edit_modal.limit_header": "Suositeltu merkkiraja ylitetty", - "account_edit.field_edit_modal.limit_message": "Mobiilikäyttäjät eivät välttämättä näe kenttää kokonaan.", + "account_edit.field_edit_modal.limit_warning": "Suositeltava merkkimäärä ylitetty. Mobiilikäyttäjät eivät välttämättä näe kenttää kokonaan.", "account_edit.field_edit_modal.link_emoji_warning": "Emme suosittele käyttämään mukautettuja emojeita URL-osoitteiden kanssa. Molempia sisältävät mukautetut kentät näkyvät vain tekstinä linkin sijaan, jotta estetään käyttäjien sekaannus.", "account_edit.field_edit_modal.name_hint": "Esim. ”Henkilökohtainen verkkosivusto”", "account_edit.field_edit_modal.name_label": "Nimike", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Muokkaa tekstivastinetta", "account_edit.image_edit.remove_button": "Poista kuva", "account_edit.image_edit.replace_button": "Korvaa kuva", + "account_edit.item_list.delete": "Poista {name}", + "account_edit.item_list.edit": "Muokkaa kohdetta {name}", "account_edit.name_modal.add_title": "Lisää näyttönimi", "account_edit.name_modal.edit_title": "Muokkaa näyttönimeä", "account_edit.profile_tab.button_label": "Mukauta", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Lähetä pudottamalla", "account_edit.upload_modal.step_upload.header": "Valitse kuva", "account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- tai JPG-muotoinen, enintään {limit} Mt.{br}Kuva skaalautuu kokoon {width}×{height} px.", - "account_edit.upload_modal.title_add": "Lisää profiilikuva", - "account_edit.upload_modal.title_replace": "Korvaa profiilikuva", + "account_edit.upload_modal.title_add.avatar": "Lisää profiilikuva", + "account_edit.upload_modal.title_add.header": "Lisää kansikuva", + "account_edit.upload_modal.title_replace.avatar": "Korvaa profiilikuva", + "account_edit.upload_modal.title_replace.header": "Korvaa kansikuva", "account_edit.verified_modal.details": "Lisää Mastodon-profiiliisi uskottavuutta vahvistamalla linkit henkilökohtaisiin verkkosivustoihin. Näin se toimii:", "account_edit.verified_modal.invisible_link.details": "Lisää linkki HTML:n head-osaan. Tärkeä kohta on rel=\"me\", joka estää toiseksi tekeytymisen sivustoilla, joilla on käyttäjien luomaa sisältöä. Voit jopa käyttää link-tunnistetta sivun head-osassa {tag}-tunnisteen sijaan, mutta HTML:n tulee olla saatavilla suorittamatta JavaScriptia.", "account_edit.verified_modal.invisible_link.summary": "Miten teen linkistä näkymättömän?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Lisää verkkosivustosi mukautettuna kenttänä", "account_edit.verified_modal.title": "Miten lisätä vahvistettu linkki", "account_edit_tags.add_tag": "Lisää #{tagName}", - "account_edit_tags.column_title": "Muokkaa esiteltäviä aihetunnisteita", + "account_edit_tags.column_title": "Muokkaa tunnisteita", "account_edit_tags.help_text": "Esiteltävät aihetunnisteet auttavat käyttäjiä löytämään profiilisi ja olemaan vuorovaikutuksessa sen kanssa. Ne näkyvät suodattimina profiilisivusi Toiminta-näkymässä.", + "account_edit_tags.max_tags_reached": "Sinulla on enimmäismäärä esiteltäviä aihetunnisteita.", "account_edit_tags.search_placeholder": "Syötä aihetunniste…", "account_edit_tags.suggestions": "Ehdotuksia:", "account_edit_tags.tag_status_count": "{count, plural, one {# julkaisu} other {# julkaisua}}", + "account_list.total": "{total, plural, one {# tili} other {# tiliä}}", "account_note.placeholder": "Lisää muistiinpano napsauttamalla", "admin.dashboard.daily_retention": "Käyttäjien pysyvyys päivittäin rekisteröitymisen jälkeen", "admin.dashboard.monthly_retention": "Käyttäjien pysyvyys kuukausittain rekisteröitymisen jälkeen", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Seurantaehdotuksia", "followed_tags": "Seurattavat aihetunnisteet", "followers.hide_other_followers": "Käyttäjä on päättänyt piilottaa muut seuraajansa", + "followers.title": "Seurattavana {name}", "following.hide_other_following": "Käyttäjä on päättänyt piilottaa muut seurattavansa", + "following.title": "Seuraajana {name}", "footer.about": "Tietoja", "footer.about_mastodon": "Tietoja Mastodonista", "footer.about_server": "Tietoja palvelimesta {domain}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 110cdd1e7f9eb2..5b46131729ec3a 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -145,16 +145,12 @@ "account_edit.bio.title": "Ævilýsing", "account_edit.bio_modal.add_title": "Legg ævilýsing afturat", "account_edit.bio_modal.edit_title": "Rætta ævilýsing", - "account_edit.button.add": "Legg afturat {item}", - "account_edit.button.delete": "Strika {item}", - "account_edit.button.edit": "Broyt {item}", "account_edit.column_button": "Liðugt", "account_edit.column_title": "Rætta vanga", "account_edit.custom_fields.placeholder": "Legg tíni forheiti, uttanhýsis leinki ella okkurt annað, sum tú kundi hugsað tær at deilt.", "account_edit.custom_fields.title": "Serfelt", "account_edit.display_name.placeholder": "Títt vísta navn er soleiðis sum navnið hjá tær verður víst á vanganum og á tíðarrásum.", "account_edit.display_name.title": "Víst navn", - "account_edit.featured_hashtags.item": "frámerki", "account_edit.featured_hashtags.placeholder": "Hjálp øðrum at eyðmekja og hava skjóta atgongd til tíni yndisevni.", "account_edit.featured_hashtags.title": "Sermerkt frámerki", "account_edit.name_modal.add_title": "Legg víst navn afturat", @@ -172,7 +168,6 @@ "account_edit.profile_tab.title": "Stillingar fyri spjøldur á vanga", "account_edit.save": "Goym", "account_edit_tags.add_tag": "Legg #{tagName} afturat", - "account_edit_tags.column_title": "Rætta sermerkt frámerki", "account_edit_tags.help_text": "Sermerkt frámerki hjálpa brúkarum at varnast og virka saman við vanga tínum. Tey síggjast sum filtur á virksemisvísingini av vanga tínum.", "account_edit_tags.search_placeholder": "Áset eitt frámerki…", "account_edit_tags.suggestions": "Uppskot:", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 23ab79e5961e06..13923aa50cdaef 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Présentation", "account_edit.bio_modal.add_title": "Ajouter une présentation", "account_edit.bio_modal.edit_title": "Modifier la présentation", - "account_edit.button.add": "Ajouter {item}", - "account_edit.button.delete": "Supprimer {item}", - "account_edit.button.edit": "Modifier {item}", "account_edit.column_button": "Terminé", "account_edit.column_title": "Modifier le profil", - "account_edit.custom_fields.name": "champ", "account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.", "account_edit.custom_fields.reorder_button": "Réorganiser les champs", "account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?", "account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.", "account_edit.display_name.title": "Nom public", - "account_edit.featured_hashtags.item": "hashtags", "account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.", "account_edit.featured_hashtags.title": "Hashtags mis en avant", "account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?", "account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", - "account_edit.field_edit_modal.limit_header": "Limite de caractères recommandée dépassée", - "account_edit.field_edit_modal.limit_message": "L'affichage du champ peut être tronqué sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser", "account_edit.upload_modal.step_upload.header": "Choisir une image", "account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.", - "account_edit.upload_modal.title_add": "Ajouter une photo de profil", - "account_edit.upload_modal.title_replace": "Remplacer la photo de profil", "account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :", "account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?", @@ -229,11 +220,11 @@ "account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé", "account_edit.verified_modal.title": "Comment ajouter un lien vérifié ?", "account_edit_tags.add_tag": "Ajouter #{tagName}", - "account_edit_tags.column_title": "Modifier les hashtags mis en avant", "account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.", "account_edit_tags.search_placeholder": "Saisir un hashtag…", "account_edit_tags.suggestions": "Suggestions :", "account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}", + "account_list.total": "{total, plural, one {# compte} other {# comptes}}", "account_note.placeholder": "Cliquez pour ajouter une note", "admin.dashboard.daily_retention": "Taux de rétention des comptes par jour après inscription", "admin.dashboard.monthly_retention": "Taux de rétention des comptes par mois après inscription", @@ -674,7 +665,9 @@ "follow_suggestions.who_to_follow": "Qui suivre", "followed_tags": "Hashtags suivis", "followers.hide_other_followers": "Ce compte a choisi de ne pas rendre visible ses autres abonné·e·s", + "followers.title": "Suit {name}", "following.hide_other_following": "Ce compte a choisi de ne pas rendre visible ses autres abonnements", + "following.title": "Suivi·e par {name}", "footer.about": "À propos", "footer.about_mastodon": "À propos de Mastodon", "footer.about_server": "À propos de {domain}", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 9f0c6e78bc1324..951d25fa2fc7f5 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Présentation", "account_edit.bio_modal.add_title": "Ajouter une présentation", "account_edit.bio_modal.edit_title": "Modifier la présentation", - "account_edit.button.add": "Ajouter {item}", - "account_edit.button.delete": "Supprimer {item}", - "account_edit.button.edit": "Modifier {item}", "account_edit.column_button": "Terminé", "account_edit.column_title": "Modifier le profil", - "account_edit.custom_fields.name": "champ", "account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.", "account_edit.custom_fields.reorder_button": "Réorganiser les champs", "account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?", "account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.", "account_edit.display_name.title": "Nom public", - "account_edit.featured_hashtags.item": "hashtags", "account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.", "account_edit.featured_hashtags.title": "Hashtags mis en avant", "account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?", "account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", - "account_edit.field_edit_modal.limit_header": "Limite de caractères recommandée dépassée", - "account_edit.field_edit_modal.limit_message": "L'affichage du champ peut être tronqué sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser", "account_edit.upload_modal.step_upload.header": "Choisir une image", "account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.", - "account_edit.upload_modal.title_add": "Ajouter une photo de profil", - "account_edit.upload_modal.title_replace": "Remplacer la photo de profil", "account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :", "account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?", @@ -229,11 +220,11 @@ "account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé", "account_edit.verified_modal.title": "Comment ajouter un lien vérifié ?", "account_edit_tags.add_tag": "Ajouter #{tagName}", - "account_edit_tags.column_title": "Modifier les hashtags mis en avant", "account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.", "account_edit_tags.search_placeholder": "Saisir un hashtag…", "account_edit_tags.suggestions": "Suggestions :", "account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}", + "account_list.total": "{total, plural, one {# compte} other {# comptes}}", "account_note.placeholder": "Cliquez pour ajouter une note", "admin.dashboard.daily_retention": "Taux de rétention des utilisateur·rice·s par jour après inscription", "admin.dashboard.monthly_retention": "Taux de rétention des utilisateur·rice·s par mois après inscription", @@ -674,7 +665,9 @@ "follow_suggestions.who_to_follow": "Qui suivre", "followed_tags": "Hashtags suivis", "followers.hide_other_followers": "Ce compte a choisi de ne pas rendre visible ses autres abonné·e·s", + "followers.title": "Suit {name}", "following.hide_other_following": "Ce compte a choisi de ne pas rendre visible ses autres abonnements", + "following.title": "Suivi·e par {name}", "footer.about": "À propos", "footer.about_mastodon": "À propos de Mastodon", "footer.about_server": "À propos de {domain}", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 0ce04407a714bd..c6b3b1371e9f26 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -141,34 +141,39 @@ "account.unmute": "Díbhalbhaigh @{name}", "account.unmute_notifications_short": "Díbhalbhaigh fógraí", "account.unmute_short": "Díbhalbhaigh", + "account_edit.bio.edit_label": "Cuir beathaisnéis in eagar", + "account_edit.bio.label": "beathaisnéis", "account_edit.bio.placeholder": "Cuir réamhrá gearr leis chun cabhrú le daoine eile tú a aithint.", "account_edit.bio.title": "Beathaisnéis", "account_edit.bio_modal.add_title": "Cuir beathaisnéis leis", "account_edit.bio_modal.edit_title": "Cuir beathaisnéis in eagar", - "account_edit.button.add": "Cuir {item} leis", - "account_edit.button.delete": "Scrios {item}", - "account_edit.button.edit": "Cuir {item} in eagar", "account_edit.column_button": "Déanta", "account_edit.column_title": "Cuir Próifíl in Eagar", - "account_edit.custom_fields.name": "réimse", + "account_edit.custom_fields.add_label": "Cuir réimse leis", + "account_edit.custom_fields.edit_label": "Cuir réimse in eagar", "account_edit.custom_fields.placeholder": "Cuir do fhorainmneacha, naisc sheachtracha, nó aon rud eile ar mhaith leat a roinnt leis.", "account_edit.custom_fields.reorder_button": "Athordaigh réimsí", "account_edit.custom_fields.tip_content": "Is féidir leat creidiúnacht a chur le do chuntas Mastodon go héasca trí naisc chuig aon suíomhanna Gréasáin ar leatsa iad a fhíorú.", "account_edit.custom_fields.tip_title": "Leid: Ag cur naisc fhíoraithe leis", "account_edit.custom_fields.title": "Réimsí saincheaptha", "account_edit.custom_fields.verified_hint": "Conas a chuirim nasc fíoraithe leis?", + "account_edit.display_name.add_label": "Cuir ainm taispeána leis", + "account_edit.display_name.edit_label": "Cuir ainm taispeána in eagar", "account_edit.display_name.placeholder": "Is é d’ainm taispeána an chaoi a bhfeictear d’ainm ar do phróifíl agus in amlínte.", "account_edit.display_name.title": "Ainm taispeána", - "account_edit.featured_hashtags.item": "haischlibeanna", + "account_edit.featured_hashtags.edit_label": "Cuir haischlibanna leis", "account_edit.featured_hashtags.placeholder": "Cabhraigh le daoine eile do thopaicí is fearr leat a aithint, agus rochtain thapa a bheith acu orthu.", "account_edit.featured_hashtags.title": "Haischlibeanna Réadmhaoine", + "account_edit.field_actions.delete": "Scrios réimse", + "account_edit.field_actions.edit": "Cuir réimse in eagar", "account_edit.field_delete_modal.confirm": "An bhfuil tú cinnte gur mhaith leat an réimse saincheaptha seo a scriosadh? Ní féidir an gníomh seo a chealú.", "account_edit.field_delete_modal.delete_button": "Scrios", "account_edit.field_delete_modal.title": "An bhfuil fonn ort an réimse saincheaptha a scriosadh?", "account_edit.field_edit_modal.add_title": "Cuir réimse saincheaptha leis", + "account_edit.field_edit_modal.discard_confirm": "Caith uait", + "account_edit.field_edit_modal.discard_message": "Tá athruithe neamhshábháilte agat. An bhfuil tú cinnte gur mian leat iad a chaitheamh amach?", "account_edit.field_edit_modal.edit_title": "Cuir réimse saincheaptha in eagar", - "account_edit.field_edit_modal.limit_header": "Sáraíodh an teorainn carachtar molta", - "account_edit.field_edit_modal.limit_message": "B’fhéidir nach bhfeicfidh úsáideoirí soghluaiste do réimse ina iomláine.", + "account_edit.field_edit_modal.limit_warning": "Sáraíodh an teorainn carachtar molta. B’fhéidir nach bhfeicfeadh úsáideoirí soghluaiste do réimse ina iomláine.", "account_edit.field_edit_modal.link_emoji_warning": "Molaimid gan emoji saincheaptha a úsáid i gcomhar le Urlanna. Taispeánfar réimsí saincheaptha ina bhfuil an dá cheann mar théacs amháin seachas mar nasc, chun mearbhall úsáideoirí a sheachaint.", "account_edit.field_edit_modal.name_hint": "M.sh. “Suíomh Gréasáin pearsanta”", "account_edit.field_edit_modal.name_label": "Lipéad", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Cuir téacs alt in eagar", "account_edit.image_edit.remove_button": "Bain íomhá", "account_edit.image_edit.replace_button": "Athsholáthair íomhá", + "account_edit.item_list.delete": "Scrios {name}", + "account_edit.item_list.edit": "Cuir {name} in eagar", "account_edit.name_modal.add_title": "Cuir ainm taispeána leis", "account_edit.name_modal.edit_title": "Cuir ainm taispeána in eagar", "account_edit.profile_tab.button_label": "Saincheap", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Scaoil le huaslódáil", "account_edit.upload_modal.step_upload.header": "Roghnaigh íomhá", "account_edit.upload_modal.step_upload.hint": "Formáid WEBP, PNG, GIF nó JPG, suas le {limit}MB.{br}Scálfar an íomhá go {width}x{height}px.", - "account_edit.upload_modal.title_add": "Cuir grianghraf próifíle leis", - "account_edit.upload_modal.title_replace": "Athsholáthar grianghraf próifíle", + "account_edit.upload_modal.title_add.avatar": "Cuir grianghraf próifíle leis", + "account_edit.upload_modal.title_add.header": "Cuir grianghraf clúdaigh leis", + "account_edit.upload_modal.title_replace.avatar": "Athsholáthar grianghraf próifíle", + "account_edit.upload_modal.title_replace.header": "Athsholáthar grianghraf clúdaigh", "account_edit.verified_modal.details": "Cuir creidiúnacht le do phróifíl Mastodon trí naisc chuig láithreáin ghréasáin phearsanta a fhíorú. Seo mar a oibríonn sé:", "account_edit.verified_modal.invisible_link.details": "Cuir an nasc le do cheanntásc. Is í an chuid thábhachtach ná rel=\"me\" a chuireann cosc ​​ar phearsanú ar shuíomhanna gréasáin a bhfuil inneachar a ghintear ag úsáideoirí. Is féidir leat clib nasc a úsáid fiú i gceanntásc an leathanaigh in ionad {tag}, ach caithfidh an HTML a bheith inrochtana gan JavaScript a chur i gcrích.", "account_edit.verified_modal.invisible_link.summary": "Conas a dhéanaim an nasc dofheicthe?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Cuir do shuíomh Gréasáin leis mar réimse saincheaptha", "account_edit.verified_modal.title": "Conas nasc fíoraithe a chur leis", "account_edit_tags.add_tag": "Cuir #{tagName} leis", - "account_edit_tags.column_title": "Cuir haischlibeanna le feiceáil in eagar", + "account_edit_tags.column_title": "Cuir Clibeanna in Eagar", "account_edit_tags.help_text": "Cuidíonn haischlibeanna le húsáideoirí do phróifíl a aimsiú agus idirghníomhú léi. Feictear iad mar scagairí ar radharc Gníomhaíochta do leathanaigh Phróifíle.", + "account_edit_tags.max_tags_reached": "Tá an líon uasta haischlibanna le feiceáil sroichte agat.", "account_edit_tags.search_placeholder": "Cuir isteach haischlib…", "account_edit_tags.suggestions": "Moltaí:", "account_edit_tags.tag_status_count": "{count, plural, one {# post} two {# poist} few {# poist} many {# poist} other {# poist}}", + "account_list.total": "{total, plural, one {# cuntas} two {# cuntais} few {# cuntais} many {# cuntais} other {# cuntais}}", "account_note.placeholder": "Cliceáil chun nóta a chuir leis", "admin.dashboard.daily_retention": "Ráta coinneála an úsáideora de réir an lae tar éis clárú", "admin.dashboard.monthly_retention": "Ráta coinneála na n-úsáideoirí de réir na míosa tar éis dóibh clárú", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Cé le leanúint", "followed_tags": "Hashtags le leanúint", "followers.hide_other_followers": "Tá an t-úsáideoir seo tar éis a roghnú gan a leantóirí eile a dhéanamh le feiceáil", + "followers.title": "Ag leanúint {name}", "following.hide_other_following": "Tá an t-úsáideoir seo tar éis a roghnú gan an chuid eile de na daoine a leanann siad a dhéanamh le feiceáil", + "following.title": "Ag leanúint {name}", "footer.about": "Maidir le", "footer.about_mastodon": "Maidir le Mastodon", "footer.about_server": "Maidir le {domain}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index af372edd2b73bd..26b13a7d221d0f 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -141,34 +141,37 @@ "account.unmute": "Deixar de silenciar a @{name}", "account.unmute_notifications_short": "Reactivar notificacións", "account.unmute_short": "Non silenciar", + "account_edit.bio.edit_label": "Editar biografía", + "account_edit.bio.label": "sobre ti", "account_edit.bio.placeholder": "Escribe unha breve presentación para que te coñezan mellor.", "account_edit.bio.title": "Sobre ti", "account_edit.bio_modal.add_title": "Engadir biografía", "account_edit.bio_modal.edit_title": "Editar biografía", - "account_edit.button.add": "Engadir {item}", - "account_edit.button.delete": "Eliminar {item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Feito", "account_edit.column_title": "Editar perfil", - "account_edit.custom_fields.name": "campo", + "account_edit.custom_fields.add_label": "Engadir un campo", + "account_edit.custom_fields.edit_label": "Edita o campo", "account_edit.custom_fields.placeholder": "Engade os teus pronomes, ligazóns externas, ou o que queiras compartir.", "account_edit.custom_fields.reorder_button": "Reordenar os campos", "account_edit.custom_fields.tip_content": "Podes darlle maior credibilidade á túa conta Mastodon se verificas as ligazóns a sitios web da túa propiedade.", "account_edit.custom_fields.tip_title": "Consello: Engadir ligazóns verificadas", "account_edit.custom_fields.title": "Campos personalizados", "account_edit.custom_fields.verified_hint": "Como engado unha ligazón verificada?", + "account_edit.display_name.add_label": "Engadir nome público", + "account_edit.display_name.edit_label": "Editar o nome público", "account_edit.display_name.placeholder": "O nome público é o nome que aparece no perfil e nas cronoloxías.", "account_edit.display_name.title": "Nome público", - "account_edit.featured_hashtags.item": "cancelos", + "account_edit.featured_hashtags.edit_label": "Engadir cancelos", "account_edit.featured_hashtags.placeholder": "Facilita que te identifiquen, e da acceso rápido aos teus intereses favoritos.", "account_edit.featured_hashtags.title": "Cancelos destacados", + "account_edit.field_actions.delete": "Eliminar campo", + "account_edit.field_actions.edit": "Edita o campo", "account_edit.field_delete_modal.confirm": "Tes certeza de querer eliminar este campo persoal? A acción non se pode desfacer.", "account_edit.field_delete_modal.delete_button": "Eliminar", "account_edit.field_delete_modal.title": "Eliminar campo persoal?", "account_edit.field_edit_modal.add_title": "Engadir campo persoal", + "account_edit.field_edit_modal.discard_confirm": "Desbotar", "account_edit.field_edit_modal.edit_title": "Editar campo persoal", - "account_edit.field_edit_modal.limit_header": "Superouse o límite de caracteres recomendado", - "account_edit.field_edit_modal.limit_message": "Nos dispositivos móbiles podería non verse o campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "Non recomendamos o uso de emojis persoais combinados con URLs. Os campos persoais que conteñen ambos móstranse só como texto e non como unha ligazón, para evitar a confusión de quen os lea.", "account_edit.field_edit_modal.name_hint": "Ex. \"Páxina web persoal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -219,8 +222,6 @@ "account_edit.upload_modal.step_upload.dragging": "Solta aquí para subir", "account_edit.upload_modal.step_upload.header": "Escoller unha imaxe", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF ou JPG, ata {limit}MB.{br}A imaxe será comprimida a {width}x{height}px.", - "account_edit.upload_modal.title_add": "Engadir foto do perfil", - "account_edit.upload_modal.title_replace": "Substituír foto do perfil", "account_edit.verified_modal.details": "Engade maior credibilidade ao teu perfil Mastodon verificando as ligazóns ás túas páxinas web persoais. Funciona así:", "account_edit.verified_modal.invisible_link.details": "Engade a ligazón ao «header» da páxina web. A parte importante é rel=\"me\", que evita a suplantación en sitios web con contido creado polas usuarias. Tamén podes usar a etiqueta «link» na cabeceira da páxina no lugar de {tag}, pero o HTML ten que ser accesible sen usar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Como fago visible a ligazón?", @@ -229,7 +230,6 @@ "account_edit.verified_modal.step2.header": "Engade a túa páxina como campo persoal", "account_edit.verified_modal.title": "Como engadir unha ligazón verificada", "account_edit_tags.add_tag": "Engadir #{tagName}", - "account_edit_tags.column_title": "Editar cancelos destacados", "account_edit_tags.help_text": "Os cancelos destacados axúdanlle ás usuarias a atopar e interactuar co teu perfil. Aparecen como filtros na túa páxina de perfil na vista Actividade.", "account_edit_tags.search_placeholder": "Escribe un cancelo…", "account_edit_tags.suggestions": "Suxestións:", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 4034ce3e308db3..e56abf8fd6cd0d 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "ביוגרפיה", "account_edit.bio_modal.add_title": "הוסיפו ביוגרפיה", "account_edit.bio_modal.edit_title": "עריכת ביוגרפיה", - "account_edit.button.add": "הוספת {item}", - "account_edit.button.delete": "מחיקת {item}", - "account_edit.button.edit": "עריכת {item}", "account_edit.column_button": "סיום", "account_edit.column_title": "עריכת הפרופיל", - "account_edit.custom_fields.name": "שדה", "account_edit.custom_fields.placeholder": "הוסיפו צורת פניה, קישורים חיצוניים וכל דבר שתרצו לשתף.", "account_edit.custom_fields.reorder_button": "הגדרת סדר השדות", "account_edit.custom_fields.tip_content": "ניתן להוסיף אמינות לחשבון המסטודון שלך על ידי וידוא קישורים לאתרים שבבעלותך.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "כיצד תוסיפו קישורים מוודאים?", "account_edit.display_name.placeholder": "שם התצוגה שלכן הוא איך שהשם יופיע בפרופיל ובצירי הזמנים.", "account_edit.display_name.title": "שם תצוגה", - "account_edit.featured_hashtags.item": "תגיות", "account_edit.featured_hashtags.placeholder": "עזרו לאחרים לזהות ולגשת בקלות לנושאים החביבים עליכם.", "account_edit.featured_hashtags.title": "תגיות נבחרות", "account_edit.field_delete_modal.confirm": "האם אתם בטוחיםות שברצונכן למחוק את השדה המיוחד הזה? פעולה זו לא ניתנת לביטול.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "מחיקת שדה מתואם אישית?", "account_edit.field_edit_modal.add_title": "הוסף שדה מותאם אישית", "account_edit.field_edit_modal.edit_title": "עריכת שדה מותאם אישית", - "account_edit.field_edit_modal.limit_header": "עברת את מגבלת התווים המומלצת", - "account_edit.field_edit_modal.limit_message": "משתמשים מטלפון חכם עלולים לא לראות את השדה במלואו.", "account_edit.field_edit_modal.link_emoji_warning": "אנו ממליצים נגד שימוש באמוג'י ייחודיים ביחד עם URL. שדות מיוחדים שמכילים את שניהם יופיעו כמלל בלבד ולא כקישור, כדי למנוע בלבול משתמשים.", "account_edit.field_edit_modal.name_hint": "למשל \"אתר אישי\"", "account_edit.field_edit_modal.name_label": "תווית", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "גרור להעלאה", "account_edit.upload_modal.step_upload.header": "בחר/י תמונה", "account_edit.upload_modal.step_upload.hint": "תכנים בתקן WEBP, PNG, GIF או JPG, עד לגודל {limit} מ\"ב.{br}התמונה תתוקן לגודל {width} על {height} פיקסלים.", - "account_edit.upload_modal.title_add": "הוספת תמונת פרופיל", - "account_edit.upload_modal.title_replace": "החלפת תמונת פרופיל", "account_edit.verified_modal.details": "הוספת אמינות לחשבון המסטודון על ידי הוספת קישורים מוודאים לאתרים אישיים. כך זה עובד:", "account_edit.verified_modal.invisible_link.details": "הוסיפו את הקישור בכותרת. החלק החשוב הוא rel=\"me\" שמונע התחזות על אתרים עם תוכן משתמשים. ניתן גם ליצור תגית link בכותרת העמוד במקום קישור {tag} אבל קוד ה־HTML חייב להופיע שם ללא הרצה של ג'אווהסקריפט.", "account_edit.verified_modal.invisible_link.summary": "כיצד לגרום לקישור להיות בלתי נראה?", @@ -229,11 +220,11 @@ "account_edit.verified_modal.step2.header": "הוסיפו את אתרכן בשדה המיוחד", "account_edit.verified_modal.title": "כיצד תוסיפו קישורים מוודאים", "account_edit_tags.add_tag": "הוספת #{tagName}", - "account_edit_tags.column_title": "עריכת תגיות נבחרות", "account_edit_tags.help_text": "תגיות נבחרות עוזרות למשתמשים לגלות ולהשתמש בפרופיל שלך. הן יופיעו כסננים במבט הפעילויות על עמוד הפרופיל שלך.", "account_edit_tags.search_placeholder": "הזנת תגית…", "account_edit_tags.suggestions": "הצעות:", "account_edit_tags.tag_status_count": "{count, plural, one {הודעה אחת} two {הודעותיים} other {# הודעות}}", + "account_list.total": "{total, plural, one {חשבון אחד} other {# חשבונות}}", "account_note.placeholder": "יש ללחוץ כדי להוסיף הערות", "admin.dashboard.daily_retention": "קצב שימור משתמשים יומי אחרי ההרשמה", "admin.dashboard.monthly_retention": "קצב שימור משתמשים (פר חודש) אחרי ההרשמה", @@ -674,7 +665,9 @@ "follow_suggestions.who_to_follow": "אחרי מי לעקוב", "followed_tags": "התגיות שהחשבון שלך עוקב אחריהן", "followers.hide_other_followers": "משתשמש‎‏(ת) אלו החליטו לא לחשוף את עוקביהם האחרים", + "followers.title": "עוקבים אחרי {name}", "following.hide_other_following": "משתשמש‎‏(ת) אלו החליטו לא לחשוף את נעקביהם האחרים", + "following.title": "נעקבים על ידי {name}", "footer.about": "אודות", "footer.about_mastodon": "אודות מסטודון", "footer.about_server": "‮אודות ‭{domain}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index a97a7240c10c33..48fd189c40b7aa 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -141,34 +141,39 @@ "account.unmute": "@{name} némításának feloldása", "account.unmute_notifications_short": "Értesítések némításának feloldása", "account.unmute_short": "Némitás feloldása", + "account_edit.bio.edit_label": "Bemutatkozás szerkesztése", + "account_edit.bio.label": "bemutatkozás", "account_edit.bio.placeholder": "Adj meg egy rövid bemutatkozást, hogy mások könnyebben megtaláljanak.", "account_edit.bio.title": "Bemutatkozás", "account_edit.bio_modal.add_title": "Bemutatkozás hozzáadása", "account_edit.bio_modal.edit_title": "Bemutatkozás szerkesztése", - "account_edit.button.add": "{item} hozzáadása", - "account_edit.button.delete": "{item} törlése", - "account_edit.button.edit": "{item} szerkesztése", "account_edit.column_button": "Kész", "account_edit.column_title": "Profil szerkesztése", - "account_edit.custom_fields.name": "mező", + "account_edit.custom_fields.add_label": "Mező hozzáadása", + "account_edit.custom_fields.edit_label": "Mező szerkesztése", "account_edit.custom_fields.placeholder": "Add meg a névmásaidat, külső hivatkozásaidat vagy bármi mást, amelyet megosztanál.", "account_edit.custom_fields.reorder_button": "Mezők átrendezése", "account_edit.custom_fields.tip_content": "Könnyedén nagyobb hitelességet adhatsz a Mastodon-fiókodnak a saját weboldalaidra mutató hivatkozások megerősítésével.", "account_edit.custom_fields.tip_title": "Tipp: Ellenőrzött hivatkozások hozzáadása", "account_edit.custom_fields.title": "Egyéni mezők", "account_edit.custom_fields.verified_hint": "Hogyan kell ellenőrzött hivatkozást hozzáadni?", + "account_edit.display_name.add_label": "Megjelenítendő név hozzáadása", + "account_edit.display_name.edit_label": "Megjelenítendő név szerkesztése", "account_edit.display_name.placeholder": "A megjelenítendő név az, ahogy a neved megjelenik a profilodon és az idővonalakon.", "account_edit.display_name.title": "Megjelenítendő név", - "account_edit.featured_hashtags.item": "hashtagek", + "account_edit.featured_hashtags.edit_label": "Hashtagek hozzáadása", "account_edit.featured_hashtags.placeholder": "Segíts másoknak, hogy azonosíthassák a kedvenc témáid, és gyorsan elérjék azokat.", "account_edit.featured_hashtags.title": "Kiemelt hashtagek", + "account_edit.field_actions.delete": "Mező törlése", + "account_edit.field_actions.edit": "Mező szerkesztése", "account_edit.field_delete_modal.confirm": "Biztos, hogy törlöd ezt az egyéni mezőt? Ez a művelet nem vonható vissza.", "account_edit.field_delete_modal.delete_button": "Törlés", "account_edit.field_delete_modal.title": "Egyéni mező törlése?", "account_edit.field_edit_modal.add_title": "Egyéni mező hozzáadása", + "account_edit.field_edit_modal.discard_confirm": "Elvetés", + "account_edit.field_edit_modal.discard_message": "Nem mentett módosításaid vannak. Biztos, hogy elveted?", "account_edit.field_edit_modal.edit_title": "Egyéni mező szerkesztése", - "account_edit.field_edit_modal.limit_header": "Az ajánlott karakterkorlát túllépve", - "account_edit.field_edit_modal.limit_message": "A mobilos felhasználók lehet, hogy nem fogják a teljes mezőt látni.", + "account_edit.field_edit_modal.limit_warning": "Javasolt karakterkorlát túllépve. A mobilos felhasználók lehet, hogy nem fogják látni a teljes mezőt.", "account_edit.field_edit_modal.link_emoji_warning": "Nem javasoljuk az egyéni emodzsik és webcímek együttes használatát. A mindkettőt tartalmazó egyéni mezők a felhasználók megzavarásának elkerülése érdekében csak szövegként jelennek meg, nem hivatkozásként.", "account_edit.field_edit_modal.name_hint": "Például „Személyes webhely”", "account_edit.field_edit_modal.name_label": "Címke", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Helyettesítő szöveg szerkesztése", "account_edit.image_edit.remove_button": "Kép eltávolítása", "account_edit.image_edit.replace_button": "Kép cseréje", + "account_edit.item_list.delete": "{name} törlése", + "account_edit.item_list.edit": "{name} szerkesztése", "account_edit.name_modal.add_title": "Megjelenítendő név hozzáadása", "account_edit.name_modal.edit_title": "Megjelenítendő név szerkesztése", "account_edit.profile_tab.button_label": "Testreszabás", @@ -218,8 +225,11 @@ "account_edit.upload_modal.step_upload.button": "Fájlok tallózása", "account_edit.upload_modal.step_upload.dragging": "Ejtsd ide a feltöltéshez", "account_edit.upload_modal.step_upload.header": "Válassz egy képet", - "account_edit.upload_modal.title_add": "Profilkép hozzáadása", - "account_edit.upload_modal.title_replace": "Profilkép cseréje", + "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF vagy JPG formátum, legfeljebb {limit} MB.{br}A kép ekkorára lesz méretezve: {width}×{height} px.", + "account_edit.upload_modal.title_add.avatar": "Profilkép hozzáadása", + "account_edit.upload_modal.title_add.header": "Borítókép hozzáadása", + "account_edit.upload_modal.title_replace.avatar": "Profilkép cseréje", + "account_edit.upload_modal.title_replace.header": "Borítókép cseréje", "account_edit.verified_modal.details": "Növeld a Mastodon-profilod hitelességét a személyes webhelyekre mutató hivatkozások ellenőrzésével. Így működik:", "account_edit.verified_modal.invisible_link.details": "A hivatkozás hozzáadása a fejlécedhez. A fontos rész a rel=\"me\", mely megakadályozza, hogy mások a nevedben lépjenek fel olyan oldalakon, ahol van felhasználók által előállított tartalom. A(z) {tag} helyett a „link” címkét is használhatod az oldal fejlécében, de a HTML-nek elérhetőnek kell lennie JavaScript futtatása nélkül is.", "account_edit.verified_modal.invisible_link.summary": "Hogyan lehet egy hivatkozás láthatatlanná tenni?", @@ -228,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Saját webhely hozzáadása egyéni mezőként", "account_edit.verified_modal.title": "Hogyan kell ellenőrzött hivatkozást hozzáadni", "account_edit_tags.add_tag": "#{tagName} hozzáadása", - "account_edit_tags.column_title": "Kiemelt hashtagek szerkesztése", + "account_edit_tags.column_title": "Címkék szerkesztése", "account_edit_tags.help_text": "A kiemelt hashtagek segítenek a felhasználóknak abban, hogy interakcióba lépjenek a profiloddal. Szűrőként jelennek meg a Profil oldalad Tevékenység nézetében.", + "account_edit_tags.max_tags_reached": "Elérted a kiemelt hashtagek maximális számát.", "account_edit_tags.search_placeholder": "Hashtag megadása…", "account_edit_tags.suggestions": "Javaslatok:", "account_edit_tags.tag_status_count": "{count, plural, one {# bejegyzés} other {# bejegyzés}}", + "account_list.total": "{total, plural, one {# fiók} other {# fiók}}", "account_note.placeholder": "Kattintás jegyzet hozzáadásához", "admin.dashboard.daily_retention": "Napi regisztráció utáni felhasználómegtartási arány", "admin.dashboard.monthly_retention": "Havi regisztráció utáni felhasználómegtartási arány", @@ -627,6 +639,10 @@ "featured_carousel.header": "{count, plural, one {Kiemelt bejegyzés} other {Kiemelt bejegyzések}}", "featured_carousel.slide": "{current, number}. bejegyzés / {max, number}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Mostanában ezekről osztottál meg dolgokat: {items}. Hozzáadod ezeket a kiemelt hashtagekhez?", + "featured_tags.suggestions.add": "Hozzáadás", + "featured_tags.suggestions.added": "Kezeld a kiemelt hashtageidet bármikor a Profil szerkesztése > Kiemelt hashtagek alatt.", + "featured_tags.suggestions.dismiss": "Nem, köszönöm", "filter_modal.added.context_mismatch_explanation": "Ez a szűrőkategória nem érvényes abban a környezetben, amelyből elérted ezt a bejegyzést. Ha ebben a környezetben is szűrni szeretnéd a bejegyzést, akkor szerkesztened kell a szűrőt.", "filter_modal.added.context_mismatch_title": "Környezeti eltérés.", "filter_modal.added.expired_explanation": "Ez a szűrőkategória elévült, a használatához módosítanod kell az elévülési dátumot.", @@ -669,7 +685,9 @@ "follow_suggestions.who_to_follow": "Kit érdemes követni", "followed_tags": "Követett hashtagek", "followers.hide_other_followers": "Ez a felhasználó azt választotta, hogy ne legyenek láthatóak a követői", + "followers.title": "{name} követése", "following.hide_other_following": "Ez a felhasználó azt választotta, hogy ne legyenek láthatóak a követései", + "following.title": "{name} követi", "footer.about": "Névjegy", "footer.about_mastodon": "A Mastodonról", "footer.about_server": "A {domain} domainről", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 6606bef9b31bd1..512102f6fa7528 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -141,34 +141,39 @@ "account.unmute": "Hætta að þagga niður í @{name}", "account.unmute_notifications_short": "Hætta að þagga í tilkynningum", "account.unmute_short": "Hætta að þagga niður", + "account_edit.bio.edit_label": "Breyta æviágripi", + "account_edit.bio.label": "æviágrip", "account_edit.bio.placeholder": "Settu inn stutta kynningu á þér svo aðrir eigi betur með að auðkenna þig.", "account_edit.bio.title": "Æviágrip", "account_edit.bio_modal.add_title": "Bættu við æviágripi", "account_edit.bio_modal.edit_title": "Breyta æviágripi", - "account_edit.button.add": "Bæta við {item}", - "account_edit.button.delete": "Eyða {item}", - "account_edit.button.edit": "Breyta {item}", "account_edit.column_button": "Lokið", "account_edit.column_title": "Breyta notandasniði", - "account_edit.custom_fields.name": "reitur", + "account_edit.custom_fields.add_label": "Bæta við reit", + "account_edit.custom_fields.edit_label": "Breyta reit", "account_edit.custom_fields.placeholder": "Settu inn fornöfn sem þú vilt nota, ytri tengla eða hvaðeina sem þú vilt deila með öðrum.", "account_edit.custom_fields.reorder_button": "Endurraða reitum", "account_edit.custom_fields.tip_content": "Þú getur á einfaldan hátt aukið trúverðugleika Mastodon-aðgangsins þíns með því að bæta við staðfestingartenglum sem vísa á vefsvæði sem þú átt.", "account_edit.custom_fields.tip_title": "Ábending: Bæta við staðfestingartenglum", "account_edit.custom_fields.title": "Sérsniðnir reitir", "account_edit.custom_fields.verified_hint": "Hvernig bæti ég við staðfestingartengli?", + "account_edit.display_name.add_label": "Bættu við birtingarnafni", + "account_edit.display_name.edit_label": "Breyta birtingarnafni", "account_edit.display_name.placeholder": "Birtingarnafn er það sem birtist sem nafnið þitt á notandasniðinu þínu og í tímalínum.", "account_edit.display_name.title": "Birtingarnafn", - "account_edit.featured_hashtags.item": "myllumerki", + "account_edit.featured_hashtags.edit_label": "Bæta við myllumerkjum", "account_edit.featured_hashtags.placeholder": "Hjálpaðu öðrum að sjá og komast í eftirlætis-umfjöllunarefnin þín.", "account_edit.featured_hashtags.title": "Myllumerki með aukið vægi", + "account_edit.field_actions.delete": "Eyða reit", + "account_edit.field_actions.edit": "Breyta reit", "account_edit.field_delete_modal.confirm": "Ertu viss um að þú viljir eyða þessum sérsniðna reit? Þessa aðgerð er ekki hægt að afturkalla.", "account_edit.field_delete_modal.delete_button": "Eyða", "account_edit.field_delete_modal.title": "Eyða sérsniðnum reit?", "account_edit.field_edit_modal.add_title": "Bæta við sérsniðnum reit", + "account_edit.field_edit_modal.discard_confirm": "Henda", + "account_edit.field_edit_modal.discard_message": "Þú ert með óvistaðar breytingar, ertu viss um að þú viljir henda þeim?", "account_edit.field_edit_modal.edit_title": "Breyta sérsniðnum reit", - "account_edit.field_edit_modal.limit_header": "Fór yfir takmörk á fjölda stafa", - "account_edit.field_edit_modal.limit_message": "Notendur á símtækjum gætu lent því að sjá ekki allan reitinn.", + "account_edit.field_edit_modal.limit_warning": "Hámarksfjölda stafa er náð. Farsímanotendur ná mögulega ekki að sjá allan reitinn hjá þér.", "account_edit.field_edit_modal.link_emoji_warning": "Við mælum gegn því að nota sérsniðin tjáningartákn saman með vefslóðum. Sérsniðnir reitir sem innihalda hvort tveggja munu birtast sem einungis texti í stað þess að vera tenglar, til að koma í veg fyrir að notendur taki annað í misgripum fyrir hitt.", "account_edit.field_edit_modal.name_hint": "T.d. \"Eigið vefsvæði\"", "account_edit.field_edit_modal.name_label": "Skýring", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Breyta hjálpartexta", "account_edit.image_edit.remove_button": "Fjarlægja mynd", "account_edit.image_edit.replace_button": "Skipta um mynd", + "account_edit.item_list.delete": "Eyða {name}", + "account_edit.item_list.edit": "Breyta {name}", "account_edit.name_modal.add_title": "Bættu við birtingarnafni", "account_edit.name_modal.edit_title": "Breyta birtingarnafni", "account_edit.profile_tab.button_label": "Sérsníða", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Slepptu til að senda inn", "account_edit.upload_modal.step_upload.header": "Veldu mynd", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eða JPG-snið, allt að {limit}MB.{br}Mynd verður kvörðuð í {width}x{height}px.", - "account_edit.upload_modal.title_add": "Bæta við auðkennismynd", - "account_edit.upload_modal.title_replace": "Skipta um auðkennismynd", + "account_edit.upload_modal.title_add.avatar": "Bæta við auðkennismynd", + "account_edit.upload_modal.title_add.header": "Bæta við mynd í haus", + "account_edit.upload_modal.title_replace.avatar": "Skipta um auðkennismynd", + "account_edit.upload_modal.title_replace.header": "Skipta um mynd í haus", "account_edit.verified_modal.details": "Auktu trúverðugleika Mastodon-aðgangsins þíns með því að bæta við staðfestingartenglum sem vísa á vefsvæðin þín. Hérna sérðu hvernig það virkar:", "account_edit.verified_modal.invisible_link.details": "Bættu tenglinum í hausinn hjá þér. Mikilvægi hlutinn er rel=\"me\" sem kemur í veg fyrir blekkingu verðandi persónuauðkenni á vefsvæðum með notandaframleiddu efni. Þú getur jafnvel notað tengimerkið í haus síðunnar í staðinn fyrir {tag}, en HTML-kóðinn verður samt að vera aðgengilegur án þess að keyra þurfi JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Hvernig geri ég tengilinn ósýnilegan?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Bættu vefsvæðinu þínu inn sem sérsniðinn reit", "account_edit.verified_modal.title": "Hvernig er hægt að bæta við staðfestingartengli", "account_edit_tags.add_tag": "Bæta við #{tagName}", - "account_edit_tags.column_title": "Breyta myllumerkjum með aukið vægi", + "account_edit_tags.column_title": "Breyta merkjum", "account_edit_tags.help_text": "Myllumerki með aukið vægi hjálpa lesendum að finna og eiga við notandasíðuna þína. Þau birtast sem síur í virkniflipa notandasíðunnar þinnar.", + "account_edit_tags.max_tags_reached": "Þú hefur náð hámarksfjölda myllumerkja með aukið vægi.", "account_edit_tags.search_placeholder": "Settu inn myllumerki…", "account_edit_tags.suggestions": "Tillögur:", "account_edit_tags.tag_status_count": "{count, plural, one {# færsla} other {# færslur}}", + "account_list.total": "{total, plural, one {# aðgangur} other {# aðgangar}}", "account_note.placeholder": "Smelltu til að bæta við minnispunkti", "admin.dashboard.daily_retention": "Hlutfall virkra notenda eftir nýskráningu eftir dögum", "admin.dashboard.monthly_retention": "Hlutfall virkra notenda eftir nýskráningu eftir mánuðum", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Hverjum á að fylgjast með", "followed_tags": "Vöktuð myllumerki", "followers.hide_other_followers": "Þessi notandi hefur valið að gera ekki sýnilega aðra fylgjendur sína", + "followers.title": "Fylgist með {name}", "following.hide_other_following": "Þessi notandi hefur valið að gera ekki sýnilega aðra þá sem þeir fylgjast með", + "following.title": "Fylgt af {name}", "footer.about": "Nánari upplýsingar", "footer.about_mastodon": "Um Mastodon", "footer.about_server": "Um {domain}", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 10c44a7b497c53..f8bd1f1039a7e8 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -141,34 +141,39 @@ "account.unmute": "Riattiva @{name}", "account.unmute_notifications_short": "Riattiva notifiche", "account.unmute_short": "Attiva audio", + "account_edit.bio.edit_label": "Modifica la biografia", + "account_edit.bio.label": "biografia", "account_edit.bio.placeholder": "Aggiungi una breve introduzione per aiutare gli altri a identificarti.", "account_edit.bio.title": "Biografia", "account_edit.bio_modal.add_title": "Aggiungi biografia", "account_edit.bio_modal.edit_title": "Modifica la biografia", - "account_edit.button.add": "Aggiungi {item}", - "account_edit.button.delete": "Elimina {item}", - "account_edit.button.edit": "Modifica {item}", "account_edit.column_button": "Fatto", "account_edit.column_title": "Modifica il profilo", - "account_edit.custom_fields.name": "campo", + "account_edit.custom_fields.add_label": "Aggiungi un campo", + "account_edit.custom_fields.edit_label": "Modifica il campo", "account_edit.custom_fields.placeholder": "Aggiungi i tuoi pronomi, collegamenti esterni o qualsiasi altra cosa desideri condividere.", "account_edit.custom_fields.reorder_button": "Riordina i campi", "account_edit.custom_fields.tip_content": "Puoi facilmente aggiungere credibilità al tuo account Mastodon, verificando i collegamenti a qualsiasi sito web di tua proprietà.", "account_edit.custom_fields.tip_title": "Suggerimento: aggiunta di collegamenti verificati", "account_edit.custom_fields.title": "Campi personalizzati", "account_edit.custom_fields.verified_hint": "Come aggiungo un collegamento verificato?", + "account_edit.display_name.add_label": "Aggiungi il nome visualizzato", + "account_edit.display_name.edit_label": "Modifica il nome visualizzato", "account_edit.display_name.placeholder": "Il tuo nome mostrato è il modo in cui il tuo nome appare sul tuo profilo e nelle timeline.", "account_edit.display_name.title": "Nome mostrato", - "account_edit.featured_hashtags.item": "hashtag", + "account_edit.featured_hashtags.edit_label": "Aggiungi hashtag", "account_edit.featured_hashtags.placeholder": "Aiuta gli altri a identificare e ad accedere rapidamente ai tuoi argomenti preferiti.", "account_edit.featured_hashtags.title": "Hashtag in evidenza", + "account_edit.field_actions.delete": "Elimina il campo", + "account_edit.field_actions.edit": "Modifica il campo", "account_edit.field_delete_modal.confirm": "Si è sicuri di voler eliminare questo campo personalizzato? Questa azione non può essere annullata.", "account_edit.field_delete_modal.delete_button": "Elimina", "account_edit.field_delete_modal.title": "Eliminare il campo personalizzato?", "account_edit.field_edit_modal.add_title": "Aggiungi campo personalizzato", + "account_edit.field_edit_modal.discard_confirm": "Abbandona", + "account_edit.field_edit_modal.discard_message": "Sono presenti modifiche non salvate. Vuoi davvero eliminarle?", "account_edit.field_edit_modal.edit_title": "Modifica campo personalizzato", - "account_edit.field_edit_modal.limit_header": "Superato il limite di caratteri consigliato", - "account_edit.field_edit_modal.limit_message": "Gli utenti dai dispositivi mobili potrebbero non visualizzare completamente il tuo campo.", + "account_edit.field_edit_modal.limit_warning": "Il limite di caratteri raccomandato è stato superato. Gli utenti da dispositivi mobili potrebbero non visualizzare il tuo campo per intero.", "account_edit.field_edit_modal.link_emoji_warning": "Sconsigliamo l'uso di emoji personalizzate in combinazione con gli URL. I campi personalizzati che contengono entrambi verranno visualizzati solo come testo anziché come link, in modo da evitare confusione nell'utente.", "account_edit.field_edit_modal.name_hint": "Per esempio: “Sito web personale”", "account_edit.field_edit_modal.name_label": "Etichetta", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Modifica il testo alternativo", "account_edit.image_edit.remove_button": "Rimuovi l'immagine", "account_edit.image_edit.replace_button": "Sostituisci l'immagine", + "account_edit.item_list.delete": "Elimina {name}", + "account_edit.item_list.edit": "Modifica {name}", "account_edit.name_modal.add_title": "Aggiungi il nome mostrato", "account_edit.name_modal.edit_title": "Modifica il nome mostrato", "account_edit.profile_tab.button_label": "Personalizza", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Trascina per caricare", "account_edit.upload_modal.step_upload.header": "Scegli un'immagine", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, fino a {limit}MB.{br}L'immagine verrà ridimensionata a {width}x{height}px.", - "account_edit.upload_modal.title_add": "Aggiungi la foto del profilo", - "account_edit.upload_modal.title_replace": "Sostituisci la foto del profilo", + "account_edit.upload_modal.title_add.avatar": "Aggiungi la foto del profilo", + "account_edit.upload_modal.title_add.header": "Aggiungi la foto di copertina", + "account_edit.upload_modal.title_replace.avatar": "Sostituisci la foto del profilo", + "account_edit.upload_modal.title_replace.header": "Sostituisci la foto di copertina", "account_edit.verified_modal.details": "Aggiungi credibilità al tuo profilo Mastodon verificando i collegamenti ai siti web personali. Ecco come funziona:", "account_edit.verified_modal.invisible_link.details": "Aggiungi il collegamento alla tua intestazione. La parte importante è rel=\"me\" che impedisce l'impersonificazione sui siti web con contenuti generati dagli utenti. Puoi anche utilizzare un link tag nell'intestazione della pagina al posto di {tag}, ma il codice HTML deve essere accessibile senza eseguire JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Come faccio a rendere il collegamento invisibile?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Aggiungi il tuo sito web come campo personalizzato", "account_edit.verified_modal.title": "Come aggiungere un collegamento verificato", "account_edit_tags.add_tag": "Aggiungi #{tagName}", - "account_edit_tags.column_title": "Modifica gli hashtag in evidenza", + "account_edit_tags.column_title": "Modifica i tag", "account_edit_tags.help_text": "Gli hashtag in evidenza aiutano gli utenti a scoprire e interagire con il tuo profilo. Appaiono come filtri nella visualizzazione Attività della tua pagina del profilo.", + "account_edit_tags.max_tags_reached": "Hai raggiunto il numero massimo di hashtag in evidenza.", "account_edit_tags.search_placeholder": "Inserisci un hashtag…", "account_edit_tags.suggestions": "Suggerimenti:", "account_edit_tags.tag_status_count": "{count, plural, one {# post} other {# post}}", + "account_list.total": "{total, plural, one {# account} other {# account}}", "account_note.placeholder": "Clicca per aggiungere una nota", "admin.dashboard.daily_retention": "Tasso di ritenzione dell'utente per giorno, dopo la registrazione", "admin.dashboard.monthly_retention": "Tasso di ritenzione dell'utente per mese, dopo la registrazione", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Chi seguire", "followed_tags": "Hashtag seguiti", "followers.hide_other_followers": "Questo/a utente ha scelto di non rendere visibili gli altri suoi follower", + "followers.title": "Stai seguendo {name}", "following.hide_other_following": "Questo/a utente ha scelto di non rendere visibile il resto dei profili che segue", + "following.title": "Seguito/a da {name}", "footer.about": "Info", "footer.about_mastodon": "Riguardo Mastodon", "footer.about_server": "Riguardo {domain}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 953fa1fb9196cd..297ed3068e7009 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -123,9 +123,6 @@ "account_edit.bio.title": "자기소개", "account_edit.bio_modal.add_title": "자기소개 추가", "account_edit.bio_modal.edit_title": "자기소개 편집", - "account_edit.button.add": "{item} 추가", - "account_edit.button.delete": "{item} 제거", - "account_edit.button.edit": "{item} 편집", "account_edit.column_button": "완료", "account_edit.column_title": "프로필 편집", "account_note.placeholder": "클릭하여 노트 추가", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index f26df41d4f5e9d..6da1010d08fc78 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "個人紹介", "account_edit.bio_modal.add_title": "加添個人紹介", "account_edit.bio_modal.edit_title": "編個人紹介", - "account_edit.button.add": "加 {item}", - "account_edit.button.delete": "Thâi {item}", - "account_edit.button.edit": "編 {item}", "account_edit.column_button": "做好ah", "account_edit.column_title": "編輯個人資料", - "account_edit.custom_fields.name": "框á", "account_edit.custom_fields.placeholder": "加lí ê代名詞、外部連結,á是其他lí beh分享ê。", "account_edit.custom_fields.reorder_button": "重排框á", "account_edit.custom_fields.tip_content": "Lí通用驗證連kàu lí 所有ê網站ê連結,來增加lí ê Mastodon口座ê通信ê程度。", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "我beh án-tsuánn加驗證過ê連結?", "account_edit.display_name.placeholder": "Lí ê顯示ê名是lí ê名佇lí ê個人資料kap時間線出現ê方式。", "account_edit.display_name.title": "顯示ê名", - "account_edit.featured_hashtags.item": "hashtag", "account_edit.featured_hashtags.placeholder": "幫tsān別lâng認捌,kap緊緊接近使用lí收藏ê主題。", "account_edit.featured_hashtags.title": "特色ê hashtag", "account_edit.field_delete_modal.confirm": "Lí敢確定beh thâi掉tsit ê自訂ê框á?Tsit ê動作bē當改倒轉。", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "敢beh thâi掉自訂ê框á?", "account_edit.field_edit_modal.add_title": "加自訂ê框á", "account_edit.field_edit_modal.edit_title": "編自訂ê框á", - "account_edit.field_edit_modal.limit_header": "超過建議ê字數限制ah", - "account_edit.field_edit_modal.limit_message": "行動設備ê用者有可能bē當看著lí所有ê框á。", "account_edit.field_edit_modal.link_emoji_warning": "Lán無建議佇URL內底用自訂ê emoji。為著避免用者舞花去,自訂ê框á若包含自訂emoji kap URL,kan-ta ē顯示做文字。", "account_edit.field_edit_modal.name_hint": "例:「個人網站」", "account_edit.field_edit_modal.name_label": "標簽", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Giú kàu tsia傳上去", "account_edit.upload_modal.step_upload.header": "揀圖片", "account_edit.upload_modal.step_upload.hint": "WEBP、PNG、GIF á是 JPG 格式,上大 {limit}MB。{br}圖會伸kiu kàu {width}x{height} px。", - "account_edit.upload_modal.title_add": "加個人資料ê相", - "account_edit.upload_modal.title_replace": "替換個人資料ê相", "account_edit.verified_modal.details": "用驗證連kàu個人網站ê連結來加添lí ê Mastodon個人檔案ê通信ê程度。下kha是運作ê方法:", "account_edit.verified_modal.invisible_link.details": "加連結kàu lí ê網頁頭(header)。上重要ê部份是 rel=\"me\",伊防止通過用者生成ê網站內容來做假包。Lí甚至佇網頁ê header毋免用 {tag},反轉用link標簽,但是HTML定著佇無執行JavaScript ê時陣,就ē當接近使用。", "account_edit.verified_modal.invisible_link.summary": "Án-tsuánn khàm掉tsit ê連結?", @@ -229,7 +220,6 @@ "account_edit.verified_modal.step2.header": "Kā lí ê網站加做自訂ê框á", "account_edit.verified_modal.title": "Án-tsuánn加驗證過ê連結", "account_edit_tags.add_tag": "加 #{tagName}", - "account_edit_tags.column_title": "編收藏ê hashtag", "account_edit_tags.help_text": "收藏ê hashtag幫tsān用者發現kap hām lí ê個人資料互動。In會成做過濾器,佇lí ê個人資料頁ê活動內底出現。", "account_edit_tags.search_placeholder": "編輯hashtag……", "account_edit_tags.suggestions": "建議:", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 3be1d0981468b8..d53f17eb659b09 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Biografie", "account_edit.bio_modal.add_title": "Biografie toevoegen", "account_edit.bio_modal.edit_title": "Biografie bewerken", - "account_edit.button.add": "{item} toevoegen", - "account_edit.button.delete": "{item} verwijderen", - "account_edit.button.edit": "{item} bewerken", "account_edit.column_button": "Klaar", "account_edit.column_title": "Profiel bewerken", - "account_edit.custom_fields.name": "veld", "account_edit.custom_fields.placeholder": "Voeg je voornaamwoorden, externe links of iets anders toe dat je wilt delen.", "account_edit.custom_fields.reorder_button": "Velden opnieuw ordenen", "account_edit.custom_fields.tip_content": "Je kunt gemakkelijk je Mastodon-account geloofwaardig maken door links naar websites die van jou zijn te laten verifiëren.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Hoe voeg ik een geverifieerde link toe?", "account_edit.display_name.placeholder": "Je weergavenaam wordt op jouw profiel en op tijdlijnen weergegeven.", "account_edit.display_name.title": "Weergavenaam", - "account_edit.featured_hashtags.item": "hashtags", "account_edit.featured_hashtags.placeholder": "Geef anderen een overzicht van en snel toegang tot je favoriete onderwerpen.", "account_edit.featured_hashtags.title": "Uitgelichte hashtags", "account_edit.field_delete_modal.confirm": "Weet je zeker dat je dit aangepaste veld wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Aangepast veld verwijderen?", "account_edit.field_edit_modal.add_title": "Aangepast veld toevoegen", "account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken", - "account_edit.field_edit_modal.limit_header": "Aanbevolen tekenlimiet overschreden", - "account_edit.field_edit_modal.limit_message": "Mobiele gebruikers zien mogelijk het veld niet volledig.", "account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.", "account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"", "account_edit.field_edit_modal.name_label": "Label", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Hierheen slepen om te uploaden", "account_edit.upload_modal.step_upload.header": "Kies een afbeelding", "account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- of JPG-formaat, tot max. {limit}MB.{br}Afbeelding wordt geschaald naar {width}x{height}px.", - "account_edit.upload_modal.title_add": "Profielfoto toevoegen", - "account_edit.upload_modal.title_replace": "Profielfoto vervangen", "account_edit.verified_modal.details": "Maak je Mastodonprofiel geloofwaardig door links naar persoonlijke websites te verifiëren. Zo werkt het:", "account_edit.verified_modal.invisible_link.details": "Voeg de link aan de HTML van je website toe. Het belangrijkste onderdeel is rel=\"me\", waarmee wordt voorkomen dat websites met user-generated content geïmpersoneerd kunnen worden. Je kunt zelfs een -tag gebruiken binnen de -tag van je website in plaats van {tag}, maar de HTML moet zonder JavaScript toegankelijk zijn.", "account_edit.verified_modal.invisible_link.summary": "Hoe maak ik de link onzichtbaar?", @@ -229,7 +220,6 @@ "account_edit.verified_modal.step2.header": "Voeg je website toe als een aangepast veld", "account_edit.verified_modal.title": "Hoe voeg je een geverifieerde link toe", "account_edit_tags.add_tag": "#{tagName} toevoegen", - "account_edit_tags.column_title": "Uitgelichte hashtags bewerken", "account_edit_tags.help_text": "Uitgelichte hashtags helpen gebruikers je profiel te ontdekken en om er interactie mee te communiceren. Ze verschijnen als filters op je Profielpagina onder het tabblad Activiteit.", "account_edit_tags.search_placeholder": "Voer een hashtag in…", "account_edit_tags.suggestions": "Suggesties:", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index feb88565f8cfb2..ccbe737040596f 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Om meg", "account_edit.bio_modal.add_title": "Skriv om deg sjølv", "account_edit.bio_modal.edit_title": "Endre bio", - "account_edit.button.add": "Legg til {item}", - "account_edit.button.delete": "Slett {item}", - "account_edit.button.edit": "Rediger {item}", "account_edit.column_button": "Ferdig", "account_edit.column_title": "Rediger profil", - "account_edit.custom_fields.name": "felt", "account_edit.custom_fields.placeholder": "Legg til pronomen, lenkjer eller kva du elles vil dela.", "account_edit.custom_fields.reorder_button": "Omorganiser felt", "account_edit.custom_fields.tip_content": "Du kan auka truverdet til Mastodon-kontoen din ved å stadfesta lenker til nettstader du eig.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Korleis legg eg til ei stadfesta lenke?", "account_edit.display_name.placeholder": "Det synlege namnet ditt er det som syner på profilen din og i tidsliner.", "account_edit.display_name.title": "Synleg namn", - "account_edit.featured_hashtags.item": "emneknaggar", "account_edit.featured_hashtags.placeholder": "Hjelp andre å finna og få rask tilgang til favorittemna dine.", "account_edit.featured_hashtags.title": "Utvalde emneknaggar", "account_edit.field_delete_modal.confirm": "Vil du sletta dette tilpassa feltet? Du kan ikkje angra.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Slett tilpassa felt?", "account_edit.field_edit_modal.add_title": "Legg til eit tilpassa felt", "account_edit.field_edit_modal.edit_title": "Rediger tilpassa felt", - "account_edit.field_edit_modal.limit_header": "Over maksgrensa for teikn", - "account_edit.field_edit_modal.limit_message": "Det er ikkje sikkert mobilbrukarar ser heile feltet ditt.", "account_edit.field_edit_modal.link_emoji_warning": "Me rår frå å bruka eigne smilefjes kombinert med adresser. Tilpassa felt som inneheld båe, vil syna som berre tekst i staden for ei lenke, slik at lesarane ikkje blir forvirra.", "account_edit.field_edit_modal.name_hint": "Til dømes «Personleg nettstad»", "account_edit.field_edit_modal.name_label": "Etikett", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Slepp for å lasta opp", "account_edit.upload_modal.step_upload.header": "Vel eit bilete", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eller JPG-format, opp til {limit}MB.{br}Biletet blir skalert til {width}*{height} punkt.", - "account_edit.upload_modal.title_add": "Legg til profilbilete", - "account_edit.upload_modal.title_replace": "Byt ut profilbilete", "account_edit.verified_modal.details": "Auk truverdet til Mastodon-profilen din ved å stadfesta lenker til personlege nettstader. Slik verkar det:", "account_edit.verified_modal.invisible_link.details": "Den viktige delen er rel=\"me\", som på nettstader med brukargenerert innhald vil hindra at andre kan låst som dei er deg. Du kan til og med bruka link i staden for {tag} i toppteksten til sida, men HTML-koden må vera tilgjengeleg utan å måtte køyra JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Korleis gjer eg lenka usynleg?", @@ -229,7 +220,6 @@ "account_edit.verified_modal.step2.header": "Legg til nettstaden din som eige felt", "account_edit.verified_modal.title": "Korleis legg eg til ei stadfesta lenke", "account_edit_tags.add_tag": "Legg til #{tagName}", - "account_edit_tags.column_title": "Rediger utvalde emneknaggar", "account_edit_tags.help_text": "Utvalde emneknaggar hjelper folk å oppdaga og samhandla med profilen din. Dei blir viste som filter på aktivitetsoversikta på profilsida di.", "account_edit_tags.search_placeholder": "Skriv ein emneknagg…", "account_edit_tags.suggestions": "Framlegg:", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index c1a1e33e8452e5..7177317f32c1e7 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -139,12 +139,8 @@ "account.unmute_notifications_short": "Opphev demping av varsler", "account.unmute_short": "Opphev demping", "account_edit.bio.placeholder": "Legg til en kort introduksjon for å hjelpe andre med å identifisere deg.", - "account_edit.button.add": "Legg til {item}", - "account_edit.button.delete": "Slett {item}", - "account_edit.button.edit": "Rediger {item}", "account_edit.column_button": "Ferdig", "account_edit.column_title": "Rediger profil", - "account_edit.custom_fields.name": "felt", "account_edit.custom_fields.reorder_button": "Omorganiser felter", "account_edit.custom_fields.tip_content": "Du kan enkelt øke troverdighet til Mastodon-kontoen din ved å verifisere koblinger til nettsider du eier.", "account_edit.custom_fields.tip_title": "Legg til bekreftede lenker", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index a00a2ab6c11404..d8a861bc37f998 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -90,7 +90,6 @@ "account.unmute_notifications_short": "Restablir las notificacions", "account.unmute_short": "Tornar afichar", "account_edit.column_title": "Modificar lo perfil", - "account_edit.custom_fields.name": "camp", "account_edit.field_delete_modal.delete_button": "Suprimir", "account_edit.field_edit_modal.value_label": "Valor", "account_note.placeholder": "Clicar per ajustar una nòta", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 03e356313ecfbd..b0b49bc117db24 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -141,34 +141,39 @@ "account.unmute": "Dessilenciar @{name}", "account.unmute_notifications_short": "Ativar som de notificações", "account.unmute_short": "Desativar silêncio", + "account_edit.bio.edit_label": "Editar Biografia", + "account_edit.bio.label": "biografia", "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Adicionar biografia", "account_edit.bio_modal.edit_title": "Editar biografia", - "account_edit.button.add": "Adicionar {item}", - "account_edit.button.delete": "Remover {item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Feito", "account_edit.column_title": "Editar perfil", - "account_edit.custom_fields.name": "Campo", + "account_edit.custom_fields.add_label": "Acrescentar campo", + "account_edit.custom_fields.edit_label": "Editar campo", "account_edit.custom_fields.placeholder": "Insira seus pronomes, links externos ou qualquer coisa que queira compartilhar.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Você pode facilmente dar credibilidade à sua conta Mastodon verificando os links para os seus sites.", "account_edit.custom_fields.tip_title": "Dica: Adicionando links verificados", "account_edit.custom_fields.title": "Campos personalizados", "account_edit.custom_fields.verified_hint": "Como adiciono um link verificado?", + "account_edit.display_name.add_label": "Acrescentar nome de exibição", + "account_edit.display_name.edit_label": "Editar nome de exibição", "account_edit.display_name.placeholder": "Seu nome de exibição é a forma com que seu nome aparece em seu perfil e em suas linhas do tempo.", "account_edit.display_name.title": "Nome de exibição", - "account_edit.featured_hashtags.item": "hashtags", + "account_edit.featured_hashtags.edit_label": "Acrescentar hashtags", "account_edit.featured_hashtags.placeholder": "Ajude outros a identificar e ter acesso rápido a seus tópicos favoritos.", "account_edit.featured_hashtags.title": "Hashtags em destaque", + "account_edit.field_actions.delete": "Remover campo", + "account_edit.field_actions.edit": "Editar campo", "account_edit.field_delete_modal.confirm": "Tem certeza que deseja excluir este campo personalizado? Esta ação não pode ser desfeita.", "account_edit.field_delete_modal.delete_button": "Excluir", "account_edit.field_delete_modal.title": "Excluir campo personalizado?", "account_edit.field_edit_modal.add_title": "Adicionar campo personalizado", + "account_edit.field_edit_modal.discard_confirm": "Descartar", + "account_edit.field_edit_modal.discard_message": "Você possui alterações não salvas. Tem certeza de que deseja descartá-las?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_header": "Limite recomendado de caracteres excedido", - "account_edit.field_edit_modal.limit_message": "Usuários de dispositivos móveis podem não ver seu campo completo.", + "account_edit.field_edit_modal.limit_warning": "Excedido o limite recomendado de caracteres. Usuários de dispositivos móveis podem não ver seu campo completamente.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos não utilizar emojis personalizados combinados com URLs. Campos personalizados contendo ambos serão exibidos apenas como texto em vez de link, para evitar confusão dos usuários.", "account_edit.field_edit_modal.name_hint": "Ex. \"Site pessoal\"", "account_edit.field_edit_modal.name_label": "Descrição", @@ -177,6 +182,19 @@ "account_edit.field_edit_modal.value_label": "Valor", "account_edit.field_reorder_modal.drag_cancel": "O arrasto foi cancelado. O campo \"{item}\" foi descartado.", "account_edit.field_reorder_modal.drag_end": "O campo \"{item}\" foi descartado.", + "account_edit.field_reorder_modal.drag_instructions": "Para reordenar campos personalizados, pressione espaço ou enter. Enquanto arrasta, utilize as teclas de seta para mover o campo para cima ou para baixo. Pressione espaço ou enter novamente para colocar o campo em sua nova posição, ou pressione Esc para cancelar.", + "account_edit.field_reorder_modal.drag_move": "Campo \"{item}\" foi movido.", + "account_edit.field_reorder_modal.drag_over": "Campo \"{item}\" foi movido para \"{over}\".", + "account_edit.field_reorder_modal.drag_start": "Campo \"{item}\" foi pego.", + "account_edit.field_reorder_modal.handle_label": "Arrastar campo \"{item}\"", + "account_edit.field_reorder_modal.title": "Reordenar campos", + "account_edit.image_alt_modal.add_title": "Acrescentar texto alternativo", + "account_edit.image_alt_modal.details_content": "FAÇA: NÃO FAÇA: EXEMPLO:", + "account_edit.image_alt_modal.details_title": "Dicas: Texto alternativo para fotos", + "account_edit.image_alt_modal.edit_title": "Editar texto alternativo", + "account_edit.image_alt_modal.text_hint": "Texto alternativo ajuda leitores de tela a entender seu conteúdo.", + "account_edit.image_alt_modal.text_label": "Texto alternativo", + "account_edit.image_delete_modal.confirm": "Tem certeza de que deseja excluir esta imagem? Esta ação não pode ser desfeita.", "account_edit.name_modal.add_title": "Inserir nome de exibição", "account_edit.name_modal.edit_title": "Editar nome de exibição", "account_edit.profile_tab.button_label": "Personalizar", @@ -198,7 +216,6 @@ "account_edit.verified_modal.step2.header": "Adicione seu site como um campo personalizado", "account_edit.verified_modal.title": "Como adicionar um link verificado", "account_edit_tags.add_tag": "Adicionar #{tagName}", - "account_edit_tags.column_title": "Editar hashtags em destaque", "account_edit_tags.help_text": "Hashtags em destaque ajudam os usuários a descobrir e interagir com seu perfil. Elas aparecem como filtros na visualização de Atividade da sua página de Perfil.", "account_edit_tags.search_placeholder": "Insira uma hashtag…", "account_edit_tags.suggestions": "Sugestões:", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index d51565bb25e9fe..62339bf622e72d 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Adicionar biografia", "account_edit.bio_modal.edit_title": "Editar biografia", - "account_edit.button.add": "Adicionar {item}", - "account_edit.button.delete": "Eliminar \"{item}", - "account_edit.button.edit": "Editar {item}", "account_edit.column_button": "Concluído", "account_edit.column_title": "Editar Perfil", - "account_edit.custom_fields.name": "campo", "account_edit.custom_fields.placeholder": "Adicione os seus pronomes, hiperligações externas ou qualquer outra coisa que queira partilhar.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Pode adicionar facilmente credibilidade à sua conta Mastodon, verificando ligações para qualquer website que possua.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Como adiciono um link verificado?", "account_edit.display_name.placeholder": "O seu nome de exibição é como o seu nome aparece no seu perfil e nas linhas do tempo.", "account_edit.display_name.title": "Nome a mostrar", - "account_edit.featured_hashtags.item": "etiquetas", "account_edit.featured_hashtags.placeholder": "Ajude à sua identificação por outros e tenha acesso rápido aos seus tópicos favoritos.", "account_edit.featured_hashtags.title": "Etiquetas em destaque", "account_edit.field_delete_modal.confirm": "Tem certeza de que deseja excluir este campo personalizado? Esta ação não pode ser desfeita.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Excluir campo personalizado?", "account_edit.field_edit_modal.add_title": "Adicionar campo personalizado", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_header": "Limite de caracteres recomendado excedido", - "account_edit.field_edit_modal.limit_message": "Os utilizadores de dispositivos móveis podem não conseguir ver o seu campo na totalidade.", "account_edit.field_edit_modal.link_emoji_warning": "Não recomendamos o uso de emojis personalizados em combinação com URLs. Campos personalizados que contenham ambos serão exibidos apenas como texto, em vez de como hiperligação, para evitar confusão aos utilizadores.", "account_edit.field_edit_modal.name_hint": "Ex.: \"Site pessoal\"", "account_edit.field_edit_modal.name_label": "Rótulo", @@ -214,8 +207,6 @@ "account_edit.upload_modal.step_upload.button": "Explorar ficheiros", "account_edit.upload_modal.step_upload.dragging": "Solte para transferir", "account_edit.upload_modal.step_upload.header": "Escolha uma imagem", - "account_edit.upload_modal.title_add": "Adicionar foto de perfil", - "account_edit.upload_modal.title_replace": "Substituir foto de perfil", "account_edit.verified_modal.details": "Adicione credibilidade ao seu perfil no Mastodon verificando links para sites pessoais. Veja como funciona:", "account_edit.verified_modal.invisible_link.details": "Adicione o link ao seu cabeçalho. A parte importante é rel=\"me\", que evita a personificação em sites com conteúdo gerado por utilizadores. Você também pode usar uma tag de link no cabeçalho da página em vez de {tag}, mas o HTML deve ser acessível sem executar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Como faço para tornar o link invisível?", @@ -224,7 +215,6 @@ "account_edit.verified_modal.step2.header": "Adicione o seu site como um campo personalizado", "account_edit.verified_modal.title": "Como adicionar um link verificado", "account_edit_tags.add_tag": "Adicionar #{tagName}", - "account_edit_tags.column_title": "Editar etiquetas em destaque", "account_edit_tags.help_text": "As etiquetas destacadas ajudam os utilizadores a descobrir e interagir com o seu perfil. Aparecem como filtros na vista de atividade da sua página de perfil.", "account_edit_tags.search_placeholder": "Insira uma etiqueta…", "account_edit_tags.suggestions": "Sugestões:", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 076830d3f31d1e..b65762ddf6d153 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -141,34 +141,39 @@ "account.unmute": "Ktheji zërin @{name}", "account.unmute_notifications_short": "Shfaqi njoftimet", "account.unmute_short": "Çheshtoje", + "account_edit.bio.edit_label": "Përpunoni jetëshkrim", + "account_edit.bio.label": "jetëshkrim", "account_edit.bio.placeholder": "Shtoni një hyrje të shkurtër për të ndihmuar të tjerët t’ju identifikojnë.", "account_edit.bio.title": "Jetëshkrim", "account_edit.bio_modal.add_title": "Shtoni jetëshkrim", "account_edit.bio_modal.edit_title": "Përpunoni jetëshkrim", - "account_edit.button.add": "Shtoje {item}", - "account_edit.button.delete": "Fshije {item}", - "account_edit.button.edit": "Përpunojeni {item}", "account_edit.column_button": "U bë", "account_edit.column_title": "Përpunoni Profil", - "account_edit.custom_fields.name": "fushë", + "account_edit.custom_fields.add_label": "Shtoni fushë", + "account_edit.custom_fields.edit_label": "Përpunoni fushë", "account_edit.custom_fields.placeholder": "Shtoni përemrat tuaj, lidhje të jashme, ose gjithçka tjetë që do të donit të ndanit me të tjerë.", "account_edit.custom_fields.reorder_button": "Rirenditi fushat", "account_edit.custom_fields.tip_content": "Mundeni të shtoni kollak besueshmëri për llogarinë tuaj Mastodon duke verifikuar lidhje për te çfarëdo sajti që është pronë e juaja.", "account_edit.custom_fields.tip_title": "Ndihmëz: Duke shtuar lidhje të verifikuara", "account_edit.custom_fields.title": "Fusha vetjake", "account_edit.custom_fields.verified_hint": "Si të shtoj një lidhje të verifikuar?", + "account_edit.display_name.add_label": "Shtoni emër në ekran", + "account_edit.display_name.edit_label": "Përpunoni emër në ekran", "account_edit.display_name.placeholder": "Emri juaj në ekran është ajo si duket emri juaj në profilikin dhe rrjedhat tuaja kohore.", "account_edit.display_name.title": "Emër në ekran", - "account_edit.featured_hashtags.item": "hashtag-ë", + "account_edit.featured_hashtags.edit_label": "Shtoni hashtag-ë", "account_edit.featured_hashtags.placeholder": "Ndihmoni të tjerët të identifikojnë dhe të hyjnë shpejt e shpejt te subjektet tuaj të parapëlqyer.", "account_edit.featured_hashtags.title": "Hashtag-ë të zgjedhur", + "account_edit.field_actions.delete": "Fshije fushën", + "account_edit.field_actions.edit": "Përpunoni fushën", "account_edit.field_delete_modal.confirm": "Jeni i sigurt se doni të fshihet kjo fushë e përshtatur? Ky veprim s’mund të zhbëhet.", "account_edit.field_delete_modal.delete_button": "Fshije", "account_edit.field_delete_modal.title": "Të fshihet fushë e përshtatur?", "account_edit.field_edit_modal.add_title": "Shtoni fushë të përshtatur", + "account_edit.field_edit_modal.discard_confirm": "Hidhe tej", + "account_edit.field_edit_modal.discard_message": "Keni ndryshime të paruajtura. Jeni i sigurt se doni të hidhen tej?", "account_edit.field_edit_modal.edit_title": "Përpunoni fushë të përshtatur", - "account_edit.field_edit_modal.limit_header": "U tejkalua kufi i rekomanduar shenjash", - "account_edit.field_edit_modal.limit_message": "Përdorues me celular mund të mos e shohin të plotë fushën tuaj.", + "account_edit.field_edit_modal.limit_warning": "Është tejkaluar kufiri i rekomanduar i shenjave. Përdoruesit në celuilar mund të mos e shohin të plotë fushën tuaj.", "account_edit.field_edit_modal.link_emoji_warning": "Rekomandojmë të mos përdoren emoji të përshtatur tok me url-ra. Fusha të përshtatura që i përmbajnë të dyja llojetn do t’i shfaqin si tekst, në vend se si një lidhje, për të parandaluar ngatërrim të përdoruesve.", "account_edit.field_edit_modal.name_hint": "P.sh., “Sajt personal”", "account_edit.field_edit_modal.name_label": "Etiketë", @@ -196,6 +201,8 @@ "account_edit.image_edit.alt_edit_button": "Përpunoni tekst alternativ", "account_edit.image_edit.remove_button": "Hiqe figurën", "account_edit.image_edit.replace_button": "Zëvendësoje figurën", + "account_edit.item_list.delete": "Fshije {name}", + "account_edit.item_list.edit": "Përpunojeni {name}", "account_edit.name_modal.add_title": "Shtoni emër në ekran", "account_edit.name_modal.edit_title": "Përpunoni emër në ekran", "account_edit.profile_tab.button_label": "Përshtateni", @@ -218,8 +225,10 @@ "account_edit.upload_modal.step_upload.dragging": "Lëreni, që të ngarkohet", "account_edit.upload_modal.step_upload.header": "Zgjidhni një figurë", "account_edit.upload_modal.step_upload.hint": "Format WEBP, PNG, GIF ose JPG, deri në {limit}MB.{br}Figura do të ripërmasohet në {width}x{height}px.", - "account_edit.upload_modal.title_add": "Shtoni figurë profili", - "account_edit.upload_modal.title_replace": "Zëvendësoni figurë profili", + "account_edit.upload_modal.title_add.avatar": "Shtoni foto profili", + "account_edit.upload_modal.title_add.header": "Shtoni foto profili", + "account_edit.upload_modal.title_replace.avatar": "Zëvendësoni foto profili", + "account_edit.upload_modal.title_replace.header": "Zëvendësoni foto profili", "account_edit.verified_modal.details": "Shtoni besueshmëri te profili juaj Mastodon duke verifikuar lidhje për te sajte personalë. Ja se si funksionon:", "account_edit.verified_modal.invisible_link.details": "Shtojeni lidhjen te kryet tuaja. Pjesa e rëndësishme është rel=\"me\", e cila pengon imitime në sajte me lëndë të prodhuar nga përdoruesit. Mundeni madje të përdorni një etiketë lidhjeje te kryet e faqes në vend të {tag}, por HTML-ja duhet të jetë e përdorshme pa ekzekutim të JavaScript-it.", "account_edit.verified_modal.invisible_link.summary": "Si ta bëj lidhjen të padukshme?", @@ -228,11 +237,13 @@ "account_edit.verified_modal.step2.header": "Shtojeni sajtin tuaj si një fushë të përshtatur", "account_edit.verified_modal.title": "Si të shtohet një lidhje e verifikuar", "account_edit_tags.add_tag": "Shtoje #{tagName}", - "account_edit_tags.column_title": "Përpunoni hashtag-ë të zgjedhur", + "account_edit_tags.column_title": "Përpunoni Etiketa", "account_edit_tags.help_text": "Hashtag-ët e zgjedhur i ndihmojnë përdoruesit të zbulojnë dhe ndërveprojnë me profilin tuaj. Ata duken si filtra te pamja Veprimtari e faqes tuaj të Profilit.", + "account_edit_tags.max_tags_reached": "Keni mbërritur në numrin maksimum të hashtag-ëve të zgjedhur.", "account_edit_tags.search_placeholder": "Jepni një hashtag…", "account_edit_tags.suggestions": "Sugjerime:", "account_edit_tags.tag_status_count": "{count, plural, one {# postim} other {# postime}}", + "account_list.total": "{total, plural, one {# llogari} other {# llogari}}", "account_note.placeholder": "Klikoni për të shtuar shënim", "admin.dashboard.daily_retention": "Shkallë mbajtjeje përdoruesi, në ditë, pas regjistrimit", "admin.dashboard.monthly_retention": "Shkallë mbajtjeje përdoruesi, në muaj, pas regjistrimit", @@ -622,6 +633,10 @@ "featured_carousel.header": "{count, plural, one {Postim i Fiksuar} other {Postime të Fiksuar}}", "featured_carousel.slide": "Postimi {current, number} nga {max, number} gjithsej", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Tani së fundi keni postuar rreth {items}. Të shtohen këto si hashtag-ë të zgjedhur?", + "featured_tags.suggestions.add": "Shtoji", + "featured_tags.suggestions.added": "Administroni kurdo hashtag-ët tuaj të zgjedhur, nën Përpunoni Profil > Hashtag-ë të zgjedhur.", + "featured_tags.suggestions.dismiss": "Jo, faleminderit", "filter_modal.added.context_mismatch_explanation": "Kjo kategori filtrash nuk aplikohet për kontekstin nën të cilin po merreni me këtë postim. Nëse doni që postimi të filtrohet edhe në këtë kontekst, do t’ju duhet të përpunoni filtrin.", "filter_modal.added.context_mismatch_title": "Mospërputhje kontekstesh!", "filter_modal.added.expired_explanation": "Kjo kategori filtrash ka skaduar, do t’ju duhet të ndryshoni datën e skadimit për të, pa të aplikohet.", @@ -664,7 +679,9 @@ "follow_suggestions.who_to_follow": "Cilët të ndiqen", "followed_tags": "Hashtag-ë të ndjekur", "followers.hide_other_followers": "Ky përdorues ka zgjedhur të mos i bëjë të dukshëm ndjekësit e vet të tjerë", + "followers.title": "Ndjekje e {name}", "following.hide_other_following": "Ky përdorues ka zgjedhur të mos bëjë të dukshëm pjesën tjetër të përdoruesve që ndjek", + "following.title": "Ndjekur nga {name}", "footer.about": "Mbi", "footer.about_mastodon": "Mbi Mastodon-in", "footer.about_server": "Mbi {domain}", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 17613601e9884f..9b0dae15eccec6 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -138,12 +138,8 @@ "account_edit.bio.title": "Biografi", "account_edit.bio_modal.add_title": "Lägg till biografi", "account_edit.bio_modal.edit_title": "Redigera biografi", - "account_edit.button.add": "Lägg till {item}", - "account_edit.button.delete": "Radera {item}", - "account_edit.button.edit": "Redigera {item}", "account_edit.column_button": "Klar", "account_edit.column_title": "Redigera profil", - "account_edit.custom_fields.name": "fält", "account_edit.custom_fields.placeholder": "Lägg till dina pronomen, externa länkar eller något annat du vill dela.", "account_edit.custom_fields.reorder_button": "Ändra ordning för fält", "account_edit.custom_fields.tip_content": "Du kan enkelt lägga till trovärdighet till ditt Mastodon-konto genom att verifiera länkar till alla webbplatser du äger.", @@ -152,7 +148,6 @@ "account_edit.custom_fields.verified_hint": "Hur lägger jag till en verifierad länk?", "account_edit.display_name.placeholder": "Visningsnamnet är hur ditt namn ser ut på din profil och i tidslinjer.", "account_edit.display_name.title": "Visningsnamn", - "account_edit.featured_hashtags.item": "hashtaggar", "account_edit.featured_hashtags.placeholder": "Hjälp andra att identifiera, och få snabb tillgång till, dina favoritämnen.", "account_edit.featured_hashtags.title": "Utvalda hashtaggar", "account_edit.field_delete_modal.confirm": "Är du säker på att du vill ta bort detta tilläggsfält? Denna åtgärd kan inte ångras.", @@ -160,8 +155,6 @@ "account_edit.field_delete_modal.title": "Radera tilläggsfält?", "account_edit.field_edit_modal.add_title": "Lägg till tilläggsfält", "account_edit.field_edit_modal.edit_title": "Redigera tilläggsfält", - "account_edit.field_edit_modal.limit_header": "Rekommenderad teckengräns överskriden", - "account_edit.field_edit_modal.limit_message": "Mobilanvändare kanske inte ser ditt fält i sin helhet.", "account_edit.field_edit_modal.name_hint": "T.ex. “Personlig webbplats”", "account_edit.field_edit_modal.name_label": "Etikett", "account_edit.field_edit_modal.url_warning": "För att lägga till en länk, vänligen inkludera {protocol} i början.", @@ -172,6 +165,7 @@ "account_edit.image_edit.remove_button": "Ta bort bild", "account_edit.image_edit.replace_button": "Ersätt bild", "account_edit.profile_tab.button_label": "Anpassa", + "account_list.total": "{total, plural, one {# konto} other {# konton}}", "account_note.placeholder": "Klicka för att lägga till anteckning", "admin.dashboard.daily_retention": "Användarlojalitet per dag efter registrering", "admin.dashboard.monthly_retention": "Användarlojalitet per månad efter registrering", @@ -549,7 +543,9 @@ "follow_suggestions.who_to_follow": "Rekommenderade profiler", "followed_tags": "Följda hashtags", "followers.hide_other_followers": "Denna användare har valt att inte göra sina andra följare synliga", + "followers.title": "Följer {name}", "following.hide_other_following": "Denna användare har valt att inte göra resten av vilka de följer synliga", + "following.title": "Följs av {name}", "footer.about": "Om", "footer.about_mastodon": "Om Mastodon", "footer.about_server": "Om {domain}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 9f93fbf24b9898..c30e20c8670b4c 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -145,12 +145,8 @@ "account_edit.bio.title": "Kişisel bilgiler", "account_edit.bio_modal.add_title": "Kişisel bilgi ekle", "account_edit.bio_modal.edit_title": "Kişisel bilgiyi düzenle", - "account_edit.button.add": "{item} ekle", - "account_edit.button.delete": "{item} sil", - "account_edit.button.edit": "{item} düzenle", "account_edit.column_button": "Tamamlandı", "account_edit.column_title": "Profili Düzenle", - "account_edit.custom_fields.name": "alan", "account_edit.custom_fields.placeholder": "Zamirlerinizi, harici bağlantılarınızı veya paylaşmak istediğiniz diğer bilgileri ekleyin.", "account_edit.custom_fields.reorder_button": "Alanları yeniden sırala", "account_edit.custom_fields.tip_content": "Sahip olduğunuz web sitelerine bağlantıları doğrulayarak Mastodon hesabınıza kolayca güvenilirlik katabilirsiniz.", @@ -159,7 +155,6 @@ "account_edit.custom_fields.verified_hint": "Doğrulanmış bir bağlantı nasıl eklerim?", "account_edit.display_name.placeholder": "Görünen adınız profilinizde ve zaman akışlarında adınızın nasıl göründüğüdür.", "account_edit.display_name.title": "Görünen ad", - "account_edit.featured_hashtags.item": "etiketler", "account_edit.featured_hashtags.placeholder": "Başkalarının favori konularınızı tanımlamasına ve bunlara hızlı bir şekilde erişmesine yardımcı olun.", "account_edit.featured_hashtags.title": "Öne çıkan etiketler", "account_edit.field_delete_modal.confirm": "Bu özel alanı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", @@ -167,8 +162,6 @@ "account_edit.field_delete_modal.title": "Özel alanı sil?", "account_edit.field_edit_modal.add_title": "Özel alan ekle", "account_edit.field_edit_modal.edit_title": "Özel alanı düzenle", - "account_edit.field_edit_modal.limit_header": "Önerilen karakter sınırı aşıldı", - "account_edit.field_edit_modal.limit_message": "Mobil cihaz kullanıcıları sahayı tam olarak görmeyebilir.", "account_edit.field_edit_modal.link_emoji_warning": "Url'lerle birlikte özel emoji kullanmamanızı öneririz. Her ikisini de içeren özel alanlar, kullanıcıların kafasını karıştırmamak için bağlantı yerine yalnızca metin olarak görüntülenir.", "account_edit.field_edit_modal.name_hint": "Örn. \"Kişisel web sitesi\"", "account_edit.field_edit_modal.name_label": "Etiket", @@ -219,8 +212,6 @@ "account_edit.upload_modal.step_upload.dragging": "Yüklemek için bırakın", "account_edit.upload_modal.step_upload.header": "Bir resim seç", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF veya JPG formatında, en fazla {limit} MB.{br}Görsel {width}x{height} piksel boyutuna getirilir.", - "account_edit.upload_modal.title_add": "Profil fotoğrafı ekle", - "account_edit.upload_modal.title_replace": "Profil fotoğrafını değiştir", "account_edit.verified_modal.details": "Kişisel web sitelerine bağlantıları doğrulayarak Mastodon profilinize güvenilirlik katın. İşte böyle çalışıyor:", "account_edit.verified_modal.invisible_link.details": "Bağlantıyı başlığınıza ekleyin. Önemli olan kısım, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimlik sahtekarlığını önleyen rel=\"me\" özniteliğidir. {tag} yerine sayfanın başlığında bir bağlantı etiketi bile kullanabilirsiniz, ancak HTML, JavaScript çalıştırılmadan erişilebilir olmalıdır.", "account_edit.verified_modal.invisible_link.summary": "Bağlantıyı nasıl görünmez hale getirebilirim?", @@ -229,11 +220,11 @@ "account_edit.verified_modal.step2.header": "Web sitenizi özel bir alan olarak ekleyin", "account_edit.verified_modal.title": "Doğrulanmış bir bağlantı nasıl eklenir", "account_edit_tags.add_tag": "#{tagName} ekle", - "account_edit_tags.column_title": "Öne çıkarılmış etiketleri düzenle", "account_edit_tags.help_text": "Öne çıkan etiketler kullanıcıların profilinizi keşfetmesine ve etkileşim kurmasına yardımcı olur. Profil sayfanızın Etkinlik görünümünde filtreler olarak görünürler.", "account_edit_tags.search_placeholder": "Bir etiket girin…", "account_edit_tags.suggestions": "Öneriler:", "account_edit_tags.tag_status_count": "{count, plural, one {# gönderi} other {# gönderi}}", + "account_list.total": "{total, plural, one {# hesap} other {# hesap}}", "account_note.placeholder": "Not eklemek için tıklayın", "admin.dashboard.daily_retention": "Kayıttan sonra günlük kullanıcı saklama oranı", "admin.dashboard.monthly_retention": "Kayıttan sonra aylık kullanıcı saklama oranı", @@ -674,7 +665,9 @@ "follow_suggestions.who_to_follow": "Takip edebileceklerin", "followed_tags": "Takip edilen etiketler", "followers.hide_other_followers": "Bu kullanıcı diğer takipçilerini görünür kılmamayı seçmiştir", + "followers.title": "{name} takip ediliyor", "following.hide_other_following": "Bu kullanıcı takip ettiği diğer kişileri görünür kılmamayı seçmiştir", + "following.title": "{name} takip ediyor", "footer.about": "Hakkında", "footer.about_mastodon": "Mastodon Hakkında", "footer.about_server": "{domain} Hakkında", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index bbaae71d13e39e..af8f7d186e21b7 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -141,34 +141,39 @@ "account.unmute": "Bỏ phớt lờ @{name}", "account.unmute_notifications_short": "Bỏ phớt lờ thông báo", "account.unmute_short": "Bỏ phớt lờ", + "account_edit.bio.edit_label": "Sửa giới thiệu", + "account_edit.bio.label": "giới thiệu", "account_edit.bio.placeholder": "Thêm một dòng giới thiệu để giúp mọi người nhận ra bạn.", "account_edit.bio.title": "Giới thiệu", "account_edit.bio_modal.add_title": "Thêm giới thiệu", "account_edit.bio_modal.edit_title": "Sửa giới thiệu", - "account_edit.button.add": "Thêm {item}", - "account_edit.button.delete": "Xóa {item}", - "account_edit.button.edit": "Sửa {item}", "account_edit.column_button": "Xong", "account_edit.column_title": "Sửa hồ sơ", - "account_edit.custom_fields.name": "trường", + "account_edit.custom_fields.add_label": "Thêm trường", + "account_edit.custom_fields.edit_label": "Sửa trường", "account_edit.custom_fields.placeholder": "Thêm nghề nghiệp, liên kết ngoài hoặc bất kỳ gì mà bạn muốn.", "account_edit.custom_fields.reorder_button": "Sắp xếp trường", "account_edit.custom_fields.tip_content": "Bạn có thể dễ dàng tăng độ tin cậy cho tài khoản Mastodon của mình bằng cách xác minh liên kết đến bất kỳ trang web nào bạn sở hữu.", "account_edit.custom_fields.tip_title": "Mẹo: Thêm liên kết xác minh", "account_edit.custom_fields.title": "Trường tùy chỉnh", "account_edit.custom_fields.verified_hint": "Làm thế nào để thêm liên kết xác minh?", + "account_edit.display_name.add_label": "Thêm tên gọi", + "account_edit.display_name.edit_label": "Sửa tên gọi", "account_edit.display_name.placeholder": "Tên gọi là tên hiển thị trên hồ sơ của bạn, cũng như bảng tin.", "account_edit.display_name.title": "Tên gọi", - "account_edit.featured_hashtags.item": "hashtag", + "account_edit.featured_hashtags.edit_label": "Thêm hashtag", "account_edit.featured_hashtags.placeholder": "Giúp mọi người nhận diện và truy cập nhanh những chủ đề mà bạn thích.", "account_edit.featured_hashtags.title": "Hashtag thường dùng", + "account_edit.field_actions.delete": "Xóa trường", + "account_edit.field_actions.edit": "Sửa trường", "account_edit.field_delete_modal.confirm": "Bạn có chắc muốn xóa trường này? Hành động này không thể hoàn tác.", "account_edit.field_delete_modal.delete_button": "Xóa", "account_edit.field_delete_modal.title": "Xóa trường tùy chỉnh?", "account_edit.field_edit_modal.add_title": "Thêm trường tùy chỉnh", + "account_edit.field_edit_modal.discard_confirm": "Loại bỏ", + "account_edit.field_edit_modal.discard_message": "Bạn có các thay đổi chưa được lưu. Bạn có muốn loại bỏ chúng?", "account_edit.field_edit_modal.edit_title": "Sửa trường tùy chỉnh", - "account_edit.field_edit_modal.limit_header": "Đã vượt giới hạn ký tự đề xuất", - "account_edit.field_edit_modal.limit_message": "Người dùng di động sẽ không thể thấy đầy đủ trường.", + "account_edit.field_edit_modal.limit_warning": "Vượt quá giới hạn ký tự. Người dùng điện thoại sẽ không thể thấy đầy đủ.", "account_edit.field_edit_modal.link_emoji_warning": "Không nên dùng emoji tùy chỉnh với url. Trường tùy chỉnh chứa cả hai sẽ chỉ hiển thị văn bản, để ngăn chặn việc bối rối.", "account_edit.field_edit_modal.name_hint": "Vd: “Website cá nhân”", "account_edit.field_edit_modal.name_label": "Nhãn", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Sửa văn bản thay thế", "account_edit.image_edit.remove_button": "Gỡ ảnh", "account_edit.image_edit.replace_button": "Thay thế ảnh", + "account_edit.item_list.delete": "Xóa {name}", + "account_edit.item_list.edit": "Sửa {name}", "account_edit.name_modal.add_title": "Thêm tên gọi", "account_edit.name_modal.edit_title": "Sửa tên gọi", "account_edit.profile_tab.button_label": "Tùy chỉnh", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Thả để tải lên", "account_edit.upload_modal.step_upload.header": "Chọn ảnh", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF hoặc JPG, tối đa {limit}MB.{br}Sẽ bị thu xuống {width}x{height}px.", - "account_edit.upload_modal.title_add": "Thêm ảnh đại diện", - "account_edit.upload_modal.title_replace": "Thay thế ảnh đại diện", + "account_edit.upload_modal.title_add.avatar": "Thêm ảnh đại diện", + "account_edit.upload_modal.title_add.header": "Thêm ảnh bìa", + "account_edit.upload_modal.title_replace.avatar": "Thay thế ảnh đại diện", + "account_edit.upload_modal.title_replace.header": "Thay thế ảnh bìa", "account_edit.verified_modal.details": "Tăng độ tin cậy cho hồ sơ Mastodon của bạn bằng cách xác minh liên kết đến trang web cá nhân. Cách thức thực hiện như sau:", "account_edit.verified_modal.invisible_link.details": "Thêm liên kết trên header của trang. Quan trọng là rel=\"me\" giúp ngăn chặn việc mạo danh trên các trang web có nội dung do người dùng tạo. Bạn cũng có thể sử dụng một thẻ link thay vì {tag}, nhưng HTML phải có thể truy cập được mà không cần thực thi JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Làm thế nào để ẩn liên kết?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "Thêm trang web của bạn dưới dạng trường tùy chỉnh", "account_edit.verified_modal.title": "Làm thế nào để thêm liên kết xác minh", "account_edit_tags.add_tag": "Thêm #{tagName}", - "account_edit_tags.column_title": "Sửa hashtag thường dùng", + "account_edit_tags.column_title": "Sửa nhãn", "account_edit_tags.help_text": "Hashtag thường dùng giúp bạn mọi người khám phá và tương tác với hồ sơ của bạn. Chúng xuất hiện như những bộ lọc trên phần Hoạt động hồ sơ.", + "account_edit_tags.max_tags_reached": "Bạn đã đạt số lượng hashtag thường dùng tối đa.", "account_edit_tags.search_placeholder": "Nhập một hashtag…", "account_edit_tags.suggestions": "Được đề xuất:", "account_edit_tags.tag_status_count": "{count, plural, other {# tút}}", + "account_list.total": "{total, plural, other {# tài khoản}}", "account_note.placeholder": "Nhấn để thêm", "admin.dashboard.daily_retention": "Tỉ lệ người dùng sau đăng ký ở lại theo ngày", "admin.dashboard.monthly_retention": "Tỉ lệ người dùng ở lại sau khi đăng ký", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "Gợi ý theo dõi", "followed_tags": "Hashtag theo dõi", "followers.hide_other_followers": "Tài khoản này đã ẩn người theo dõi của họ", + "followers.title": "Đang theo dõi {name}", "following.hide_other_following": "Tài khoản này đã ẩn người mà họ theo dõi", + "following.title": "Theo dõi bởi {name}", "footer.about": "Giới thiệu", "footer.about_mastodon": "Về Mastodon", "footer.about_server": "Về {domain}", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index c49c882c29d635..9cf0de1a1a2728 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -141,34 +141,39 @@ "account.unmute": "不再隐藏 @{name}", "account.unmute_notifications_short": "恢复通知", "account.unmute_short": "取消隐藏", + "account_edit.bio.edit_label": "编辑个人简介", + "account_edit.bio.label": "简介", "account_edit.bio.placeholder": "添加一段简短介绍,帮助其他人认识你。", "account_edit.bio.title": "简介", "account_edit.bio_modal.add_title": "添加个人简介", "account_edit.bio_modal.edit_title": "编辑个人简介", - "account_edit.button.add": "添加 {item}", - "account_edit.button.delete": "删除 {item}", - "account_edit.button.edit": "编辑 {item}", "account_edit.column_button": "完成", "account_edit.column_title": "修改个人资料", - "account_edit.custom_fields.name": "字段", + "account_edit.custom_fields.add_label": "添加字段", + "account_edit.custom_fields.edit_label": "编辑字段", "account_edit.custom_fields.placeholder": "添加你的人称代词、外部链接,或其他你想分享的内容。", "account_edit.custom_fields.reorder_button": "重新排序字段", "account_edit.custom_fields.tip_content": "通过验证任意你拥有网站的链接,你可以轻松增加 Mastodon 账号的可信度。", "account_edit.custom_fields.tip_title": "小贴士:添加已验证的链接", "account_edit.custom_fields.title": "自定义字段", "account_edit.custom_fields.verified_hint": "我如何添加已验证的链接?", + "account_edit.display_name.add_label": "添加显示名称", + "account_edit.display_name.edit_label": "编辑显示名称", "account_edit.display_name.placeholder": "你的显示名称是指你的名字在个人资料及时间线上出现时的样子。", "account_edit.display_name.title": "显示名称", - "account_edit.featured_hashtags.item": "话题标签", + "account_edit.featured_hashtags.edit_label": "添加话题标签", "account_edit.featured_hashtags.placeholder": "帮助其他人认识并快速访问你最喜欢的话题。", "account_edit.featured_hashtags.title": "精选话题标签", + "account_edit.field_actions.delete": "删除字段", + "account_edit.field_actions.edit": "编辑字段", "account_edit.field_delete_modal.confirm": "你确定要删除此自定义字段吗?此操作无法撤消。", "account_edit.field_delete_modal.delete_button": "删除", "account_edit.field_delete_modal.title": "删除自定义字段?", "account_edit.field_edit_modal.add_title": "添加自定义字段", + "account_edit.field_edit_modal.discard_confirm": "丢弃", + "account_edit.field_edit_modal.discard_message": "你有尚未保存的更改。确定要丢弃这些更改吗?", "account_edit.field_edit_modal.edit_title": "编辑自定义字段", - "account_edit.field_edit_modal.limit_header": "已超过建议字数限制", - "account_edit.field_edit_modal.limit_message": "移动端用户可能无法完整看见字段内容。", + "account_edit.field_edit_modal.limit_warning": "已超过建议字数限制。移动端用户可能无法完整看见字段内容。", "account_edit.field_edit_modal.link_emoji_warning": "我们建议不要同时使用自定义表情和网址。同时包含两者的自定义字段将会显示为纯文本而不是链接形式,以避免用户混淆。", "account_edit.field_edit_modal.name_hint": "例如:“个人网站”", "account_edit.field_edit_modal.name_label": "标签", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "编辑替代文本", "account_edit.image_edit.remove_button": "移除图片", "account_edit.image_edit.replace_button": "替换图片", + "account_edit.item_list.delete": "删除 {name}", + "account_edit.item_list.edit": "编辑 {name}", "account_edit.name_modal.add_title": "添加显示名称", "account_edit.name_modal.edit_title": "编辑显示名称", "account_edit.profile_tab.button_label": "自定义", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "将文件拖放到此处开始上传", "account_edit.upload_modal.step_upload.header": "选择图片", "account_edit.upload_modal.step_upload.hint": "支持 WEBP、PNG、GIF 或 JPG 格式,最大 {limit} MB。{br}图片将被缩放至 {width}×{height}px。", - "account_edit.upload_modal.title_add": "添加头像", - "account_edit.upload_modal.title_replace": "替换头像", + "account_edit.upload_modal.title_add.avatar": "添加头像", + "account_edit.upload_modal.title_add.header": "添加封面图", + "account_edit.upload_modal.title_replace.avatar": "替换头像", + "account_edit.upload_modal.title_replace.header": "替换封面图", "account_edit.verified_modal.details": "要增加 Mastodon 个人资料的可信度,可以验证指向个人网站的链接。运作方式如下:", "account_edit.verified_modal.invisible_link.details": "将链接添加到标头(header)中。其中很重要的部分是 rel=\"me\",可以防止他人通过用户生成内容模仿。你甚至可以在页面标头中使用 link 标签而不是 {tag},但包含该部分的 HTML 必须在没有 JavaScript 执行环境下访问时依然存在。", "account_edit.verified_modal.invisible_link.summary": "如何隐藏此链接?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "将你的网站添加到自定义字段", "account_edit.verified_modal.title": "如何添加已验证的链接", "account_edit_tags.add_tag": "添加 #{tagName}", - "account_edit_tags.column_title": "编辑精选话题标签", + "account_edit_tags.column_title": "编辑标签​​​​​", "account_edit_tags.help_text": "精选话题标签可以帮助他人发现并与你的个人资料互动。这些标签会作为过滤器条件出现在你个人资料页面的活动视图中。", + "account_edit_tags.max_tags_reached": "你已达到精选话题标签数量的上限。", "account_edit_tags.search_placeholder": "输入话题标签…", "account_edit_tags.suggestions": "建议:", "account_edit_tags.tag_status_count": "{count, plural, other {# 条嘟文}}", + "account_list.total": "{total, plural, other {# 个账号}}", "account_note.placeholder": "点击添加备注", "admin.dashboard.daily_retention": "注册后用户留存率(按日计算)", "admin.dashboard.monthly_retention": "注册后用户留存率(按月计算)", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "推荐关注", "followed_tags": "已关注话题", "followers.hide_other_followers": "该用户选择不展示其他关注者", + "followers.title": "已关注 {name}", "following.hide_other_following": "该用户选择不展示其关注的其他人", + "following.title": "{name} 关注了此账号", "footer.about": "关于", "footer.about_mastodon": "关于 Mastodon", "footer.about_server": "关于 {domain}", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 06fabfced7fdbd..15256077de688a 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -141,34 +141,39 @@ "account.unmute": "解除靜音 @{name}", "account.unmute_notifications_short": "解除靜音推播通知", "account.unmute_short": "解除靜音", + "account_edit.bio.edit_label": "編輯個人簡介", + "account_edit.bio.label": "個人簡介", "account_edit.bio.placeholder": "加入一段簡短介紹以幫助其他人識別您。", "account_edit.bio.title": "個人簡介", "account_edit.bio_modal.add_title": "新增個人簡介", "account_edit.bio_modal.edit_title": "編輯個人簡介", - "account_edit.button.add": "加入 {item}", - "account_edit.button.delete": "刪除 {item}", - "account_edit.button.edit": "編輯 {item}", "account_edit.column_button": "完成", "account_edit.column_title": "編輯個人檔案", - "account_edit.custom_fields.name": "欄位", + "account_edit.custom_fields.add_label": "新增欄位", + "account_edit.custom_fields.edit_label": "編輯欄位", "account_edit.custom_fields.placeholder": "加入您的稱謂、外部連結、或其他您想分享的。", "account_edit.custom_fields.reorder_button": "重新排序欄位", "account_edit.custom_fields.tip_content": "您能透過驗證任何您擁有網站之連結,以輕鬆增加您 Mastodon 帳號之可信度。", "account_edit.custom_fields.tip_title": "小撇步:新增驗證連結", "account_edit.custom_fields.title": "自訂欄位", "account_edit.custom_fields.verified_hint": "如何新增驗證連結?", + "account_edit.display_name.add_label": "新增顯示名稱", + "account_edit.display_name.edit_label": "編輯顯示名稱", "account_edit.display_name.placeholder": "您的顯示名稱是您將於個人檔案與時間軸的出現方式。", "account_edit.display_name.title": "顯示名稱", - "account_edit.featured_hashtags.item": "主題標籤", + "account_edit.featured_hashtags.edit_label": "新增主題標籤", "account_edit.featured_hashtags.placeholder": "協助其他人識別、以及快速存取您的最愛主題。", "account_edit.featured_hashtags.title": "推薦主題標籤", + "account_edit.field_actions.delete": "刪除欄位", + "account_edit.field_actions.edit": "編輯欄位", "account_edit.field_delete_modal.confirm": "您確定要刪除此自訂欄位嗎?此動作無法復原。", "account_edit.field_delete_modal.delete_button": "刪除", "account_edit.field_delete_modal.title": "是否刪除自訂欄位?", "account_edit.field_edit_modal.add_title": "新增自訂欄位", + "account_edit.field_edit_modal.discard_confirm": "捨棄", + "account_edit.field_edit_modal.discard_message": "您有尚未儲存之變更。您是否確定要捨棄這些變更?", "account_edit.field_edit_modal.edit_title": "編輯自訂欄位", - "account_edit.field_edit_modal.limit_header": "已超過建議字數限制", - "account_edit.field_edit_modal.limit_message": "行動裝置使用者可能無法看見您完整欄位。", + "account_edit.field_edit_modal.limit_warning": "已超過建議字數。行動裝置使用者可能無法檢視您的欄位完整內容。", "account_edit.field_edit_modal.link_emoji_warning": "我們不建議於 URL 中使用自訂 emoji 表情符號。為了避免使用者混淆,包含兩者之自訂欄位將僅顯示為文字,而不是顯示為連結。", "account_edit.field_edit_modal.name_hint": "例如:「個人網站」", "account_edit.field_edit_modal.name_label": "標籤", @@ -197,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "編輯 ALT 說明文字", "account_edit.image_edit.remove_button": "移除圖片", "account_edit.image_edit.replace_button": "替換圖片", + "account_edit.item_list.delete": "刪除 {name}", + "account_edit.item_list.edit": "編輯 {name}", "account_edit.name_modal.add_title": "新增顯示名稱", "account_edit.name_modal.edit_title": "編輯顯示名稱", "account_edit.profile_tab.button_label": "自訂", @@ -219,8 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "拖曳以上傳", "account_edit.upload_modal.step_upload.header": "選擇圖片", "account_edit.upload_modal.step_upload.hint": "WEBP、PNG、GIF 或 JPG 格式,最大 {limit}MB。{br}圖片將會縮放至 {width}x{height} 像素。", - "account_edit.upload_modal.title_add": "新增個人檔案照片", - "account_edit.upload_modal.title_replace": "更換個人檔案照片", + "account_edit.upload_modal.title_add.avatar": "新增個人檔案照片", + "account_edit.upload_modal.title_add.header": "新增封面圖片", + "account_edit.upload_modal.title_replace.avatar": "更換個人檔案照片", + "account_edit.upload_modal.title_replace.header": "更換封面圖片", "account_edit.verified_modal.details": "藉由驗證連結至個人網站增加您 Mastodon 個人檔案之可信度。運作方式如下:", "account_edit.verified_modal.invisible_link.details": "新增連結至您的標頭 (header)。其重要的部分是 rel=\"me\" ,防止透過使用者產生內容模擬。您甚至能使用頁面標頭之 link 標籤取代頁面中的 {tag},但 HTML 必須能於不執行 JavaScript 情況下所存取。", "account_edit.verified_modal.invisible_link.summary": "如何隱藏此連結?", @@ -229,11 +238,13 @@ "account_edit.verified_modal.step2.header": "將您的網站加入為自訂欄位", "account_edit.verified_modal.title": "如何新增驗證連結", "account_edit_tags.add_tag": "加入 #{tagName}", - "account_edit_tags.column_title": "編輯推薦主題標籤", + "account_edit_tags.column_title": "編輯主題標籤", "account_edit_tags.help_text": "推薦主題標籤幫助其他人發現並與您的個人檔案互動。它們將作為過濾器出現於您個人檔案頁面之動態中。", + "account_edit_tags.max_tags_reached": "您已達推薦主題標籤數量上限。", "account_edit_tags.search_placeholder": "請輸入主題標籤…", "account_edit_tags.suggestions": "建議:", "account_edit_tags.tag_status_count": "{count, plural, other {# 則嘟文}}", + "account_list.total": "{total, plural, other {# 個帳號}}", "account_note.placeholder": "點擊以新增備註", "admin.dashboard.daily_retention": "註冊後使用者存留率(日)", "admin.dashboard.monthly_retention": "註冊後使用者存留率(月)", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "推薦跟隨帳號", "followed_tags": "已跟隨主題標籤", "followers.hide_other_followers": "此使用者選擇不公開跟隨者", + "followers.title": "正在跟隨 {name}", "following.hide_other_following": "此使用者選擇不公開跟隨中", + "following.title": "被 {name} 跟隨", "footer.about": "關於", "footer.about_mastodon": "關於 Mastodon", "footer.about_server": "關於 {domain}", diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 32c8e723c27a61..a7ef2e7c387dc6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -793,6 +793,7 @@ ca: view_dashboard_description: Permet als usuaris accedir al tauler i a diverses mètriques view_devops: Operadors de desenvolupament view_devops_description: Permet als usuaris accedir als taulers de control de Sidekiq i pgHero + requires_2fa: Requereix autenticació en dues passes title: Rols rules: add_new: Afegir norma diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 850e68c2181fb3..77d938b6b7d851 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -779,6 +779,7 @@ fi: delete_user_data: Poistaa käyttäjän tiedot delete_user_data_description: Sallii käyttäjien poistaa muiden käyttäjien tiedot viipymättä invite_bypass_approval: Kutsu käyttäjiä arvioimatta + invite_bypass_approval_description: Sallii näiden käyttäjien tälle palvelimelle kutsumien henkilöiden ohittaa moderoinnin hyväksyntä invite_users: Kutsua käyttäjiä invite_users_description: Sallii käyttäjien kutsua uusia käyttäjiä palvelimelle manage_announcements: Hallita tiedotteita diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 8bce2ee5297803..f8cbce5cc3683b 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -447,7 +447,7 @@ hu: create: Tiltás létrehozása hint: A domain tiltása nem gátolja meg az új fiókok hozzáadását az abatbázishoz, de visszamenőlegesen és automatikusan aktivál bizonyos moderációs szabályokat ezen fiókok esetében. severity: - desc_html: A Korlátozás elrejti a domain fiókjaitól származó bejegyzéseket azok elől, akik nem követik őket. A Felfüggesztés eltávolítja a domain fiókjaitól származó összes tartalmat, médiafájlt és profiladatot. Használd a Nincs lehetőséget, ha csak a médiafájlokat akarod elutasítani. + desc_html: A Korlátozás elrejti a domain fiókjaitól származó bejegyzéseket azok elől, akik nem követik őket. A Felfüggesztés eltávolítja a domain fiókjaitól származó összes tartalmat, médiafájlt és profiladatot. Használd a Nincs lehetőséget, ha csak a médiafájlokat akarod elutasítani. noop: Egyik sem silence: Korlátozás suspend: Felfüggesztés @@ -675,7 +675,7 @@ hu: mark_as_sensitive_description_html: A bejelentett bejegyzések médaitartalmait érzékenynek jelöljük, és rögzítünk egy vétséget, hogy segítsük az eszkalációt a fiók későbbi kihágásai esetén. other_description_html: További lehetőségek megjelenítése a fiók viselkedésének szabályozásához, és a jelentett fiók kommunikációjának testreszabásához. resolve_description_html: Nem csinálunk semmit a bejelentett fiókkal, nem jegyzünk fel vétséget, és bezárjuk a bejelentést. - silence_description_html: A profil csak azok számára lesz látható, akik már követik, vagy kézzel rákeresnek, jelentősen korlátozva annak elérését. Ez a művelet bármikor visszafordítható. A fiókkal szemben indított minden bejelentést lezárunk. + silence_description_html: A profil csak azok számára lesz látható, akik már követik, vagy kézileg rákeresnek, ezzel jelentősen korlátozva az elérését. Ez a művelet bármikor visszafordítható. A fiókkal szemben indított minden bejelentést lezár. suspend_description_html: A fiók és minden tartalma elérhetetlenné válik és végül törlésre kerül. A fiókkal kapcsolatbalépni lehetetlen lesz. Ez a művelet 30 napig visszafordítható. A fiók ellen indított minden bejelentést lezárunk. actions_description_html: Döntsd el, mit csináljunk, hogy megoldjuk ezt a bejelentést. Ha valamilyen büntető intézkedést hozol a bejelentett fiók ellen, küldünk neki egy figyelmeztetést e-mailben, kivéve ha a Spam kategóriát választod. actions_description_remote_html: Döntsd el, mit tegyünk a bejelentés lezárásának érdekében. Ez csak azt befolyásolja, hogy a saját kiszolgálód hogyan kommunikál ezzel a távoli fiókkal és hogyan kezeli annak tartalmait. @@ -738,7 +738,7 @@ hu: actions: delete_html: Sértő bejegyzések eltávolítása mark_as_sensitive_html: Sértő bejegyzések médiatartalmainak érzékenyként történő megjelölése - silence_html: "@%{acct} fiók elérésének jelentős korlátozása azzal, hogy ennek profilja és tartalmai csak olyanoknak legyen látható, akik követik vagy manuálisan rákeresnek" + silence_html: A(z) @%{acct} fiók elérésének jelentős korlátozása azáltal, hogy a profilja és a tartalmai csak azoknak lesz látható, akik követik vagy kézileg rákeresnek suspend_html: "@%{acct} felfüggesztése a profil és tartalmainak elérhetetlenné tételével, a fiókkal való interakció ellehetetlenítésével" close_report: 'Bejelentés #%{id} megjelölése megoldottként' close_reports_html: "Minden @%{acct} ellen tett bejelentés megjelölése megoldottként" @@ -778,6 +778,8 @@ hu: administrator_description: A felhasználók ezzel a szereppel minden jogosultsággal rendelkeznek delete_user_data: Felhasználói adatok törlése delete_user_data_description: Lehetővé teszi a felhasználónak, hogy azonnal törölhesse más felhasználó adatait + invite_bypass_approval: Felhasználók meghívása ellenőrzés nélkül + invite_bypass_approval_description: Lehetővé teszi, hogy úgy hívjanak meg embereket a kiszolgálóra, hogy ezek a felhasználók kikerüljék a moderátori jóváhagyást invite_users: Felhasználók meghívása invite_users_description: Lehetővé teszi a felhasználónak, hogy új embereket hívjon meg a kiszolgálóra manage_announcements: Hirdetmények kezelése diff --git a/config/locales/sv.yml b/config/locales/sv.yml index d1b61289dc2eea..a514556ba91864 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1278,6 +1278,7 @@ sv: progress: confirm: Bekräfta e-postadress details: Dina uppgifter + list: Registreringsframsteg review: Vår recension rules: Acceptera regler providers: From d42182d9a28268114d91fa840dafca9e48260bec Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 05:58:04 -0400 Subject: [PATCH 002/335] Use more granular content check via `parsed_body` (#38378) --- .../admin/accounts_controller_spec.rb | 9 +++++---- .../admin/disputes/appeals_controller_spec.rb | 8 +++++--- .../admin/instances_controller_spec.rb | 10 +++++----- .../auth/sessions_controller_spec.rb | 20 +++++++++---------- .../account_controller_concern_spec.rb | 4 ++-- .../settings/imports_controller_spec.rb | 4 ++-- .../confirmations_controller_spec.rb | 10 ++++++---- 7 files changed, 35 insertions(+), 30 deletions(-) diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb index f8e78759ccb4e8..10b8d774cf01cd 100644 --- a/spec/controllers/admin/accounts_controller_spec.rb +++ b/spec/controllers/admin/accounts_controller_spec.rb @@ -63,11 +63,12 @@ def accounts_table_rows note2 = Fabricate(:account_moderation_note, target_account: account, content: 'Note 2 remarks') get :show, params: { id: account.id } - expect(response).to have_http_status(200) - expect(response.body) - .to include(note1.content) - .and include(note2.content) + expect(response) + .to have_http_status(200) + expect(response.parsed_body) + .to have_css("#account_moderation_note_#{note1.id}", text: note1.content) + .and have_css("#account_moderation_note_#{note2.id}", text: note2.content) end end diff --git a/spec/controllers/admin/disputes/appeals_controller_spec.rb b/spec/controllers/admin/disputes/appeals_controller_spec.rb index b67ee30f74b188..6b955dd803daf3 100644 --- a/spec/controllers/admin/disputes/appeals_controller_spec.rb +++ b/spec/controllers/admin/disputes/appeals_controller_spec.rb @@ -23,9 +23,11 @@ it 'returns a page that lists details of appeals' do get :index - expect(response).to have_http_status(:success) - expect(response.body).to include("#{strike.account.username}") - expect(response.body).to include("#{appeal.account.username}") + expect(response) + .to have_http_status(:success) + expect(response.parsed_body) + .to have_css('span.username', text: strike.account.username) + .and have_css('span.target', text: appeal.account.username) end end diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb index b6508eb38bf404..3027c92fcf3944 100644 --- a/spec/controllers/admin/instances_controller_spec.rb +++ b/spec/controllers/admin/instances_controller_spec.rb @@ -47,11 +47,11 @@ def instance_directory_links it 'shows an instance page' do get :show, params: { id: account_popular_main.domain } - expect(response).to have_http_status(200) - - expect(response.body) - .to include(I18n.t('admin.instances.totals_time_period_hint_html')) - .and include(I18n.t('accounts.nothing_here')) + expect(response) + .to have_http_status(200) + expect(response.parsed_body) + .to have_css('p', text: I18n.t('admin.instances.totals_time_period_hint_html')) + .and have_css('p', text: I18n.t('accounts.nothing_here')) expect(Admin::ActionLogFilter).to have_received(:new).with(target_domain: account_popular_main.domain) end diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb index 924122d1617d71..d8d640a0583866 100644 --- a/spec/controllers/auth/sessions_controller_spec.rb +++ b/spec/controllers/auth/sessions_controller_spec.rb @@ -226,8 +226,8 @@ end it 'renders two factor authentication page' do - expect(response.body) - .to include(I18n.t('simple_form.hints.sessions.otp')) + expect(response.parsed_body) + .to have_css('p.hint.authentication-hint', text: I18n.t('simple_form.hints.sessions.otp')) end end @@ -242,8 +242,8 @@ end it 'renders two factor authentication page' do - expect(response.body) - .to include(I18n.t('simple_form.hints.sessions.otp')) + expect(response.parsed_body) + .to have_css('p.hint.authentication-hint', text: I18n.t('simple_form.hints.sessions.otp')) end end @@ -253,8 +253,8 @@ end it 'renders two factor authentication page' do - expect(response.body) - .to include(I18n.t('simple_form.hints.sessions.otp')) + expect(response.parsed_body) + .to have_css('p.hint.authentication-hint', text: I18n.t('simple_form.hints.sessions.otp')) end end @@ -387,8 +387,8 @@ def process_maximum_two_factor_attempts end it 'renders webauthn authentication page' do - expect(response.body) - .to include(I18n.t('simple_form.title.sessions.webauthn')) + expect(response.parsed_body) + .to have_css('h3.title', text: I18n.t('simple_form.title.sessions.webauthn')) end end @@ -398,8 +398,8 @@ def process_maximum_two_factor_attempts end it 'renders webauthn authentication page' do - expect(response.body) - .to include(I18n.t('simple_form.title.sessions.webauthn')) + expect(response.parsed_body) + .to have_css('h3.title', text: I18n.t('simple_form.title.sessions.webauthn')) end end diff --git a/spec/controllers/concerns/account_controller_concern_spec.rb b/spec/controllers/concerns/account_controller_concern_spec.rb index b5c8c166433f5c..2f7e230d482b79 100644 --- a/spec/controllers/concerns/account_controller_concern_spec.rb +++ b/spec/controllers/concerns/account_controller_concern_spec.rb @@ -59,8 +59,8 @@ def success .to have_http_status(200) .and have_http_link_header(webfinger_url(resource: account.to_webfinger_s)).for(rel: 'lrdd', type: 'application/jrd+json') .and have_http_link_header(ActivityPub::TagManager.instance.uri_for(account)).for(rel: 'alternate', type: 'application/activity+json') - expect(response.body) - .to include(account.username) + expect(response.parsed_body) + .to eq(account.username) end end end diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index c2c6c353f31077..0b399fcc40fa95 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -22,8 +22,8 @@ it 'assigns the expected imports', :aggregate_failures do expect(response).to have_http_status(200) expect(response.headers['Cache-Control']).to include('private, no-store') - expect(response.body) - .to include("bulk_import_#{import.id}") + expect(response.parsed_body) + .to have_css("#bulk_import_#{import.id}") .and not_include("bulk_import_#{other_import.id}") end end diff --git a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb index db4fb19411fb0c..a87c55364e5a4b 100644 --- a/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb +++ b/spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb @@ -12,7 +12,8 @@ expect(response).to have_http_status(200) expect(response.body) .to include(qr_code_markup) - .and include(I18n.t('settings.two_factor_authentication')) + expect(response.parsed_body) + .to have_title(I18n.t('settings.two_factor_authentication')) end def qr_code_markup @@ -80,7 +81,8 @@ def totp_provisioning_uri .to have_http_status(200) expect(response.body) .to include(*otp_backup_codes) - .and include(I18n.t('settings.two_factor_authentication')) + expect(response.parsed_body) + .to have_title(I18n.t('settings.two_factor_authentication')) end end @@ -98,8 +100,8 @@ def totp_provisioning_uri it 'renders page with error message' do subject - expect(response.body) - .to include(I18n.t('otp_authentication.wrong_code')) + expect(response.parsed_body) + .to have_css('.flash-message', text: I18n.t('otp_authentication.wrong_code')) end it_behaves_like 'renders expected page' From 52a8bf4118deb36f75272cb2b5375ea6fb01bdf1 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 05:59:38 -0400 Subject: [PATCH 003/335] Add constants for delay in services (#38375) --- app/lib/activitypub/activity/create.rb | 11 +++++++---- app/services/activitypub/process_account_service.rb | 9 ++++++--- .../activitypub/process_featured_item_service.rb | 4 +++- .../activitypub/process_status_update_service.rb | 11 +++++++---- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index aa0c7269d6b46c..3b86d561c4c033 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true class ActivityPub::Activity::Create < ActivityPub::Activity + DISTRIBUTE_DELAY = 1.minute + PROCESSING_DELAY = (30.seconds)..(10.minutes) + def perform @account.schedule_refresh_if_stale! @@ -73,7 +76,7 @@ def process_status def distribute # Spread out crawling randomly to avoid DDoSing the link - LinkCrawlWorker.perform_in(rand(1..59).seconds, @status.id) + LinkCrawlWorker.perform_in(rand(DISTRIBUTE_DELAY), @status.id) # Distribute into home and list feeds and notify mentioned accounts ::DistributionWorker.perform_async(@status.id, { 'silenced_account_ids' => @silenced_account_ids }) if @options[:override_timestamps] || @status.within_realtime_window? @@ -315,7 +318,7 @@ def process_attachments media_attachment.download_thumbnail! media_attachment.save rescue Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - RedownloadMediaWorker.perform_in(rand(30..600).seconds, media_attachment.id) + RedownloadMediaWorker.perform_in(rand(PROCESSING_DELAY), media_attachment.id) rescue Seahorse::Client::NetworkingError => e Rails.logger.warn "Error storing media attachment: #{e}" RedownloadMediaWorker.perform_async(media_attachment.id) @@ -371,7 +374,7 @@ def resolve_thread(status) def resolve_unresolved_mentions(status) @unresolved_mentions.uniq.each do |uri| - MentionResolveWorker.perform_in(rand(30...600).seconds, status.id, uri, { 'request_id' => @options[:request_id] }) + MentionResolveWorker.perform_in(rand(PROCESSING_DELAY), status.id, uri, { 'request_id' => @options[:request_id] }) end end @@ -394,7 +397,7 @@ def fetch_and_verify_quote embedded_quote = safe_prefetched_embed(@account, @status_parser.quoted_object, @json['context']) ActivityPub::VerifyQuoteService.new.call(@quote, @quote_approval_uri, fetchable_quoted_uri: @quote_uri, prefetched_quoted_object: embedded_quote, request_id: @options[:request_id], depth: @options[:depth]) rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(30..600).seconds, @quote.id, @quote_uri, { 'request_id' => @options[:request_id], 'approval_uri' => @quote_approval_uri }) + ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(PROCESSING_DELAY), @quote.id, @quote_uri, { 'request_id' => @options[:request_id], 'approval_uri' => @quote_approval_uri }) end def conversation_from_uri(uri) diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index ad59f0b46b7e28..bececf4baccf43 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -10,6 +10,9 @@ class ActivityPub::ProcessAccountService < BaseService SUBDOMAINS_RATELIMIT = 10 DISCOVERIES_PER_REQUEST = 400 + PROCESSING_DELAY = (30.seconds)..(10.minutes) + VERIFY_DELAY = 10.minutes + VALID_URI_SCHEMES = %w(http https).freeze # Should be called with confirmed valid JSON @@ -152,7 +155,7 @@ def set_fetchable_attributes! @account.avatar = nil if @account.avatar_remote_url.blank? @account.avatar_description = avatar_description || '' rescue Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - RedownloadAvatarWorker.perform_in(rand(30..600).seconds, @account.id) + RedownloadAvatarWorker.perform_in(rand(PROCESSING_DELAY), @account.id) end begin header_url, header_description = image_url_and_description('image') @@ -160,7 +163,7 @@ def set_fetchable_attributes! @account.header = nil if @account.header_remote_url.blank? @account.header_description = header_description || '' rescue Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - RedownloadHeaderWorker.perform_in(rand(30..600).seconds, @account.id) + RedownloadHeaderWorker.perform_in(rand(PROCESSING_DELAY), @account.id) end @account.statuses_count = outbox_total_items if outbox_total_items.present? @account.following_count = following_total_items if following_total_items.present? @@ -210,7 +213,7 @@ def check_featured_collections_collection! end def check_links! - VerifyAccountLinksWorker.perform_in(rand(10.minutes.to_i), @account.id) + VerifyAccountLinksWorker.perform_in(rand(VERIFY_DELAY), @account.id) end def process_duplicate_accounts! diff --git a/app/services/activitypub/process_featured_item_service.rb b/app/services/activitypub/process_featured_item_service.rb index 961de802c95482..718a7d1f23f49b 100644 --- a/app/services/activitypub/process_featured_item_service.rb +++ b/app/services/activitypub/process_featured_item_service.rb @@ -5,6 +5,8 @@ class ActivityPub::ProcessFeaturedItemService include Lockable include Redisable + PROCESSING_DELAY = (30.seconds)..(10.minutes) + def call(collection, uri_or_object, position: nil, request_id: nil) @collection = collection @request_id = request_id @@ -47,6 +49,6 @@ def new_item def verify_authorization! ActivityPub::VerifyFeaturedItemService.new.call(@collection_item, @approval_uri, request_id: @request_id) rescue Mastodon::RecursionLimitExceededError, Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - ActivityPub::VerifyFeaturedItemWorker.perform_in(rand(30..600).seconds, @collection_item.id, @approval_uri, @request_id) + ActivityPub::VerifyFeaturedItemWorker.perform_in(rand(PROCESSING_DELAY), @collection_item.id, @approval_uri, @request_id) end end diff --git a/app/services/activitypub/process_status_update_service.rb b/app/services/activitypub/process_status_update_service.rb index 2279ff126c4dff..a76c49ca087a22 100644 --- a/app/services/activitypub/process_status_update_service.rb +++ b/app/services/activitypub/process_status_update_service.rb @@ -5,6 +5,9 @@ class ActivityPub::ProcessStatusUpdateService < BaseService include Redisable include Lockable + CRAWL_DELAY = 1.minute + PROCESSING_DELAY = (30.seconds)..(10.minutes) + def call(status, activity_json, object_json, request_id: nil) raise ArgumentError, 'Status has unsaved changes' if status.changed? @@ -128,7 +131,7 @@ def download_media_files! media_attachment.download_thumbnail! if media_attachment.thumbnail_remote_url_previously_changed? media_attachment.save rescue Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - RedownloadMediaWorker.perform_in(rand(30..600).seconds, media_attachment.id) + RedownloadMediaWorker.perform_in(rand(PROCESSING_DELAY), media_attachment.id) rescue Seahorse::Client::NetworkingError => e Rails.logger.warn "Error storing media attachment: #{e}" end @@ -279,7 +282,7 @@ def update_mentions! # Queue unresolved mentions for later unresolved_mentions.uniq.each do |uri| - MentionResolveWorker.perform_in(rand(30...600).seconds, @status.id, uri, { 'request_id' => @request_id }) + MentionResolveWorker.perform_in(rand(PROCESSING_DELAY), @status.id, uri, { 'request_id' => @request_id }) end end @@ -361,7 +364,7 @@ def fetch_and_verify_quote!(quote, approval_uri, quote_uri) embedded_quote = safe_prefetched_embed(@account, @status_parser.quoted_object, @activity_json['context']) ActivityPub::VerifyQuoteService.new.call(quote, approval_uri, fetchable_quoted_uri: quote_uri, prefetched_quoted_object: embedded_quote, request_id: @request_id) rescue Mastodon::UnexpectedResponseError, *Mastodon::HTTP_CONNECTION_ERRORS - ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(30..600).seconds, quote.id, quote_uri, { 'request_id' => @request_id, 'approval_uri' => approval_uri }) + ActivityPub::RefetchAndVerifyQuoteWorker.perform_in(rand(PROCESSING_DELAY), quote.id, quote_uri, { 'request_id' => @request_id, 'approval_uri' => approval_uri }) end def update_counts! @@ -419,7 +422,7 @@ def already_updated_more_recently? def reset_preview_card! @status.reset_preview_card! - LinkCrawlWorker.perform_in(rand(1..59).seconds, @status.id) + LinkCrawlWorker.perform_in(rand(CRAWL_DELAY), @status.id) end def broadcast_updates! From ea54c266ed83ef46552acae7e5276f1213900c5d Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Mar 2026 11:14:39 +0100 Subject: [PATCH 004/335] Update dependency `bcrypt` (#38381) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fc2beaa711124b..cc3843b19b2153 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,7 +121,7 @@ GEM rexml base64 (0.3.0) bcp47_spec (0.2.1) - bcrypt (3.1.21) + bcrypt (3.1.22) benchmark (0.5.0) better_errors (2.10.1) erubi (>= 1.0.0) From 5267a99fb8703116ff95f71ca1fe4a0b4facbf21 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 11:17:17 +0100 Subject: [PATCH 005/335] Update dependency ws to v8.20.0 (#38328) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1ba09cba4c26f0..5ba601231d910d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -15079,8 +15079,8 @@ __metadata: linkType: hard "ws@npm:^8.12.1, ws@npm:^8.18.0, ws@npm:^8.19.0": - version: 8.19.0 - resolution: "ws@npm:8.19.0" + version: 8.20.0 + resolution: "ws@npm:8.20.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -15089,7 +15089,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10c0/4741d9b9bc3f9c791880882414f96e36b8b254e34d4b503279d6400d9a4b87a033834856dbdd94ee4b637944df17ea8afc4bce0ff4a1560d2166be8855da5b04 + checksum: 10c0/956ac5f11738c914089b65878b9223692ace77337ba55379ae68e1ecbeae9b47a0c6eb9403688f609999a58c80d83d99865fe0029b229d308b08c1ef93d4ea14 languageName: node linkType: hard From d6da3bdf1f981fb77974c4c239868df58a9b3fc8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 10:18:14 +0000 Subject: [PATCH 006/335] Update dependency react-easy-crop to v5.5.7 (#38355) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5ba601231d910d..dde95e8d33d4e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11786,15 +11786,15 @@ __metadata: linkType: hard "react-easy-crop@npm:^5.5.6": - version: 5.5.6 - resolution: "react-easy-crop@npm:5.5.6" + version: 5.5.7 + resolution: "react-easy-crop@npm:5.5.7" dependencies: normalize-wheel: "npm:^1.0.1" tslib: "npm:^2.0.1" peerDependencies: react: ">=16.4.0" react-dom: ">=16.4.0" - checksum: 10c0/ce623791d31559fc46f210ece7b22c0f659710d5de219ef9fb05650940f50445d5e6573ed229b66fad06dfda9651ae458c0f5efb8e1cabdf01511dc32942cdc8 + checksum: 10c0/446cc58157031af9638c88dc91bc4136d09e21c6562f030291e1e0d3a7808ce9fe29e2d44116c2ac70470c1a1fe2cd3947df3abc60c82faa550e8500c4bf443c languageName: node linkType: hard From b399dc3191552d9bb50f5435b43cd7bc39332111 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 06:23:45 -0400 Subject: [PATCH 007/335] Add coverage for "fields" feature of Account (#38369) --- spec/models/account/fields_spec.rb | 198 +++++++++++++++++++++++++++++ spec/models/account_spec.rb | 15 --- 2 files changed, 198 insertions(+), 15 deletions(-) create mode 100644 spec/models/account/fields_spec.rb diff --git a/spec/models/account/fields_spec.rb b/spec/models/account/fields_spec.rb new file mode 100644 index 00000000000000..cca2d59e8b8dc9 --- /dev/null +++ b/spec/models/account/fields_spec.rb @@ -0,0 +1,198 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Account, '#fields' do + subject { Fabricate.build :account } + + describe 'Validations' do + context 'when account is local' do + subject { Fabricate.build :account, domain: nil } + + it { is_expected.to allow_value(fields_empty_name_value).for(:fields) } + it { is_expected.to_not allow_values(fields_over_limit, fields_empty_name).for(:fields) } + + def fields_empty_name_value + Array.new(4) { { 'name' => '', 'value' => '' } } + end + + def fields_over_limit + Array.new(described_class::DEFAULT_FIELDS_SIZE + 1) { { 'name' => 'Name', 'value' => 'Value', 'verified_at' => '01/01/1970' } } + end + + def fields_empty_name + [{ 'name' => '', 'value' => 'Value', 'verified_at' => '01/01/1970' }] + end + end + end + + describe '#fields' do + subject { account.fields } + + let(:account) { Fabricate.build :account } + + context 'when attribute is nil' do + before { account.fields = nil } + + it { is_expected.to be_empty } + end + + context 'when attribute has valid data' do + before { account.fields = [{ 'name' => 'Personal Web Site', 'value' => 'https://host.example' }] } + + it 'returns array of account field objects' do + expect(subject) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Personal/, value: /host.example/)) + ) + end + end + + context 'when attribute has invalid data' do + before { account.fields = [{ 'blurp' => 'zorp', '@@@@' => '###' }] } + + it { is_expected.to be_empty } + end + end + + describe '#fields_attributes=' do + let(:account) { Fabricate.build :account } + + context 'when sent empty hash' do + it 'assigns empty array to fields' do + account.fields_attributes = {} + + expect(account.fields) + .to be_empty + end + end + + context 'when sent indexed hash' do + it 'assigns fields array' do + account.fields_attributes = { + '0' => { name: 'Color', value: 'Red' }, + '1' => { name: 'Size', value: 'Medium' }, + } + + expect(account.fields) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Color/, value: /Red/)), + be_a(Account::Field).and(have_attributes(name: /Size/, value: /Medium/)) + ) + end + end + + context 'when sent indexed hash with missing values' do + it 'rejects blanks and assigns fields array' do + account.fields_attributes = { + '0' => { name: 'Color', value: 'Red' }, + '1' => { name: '', value: '' }, + } + + expect(account.fields) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Color/, value: /Red/)) + ) + end + end + + context 'when sent array of field hashes' do + it 'assigns fields array' do + account.fields_attributes = [ + { name: 'Color', value: 'Red' }, + { name: 'Size', value: 'Medium' }, + ] + + expect(account.fields) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Color/, value: /Red/)), + be_a(Account::Field).and(have_attributes(name: /Size/, value: /Medium/)) + ) + end + end + + context 'when fields were previously a hash' do + before { account.fields = {} } + + it 'assigns fields array' do + account.fields_attributes = { + '0' => { name: 'Color', value: 'Red' }, + } + + expect(account.fields) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Color/, value: /Red/)) + ) + end + end + + context 'when fields were previously verified' do + before { account.fields = [{ name: 'Color', value: 'Red', verified_at: 2.weeks.ago.to_datetime }] } + + it 'assigns fields array with preserved verification' do + account.fields_attributes = { + '0' => { name: 'Color', value: 'Red' }, + } + + expect(account.fields) + .to be_an(Array) + .and contain_exactly( + be_a(Account::Field).and(have_attributes(name: /Color/, value: /Red/, verified_at: 2.weeks.ago.to_datetime).and(be_verified)) + ) + end + end + end + + describe '#build_fields' do + let(:account) { Fabricate.build :account } + + context 'when fields already full' do + before { account.fields = Array.new(Account::DEFAULT_FIELDS_SIZE) { |i| { name: "Name#{i}", value: 'Test' } } } + + it 'returns nil without updating fields' do + expect(account.build_fields) + .to be_nil + + expect(account.fields) + .to be_an(Array) + .and have_attributes(size: Account::DEFAULT_FIELDS_SIZE) + end + end + + context 'when fields partially full' do + before { account.fields = Array.new(2) { |i| { name: "Name#{i}", value: 'Test' } } } + + it 'returns nil without updating fields' do + expect(account.build_fields) + .to be_an(Array) + + expect(account.attributes['fields']) + .to be_an(Array) + .and contain_exactly( + include('name' => /Name/), + include('name' => /Name/), + include('name' => ''), + include('name' => '') + ) + end + end + + context 'when fields were previously a hash' do + before { account.fields = {} } + + it 'assigns fields array with empty values' do + expect(account.build_fields) + .to be_an(Array) + + expect(account.attributes['fields']) + .to be_an(Array) + .and all(include('name' => '', 'value' => '')) + end + end + end +end diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index bb521e234a8d15..8786760125330c 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -546,9 +546,6 @@ it { is_expected.to_not allow_values(account_note_over_limit).for(:note) } - it { is_expected.to allow_value(fields_empty_name_value).for(:fields) } - it { is_expected.to_not allow_values(fields_over_limit, fields_empty_name).for(:fields) } - it { is_expected.to validate_absence_of(:followers_url).on(:create) } it { is_expected.to validate_absence_of(:inbox_url).on(:create) } it { is_expected.to validate_absence_of(:shared_inbox_url).on(:create) } @@ -590,18 +587,6 @@ def display_name_over_limit def account_note_over_limit 'a' * described_class::NOTE_LENGTH_LIMIT * 2 end - - def fields_empty_name_value - Array.new(4) { { 'name' => '', 'value' => '' } } - end - - def fields_over_limit - Array.new(described_class::DEFAULT_FIELDS_SIZE + 1) { { 'name' => 'Name', 'value' => 'Value', 'verified_at' => '01/01/1970' } } - end - - def fields_empty_name - [{ 'name' => '', 'value' => 'Value', 'verified_at' => '01/01/1970' }] - end end describe 'scopes' do From bafc552a722fc6875c9adc845fd32ba031e58f66 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 25 Mar 2026 11:24:19 +0100 Subject: [PATCH 008/335] Hide empty state of topic suggestions dropdown in Collection editor (#38356) --- .../features/collections/editor/details.tsx | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index 73847a2b20912e..9a7ea16be8dc6d 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useMemo, useState } from 'react'; +import { Fragment, useCallback, useMemo } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; @@ -10,7 +10,6 @@ import { languages } from '@/mastodon/initial_state'; import { hasSpecialCharacters, inputToHashtag, - trimHashFromStart, } from '@/mastodon/utils/hashtags'; import type { ApiCreateCollectionPayload, @@ -297,14 +296,7 @@ export const CollectionDetails: React.FC = () => { const TopicField: React.FC = () => { const intl = useIntl(); const dispatch = useAppDispatch(); - const { id, topic } = useAppSelector((state) => state.collections.editor); - - const collection = useAppSelector((state) => - id ? state.collections.collections[id] : undefined, - ); - const [isInitialValue, setIsInitialValue] = useState( - () => trimHashFromStart(topic) === (collection?.tag?.name ?? ''), - ); + const { topic } = useAppSelector((state) => state.collections.editor); const { tags, isLoading, searchTags } = useSearchTags({ query: topic, @@ -312,7 +304,6 @@ const TopicField: React.FC = () => { const handleTopicChange = useCallback( (event: React.ChangeEvent) => { - setIsInitialValue(false); dispatch( updateCollectionEditorField({ field: 'topic', @@ -379,7 +370,7 @@ const TopicField: React.FC = () => { } : undefined } - suppressMenu={isInitialValue} + suppressMenu={!tags.length} /> ); }; From 5d7682c7ddbf01dc0f6a4d244d215c2904b8e11b Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 06:35:09 -0400 Subject: [PATCH 009/335] Extract `security_key_options` endpoint to standalone controller (#38367) --- .../security_key_options_controller.rb | 24 +++++++++ app/controllers/auth/sessions_controller.rb | 17 ------ config/routes.rb | 4 +- .../sessions/security_key_options_spec.rb | 54 +++++++++++++------ 4 files changed, 66 insertions(+), 33 deletions(-) create mode 100644 app/controllers/auth/sessions/security_key_options_controller.rb diff --git a/app/controllers/auth/sessions/security_key_options_controller.rb b/app/controllers/auth/sessions/security_key_options_controller.rb new file mode 100644 index 00000000000000..1bd2b4043c7e1c --- /dev/null +++ b/app/controllers/auth/sessions/security_key_options_controller.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class Auth::Sessions::SecurityKeyOptionsController < ApplicationController + skip_before_action :check_self_destruct! + skip_before_action :require_functional! + skip_before_action :update_user_sign_in + + def show + user = User.find_by(id: session[:attempt_user_id]) + + if user&.webauthn_enabled? + options_for_get = WebAuthn::Credential.options_for_get( + allow: user.webauthn_credentials.pluck(:external_id), + user_verification: 'discouraged' + ) + + session[:webauthn_challenge] = options_for_get.challenge + + render json: options_for_get, status: 200 + else + render json: { error: t('webauthn_credentials.not_enabled') }, status: 401 + end + end +end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 077f4d9db5c0ae..67bee2344ef5ea 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -38,23 +38,6 @@ def destroy flash.delete(:notice) end - def webauthn_options - user = User.find_by(id: session[:attempt_user_id]) - - if user&.webauthn_enabled? - options_for_get = WebAuthn::Credential.options_for_get( - allow: user.webauthn_credentials.pluck(:external_id), - user_verification: 'discouraged' - ) - - session[:webauthn_challenge] = options_for_get.challenge - - render json: options_for_get, status: 200 - else - render json: { error: t('webauthn_credentials.not_enabled') }, status: 401 - end - end - protected def find_user diff --git a/config/routes.rb b/config/routes.rb index bff3f9d034f54a..1bc32a28615c8b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -76,8 +76,10 @@ def redirect_with_vary(path) namespace :auth do resource :setup, only: [:show, :update], controller: :setup resource :challenge, only: [:create] - get 'sessions/security_key_options', to: 'sessions#webauthn_options' post 'captcha_confirmation', to: 'confirmations#confirm_captcha', as: :captcha_confirmation + namespace :sessions do + resource :security_key_options, only: :show + end end end diff --git a/spec/requests/auth/sessions/security_key_options_spec.rb b/spec/requests/auth/sessions/security_key_options_spec.rb index e53b9802b4c820..17ec364a9be0dc 100644 --- a/spec/requests/auth/sessions/security_key_options_spec.rb +++ b/spec/requests/auth/sessions/security_key_options_spec.rb @@ -5,9 +5,9 @@ RSpec.describe 'Security Key Options' do describe 'GET /auth/sessions/security_key_options' do - let!(:user) do - Fabricate(:user, email: 'x@y.com', password: 'abcdefgh', otp_required_for_login: true, otp_secret: User.generate_otp_secret) - end + subject { get '/auth/sessions/security_key_options' } + + let!(:user) { Fabricate(:user, email: 'x@y.com', password: 'abcdefgh', otp_required_for_login: true, otp_secret: User.generate_otp_secret) } context 'with WebAuthn and OTP enabled as second factor' do let(:domain) { "#{Rails.configuration.x.use_https ? 'https' : 'http'}://#{Rails.configuration.x.web_domain}" } @@ -19,31 +19,55 @@ user.update(webauthn_id: WebAuthn.generate_user_id) Fabricate( :webauthn_credential, - user_id: user.id, external_id: public_key_credential.id, - public_key: public_key_credential.public_key + public_key: public_key_credential.public_key, + user_id: user.id ) - post '/auth/sign_in', params: { user: { email: user.email, password: user.password } } end - it 'returns http success' do - get '/auth/sessions/security_key_options' + context 'when signed in' do + before { post '/auth/sign_in', params: { user: { email: user.email, password: user.password } } } - expect(response) - .to have_http_status 200 - expect(response.content_type) - .to start_with('application/json') + it 'returns http success' do + subject + + expect(response) + .to have_http_status 200 + expect(response.media_type) + .to eq('application/json') + expect(response.parsed_body) + .to include( + challenge: be_present, + userVerification: eq('discouraged'), + allowCredentials: contain_exactly(include(type: 'public-key', id: be_present)) + ) + end + end + + context 'when not signed in' do + it 'returns http unauthorized' do + subject + + expect(response) + .to have_http_status 401 + expect(response.media_type) + .to eq('application/json') + expect(response.parsed_body) + .to include(error: I18n.t('webauthn_credentials.not_enabled')) + end end end context 'when WebAuthn not enabled' do it 'returns http unauthorized' do - get '/auth/sessions/security_key_options' + subject expect(response) .to have_http_status 401 - expect(response.content_type) - .to start_with('application/json') + expect(response.media_type) + .to eq('application/json') + expect(response.parsed_body) + .to include(error: I18n.t('webauthn_credentials.not_enabled')) end end end From 74123950be00e498fa1b78fcfaf9f5b9ec3246eb Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 25 Mar 2026 11:46:18 +0100 Subject: [PATCH 010/335] Profile editing: Fix incorrect label (#38382) --- app/javascript/mastodon/features/account_edit/index.tsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/index.tsx b/app/javascript/mastodon/features/account_edit/index.tsx index 9161b2f7a553a8..d129f60ee52ae1 100644 --- a/app/javascript/mastodon/features/account_edit/index.tsx +++ b/app/javascript/mastodon/features/account_edit/index.tsx @@ -59,7 +59,7 @@ export const messages = defineMessages({ defaultMessage: 'Add a short introduction to help others identify you.', }, bioAddLabel: { - id: 'account_edit.bio.label', + id: 'account_edit.bio.add_label', defaultMessage: 'Add bio', }, bioEditLabel: { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index fc6e4a8a23e261..47ea34cc4af7f5 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -141,8 +141,8 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications_short": "Unmute notifications", "account.unmute_short": "Unmute", + "account_edit.bio.add_label": "Add bio", "account_edit.bio.edit_label": "Edit bio", - "account_edit.bio.label": "bio", "account_edit.bio.placeholder": "Add a short introduction to help others identify you.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Add bio", From d9db4779cf2c0a4ad19f113c1bec25cab0fe68f7 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 11:57:34 +0100 Subject: [PATCH 011/335] Handle local/remote collection items differently when deleting (#38383) --- .../delete_collection_item_service.rb | 9 ++++--- .../delete_collection_item_service_spec.rb | 27 ++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/services/delete_collection_item_service.rb b/app/services/delete_collection_item_service.rb index 47df001d60baf3..168eb9ba0a924f 100644 --- a/app/services/delete_collection_item_service.rb +++ b/app/services/delete_collection_item_service.rb @@ -5,9 +5,12 @@ def call(collection_item, revoke: false) @collection_item = collection_item @collection = collection_item.collection - revoke ? @collection_item.revoke! : @collection_item.destroy! - - distribute_remove_activity if Mastodon::Feature.collections_federation_enabled? + if collection_item.local? + revoke ? @collection_item.revoke! : @collection_item.destroy! + distribute_remove_activity if Mastodon::Feature.collections_federation_enabled? + else + collection_item.destroy! + end end private diff --git a/spec/services/delete_collection_item_service_spec.rb b/spec/services/delete_collection_item_service_spec.rb index bdd37ad4a82c5e..d7bfb97f674639 100644 --- a/spec/services/delete_collection_item_service_spec.rb +++ b/spec/services/delete_collection_item_service_spec.rb @@ -13,17 +13,30 @@ expect { subject.call(collection_item) }.to change(collection.collection_items, :count).by(-1) end - it 'federates a `Remove` activity', feature: :collections_federation do - subject.call(collection_item) + context 'when the collection is local' do + it 'federates a `Remove` activity', feature: :collections_federation do + subject.call(collection_item) - expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job + expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job + end + + context 'when `revoke` is set to true' do + it 'revokes the collection item' do + subject.call(collection_item, revoke: true) + + expect(collection_item.reload).to be_revoked + end + end end - context 'when `revoke` is set to true' do - it 'revokes the collection item' do - subject.call(collection_item, revoke: true) + context 'when the collection is remote' do + let(:collection) { Fabricate(:remote_collection) } + let!(:collection_item) { Fabricate(:collection_item, collection:, state: :accepted) } + + it 'destroys the collection withouth federating anything', feature: :collections_federation do + expect { subject.call(collection_item, revoke: true) }.to change(collection.collection_items, :count).by(-1) - expect(collection_item.reload).to be_revoked + expect(ActivityPub::AccountRawDistributionWorker).to_not have_enqueued_sidekiq_job end end end From 45e7c7a5e184b42868357efe44243e26ff47798c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 12:22:11 +0100 Subject: [PATCH 012/335] Update storybook (non-major) (#38353) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Claire --- .storybook/static/mockServiceWorker.js | 2 +- yarn.lock | 155 +++++++++++++------------ 2 files changed, 83 insertions(+), 74 deletions(-) diff --git a/.storybook/static/mockServiceWorker.js b/.storybook/static/mockServiceWorker.js index 02115fb4d994f0..b17fcd650c0ac1 100644 --- a/.storybook/static/mockServiceWorker.js +++ b/.storybook/static/mockServiceWorker.js @@ -7,7 +7,7 @@ * - Please do NOT modify this file. */ -const PACKAGE_VERSION = '2.12.1' +const PACKAGE_VERSION = '2.12.14' const INTEGRITY_CHECKSUM = '4db4a41e972cec1b64cc569c66952d82' const IS_MOCKED_RESPONSE = Symbol('isMockedResponse') const activeClientIds = new Set() diff --git a/yarn.lock b/yarn.lock index dde95e8d33d4e2..e4b7b7da1cfaed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3010,9 +3010,9 @@ __metadata: languageName: node linkType: hard -"@mswjs/interceptors@npm:^0.40.0": - version: 0.40.0 - resolution: "@mswjs/interceptors@npm:0.40.0" +"@mswjs/interceptors@npm:^0.41.2": + version: 0.41.3 + resolution: "@mswjs/interceptors@npm:0.41.3" dependencies: "@open-draft/deferred-promise": "npm:^2.2.0" "@open-draft/logger": "npm:^0.3.0" @@ -3020,7 +3020,7 @@ __metadata: is-node-process: "npm:^1.2.0" outvariant: "npm:^1.4.3" strict-event-emitter: "npm:^0.5.1" - checksum: 10c0/4500f17b65910b2633182fdb15a81ccb6ccd4488a8c45bc2f7acdaaff4621c3cce5362e6b59ddc4fa28d315d0efb0608fd1f0d536bc5345141f8ac03fd7fab22 + checksum: 10c0/a259bbfc3bb4caada7a9a3529cc830159818e838c152df89ac890e7203df615a5e070ca63aa1e70a39868322ff5c1441ab74bbadb4081ca55b0c3a462e2903c0 languageName: node linkType: hard @@ -3830,37 +3830,37 @@ __metadata: linkType: hard "@storybook/addon-a11y@npm:^10.3.0": - version: 10.3.0 - resolution: "@storybook/addon-a11y@npm:10.3.0" + version: 10.3.3 + resolution: "@storybook/addon-a11y@npm:10.3.3" dependencies: "@storybook/global": "npm:^5.0.0" axe-core: "npm:^4.2.0" peerDependencies: - storybook: ^10.3.0 - checksum: 10c0/3efcaeeaadf028427ed7af929a4f9e8d5ae1cfba6b0f0c20832009ecc6088e3df998c567ba7a2ee695cc5da4d17fe404f2094b80119a1a34a8c1c0a900d19ebe + storybook: ^10.3.3 + checksum: 10c0/da83678c1fc351a3893bab7c4d04a81b11aeeb51112b03cff5c681fd5951b7c12f469410369eb0e02e7a91ce732b4f297077136855a73cdf5dd8ab3735dab3b6 languageName: node linkType: hard "@storybook/addon-docs@npm:^10.3.0": - version: 10.3.0 - resolution: "@storybook/addon-docs@npm:10.3.0" + version: 10.3.3 + resolution: "@storybook/addon-docs@npm:10.3.3" dependencies: "@mdx-js/react": "npm:^3.0.0" - "@storybook/csf-plugin": "npm:10.3.0" + "@storybook/csf-plugin": "npm:10.3.3" "@storybook/icons": "npm:^2.0.1" - "@storybook/react-dom-shim": "npm:10.3.0" + "@storybook/react-dom-shim": "npm:10.3.3" react: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" react-dom: "npm:^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^10.3.0 - checksum: 10c0/f70ce1bb5bd31ace42386c8000b5e1b0a9b509c574b9b1dca4f1e55ebaa081b93db45a5661e3dfe0133581abfcb70a7acbd4bd45ee0f846cbc01f631ced54ffa + storybook: ^10.3.3 + checksum: 10c0/19a98f3e8fcf97d35bb25f6cda49708e56006e445d9f04cd80eb697ee452c158203af1f4f3e71358e47a2e257d7fdb85c29ece5f4b36f71dff95070ca4a85af2 languageName: node linkType: hard "@storybook/addon-vitest@npm:^10.3.0": - version: 10.3.0 - resolution: "@storybook/addon-vitest@npm:10.3.0" + version: 10.3.3 + resolution: "@storybook/addon-vitest@npm:10.3.3" dependencies: "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^2.0.1" @@ -3868,7 +3868,7 @@ __metadata: "@vitest/browser": ^3.0.0 || ^4.0.0 "@vitest/browser-playwright": ^4.0.0 "@vitest/runner": ^3.0.0 || ^4.0.0 - storybook: ^10.3.0 + storybook: ^10.3.3 vitest: ^3.0.0 || ^4.0.0 peerDependenciesMeta: "@vitest/browser": @@ -3879,32 +3879,32 @@ __metadata: optional: true vitest: optional: true - checksum: 10c0/d6c1c688af591155b9dcdc68be55ab04cb864b569b86c91fafc4407e5c1eec30bacc2d23258837eda0e069ae86f3f95d134b8e6cc7b1d7f4b73f7a00f7470244 + checksum: 10c0/1691bbe974b55510eb1b0d50a542322b79302e42789b35ecdda3fdcd8a289693c681c2a2fcf9c219c63a6d1112433f1f13305bd24143d2183e8d7dd53b65d560 languageName: node linkType: hard -"@storybook/builder-vite@npm:10.3.0": - version: 10.3.0 - resolution: "@storybook/builder-vite@npm:10.3.0" +"@storybook/builder-vite@npm:10.3.3": + version: 10.3.3 + resolution: "@storybook/builder-vite@npm:10.3.3" dependencies: - "@storybook/csf-plugin": "npm:10.3.0" + "@storybook/csf-plugin": "npm:10.3.3" ts-dedent: "npm:^2.0.0" peerDependencies: - storybook: ^10.3.0 + storybook: ^10.3.3 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/62dc1ead65b5a8a17187862ac13a47867dd6f1fc9ff43e6d0c8e1a82d6c4cc8a6bb219cd4adcbce664654cc1c0bf1cb82fd56b706923b3b7220290eef3011e3f + checksum: 10c0/90b002777ff4b0b31ea4bc8d4f6e13f4d4c35a51c2bad7cf0b2e0a3a2f4ec3aa387f87ed174f7589d29842564f61346415dc0c919819e9ab45827c2c0f6141f2 languageName: node linkType: hard -"@storybook/csf-plugin@npm:10.3.0": - version: 10.3.0 - resolution: "@storybook/csf-plugin@npm:10.3.0" +"@storybook/csf-plugin@npm:10.3.3": + version: 10.3.3 + resolution: "@storybook/csf-plugin@npm:10.3.3" dependencies: unplugin: "npm:^2.3.5" peerDependencies: esbuild: "*" rollup: "*" - storybook: ^10.3.0 + storybook: ^10.3.3 vite: "*" webpack: "*" peerDependenciesMeta: @@ -3916,7 +3916,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/59c1784257d313fb7298a34c079462ba0ad518f82369441e6432da1abdc47ecb16afc40bbb02fd1331183be10914d383ed1f68a6b431ea25019fd50b63453e7f + checksum: 10c0/62d52c50555ca0f18907962179aa90287e6b95ba6b31cbbeb071842f1580491ff8578cc628f9fd1809a0ef48e2b23164657204c2de16a3f7c9830c4b69c822aa languageName: node linkType: hard @@ -3937,25 +3937,25 @@ __metadata: languageName: node linkType: hard -"@storybook/react-dom-shim@npm:10.3.0": - version: 10.3.0 - resolution: "@storybook/react-dom-shim@npm:10.3.0" +"@storybook/react-dom-shim@npm:10.3.3": + version: 10.3.3 + resolution: "@storybook/react-dom-shim@npm:10.3.3" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.0 - checksum: 10c0/59690a34b39299853ae689e891b88b01dd3019b1b9da56aa9cfc318ccd3880ec3736ec2f36b08c924df6952e510ea62d2810c32d2fda5bb6db71d133b3c94984 + storybook: ^10.3.3 + checksum: 10c0/d4018e1e2acf64d521a13b2190d263b2e873ac65172facda7e443716ede593195e21bb9e0cd288e785a25a5973527813a5ccdb069881a2bc22e490342237d026 languageName: node linkType: hard "@storybook/react-vite@npm:^10.3.0": - version: 10.3.0 - resolution: "@storybook/react-vite@npm:10.3.0" + version: 10.3.3 + resolution: "@storybook/react-vite@npm:10.3.3" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": "npm:^0.6.4" "@rollup/pluginutils": "npm:^5.0.2" - "@storybook/builder-vite": "npm:10.3.0" - "@storybook/react": "npm:10.3.0" + "@storybook/builder-vite": "npm:10.3.3" + "@storybook/react": "npm:10.3.3" empathic: "npm:^2.0.0" magic-string: "npm:^0.30.0" react-docgen: "npm:^8.0.0" @@ -3964,29 +3964,29 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.0 + storybook: ^10.3.3 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10c0/ab000cb70698e971965d5970dd547579dc14428238055826b6d0d7069bb56fc5e6ce7dc22a0ee0f4c4b9c3f0c505a6c246367d5bedac0bc70720fee666a24d88 + checksum: 10c0/6c044a398201ee35d973269c8d47def841caba628b20df95c316d0723a02b798167366de26281ce2c934a844d69c5a51f1e1bc6d11d7ee20219e3cd59d3c9343 languageName: node linkType: hard -"@storybook/react@npm:10.3.0": - version: 10.3.0 - resolution: "@storybook/react@npm:10.3.0" +"@storybook/react@npm:10.3.3": + version: 10.3.3 + resolution: "@storybook/react@npm:10.3.3" dependencies: "@storybook/global": "npm:^5.0.0" - "@storybook/react-dom-shim": "npm:10.3.0" + "@storybook/react-dom-shim": "npm:10.3.3" react-docgen: "npm:^8.0.2" react-docgen-typescript: "npm:^2.2.2" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - storybook: ^10.3.0 + storybook: ^10.3.3 typescript: ">= 4.9.x" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/604414597b2093877b2ef5c9fc1d04d2b231a5cafdb1acc303b888fbf3c701c014642b20fa1f40048e3517bddd5b2e05f51427909f4c5475f1cecae768d352ab + checksum: 10c0/a6c36e4e14685348faf50b74de43603d23e0d18aaa21d16e91f6e0b274b1ab689033a8a42b424d776dcdfefa744a6d919a2f509dae8e0520a19b0b20503a1fa7 languageName: node linkType: hard @@ -4700,7 +4700,7 @@ __metadata: languageName: node linkType: hard -"@types/statuses@npm:^2.0.4": +"@types/statuses@npm:^2.0.6": version: 2.0.6 resolution: "@types/statuses@npm:2.0.6" checksum: 10c0/dd88c220b0e2c6315686289525fd61472d2204d2e4bef4941acfb76bda01d3066f749ac74782aab5b537a45314fcd7d6261eefa40b6ec872691f5803adaa608d @@ -6060,8 +6060,8 @@ __metadata: linkType: hard "chromatic@npm:^13.3.3": - version: 13.3.3 - resolution: "chromatic@npm:13.3.3" + version: 13.3.5 + resolution: "chromatic@npm:13.3.5" peerDependencies: "@chromatic-com/cypress": ^0.*.* || ^1.0.0 "@chromatic-com/playwright": ^0.*.* || ^1.0.0 @@ -6074,7 +6074,7 @@ __metadata: chroma: dist/bin.js chromatic: dist/bin.js chromatic-cli: dist/bin.js - checksum: 10c0/6fc54df030113d91ef00a2050f5cb13ca182b355dae2c29cdd326fac6cf21d8ddc2cd93dc3f5db04379b7769d4df8e3ea5f18c3642e9e3a48545565f992a838c + checksum: 10c0/58b3d7984db000f8c7b605788569a24c3f3cd41bb6b2d3a94f18acc9ff11ce6c6881f795c8390a94ff721ccfcf8a2d7942e78a54a1f70294a7b3d35ccc382154 languageName: node linkType: hard @@ -8262,10 +8262,10 @@ __metadata: languageName: node linkType: hard -"graphql@npm:^16.8.1": - version: 16.11.0 - resolution: "graphql@npm:16.11.0" - checksum: 10c0/124da7860a2292e9acf2fed0c71fc0f6a9b9ca865d390d112bdd563c1f474357141501c12891f4164fe984315764736ad67f705219c62f7580681d431a85db88 +"graphql@npm:^16.12.0": + version: 16.13.2 + resolution: "graphql@npm:16.13.2" + checksum: 10c0/64e822a0a0e4398781e4bc9765b88d370c08261498b517add4b878038ef7be2005b6b394a79a5102b9379d57052f60bc7f23fec8f39808d101984a74772ebd9d languageName: node linkType: hard @@ -10151,25 +10151,25 @@ __metadata: linkType: hard "msw@npm:^2.12.1": - version: 2.12.1 - resolution: "msw@npm:2.12.1" + version: 2.12.14 + resolution: "msw@npm:2.12.14" dependencies: "@inquirer/confirm": "npm:^5.0.0" - "@mswjs/interceptors": "npm:^0.40.0" + "@mswjs/interceptors": "npm:^0.41.2" "@open-draft/deferred-promise": "npm:^2.2.0" - "@types/statuses": "npm:^2.0.4" + "@types/statuses": "npm:^2.0.6" cookie: "npm:^1.0.2" - graphql: "npm:^16.8.1" + graphql: "npm:^16.12.0" headers-polyfill: "npm:^4.0.2" is-node-process: "npm:^1.2.0" outvariant: "npm:^1.4.3" path-to-regexp: "npm:^6.3.0" picocolors: "npm:^1.1.1" - rettime: "npm:^0.7.0" + rettime: "npm:^0.10.1" statuses: "npm:^2.0.2" strict-event-emitter: "npm:^0.5.1" tough-cookie: "npm:^6.0.0" - type-fest: "npm:^4.26.1" + type-fest: "npm:^5.2.0" until-async: "npm:^3.0.2" yargs: "npm:^17.7.2" peerDependencies: @@ -10179,7 +10179,7 @@ __metadata: optional: true bin: msw: cli/index.js - checksum: 10c0/822f4fc0cb2bdade39a67045d56b32fc7b15f30814a64c637a3c55d99358a4c1d61ed00d21fafafbbee320ad600e5a048d938b195e0cef5c59e016a040595176 + checksum: 10c0/73e2c08a74bac94036c75aa0340e48573a233d5060cb3098ead7ec0eaddaacef4de399b81e0e3f41ea73d5f92341adc9cf0ae908ad74583d294afa4667e7d277 languageName: node linkType: hard @@ -12421,10 +12421,10 @@ __metadata: languageName: node linkType: hard -"rettime@npm:^0.7.0": - version: 0.7.0 - resolution: "rettime@npm:0.7.0" - checksum: 10c0/1460539d49415c37e46884bf1db7a5da974b239c1bd6976e1cf076fad169067dc8f55cd2572aec504433162f3627b6d8123eea977d110476258045d620bd051b +"rettime@npm:^0.10.1": + version: 0.10.1 + resolution: "rettime@npm:0.10.1" + checksum: 10c0/94fb30cd13684386c70301c4cff4391bc0c6dc7aeac49364fdfeeaba167897bdb28a58bbb46d1a415f1c5c6240fda3f765cb329e471f37fdc513c739f0b04fbe languageName: node linkType: hard @@ -13179,8 +13179,8 @@ __metadata: linkType: hard "storybook@npm:^10.3.0": - version: 10.3.0 - resolution: "storybook@npm:10.3.0" + version: 10.3.3 + resolution: "storybook@npm:10.3.3" dependencies: "@storybook/global": "npm:^5.0.0" "@storybook/icons": "npm:^2.0.1" @@ -13201,7 +13201,7 @@ __metadata: optional: true bin: storybook: ./dist/bin/dispatcher.js - checksum: 10c0/aaab242fb36948c122b8a9bd6b45120418e25af105e96c303f565ef19d08001adb17aaa9810c9f44b4d494fab999a53e58e4789c6202e0880d1e701e93f10e21 + checksum: 10c0/f61e199dfb11a02be6004a3d72c0ecd062f1770d60d480ecf42a6af8a6c49f9082b17c37fde2eea58ed53de35e7b190c95bcad8c8e4d47f9419d577826e0c00c languageName: node linkType: hard @@ -13648,6 +13648,13 @@ __metadata: languageName: node linkType: hard +"tagged-tag@npm:^1.0.0": + version: 1.0.0 + resolution: "tagged-tag@npm:1.0.0" + checksum: 10c0/91d25c9ffb86a91f20522cefb2cbec9b64caa1febe27ad0df52f08993ff60888022d771e868e6416cf2e72dab68449d2139e8709ba009b74c6c7ecd4000048d1 + languageName: node + linkType: hard + "tar@npm:^7.4.3": version: 7.4.3 resolution: "tar@npm:7.4.3" @@ -13990,10 +13997,12 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^4.26.1": - version: 4.41.0 - resolution: "type-fest@npm:4.41.0" - checksum: 10c0/f5ca697797ed5e88d33ac8f1fec21921839871f808dc59345c9cf67345bfb958ce41bd821165dbf3ae591cedec2bf6fe8882098dfdd8dc54320b859711a2c1e4 +"type-fest@npm:^5.2.0": + version: 5.5.0 + resolution: "type-fest@npm:5.5.0" + dependencies: + tagged-tag: "npm:^1.0.0" + checksum: 10c0/60bf79a8df45abf99490e3204eceb5cf7f915413f8a69fb578c75cab37ddcb7d29ee21f185f0e1617323ac0b2a441e001b8dc691e220d0b087e9c29ea205538c languageName: node linkType: hard From 7583d07d3a1e17808424b910e0dffe95a60bce87 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Mar 2026 13:32:47 +0100 Subject: [PATCH 013/335] Change avatar and account header description limit and expose it in API (#38384) --- app/models/concerns/account/avatar.rb | 3 ++- app/models/concerns/account/header.rb | 3 ++- app/serializers/rest/instance_serializer.rb | 2 ++ spec/requests/api/v2/instance_spec.rb | 9 ++++++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/models/concerns/account/avatar.rb b/app/models/concerns/account/avatar.rb index 1b561fc770cb79..bcc48791d5b64b 100644 --- a/app/models/concerns/account/avatar.rb +++ b/app/models/concerns/account/avatar.rb @@ -3,6 +3,7 @@ module Account::Avatar extend ActiveSupport::Concern + MAX_DESCRIPTION_LENGTH = 150 AVATAR_IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze AVATAR_LIMIT = 8.megabytes AVATAR_DIMENSIONS = [400, 400].freeze @@ -25,7 +26,7 @@ def avatar_styles(file) validates_attachment_size :avatar, less_than: AVATAR_LIMIT remotable_attachment :avatar, AVATAR_LIMIT, suppress_errors: false - validates :avatar_description, length: { maximum: MediaAttachment::MAX_DESCRIPTION_LENGTH }, if: -> { local? && will_save_change_to_avatar_description? } + validates :avatar_description, length: { maximum: MAX_DESCRIPTION_LENGTH }, if: -> { local? && will_save_change_to_avatar_description? } end def avatar_original_url diff --git a/app/models/concerns/account/header.rb b/app/models/concerns/account/header.rb index 75d3c04542ca34..a3715c211ba5ce 100644 --- a/app/models/concerns/account/header.rb +++ b/app/models/concerns/account/header.rb @@ -3,6 +3,7 @@ module Account::Header extend ActiveSupport::Concern + MAX_DESCRIPTION_LENGTH = 150 HEADER_IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze HEADER_LIMIT = 8.megabytes HEADER_DIMENSIONS = [1500, 500].freeze @@ -26,7 +27,7 @@ def header_styles(file) validates_attachment_size :header, less_than: HEADER_LIMIT remotable_attachment :header, HEADER_LIMIT, suppress_errors: false - validates :header_description, length: { maximum: MediaAttachment::MAX_DESCRIPTION_LENGTH }, if: -> { local? && will_save_change_to_header_description? } + validates :header_description, length: { maximum: MAX_DESCRIPTION_LENGTH }, if: -> { local? && will_save_change_to_header_description? } end def header_original_url diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 625cd3ad8c2502..52d7f2b3632eca 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -71,6 +71,8 @@ def configuration accounts: { max_display_name_length: Account::DISPLAY_NAME_LENGTH_LIMIT, max_note_length: Account::NOTE_LENGTH_LIMIT, + max_avatar_description_length: Account::Avatar::MAX_DESCRIPTION_LENGTH, + max_header_description_length: Account::Header::MAX_DESCRIPTION_LENGTH, max_featured_tags: FeaturedTag::LIMIT, max_pinned_statuses: StatusPinValidator::PIN_LIMIT, max_profile_fields: Account::DEFAULT_FIELDS_SIZE, diff --git a/spec/requests/api/v2/instance_spec.rb b/spec/requests/api/v2/instance_spec.rb index 39e7105f095dc7..d9d5df1bea8ea2 100644 --- a/spec/requests/api/v2/instance_spec.rb +++ b/spec/requests/api/v2/instance_spec.rb @@ -66,8 +66,15 @@ def include_configuration_limits include( configuration: include( accounts: include( + max_display_name_length: Account::DISPLAY_NAME_LENGTH_LIMIT, + max_note_length: Account::NOTE_LENGTH_LIMIT, + max_avatar_description_length: Account::Avatar::MAX_DESCRIPTION_LENGTH, + max_header_description_length: Account::Header::MAX_DESCRIPTION_LENGTH, max_featured_tags: FeaturedTag::LIMIT, - max_pinned_statuses: StatusPinValidator::PIN_LIMIT + max_pinned_statuses: StatusPinValidator::PIN_LIMIT, + max_profile_fields: Account::DEFAULT_FIELDS_SIZE, + profile_field_name_limit: Account::Field::MAX_CHARACTERS_LOCAL, + profile_field_value_limit: Account::Field::MAX_CHARACTERS_LOCAL ), statuses: include( max_characters: StatusLengthValidator::MAX_CHARS, From 84ea8334feedffdc0067a21cb8cb605ff547d37b Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 14:04:05 +0100 Subject: [PATCH 014/335] Do not auto-accept remote collection items (#38386) --- app/services/add_account_to_collection_service.rb | 6 ++---- app/services/create_collection_service.rb | 3 ++- spec/services/add_account_to_collection_service_spec.rb | 5 ++++- spec/services/create_collection_service_spec.rb | 6 +++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/app/services/add_account_to_collection_service.rb b/app/services/add_account_to_collection_service.rb index e53c67b57fe434..c5a4697e79722a 100644 --- a/app/services/add_account_to_collection_service.rb +++ b/app/services/add_account_to_collection_service.rb @@ -22,10 +22,8 @@ def call(collection, account) private def create_collection_item - @collection.collection_items.create!( - account: @account, - state: :accepted - ) + state = @account.local? ? :accepted : :pending + @collection.collection_items.create!(account: @account, state:) end def distribute_add_activity diff --git a/app/services/create_collection_service.rb b/app/services/create_collection_service.rb index b0d291d7c3190f..979794224ac39c 100644 --- a/app/services/create_collection_service.rb +++ b/app/services/create_collection_service.rb @@ -36,7 +36,8 @@ def build_items @accounts_to_add.each do |account_to_add| raise Mastodon::NotPermittedError, I18n.t('accounts.errors.cannot_be_added_to_collections') unless AccountPolicy.new(@account, account_to_add).feature? - @collection.collection_items.build(account: account_to_add, state: :accepted) + state = account_to_add.local? ? :accepted : :pending + @collection.collection_items.build(account: account_to_add, state:) end end diff --git a/spec/services/add_account_to_collection_service_spec.rb b/spec/services/add_account_to_collection_service_spec.rb index 35c7432ebe92f5..c1e3ab45c8f5a1 100644 --- a/spec/services/add_account_to_collection_service_spec.rb +++ b/spec/services/add_account_to_collection_service_spec.rb @@ -32,9 +32,12 @@ context 'when the account is remote', feature: :collections_federation do let(:account) { Fabricate(:remote_account, feature_approval_policy: (0b10 << 16)) } - it 'federates a `FeatureRequest` activity' do + it 'marks the item as `pending` and federates a `FeatureRequest` activity' do subject.call(collection, account) + new_item = collection.collection_items.last + expect(new_item).to be_pending + expect(ActivityPub::FeatureRequestWorker).to have_enqueued_sidekiq_job end end diff --git a/spec/services/create_collection_service_spec.rb b/spec/services/create_collection_service_spec.rb index 0d71117e732cd8..976782679f86d2 100644 --- a/spec/services/create_collection_service_spec.rb +++ b/spec/services/create_collection_service_spec.rb @@ -65,9 +65,13 @@ context 'when some accounts are remote' do let(:accounts) { Fabricate.times(2, :remote_account, feature_approval_policy: (0b10 << 16)) } - it 'federates `FeatureRequest` activities', feature: :collections_federation do + it 'marks the new items as `pending` and federates `FeatureRequest` activities', feature: :collections_federation do subject.call(params, author) + new_collection = author.collections.last + expect(new_collection.collection_items.size).to eq 2 + expect(new_collection.collection_items).to all(be_pending) + expect(ActivityPub::FeatureRequestWorker).to have_enqueued_sidekiq_job.exactly(2).times end end From bcead764109bff870cb24628e9bf4c9bbcd25bd9 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 14:04:09 +0100 Subject: [PATCH 015/335] Only federate accepted collection items (#38385) --- .../activitypub/featured_collections_controller.rb | 4 +++- .../activitypub/featured_collection_serializer.rb | 4 ++++ .../featured_collection_serializer_spec.rb | 13 +++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/controllers/activitypub/featured_collections_controller.rb b/app/controllers/activitypub/featured_collections_controller.rb index 872d03423d2172..09de5583cc95e6 100644 --- a/app/controllers/activitypub/featured_collections_controller.rb +++ b/app/controllers/activitypub/featured_collections_controller.rb @@ -33,7 +33,9 @@ def index def set_collections authorize @account, :index_collections? - @collections = @account.collections.page(params[:page]).per(PER_PAGE) + @collections = @account.collections + .includes(:accepted_collection_items) + .page(params[:page]).per(PER_PAGE) rescue Mastodon::NotPermittedError not_found end diff --git a/app/serializers/activitypub/featured_collection_serializer.rb b/app/serializers/activitypub/featured_collection_serializer.rb index d6242b9d5b9209..e37085d4221b4d 100644 --- a/app/serializers/activitypub/featured_collection_serializer.rb +++ b/app/serializers/activitypub/featured_collection_serializer.rb @@ -46,4 +46,8 @@ def updated def language_present? object.language.present? end + + def collection_items + object.accepted_collection_items + end end diff --git a/spec/serializers/activitypub/featured_collection_serializer_spec.rb b/spec/serializers/activitypub/featured_collection_serializer_spec.rb index c0ae43abb923cd..b25ec13a52df9a 100644 --- a/spec/serializers/activitypub/featured_collection_serializer_spec.rb +++ b/spec/serializers/activitypub/featured_collection_serializer_spec.rb @@ -67,4 +67,17 @@ expect(subject).to_not have_key('summary') end end + + context 'when not all items are accepted' do + before do + collection_items.first.update!(state: :pending) + end + + it 'only includes accepted items' do + items = subject['orderedItems'] + + expect(items.size).to eq 1 + expect(items.first['id']).to eq ActivityPub::TagManager.instance.uri_for(collection_items.last) + end + end end From 664efcf4c3f9713894054fb642a252d8752a4123 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 09:18:14 -0400 Subject: [PATCH 016/335] Add `have_attachment` matcher for attached file exports (#38389) --- .../export_domain_blocks_controller_spec.rb | 2 ++ .../export_controller_concern_spec.rb | 3 ++- .../settings/imports_controller_spec.rb | 22 +++++++++++-------- .../admin/export_domain_allows_spec.rb | 2 ++ spec/requests/severed_relationships_spec.rb | 12 ++++------ spec/support/matchers/attachments.rb | 17 ++++++++++++++ 6 files changed, 40 insertions(+), 18 deletions(-) create mode 100644 spec/support/matchers/attachments.rb diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb index 442f3e5a1570bd..ad95ccc3d4f376 100644 --- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb +++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb @@ -26,6 +26,8 @@ get :export, params: { format: :csv } expect(response).to have_http_status(200) + expect(response) + .to have_attachment('domain_blocks.csv') expect(response.body).to eq(domain_blocks_csv_file) end diff --git a/spec/controllers/concerns/settings/export_controller_concern_spec.rb b/spec/controllers/concerns/settings/export_controller_concern_spec.rb index 6c1a06114c5d67..782ec88ecd6020 100644 --- a/spec/controllers/concerns/settings/export_controller_concern_spec.rb +++ b/spec/controllers/concerns/settings/export_controller_concern_spec.rb @@ -23,7 +23,8 @@ def export_data expect(response).to have_http_status(200) expect(response.media_type).to eq 'text/csv' - expect(response.headers['Content-Disposition']).to start_with 'attachment; filename="anonymous.csv"' + expect(response) + .to have_attachment('anonymous.csv') expect(response.body).to eq 'body data value' end diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index 0b399fcc40fa95..a8fa9fdd35a4dc 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -136,7 +136,7 @@ describe 'GET #failures' do subject { get :failures, params: { id: bulk_import.id }, format: :csv } - shared_examples 'export failed rows' do |expected_contents| + shared_examples 'export failed rows' do |filename, expected_contents| let(:bulk_import) { Fabricate(:bulk_import, account: user.account, type: import_type, state: :finished) } before do @@ -147,8 +147,12 @@ it 'returns expected contents', :aggregate_failures do subject - expect(response).to have_http_status(200) - expect(response.body).to eq expected_contents + expect(response) + .to have_http_status(200) + expect(response) + .to have_attachment(filename) + expect(response.body) + .to eq expected_contents end end @@ -162,7 +166,7 @@ ] end - it_behaves_like 'export failed rows', "Account address,Show boosts,Notify on new posts,Languages\nfoo@bar,true,false,\nuser@bar,false,true,\"fr, de\"\n" + it_behaves_like 'export failed rows', 'following_accounts_failures.csv', "Account address,Show boosts,Notify on new posts,Languages\nfoo@bar,true,false,\nuser@bar,false,true,\"fr, de\"\n" end context 'with blocks' do @@ -175,7 +179,7 @@ ] end - it_behaves_like 'export failed rows', "foo@bar\nuser@bar\n" + it_behaves_like 'export failed rows', 'blocked_accounts_failures.csv', "foo@bar\nuser@bar\n" end context 'with mutes' do @@ -188,7 +192,7 @@ ] end - it_behaves_like 'export failed rows', "Account address,Hide notifications\nfoo@bar,true\nuser@bar,false\n" + it_behaves_like 'export failed rows', 'muted_accounts_failures.csv', "Account address,Hide notifications\nfoo@bar,true\nuser@bar,false\n" end context 'with domain blocks' do @@ -201,7 +205,7 @@ ] end - it_behaves_like 'export failed rows', "bad.domain\nevil.domain\n" + it_behaves_like 'export failed rows', 'blocked_domains_failures.csv', "bad.domain\nevil.domain\n" end context 'with bookmarks' do @@ -214,7 +218,7 @@ ] end - it_behaves_like 'export failed rows', "https://foo.com/1\nhttps://foo.com/2\n" + it_behaves_like 'export failed rows', 'bookmarks_failures.csv', "https://foo.com/1\nhttps://foo.com/2\n" end context 'with lists' do @@ -227,7 +231,7 @@ ] end - it_behaves_like 'export failed rows', "Amigos,user@example.com\nFrenemies,user@org.org\n" + it_behaves_like 'export failed rows', 'lists_failures.csv', "Amigos,user@example.com\nFrenemies,user@org.org\n" end end diff --git a/spec/requests/admin/export_domain_allows_spec.rb b/spec/requests/admin/export_domain_allows_spec.rb index dd1a55a02245b2..4314bdfb5053d2 100644 --- a/spec/requests/admin/export_domain_allows_spec.rb +++ b/spec/requests/admin/export_domain_allows_spec.rb @@ -27,6 +27,8 @@ .to have_http_status(200) expect(response.body) .to eq(domain_allows_csv_file) + expect(response) + .to have_attachment('domain_allows.csv') expect(response.media_type) .to eq('text/csv') end diff --git a/spec/requests/severed_relationships_spec.rb b/spec/requests/severed_relationships_spec.rb index e0116120cb0f96..becc16570d2163 100644 --- a/spec/requests/severed_relationships_spec.rb +++ b/spec/requests/severed_relationships_spec.rb @@ -16,10 +16,8 @@ .to have_http_status(200) expect(response.content_type) .to start_with('text/csv') - expect(response.headers['Content-Disposition']) - .to match(<<~FILENAME.squish) - attachment; filename="following-example.com-#{Date.current}.csv" - FILENAME + expect(response) + .to have_attachment("following-example.com-#{Date.current}.csv") expect(response.body) .to include('Account address') end @@ -44,10 +42,8 @@ .to have_http_status(200) expect(response.content_type) .to start_with('text/csv') - expect(response.headers['Content-Disposition']) - .to match(<<~FILENAME.squish) - attachment; filename="followers-example.com-#{Date.current}.csv" - FILENAME + expect(response) + .to have_attachment("followers-example.com-#{Date.current}.csv") expect(response.body) .to include('Account address') end diff --git a/spec/support/matchers/attachments.rb b/spec/support/matchers/attachments.rb new file mode 100644 index 00000000000000..482f3a055cbec3 --- /dev/null +++ b/spec/support/matchers/attachments.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +RSpec::Matchers.define :have_attachment do |value| + match do |response| + expect(response.headers['Content-Disposition']) + .to match(<<~FILENAME.squish) + attachment; filename="#{value}" + FILENAME + end + + failure_message do |response| + <<~ERROR + Expected response to have file attachment of `#{value}` but was: + Content-Disposition: #{response.headers['Content-Disposition']} + ERROR + end +end From 2112ea4d6324447013834487d105e0df6b8bc7c5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 09:18:34 -0400 Subject: [PATCH 017/335] Drop support for ruby 3.2 (#37476) --- .github/workflows/test-ruby.yml | 3 --- .rubocop.yml | 2 +- Gemfile | 2 +- README.md | 2 +- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index 240261760ebe22..cf9e5c240513c0 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -124,7 +124,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.2' - '3.3' - '.ruby-version' steps: @@ -217,7 +216,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.2' - '3.3' - '.ruby-version' @@ -348,7 +346,6 @@ jobs: fail-fast: false matrix: ruby-version: - - '3.2' - '3.3' - '.ruby-version' search-image: diff --git a/.rubocop.yml b/.rubocop.yml index 1bbba515af1add..425709187c35a9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,7 +8,7 @@ AllCops: - lib/mastodon/migration_helpers.rb ExtraDetails: true NewCops: enable - TargetRubyVersion: 3.2 # Oldest supported ruby version + TargetRubyVersion: 3.3 # Oldest supported ruby version inherit_from: - .rubocop/layout.yml diff --git a/Gemfile b/Gemfile index 40f95d56e9f27c..8f283db728dbd5 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby '>= 3.2.0', '< 3.5.0' +ruby '>= 3.3.0', '< 3.5.0' gem 'propshaft' gem 'puma', '~> 7.0' diff --git a/README.md b/README.md index db8dcaace329bf..0e7f4efd63a35d 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ Mastodon is a **free, open-source social network server** based on [ActivityPub] ### Requirements -- **Ruby** 3.2+ +- **Ruby** 3.3+ - **PostgreSQL** 14+ - **Redis** 7.0+ - **Node.js** 20+ From 864d7b12677807047e24d8243a84d76640adb2e9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2026 14:43:41 +0100 Subject: [PATCH 018/335] Update dependency typescript to v6 (#38344) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renaud Chaput --- package.json | 2 +- streaming/package.json | 2 +- tsconfig.json | 14 +++++--------- yarn.lock | 28 ++++++++++++++++++++++++---- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 8670654b51520e..94a5471c911f54 100644 --- a/package.json +++ b/package.json @@ -188,7 +188,7 @@ "storybook": "^10.3.0", "stylelint": "^17.0.0", "stylelint-config-standard-scss": "^17.0.0", - "typescript": "~5.9.0", + "typescript": "~6.0.0", "typescript-eslint": "^8.55.0", "typescript-plugin-css-modules": "^5.2.0", "vitest": "^4.1.0" diff --git a/streaming/package.json b/streaming/package.json index 3989917b08710a..04ab576f896479 100644 --- a/streaming/package.json +++ b/streaming/package.json @@ -38,7 +38,7 @@ "@types/ws": "^8.5.9", "globals": "^17.3.0", "pino-pretty": "^13.0.0", - "typescript": "~5.9.0", + "typescript": "~6.0.0", "typescript-eslint": "^8.55.0" }, "optionalDependencies": { diff --git a/tsconfig.json b/tsconfig.json index db727baf185d0a..98401ec95a8a21 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,6 @@ { "compilerOptions": { "jsx": "react-jsx", - "target": "esnext", - "module": "ES2022", - "moduleResolution": "bundler", "allowJs": true, "resolveJsonModule": true, "noEmit": true, @@ -14,15 +11,14 @@ "esModuleInterop": true, "skipLibCheck": true, "types": ["vite/client", "vitest/globals"], - "baseUrl": "./", "incremental": true, "tsBuildInfoFile": "tmp/cache/tsconfig.tsbuildinfo", "paths": { - "@/*": ["app/javascript/*"], - "mastodon": ["app/javascript/mastodon"], - "mastodon/*": ["app/javascript/mastodon/*"], - "images/*": ["app/javascript/images/*"], - "styles/*": ["app/javascript/styles/*"] + "@/*": ["./app/javascript/*"], + "mastodon": ["./app/javascript/mastodon"], + "mastodon/*": ["./app/javascript/mastodon/*"], + "images/*": ["./app/javascript/images/*"], + "styles/*": ["./app/javascript/styles/*"] }, "plugins": [{ "name": "typescript-plugin-css-modules" }] }, diff --git a/yarn.lock b/yarn.lock index e4b7b7da1cfaed..725844c107f2d8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2939,7 +2939,7 @@ __metadata: tesseract.js: "npm:^7.0.0" tiny-queue: "npm:^0.2.1" twitter-text: "npm:3.1.0" - typescript: "npm:~5.9.0" + typescript: "npm:~6.0.0" typescript-eslint: "npm:^8.55.0" typescript-plugin-css-modules: "npm:^5.2.0" use-debounce: "npm:^10.0.0" @@ -2985,7 +2985,7 @@ __metadata: pino-http: "npm:^11.0.0" pino-pretty: "npm:^13.0.0" prom-client: "npm:^15.0.0" - typescript: "npm:~5.9.0" + typescript: "npm:~6.0.0" typescript-eslint: "npm:^8.55.0" utf-8-validate: "npm:^6.0.3" uuid: "npm:^13.0.0" @@ -14114,7 +14114,7 @@ __metadata: languageName: node linkType: hard -"typescript@npm:^5.6.0, typescript@npm:~5.9.0": +"typescript@npm:^5.6.0": version: 5.9.3 resolution: "typescript@npm:5.9.3" bin: @@ -14124,7 +14124,17 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.6.0#optional!builtin, typescript@patch:typescript@npm%3A~5.9.0#optional!builtin": +"typescript@npm:~6.0.0": + version: 6.0.2 + resolution: "typescript@npm:6.0.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/4b860b0bf87cc0fee0f66d8ef2640b5a8a8a8c74d1129adb82e389e5f97124383823c47946bef8a73ede371461143a3aa8544399d2133c7b2e4f07e81860af7f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.6.0#optional!builtin": version: 5.9.3 resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" bin: @@ -14134,6 +14144,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A~6.0.0#optional!builtin": + version: 6.0.2 + resolution: "typescript@patch:typescript@npm%3A6.0.2#optional!builtin::version=6.0.2&hash=5786d5" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/49f0b84fc6ca55653e77752b8a61beabc09ee3dae5d965c31596225aa6ef213c5727b1d2e895b900416dc603854ba0872ac4a812c2a4ed6793a601f9c675de02 + languageName: node + linkType: hard + "unbox-primitive@npm:^1.1.0": version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" From a0f6b6d36521723078399953a5451cbbd24c99a1 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 15:29:11 +0100 Subject: [PATCH 019/335] Fix off-by-one error when creating collection items (#38394) --- .../activitypub/process_featured_collection_service.rb | 2 +- .../activitypub/process_featured_collection_service_spec.rb | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/services/activitypub/process_featured_collection_service.rb b/app/services/activitypub/process_featured_collection_service.rb index 2ef555e6bc2d84..80742b081ef1f0 100644 --- a/app/services/activitypub/process_featured_collection_service.rb +++ b/app/services/activitypub/process_featured_collection_service.rb @@ -51,7 +51,7 @@ def process_items! items = @json['orderedItems'] || [] items.take(ITEMS_LIMIT).each_with_index do |item_json, index| uris << value_or_id(item_json) - ActivityPub::ProcessFeaturedItemWorker.perform_async(@collection.id, item_json, index, @request_id) + ActivityPub::ProcessFeaturedItemWorker.perform_async(@collection.id, item_json, index + 1, @request_id) end uris.compact! @collection.collection_items.where.not(uri: uris).delete_all diff --git a/spec/services/activitypub/process_featured_collection_service_spec.rb b/spec/services/activitypub/process_featured_collection_service_spec.rb index c68120bf0dfc0b..343d3ac3b2d846 100644 --- a/spec/services/activitypub/process_featured_collection_service_spec.rb +++ b/spec/services/activitypub/process_featured_collection_service_spec.rb @@ -52,7 +52,8 @@ expect(new_collection.discoverable).to be true expect(new_collection.tag.formatted_name).to eq '#people' - expect(ActivityPub::ProcessFeaturedItemWorker).to have_enqueued_sidekiq_job.exactly(2).times + expect(ActivityPub::ProcessFeaturedItemWorker).to have_enqueued_sidekiq_job.with(new_collection.id, 'https://example.com/featured_items/1', 1, nil) + expect(ActivityPub::ProcessFeaturedItemWorker).to have_enqueued_sidekiq_job.with(new_collection.id, 'https://example.com/featured_items/2', 2, nil) end end From c9eefd0ae7a141feaac380b65a0031ccddcf1f8b Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 15:32:15 +0100 Subject: [PATCH 020/335] Persist activity URI of a `FeatureRequest` (#38393) --- app/lib/activitypub/activity/feature_request.rb | 10 ++++++---- spec/lib/activitypub/activity/feature_request_spec.rb | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/lib/activitypub/activity/feature_request.rb b/app/lib/activitypub/activity/feature_request.rb index 180eeb492cd565..314a430b6ba8ee 100644 --- a/app/lib/activitypub/activity/feature_request.rb +++ b/app/lib/activitypub/activity/feature_request.rb @@ -23,8 +23,7 @@ def perform def accept_request! collection_item = @collection.collection_items.create!( - account: @featured_account, - state: :accepted + collection_item_attributes(:accepted) ) queue_delivery!(collection_item, ActivityPub::AcceptFeatureRequestSerializer) @@ -32,13 +31,16 @@ def accept_request! def reject_request! collection_item = @collection.collection_items.build( - account: @featured_account, - state: :rejected + collection_item_attributes(:rejected) ) queue_delivery!(collection_item, ActivityPub::RejectFeatureRequestSerializer) end + def collection_item_attributes(state = :accepted) + { account: @featured_account, activity_uri: @json['id'], state: } + end + def queue_delivery!(collection_item, serializer) json = JSON.generate(serialize_payload(collection_item, serializer)) ActivityPub::DeliveryWorker.perform_async(json, @featured_account.id, @account.inbox_url) diff --git a/spec/lib/activitypub/activity/feature_request_spec.rb b/spec/lib/activitypub/activity/feature_request_spec.rb index ac3e42b27213d8..4a3d60b5de13d8 100644 --- a/spec/lib/activitypub/activity/feature_request_spec.rb +++ b/spec/lib/activitypub/activity/feature_request_spec.rb @@ -32,6 +32,7 @@ .with(satisfying do |body| response_json = JSON.parse(body) response_json['type'] == 'Accept' && + response_json['object'] == 'https://example.com/feature_requests/1' && response_json['to'] == sender.uri end, recipient.id, sender.inbox_url) end @@ -46,6 +47,7 @@ .with(satisfying do |body| response_json = JSON.parse(body) response_json['type'] == 'Reject' && + response_json['object'] == 'https://example.com/feature_requests/1' && response_json['to'] == sender.uri end, recipient.id, sender.inbox_url) end From 37236acd3b0c25b240b9eb0f205eec1d1f654218 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 25 Mar 2026 15:34:38 +0100 Subject: [PATCH 021/335] Update web theme tokens with latest design system tokens (#38387) --- .../components/callout/styles.module.css | 14 +- .../components/form_fields/select.module.scss | 2 +- .../form_fields/text_input.module.scss | 4 +- .../mastodon/components/tags/style.module.css | 4 +- .../account_edit/modals/styles.module.scss | 2 +- .../features/account_edit/styles.module.scss | 6 +- .../components/redesign.module.scss | 12 +- .../skip_links/skip_links.module.scss | 2 +- app/javascript/styles/mastodon/_mixins.scss | 2 +- app/javascript/styles/mastodon/accounts.scss | 16 +- app/javascript/styles/mastodon/admin.scss | 20 +-- app/javascript/styles/mastodon/basics.scss | 6 +- .../styles/mastodon/components.scss | 162 +++++++++--------- app/javascript/styles/mastodon/dashboard.scss | 6 +- .../styles/mastodon/emoji_picker.scss | 2 +- app/javascript/styles/mastodon/forms.scss | 28 +-- app/javascript/styles/mastodon/modal.scss | 4 +- app/javascript/styles/mastodon/polls.scss | 2 +- .../styles/mastodon/theme/_base.scss | 61 +++++-- .../styles/mastodon/theme/_dark.scss | 158 ++++++----------- .../styles/mastodon/theme/_light.scss | 158 ++++++----------- app/javascript/styles/mastodon/widgets.scss | 2 +- 22 files changed, 294 insertions(+), 379 deletions(-) diff --git a/app/javascript/mastodon/components/callout/styles.module.css b/app/javascript/mastodon/components/callout/styles.module.css index 14003ccf5dcbda..9df3ea40d20e17 100644 --- a/app/javascript/mastodon/components/callout/styles.module.css +++ b/app/javascript/mastodon/components/callout/styles.module.css @@ -3,7 +3,7 @@ align-items: start; padding: 12px; gap: 8px; - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); color: var(--color-text-primary); border-radius: 12px; } @@ -86,11 +86,11 @@ } .variantSubtle { - border: 1px solid var(--color-bg-brand-softer); + border: 1px solid var(--color-bg-brand-softest); background-color: var(--color-bg-primary); .icon { - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); } } @@ -105,11 +105,11 @@ .variantInverted { background-color: var(--color-bg-inverted); - color: var(--color-text-on-inverted); + color: var(--color-text-inverted); } .variantSuccess { - background-color: var(--color-bg-success-softer); + background-color: var(--color-bg-success-softest); .icon { background-color: var(--color-bg-success-soft); @@ -117,7 +117,7 @@ } .variantWarning { - background-color: var(--color-bg-warning-softer); + background-color: var(--color-bg-warning-softest); .icon { background-color: var(--color-bg-warning-soft); @@ -125,7 +125,7 @@ } .variantError { - background-color: var(--color-bg-error-softer); + background-color: var(--color-bg-error-softest); .icon { background-color: var(--color-bg-error-soft); diff --git a/app/javascript/mastodon/components/form_fields/select.module.scss b/app/javascript/mastodon/components/form_fields/select.module.scss index e68e248fec60d7..7ba0a53cbf83c5 100644 --- a/app/javascript/mastodon/components/form_fields/select.module.scss +++ b/app/javascript/mastodon/components/form_fields/select.module.scss @@ -61,6 +61,6 @@ } [data-has-error='true'] & { - border-color: var(--color-text-error); + border-color: var(--color-border-error); } } diff --git a/app/javascript/mastodon/components/form_fields/text_input.module.scss b/app/javascript/mastodon/components/form_fields/text_input.module.scss index f432f57055d39c..105b956cc55319 100644 --- a/app/javascript/mastodon/components/form_fields/text_input.module.scss +++ b/app/javascript/mastodon/components/form_fields/text_input.module.scss @@ -32,11 +32,11 @@ &:focus:user-invalid, &:required:user-invalid, [data-has-error='true'] & { - outline-color: var(--color-text-error); + outline-color: var(--color-border-error); } &:focus { - outline-color: var(--color-text-brand); + outline-color: var(--color-border-brand); } &:required:user-valid { diff --git a/app/javascript/mastodon/components/tags/style.module.css b/app/javascript/mastodon/components/tags/style.module.css index f3c507b644f851..dd14cc43df8ec4 100644 --- a/app/javascript/mastodon/components/tags/style.module.css +++ b/app/javascript/mastodon/components/tags/style.module.css @@ -22,8 +22,8 @@ button.tag:focus-visible { } .active { - border-color: var(--color-text-brand); - background: var(--color-bg-brand-softer); + border-color: var(--color-border-brand); + background: var(--color-bg-brand-softest); color: var(--color-text-brand); } diff --git a/app/javascript/mastodon/features/account_edit/modals/styles.module.scss b/app/javascript/mastodon/features/account_edit/modals/styles.module.scss index ebe36d412b55dd..f4eaf04f09d1ab 100644 --- a/app/javascript/mastodon/features/account_edit/modals/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/modals/styles.module.scss @@ -58,7 +58,7 @@ transition: background 0.2s ease-in-out; &:hover { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } &:focus-visible { diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index b2ab20ae3bf06f..69abdb856b6ceb 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -160,7 +160,7 @@ &:active, &:focus, &:hover { - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); } &:disabled { @@ -177,7 +177,7 @@ .deleteButton { --default-icon-color: var(--color-text-error); - --hover-bg-color: var(--color-bg-error-base-hover); + --hover-bg-color: var(--color-bg-error-base); --hover-icon-color: var(--color-text-on-error-base); } @@ -201,7 +201,7 @@ &, &:global(.active) { // Overrides the transparent background added by default with .active - --hover-bg-color: var(--color-bg-brand-softer-solid); + --hover-bg-color: var(--color-bg-brand-softest); } position: absolute; diff --git a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss index 3b6a95d099c567..d483922e778d1b 100644 --- a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss @@ -93,7 +93,7 @@ } svg { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); width: 28px; height: 28px; padding: 5px; @@ -184,7 +184,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; .badgeMuted { background-color: var(--color-bg-inverted); - color: var(--color-text-on-inverted); + color: var(--color-text-inverted); } .badgeBlocked { @@ -270,7 +270,7 @@ svg.badgeIcon { } .fieldVerified { - background-color: var(--color-bg-success-softer); + background-color: var(--color-bg-success-softest); dt { padding-right: 24px; @@ -292,8 +292,8 @@ svg.badgeIcon { } .fieldOverflowButton { - --default-bg-color: var(--color-bg-secondary-solid); - --hover-bg-color: var(--color-bg-brand-softer-solid); + --default-bg-color: var(--color-bg-secondary); + --hover-bg-color: var(--color-bg-brand-softest); position: absolute; right: 8px; @@ -413,7 +413,7 @@ svg.badgeIcon { :global(.active) { color: var(--color-text-brand); - border-bottom: 4px solid var(--color-text-brand); + border-bottom: 4px solid var(--color-border-brand); padding-bottom: 14px; } } diff --git a/app/javascript/mastodon/features/ui/components/skip_links/skip_links.module.scss b/app/javascript/mastodon/features/ui/components/skip_links/skip_links.module.scss index 1d4dc1c3f549f5..ad206dfecc5205 100644 --- a/app/javascript/mastodon/features/ui/components/skip_links/skip_links.module.scss +++ b/app/javascript/mastodon/features/ui/components/skip_links/skip_links.module.scss @@ -33,7 +33,7 @@ &:focus-within { outline: var(--outline-focus-default); - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } :any-link { diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss index a8c3604dc5bb0c..c92c8d8cee0ed4 100644 --- a/app/javascript/styles/mastodon/_mixins.scss +++ b/app/javascript/styles/mastodon/_mixins.scss @@ -7,7 +7,7 @@ background: var(--color-bg-secondary); color: var(--color-text-primary); border-radius: 4px; - border: 1px solid var(--color-border-on-bg-secondary); + border: 1px solid var(--color-border-primary); font-size: 17px; line-height: normal; margin: 0; diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss index d1c35e3f9ec067..fad41b5eb84e8c 100644 --- a/app/javascript/styles/mastodon/accounts.scss +++ b/app/javascript/styles/mastodon/accounts.scss @@ -13,7 +13,7 @@ &:active, &:focus { .card__bar { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } } @@ -220,8 +220,8 @@ .information-badge { &.superapp { color: var(--color-text-success); - background-color: var(--color-bg-success-softer); - border-color: var(--color-border-on-bg-success-softer); + background-color: var(--color-bg-success-softest); + border-color: var(--color-border-success-soft); } } @@ -229,7 +229,7 @@ display: inline-flex; padding: 4px; padding-inline-end: 8px; - border: 1px solid var(--color-text-brand); + border: 1px solid var(--color-border-brand); color: var(--color-text-brand); font-weight: 500; font-size: 12px; @@ -255,8 +255,8 @@ .simple_form .not_recommended { color: var(--color-text-error); - background-color: var(--color-bg-error-softer); - border-color: var(--color-border-on-bg-error-softer); + background-color: var(--color-bg-error-softest); + border-color: var(--color-border-error-soft); } .account__header__fields { @@ -310,8 +310,8 @@ } .verified { - border: 1px solid var(--color-border-on-bg-success-softer); - background: var(--color-bg-success-softer); + border: 1px solid var(--color-border-success-soft); + background: var(--color-bg-success-softest); a { color: var(--color-text-success); diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 8e716d2bc7a517..47f3ff080c6e22 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -68,7 +68,7 @@ $content-width: 840px; border-radius: 4px; &:focus { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } .material-close { @@ -438,7 +438,7 @@ $content-width: 840px; } ul .simple-navigation-active-leaf a { - border-bottom-color: var(--color-text-brand); + border-bottom-color: var(--color-border-brand); } } } @@ -499,7 +499,7 @@ body, kbd { font-family: Courier, monospace; - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); padding: 4px; padding-bottom: 2px; border-radius: 5px; @@ -566,7 +566,7 @@ kbd { &.selected { color: var(--color-text-brand); - border-bottom: 2px solid var(--color-text-brand); + border-bottom: 2px solid var(--color-border-brand); } } } @@ -829,14 +829,14 @@ a.name-tag, .speech-bubble { margin-bottom: 20px; - border-inline-start: 4px solid var(--color-text-brand); + border-inline-start: 4px solid var(--color-border-brand); &.positive { border-color: var(--color-text-success); } &.negative { - border-color: var(--color-text-error); + border-color: var(--color-border-error); } &.warning { @@ -1298,7 +1298,7 @@ a.sparkline { &:hover, &:focus, &:active { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } @@ -1922,7 +1922,7 @@ a.sparkline { width: calc(1.375rem + 1px); height: calc(1.375rem + 1px); background: var(--color-bg-primary); - border: 1px solid var(--color-text-brand); + border: 1px solid var(--color-border-brand); color: var(--color-text-brand); border-radius: 8px; } @@ -2006,8 +2006,8 @@ a.sparkline { display: block; box-sizing: border-box; color: var(--color-text-primary); - background: var(--color-bg-brand-softer); - border: 1px solid var(--color-border-on-bg-brand-softer); + background: var(--color-bg-brand-softest); + border: 1px solid var(--color-border-brand-soft); border-radius: 8px; padding: 8px 13px; position: relative; diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss index 610730df5a73b9..a16afbe9a57a4f 100644 --- a/app/javascript/styles/mastodon/basics.scss +++ b/app/javascript/styles/mastodon/basics.scss @@ -2,13 +2,13 @@ html { color: var(--color-text-primary); - background: var(--color-bg-ambient); + background: var(--color-bg-primary); &.custom-scrollbars { scrollbar-color: var(--color-text-secondary) var(--color-bg-secondary); } - --outline-focus-default: 2px solid var(--color-text-brand); + --outline-focus-default: 2px solid var(--color-border-brand); --avatar-border-radius: 8px; --max-media-height-small: 460px; --max-media-height-large: 566px; @@ -46,7 +46,7 @@ html.has-modal { body { font-family: $font-sans-serif, sans-serif; - background: var(--color-bg-ambient); + background: var(--color-bg-primary); font-size: 13px; line-height: 18px; font-weight: 400; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index e38193c30bc1a9..d254d0ae5286c9 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -114,7 +114,7 @@ } &:focus-visible { - outline: 2px solid var(--color-bg-brand-base); + outline: var(--outline-focus-default); outline-offset: 2px; } @@ -169,12 +169,12 @@ color: var(--color-text-brand); background: transparent; padding: 6px 17px; - border: 1px solid var(--color-text-brand); + border: 1px solid var(--color-border-brand); &:active, &:focus, &:hover { - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); color: var(--color-text-brand); background-color: transparent; text-decoration: none; @@ -184,7 +184,7 @@ &:active, &:focus, &:hover { - border-color: var(--color-text-error); + border-color: var(--color-border-error); color: var(--color-text-error); } } @@ -284,8 +284,8 @@ --default-icon-color: var(--color-text-secondary); --default-bg-color: transparent; --hover-icon-color: var(--color-text-primary); - --hover-bg-color: var(--color-bg-brand-softer); - --focus-outline-color: var(--color-text-brand); + --hover-bg-color: var(--color-bg-brand-softest); + --focus-outline-color: var(--color-border-brand); display: inline-flex; color: var(--default-icon-color); @@ -364,8 +364,8 @@ &.copied { color: var(--color-text-success); transition: none; - background-color: var(--color-bg-success-softer); - border-color: var(--color-border-on-bg-brand-softer); + background-color: var(--color-bg-success-softest); + border-color: var(--color-border-success-soft); } } @@ -537,21 +537,21 @@ body > [data-popper-placement] { flex-direction: column; flex: 0 1 auto; border-radius: 4px; - border: 1px solid var(--color-border-on-bg-secondary); + border: 1px solid var(--color-border-primary); transition: border-color 300ms linear; position: relative; background: var(--color-bg-secondary); &.active { transition: none; - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); } } &__warning { color: var(--color-text-primary); - background: var(--color-bg-warning-softer); - border: 1px solid var(--color-border-on-bg-warning-softer); + background: var(--color-bg-warning-softest); + border: 1px solid var(--color-border-warning-soft); padding: 8px 10px; border-radius: 4px; font-size: 13px; @@ -619,7 +619,7 @@ body > [data-popper-placement] { .spoiler-input__input { padding: 12px 12px - 5px; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); color: var(--color-text-brand); } @@ -885,7 +885,7 @@ body > [data-popper-placement] { line-height: 20px; letter-spacing: 0.1px; color: var(--color-text-brand); - background-color: var(--color-bg-secondary-solid); + background-color: var(--color-bg-secondary); white-space: nowrap; text-overflow: ellipsis; overflow: hidden; @@ -917,7 +917,7 @@ body > [data-popper-placement] { gap: 4px; color: var(--color-text-brand); background: transparent; - border: 1px solid var(--color-text-brand); + border: 1px solid var(--color-border-brand); border-radius: 6px; padding: 4px 8px; font-size: 13px; @@ -1464,9 +1464,9 @@ body > [data-popper-placement] { .focusable { &:focus-visible { - outline: 2px solid var(--color-text-brand); + outline: 2px solid var(--color-border-brand); outline-offset: -2px; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } @@ -1587,7 +1587,7 @@ body > [data-popper-placement] { content: ''; position: absolute; inset: 0; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); opacity: 0; animation: fade 0.7s reverse both 0.3s; pointer-events: none; @@ -1739,7 +1739,7 @@ body > [data-popper-placement] { .notification-ungrouped--direct, .notification-group--direct, .notification-group--annual-report { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); &:focus { background: var(--color-bg-brand-soft); @@ -1877,7 +1877,7 @@ body > [data-popper-placement] { .detailed-status__wrapper-direct { .detailed-status, .detailed-status__action-bar { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } .status__prepend { @@ -1932,7 +1932,7 @@ body > [data-popper-placement] { line-height: 20px; letter-spacing: 0.25px; color: var(--color-text-secondary); - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); border-radius: 8px; cursor: default; } @@ -2060,7 +2060,7 @@ body > [data-popper-placement] { &__domain-pill { display: inline-flex; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); border-radius: 4px; border: 0; color: var(--color-text-brand); @@ -2121,7 +2121,7 @@ body > [data-popper-placement] { &__handle { border: 2px dashed var(--color-border-on-brand-softer); - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); padding: 12px 8px; color: var(--color-text-brand); border-radius: 4px; @@ -2903,11 +2903,15 @@ a.account__display-name { &:focus, &:hover, &:active { - &:not(:disabled, [aria-disabled='true']) { - background: var(--color-bg-secondary); + &:where(:not(:disabled, [aria-disabled='true'])) { + background: var(--color-bg-brand-softest); outline: 0; } } + + &:focus-visible { + outline: var(--outline-focus-default); + } } button:disabled, @@ -3072,7 +3076,7 @@ a.account__display-name { } &:focus-visible { - border-top-color: var(--color-text-brand); + border-top-color: var(--color-border-brand); border-radius: 0; } } @@ -3087,7 +3091,7 @@ a.account__display-name { border-top: 0; @media screen and (min-width: $no-gap-breakpoint) { - border-top: 10px solid var(--color-bg-ambient); + border-top: 10px solid var(--color-bg-primary); } } @@ -3586,7 +3590,7 @@ a.account__display-name { &.focused { transition: none; outline: 0; - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); } &.copied { @@ -3986,25 +3990,14 @@ a.account__display-name { height: 20px; padding: 0; border-radius: 10px; - background-color: rgb(from var(--color-bg-brand-softer) r g b / 50%); - border: 1px solid rgb(from var(--color-text-brand) r g b / 50%); + background-color: var(--color-bg-tertiary); + border: 1px solid var(--color-border-primary); box-sizing: border-box; - .react-toggle:hover:not(.react-toggle--disabled) & { - background-color: rgb( - from var(--color-bg-brand-softer) r g b / - calc(50% + var(--overlay-strength-brand)) - ); - } - .react-toggle--checked & { background-color: var(--color-bg-brand-base); border-color: var(--color-bg-brand-base); } - - .react-toggle--checked:not(.react-toggle--disabled):hover & { - background-color: var(--color-bg-brand-base-hover); - } } .react-toggle-track-check, @@ -4020,6 +4013,7 @@ a.account__display-name { height: 16px; border-radius: 50%; background-color: var(--color-text-on-brand-base); + box-shadow: 0 2px 4px 0 color-mix(var(--color-black), transparent 75%); box-sizing: border-box; transition: all 0.25s ease; transition-property: border-color, left; @@ -4081,8 +4075,8 @@ a.account__display-name { &:focus-visible { outline: none; - border-color: var(--color-text-brand); - background: var(--color-bg-brand-softer); + border-color: var(--color-border-brand); + background: var(--color-bg-brand-softest); } &--logo { @@ -4457,7 +4451,7 @@ a.status-card { } &:focus-visible { - outline: 2px solid var(--color-text-brand); + outline: var(--outline-focus-default); outline-offset: -2px; } } @@ -4545,7 +4539,7 @@ a.status-card { z-index: 1; &.active { - box-shadow: 0 1px 0 var(--color-bg-brand-softer); + box-shadow: 0 1px 0 var(--color-bg-brand-softest); &::before { display: block; @@ -4655,7 +4649,7 @@ a.status-card { &.active { .column-header__icon { color: var(--color-text-brand); - text-shadow: 0 0 10px var(--color-bg-brand-softer); + text-shadow: 0 0 10px var(--color-bg-brand-softest); } } @@ -5150,7 +5144,7 @@ a.status-card { &:hover, &:active, &:focus { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); color: color-mix( in oklab, var(--color-text-primary), @@ -5752,7 +5746,7 @@ a.status-card { .visibility-modal { &__quote-warning { color: var(--color-text-primary); - background: var(--color-bg-warning-softer); + background: var(--color-bg-warning-softest); padding: 16px; border-radius: 4px; @@ -5787,7 +5781,7 @@ a.status-card { display: flex; align-items: center; color: var(--color-text-primary); - background: var(--color-bg-secondary-solid); + background: var(--color-bg-secondary); border: 1px solid var(--color-border-primary); padding: 8px 12px; width: 100%; @@ -5848,7 +5842,8 @@ a.status-card { .icon-button { padding: 0; - color: var(--color-text-secondary); + + --default-icon-color: inherit; } .icon { @@ -5901,7 +5896,10 @@ a.status-card { background: var(--color-bg-brand-base); .icon-button { - color: inherit; + --default-icon-color: inherit; + --default-bg-color: transparent; + --hover-icon-color: inherit; + --hover-bg-color: var(--color-bg-brand-base-hover); } } @@ -6000,7 +5998,7 @@ a.status-card { } &:focus-visible { - box-shadow: 0 0 0 2px var(--color-text-brand); + box-shadow: 0 0 0 2px var(--color-border-brand); } &[aria-hidden='true'] { @@ -6254,9 +6252,7 @@ a.status-card { --default-icon-color: var(--color-text-on-media); --default-bg-color: transparent; --hover-icon-color: var(--color-text-on-media); - --hover-bg-color: rgb( - from var(--color-text-on-media) r g b / var(--overlay-strength-brand) - ); + --hover-bg-color: rgb(from var(--color-text-on-media) r g b / 10%); .icon { filter: var(--overlay-icon-shadow); @@ -6272,8 +6268,7 @@ a.status-card { --default-icon-color: var(--color-text-favourite-highlight); --hover-icon-color: var(--color-text-favourite-highlight); --hover-bg-color: rgb( - from var(--color-text-favourite-highlight) r g b / - var(--overlay-strength-brand) + from var(--color-text-favourite-highlight) r g b / 10% ); } @@ -6918,7 +6913,7 @@ a.status-card { } .button.button-secondary { - border-color: var(--color-text-error); + border-color: var(--color-border-error); color: var(--color-text-error); flex: 0 0 auto; @@ -6986,7 +6981,7 @@ a.status-card { &:hover, &:active, &:focus { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } } @@ -7431,7 +7426,7 @@ a.status-card { inset: 2px; z-index: 1; border-radius: inherit; - border: 2px solid var(--color-text-on-inverted); + border: 2px solid var(--color-text-inverted); outline: 2px solid var(--color-bg-inverted); pointer-events: none; } @@ -8150,7 +8145,7 @@ a.status-card { &.checked, &.indeterminate { - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); } .icon { @@ -8691,7 +8686,7 @@ noscript { } &:focus { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } } @@ -8953,7 +8948,7 @@ noscript { } &__root { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); font-size: 13px; display: flex; align-items: flex-end; @@ -9037,13 +9032,13 @@ noscript { &__item { flex-shrink: 0; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); color: color-mix( in oklab, var(--color-text-primary), var(--color-text-secondary) ); - border: 1px solid var(--color-border-on-bg-brand-softer); + border: 1px solid var(--color-border-brand-soft); border-radius: 3px; box-sizing: border-box; margin: 2px; @@ -9092,8 +9087,8 @@ noscript { &.active { color: var(--color-text-brand); - background-color: var(--color-bg-brand-softer); - border-color: var(--color-text-brand); + background-color: var(--color-bg-brand-softest); + border-color: var(--color-border-brand); transition: all 100ms ease-in; transition-property: background-color, color; } @@ -9156,7 +9151,7 @@ noscript { inset-inline-start: 0; width: 100%; height: 100%; - border-inline-start: 4px solid var(--color-text-brand); + border-inline-start: 4px solid var(--color-border-brand); pointer-events: none; } } @@ -9679,7 +9674,7 @@ noscript { } &.invalid &__input { - border-color: var(--color-text-error); + border-color: var(--color-border-error); } &.expanded .search__popout { @@ -9950,8 +9945,8 @@ noscript { margin: 10px; margin-bottom: 5px; border-radius: 8px; - border: 1px solid var(--color-border-on-bg-brand-softer); - background: var(--color-bg-brand-softer); + border: 1px solid var(--color-border-brand-soft); + background: var(--color-bg-brand-softest); overflow: hidden; flex-shrink: 0; @@ -10017,8 +10012,8 @@ noscript { } .warning-banner { - border: 1px solid var(--color-border-on-bg-error-softer); - background: var(--color-bg-error-softer); + border: 1px solid var(--color-border-error-soft); + background: var(--color-bg-error-softest); &__message { h1 { @@ -10354,7 +10349,7 @@ noscript { width: auto; padding: 15px; margin: 0; - color: var(--color-text-on-inverted); + color: var(--color-text-inverted); background: var(--color-bg-inverted); backdrop-filter: blur(8px); border-radius: 8px; @@ -10408,7 +10403,7 @@ noscript { &:hover, &:focus, &:active { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } @@ -10510,13 +10505,16 @@ noscript { color: inherit; text-decoration: none; padding: 4px 12px; - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); border-radius: 4px; font-weight: 500; &:hover, &:focus, - &:active { + &:active, + .focusable:focus-visible &, + .detailed-status__wrapper-direct .detailed-status &, + .status__wrapper-direct & { background: var(--color-bg-brand-soft); } } @@ -10536,10 +10534,10 @@ noscript { padding: 16px 0; padding-bottom: 0; border-bottom: 1px solid var(--color-border-primary); - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); &.focusable:focus-visible { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } &__header { @@ -11201,7 +11199,7 @@ noscript { inset-inline-start: 0; width: 100%; height: 100%; - border-inline-start: 4px solid var(--color-text-brand); + border-inline-start: 4px solid var(--color-border-brand); pointer-events: none; } } @@ -11398,8 +11396,8 @@ noscript { display: block; box-sizing: border-box; color: var(--color-text-primary); - background: var(--color-bg-brand-softer); - border: 1px solid var(--color-border-on-bg-brand-softer); + background: var(--color-bg-brand-softest); + border: 1px solid var(--color-border-brand-soft); border-radius: 8px; padding: 8px (5px + 8px); position: relative; diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss index db3f0e8a8425e9..014021394b83ef 100644 --- a/app/javascript/styles/mastodon/dashboard.scss +++ b/app/javascript/styles/mastodon/dashboard.scss @@ -30,7 +30,7 @@ &:hover, &:focus, &:active { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } } @@ -100,12 +100,12 @@ } &.positive { - background: var(--color-bg-success-softer); + background: var(--color-bg-success-softest); color: var(--color-text-success); } &.negative { - background: var(--color-bg-error-softer); + background: var(--color-bg-error-softest); color: var(--color-text-error); } diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss index ad2f2f630db740..2d1e03d7b9be5f 100644 --- a/app/javascript/styles/mastodon/emoji_picker.scss +++ b/app/javascript/styles/mastodon/emoji_picker.scss @@ -168,7 +168,7 @@ inset-inline-start: 0; width: 100%; height: 100%; - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); border-radius: 100%; } } diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index cc6827db4cdf55..7d2af8ddc16a50 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -32,7 +32,7 @@ code { display: block; background: linear-gradient( to bottom, - var(--color-bg-secondary-solid), + var(--color-bg-secondary), transparent ); position: absolute; @@ -573,7 +573,7 @@ code { input[type='datetime-local'] { &:focus:user-invalid:not(:placeholder-shown), &:required:user-invalid:not(:placeholder-shown) { - border-color: var(--color-text-error); + border-color: var(--color-border-error); } } @@ -763,7 +763,7 @@ code { input[type='datetime-local'], textarea, select { - border-color: var(--color-text-error); + border-color: var(--color-border-error); } } @@ -801,27 +801,27 @@ code { .flash-message { color: var(--color-text-brand); background: transparent; - border: 1px solid var(--color-text-brand); + border: 1px solid var(--color-border-brand); border-radius: 4px; padding: 15px 10px; margin-bottom: 30px; text-align: center; &.notice { - border: 1px solid var(--color-border-on-bg-success-softer); - background: var(--color-bg-success-softer); + border: 1px solid var(--color-border-success-soft); + background: var(--color-bg-success-softest); color: var(--color-text-success); } &.warning { - border: 1px solid var(--color-border-on-bg-warning-softer); - background: var(--color-bg-warning-softer); + border: 1px solid var(--color-border-warning-soft); + background: var(--color-bg-warning-softest); color: var(--color-text-warning); } &.alert { - border: 1px solid var(--color-border-on-bg-error-softer); - background: var(--color-bg-error-softer); + border: 1px solid var(--color-border-error-soft); + background: var(--color-bg-error-softest); color: var(--color-text-error); } @@ -887,7 +887,7 @@ code { } &:focus { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); } } @@ -1373,7 +1373,7 @@ code { cursor: pointer; &:hover { - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); } img { @@ -1404,7 +1404,7 @@ code { } &.invalid img { - outline: 1px solid var(--color-text-error); + outline: 1px solid var(--color-border-error); outline-offset: -1px; } @@ -1414,7 +1414,7 @@ code { width: 100%; height: 100%; position: absolute; - background: var(--color-bg-error-softer); + background: var(--color-bg-error-softest); z-index: 2; border-radius: 8px; } diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss index 6af2a182b63449..4ffbd1d7bbc10e 100644 --- a/app/javascript/styles/mastodon/modal.scss +++ b/app/javascript/styles/mastodon/modal.scss @@ -1,7 +1,7 @@ @use 'variables' as *; .modal-layout { - background: var(--color-bg-brand-softer); + background: var(--color-bg-brand-softest); display: flex; flex-direction: column; height: 100vh; @@ -42,7 +42,7 @@ position: absolute; inset: auto 0 0; height: 32px; - background-color: var(--color-bg-brand-softer); + background-color: var(--color-bg-brand-softest); /* Decorative zig-zag pattern at the bottom of the page */ mask-image: url('data:image/svg+xml;utf8,'); diff --git a/app/javascript/styles/mastodon/polls.scss b/app/javascript/styles/mastodon/polls.scss index 19fb8dd505f72b..ce7f51f8cdbcef 100644 --- a/app/javascript/styles/mastodon/polls.scss +++ b/app/javascript/styles/mastodon/polls.scss @@ -86,7 +86,7 @@ padding: 8px 12px; &:focus { - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); } @media screen and (width <= 600px) { diff --git a/app/javascript/styles/mastodon/theme/_base.scss b/app/javascript/styles/mastodon/theme/_base.scss index 85fd0dab453c29..9b39f1b02e1809 100644 --- a/app/javascript/styles/mastodon/theme/_base.scss +++ b/app/javascript/styles/mastodon/theme/_base.scss @@ -1,40 +1,69 @@ @mixin palette { + --color-white: #fff; --color-black: #000; - --color-grey-950: #181820; - --color-grey-800: #3a3a50; - --color-grey-700: #44445f; - --color-grey-600: #535374; - --color-grey-500: #67678e; - --color-grey-400: #88a; - --color-grey-300: #b2b1c8; - --color-grey-200: #d7d6e1; - --color-grey-100: #eeedf3; + + // Grey --color-grey-50: #f6f6f9; - --color-white: #fff; - --color-indigo-700: #5638cc; - --color-indigo-600: #6147e6; - --color-indigo-400: #8280f9; - --color-indigo-300: #a5abfd; - --color-indigo-200: #c8cdfe; - --color-indigo-100: #e0e3ff; + --color-grey-100: #eeedf3; + --color-grey-200: #d7d6e1; + --color-grey-300: #b2b1c8; + --color-grey-400: #88a; + --color-grey-500: #67678e; + --color-grey-600: #535374; + --color-grey-700: #44445f; + --color-grey-800: #3a3a50; + --color-grey-900: #21212c; + --color-grey-950: #181820; + + // Indigo --color-indigo-50: #f0f1ff; + --color-indigo-100: #e0e3ff; + --color-indigo-200: #c8cdfe; + --color-indigo-300: #a5abfd; + --color-indigo-400: #8280f9; + --color-indigo-500: #7263f2; + --color-indigo-600: #6147e6; + --color-indigo-700: #5638cc; + --color-indigo-800: #48359c; + --color-indigo-900: #3d317c; + --color-indigo-950: #261e48; + + // Red --color-red-50: #fef2f2; --color-red-100: #ffe2e2; + --color-red-200: #ffc9c9; --color-red-300: #ffa2a2; + --color-red-400: #ff6467; + --color-red-500: #fb2c36; + --color-red-600: #e7000b; + --color-red-700: #c10007; --color-red-800: #9f0712; --color-red-900: #82181a; --color-red-950: #460809; + + // Yellow --color-yellow-50: #fffbeb; --color-yellow-100: #fef3c6; + --color-yellow-200: #fee685; + --color-yellow-300: #ffd230; --color-yellow-400: #ffb900; + --color-yellow-500: #fe9a00; --color-yellow-600: #e17100; --color-yellow-700: #bb4d00; + --color-yellow-800: #973c00; --color-yellow-900: #7b3306; --color-yellow-950: #461901; + + // Green --color-green-50: #f0fdf4; --color-green-100: #dcfce7; + --color-green-200: #b9f8cf; + --color-green-300: #7bf1a8; --color-green-400: #05df72; + --color-green-500: #00c950; --color-green-600: #00a63e; + --color-green-700: #008236; + --color-green-800: #016630; --color-green-900: #0d542b; --color-green-950: #032e15; } diff --git a/app/javascript/styles/mastodon/theme/_dark.scss b/app/javascript/styles/mastodon/theme/_dark.scss index a22c7cc8f444a6..161524cdc434de 100644 --- a/app/javascript/styles/mastodon/theme/_dark.scss +++ b/app/javascript/styles/mastodon/theme/_dark.scss @@ -5,150 +5,92 @@ --color-text-primary: var(--color-grey-100); --color-text-secondary: var(--color-grey-300); - --color-text-tertiary: var(--color-grey-400); - --color-text-on-inverted: var(--color-grey-950); + --color-text-tertiary: var(--color-grey-400); // legacy + --color-text-inverted: var(--color-grey-950); --color-text-brand: var(--color-indigo-300); --color-text-brand-soft: color-mix( in oklab, var(--color-text-primary), var(--color-text-brand) - ); + ); // legacy + --color-text-on-brand-base: var(--color-white); - --color-text-brand-on-inverted: var(--color-indigo-600); + --color-text-brand-on-inverted: var(--color-indigo-600); // legacy --color-text-error: var(--color-red-300); --color-text-on-error-base: var(--color-white); - --color-text-warning: var(--color-yellow-400); + --color-text-warning: var(--color-yellow-400); // legacy --color-text-on-warning-base: var(--color-white); - --color-text-success: var(--color-green-400); + --color-text-success: var(--color-green-400); // legacy --color-text-on-success-base: var(--color-white); - --color-text-disabled: var(--color-grey-600); - --color-text-on-disabled: var(--color-grey-400); - --color-text-bookmark-highlight: var(--color-text-error); - --color-text-favourite-highlight: var(--color-text-warning); - --color-text-on-media: var(--color-white); + --color-text-disabled: var(--color-grey-600); // legacy + --color-text-on-disabled: var(--color-grey-400); // legacy + --color-text-bookmark-highlight: var(--color-text-error); // legacy + --color-text-favourite-highlight: var(--color-text-warning); // legacy + --color-text-on-media: var(--color-white); // legacy --color-text-status-links: color-mix( in oklab, var(--color-text-primary), var(--color-text-secondary) - ); + ); // legacy /* BACKGROUND TOKENS */ // Neutrals --color-bg-primary: var(--color-grey-950); --overlay-strength-secondary: 4%; - --color-bg-secondary-base: var(--color-white); - --color-bg-secondary: #{utils.css-alpha( - var(--color-bg-secondary-base), - var(--overlay-strength-secondary) - )}; - --color-bg-secondary-solid: color-mix( - in srgb, - var(--color-bg-primary), - var(--color-bg-secondary-base) var(--overlay-strength-secondary) - ); - --color-bg-tertiary: color-mix( - in oklab, - var(--color-bg-primary), - var(--color-bg-secondary-base) calc(2 * var(--overlay-strength-secondary)) - ); + --color-bg-secondary: var(--color-grey-900); + --color-bg-tertiary: var(--color-grey-800); // legacy // Utility - --color-bg-ambient: var(--color-bg-primary); --color-bg-inverted: var(--color-grey-50); - --color-bg-media-base: var(--color-black); - --color-bg-media-strength: 65%; - --color-bg-media: #{utils.css-alpha( - var(--color-bg-media-base), - var(--color-bg-media-strength) - )}; - --color-bg-overlay: var(--color-black); - --color-bg-disabled: var(--color-grey-700); + --color-bg-overlay-base: #{utils.css-alpha(var(--color-grey-950), 60%)}; + --color-bg-overlay-highlight: #{utils.css-alpha(var(--color-white), 5%)}; + --color-bg-overlay: var(--color-black); // legacy + --color-bg-media-base: var(--color-black); // legacy + --color-bg-media: #{utils.css-alpha(var(--color-bg-media-base), 65%)}; // legacy + --color-bg-disabled: var(--color-grey-700); // legacy // Brand - --overlay-strength-brand: 22%; --color-bg-brand-base: var(--color-indigo-700); - --color-bg-brand-base-hover: color-mix( - in oklab, - var(--color-bg-brand-base), - var(--color-bg-primary) var(--overlay-strength-brand) - ); - --color-bg-brand-soft: #{utils.css-alpha( - #6f4df5, - calc(var(--overlay-strength-brand) * 2) - )}; - --color-bg-brand-softer: #{utils.css-alpha( - var(--color-bg-brand-base), - var(--overlay-strength-brand) - )}; - --color-bg-brand-softer-solid: color-mix( - in srgb, - var(--color-bg-primary), - var(--color-bg-brand-base) var(--overlay-strength-brand) - ); + --color-bg-brand-base-hover: var(--color-indigo-800); // legacy + --color-bg-brand-soft: var(--color-indigo-900); + --color-bg-brand-softest: var(--color-indigo-950); // Error - --overlay-strength-error: 10%; - --color-bg-error-base: var(--color-red-800); - --color-bg-error-base-hover: color-mix( - in oklab, - var(--color-bg-error-base), - var(--color-bg-primary) var(--overlay-strength-error) - ); + --color-bg-error-base: var(--color-red-700); + --color-bg-error-base-hover: var(--color-red-800); // legacy --color-bg-error-soft: var(--color-red-900); - --color-bg-error-softer: var(--color-red-950); + --color-bg-error-softest: var(--color-red-950); // Warning - --overlay-strength-warning: 10%; - --color-bg-warning-base: var(--color-yellow-700); - --color-bg-warning-base-hover: color-mix( - in oklab, - var(--color-bg-warning-base), - var(--color-bg-primary) var(--overlay-strength-warning) - ); + --color-bg-warning-base: var(--color-yellow-700); // legacy --color-bg-warning-soft: var(--color-yellow-900); - --color-bg-warning-softer: var(--color-yellow-950); + --color-bg-warning-softest: var(--color-yellow-950); // Success - --overlay-strength-success: 15%; - --color-bg-success-base: var(--color-green-600); - --color-bg-success-base-hover: color-mix( - in oklab, - var(--color-bg-success-base), - var(--color-bg-primary) var(--overlay-strength-success) - ); + --color-bg-success-base: var(--color-green-600); // legacy --color-bg-success-soft: var(--color-green-900); - --color-bg-success-softer: var(--color-green-950); + --color-bg-success-softest: var(--color-green-950); /* BORDER TOKENS */ - --border-strength-primary: 18%; - --color-border-primary: #{utils.css-alpha( - var(--color-indigo-200), - var(--border-strength-primary) - )}; - --color-border-media: rgb(252 248 255 / 15%); - --color-border-verified: rgb(220, 3, 240); - --color-border-on-bg-secondary: #{utils.css-alpha( - var(--color-indigo-200), - calc(var(--border-strength-primary) / 1.5) - )}; - --color-border-on-bg-brand-softer: var(--color-border-primary); - --color-border-on-bg-error-softer: #{utils.css-alpha( - var(--color-text-error), - 50% - )}; - --color-border-on-bg-warning-softer: #{utils.css-alpha( + --color-border-primary: var(--color-grey-800); + --color-border-brand: var(--color-text-brand); + --color-border-brand-soft: var(--color-indigo-800); + --color-border-error: var(--color-red-300); + --color-border-media: rgb(252 248 255 / 15%); // legacy + --color-border-error-soft: #{utils.css-alpha(var(--color-border-error), 50%)}; // legacy + --color-border-warning-soft: #{utils.css-alpha( var(--color-text-warning), 50% - )}; - --color-border-on-bg-success-softer: #{utils.css-alpha( + )}; // legacy + + --color-border-success-soft: #{utils.css-alpha( var(--color-text-success), 50% - )}; - --color-border-on-bg-inverted: var(--color-border-primary); + )}; // legacy - /* SHADOW TOKENS */ + /* SHADOW TOKENS (LEGACY) */ --shadow-strength-primary: 80%; --color-shadow-primary: #{utils.css-alpha( @@ -160,16 +102,16 @@ 0 8px 10px -6px var(--color-shadow-primary); --overlay-icon-shadow: drop-shadow(0 0 8px var(--color-shadow-primary)); - /* GRAPHS/CHARTS TOKENS */ + /* GRAPHS/CHARTS TOKENS (LEGACY) */ --color-graph-primary-stroke: var(--color-text-brand); - --color-graph-primary-fill: var(--color-bg-brand-softer); + --color-graph-primary-fill: var(--color-bg-brand-softest); --color-graph-warning-stroke: var(--color-text-warning); - --color-graph-warning-fill: var(--color-bg-warning-softer); + --color-graph-warning-fill: var(--color-bg-warning-softest); --color-graph-disabled-stroke: var(--color-text-disabled); --color-graph-disabled-fill: var(--color-bg-disabled); - /* LEGACY TOKENS */ + /* RICH TEXT TOKENS (LEGACY) */ --rich-text-container-color: rgb(87 24 60 / 100%); --rich-text-text-color: rgb(255 175 212 / 100%); @@ -182,7 +124,9 @@ --color-text-primary: var(--color-grey-50); --color-text-status-links: var(--color-text-brand); - /* BORDER TOKENS */ + /* BACKGROUND TOKENS */ + --color-bg-error-base: var(--color-red-800); - --border-strength-primary: 30%; + /* BORDER TOKENS */ + --color-border-primary: var(--color-grey-600); } diff --git a/app/javascript/styles/mastodon/theme/_light.scss b/app/javascript/styles/mastodon/theme/_light.scss index 47d32320fa4eb2..5759fffd75076c 100644 --- a/app/javascript/styles/mastodon/theme/_light.scss +++ b/app/javascript/styles/mastodon/theme/_light.scss @@ -5,145 +5,88 @@ --color-text-primary: var(--color-grey-950); --color-text-secondary: var(--color-grey-600); - --color-text-tertiary: var(--color-grey-500); - --color-text-on-inverted: var(--color-white); + --color-text-tertiary: var(--color-grey-500); // legacy + --color-text-inverted: var(--color-white); --color-text-brand: var(--color-indigo-700); --color-text-brand-soft: color-mix( in oklab, var(--color-text-primary), var(--color-text-brand) - ); + ); // legacy + --color-text-on-brand-base: var(--color-white); - --color-text-brand-on-inverted: var(--color-indigo-400); + --color-text-brand-on-inverted: var(--color-indigo-400); // legacy --color-text-error: var(--color-red-800); --color-text-on-error-base: var(--color-white); - --color-text-warning: var(--color-yellow-600); + --color-text-warning: var(--color-yellow-600); // legacy --color-text-on-warning-base: var(--color-white); - --color-text-success: var(--color-green-600); + --color-text-success: var(--color-green-600); // legacy --color-text-on-success-base: var(--color-white); - --color-text-disabled: var(--color-grey-300); - --color-text-on-disabled: var(--color-grey-200); - --color-text-bookmark-highlight: var(--color-text-error); - --color-text-favourite-highlight: var(--color-text-warning); - --color-text-on-media: var(--color-white); - --color-text-status-links: var(--color-text-brand); + --color-text-disabled: var(--color-grey-300); // legacy + --color-text-on-disabled: var(--color-grey-200); // legacy + --color-text-bookmark-highlight: var(--color-text-error); // legacy + --color-text-favourite-highlight: var(--color-text-warning); // legacy + --color-text-on-media: var(--color-white); // legacy + --color-text-status-links: var(--color-text-brand); // legacy /* BACKGROUND TOKENS */ // Neutrals --color-bg-primary: var(--color-white); --overlay-strength-secondary: 4%; - --color-bg-secondary-base: #000550; - --color-bg-secondary: #{color-mix( - in oklab, - var(--color-bg-primary), - var(--color-bg-secondary-base) var(--overlay-strength-secondary) - )}; - --color-bg-secondary-solid: #{color-mix( - in srgb, - var(--color-bg-primary), - var(--color-bg-secondary-base) var(--overlay-strength-secondary) - )}; - --color-bg-tertiary: #{color-mix( - in oklab, - var(--color-bg-primary), - var(--color-bg-secondary-base) calc(2 * var(--overlay-strength-secondary)) - )}; + --color-bg-secondary: var(--color-grey-50); + --color-bg-tertiary: var(--color-grey-100); // legacy // Utility - --color-bg-ambient: var(--color-bg-primary); --color-bg-inverted: var(--color-grey-950); - --color-bg-media-base: var(--color-black); - --color-bg-media-strength: 65%; - --color-bg-media: #{utils.css-alpha( - var(--color-bg-media-base), - var(--color-bg-media-strength) - )}; - --color-bg-overlay: var(--color-bg-primary); - --color-bg-disabled: var(--color-grey-400); + --color-bg-overlay-base: #{utils.css-alpha(var(--color-grey-950), 60%)}; + --color-bg-overlay-highlight: #{utils.css-alpha(var(--color-grey-950), 5%)}; + --color-bg-overlay: var(--color-bg-primary); // legacy + --color-bg-media-base: var(--color-black); // legacy + --color-bg-media: #{utils.css-alpha(var(--color-bg-media-base), 65%)}; // legacy + --color-bg-disabled: var(--color-grey-400); // legacy // Brand - --overlay-strength-brand: 6%; --color-bg-brand-base: var(--color-indigo-700); - --color-bg-brand-base-hover: color-mix( - in oklab, - var(--color-bg-brand-base), - black var(--overlay-strength-brand) - ); - --color-bg-brand-soft: #{utils.css-alpha( - #0012d8, - calc(var(--overlay-strength-brand) * 2) - )}; - --color-bg-brand-softer: #{utils.css-alpha( - #0012d8, - var(--overlay-strength-brand) - )}; - --color-bg-brand-softer-solid: color-mix( - in srgb, - var(--color-bg-primary), - var(--color-bg-brand-base) var(--overlay-strength-brand) - ); + --color-bg-brand-base-hover: var(--color-indigo-800); // legacy + --color-bg-brand-soft: var(--color-indigo-100); + --color-bg-brand-softest: var(--color-indigo-50); // Error - --overlay-strength-error: 5%; - --color-bg-error-base: var(--color-red-800); - --color-bg-error-base-hover: color-mix( - in oklab, - var(--color-bg-error-base), - black var(--overlay-strength-error) - ); + --color-bg-error-base: var(--color-red-700); + --color-bg-error-base-hover: var(--color-red-800); // legacy --color-bg-error-soft: var(--color-red-100); - --color-bg-error-softer: var(--color-red-50); + --color-bg-error-softest: var(--color-red-50); // Warning - --overlay-strength-warning: 10%; - --color-bg-warning-base: var(--color-yellow-700); - --color-bg-warning-base-hover: color-mix( - in oklab, - var(--color-bg-warning-base), - black var(--overlay-strength-warning) - ); + --color-bg-warning-base: var(--color-yellow-700); // legacy --color-bg-warning-soft: var(--color-yellow-100); - --color-bg-warning-softer: var(--color-yellow-50); + --color-bg-warning-softest: var(--color-yellow-50); // Success - --overlay-strength-success: 15%; - --color-bg-success-base: var(--color-green-600); - --color-bg-success-base-hover: color-mix( - in oklab, - var(--color-bg-success-base), - black var(--overlay-strength-success) - ); + --color-bg-success-base: var(--color-green-600); // legacy --color-bg-success-soft: var(--color-green-100); - --color-bg-success-softer: var(--color-green-50); + --color-bg-success-softest: var(--color-green-50); /* BORDER TOKENS */ - --border-strength-primary: 15%; - --color-border-primary: color-mix( - in oklab, - var(--color-bg-primary), - var(--color-grey-950) var(--border-strength-primary) - ); - --color-border-media: rgb(252 248 255 / 15%); - --color-border-verified: rgb(220, 3, 240); - --color-border-on-bg-secondary: var(--color-grey-200); - --color-border-on-bg-brand-softer: var(--color-indigo-200); - --color-border-on-bg-error-softer: #{utils.css-alpha( - var(--color-text-error), - 50% - )}; - --color-border-on-bg-warning-softer: #{utils.css-alpha( + --color-border-primary: var(--color-grey-200); + --color-border-brand: var(--color-text-brand); + --color-border-brand-soft: var(--color-indigo-200); + --color-border-error: var(--color-red-700); + --color-border-media: rgb(252 248 255 / 15%); // legacy + --color-border-error-soft: #{utils.css-alpha(var(--color-text-error), 50%)}; // legacy + --color-border-warning-soft: #{utils.css-alpha( var(--color-text-warning), 50% - )}; - --color-border-on-bg-success-softer: #{utils.css-alpha( + )}; // legacy + + --color-border-success-soft: #{utils.css-alpha( var(--color-text-success), 50% - )}; - --color-border-on-bg-inverted: var(--color-border-primary); + )}; // legacy - /* SHADOW TOKENS */ + /* SHADOW TOKENS (LEGACY) */ --shadow-strength-primary: 30%; --color-shadow-primary: #{utils.css-alpha( @@ -155,16 +98,16 @@ 0 8px 10px -6px var(--color-shadow-primary); --overlay-icon-shadow: drop-shadow(0 0 8px var(--color-shadow-primary)); - /* GRAPHS/CHARTS TOKENS */ + /* GRAPHS/CHARTS TOKENS (LEGACY) */ --color-graph-primary-stroke: var(--color-text-brand); - --color-graph-primary-fill: var(--color-bg-brand-softer); + --color-graph-primary-fill: var(--color-bg-brand-softest); --color-graph-warning-stroke: var(--color-text-warning); - --color-graph-warning-fill: var(--color-bg-warning-softer); + --color-graph-warning-fill: var(--color-bg-warning-softest); --color-graph-disabled-stroke: var(--color-text-disabled); --color-graph-disabled-fill: var(--color-bg-disabled); - /* LEGACY TOKENS */ + /* RICH TEXT TOKENS (LEGACY) */ --rich-text-container-color: rgb(255 216 231 / 100%); --rich-text-text-color: rgb(114 47 83 / 100%); @@ -179,8 +122,9 @@ --color-text-tertiary: var(--color-grey-700); --color-text-brand: var(--color-indigo-600); - /* BORDER TOKENS */ + /* BACKGROUND TOKENS */ + --color-bg-error-base: var(--color-red-800); - --border-strength-primary: 30%; - --color-border-on-bg-secondary: var(--color-grey-300); + /* BORDER TOKENS */ + --color-border-primary: var(--color-grey-300); } diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss index 69c79cd1e6f2a0..d237a184c97169 100644 --- a/app/javascript/styles/mastodon/widgets.scss +++ b/app/javascript/styles/mastodon/widgets.scss @@ -69,7 +69,7 @@ } &.active .avatar-stack .account__avatar { - border-color: var(--color-text-brand); + border-color: var(--color-border-brand); } .trends__item__current { From 1820a03622096a80e26167913bb06dda8eb4657f Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 25 Mar 2026 15:38:35 +0100 Subject: [PATCH 022/335] Refactor: Update FormatJS (#38388) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../components/admin/ReportReasonSelector.jsx | 4 +- app/javascript/mastodon/components/intl.tsx | 26 + .../mastodon/components/server_banner.jsx | 4 +- app/javascript/mastodon/components/status.jsx | 3 +- .../components/status_action_bar/index.jsx | 4 +- .../mastodon/components/status_content.jsx | 3 +- .../mastodon/components/status_quoted.tsx | 1 - .../mastodon/containers/status_container.jsx | 3 +- .../mastodon/features/about/index.jsx | 3 +- .../account_edit/modals/image_alt.tsx | 2 +- .../alt_text_modal/components/info_button.tsx | 1 + .../mastodon/features/blocks/index.jsx | 3 +- .../components/column_settings.jsx | 4 +- .../features/community_timeline/index.jsx | 3 +- .../compose/components/compose_form.jsx | 3 +- .../components/emoji_picker_dropdown.jsx | 3 +- .../compose/components/poll_button.jsx | 3 +- .../compose/components/upload_button.jsx | 3 +- .../containers/spoiler_button_container.js | 3 +- .../mastodon/features/favourites/index.jsx | 3 +- .../features/filters/select_filter.jsx | 3 +- .../components/account_authorize.jsx | 3 +- .../features/follow_requests/index.jsx | 3 +- .../components/column_settings.jsx | 4 +- .../mastodon/features/home_timeline/index.jsx | 3 +- .../features/keyboard_shortcuts/index.jsx | 3 +- .../mastodon/features/mutes/index.jsx | 3 +- .../components/follow_request.jsx | 3 +- .../notifications/components/notification.jsx | 3 +- .../notifications/components/report.jsx | 3 +- .../containers/column_settings_container.js | 3 +- .../features/pinned_statuses/index.jsx | 3 +- .../components/column_settings.jsx | 4 +- .../features/public_timeline/index.jsx | 3 +- .../mastodon/features/reblogs/index.jsx | 3 +- .../mastodon/features/report/category.jsx | 3 +- .../features/status/components/action_bar.jsx | 3 +- .../mastodon/features/status/index.jsx | 3 +- .../subscribed_languages_modal/index.jsx | 3 +- .../ui/components/bundle_column_error.jsx | 3 +- .../features/ui/components/filter_modal.jsx | 3 +- .../features/ui/components/report_modal.jsx | 3 +- app/javascript/mastodon/features/ui/index.jsx | 3 +- app/javascript/mastodon/polyfills/intl.ts | 4 +- package.json | 10 +- vite.config.mts | 4 +- yarn.lock | 566 ++++++++++++------ 47 files changed, 504 insertions(+), 233 deletions(-) create mode 100644 app/javascript/mastodon/components/intl.tsx diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx index 3c33688b0c8dc1..1a61ade5789d83 100644 --- a/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx +++ b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx @@ -1,12 +1,14 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { injectIntl, defineMessages } from 'react-intl'; +import { defineMessages } from 'react-intl'; import classNames from 'classnames'; import api from 'mastodon/api'; +import { injectIntl } from '../intl'; + const messages = defineMessages({ legal: { id: 'report.categories.legal', defaultMessage: 'Legal' }, other: { id: 'report.categories.other', defaultMessage: 'Other' }, diff --git a/app/javascript/mastodon/components/intl.tsx b/app/javascript/mastodon/components/intl.tsx new file mode 100644 index 00000000000000..2d8b0ef8405bf7 --- /dev/null +++ b/app/javascript/mastodon/components/intl.tsx @@ -0,0 +1,26 @@ +import type { ComponentClass } from 'react'; + +import { useIntl } from 'react-intl'; + +interface IntlHocProps> { + component: ComponentClass; + props: TProps; +} + +export const IntlHoc = >({ + component: Component, + props, +}: IntlHocProps) => { + const intl = useIntl(); + return ; +}; + +export const injectIntl = >( + Component: ComponentClass, +) => { + const WrappedComponent = (props: Omit) => ( + + ); + WrappedComponent.displayName = `injectIntl(${(Component.displayName ?? Component.name) || 'Component'})`; + return WrappedComponent; +}; diff --git a/app/javascript/mastodon/components/server_banner.jsx b/app/javascript/mastodon/components/server_banner.jsx index 989ac7f006fa2f..7ef22968130773 100644 --- a/app/javascript/mastodon/components/server_banner.jsx +++ b/app/javascript/mastodon/components/server_banner.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, defineMessages, injectIntl } from 'react-intl'; +import { FormattedMessage, defineMessages } from 'react-intl'; import { Link } from 'react-router-dom'; @@ -14,6 +14,8 @@ import { ShortNumber } from 'mastodon/components/short_number'; import { Skeleton } from 'mastodon/components/skeleton'; import { domain } from 'mastodon/initial_state'; +import { injectIntl } from './intl'; + const messages = defineMessages({ aboutActiveUsers: { id: 'server_banner.about_active_users', defaultMessage: 'People using this server during the last 30 days (Monthly Active Users)' }, }); diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index fd2054b066f89d..82028b5a3d4e9f 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -1,6 +1,6 @@ import PropTypes from 'prop-types'; -import { injectIntl, defineMessages, FormattedMessage } from 'react-intl'; +import { defineMessages, FormattedMessage } from 'react-intl'; import classNames from 'classnames'; @@ -24,6 +24,7 @@ import { MediaGallery, Video, Audio } from '../features/ui/util/async-components import { SensitiveMediaContext } from '../features/ui/util/sensitive_media_context'; import { displayMedia } from '../initial_state'; +import { injectIntl } from './intl'; import { StatusHeader } from './status/header' import { LinkedDisplayName } from './display_name'; import { getHashtagBarForStatus } from './hashtag_bar'; diff --git a/app/javascript/mastodon/components/status_action_bar/index.jsx b/app/javascript/mastodon/components/status_action_bar/index.jsx index 2e0440d0125da1..1ad8b2002f9d2f 100644 --- a/app/javascript/mastodon/components/status_action_bar/index.jsx +++ b/app/javascript/mastodon/components/status_action_bar/index.jsx @@ -1,6 +1,6 @@ import PropTypes from 'prop-types'; -import { defineMessages, injectIntl } from 'react-intl'; +import { defineMessages } from 'react-intl'; import { withRouter } from 'react-router-dom'; @@ -23,10 +23,12 @@ import { Dropdown } from 'mastodon/components/dropdown_menu'; import { me, quickBoosting } from '../../initial_state'; import { IconButton } from '../icon_button'; +import { injectIntl } from '../intl'; import { BoostButton } from '../status/boost_button'; import { RemoveQuoteHint } from './remove_quote_hint'; import { quoteItemState, selectStatusState } from '../status/boost_button_utils'; + const messages = defineMessages({ delete: { id: 'status.delete', defaultMessage: 'Delete' }, redraft: { id: 'status.redraft', defaultMessage: 'Delete & re-draft' }, diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index facf7ae2272175..dbbac833145b1e 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import { PureComponent } from 'react'; -import { FormattedMessage, injectIntl } from 'react-intl'; +import { FormattedMessage } from 'react-intl'; import classnames from 'classnames'; import { withRouter } from 'react-router-dom'; @@ -16,6 +16,7 @@ import { identityContextPropShape, withIdentity } from 'mastodon/identity_contex import { languages as preloadedLanguages } from 'mastodon/initial_state'; import { EmojiHTML } from './emoji/html'; +import { injectIntl } from './intl'; import { HandledLink } from './status/handled_link'; const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) diff --git a/app/javascript/mastodon/components/status_quoted.tsx b/app/javascript/mastodon/components/status_quoted.tsx index 1fffe26c08b64d..5c9804fb40e8cf 100644 --- a/app/javascript/mastodon/components/status_quoted.tsx +++ b/app/javascript/mastodon/components/status_quoted.tsx @@ -335,7 +335,6 @@ export const QuotedStatus: React.FC = ({ return (
- {/* @ts-expect-error Status is not yet typed */}
    {chunks}
, li: (chunks) =>
  • {chunks}
  • , diff --git a/app/javascript/mastodon/features/alt_text_modal/components/info_button.tsx b/app/javascript/mastodon/features/alt_text_modal/components/info_button.tsx index aecf9cbc2f5208..04c4ff8c568e2c 100644 --- a/app/javascript/mastodon/features/alt_text_modal/components/info_button.tsx +++ b/app/javascript/mastodon/features/alt_text_modal/components/info_button.tsx @@ -59,6 +59,7 @@ export const InfoButton: React.FC = () => { > { plugins: [ react(), babel({ - plugins: ['formatjs', 'transform-react-remove-prop-types'], + plugins: ['transform-react-remove-prop-types'], }), + formatjs(), MastodonThemes(), MastodonAssetsManifest(), MastodonServiceWorkerLocales(), diff --git a/yarn.lock b/yarn.lock index 725844c107f2d8..9bedbe029dd9b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -90,7 +90,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.21.3, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.10, @babel/core@npm:^7.28.0, @babel/core@npm:^7.29.0": +"@babel/core@npm:^7.21.3, @babel/core@npm:^7.24.4, @babel/core@npm:^7.28.0, @babel/core@npm:^7.29.0": version: 7.29.0 resolution: "@babel/core@npm:7.29.0" dependencies: @@ -242,7 +242,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.26.5, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.28.6": +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.27.1, @babel/helper-plugin-utils@npm:^7.28.6": version: 7.28.6 resolution: "@babel/helper-plugin-utils@npm:7.28.6" checksum: 10c0/3f5f8acc152fdbb69a84b8624145ff4f9b9f6e776cb989f9f968f8606eb7185c5c3cfcf3ba08534e37e1e0e1c118ac67080610333f56baa4f7376c99b5f1143d @@ -428,17 +428,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.25.9": - version: 7.27.1 - resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" - dependencies: - "@babel/helper-plugin-utils": "npm:^7.27.1" - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84 - languageName: node - linkType: hard - "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -1187,7 +1176,7 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": +"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.28.0, @babel/traverse@npm:^7.28.5, @babel/traverse@npm:^7.28.6, @babel/traverse@npm:^7.29.0": version: 7.29.0 resolution: "@babel/traverse@npm:7.29.0" dependencies: @@ -1202,7 +1191,7 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0, @babel/types@npm:^7.4.4": +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.28.2, @babel/types@npm:^7.28.5, @babel/types@npm:^7.28.6, @babel/types@npm:^7.29.0, @babel/types@npm:^7.4.4": version: 7.29.0 resolution: "@babel/types@npm:7.29.0" dependencies: @@ -2439,6 +2428,13 @@ __metadata: languageName: node linkType: hard +"@formatjs/bigdecimal@npm:0.2.0": + version: 0.2.0 + resolution: "@formatjs/bigdecimal@npm:0.2.0" + checksum: 10c0/dec607e3d9d4b8c5d0474862e867726cbf322a24d543d5b2cbc3cab6fea187ac787a8e1a0e3df5ceef85a1ab9d58112a08bb7af40b1b3a3b00670431b0603510 + languageName: node + linkType: hard + "@formatjs/cli@npm:^6.1.1": version: 6.7.4 resolution: "@formatjs/cli@npm:6.7.4" @@ -2471,103 +2467,124 @@ __metadata: languageName: node linkType: hard -"@formatjs/ecma402-abstract@npm:2.3.6": - version: 2.3.6 - resolution: "@formatjs/ecma402-abstract@npm:2.3.6" +"@formatjs/ecma402-abstract@npm:3.2.0": + version: 3.2.0 + resolution: "@formatjs/ecma402-abstract@npm:3.2.0" dependencies: - "@formatjs/fast-memoize": "npm:2.2.7" - "@formatjs/intl-localematcher": "npm:0.6.2" - decimal.js: "npm:^10.4.3" - tslib: "npm:^2.8.0" - checksum: 10c0/63be2a73d3168bf45ab5d50db58376e852db5652d89511ae6e44f1fa03ad96ebbfe9b06a1dfaa743db06e40eb7f33bd77530b9388289855cca79a0e3fc29eacf + "@formatjs/bigdecimal": "npm:0.2.0" + "@formatjs/fast-memoize": "npm:3.1.1" + "@formatjs/intl-localematcher": "npm:0.8.2" + checksum: 10c0/b3c8ac881c3d7533fb4127ca3d771d2a32cb89e6efbbcc72d80b1dcc6a798494ace9ca5ee822b25eb08ebdc7ee2885a9e33496a436b40271ffc915ece605a3ce languageName: node linkType: hard -"@formatjs/fast-memoize@npm:2.2.7": - version: 2.2.7 - resolution: "@formatjs/fast-memoize@npm:2.2.7" - dependencies: - tslib: "npm:^2.8.0" - checksum: 10c0/f5eabb0e4ab7162297df8252b4cfde194b23248120d9df267592eae2be2d2f7c4f670b5a70523d91b4ecdc35d40e65823bb8eeba8dd79fbf8601a972bf3b8866 +"@formatjs/fast-memoize@npm:3.1.1": + version: 3.1.1 + resolution: "@formatjs/fast-memoize@npm:3.1.1" + checksum: 10c0/79b24dc1389a49b2b2fb9e90a2ba922a4057d4b74e7bc33a3811f0dc94a5a868d28e8e37917b68c2f831070d11dfd0889de686f269bf5214085a44efc1c25a8c languageName: node linkType: hard -"@formatjs/icu-messageformat-parser@npm:2.11.4": - version: 2.11.4 - resolution: "@formatjs/icu-messageformat-parser@npm:2.11.4" +"@formatjs/icu-messageformat-parser@npm:3.5.3": + version: 3.5.3 + resolution: "@formatjs/icu-messageformat-parser@npm:3.5.3" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - "@formatjs/icu-skeleton-parser": "npm:1.8.16" - tslib: "npm:^2.8.0" - checksum: 10c0/3ea9e9dae18282881d19a5f88107b6013f514ec8675684ed2c04bee2a174032377858937243e3bd9c9263a470988a3773a53bf8d208a34a78e7843ce66f87f3b + "@formatjs/ecma402-abstract": "npm:3.2.0" + "@formatjs/icu-skeleton-parser": "npm:2.1.3" + checksum: 10c0/9a9632348df058e0da339234381b11f71b5ace1c93eaf1950b3eb45f4e146a73f8923af82818543e90c1135523b254d2c04fb47cab3624eb1f601d2a4edd35c6 languageName: node linkType: hard -"@formatjs/icu-skeleton-parser@npm:1.8.16": - version: 1.8.16 - resolution: "@formatjs/icu-skeleton-parser@npm:1.8.16" +"@formatjs/icu-skeleton-parser@npm:2.1.3": + version: 2.1.3 + resolution: "@formatjs/icu-skeleton-parser@npm:2.1.3" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - tslib: "npm:^2.8.0" - checksum: 10c0/6fa1586dc11c925cd8d17e927cc635d238c969a6b7e97282a924376f78622fc25336c407589d19796fb6f8124a0e7765f99ecdb1aac014edcfbe852e7c3d87f3 + "@formatjs/ecma402-abstract": "npm:3.2.0" + checksum: 10c0/6a8ed06c722bce1d73d54b2d72462bfe46b752f43d09e3d8c14649ef775b06f3c7f8d36274e67e6cfb95800bf43230a2595a7e1790922ebb683711201fcbccc8 languageName: node linkType: hard -"@formatjs/intl-localematcher@npm:0.6.2": - version: 0.6.2 - resolution: "@formatjs/intl-localematcher@npm:0.6.2" +"@formatjs/intl-localematcher@npm:0.8.2": + version: 0.8.2 + resolution: "@formatjs/intl-localematcher@npm:0.8.2" dependencies: - tslib: "npm:^2.8.0" - checksum: 10c0/22a17a4c67160b6c9f52667914acfb7b79cd6d80630d4ac6d4599ce447cb89d2a64f7d58fa35c3145ddb37fef893f0a45b9a55e663a4eb1f2ae8b10a89fac235 + "@formatjs/fast-memoize": "npm:3.1.1" + checksum: 10c0/3bf838a018184837b167964849dafdcdeac95531a24f4df7d868638d4ad716854a250e9bccac9ab4568264c0db7470e70b99363da1db308fdc882b87f3eca651 languageName: node linkType: hard -"@formatjs/intl-pluralrules@npm:^5.4.4": - version: 5.4.6 - resolution: "@formatjs/intl-pluralrules@npm:5.4.6" +"@formatjs/intl-pluralrules@npm:^6.0.0": + version: 6.3.1 + resolution: "@formatjs/intl-pluralrules@npm:6.3.1" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - "@formatjs/intl-localematcher": "npm:0.6.2" - decimal.js: "npm:^10.4.3" - tslib: "npm:^2.8.0" - checksum: 10c0/95dd6fb3e9bd84ce44cc194f6f815d690703bd60b75bf2ae895535d2d9a1a675765879de9b54f854882fc1335cbfac6a535873d5b2d75cc5ca93c6ca172aa272 + "@formatjs/bigdecimal": "npm:0.2.0" + "@formatjs/ecma402-abstract": "npm:3.2.0" + "@formatjs/intl-localematcher": "npm:0.8.2" + checksum: 10c0/8c0847d21d06276557316a01998528b79310b1c5411b0932b51dc88640a8ed6181c2221694d1d206a217f5a2be29227edfa52d1eca0873bc7c8c04b9a7dc2cc7 languageName: node linkType: hard -"@formatjs/intl@npm:3.1.8": - version: 3.1.8 - resolution: "@formatjs/intl@npm:3.1.8" +"@formatjs/intl@npm:4.1.4": + version: 4.1.4 + resolution: "@formatjs/intl@npm:4.1.4" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - "@formatjs/fast-memoize": "npm:2.2.7" - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - intl-messageformat: "npm:10.7.18" - tslib: "npm:^2.8.0" + "@formatjs/ecma402-abstract": "npm:3.2.0" + "@formatjs/fast-memoize": "npm:3.1.1" + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + intl-messageformat: "npm:11.2.0" peerDependencies: typescript: ^5.6.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b291e867bcde491737f70254ec30898e120f36784b5ee2911dcc271fbd744e90382f03232ac7f5a55d46071f4ffccfc84b63445734117b75ca1ced659f6b7827 + checksum: 10c0/2591b86cdec44b91761757edd3433e751b28ed7ed4a6e1a7f240356db2c32a5732565374c9d9b645f83d3558bc9a19231af7ef0ea555524abe4001b7c43f1754 languageName: node linkType: hard -"@formatjs/ts-transformer@npm:3.14.2": - version: 3.14.2 - resolution: "@formatjs/ts-transformer@npm:3.14.2" +"@formatjs/ts-transformer@npm:4.4.2": + version: 4.4.2 + resolution: "@formatjs/ts-transformer@npm:4.4.2" dependencies: - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - "@types/node": "npm:^22.0.0" - chalk: "npm:^4.1.2" + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + "@types/node": "npm:22 || 24" json-stable-stringify: "npm:^1.3.0" - tslib: "npm:^2.8.0" typescript: "npm:^5.6.0" peerDependencies: ts-jest: ^29 peerDependenciesMeta: ts-jest: optional: true - checksum: 10c0/990cf49cdc318e37825ec26b1b24d7368e89c5d03184867a4accd8b35d6d6d99a20a8abe6366c9870e56da9e04f4672990ca428686306c9ad8204b401c7d19f8 + checksum: 10c0/3385706cb4c72c4a7fed49d659b83dc98db22591c8904cc807b730e1fcc824584aa3edee7fdb9085720a3506c6daa271b34778ee7bef16eeacc39a625026c9e9 + languageName: node + linkType: hard + +"@formatjs/unplugin@npm:^1.1.5": + version: 1.1.5 + resolution: "@formatjs/unplugin@npm:1.1.5" + dependencies: + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + "@formatjs/ts-transformer": "npm:4.4.2" + magic-string: "npm:^0.30.0" + oxc-parser: "npm:^0.120.0" + unplugin: "npm:^3.0.0" + peerDependencies: + "@rspack/core": ">=1" + esbuild: ">=0.17" + rollup: ">=3" + vite: ">=5" + webpack: ^5.104.1 + peerDependenciesMeta: + "@rspack/core": + optional: true + esbuild: + optional: true + rollup: + optional: true + vite: + optional: true + webpack: + optional: true + checksum: 10c0/39ca0c669906a699e4a7bfc650cfdeba5d0c5c3a6cd2e5ebe5ed04e432b6d0091aa47d85d69ad3a67f65688f7421611f2d1ae33058e8a611c0075620abd2bd93 languageName: node linkType: hard @@ -2810,7 +2827,8 @@ __metadata: "@dnd-kit/utilities": "npm:^3.2.2" "@eslint/js": "npm:^9.39.2" "@formatjs/cli": "npm:^6.1.1" - "@formatjs/intl-pluralrules": "npm:^5.4.4" + "@formatjs/intl-pluralrules": "npm:^6.0.0" + "@formatjs/unplugin": "npm:^1.1.5" "@gamestdio/websocket": "npm:^0.3.2" "@github/webauthn-json": "npm:^2.1.1" "@optimize-lodash/rollup-plugin": "npm:^6.0.0" @@ -2855,7 +2873,6 @@ __metadata: arrow-key-navigation: "npm:^1.2.0" async-mutex: "npm:^0.5.0" axios: "npm:^1.4.0" - babel-plugin-formatjs: "npm:^10.5.37" babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24" blurhash: "npm:^2.0.5" chromatic: "npm:^13.3.3" @@ -2874,7 +2891,7 @@ __metadata: escape-html: "npm:^1.0.3" eslint: "npm:^9.39.2" eslint-import-resolver-typescript: "npm:^4.2.5" - eslint-plugin-formatjs: "npm:^5.3.1" + eslint-plugin-formatjs: "npm:^6.0.0" eslint-plugin-import: "npm:~2.32.0" eslint-plugin-jsdoc: "npm:^62.0.0" eslint-plugin-jsx-a11y: "npm:~6.10.2" @@ -2892,7 +2909,7 @@ __metadata: husky: "npm:^9.0.11" idb: "npm:^8.0.3" immutable: "npm:^4.3.0" - intl-messageformat: "npm:^10.7.16" + intl-messageformat: "npm:^11.0.0" js-yaml: "npm:^4.1.0" lande: "npm:^1.0.10" lint-staged: "npm:^16.2.6" @@ -2912,7 +2929,7 @@ __metadata: react-helmet: "npm:^6.1.0" react-immutable-proptypes: "npm:^2.2.0" react-immutable-pure-component: "npm:^2.2.2" - react-intl: "npm:^7.1.10" + react-intl: "npm:^10.0.0" react-overlays: "npm:^5.2.1" react-redux: "npm:^9.0.4" react-redux-loading-bar: "npm:^5.0.8" @@ -3148,6 +3165,148 @@ __metadata: languageName: node linkType: hard +"@oxc-parser/binding-android-arm-eabi@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.120.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxc-parser/binding-android-arm64@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-android-arm64@npm:0.120.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-darwin-arm64@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-darwin-arm64@npm:0.120.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-darwin-x64@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-darwin-x64@npm:0.120.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxc-parser/binding-freebsd-x64@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-freebsd-x64@npm:0.120.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.120.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm-musleabihf@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.120.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm64-gnu@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.120.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-arm64-musl@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.120.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-ppc64-gnu@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.120.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-riscv64-gnu@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.120.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-riscv64-musl@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.120.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-s390x-gnu@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.120.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-x64-gnu@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.120.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxc-parser/binding-linux-x64-musl@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.120.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxc-parser/binding-openharmony-arm64@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.120.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-wasm32-wasi@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.120.0" + dependencies: + "@napi-rs/wasm-runtime": "npm:^1.1.1" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@oxc-parser/binding-win32-arm64-msvc@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.120.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxc-parser/binding-win32-ia32-msvc@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.120.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxc-parser/binding-win32-x64-msvc@npm:0.120.0": + version: 0.120.0 + resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.120.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@oxc-project/types@npm:=0.122.0": version: 0.122.0 resolution: "@oxc-project/types@npm:0.122.0" @@ -3155,6 +3314,13 @@ __metadata: languageName: node linkType: hard +"@oxc-project/types@npm:^0.120.0": + version: 0.120.0 + resolution: "@oxc-project/types@npm:0.120.0" + checksum: 10c0/3090ca95ed1467ae790a79cf7aa49d1ea4ac390dbfccb7afb914c138034d01e72115e2e137a3cc76f409ba424e4d2b160a599fe137c88033ad68ba2df1e40b29 + languageName: node + linkType: hard + "@oxfmt/binding-android-arm-eabi@npm:0.33.0": version: 0.33.0 resolution: "@oxfmt/binding-android-arm-eabi@npm:0.33.0" @@ -4204,7 +4370,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__core@npm:*, @types/babel__core@npm:^7.20.5": +"@types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: @@ -4226,15 +4392,6 @@ __metadata: languageName: node linkType: hard -"@types/babel__helper-plugin-utils@npm:^7.10.3": - version: 7.10.3 - resolution: "@types/babel__helper-plugin-utils@npm:7.10.3" - dependencies: - "@types/babel__core": "npm:*" - checksum: 10c0/c22f68e8019c1e75e42fccc6eaca94a269fa177c4544599aa084b216b879b626f63f89755a4ac2dc9054b6e9ed4e0fab1e3460d36ce20767c99aef4a3c81fce3 - languageName: node - linkType: hard - "@types/babel__template@npm:*": version: 7.4.3 resolution: "@types/babel__template@npm:7.4.3" @@ -4245,7 +4402,7 @@ __metadata: languageName: node linkType: hard -"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.20.6, @types/babel__traverse@npm:^7.20.7": +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.20.7": version: 7.28.0 resolution: "@types/babel__traverse@npm:7.28.0" dependencies: @@ -4330,30 +4487,20 @@ __metadata: languageName: node linkType: hard -"@types/eslint@npm:^9.6.1": - version: 9.6.1 - resolution: "@types/eslint@npm:9.6.1" - dependencies: - "@types/estree": "npm:*" - "@types/json-schema": "npm:*" - checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e +"@types/estree@npm:0.0.39": + version: 0.0.39 + resolution: "@types/estree@npm:0.0.39" + checksum: 10c0/f0af6c95ac1988c4827964bd9d3b51d24da442e2188943f6dfcb1e1559103d5d024d564b2e9d3f84c53714a02a0a7435c7441138eb63d9af5de4dfc66cdc0d92 languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": +"@types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 languageName: node linkType: hard -"@types/estree@npm:0.0.39": - version: 0.0.39 - resolution: "@types/estree@npm:0.0.39" - checksum: 10c0/f0af6c95ac1988c4827964bd9d3b51d24da442e2188943f6dfcb1e1559103d5d024d564b2e9d3f84c53714a02a0a7435c7441138eb63d9af5de4dfc66cdc0d92 - languageName: node - linkType: hard - "@types/express-serve-static-core@npm:^5.0.0": version: 5.1.0 resolution: "@types/express-serve-static-core@npm:5.1.0" @@ -4425,7 +4572,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15": +"@types/json-schema@npm:^7.0.15": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db @@ -4467,12 +4614,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:*, @types/node@npm:^22.0.0": - version: 22.13.14 - resolution: "@types/node@npm:22.13.14" +"@types/node@npm:*, @types/node@npm:22 || 24": + version: 24.12.0 + resolution: "@types/node@npm:24.12.0" dependencies: - undici-types: "npm:~6.20.0" - checksum: 10c0/fa2ab5b8277bfbcc86c42e46a3ea9871b0d559894cc9d955685d17178c9499f0b1bf03d1d1ea8d92ef2dda818988f4035acb8abf9dc15423a998fa56173ab804 + undici-types: "npm:~7.16.0" + checksum: 10c0/8b31c0af5b5474f13048a4e77c57f22cd4f8fe6e58c4b6fde9456b0c13f46a5bfaf5744ff88fd089581de9f0d6e99c584e022681de7acb26a58d258c654c4843 languageName: node linkType: hard @@ -4501,10 +4648,10 @@ __metadata: languageName: node linkType: hard -"@types/picomatch@npm:^3": - version: 3.0.2 - resolution: "@types/picomatch@npm:3.0.2" - checksum: 10c0/f35d16fe10a6e13ead6499dd7d7d317e4fd78e48260398104e837e5ca83d393024bdc6f432cb644c0a69b0726a071fcc6eb09befbbcfafb3c3c5f71dbbfde487 +"@types/picomatch@npm:^4.0.0": + version: 4.0.2 + resolution: "@types/picomatch@npm:4.0.2" + checksum: 10c0/0f46198c2d1beb5061816745355888e94a80a449a49af1ef69723f50e850c678b50cff299bd461f71e8009d46705e7cdeda8c8ffa23815b2e942c83877f855b9 languageName: node linkType: hard @@ -4854,7 +5001,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.55.0, @typescript-eslint/utils@npm:^8.27.0, @typescript-eslint/utils@npm:^8.48.0": +"@typescript-eslint/utils@npm:8.55.0, @typescript-eslint/utils@npm:^8.48.0": version: 8.55.0 resolution: "@typescript-eslint/utils@npm:8.55.0" dependencies: @@ -4879,6 +5026,13 @@ __metadata: languageName: node linkType: hard +"@unicode/unicode-17.0.0@npm:^1.6.16": + version: 1.6.16 + resolution: "@unicode/unicode-17.0.0@npm:1.6.16" + checksum: 10c0/0d45cedb8349663e7d98509b0c78c10630adc86121003635e731654f152e84711eed1e9002d3ac588c77eadc360a1e1b51e4d153c7ff26443ee58f2bc77184e2 + languageName: node + linkType: hard + "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": version: 1.11.1 resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" @@ -5665,25 +5819,6 @@ __metadata: languageName: node linkType: hard -"babel-plugin-formatjs@npm:^10.5.37": - version: 10.5.41 - resolution: "babel-plugin-formatjs@npm:10.5.41" - dependencies: - "@babel/core": "npm:^7.26.10" - "@babel/helper-plugin-utils": "npm:^7.26.5" - "@babel/plugin-syntax-jsx": "npm:^7.25.9" - "@babel/traverse": "npm:^7.26.10" - "@babel/types": "npm:^7.26.10" - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - "@formatjs/ts-transformer": "npm:3.14.2" - "@types/babel__core": "npm:^7.20.5" - "@types/babel__helper-plugin-utils": "npm:^7.10.3" - "@types/babel__traverse": "npm:^7.20.6" - tslib: "npm:^2.8.0" - checksum: 10c0/bbe0e182185c72e4136a4cf37b2366952ad5b1d090de00a132757d2a65a5a6aef95ada93dffdc4ed0cf4338a0ff29c5a0d025d77e8b774b088c69bd68ac07ca6 - languageName: node - linkType: hard - "babel-plugin-macros@npm:^3.1.0": version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" @@ -6019,7 +6154,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.2": +"chalk@npm:^4.0.0, chalk@npm:^4.0.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -6557,7 +6692,7 @@ __metadata: languageName: node linkType: hard -"decimal.js@npm:^10.4.3, decimal.js@npm:^10.6.0": +"decimal.js@npm:^10.6.0": version: 10.6.0 resolution: "decimal.js@npm:10.6.0" checksum: 10c0/07d69fbcc54167a340d2d97de95f546f9ff1f69d2b45a02fd7a5292412df3cd9eb7e23065e532a318f5474a2e1bccf8392fdf0443ef467f97f3bf8cb0477e5aa @@ -6822,7 +6957,7 @@ __metadata: languageName: node linkType: hard -"emoji-regex@npm:10.3.0, emoji-regex@npm:^10.3.0": +"emoji-regex@npm:^10.3.0": version: 10.3.0 resolution: "emoji-regex@npm:10.3.0" checksum: 10c0/b4838e8dcdceb44cf47f59abe352c25ff4fe7857acaf5fb51097c427f6f75b44d052eb907a7a3b86f86bc4eae3a93f5c2b7460abe79c407307e6212d65c91163 @@ -7282,22 +7417,19 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-formatjs@npm:^5.3.1": - version: 5.4.2 - resolution: "eslint-plugin-formatjs@npm:5.4.2" +"eslint-plugin-formatjs@npm:^6.0.0": + version: 6.4.3 + resolution: "eslint-plugin-formatjs@npm:6.4.3" dependencies: - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - "@formatjs/ts-transformer": "npm:3.14.2" - "@types/eslint": "npm:^9.6.1" - "@types/picomatch": "npm:^3" - "@typescript-eslint/utils": "npm:^8.27.0" + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + "@formatjs/ts-transformer": "npm:4.4.2" + "@types/picomatch": "npm:^4.0.0" + "@unicode/unicode-17.0.0": "npm:^1.6.16" magic-string: "npm:^0.30.0" picomatch: "npm:2 || 3 || 4" - tslib: "npm:^2.8.0" - unicode-emoji-utils: "npm:^1.2.0" peerDependencies: - eslint: ^9.23.0 - checksum: 10c0/46bee038c54a7da58647eaccee6c956857ad81499b60f814914921b26852e6bf9b0efabb9556d7aab0e151ba349dcf949dc5f14a356b80bc5e63f338e7f7cc7f + eslint: 9 || 10 + checksum: 10c0/348f72c8668ebeb10c7273103b6b91230684b97bf683eddaeaeb6a298e6fa483028504274ed53f3971d5acb68aaa790b89e184328a1520b41158c1b9ef770b39 languageName: node linkType: hard @@ -8660,15 +8792,14 @@ __metadata: languageName: node linkType: hard -"intl-messageformat@npm:10.7.18, intl-messageformat@npm:^10.7.16": - version: 10.7.18 - resolution: "intl-messageformat@npm:10.7.18" +"intl-messageformat@npm:11.2.0, intl-messageformat@npm:^11.0.0": + version: 11.2.0 + resolution: "intl-messageformat@npm:11.2.0" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - "@formatjs/fast-memoize": "npm:2.2.7" - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - tslib: "npm:^2.8.0" - checksum: 10c0/d54da9987335cb2bca26246304cea2ca6b1cb44ca416d6b28f3aa62b11477c72f7ce0bf3f11f5d236ceb1842bdc3378a926e606496d146fde18783ec92c314e1 + "@formatjs/ecma402-abstract": "npm:3.2.0" + "@formatjs/fast-memoize": "npm:3.1.1" + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + checksum: 10c0/0f0a92324ef61c885902ff41c99754a65f0cc5cbe25d690c1771605117df4f97a786bb06dec50f12a7047e4cb2fab1f2516002df32e93be6ac02e1967e928e44 languageName: node linkType: hard @@ -10534,6 +10665,76 @@ __metadata: languageName: node linkType: hard +"oxc-parser@npm:^0.120.0": + version: 0.120.0 + resolution: "oxc-parser@npm:0.120.0" + dependencies: + "@oxc-parser/binding-android-arm-eabi": "npm:0.120.0" + "@oxc-parser/binding-android-arm64": "npm:0.120.0" + "@oxc-parser/binding-darwin-arm64": "npm:0.120.0" + "@oxc-parser/binding-darwin-x64": "npm:0.120.0" + "@oxc-parser/binding-freebsd-x64": "npm:0.120.0" + "@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.120.0" + "@oxc-parser/binding-linux-arm-musleabihf": "npm:0.120.0" + "@oxc-parser/binding-linux-arm64-gnu": "npm:0.120.0" + "@oxc-parser/binding-linux-arm64-musl": "npm:0.120.0" + "@oxc-parser/binding-linux-ppc64-gnu": "npm:0.120.0" + "@oxc-parser/binding-linux-riscv64-gnu": "npm:0.120.0" + "@oxc-parser/binding-linux-riscv64-musl": "npm:0.120.0" + "@oxc-parser/binding-linux-s390x-gnu": "npm:0.120.0" + "@oxc-parser/binding-linux-x64-gnu": "npm:0.120.0" + "@oxc-parser/binding-linux-x64-musl": "npm:0.120.0" + "@oxc-parser/binding-openharmony-arm64": "npm:0.120.0" + "@oxc-parser/binding-wasm32-wasi": "npm:0.120.0" + "@oxc-parser/binding-win32-arm64-msvc": "npm:0.120.0" + "@oxc-parser/binding-win32-ia32-msvc": "npm:0.120.0" + "@oxc-parser/binding-win32-x64-msvc": "npm:0.120.0" + "@oxc-project/types": "npm:^0.120.0" + dependenciesMeta: + "@oxc-parser/binding-android-arm-eabi": + optional: true + "@oxc-parser/binding-android-arm64": + optional: true + "@oxc-parser/binding-darwin-arm64": + optional: true + "@oxc-parser/binding-darwin-x64": + optional: true + "@oxc-parser/binding-freebsd-x64": + optional: true + "@oxc-parser/binding-linux-arm-gnueabihf": + optional: true + "@oxc-parser/binding-linux-arm-musleabihf": + optional: true + "@oxc-parser/binding-linux-arm64-gnu": + optional: true + "@oxc-parser/binding-linux-arm64-musl": + optional: true + "@oxc-parser/binding-linux-ppc64-gnu": + optional: true + "@oxc-parser/binding-linux-riscv64-gnu": + optional: true + "@oxc-parser/binding-linux-riscv64-musl": + optional: true + "@oxc-parser/binding-linux-s390x-gnu": + optional: true + "@oxc-parser/binding-linux-x64-gnu": + optional: true + "@oxc-parser/binding-linux-x64-musl": + optional: true + "@oxc-parser/binding-openharmony-arm64": + optional: true + "@oxc-parser/binding-wasm32-wasi": + optional: true + "@oxc-parser/binding-win32-arm64-msvc": + optional: true + "@oxc-parser/binding-win32-ia32-msvc": + optional: true + "@oxc-parser/binding-win32-x64-msvc": + optional: true + checksum: 10c0/12b717560645480f12954b2eaaabcf8043dfc7a8bc0105627ff11d7958d52a90eaf9f5cfb6af82f148d5e69ef7c57ac5a84f8834fc1edda695b2b09d6bb4e73d + languageName: node + linkType: hard + "oxfmt@npm:^0.33.0": version: 0.33.0 resolution: "oxfmt@npm:0.33.0" @@ -11841,25 +12042,22 @@ __metadata: languageName: node linkType: hard -"react-intl@npm:^7.1.10": - version: 7.1.14 - resolution: "react-intl@npm:7.1.14" +"react-intl@npm:^10.0.0": + version: 10.1.0 + resolution: "react-intl@npm:10.1.0" dependencies: - "@formatjs/ecma402-abstract": "npm:2.3.6" - "@formatjs/icu-messageformat-parser": "npm:2.11.4" - "@formatjs/intl": "npm:3.1.8" - "@types/hoist-non-react-statics": "npm:^3.3.1" - "@types/react": "npm:16 || 17 || 18 || 19" - hoist-non-react-statics: "npm:^3.3.2" - intl-messageformat: "npm:10.7.18" - tslib: "npm:^2.8.0" + "@formatjs/ecma402-abstract": "npm:3.2.0" + "@formatjs/icu-messageformat-parser": "npm:3.5.3" + "@formatjs/intl": "npm:4.1.4" + intl-messageformat: "npm:11.2.0" peerDependencies: - react: 16 || 17 || 18 || 19 + "@types/react": 19 + react: 19 typescript: ^5.6.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/b4361427ea05b4c9e7d87635a323854ca871710e01cd2a46b5da70b34b78a50661c04b2065258f3f49be134ca414c429c804bc34edc277784a9ffa0c04a30b04 + checksum: 10c0/94002b767b9d8b28f368f203a7debdea617c320b83154fa1edf9d1b6586ddffa4a763a1063a9dd1a148e393f2ffc8d5954ba983a4e86b26750d9312dfe3cd3fd languageName: node linkType: hard @@ -13948,7 +14146,7 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.8.0": +"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 @@ -14180,10 +14378,10 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~6.20.0": - version: 6.20.0 - resolution: "undici-types@npm:6.20.0" - checksum: 10c0/68e659a98898d6a836a9a59e6adf14a5d799707f5ea629433e025ac90d239f75e408e2e5ff086afc3cace26f8b26ee52155293564593fbb4a2f666af57fc59bf +"undici-types@npm:~7.16.0": + version: 7.16.0 + resolution: "undici-types@npm:7.16.0" + checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a languageName: node linkType: hard @@ -14201,15 +14399,6 @@ __metadata: languageName: node linkType: hard -"unicode-emoji-utils@npm:^1.2.0": - version: 1.2.0 - resolution: "unicode-emoji-utils@npm:1.2.0" - dependencies: - emoji-regex: "npm:10.3.0" - checksum: 10c0/224413cab5f915abbbbf3e6061878f3c1b67acf7c6ab1d4bf283f13d290677633d614a7fd58b7af8cec54dc3a4e4f51c01f4797caa23c7c83cdaa759fe6de9ce - languageName: node - linkType: hard - "unicode-match-property-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-match-property-ecmascript@npm:2.0.0" @@ -14294,6 +14483,17 @@ __metadata: languageName: node linkType: hard +"unplugin@npm:^3.0.0": + version: 3.0.0 + resolution: "unplugin@npm:3.0.0" + dependencies: + "@jridgewell/remapping": "npm:^2.3.5" + picomatch: "npm:^4.0.3" + webpack-virtual-modules: "npm:^0.6.2" + checksum: 10c0/9b3a9eb7c1cfaab677160b9659b008b4562e08360b6c715f31bdd7692738a75de91f217931032ec247979f71e83d4c9b908245cf47d984b26fb318b60b1d2d36 + languageName: node + linkType: hard + "unrs-resolver@npm:^1.7.11": version: 1.11.1 resolution: "unrs-resolver@npm:1.11.1" From 15dbf8040e2c922eb61276367cf2080adab40cde Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Mar 2026 15:52:12 +0100 Subject: [PATCH 023/335] Add support for multiple keypairs for remote accounts (#38279) --- .../concerns/signature_verification.rb | 39 ++++--- app/lib/activitypub/linked_data_signature.rb | 9 +- app/lib/signed_request.rb | 18 +-- app/models/concerns/account/associations.rb | 1 + app/models/keypair.rb | 77 +++++++++++++ .../activitypub/fetch_remote_key_service.rb | 5 +- .../activitypub/process_account_service.rb | 53 ++++++--- db/migrate/20260323105645_create_keypairs.rb | 20 ++++ db/schema.rb | 17 ++- spec/fabricators/keypair_fabricator.rb | 18 +++ .../activitypub/linked_data_signature_spec.rb | 20 ++-- spec/models/keypair_spec.rb | 58 ++++++++++ .../fetch_remote_key_service_spec.rb | 8 +- .../process_account_service_spec.rb | 103 ++++++++++++++++++ 14 files changed, 387 insertions(+), 59 deletions(-) create mode 100644 app/models/keypair.rb create mode 100644 db/migrate/20260323105645_create_keypairs.rb create mode 100644 spec/fabricators/keypair_fabricator.rb create mode 100644 spec/models/keypair_spec.rb diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 1e83ab9c69b6b7..f752e5cd93c01e 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -53,19 +53,21 @@ def signed_request_actor raise Mastodon::SignatureVerificationError, 'Request not signed' unless signed_request? - actor = actor_from_key_id + keypair = keypair_from_key_id - raise Mastodon::SignatureVerificationError, "Public key not found for key #{signature_key_id}" if actor.nil? + raise Mastodon::SignatureVerificationError, "Public key not found for key #{signature_key_id}" if keypair.nil? - return (@signed_request_actor = actor) if signed_request.verified?(actor) + check_keypair_validity!(keypair) + return (@signed_request_actor = keypair.actor) if signed_request.verified?(keypair) - actor = stoplight_wrapper.run { actor_refresh_key!(actor) } + keypair = stoplight_wrapper.run { keypair_refresh_key!(keypair) } - raise Mastodon::SignatureVerificationError, "Could not refresh public key #{signature_key_id}" if actor.nil? + raise Mastodon::SignatureVerificationError, "Could not refresh public key #{signature_key_id}" if keypair.nil? - return (@signed_request_actor = actor) if signed_request.verified?(actor) + check_keypair_validity!(keypair) + return (@signed_request_actor = keypair.actor) if signed_request.verified?(keypair) - fail_with! "Verification failed for #{actor.to_log_human_identifier} #{actor.uri}" + fail_with! "Verification failed for #{keypair.actor.to_log_human_identifier} #{keypair.actor.uri} #{keypair.uri}" rescue Mastodon::MalformedHeaderError => e @signature_verification_failure_code = 400 fail_with! e.message @@ -89,7 +91,7 @@ def fail_with!(message, **options) @signed_request_actor = nil end - def actor_from_key_id + def keypair_from_key_id key_id = signed_request.key_id domain = key_id.start_with?('acct:') ? key_id.split('@').last : key_id @@ -101,9 +103,10 @@ def actor_from_key_id if key_id.start_with?('acct:') stoplight_wrapper.run { ResolveAccountService.new.call(key_id.delete_prefix('acct:'), suppress_errors: false) } elsif !ActivityPub::TagManager.instance.local_uri?(key_id) - account = ActivityPub::TagManager.instance.uri_to_actor(key_id) - account ||= stoplight_wrapper.run { ActivityPub::FetchRemoteKeyService.new.call(key_id, suppress_errors: false) } - account + keypair = Keypair.from_keyid(key_id) + return keypair if keypair.present? + + stoplight_wrapper.run { ActivityPub::FetchRemoteKeyService.new.call(key_id, suppress_errors: false) } end rescue Mastodon::PrivateNetworkAddressError => e raise Mastodon::SignatureVerificationError, "Requests to private network addresses are disallowed (tried to query #{e.host})" @@ -120,14 +123,20 @@ def stoplight_wrapper ) end - def actor_refresh_key!(actor) - return if actor.local? || !actor.activitypub? - return actor.refresh! if actor.respond_to?(:refresh!) && actor.possibly_stale? + def keypair_refresh_key!(keypair) + # TODO: this currently only is concerned with refreshing the actor and returning the legacy key, this needs to be reworked + return if keypair.actor.local? || !keypair.actor.activitypub? + return keypair.actor.refresh! if keypair.actor.respond_to?(:refresh!) && keypair.actor.possibly_stale? - ActivityPub::FetchRemoteActorService.new.call(actor.uri, only_key: true, suppress_errors: false) + Keypair.from_legacy_account(ActivityPub::FetchRemoteActorService.new.call(keypair.actor.uri, only_key: true, suppress_errors: false)) rescue Mastodon::PrivateNetworkAddressError => e raise Mastodon::SignatureVerificationError, "Requests to private network addresses are disallowed (tried to query #{e.host})" rescue Mastodon::HostValidationError, ActivityPub::FetchRemoteActorService::Error, Webfinger::Error => e raise Mastodon::SignatureVerificationError, e.message end + + def check_keypair_validity!(keypair) + raise Mastodon::SignatureVerification, "Key #{signature_key_id} is revoked" if keypair.revoked? + raise Mastodon::SignatureVerification, "Key #{signature_key_id} has expired" if keypair.expired? + end end diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb index c42313b05ee975..f6c4eeb90ede87 100644 --- a/app/lib/activitypub/linked_data_signature.rb +++ b/app/lib/activitypub/linked_data_signature.rb @@ -19,16 +19,15 @@ def verify_actor! return unless type == 'RsaSignature2017' - creator = ActivityPub::TagManager.instance.uri_to_actor(creator_uri) - creator = ActivityPub::FetchRemoteKeyService.new.call(creator_uri) if creator&.public_key.blank? - - return if creator.nil? + keypair = Keypair.from_keyid(creator_uri) + keypair = ActivityPub::FetchRemoteKeyService.new.call(creator_uri) if keypair&.public_key.blank? + return if keypair.nil? || !keypair.usable? options_hash = hash(@json['signature'].without('type', 'id', 'signatureValue').merge('@context' => CONTEXT)) document_hash = hash(@json.without('signature')) to_be_verified = options_hash + document_hash - creator if creator.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), Base64.decode64(signature), to_be_verified) + keypair.actor if keypair.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), Base64.decode64(signature), to_be_verified) rescue OpenSSL::PKey::RSAError false end diff --git a/app/lib/signed_request.rb b/app/lib/signed_request.rb index 1cea2955f5273b..6fd0772de37724 100644 --- a/app/lib/signed_request.rb +++ b/app/lib/signed_request.rb @@ -23,14 +23,14 @@ def algorithm_supported? %w(rsa-sha256 hs2019).include?(signature_algorithm) end - def verified?(actor) + def verified?(keypair) signature = Base64.decode64(signature_params['signature']) compare_signed_string = build_signed_string(include_query_string: true) - return true unless verify_signature(actor, signature, compare_signed_string).nil? + return true unless verify_signature(keypair, signature, compare_signed_string).nil? compare_signed_string = build_signed_string(include_query_string: false) - return true unless verify_signature(actor, signature, compare_signed_string).nil? + return true unless verify_signature(keypair, signature, compare_signed_string).nil? false end @@ -99,8 +99,8 @@ def signed_headers signature_params.fetch('headers', signature_algorithm == 'hs2019' ? '(created)' : 'date').downcase.split end - def verify_signature(actor, signature, compare_signed_string) - true if actor.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), signature, compare_signed_string) + def verify_signature(keypair, signature, compare_signed_string) + true if keypair.keypair.public_key.verify(OpenSSL::Digest.new('SHA256'), signature, compare_signed_string) rescue OpenSSL::PKey::RSAError nil end @@ -170,8 +170,8 @@ def algorithm_supported? true end - def verified?(actor) - key = Linzer.new_rsa_v1_5_sha256_public_key(actor.public_key) + def verified?(keypair) + key = Linzer.new_rsa_v1_5_sha256_public_key(keypair.public_key) Linzer.verify(key, @message, @signature) rescue Linzer::VerifyError @@ -243,7 +243,7 @@ def initialize(request) end end - def verified?(actor) + def verified?(keypair) missing_signature_parameters = @signature.missing_signature_parameters raise Mastodon::SignatureVerificationError, "Incompatible request signature. #{missing_signature_parameters.to_sentence} are required" if missing_signature_parameters raise Mastodon::SignatureVerificationError, 'Unsupported signature algorithm (only rsa-sha256 and hs2019 are supported)' unless @signature.algorithm_supported? @@ -251,7 +251,7 @@ def verified?(actor) @signature.verify_signature_strength! @signature.verify_body_digest! - @signature.verified?(actor) + @signature.verified?(keypair) end private diff --git a/app/models/concerns/account/associations.rb b/app/models/concerns/account/associations.rb index 4b4dfc8879ecdb..089f08fc59090b 100644 --- a/app/models/concerns/account/associations.rb +++ b/app/models/concerns/account/associations.rb @@ -37,6 +37,7 @@ module Account::Associations has_many :scheduled_statuses has_many :status_pins has_many :statuses + has_many :keypairs has_one :deletion_request, class_name: 'AccountDeletionRequest' has_one :follow_recommendation_suppression diff --git a/app/models/keypair.rb b/app/models/keypair.rb new file mode 100644 index 00000000000000..80c313f4df7dd2 --- /dev/null +++ b/app/models/keypair.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: keypairs +# +# id :bigint(8) not null, primary key +# expires_at :datetime +# private_key :string +# public_key :string not null +# revoked :boolean default(FALSE), not null +# type :integer not null +# uri :string not null +# created_at :datetime not null +# updated_at :datetime not null +# account_id :bigint(8) not null +# + +class Keypair < ApplicationRecord + include Expireable + + self.inheritance_column = nil + + encrypts :private_key + + belongs_to :account + + enum :type, { rsa: 0 } + + attr_accessor :require_private_key + + validates :uri, presence: true, uniqueness: true + validates :public_key, presence: true + validates :private_key, presence: true, if: -> { account.local? } + + # NOTE: this should be true in production, but tests heavily rely on remote accounts having a keypair + validates :private_key, absence: true, if: -> { account.remote? && !require_private_key } + + scope :unexpired, -> { where(expires_at: nil).or(where.not(expires_at: ..Time.now.utc)) } + scope :usable, -> { unexpired.where(revoked: false) } + + alias actor account + + def keypair + @keypair ||= begin + case type + when 'rsa' + OpenSSL::PKey::RSA.new(private_key || public_key) + end + end + end + + def usable? + !revoked? && !expired? + end + + def self.from_keyid(uri) + keypair = find_by(uri: uri) + return keypair unless keypair.nil? + + # No keypair found, try the old way we used to store RSA keypairs + account = ActivityPub::TagManager.instance.uri_to_actor(uri) + return if account&.public_key.blank? + + from_legacy_account(account, uri: uri) + end + + def self.from_legacy_account(account, uri: nil) + Keypair.new( + account:, + uri: uri.presence || ActivityPub::TagManager.instance.key_uri_for(account), + public_key: account.public_key, + private_key: account.private_key, + type: :rsa + ) + end +end diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb index b6d9cfa7334bd0..7226f767379fac 100644 --- a/app/services/activitypub/fetch_remote_key_service.rb +++ b/app/services/activitypub/fetch_remote_key_service.rb @@ -14,7 +14,7 @@ def call(uri, suppress_errors: true) raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil? raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?(@json) || (supported_security_context?(@json) && @json['owner'].present? && !actor_type?) raise Error, "Unexpected object type for key #{uri}" unless expected_type? - return find_actor(@json['id'], @json, suppress_errors) if actor_type? + return Keypair.from_legacy_account(find_actor(@json['id'], @json, suppress_errors), uri: uri) if actor_type? @owner = fetch_resource(owner_uri, true) @@ -23,7 +23,8 @@ def call(uri, suppress_errors: true) raise Error, "Unexpected object type for actor #{owner_uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_owner_type? raise Error, "publicKey id for #{owner_uri} does not correspond to #{@json['id']}" unless confirmed_owner? - find_actor(owner_uri, @owner, suppress_errors) + # TODO: change to fetch and persist key + Keypair.from_legacy_account(find_actor(owner_uri, @owner, suppress_errors), uri: uri) rescue Error => e Rails.logger.debug { "Fetching key #{uri} failed: #{e.message}" } raise unless suppress_errors diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index bececf4baccf43..bc282eeef5cde7 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -6,6 +6,7 @@ class ActivityPub::ProcessAccountService < BaseService include Redisable include Lockable + MAX_PUBLIC_KEYS = 10 MAX_PROFILE_FIELDS = 50 SUBDOMAINS_RATELIMIT = 10 DISCOVERIES_PER_REQUEST = 400 @@ -33,8 +34,8 @@ def call(username, domain, json, options = {}) with_redis_lock("process_account:#{@uri}") do @account = Account.remote.find_by(uri: @uri) if @options[:only_key] @account ||= Account.find_remote(@username, @domain) - @old_public_key = @account&.public_key - @old_protocol = @account&.protocol + @old_public_keys = @account.present? ? (@account.keypairs.pluck(:public_key) + [@account.public_key.presence].compact) : [] + @old_protocol = @account&.protocol @suspension_changed = false if @account.nil? @@ -56,8 +57,9 @@ def call(username, domain, json, options = {}) end after_protocol_change! if protocol_changed? - after_key_change! if key_changed? && !@options[:signed_with_known_key] - clear_tombstones! if key_changed? + after_key_change! if all_public_keys_changed? && !@options[:signed_with_known_key] + # TODO: maybe tie tombstones to specific keys? i.e. we don't need to keep tombstones if all keys changed + clear_tombstones! if all_public_keys_changed? after_suspension_change! if suspension_changed? unless @options[:only_key] || @account.suspended? @@ -145,7 +147,11 @@ def set_immediate_attributes! end def set_fetchable_key! - @account.public_key = public_key || '' + @account.keypairs.upsert_all(public_keys, unique_by: :uri) + @account.keypairs.where.not(uri: public_keys.pluck(:uri)).delete_all + + # Unset legacy public key attribute + @account.public_key = '' end def set_fetchable_attributes! @@ -257,14 +263,35 @@ def image_url_and_description(key) [url, description] end - def public_key - value = first_of_value(@json['publicKey']) + def public_keys + # TODO: handle FEP-521a - return if value.nil? - return value['publicKeyPem'] if value.is_a?(Hash) + @public_keys ||= as_array(@json['publicKey']).take(MAX_PUBLIC_KEYS).filter_map do |value| + next if value.nil? + + if value.is_a?(Hash) + next unless value['owner'] == @account.uri + + key = value['publicKeyPem'] + value = value['id'] + + # Key is contained within the actor document, no need to fetch anything else + next { type: :rsa, public_key: key, uri: value } if value.split('#').first == @account.uri + end - key = fetch_resource_without_id_validation(value) - key['publicKeyPem'] if key + key_id = value + + # Key is fetched without ID validation because of a GoToSocial bug + value = fetch_resource_without_id_validation(key_id) + + # Special handling for GoToSocial which returns the whole actor for the key ID + value = first_of_value(value['publicKey']) if value.is_a?(Hash) && value.key?('publicKey') + + next unless value['owner'] == @account.uri + + value['publicKeyPem'] + { type: :rsa, public_key: :key, uri: key_id } + end end def url @@ -353,8 +380,8 @@ def domain_block @domain_block = DomainBlock.rule_for(@domain) end - def key_changed? - !@old_public_key.nil? && @old_public_key != @account.public_key + def all_public_keys_changed? + !@old_public_keys.empty? && @account.keypairs.none? { |keypair| keypair.usable? && @old_public_keys.include?(keypair.public_key) } end def suspension_changed? diff --git a/db/migrate/20260323105645_create_keypairs.rb b/db/migrate/20260323105645_create_keypairs.rb new file mode 100644 index 00000000000000..e3ab970a7c1e10 --- /dev/null +++ b/db/migrate/20260323105645_create_keypairs.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +class CreateKeypairs < ActiveRecord::Migration[8.0] + def change + create_table :keypairs do |t| + t.references :account, null: false, foreign_key: { on_delete: :cascade } + + t.string :uri, null: false + t.integer :type, null: false + t.string :public_key, null: false + t.string :private_key + t.datetime :expires_at + t.boolean :revoked, default: false, null: false + + t.timestamps + end + + add_index :keypairs, :uri, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 4b9dbbcd36ddac..69a9ef45dae6a1 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_03_19_142348) do +ActiveRecord::Schema[8.1].define(version: 2026_03_23_105645) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -683,6 +683,20 @@ t.index ["ip"], name: "index_ip_blocks_on_ip", unique: true end + create_table "keypairs", force: :cascade do |t| + t.bigint "account_id", null: false + t.datetime "created_at", null: false + t.datetime "expires_at" + t.string "private_key" + t.string "public_key", null: false + t.boolean "revoked", default: false, null: false + t.integer "type", null: false + t.datetime "updated_at", null: false + t.string "uri", null: false + t.index ["account_id"], name: "index_keypairs_on_account_id" + t.index ["uri"], name: "index_keypairs_on_uri", unique: true + end + create_table "list_accounts", force: :cascade do |t| t.bigint "account_id", null: false t.bigint "follow_id" @@ -1492,6 +1506,7 @@ add_foreign_key "identities", "users", name: "fk_bea040f377", on_delete: :cascade add_foreign_key "instance_moderation_notes", "accounts", on_delete: :cascade add_foreign_key "invites", "users", on_delete: :cascade + add_foreign_key "keypairs", "accounts", on_delete: :cascade add_foreign_key "list_accounts", "accounts", on_delete: :cascade add_foreign_key "list_accounts", "follow_requests", on_delete: :cascade add_foreign_key "list_accounts", "follows", on_delete: :cascade diff --git a/spec/fabricators/keypair_fabricator.rb b/spec/fabricators/keypair_fabricator.rb new file mode 100644 index 00000000000000..5eae3872d271f6 --- /dev/null +++ b/spec/fabricators/keypair_fabricator.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +keypair = OpenSSL::PKey::RSA.new(2048) +public_key = keypair.public_key.to_pem +private_key = keypair.to_pem + +Fabricator(:keypair) do + account + type :rsa + public_key public_key + expires_at nil + revoked false + + after_build do |keypair| + keypair.uri ||= ActivityPub::TagManager.instance.key_uri_for(keypair.account) + keypair.private_key ||= private_key if keypair.account.local? + end +end diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb index 8128fdd070b645..7aaff9680e3d00 100644 --- a/spec/lib/activitypub/linked_data_signature_spec.rb +++ b/spec/lib/activitypub/linked_data_signature_spec.rb @@ -7,6 +7,7 @@ subject { described_class.new(json) } + let(:keyid) { 'http://example.com/alice#rsa-key' } let!(:sender) { Fabricate(:account, uri: 'http://example.com/alice', domain: 'example.com') } let(:raw_json) do @@ -25,7 +26,7 @@ context 'when signature matches' do let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end @@ -40,7 +41,7 @@ context 'when local account record is missing a public key' do let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end @@ -59,15 +60,14 @@ allow(ActivityPub::FetchRemoteKeyService).to receive(:new).and_return(service_stub) - allow(service_stub).to receive(:call).with('http://example.com/alice') do - sender.update!(public_key: old_key) - sender + allow(service_stub).to receive(:call).with(keyid) do + Keypair.new(account: sender, type: :rsa, public_key: old_key, uri: keyid) end end it 'fetches key and returns creator' do expect(subject.verify_actor!).to eq sender - expect(service_stub).to have_received(:call).with('http://example.com/alice').once + expect(service_stub).to have_received(:call).with(keyid).once end end @@ -82,7 +82,7 @@ context 'when signature is tampered' do let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end @@ -100,7 +100,7 @@ let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end @@ -116,7 +116,7 @@ let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end @@ -132,7 +132,7 @@ let(:raw_signature) do { - 'creator' => 'http://example.com/alice', + 'creator' => keyid, 'created' => '2017-09-23T20:21:34Z', } end diff --git a/spec/models/keypair_spec.rb b/spec/models/keypair_spec.rb new file mode 100644 index 00000000000000..e7b18d8e68f147 --- /dev/null +++ b/spec/models/keypair_spec.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Keypair do + describe '#keypair' do + let(:keypair) { Fabricate(:keypair) } + + it 'returns an RSA key pair' do + expect(keypair.keypair).to be_instance_of OpenSSL::PKey::RSA + end + end + + describe 'from_keyid' do + context 'when a key with the given key ID exists' do + let(:account) { Fabricate(:account, domain: 'example.com') } + let(:keypair) { Fabricate(:keypair, account: account) } + + it 'returns the expected Keypair' do + expect(described_class.from_keyid(keypair.uri)) + .to eq keypair + end + end + + context 'when no key with the expected key ID exists but there is an account with the same ID and a key' do + let(:account) { Fabricate(:account, domain: 'example.com') } + let(:keyid) { "#{ActivityPub::TagManager.instance.uri_for(account)}#main-rsa-key" } + + it 'returns the expected Keypair' do + expect(described_class.from_keyid(keyid)) + .to have_attributes( + account: account, + type: 'rsa', + uri: keyid + ) + end + end + + context 'when no key with the expected key ID exists but there is an account with the same ID and no key' do + let(:account) { Fabricate(:account, domain: 'example.com', public_key: '', private_key: nil) } + let(:keyid) { "#{ActivityPub::TagManager.instance.uri_for(account)}#main-rsa-key" } + + it 'returns nil' do + expect(described_class.from_keyid(keyid)) + .to be_nil + end + end + + context 'when no key with the expected key ID exists and no matching account exists' do + let(:keyid) { 'https://example.com/alice#main-key' } + + it 'returns nil' do + expect(described_class.from_keyid(keyid)) + .to be_nil + end + end + end +end diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb index f5df52d5bac321..cd61ebee221f6b 100644 --- a/spec/services/activitypub/fetch_remote_key_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb @@ -55,7 +55,7 @@ end describe '#call' do - let(:account) { subject.call(public_key_id) } + let(:keypair) { subject.call(public_key_id) } context 'when the key is a sub-object from the actor' do before do @@ -63,7 +63,7 @@ end it 'returns the expected account' do - expect(account.uri).to eq 'https://example.com/alice' + expect(keypair.account.uri).to eq 'https://example.com/alice' end end @@ -75,7 +75,7 @@ end it 'returns the expected account' do - expect(account.uri).to eq 'https://example.com/alice' + expect(keypair.account.uri).to eq 'https://example.com/alice' end end @@ -88,7 +88,7 @@ end it 'returns the nil' do - expect(account).to be_nil + expect(keypair).to be_nil end end end diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 949cc456189c37..8e8fbb6a440817 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -94,6 +94,109 @@ end end + context 'with a single keypair' do + let(:payload) do + { + id: 'https://foo.test/actor', + type: 'Actor', + inbox: 'https://foo.test/inbox', + preferredUsername: 'alice', + publicKey: { + id: 'https://foo.test/actor#key1', + owner: 'https://foo.test/actor', + publicKeyPem: 'foo', + }, + }.with_indifferent_access + end + + it 'stores the key' do + account = subject.call('alice', 'example.com', payload) + + expect(account.public_key).to eq '' + expect(account.keypairs).to contain_exactly( + have_attributes( + uri: 'https://foo.test/actor#key1', + type: 'rsa' + ) + ) + end + + context 'when the account was known with a legacy key' do + let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice') } + + it 'invalidates the legacy key and stores the new key' do + expect { subject.call('alice', 'example.com', payload) } + .to change { alice.reload.public_key }.to('') + .and change { alice.reload.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }))) + end + end + + context 'when the account was known with an old key' do + let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice', public_key: '') } + + before do + Fabricate(:keypair, account: alice, uri: 'https://foo.test/actor#old-key', type: :rsa) + end + + it 'invalidates the legacy key and stores the new key' do + expect { subject.call('alice', 'example.com', payload) } + .to change { alice.reload.keypairs.to_a }.from(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#old-key' }))).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }))) + + expect(alice.reload.public_key) + .to eq '' + end + end + end + + context 'with multiple keypairs' do + let(:payload) do + { + id: 'https://foo.test/actor', + type: 'Actor', + inbox: 'https://foo.test/inbox', + preferredUsername: 'alice', + publicKey: [ + { + id: 'https://foo.test/actor#key1', + owner: 'https://foo.test/actor', + publicKeyPem: 'foo', + }, + { + id: 'https://foo.test/actor#key2', + owner: 'https://foo.test/actor', + publicKeyPem: 'bar', + }, + ], + }.with_indifferent_access + end + + it 'stores the keys' do + account = subject.call('alice', 'example.com', payload) + + expect(account.public_key).to eq '' + expect(account.keypairs).to contain_exactly( + have_attributes( + uri: 'https://foo.test/actor#key1', + type: 'rsa' + ), + have_attributes( + uri: 'https://foo.test/actor#key2', + type: 'rsa' + ) + ) + end + + context 'when the account was known with a legacy key' do + let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice') } + + it 'invalidates the legacy key and stores the new keys' do + expect { subject.call('alice', 'example.com', payload) } + .to change { alice.reload.public_key }.to('') + .and change { alice.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }), have_attributes({ uri: 'https://foo.test/actor#key2', type: 'rsa' }))) + end + end + end + context 'with attribution domains' do let(:payload) do { From e3dfb7ddd6ab8d821bca6337892f5d5b42992133 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 25 Mar 2026 16:01:40 +0100 Subject: [PATCH 024/335] Render `FormattedMessage` translations into `React.Fragment` by default (#38398) --- .storybook/preview.tsx | 6 +----- .../mastodon/components/alt_text_badge/index.tsx | 3 +-- .../mastodon/features/collections/detail/accounts_list.tsx | 7 +------ .../mastodon/features/collections/editor/details.tsx | 3 +-- app/javascript/mastodon/locales/intl_provider.tsx | 1 - 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index b8b9bd385efa9c..4fb559ccf96e22 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -137,11 +137,7 @@ const preview: Preview = { }, [currentLocale, currentLocaleData]); return ( - + ); diff --git a/app/javascript/mastodon/components/alt_text_badge/index.tsx b/app/javascript/mastodon/components/alt_text_badge/index.tsx index 6bb64254c63781..ecfb29fd529f98 100644 --- a/app/javascript/mastodon/components/alt_text_badge/index.tsx +++ b/app/javascript/mastodon/components/alt_text_badge/index.tsx @@ -1,4 +1,4 @@ -import { useState, useCallback, useRef, useId, Fragment } from 'react'; +import { useState, useCallback, useRef, useId } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; @@ -84,7 +84,6 @@ export const AltTextBadge: React.FC<{ description: string }> = ({ diff --git a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx index e458dd27f06fcb..7199b8c32a22ac 100644 --- a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx +++ b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useRef, useState } from 'react'; +import { useCallback, useRef, useState } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; @@ -100,14 +100,12 @@ const RevokeControls: React.FC<{
    @@ -143,7 +141,6 @@ const SensitiveScreen: React.FC<{ @@ -205,7 +202,6 @@ export const CollectionAccountsList: React.FC<{ values={{ author: , }} - tagName={Fragment} />
    diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index 9a7ea16be8dc6d..ce0019353d5c49 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -1,4 +1,4 @@ -import { Fragment, useCallback, useMemo } from 'react'; +import { useCallback, useMemo } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; @@ -413,7 +413,6 @@ const LanguageField: React.FC = () => { {languages?.map(([code, name, localName]) => ( diff --git a/app/javascript/mastodon/locales/intl_provider.tsx b/app/javascript/mastodon/locales/intl_provider.tsx index 94372f95b0fc41..b59458cd2d67f1 100644 --- a/app/javascript/mastodon/locales/intl_provider.tsx +++ b/app/javascript/mastodon/locales/intl_provider.tsx @@ -50,7 +50,6 @@ export const IntlProvider: React.FC< locale={locale} messages={messages} onError={onProviderError} - textComponent='span' {...props} > {children} From 2a4b205c75fa697f436dfbe9f79192fb401485ff Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 16:28:20 +0100 Subject: [PATCH 025/335] Make sure `Delete` reaches collection owner (#38399) --- app/services/revoke_collection_item_service.rb | 4 +++- spec/services/revoke_collection_item_service_spec.rb | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/services/revoke_collection_item_service.rb b/app/services/revoke_collection_item_service.rb index c0dc70e952cf92..9b5c53f70c293c 100644 --- a/app/services/revoke_collection_item_service.rb +++ b/app/services/revoke_collection_item_service.rb @@ -6,6 +6,7 @@ class RevokeCollectionItemService < BaseService def call(collection_item) @collection_item = collection_item @account = collection_item.account + @collection = @collection_item.collection @collection_item.revoke! @@ -15,7 +16,8 @@ def call(collection_item) private def distribute_stamp_deletion! - ActivityPub::AccountRawDistributionWorker.perform_async(signed_activity_json, @collection_item.collection.account_id) + ActivityPub::DeliveryWorker.perform_async(signed_activity_json, @account.id, @collection.account.inbox_url) + ActivityPub::AccountRawDistributionWorker.perform_async(signed_activity_json, @collection.account_id) end def signed_activity_json diff --git a/spec/services/revoke_collection_item_service_spec.rb b/spec/services/revoke_collection_item_service_spec.rb index 8ea753dcc5ec43..b4cba82056efda 100644 --- a/spec/services/revoke_collection_item_service_spec.rb +++ b/spec/services/revoke_collection_item_service_spec.rb @@ -13,12 +13,14 @@ end context 'when the collection is remote', feature: :collections_federation do - let(:collection) { Fabricate(:remote_collection) } + let(:account) { Fabricate(:remote_account, inbox_url: 'https://example.com/actor/1/inbox') } + let(:collection) { Fabricate(:remote_collection, account:) } let(:collection_item) { Fabricate(:collection_item, collection:, uri: 'https://example.com') } it 'federates a `Delete` activity' do subject.call(collection_item) + expect(ActivityPub::DeliveryWorker).to have_enqueued_sidekiq_job.with(instance_of(String), collection_item.account_id, 'https://example.com/actor/1/inbox') expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job end end From 61e0ec8844e4bef17135ac00ee1df2b73b14b86e Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 25 Mar 2026 16:31:58 +0100 Subject: [PATCH 026/335] Profile editing: Re-adds the character counter with the new limit (#38400) --- .../account_edit/modals/image_alt.tsx | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/modals/image_alt.tsx b/app/javascript/mastodon/features/account_edit/modals/image_alt.tsx index 40b46f3e11a9db..d9d014f792b59f 100644 --- a/app/javascript/mastodon/features/account_edit/modals/image_alt.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/image_alt.tsx @@ -3,6 +3,7 @@ import { useCallback, useState } from 'react'; import { FormattedMessage } from 'react-intl'; +import { CharacterCounter } from '@/mastodon/components/character_counter'; import { Details } from '@/mastodon/components/details'; import { TextAreaField } from '@/mastodon/components/form_fields'; import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; @@ -84,7 +85,12 @@ export const ImageAltTextField: FC<{ const altLimit = useAppSelector( (state) => state.server.getIn( - ['server', 'configuration', 'media_attachments', 'description_limit'], + [ + 'server', + 'configuration', + 'accounts', + 'max_header_description_length', + ], 150, ) as number, ); @@ -100,23 +106,26 @@ export const ImageAltTextField: FC<{ <> - - } - hint={ - - } - onChange={handleChange} - value={altText} - maxLength={altLimit} - /> +
    + + } + hint={ + + } + onChange={handleChange} + value={altText} + maxLength={altLimit} + /> + +
    {!hideTip && (
    Date: Wed, 25 Mar 2026 16:59:50 +0100 Subject: [PATCH 027/335] Don't install recommended packages in CI tasks (#38401) --- .github/actions/setup-ruby/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-ruby/action.yml b/.github/actions/setup-ruby/action.yml index fed79add6d8ba6..2993c66f7bc974 100644 --- a/.github/actions/setup-ruby/action.yml +++ b/.github/actions/setup-ruby/action.yml @@ -14,7 +14,7 @@ runs: shell: bash run: | sudo apt-get update - sudo apt-get install -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }} + sudo apt-get install --no-install-recommends -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }} - name: Set up Ruby uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 # v1 From bcf0718a9ae8fd4004d7d5ac27bc5a8ea666f38e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 25 Mar 2026 17:25:45 +0100 Subject: [PATCH 028/335] Add email subscriptions (#38163) --- .../email_subscriptions_controller.rb | 26 +++++++ .../confirmations_controller.rb | 17 +++++ .../mail_subscriptions_controller.rb | 39 ---------- .../settings/privacy_controller.rb | 5 ++ app/controllers/unsubscriptions_controller.rb | 58 ++++++++++++++ app/javascript/styles/entrypoints/mailer.scss | 46 ++++++++++++ app/javascript/styles/mastodon/tables.scss | 20 +++++ app/mailers/email_subscription_mailer.rb | 66 ++++++++++++++++ app/models/account.rb | 2 + app/models/concerns/account/associations.rb | 1 + app/models/concerns/user/has_settings.rb | 4 + app/models/email_subscription.rb | 48 ++++++++++++ app/models/user_role.rb | 5 ++ app/models/user_settings.rb | 1 + app/serializers/rest/account_serializer.rb | 5 ++ app/services/post_status_service.rb | 21 ++++++ .../confirmation.html.haml | 20 +++++ .../confirmation.text.erb | 9 +++ .../notification.html.haml | 36 +++++++++ .../notification.text.erb | 7 ++ .../confirmations/show.html.haml | 11 +++ app/views/layouts/mailer.html.haml | 24 +++--- app/views/layouts/mailer.text.erb | 8 +- app/views/mail_subscriptions/create.html.haml | 9 --- app/views/mail_subscriptions/show.html.haml | 20 ----- app/views/settings/privacy/show.html.haml | 20 +++++ app/views/unsubscriptions/create.html.haml | 12 +++ app/views/unsubscriptions/show.html.haml | 26 +++++++ app/workers/email_distribution_worker.rb | 37 +++++++++ .../scheduler/user_cleanup_scheduler.rb | 7 ++ config/i18n-tasks.yml | 1 + config/locales/ar.yml | 7 -- config/locales/be.yml | 7 -- config/locales/bg.yml | 7 -- config/locales/br.yml | 3 - config/locales/ca.yml | 7 -- config/locales/cs.yml | 7 -- config/locales/cy.yml | 7 -- config/locales/da.yml | 7 -- config/locales/de.yml | 7 -- config/locales/el.yml | 7 -- config/locales/en-GB.yml | 7 -- config/locales/en.yml | 75 +++++++++++++++---- config/locales/eo.yml | 7 -- config/locales/es-AR.yml | 7 -- config/locales/es-MX.yml | 7 -- config/locales/es.yml | 7 -- config/locales/et.yml | 7 -- config/locales/eu.yml | 9 --- config/locales/fa.yml | 7 -- config/locales/fi.yml | 7 -- config/locales/fo.yml | 7 -- config/locales/fr-CA.yml | 7 -- config/locales/fr.yml | 7 -- config/locales/fy.yml | 7 -- config/locales/ga.yml | 7 -- config/locales/gd.yml | 7 -- config/locales/gl.yml | 7 -- config/locales/he.yml | 7 -- config/locales/hu.yml | 7 -- config/locales/ia.yml | 7 -- config/locales/ie.yml | 5 -- config/locales/io.yml | 6 -- config/locales/is.yml | 7 -- config/locales/it.yml | 7 -- config/locales/ja.yml | 7 -- config/locales/kab.yml | 1 - config/locales/ko.yml | 7 -- config/locales/lad.yml | 7 -- config/locales/lt.yml | 1 - config/locales/lv.yml | 7 -- config/locales/ms.yml | 3 - config/locales/my.yml | 5 -- config/locales/nan-TW.yml | 7 -- config/locales/nl.yml | 7 -- config/locales/nn.yml | 7 -- config/locales/no.yml | 5 -- config/locales/pl.yml | 7 -- config/locales/pt-BR.yml | 7 -- config/locales/pt-PT.yml | 7 -- config/locales/ru.yml | 7 -- config/locales/sc.yml | 3 - config/locales/simple_form.en.yml | 2 + config/locales/sk.yml | 1 - config/locales/sl.yml | 7 -- config/locales/sq.yml | 7 -- config/locales/sr-Latn.yml | 5 -- config/locales/sr.yml | 5 -- config/locales/sv.yml | 7 -- config/locales/th.yml | 7 -- config/locales/tr.yml | 7 -- config/locales/uk.yml | 7 -- config/locales/vi.yml | 7 -- config/locales/zh-CN.yml | 7 -- config/locales/zh-HK.yml | 5 -- config/locales/zh-TW.yml | 7 -- config/routes.rb | 6 +- config/routes/api.rb | 1 + ...260311212130_create_email_subscriptions.rb | 17 +++++ db/schema.rb | 14 ++++ .../email_subscription_fabricator.rb | 7 ++ .../mailers/email_subscription_mailer_spec.rb | 51 +++++++++++++ .../email_subscription_mailer_preview.rb | 15 ++++ spec/models/email_subscription_spec.rb | 43 +++++++++++ .../v1/accounts/email_subscriptions_spec.rb | 48 ++++++++++++ .../email_subscriptions/confirmations_spec.rb | 33 ++++++++ ...ptions_spec.rb => unsubscriptions_spec.rb} | 8 +- .../bootstrap_timeline_service_spec.rb | 24 +++--- 108 files changed, 839 insertions(+), 516 deletions(-) create mode 100644 app/controllers/api/v1/accounts/email_subscriptions_controller.rb create mode 100644 app/controllers/email_subscriptions/confirmations_controller.rb delete mode 100644 app/controllers/mail_subscriptions_controller.rb create mode 100644 app/controllers/unsubscriptions_controller.rb create mode 100644 app/mailers/email_subscription_mailer.rb create mode 100644 app/models/email_subscription.rb create mode 100644 app/views/email_subscription_mailer/confirmation.html.haml create mode 100644 app/views/email_subscription_mailer/confirmation.text.erb create mode 100644 app/views/email_subscription_mailer/notification.html.haml create mode 100644 app/views/email_subscription_mailer/notification.text.erb create mode 100644 app/views/email_subscriptions/confirmations/show.html.haml delete mode 100644 app/views/mail_subscriptions/create.html.haml delete mode 100644 app/views/mail_subscriptions/show.html.haml create mode 100644 app/views/unsubscriptions/create.html.haml create mode 100644 app/views/unsubscriptions/show.html.haml create mode 100644 app/workers/email_distribution_worker.rb create mode 100644 db/migrate/20260311212130_create_email_subscriptions.rb create mode 100644 spec/fabricators/email_subscription_fabricator.rb create mode 100644 spec/mailers/email_subscription_mailer_spec.rb create mode 100644 spec/mailers/previews/email_subscription_mailer_preview.rb create mode 100644 spec/models/email_subscription_spec.rb create mode 100644 spec/requests/api/v1/accounts/email_subscriptions_spec.rb create mode 100644 spec/requests/email_subscriptions/confirmations_spec.rb rename spec/requests/{mail_subscriptions_spec.rb => unsubscriptions_spec.rb} (90%) diff --git a/app/controllers/api/v1/accounts/email_subscriptions_controller.rb b/app/controllers/api/v1/accounts/email_subscriptions_controller.rb new file mode 100644 index 00000000000000..dcdd41f6db9840 --- /dev/null +++ b/app/controllers/api/v1/accounts/email_subscriptions_controller.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class Api::V1::Accounts::EmailSubscriptionsController < Api::BaseController + before_action :set_account + before_action :require_feature_enabled! + before_action :require_account_permissions! + + def create + @account.email_subscriptions.create!(email: params[:email], locale: I18n.locale) + render_empty + end + + private + + def set_account + @account = Account.local.find(params[:account_id]) + end + + def require_feature_enabled! + head 404 unless Mastodon::Feature.email_subscriptions_enabled? + end + + def require_account_permissions! + head 404 if @account.unavailable? || !@account.user_can?(:manage_email_subscriptions) || !@account.user_email_subscriptions_enabled? + end +end diff --git a/app/controllers/email_subscriptions/confirmations_controller.rb b/app/controllers/email_subscriptions/confirmations_controller.rb new file mode 100644 index 00000000000000..2750b68d4fc723 --- /dev/null +++ b/app/controllers/email_subscriptions/confirmations_controller.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class EmailSubscriptions::ConfirmationsController < ApplicationController + layout 'auth' + + before_action :set_email_subscription + + def show + @email_subscription.confirm! unless @email_subscription.confirmed? + end + + private + + def set_email_subscription + @email_subscription = EmailSubscription.find_by!(confirmation_token: params[:confirmation_token]) + end +end diff --git a/app/controllers/mail_subscriptions_controller.rb b/app/controllers/mail_subscriptions_controller.rb deleted file mode 100644 index 34df75f63ad6c4..00000000000000 --- a/app/controllers/mail_subscriptions_controller.rb +++ /dev/null @@ -1,39 +0,0 @@ -# frozen_string_literal: true - -class MailSubscriptionsController < ApplicationController - layout 'auth' - - skip_before_action :require_functional! - - before_action :set_user - before_action :set_type - - protect_from_forgery with: :null_session - - def show; end - - def create - @user.settings[email_type_from_param] = false - @user.save! - end - - private - - def set_user - @user = GlobalID::Locator.locate_signed(params[:token], for: 'unsubscribe') - not_found unless @user - end - - def set_type - @type = email_type_from_param - end - - def email_type_from_param - case params[:type] - when 'follow', 'reblog', 'favourite', 'mention', 'follow_request' - "notification_emails.#{params[:type]}" - else - not_found - end - end -end diff --git a/app/controllers/settings/privacy_controller.rb b/app/controllers/settings/privacy_controller.rb index 96efa03ccf7e3d..2716fce806e99c 100644 --- a/app/controllers/settings/privacy_controller.rb +++ b/app/controllers/settings/privacy_controller.rb @@ -2,6 +2,7 @@ class Settings::PrivacyController < Settings::BaseController before_action :set_account + before_action :set_email_subscriptions_count def show; end @@ -24,4 +25,8 @@ def account_params def set_account @account = current_account end + + def set_email_subscriptions_count + @email_subscriptions_count = with_read_replica { @account.email_subscriptions.confirmed.count } + end end diff --git a/app/controllers/unsubscriptions_controller.rb b/app/controllers/unsubscriptions_controller.rb new file mode 100644 index 00000000000000..aac58a38068bc4 --- /dev/null +++ b/app/controllers/unsubscriptions_controller.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +class UnsubscriptionsController < ApplicationController + layout 'auth' + + skip_before_action :require_functional! + + before_action :set_recipient + before_action :set_type + before_action :set_scope + before_action :require_type_if_user! + + protect_from_forgery with: :null_session + + def show; end + + def create + case @scope + when :user + @recipient.settings[@type] = false + @recipient.save! + when :email_subscription + @recipient.destroy! + end + end + + private + + def set_recipient + @recipient = GlobalID::Locator.locate_signed(params[:token], for: 'unsubscribe') + not_found unless @recipient + end + + def set_scope + if @recipient.is_a?(User) + @scope = :user + elsif @recipient.is_a?(EmailSubscription) + @scope = :email_subscription + else + not_found + end + end + + def set_type + @type = email_type_from_param + end + + def require_type_if_user! + not_found if @recipient.is_a?(User) && @type.blank? + end + + def email_type_from_param + case params[:type] + when 'follow', 'reblog', 'favourite', 'mention', 'follow_request' + "notification_emails.#{params[:type]}" + end + end +end diff --git a/app/javascript/styles/entrypoints/mailer.scss b/app/javascript/styles/entrypoints/mailer.scss index fcbbd66f4c7747..725f4e4de41759 100644 --- a/app/javascript/styles/entrypoints/mailer.scss +++ b/app/javascript/styles/entrypoints/mailer.scss @@ -721,6 +721,52 @@ table + p { line-height: 24px; } +// Banner item +.email-banner-table { + border-radius: 12px; + background-color: #1b001f; + background-image: url('../../images/mailer-new/common/header-bg-start.png'); + background-position: left top; + background-repeat: repeat; +} + +.email-banner-td { + padding: 24px 24px 14px; +} + +.email-banner-text-td { + p { + margin: 0 0 12px; + color: #fff; + font-size: 14px; + font-weight: 600; + line-height: 16.8px; + } + + .email-desktop-flex { + align-items: center; + } + + .email-btn-table { + background-color: #fff; + } + + .email-btn-td { + mso-padding-alt: 10px; + } + + .email-btn-a { + color: #181820; + padding-left: 10px; + padding-right: 10px; + } + + div + div { + margin-inline-start: auto; + margin-bottom: 12px; + } +} + // Checklist item .email-checklist-wrapper-td { padding: 4px 0; diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss index 8e303aff685c1e..108878141742ea 100644 --- a/app/javascript/styles/mastodon/tables.scss +++ b/app/javascript/styles/mastodon/tables.scss @@ -93,6 +93,26 @@ } } + &.mini-table { + border-top: 1px solid var(--color-border-primary); + width: 50%; + + & > tbody > tr > th, + & > tbody > tr > td { + padding: 12px 0; + } + + & > tbody > tr > th { + color: var(--color-text-secondary); + font-weight: 400; + } + + & > tbody > tr > td { + color: var(--color-text-primary); + font-weight: 600; + } + } + &.batch-table { & > thead > tr > th { background: var(--color-bg-primary); diff --git a/app/mailers/email_subscription_mailer.rb b/app/mailers/email_subscription_mailer.rb new file mode 100644 index 00000000000000..35bd6da2f99834 --- /dev/null +++ b/app/mailers/email_subscription_mailer.rb @@ -0,0 +1,66 @@ +# frozen_string_literal: true + +class EmailSubscriptionMailer < ApplicationMailer + include BulkMailSettingsConcern + include Redisable + + layout 'mailer' + + helper :accounts + helper :routing + helper :statuses + + before_action :set_subscription + before_action :set_unsubscribe_url + before_action :set_instance + before_action :set_skip_preferences_link + + after_action :use_bulk_mail_delivery_settings, except: [:confirmation] + after_action :set_list_headers + + default to: -> { @subscription.email } + + def confirmation + I18n.with_locale(locale) do + mail subject: default_i18n_subject + end + end + + def notification(statuses) + @statuses = statuses + + I18n.with_locale(locale) do + mail subject: default_i18n_subject(count: @statuses.size, name: @subscription.account.display_name, excerpt: @statuses.first.text.truncate(17)) + end + end + + private + + def set_list_headers + headers( + 'List-ID' => "<#{@subscription.account.username}.#{Rails.configuration.x.local_domain}>", + 'List-Unsubscribe-Post' => 'List-Unsubscribe=One-Click', + 'List-Unsubscribe' => "<#{@unsubscribe_url}>" + ) + end + + def set_subscription + @subscription = params[:subscription] + end + + def set_unsubscribe_url + @unsubscribe_url = unsubscribe_url(token: @subscription.to_sgid(for: 'unsubscribe').to_s) + end + + def set_instance + @instance = Rails.configuration.x.local_domain + end + + def set_skip_preferences_link + @skip_preferences_link = true + end + + def locale + @subscription.locale.presence || I18n.default_locale + end +end diff --git a/app/models/account.rb b/app/models/account.rb index ceb5f857a965fd..8c44db813abf31 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -193,8 +193,10 @@ class Account < ApplicationRecord :role, :locale, :shows_application?, + :email_subscriptions_enabled?, :prefers_noindex?, :time_zone, + :can?, to: :user, prefix: true, allow_nil: true diff --git a/app/models/concerns/account/associations.rb b/app/models/concerns/account/associations.rb index 089f08fc59090b..db2e996d0fb3fd 100644 --- a/app/models/concerns/account/associations.rb +++ b/app/models/concerns/account/associations.rb @@ -38,6 +38,7 @@ module Account::Associations has_many :status_pins has_many :statuses has_many :keypairs + has_many :email_subscriptions has_one :deletion_request, class_name: 'AccountDeletionRequest' has_one :follow_recommendation_suppression diff --git a/app/models/concerns/user/has_settings.rb b/app/models/concerns/user/has_settings.rb index f46a2ac53dd26f..4fa8ab53fa329e 100644 --- a/app/models/concerns/user/has_settings.rb +++ b/app/models/concerns/user/has_settings.rb @@ -15,6 +15,10 @@ def prefers_noindex? settings['noindex'] end + def email_subscriptions_enabled? + settings['email_subscriptions'] + end + def preferred_posting_language valid_locale_cascade(settings['default_language'], locale, I18n.locale) end diff --git a/app/models/email_subscription.rb b/app/models/email_subscription.rb new file mode 100644 index 00000000000000..a965f06e31f4b8 --- /dev/null +++ b/app/models/email_subscription.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +# == Schema Information +# +# Table name: email_subscriptions +# +# id :bigint(8) not null, primary key +# confirmation_token :string +# confirmed_at :datetime +# email :string not null +# locale :string not null +# created_at :datetime not null +# updated_at :datetime not null +# account_id :bigint(8) not null +# + +class EmailSubscription < ApplicationRecord + belongs_to :account + + normalizes :email, with: ->(str) { str.squish.downcase } + + validates :email, presence: true, email_address: true, uniqueness: { scope: :account_id } + + scope :confirmed, -> { where.not(confirmed_at: nil) } + scope :unconfirmed, -> { where(confirmed_at: nil) } + + before_create :set_confirmation_token + + after_create_commit :send_confirmation_email + + def confirmed? + confirmed_at.present? + end + + def confirm! + touch(:confirmed_at) + end + + private + + def set_confirmation_token + self.confirmation_token = Devise.friendly_token unless confirmed? + end + + def send_confirmation_email + EmailSubscriptionMailer.with(subscription: self).confirmation.deliver_later + end +end diff --git a/app/models/user_role.rb b/app/models/user_role.rb index f2597e1c43d7c6..e98d9bc479bf84 100644 --- a/app/models/user_role.rb +++ b/app/models/user_role.rb @@ -39,6 +39,7 @@ class UserRole < ApplicationRecord delete_user_data: (1 << 19), view_feeds: (1 << 20), invite_bypass_approval: (1 << 21), + manage_email_subscriptions: (1 << 22), }.freeze EVERYONE_ROLE_ID = -99 @@ -60,6 +61,10 @@ module Flags invite_bypass_approval ).freeze, + email: %i( + manage_email_subscriptions + ).freeze, + moderation: %i( view_dashboard view_audit_log diff --git a/app/models/user_settings.rb b/app/models/user_settings.rb index c5f02ae2e9528b..3a6e6f249b6d81 100644 --- a/app/models/user_settings.rb +++ b/app/models/user_settings.rb @@ -16,6 +16,7 @@ class KeyError < Error; end setting :default_sensitive, default: false setting :default_privacy, default: nil, in: %w(public unlisted private) setting :default_quote_policy, default: 'public', in: %w(public followers nobody) + setting :email_subscriptions, default: false setting_inverse_alias :indexable, :noindex diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb index e97baa8612d6fb..9fc5acee9d8df9 100644 --- a/app/serializers/rest/account_serializer.rb +++ b/app/serializers/rest/account_serializer.rb @@ -22,6 +22,7 @@ class REST::AccountSerializer < ActiveModel::Serializer attribute :memorial, if: :memorial? attribute :feature_approval, if: -> { Mastodon::Feature.collections_enabled? } + attribute :email_subscriptions, if: -> { Mastodon::Feature.email_subscriptions_enabled? } class AccountDecorator < SimpleDelegator def self.model_name @@ -176,4 +177,8 @@ def feature_approval current_user: object.feature_policy_for_account(current_user&.account), } end + + def email_subscriptions + object.user_can?(:manage_email_subscriptions) && object.user_email_subscriptions_enabled? + end end diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index e44ddda54c7bc0..3ef1502cd67af3 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -5,6 +5,12 @@ class PostStatusService < BaseService include Lockable include LanguagesHelper + # How much to delay sending an e-mail about a new post, to allow grouping multiple posts + EMAIL_DISTRIBUTION_DELAY = 5.minutes.freeze + + # If the job is not executed within this timeframe, it will lose its arguments + EMAIL_DISTRIBUTION_TTL = 1.hour.to_i + class UnexpectedMentionsError < StandardError attr_reader :accounts @@ -158,11 +164,26 @@ def postprocess_status! Trends.tags.register(@status) LinkCrawlWorker.perform_async(@status.id) DistributionWorker.perform_async(@status.id) + process_email_subscriptions! ActivityPub::DistributionWorker.perform_async(@status.id) PollExpirationNotifyWorker.perform_at(@status.poll.expires_at, @status.poll.id) if @status.poll ActivityPub::QuoteRequestWorker.perform_async(@status.quote.id) if @status.quote&.quoted_status.present? && !@status.quote&.quoted_status&.local? end + def process_email_subscriptions! + return unless Mastodon::Feature.email_subscriptions_enabled? && + @status.public_visibility? && (!@status.reply? || @status.in_reply_to_account_id == @status.account_id) && + @status.account.user_can?(:manage_email_subscriptions) && + @status.account.user_email_subscriptions_enabled? + + # To allow e-mail grouping, pass the arguments via a redis set and schedule + # a unique worker a few minutes in the future, in case the user makes subsequent + # posts within that time window + redis.sadd("email_subscriptions:#{@status.account_id}:next_batch", @status.id) + redis.expire("email_subscriptions:#{@status.account_id}:next_batch", EMAIL_DISTRIBUTION_TTL) + EmailDistributionWorker.perform_in(EMAIL_DISTRIBUTION_DELAY, @status.account_id) + end + def validate_media! if @options[:media_ids].blank? || !@options[:media_ids].is_a?(Enumerable) @media = [] diff --git a/app/views/email_subscription_mailer/confirmation.html.haml b/app/views/email_subscription_mailer/confirmation.html.haml new file mode 100644 index 00000000000000..7d14d9ff59caa0 --- /dev/null +++ b/app/views/email_subscription_mailer/confirmation.html.haml @@ -0,0 +1,20 @@ += content_for :heading do + = render 'application/mailer/heading', + image_url: full_asset_url(@subscription.account.avatar.url), + title: t('.title', name: display_name(@subscription.account)) + +%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-body-padding-td + %table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-inner-card-td.email-prose + %p= t '.instructions_to_confirm', name: display_name(@subscription.account), acct: "#{@subscription.account.username}@#{@instance}" + + = render 'application/mailer/button', text: t('.action'), url: email_subscriptions_confirmation_url(confirmation_token: @subscription.confirmation_token) + + %p= t '.instructions_to_ignore' + +- content_for :footer do + %p.email-footer-p= t('email_subscription_mailer.notification.footer.reason_for_email_html', name: display_name(@subscription.account), unsubscribe_path: @unsubscribe_url) + %p.email-footer-p= t('email_subscription_mailer.notification.footer.privacy_html', domain: @instance, privacy_policy_path: privacy_policy_path) diff --git a/app/views/email_subscription_mailer/confirmation.text.erb b/app/views/email_subscription_mailer/confirmation.text.erb new file mode 100644 index 00000000000000..4d80bebc0de302 --- /dev/null +++ b/app/views/email_subscription_mailer/confirmation.text.erb @@ -0,0 +1,9 @@ +<%= t '.title', name: display_name(@subscription.account) %> + +=== + +<%= t '.instructions_to_confirm', name: display_name(@subscription.account), acct: "#{@subscription.account.username}@#{@instance}" %> + +=> <%= root_url(confirmation_token: @subscription.confirmation_token) %> + +<%= t '.instructions_to_ignore' %> diff --git a/app/views/email_subscription_mailer/notification.html.haml b/app/views/email_subscription_mailer/notification.html.haml new file mode 100644 index 00000000000000..ad816ba46069b9 --- /dev/null +++ b/app/views/email_subscription_mailer/notification.html.haml @@ -0,0 +1,36 @@ +%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + - @statuses.each do |status| + %tr + %td.email-body-padding-td + %table.email-inner-card-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-inner-card-td + = render 'notification_mailer/status', status: status, time_zone: nil + +%table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-body-padding-td + %table.email-w-full.email-checklist-wrapper-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-checklist-wrapper-td + %table.email-w-full.email-banner-table{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-banner-td + %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } + %tr + %td.email-banner-text-td + .email-desktop-flex + /[if mso] +
    + %div + %p= t('.interact_with_this_post', count: @statuses.size) + /[if mso] + + %div + = render 'application/mailer/button', text: t('.create_account'), url: available_sign_up_path, has_arrow: false + /[if mso] +
    + +- content_for :footer do + %p.email-footer-p= t('.footer.reason_for_email_html', name: display_name(@subscription.account), unsubscribe_path: @unsubscribe_url) + %p.email-footer-p= t('.footer.privacy_html', domain: @instance, privacy_policy_path: privacy_policy_path) diff --git a/app/views/email_subscription_mailer/notification.text.erb b/app/views/email_subscription_mailer/notification.text.erb new file mode 100644 index 00000000000000..7da5261b6446bc --- /dev/null +++ b/app/views/email_subscription_mailer/notification.text.erb @@ -0,0 +1,7 @@ +<%= t '.title', count: @statuses.size, name: display_name(@subscription.account), excerpt: truncate(@statuses.first.text, length: 17) %> + +=== + +<%- @statuses.each do |status| %> +<%= render 'notification_mailer/status', status: status %> +<%- end %> diff --git a/app/views/email_subscriptions/confirmations/show.html.haml b/app/views/email_subscriptions/confirmations/show.html.haml new file mode 100644 index 00000000000000..a13504bb4860df --- /dev/null +++ b/app/views/email_subscriptions/confirmations/show.html.haml @@ -0,0 +1,11 @@ +- content_for :page_title do + = t('.title') + +.simple_form + %h1.title + = t('.title') + %p.lead + = t('.success_html', name: content_tag(:strong, display_name(@email_subscription.account)), sender: content_tag(:strong, EmailSubscriptionMailer.default[:from])) + %p.lead + = t('.changed_your_mind') + = link_to t('.unsubscribe'), unsubscribe_url(token: @email_subscription.to_sgid(for: 'unsubscribe')) diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml index 842312b853e596..5862f797126ab5 100644 --- a/app/views/layouts/mailer.html.haml +++ b/app/views/layouts/mailer.html.haml @@ -12,6 +12,7 @@ %style{ 'data-premailer': 'ignore' } \.email a { color: inherit; text-decoration: none; } \.email-btn-hover:hover { background-color: #563acc !important; } + \.email-banner-text-td .email-btn-hover:hover { background-color: #fff !important; } /[if mso] @@ -73,15 +74,18 @@ %table.email-w-full{ cellspacing: 0, cellpadding: 0, border: 0, role: 'presentation' } %tr %td.email-footer-td - %p.email-footer-p - = link_to root_url, class: 'email-footer-logo-a' do - = image_tag frontend_asset_url('images/mailer-new/common/logo-footer.png'), alt: 'Mastodon', width: 44, height: 44 - %p.email-footer-p - = t 'about.hosted_on', domain: site_hostname - %p.email-footer-p - = link_to t('application_mailer.notification_preferences'), settings_preferences_notifications_url - - if defined?(@unsubscribe_url) - · - = link_to t('application_mailer.unsubscribe'), @unsubscribe_url + - if content_for?(:footer) + = yield :footer + - else + %p.email-footer-p + = link_to root_url, class: 'email-footer-logo-a' do + = image_tag frontend_asset_url('images/mailer-new/common/logo-footer.png'), alt: 'Mastodon', width: 44, height: 44 + %p.email-footer-p + = t 'about.hosted_on', domain: site_hostname + %p.email-footer-p + = link_to t('application_mailer.notification_preferences'), settings_preferences_notifications_url + - if defined?(@unsubscribe_url) + · + = link_to t('application_mailer.unsubscribe'), @unsubscribe_url /[if mso] diff --git a/app/views/layouts/mailer.text.erb b/app/views/layouts/mailer.text.erb index 87b0b2929c52d3..1a78f331109162 100644 --- a/app/views/layouts/mailer.text.erb +++ b/app/views/layouts/mailer.text.erb @@ -1,5 +1,9 @@ <%= yield %> --- -<%= t 'about.hosted_on', domain: site_hostname %> -<%= t('application_mailer.settings', link: settings_preferences_url) %> +<%- unless defined?(@skip_preferences_link) %> +<%= t('application_mailer.notification_preferences') %>: <%= settings_preferences_url %> +<%- end %> +<%- if defined?(@unsubscribe_url) %> +<%= t('application_mailer.unsubscribe') %>: <%= @unsubscribe_url %> +<%- end %> diff --git a/app/views/mail_subscriptions/create.html.haml b/app/views/mail_subscriptions/create.html.haml deleted file mode 100644 index 16ee486b001ca1..00000000000000 --- a/app/views/mail_subscriptions/create.html.haml +++ /dev/null @@ -1,9 +0,0 @@ -- content_for :page_title do - = t('mail_subscriptions.unsubscribe.title') - -.simple_form - %h1.title= t('mail_subscriptions.unsubscribe.complete') - %p.lead - = t('mail_subscriptions.unsubscribe.success_html', domain: content_tag(:strong, site_hostname), type: content_tag(:strong, I18n.t(@type, scope: 'mail_subscriptions.unsubscribe.emails')), email: content_tag(:strong, @user.email)) - %p.lead - = t('mail_subscriptions.unsubscribe.resubscribe_html', settings_path: settings_preferences_notifications_path) diff --git a/app/views/mail_subscriptions/show.html.haml b/app/views/mail_subscriptions/show.html.haml deleted file mode 100644 index 78de48645717ef..00000000000000 --- a/app/views/mail_subscriptions/show.html.haml +++ /dev/null @@ -1,20 +0,0 @@ -- content_for :page_title do - = t('mail_subscriptions.unsubscribe.title') - -.simple_form - %h1.title= t('mail_subscriptions.unsubscribe.title') - %p.lead - = t 'mail_subscriptions.unsubscribe.confirmation_html', - domain: content_tag(:strong, site_hostname), - type: content_tag(:strong, I18n.t(@type, scope: 'mail_subscriptions.unsubscribe.emails')), - email: content_tag(:strong, @user.email), - settings_path: settings_preferences_notifications_path - - = form_with url: unsubscribe_path do |form| - = form.hidden_field :token, - value: params[:token] - = form.hidden_field :type, - value: params[:type] - = form.button t('mail_subscriptions.unsubscribe.action'), - type: :submit, - class: 'btn' diff --git a/app/views/settings/privacy/show.html.haml b/app/views/settings/privacy/show.html.haml index 542d7b34a2ab3f..282f63f19e7abd 100644 --- a/app/views/settings/privacy/show.html.haml +++ b/app/views/settings/privacy/show.html.haml @@ -41,5 +41,25 @@ .fields-group = ff.input :show_application, wrapper: :with_label + - if Mastodon::Feature.email_subscriptions_enabled? && current_user.can?(:manage_email_subscriptions) + %h2= t('privacy.email_subscriptions') + + %p.lead= t('privacy.email_subscriptions_hint_html') + + - if @email_subscriptions_count.positive? || @account.user_email_subscriptions_enabled? + .table-wrapper + %table.table.mini-table + %tbody + %tr + %th= t('email_subscriptions.status') + %td= @account.user_email_subscriptions_enabled? ? t('email_subscriptions.active') : t('email_subscriptions.inactive') + %tr + %th= t('email_subscriptions.subscribers') + %td= number_with_delimiter @email_subscriptions_count + + = f.simple_fields_for :settings, current_user.settings do |ff| + .fields-group + = ff.input :email_subscriptions, wrapper: :with_label + .actions = f.button :button, t('generic.save_changes'), type: :submit diff --git a/app/views/unsubscriptions/create.html.haml b/app/views/unsubscriptions/create.html.haml new file mode 100644 index 00000000000000..157cf2622626e7 --- /dev/null +++ b/app/views/unsubscriptions/create.html.haml @@ -0,0 +1,12 @@ +- content_for :page_title do + = t('.title') + +.simple_form + %h1.title= t('.title') + %p.lead + - if @scope == :email_subscription + = t('.email_subscription.confirmation_html', name: display_name(@recipient.account)) + - elsif @scope == :user + = t('.user.confirmation_html', type: I18n.t(@type, scope: 'unsubscriptions.notification_emails'), domain: site_hostname) + + = link_to t('.action'), root_path, class: 'btn' diff --git a/app/views/unsubscriptions/show.html.haml b/app/views/unsubscriptions/show.html.haml new file mode 100644 index 00000000000000..6f5f0076121d6e --- /dev/null +++ b/app/views/unsubscriptions/show.html.haml @@ -0,0 +1,26 @@ +- content_for :page_title do + - if @scope == :user + = t('.user.title', type: I18n.t(@type, scope: 'unsubscriptions.notification_emails')) + - elsif @scope == :email_subscription + = t('.email_subscription.title', name: display_name(@recipient.account)) + +.simple_form + %h1.title + - if @scope == :user + = t('.user.title', type: I18n.t(@type, scope: 'unsubscriptions.notification_emails')) + - elsif @scope == :email_subscription + = t('.email_subscription.title', name: display_name(@recipient.account)) + %p.lead + - if @scope == :user + = t('.user.confirmation_html') + - elsif @scope == :email_subscription + = t('.email_subscription.confirmation_html') + + = form_with url: unsubscribe_path do |form| + = form.hidden_field :token, + value: params[:token] + = form.hidden_field :type, + value: params[:type] + = form.button t('.action'), + type: :submit, + class: 'btn' diff --git a/app/workers/email_distribution_worker.rb b/app/workers/email_distribution_worker.rb new file mode 100644 index 00000000000000..41edcb932cf6e2 --- /dev/null +++ b/app/workers/email_distribution_worker.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +class EmailDistributionWorker + include Sidekiq::Worker + include Redisable + + sidekiq_options lock: :until_executed, lock_ttl: 1.day.to_i + + def perform(account_id) + return unless Mastodon::Feature.email_subscriptions_enabled? + + @account = Account.find(account_id) + + return unless @account.user_can?(:manage_email_subscriptions) && @account.user_email_subscriptions_enabled? + + with_redis do |redis| + @status_ids = redis.smembers("email_subscriptions:#{account_id}:next_batch") + redis.srem("email_subscriptions:#{account_id}:next_batch", @status_ids) + end + + return if @account.email_subscriptions.confirmed.empty? || @status_ids.empty? + + statuses = Status.without_replies + .without_reblogs + .public_visibility + .where(id: @status_ids) + .to_a + + return if statuses.empty? + + @account.email_subscriptions.confirmed.find_each do |email_subscription| + EmailSubscriptionMailer.with(subscription: email_subscription).notification(statuses).deliver_later + end + rescue ActiveRecord::RecordNotFound + nil + end +end diff --git a/app/workers/scheduler/user_cleanup_scheduler.rb b/app/workers/scheduler/user_cleanup_scheduler.rb index 03544e2e98e53f..20d895551a9e05 100644 --- a/app/workers/scheduler/user_cleanup_scheduler.rb +++ b/app/workers/scheduler/user_cleanup_scheduler.rb @@ -11,6 +11,7 @@ class Scheduler::UserCleanupScheduler def perform clean_unconfirmed_accounts! clean_discarded_statuses! + clean_unconfirmed_email_subscriptions! end private @@ -32,4 +33,10 @@ def clean_discarded_statuses! end end end + + def clean_unconfirmed_email_subscriptions! + EmailSubscription.unconfirmed.where(created_at: ..UNCONFIRMED_ACCOUNTS_MAX_AGE_DAYS.days.ago).find_in_batches do |batch| + EmailSubscription.where(id: batch.map(&:id)).delete_all + end + end end diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml index b934696bda63b0..49858b22d19b17 100644 --- a/config/i18n-tasks.yml +++ b/config/i18n-tasks.yml @@ -65,6 +65,7 @@ ignore_unused: - 'move_handler.carry_{mutes,blocks}_over_text' - 'admin_mailer.*.subject' - 'user_mailer.*.subject' + - 'email_subscription_mailer.*' - 'notification_mailer.*' - 'imports.overwrite_preambles.{following,blocking,muting,domain_blocking,bookmarks,lists}_html.*' - 'imports.preambles.{following,blocking,muting,domain_blocking,bookmarks,lists}_html.*' diff --git a/config/locales/ar.yml b/config/locales/ar.yml index f689f790073e84..218b12a065c037 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1267,7 +1267,6 @@ ar: application_mailer: notification_preferences: تغيير تفضيلات البريد الإلكتروني salutation: "%{name}،" - settings: 'تغيير تفضيلات البريد الإلكتروني: %{link}' unsubscribe: إلغاء الاشتراك view: 'اعرض:' view_profile: اعرض الصفحة التعريفية @@ -1764,9 +1763,6 @@ ar: title: تاريخ المصادقة mail_subscriptions: unsubscribe: - action: نعم، ألغِ الاشتراك - complete: غير مشترك - confirmation_html: هل أنت متأكد أنك تريد إلغاء الاشتراك عن تلقي %{type} لماستدون على %{domain} إلى بريدك الإلكتروني %{email}؟ يمكنك دائمًا إعادة الاشتراك من إعدادات إشعارات البريد الإلكتروني. emails: notification_emails: favourite: إرسال إشعارات التفضيلات بالبريد الإلكتروني @@ -1774,9 +1770,6 @@ ar: follow_request: إرسال إشعارات الطلبات بالبريد الإلكتروني mention: إشعارات رسائل البريد عندما يَذكُرك أحدهم reblog: رسائل البريد الخاصة بالمنشورات المعاد نشرها - resubscribe_html: إذا قمت بإلغاء الاشتراك عن طريق الخطأ، يمكنك إعادة الاشتراك من إعدادات إشعارات البريد الإلكتروني. - success_html: لن تتلقّ بعد الآن %{type} لماستدون مِن %{domain} على بريدك الإلكتروني %{email}. - title: إلغاء الاشتراك media_attachments: validations: images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور diff --git a/config/locales/be.yml b/config/locales/be.yml index 9d06a26030b384..7a30f3a6ec7b24 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1273,7 +1273,6 @@ be: application_mailer: notification_preferences: Змяніць налады эл. пошты salutation: "%{name}," - settings: 'Змяніць налады эл. пошты: %{link}' unsubscribe: Адпісацца view: 'Паглядзець:' view_profile: Паглядзець профіль @@ -1737,9 +1736,6 @@ be: title: Гісторыя ўваходаў mail_subscriptions: unsubscribe: - action: Так, адпісацца - complete: Адпісаны - confirmation_html: Вы ўпэўнены, што жадаеце адмовіцца ад атрымання %{type} з Mastodon на дамене %{domain} на сваю электронную пошту %{email}? Вы заўсёды можаце паўторна падпісацца ў наладах апавяшчэнняў па электроннай пошце. emails: notification_emails: favourite: апавяшчэнні на пошту пра упадабанае @@ -1747,9 +1743,6 @@ be: follow_request: апавяшчэнні на пошту пра запыты на падпіску mention: апавяшчэнні на пошту пра згадванні reblog: апавяшчэнні на пошту пра пашырэнні - resubscribe_html: Калі вы адмовіліся ад падпіскі памылкова, вы можаце зноў падпісацца ў наладах апавяшчэнняў па электроннай пошце. - success_html: Вы больш не будзеце атрымліваць %{type} на сваю электронную пошту %{email} ад Mastodon на дамене %{domain}. - title: Адпісацца media_attachments: validations: images_and_video: Немагчыма далучыць відэа да допісу, які ўжо змяшчае выявы diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 514cb2f6e95a7f..35ef73d52176c8 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1186,7 +1186,6 @@ bg: application_mailer: notification_preferences: Промяна на предпочитанията за е-поща salutation: "%{name}," - settings: 'Промяна на предпочитанията за имейл: %{link}' unsubscribe: Стоп на абонамента view: 'Преглед:' view_profile: Преглед на профила @@ -1601,9 +1600,6 @@ bg: title: Историята на удостоверяване mail_subscriptions: unsubscribe: - action: Да, да се спре абонамента - complete: Спрян абонамент - confirmation_html: Наистина ли искате да спрете абонамента от получаването на %{type} за Mastodon в %{domain} към имейла си при %{email}? Може винаги пак да се абонирате от своите настройки за известяване по е-поща. emails: notification_emails: favourite: е-писма за известия с любими @@ -1611,9 +1607,6 @@ bg: follow_request: е-писма със заявки за следване mention: е-писма с известия за споменаване reblog: е-писма с известия за подсилване - resubscribe_html: Ако погрешка сте спрели абонамента, то може пак да се абонирате от своите настройки за известия по е-поща. - success_html: Повече няма да получавате %{type} за Mastodon на %{domain} към имейла си при %{email}. - title: Спиране на абонамента media_attachments: validations: images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения diff --git a/config/locales/br.yml b/config/locales/br.yml index c1b2906548a154..850d7dc093f68a 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -683,9 +683,6 @@ br: authentication_methods: password: ger-tremen webauthn: alc’hwezioù surentez - mail_subscriptions: - unsubscribe: - action: Ya, digoumanantiñ media_attachments: validations: images_and_video: N'haller stagañ ur video ouzh un embannadur a zo fotoioù gantañ dija diff --git a/config/locales/ca.yml b/config/locales/ca.yml index a7ef2e7c387dc6..6ac65afd6f6826 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1194,7 +1194,6 @@ ca: application_mailer: notification_preferences: Canviar les preferències de correu-e salutation: "%{name}," - settings: 'Canviar les preferències de correu-e: %{link}' unsubscribe: Cancel·la la subscripció view: 'Visualització:' view_profile: Mostra el perfil @@ -1616,9 +1615,6 @@ ca: title: Historial d'autenticació mail_subscriptions: unsubscribe: - action: Sí, canceŀla la subscripció - complete: Subscripció cancel·lada - confirmation_html: Segur que vols donar-te de baixa de rebre %{type} de Mastodon a %{domain} a %{email}? Sempre pots subscriure't de nou des de la configuració de les notificacions per correu electrònic. emails: notification_emails: favourite: notificacions dels favorits per correu electrònic @@ -1626,9 +1622,6 @@ ca: follow_request: correus electrònics de peticions de seguiment mention: correus electrònics de notificacions de mencions reblog: correus electrònics de notificacions d'impulsos - resubscribe_html: Si ets dones de baixa per error pots donar-te d'alta des de la configuració de les notificacions per correu electrònic. - success_html: Ja no rebràs %{type} de Mastodon a %{domain} a %{email}. - title: Cancel·la la subscripció media_attachments: validations: images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 0d324d145382c2..6b2bfd45397b9a 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1267,7 +1267,6 @@ cs: application_mailer: notification_preferences: Změnit předvolby e-mailu salutation: "%{name}," - settings: 'Změnit předvolby e-mailu: %{link}' unsubscribe: Přestat odebírat view: 'Zobrazit:' view_profile: Zobrazit profil @@ -1729,9 +1728,6 @@ cs: title: Historie přihlášení mail_subscriptions: unsubscribe: - action: Ano, odeberte odběr - complete: Odběr byl odhlášen - confirmation_html: Jste si jisti, že chcete odhlásit odběr %{type} pro Mastodon na %{domain} na váš e-mail %{email}? Vždy se můžete znovu přihlásit ve svém nastavení e-mailových oznámení. emails: notification_emails: favourite: e-mailové oznámení při oblíbení @@ -1739,9 +1735,6 @@ cs: follow_request: e-mail při žádost o sledování mention: e-mailové oznámení při zmínění reblog: e-mailové oznámení při boostu - resubscribe_html: Pokud jste se odhlásili omylem, můžete se znovu přihlásit ve svých nastavení e-mailových oznámení. - success_html: Již nebudete dostávat %{type} pro Mastodon na %{domain} na vaši e-mailovou adresu %{email}. - title: Odhlásit odběr media_attachments: validations: images_and_video: K příspěvku, který již obsahuje obrázky, nelze připojit video diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 560bc3e6f3ead8..a81826d7c254ae 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1313,7 +1313,6 @@ cy: application_mailer: notification_preferences: Newid dewisiadau e-bost salutation: "%{name}," - settings: 'Newid dewisiadau e-bost: %{link}' unsubscribe: Dad-danysgrifio view: 'Gweld:' view_profile: Gweld proffil @@ -1817,9 +1816,6 @@ cy: title: Hanes dilysu mail_subscriptions: unsubscribe: - action: Iawn, dad-danysgrifio - complete: Dad-danysgrifiwyd - confirmation_html: Ydych chi'n siŵr eich bod am ddad-danysgrifio rhag derbyn %{type} Mastodon ar %{domain} i'ch e-bost yn %{email}? Gallwch ail-danysgrifio o'ch gosodiadau hysbysu e-bost rhywbryd eto. emails: notification_emails: favourite: e-bost hysbysu hoffi @@ -1827,9 +1823,6 @@ cy: follow_request: e-byst ceisiadau dilyn mention: e-byst hysbysu crybwylliadau reblog: e-byst hysbysiadau hybu - resubscribe_html: Os ydych wedi dad-danysgrifio trwy gamgymeriad, gallwch ail-danysgrifio drwy'ch gosodiadau hysbysu e-bost. - success_html: Ni fyddwch bellach yn derbyn %{type} ar gyfer Mastodon ar %{domain} i'ch e-bost am %{email}. - title: Dad-danysgrifio media_attachments: validations: images_and_video: Methu atodi fideo i bostiad sydd eisoes yn cynnwys delweddau diff --git a/config/locales/da.yml b/config/locales/da.yml index c83750d58c2442..ca3d45aca30886 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1231,7 +1231,6 @@ da: application_mailer: notification_preferences: Skift e-mailpræferencer salutation: "%{name}" - settings: 'Skift e-mailpræferencer: %{link}' unsubscribe: Afmeld notifikationer view: 'Vis:' view_profile: Vis profil @@ -1655,9 +1654,6 @@ da: title: Godkendelseshistorik mail_subscriptions: unsubscribe: - action: Ja, afmeld - complete: Afmeldt - confirmation_html: Er du sikker på, at du vil afmelde modtagelse af %{type} for Mastodon på %{domain} til din e-mail på %{email}? Du kan altid tilmelde dig igen fra dine indstillinger for e-mail-notifikationer. emails: notification_emails: favourite: e-mailnotifikationer om favoritmarkeringer @@ -1665,9 +1661,6 @@ da: follow_request: e-mailnotifikationer om følgeanmodninger mention: e-mailnotifikationer om omtaler reblog: e-mailnotifikationer om fremhævelser - resubscribe_html: Har du afmeldt dig ved en fejl, kan du gentilmelde dig via indstillingerne for e-mail-notifikationer. - success_html: Du vil ikke længere modtage %{type} for Mastodon på %{domain} til din e-mail %{email}. - title: Opsig abonnement media_attachments: validations: images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold diff --git a/config/locales/de.yml b/config/locales/de.yml index 4981257442e109..f95f2f794042c9 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1231,7 +1231,6 @@ de: application_mailer: notification_preferences: E-Mail-Einstellungen ändern salutation: "%{name}," - settings: 'E-Mail-Einstellungen ändern: %{link}' unsubscribe: Abbestellen view: 'Siehe:' view_profile: Profil anzeigen @@ -1655,9 +1654,6 @@ de: title: Anmeldeverlauf mail_subscriptions: unsubscribe: - action: Ja, abbestellen - complete: Abbestellt - confirmation_html: Möchtest du %{type} für Mastodon auf %{domain} an deine E-Mail-Adresse %{email} wirklich abbestellen? Du kannst dies später in den Einstellungen Benachrichtigungen per E-Mail rückgängig machen. emails: notification_emails: favourite: E-Mail-Benachrichtigungen bei Favoriten @@ -1665,9 +1661,6 @@ de: follow_request: E-Mail-Benachrichtigungen bei Follower-Anfragen mention: E-Mail-Benachrichtigungen bei Erwähnungen reblog: E-Mail-Benachrichtigungen bei geteilten Beiträgen - resubscribe_html: Falls du etwas irrtümlich abbestellt hast, kannst du das in den Einstellungen Benachrichtigungen per E-Mail rückgängig machen. - success_html: Du wirst nicht länger %{type} für Mastodon auf %{domain} an deine E-Mail-Adresse %{email} erhalten. - title: Abbestellen media_attachments: validations: images_and_video: Es kann kein Video an einen Beitrag angehängt werden, der bereits Bilder enthält diff --git a/config/locales/el.yml b/config/locales/el.yml index de95a5b7258c5d..5b834356fb4463 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1231,7 +1231,6 @@ el: application_mailer: notification_preferences: Αλλαγή προτιμήσεων email salutation: "%{name}," - settings: 'Αλλαγή προτιμήσεων email: %{link}' unsubscribe: Κατάργηση εγγραφής view: 'Προβολή:' view_profile: Προβολή προφίλ @@ -1655,9 +1654,6 @@ el: title: Ιστορικό ελέγχου ταυτότητας mail_subscriptions: unsubscribe: - action: Ναι, κατάργηση συνδρομής - complete: Η συνδρομή καταργήθηκε - confirmation_html: Σίγουρα θες να καταργήσεις την εγγραφή σου για %{type} για το Mastodon στο %{domain} στο email σου %{email}; Μπορείς πάντα να εγγραφείς ξανά από τις ρυθμίσεις ειδοποιήσεων email. emails: notification_emails: favourite: ειδοποιήσεις email για αγαπημένα @@ -1665,9 +1661,6 @@ el: follow_request: email για αιτήματα ακολούθησης mention: ειδοποιήσεις email για επισημάνσεις reblog: ειδοποιήσεις email για ενίσχυση - resubscribe_html: Αν έχεις καταργήσει την εγγραφή σου κατά λάθος, μπορείς να εγγραφείς εκ νέου από τις ρυθμίσεις ειδοποίησης email. - success_html: Δεν θα λαμβάνεις πλέον %{type} για το Mastodon στο %{domain} στο email σου στο %{email}. - title: Κατάργηση συνδρομής media_attachments: validations: images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 815378fbdd6602..81843c2c4d9ea4 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1229,7 +1229,6 @@ en-GB: application_mailer: notification_preferences: Change email preferences salutation: "%{name}," - settings: 'Change email preferences: %{link}' unsubscribe: Unsubscribe view: 'View:' view_profile: View profile @@ -1651,9 +1650,6 @@ en-GB: title: Authentication history mail_subscriptions: unsubscribe: - action: Yes, unsubscribe - complete: Unsubscribed - confirmation_html: Are you sure you want to unsubscribe from receiving %{type} for Mastodon on %{domain} to your email at %{email}? You can always re-subscribe from your email notification settings. emails: notification_emails: favourite: favourite notification emails @@ -1661,9 +1657,6 @@ en-GB: follow_request: follow request emails mention: mention notification emails reblog: boost notification emails - resubscribe_html: If you've unsubscribed by mistake, you can re-subscribe from your email notification settings. - success_html: You'll no longer receive %{type} for Mastodon on %{domain} to your email at %{email}. - title: Unsubscribe media_attachments: validations: images_and_video: Cannot attach a video to a post that already contains images diff --git a/config/locales/en.yml b/config/locales/en.yml index a745021dc13d41..97c4809aa3ef61 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -762,6 +762,7 @@ en: categories: administration: Administration devops: DevOps + email: Email invites: Invites moderation: Moderation special: Special @@ -790,6 +791,8 @@ en: manage_blocks_description: Allows users to block email providers and IP addresses manage_custom_emojis: Manage Custom Emojis manage_custom_emojis_description: Allows users to manage custom emojis on the server + manage_email_subscriptions: Manage Email Subscriptions + manage_email_subscriptions_description: Allow users to subscribe to users with this permission by email manage_federation: Manage Federation manage_federation_description: Allows users to block or allow federation with other domains, and control deliverability manage_invites: Manage Invites @@ -1231,7 +1234,6 @@ en: application_mailer: notification_preferences: Change email preferences salutation: "%{name}," - settings: 'Change email preferences: %{link}' unsubscribe: Unsubscribe view: 'View:' view_profile: View profile @@ -1419,6 +1421,38 @@ en: basic_information: Basic information hint_html: "Customize what people see on your public profile and next to your posts. Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture." other: Other + email_subscription_mailer: + confirmation: + action: Confirm email address + instructions_to_confirm: Confirm you'd like to receive emails from %{name} (@%{acct}) when they publish new posts. + instructions_to_ignore: If you're not sure why you received this email, you can delete it. You will not be subscribed if you don't click on the link above. + subject: Confirm your email address + title: Get email updates from %{name}? + notification: + create_account: Create a Mastodon account + footer: + privacy_html: Emails are sent from %{domain}, a server powered by Mastodon. To understand how this server processes your personal data, refer to the Privacy Policy. + reason_for_email_html: You're receiving this email because you opted into email updates from %{name}. Don't want to receive these emails? Unsubscribe + interact_with_this_post: + one: Interact with this post and discover more like it. + other: Interact with these posts and discover more. + subject: + one: 'New post: "%{excerpt}"' + other: New posts from %{name} + title: + one: 'New post: "%{excerpt}"' + other: New posts from %{name} + email_subscriptions: + active: Active + confirmations: + show: + changed_your_mind: Changed your mind? + success_html: You'll now start receiving emails when %{name} publishes new posts. Add %{sender} to your contacts so these posts don't end up in your Spam folder. + title: You're signed up + unsubscribe: Unsubscribe + inactive: Inactive + status: Status + subscribers: Subscribers emoji_styles: auto: Auto native: Native @@ -1653,21 +1687,6 @@ en: failed_sign_in_html: Failed sign-in attempt with %{method} from %{ip} (%{browser}) successful_sign_in_html: Successful sign-in with %{method} from %{ip} (%{browser}) title: Authentication history - mail_subscriptions: - unsubscribe: - action: Yes, unsubscribe - complete: Unsubscribed - confirmation_html: Are you sure you want to unsubscribe from receiving %{type} for Mastodon on %{domain} to your email at %{email}? You can always re-subscribe from your email notification settings. - emails: - notification_emails: - favourite: favorite notification emails - follow: follow notification emails - follow_request: follow request emails - mention: mention notification emails - reblog: boost notification emails - resubscribe_html: If you've unsubscribed by mistake, you can re-subscribe from your email notification settings. - success_html: You'll no longer receive %{type} for Mastodon on %{domain} to your email at %{email}. - title: Unsubscribe media_attachments: validations: images_and_video: Cannot attach a video to a post that already contains images @@ -1806,6 +1825,8 @@ en: posting_defaults: Posting defaults public_timelines: Public timelines privacy: + email_subscriptions: Send posts via email + email_subscriptions_hint_html: Add an email sign-up form to your profile that appears for logged-out users. When visitors enter their email address and opt in, Mastodon will send email updates for your public posts. hint_html: "Customize how you want your profile and your posts to be found. A variety of features in Mastodon can help you reach a wider audience when enabled. Take a moment to review these settings to make sure they fit your use case." privacy: Privacy privacy_hint_html: Control how much you want to disclose for the benefit of others. People discover interesting profiles and cool apps by browsing other people's follows and seeing which apps they post from, but you may prefer to keep it hidden. @@ -2069,6 +2090,28 @@ en: resume_app_authorization: Resume application authorization role_requirement: "%{domain} requires you to set up Two-Factor Authentication before you can use Mastodon." webauthn: Security keys + unsubscriptions: + create: + action: Go to server homepage + email_subscription: + confirmation_html: You'll no longer receive emails from %{name}. + title: You are unsubscribed + user: + confirmation_html: You'll no longer receive %{type} from Mastodon on %{domain}. + notification_emails: + favourite: favorite notification emails + follow: follow notification emails + follow_request: follow request emails + mention: mention notification emails + reblog: boost notification emails + show: + action: Unsubscribe + email_subscription: + confirmation_html: You'll stop receiving emails when this account publishes new posts. + title: Unsubscribe from %{name}? + user: + confirmation_html: You'll stop receiving %{type} from Mastodon on %{domain}. + title: Unsubscribe from %{type}? user_mailer: announcement_published: description: 'The administrators of %{domain} are making an announcement:' diff --git a/config/locales/eo.yml b/config/locales/eo.yml index de46b0a7be197c..d9712beb53c4d8 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1182,7 +1182,6 @@ eo: application_mailer: notification_preferences: Ŝanĝi retpoŝtajn preferojn salutation: "%{name}," - settings: 'Ŝanĝi retpoŝtajn preferojn: %{link}' unsubscribe: Malabonu view: 'Vidi:' view_profile: Vidi profilon @@ -1592,9 +1591,6 @@ eo: title: Aŭtentiga historio mail_subscriptions: unsubscribe: - action: Jes, malabonu - complete: Malabonita - confirmation_html: Ĉu vi certas, ke vi volas malaboni je ricevi %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}? Vi ĉiam povas reaboni de viaj retpoŝtaj sciigaj agordoj. emails: notification_emails: favourite: sciigoj retpoŝtaj de ŝatataj @@ -1602,9 +1598,6 @@ eo: follow_request: retpoŝtajn petoj de sekvado mention: sciigoj retpoŝtaj de mencioj reblog: sciigoj retpoŝtaj de diskonigoj - resubscribe_html: Se vi malabonis erare, vi povas reaboni de viaj retpoŝtaj sciigaj agordoj. - success_html: Vi ne plu ricevos %{type} por Mastodon ĉe %{domain} al via retpoŝto ĉe %{email}. - title: Malaboni media_attachments: validations: images_and_video: Aldoni videon al mesaĝo, kiu jam havas bildojn ne eblas diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index e4c8e85622c4e0..248c3db979b566 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1231,7 +1231,6 @@ es-AR: application_mailer: notification_preferences: Cambiar configuración de correo electrónico salutation: "%{name}:" - settings: 'Cambiar configuración de correo electrónico: %{link}' unsubscribe: Desuscribirse view: 'Visitá:' view_profile: Ver perfil @@ -1655,9 +1654,6 @@ es-AR: title: Historial de autenticación mail_subscriptions: unsubscribe: - action: Sí, desuscribir - complete: Desuscripto - confirmation_html: ¿Estás seguro que querés dejar de recibir %{type} de Mastodon en %{domain} a tu correo electrónico %{email}? Siempre podrás volver a suscribirte desde la configuración de notificaciones por correo electrónico.. emails: notification_emails: favourite: notificaciones de favoritos por correo electrónico @@ -1665,9 +1661,6 @@ es-AR: follow_request: notificaciones de solicitudes de seguimiento por correo electrónico mention: notificaciones de menciones por correo electrónico reblog: notificaciones de adhesiones por correo electrónico - resubscribe_html: Si te desuscribiste por error, podés resuscribirte desde la configuración de notificaciones por correo electrónico. - success_html: Ya no recibirás %{type} de mastodon en %{domain} a tu correo electrónico %{email}. - title: Desuscribirse media_attachments: validations: images_and_video: No se puede adjuntar un video a un mensaje que ya contenga imágenes diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 44677285a7f383..48e19919f0b71a 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1231,7 +1231,6 @@ es-MX: application_mailer: notification_preferences: Cambiar preferencias de correo electrónico salutation: "%{name}:" - settings: 'Cambiar preferencias de correo: %{link}' unsubscribe: Cancelar suscripción view: 'Vista:' view_profile: Ver perfil @@ -1655,9 +1654,6 @@ es-MX: title: Historial de autenticación mail_subscriptions: unsubscribe: - action: Sí, darse de baja - complete: Has cancelado tu suscripción - confirmation_html: ¿Estás seguro de que quieres dejar de recibir %{type} de Mastodon en %{domain} a tu correo %{email}? Siempre podrás volver a suscribirte de nuevo desde los ajustes de notificación por correo. emails: notification_emails: favourite: correos de notificación de favoritos @@ -1665,9 +1661,6 @@ es-MX: follow_request: correos electrónicos de solicitud de seguimiento mention: correos de notificación de menciones reblog: correos de notificación de impulsos - resubscribe_html: Si te has dado de baja por error, puedes volver a darte de alta desde tus ajustes de notificaciones por correo. - success_html: Ya no recibirás %{type} de Mastodon en %{domain} a tu correo %{email}. - title: Cancelar suscripción media_attachments: validations: images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes diff --git a/config/locales/es.yml b/config/locales/es.yml index c7de4346734838..15c7d44ba5e431 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1231,7 +1231,6 @@ es: application_mailer: notification_preferences: Cambiar preferencias de correo electrónico salutation: "%{name}:" - settings: 'Cambiar preferencias de correo: %{link}' unsubscribe: Cancelar suscripción view: 'Vista:' view_profile: Ver perfil @@ -1655,9 +1654,6 @@ es: title: Historial de autenticación mail_subscriptions: unsubscribe: - action: Sí, cancelar suscripción - complete: Has cancelado tu suscripción - confirmation_html: ¿Estás seguro de que quieres dejar de recibir %{type} de Mastodon en %{domain} a tu correo %{email}? Siempre podrás volver a suscribirte de nuevo desde los ajustes de notificación por correo. emails: notification_emails: favourite: correos de notificación de favoritos @@ -1665,9 +1661,6 @@ es: follow_request: correos de notificación de solicitud de seguidor mention: correos de notificación de menciones reblog: correos de notificación de impulsos - resubscribe_html: Si te has dado de baja por error, puedes volver a darte de alta desde tus ajustes de notificaciones por correo. - success_html: Ya no recibirás %{type} de Mastodon en %{domain} a tu correo %{email}. - title: Cancelar suscripición media_attachments: validations: images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes diff --git a/config/locales/et.yml b/config/locales/et.yml index ddd0572cfc15e2..91b227b5aaffb0 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1214,7 +1214,6 @@ et: application_mailer: notification_preferences: Muuda e-posti eelistusi salutation: "%{name}!" - settings: 'Muuda e-posti eelistusi: %{link}' unsubscribe: Loobu tellimisest view: 'Vaade:' view_profile: Vaata profiili @@ -1636,9 +1635,6 @@ et: title: Autentimise ajalugu mail_subscriptions: unsubscribe: - action: Jah, lõpeta tellimine - complete: Tellimine lõpetatud - confirmation_html: Kas oled kindel, et soovid loobuda %{type} tellimisest oma e-postiaadressile %{email} Mastodonist kohas %{domain}? Saad alati uuesti tellida oma e-posti teavituste seadetest. emails: notification_emails: favourite: lemmikuks märkimise teavituskirjade @@ -1646,9 +1642,6 @@ et: follow_request: jälgimistaotluste teavituskirjade mention: mainimiste teavituskirjade reblog: jagamiste teavituskirjade - resubscribe_html: Kui loobusid tellimisest ekslikult, saad uuesti tellida oma e-posti teavituste seadetest. - success_html: Sa ei saa enam %{type} teateid oma e-postile %{email} Mastodonist kohas %{domain}. - title: Loobu tellimisest media_attachments: validations: images_and_video: Ei saa lisada video postitusele, milles on juba pildid diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 0102508797ac6e..41a6d578955729 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1171,7 +1171,6 @@ eu: application_mailer: notification_preferences: Posta elektronikoaren lehentasunak aldatu salutation: "%{name}," - settings: 'Posta elektronikoaren lehentasunak aldatu: %{link}' unsubscribe: Kendu harpidetza view: 'Ikusi:' view_profile: Ikusi profila @@ -1538,11 +1537,6 @@ eu: title: Autentifikazioen historia mail_subscriptions: unsubscribe: - action: Bai, kendu harpidetza - complete: Harpidetza kenduta - confirmation_html: |- - Ziur Mastodonen %{domain} zerbitzariko %{type} %{email} helbide elektronikoan jasotzeari utzi nahi diozula? - Beti harpidetu zaitezke berriro eposta jakinarazpenen hobespenetan. emails: notification_emails: favourite: zure argitalpena gogoko egin dutenaren jakinarazpen e-mailak @@ -1550,9 +1544,6 @@ eu: follow_request: jarraipen-eskaeren jakinarazpen e-mailak mention: aipamenen jakinarazpen e-mailak reblog: bultzaden jakinarazpen e-mailak - resubscribe_html: Nahi gabe utzi badiozu jakinarazpenak jasotzeari, berriro harpidetu zaitezke e-mail jakinarazpenen hobespenetan. - success_html: Ez duzu Mastodonen %{domain} zerbitzariko %{type} jasoko %{email} helbide elektronikoan. - title: Kendu harpidetza media_attachments: validations: images_and_video: Ezin da irudiak dituen bidalketa batean bideo bat erantsi diff --git a/config/locales/fa.yml b/config/locales/fa.yml index b166d1f3049a2e..1fd310cb8f086d 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1210,7 +1210,6 @@ fa: application_mailer: notification_preferences: تغییر ترجیحات رایانامه salutation: "%{name}،" - settings: 'تغییر ترجیحات رایانامه: %{link}' unsubscribe: لغو اشتراک view: 'نمایش:' view_profile: دیدن نمایه @@ -1632,9 +1631,6 @@ fa: title: تاریخچهٔ تأیید هویت mail_subscriptions: unsubscribe: - action: بله. لغو اشتراک - complete: لغو اشتراک شد - confirmation_html: مطمئنید که می‌خواهید اشتراک %{type} را از ماستودون روی %{domain} برای رایانامهٔ %{email} لغو کنید؟ همواره می‌توانید از تنظیمات آگاهی رایانامه‌ای دوباره مشترک شوید. emails: notification_emails: favourite: رایانامه‌های آگاهی برگزیدن @@ -1642,9 +1638,6 @@ fa: follow_request: رایانامه‌های درخواست پی‌گیری mention: رایانامه‌های آگاهی اشاره reblog: رایانامه‌های آگاهی تقویت - resubscribe_html: اگر اشتراک را اشتباهی لغو کردید می‌توانید از تنظیمات آگاهی رایانامه‌ای دوباره مشترک شوید. - success_html: دیگر %{type} را از ماستودون روی %{domain} برای رایانامهٔ %{email} نخواهید گرفت. - title: لغو اشتراک media_attachments: validations: images_and_video: نمی‌توان برای نوشته‌ای که تصویر دارد ویدیو بارگذاری کرد diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 77d938b6b7d851..782d59c31567e7 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1231,7 +1231,6 @@ fi: application_mailer: notification_preferences: Muuta sähköpostiasetuksia salutation: "%{name}" - settings: 'Muuta sähköpostiasetuksia: %{link}' unsubscribe: Lopeta tilaus view: 'Näytä:' view_profile: Näytä profiili @@ -1655,9 +1654,6 @@ fi: title: Todennushistoria mail_subscriptions: unsubscribe: - action: Kyllä, peru tilaus - complete: Tilaus lopetettiin - confirmation_html: Haluatko varmasti lopettaa Mastodonin sähköposti-ilmoitusten vastaanottamisen aiheesta %{type} palvelimelta %{domain} osoitteeseesi %{email}? Voit tilata ilmoitusviestejä milloin tahansa uudelleen sähköposti-ilmoitusten asetuksista. emails: notification_emails: favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä @@ -1665,9 +1661,6 @@ fi: follow_request: sähköposti-ilmoituksia seurantapyynnöistä mention: sähköposti-ilmoituksia maininnoista reblog: sähköposti-ilmoituksia tehostuksista - resubscribe_html: Jos olet perunut tilauksen erehdyksessä, voit tilata ilmoitusviestejä uudelleen sähköposti-ilmoitusten asetuksista. - success_html: Sinulle ei enää lähetetä Mastodonin %{type} palvelimelta %{domain} osoitteeseen %{email}. - title: Lopeta tilaus media_attachments: validations: images_and_video: Videota ei voi liittää tilapäivitykseen, jossa on jo kuvia diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 36b2dc5c684334..49e768f4a3cbd7 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1229,7 +1229,6 @@ fo: application_mailer: notification_preferences: Broyt teldupostastillingar salutation: "%{name}" - settings: 'Broyt teldupostastillingar: %{link}' unsubscribe: Strika hald view: 'Vís:' view_profile: Vís vanga @@ -1651,9 +1650,6 @@ fo: title: Samgildissøga mail_subscriptions: unsubscribe: - action: Ja, strika hald - complete: Hald strikað - confirmation_html: Ert tú vís/ur í, at tú vil gevast at móttaka %{type} fyri Mastodon á %{domain} til tína teldupostadressu á %{email}? Tú kanst altíð gera haldið virkið aftur frá tínum teldupostfráboðanarstillingum. emails: notification_emails: favourite: yndisfráboðanarteldupostar @@ -1661,9 +1657,6 @@ fo: follow_request: fylg umbønir um teldupost mention: nevn fráboðanarteldupostar reblog: framhevja fráboðanarpostar - resubscribe_html: Um tú hevur strikað haldið av misgávum, so kanst tú tekna haldið av nýggjum í tínum teldupostfráboðarstillingum. - success_html: Tú fer ikki longur at móttaka %{type} fyri Mastodon á %{domain} til tín teldupost á %{email}. - title: Strika hald media_attachments: validations: images_and_video: Kann ikki viðfesta sjónfílu til ein post, sum longu inniheldur myndir diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index 14e7e5a3d87940..dca8edc5819d81 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1234,7 +1234,6 @@ fr-CA: application_mailer: notification_preferences: Modification des préférences de la messagerie salutation: "%{name}," - settings: 'Modifier les préférences de la messagerie : %{link}' unsubscribe: Se désabonner view: 'Voir :' view_profile: Voir le profil @@ -1658,9 +1657,6 @@ fr-CA: title: Historique d'authentification mail_subscriptions: unsubscribe: - action: Oui, me désabonner - complete: Désabonné·e - confirmation_html: Êtes-vous sûr de vouloir vous désabonner de la réception de %{type} pour Mastodon sur %{domain} à votre adresse e-mail %{email} ? Vous pouvez toujours vous réabonner à partir de vos paramètres de notification par messagerie. emails: notification_emails: favourite: e-mails de notifications de favoris @@ -1668,9 +1664,6 @@ fr-CA: follow_request: e-mails de demandes d’abonnements mention: e-mails de notifications de mentions reblog: e-mails de notifications de partages - resubscribe_html: Si vous vous êtes désinscrit par erreur, vous pouvez vous réinscrire à partir de vos paramètres de notification par e-mail. - success_html: Vous ne recevrez plus de %{type} pour Mastodon sur %{domain} à votre adresse e-mail à %{email}. - title: Se désabonner media_attachments: validations: images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 3407c4515b9a6f..7b7968b7cef5c6 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1234,7 +1234,6 @@ fr: application_mailer: notification_preferences: Modification des préférences de la messagerie salutation: "%{name}," - settings: 'Modifier les préférences de la messagerie : %{link}' unsubscribe: Se désabonner view: 'Voir :' view_profile: Voir le profil @@ -1658,9 +1657,6 @@ fr: title: Historique d'authentification mail_subscriptions: unsubscribe: - action: Oui, se désinscrire - complete: Désinscrit - confirmation_html: Êtes-vous sûr de vouloir vous désabonner de la réception de %{type} pour Mastodon sur %{domain} à votre adresse e-mail %{email} ? Vous pouvez toujours vous réabonner à partir de vos paramètres de notification par messagerie. emails: notification_emails: favourite: e-mails de notifications de favoris @@ -1668,9 +1664,6 @@ fr: follow_request: e-mails de demandes d’abonnements mention: e-mails de notifications de mentions reblog: e-mails de notifications de partages - resubscribe_html: Si vous vous êtes désinscrit par erreur, vous pouvez vous réinscrire à partir de vos paramètres de notification par e-mail. - success_html: Vous ne recevrez plus de %{type} pour Mastodon sur %{domain} à votre adresse e-mail à %{email}. - title: Se désinscrire media_attachments: validations: images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images diff --git a/config/locales/fy.yml b/config/locales/fy.yml index 4959b1adaa4891..c017132e751b32 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1189,7 +1189,6 @@ fy: application_mailer: notification_preferences: E-mailynstellingen wizigje salutation: "%{name}," - settings: 'E-mailfoarkarren wizigje: %{link}' unsubscribe: Ofmelde view: 'Besjoch:' view_profile: Profyl besjen @@ -1597,9 +1596,6 @@ fy: title: Oanmeldskiednis mail_subscriptions: unsubscribe: - action: Ja, ôfmelde - complete: Ofmelden - confirmation_html: Binne jo wis dat jo jo ôfmelde wolle foar it ûntfangen fan %{type} fan Mastodon op %{domain} op jo e-mailadres %{email}? Jo kinne jo altyd opnij abonnearje yn jo ynstellingen foar e-mailmeldingen. emails: notification_emails: favourite: e-mailmeldingen foar favoriten @@ -1607,9 +1603,6 @@ fy: follow_request: e-mailmeldingen foar folchfersiken mention: e-mailmeldingen foar fermeldingen reblog: e-mailmeldingen foar boosts - resubscribe_html: As jo jo mei fersin ôfmeld hawwe, kinne jo jo opnij abonnearje yn jo ynstellingen foar e-mailmeldingen. - success_html: Jo ûntfange net langer %{type} fan Mastodon op %{domain} op jo e-mailadres %{email}. - title: Ofmelde media_attachments: validations: images_and_video: In fideo kin net oan in berjocht mei ôfbyldingen keppele wurde diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 1295a4efc52b1b..d75af425269bfd 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1296,7 +1296,6 @@ ga: application_mailer: notification_preferences: Athraigh roghanna ríomhphoist salutation: "%{name}," - settings: 'Athraigh sainroghanna ríomhphoist: %{link}' unsubscribe: Díliostáil view: 'Amharc:' view_profile: Féach ar phróifíl @@ -1780,9 +1779,6 @@ ga: title: Stair fíordheimhnithe mail_subscriptions: unsubscribe: - action: Sea, díliostáil - complete: Gan liostáil - confirmation_html: An bhfuil tú cinnte gur mhaith leat díliostáil ó %{type} a fháil do Mastodon ar %{domain} chuig do ríomhphost ag %{email}? Is féidir leat liostáil arís i gcónaí ó do socruithe fógra ríomhphoist. emails: notification_emails: favourite: ríomhphoist fógra is fearr leat @@ -1790,9 +1786,6 @@ ga: follow_request: lean ríomhphoist iarratais mention: trácht ar ríomhphoist fógra reblog: ríomhphoist fógraí a threisiú - resubscribe_html: Má dhíliostáil tú de dhearmad, is féidir leat liostáil arís ó do socruithe fógra ríomhphoist. - success_html: Ní bhfaighidh tú %{type} le haghaidh Mastodon ar %{domain} chuig do ríomhphost ag %{email} a thuilleadh. - title: Díliostáil media_attachments: validations: images_and_video: Ní féidir físeán a cheangal le postáil a bhfuil íomhánna ann cheana féin diff --git a/config/locales/gd.yml b/config/locales/gd.yml index c619e7818bc0e4..fc11600ca40565 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1248,7 +1248,6 @@ gd: application_mailer: notification_preferences: Atharraich roghainnean a’ phuist-d salutation: "%{name}," - settings: 'Atharraich roghainnean a’ phuist-d: %{link}' unsubscribe: Cuir crìoch air an fho-sgrìobhadh view: 'Faic:' view_profile: Seall a’ phròifil @@ -1710,9 +1709,6 @@ gd: title: Eachdraidh an dearbhaidh mail_subscriptions: unsubscribe: - action: Tha, cuir crìoch air an fho-sgrìobhadh - complete: Chaidh crìoch a chur air an fho-sgrìobhadh - confirmation_html: A bheil thu cinnteach nach eil thu airson %{type} fhaighinn tuilleadh o Mhastodon air %{domain} dhan post-d agad aig %{email}? ’S urrainn dhut fo-sgrìobhadh a-rithist uair sam bith o roghainnean a’ puist-d agad. emails: notification_emails: favourite: puist-d le brathan mu annsachdan @@ -1720,9 +1716,6 @@ gd: follow_request: puist-d le brathan mu iarrtasan leantainn mention: puist-d le brathan mu iomraidhean reblog: puist-d le brathan mu bhrosnachaidhean - resubscribe_html: Ma chuir thu crìoch air an fho-sgrìobhadh le mearachd, ’s urrainn dhut fo-sgrìobhadh a-rithist o roghainnean a’ puist-d agad. - success_html: Chan fhaigh thu %{type} o Mhastodon air %{domain} dhan phost-d agad aig %{email} tuilleadh. - title: Cuir crìoch air an fho-sgrìobhadh media_attachments: validations: images_and_video: Chan urrainn dhut video a cheangal ri post sa bheil dealbh mu thràth diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 469f7badd70c8a..307029de98fb20 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1231,7 +1231,6 @@ gl: application_mailer: notification_preferences: Cambiar preferencias de correo salutation: "%{name}," - settings: 'Cambiar preferencias de correo: %{link}' unsubscribe: Anular subscrición view: 'Vista:' view_profile: Ver perfil @@ -1655,9 +1654,6 @@ gl: title: Historial de autenticación mail_subscriptions: unsubscribe: - action: Si, retirar subscrición - complete: Subscrición anulada - confirmation_html: Tes a certeza de querer retirar a subscrición a Mastodon en %{domain} para recibir %{type} no teu correo electrónico en %{email}? Poderás volver a subscribirte desde os axustes de notificacións por correo. emails: notification_emails: favourite: notificacións de favorecidas @@ -1665,9 +1661,6 @@ gl: follow_request: notificacións de solicitudes de seguimento mention: notificacións de mencións reblog: notificacións de promocións - resubscribe_html: Se por un erro eliminaches a subscrición, podes volver a subscribirte desde os axustes de notificacións por correo electrónico. - success_html: Non vas recibir %{type} de Mastodon en %{domain} no enderezo %{email}. - title: Anular subscrición media_attachments: validations: images_and_video: Non podes anexar un vídeo a unha publicación que xa contén imaxes diff --git a/config/locales/he.yml b/config/locales/he.yml index d18d44689da282..2fe1446b4e953e 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1273,7 +1273,6 @@ he: application_mailer: notification_preferences: שינוי העדפות דוא"ל salutation: "%{name}," - settings: 'שינוי הגדרות דוא"ל: %{link}' unsubscribe: בטל מנוי view: 'תצוגה:' view_profile: צפיה בפרופיל @@ -1737,9 +1736,6 @@ he: title: הסטוריית אימותים mail_subscriptions: unsubscribe: - action: כן, לבטל הרשמה - complete: הפסקת הרשמה - confirmation_html: יש לאשר את ביטול ההרשמה להודעות %{type} ממסטודון בשרת %{domain} לכתובת הדואל %{email}. תמיד אפשר להרשם מחדש בכיוונוני הודעות דואל. emails: notification_emails: favourite: הודעות דואל לגבי חיבובים @@ -1747,9 +1743,6 @@ he: follow_request: הודעות דואל לגבי בקשות מעקב mention: הודעות דואל לגבי איזכורים reblog: הודעות דואל לגבי הידהודים - resubscribe_html: אם ביטול ההרשמה היה בטעות, ניתן להרשם מחדש מתוך מסך הגדרות ההרשמה שלך. - success_html: לא יגיעו אליך יותר הודעות %{type} משרת מסטודון %{domain} לכתובת הדואל %{email}. - title: הפסקת הרשמה media_attachments: validations: images_and_video: לא ניתן להוסיף וידאו להודעה שכבר מכילה תמונות diff --git a/config/locales/hu.yml b/config/locales/hu.yml index f8cbce5cc3683b..921f05f2b8a133 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1231,7 +1231,6 @@ hu: application_mailer: notification_preferences: E-mail-beállítások módosítása salutation: "%{name}!" - settings: 'E-mail-beállítások módosítása: %{link}' unsubscribe: Leiratkozás view: 'Megtekintés:' view_profile: Profil megtekintése @@ -1655,9 +1654,6 @@ hu: title: Hitelesítési történet mail_subscriptions: unsubscribe: - action: Igen, leiratkozás - complete: Leiratkozva - confirmation_html: 'Biztos, hogy leiratkozol arról, hogy %{type} típusú üzeneteket kapj a(z) %{domain} Mastodon-kiszolgálótól erre a címedre: %{email}? Bármikor újra feliratkozhatsz az e-mail-értesítési beállításokban.' emails: notification_emails: favourite: kedvencnek jelölés értesítő e-mailjei @@ -1665,9 +1661,6 @@ hu: follow_request: követési kérések e-mailjei mention: megemlítés értesítő e-mailjei reblog: megtolás értesítő e-mailjei - resubscribe_html: Ha tévedésből iratkoztál le, újra feliratkozhatsz az e-mail-értesítési beállításoknál. - success_html: 'Mostantól nem kapsz %{type} típusú üzeneket a(z) %{domain} Mastodon-kiszolgálón erre a címedre: %{email}.' - title: Leiratkozás media_attachments: validations: images_and_video: Nem csatolhatsz videót olyan bejegyzéshez, amelyhez már csatoltál képet diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 3fea1ed91cf258..f090d524692848 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -1207,7 +1207,6 @@ ia: application_mailer: notification_preferences: Cambiar preferentias de e-mail salutation: "%{name}," - settings: 'Cambiar preferentias de e-mail: %{link}' unsubscribe: Cancellar subscription view: 'Visita:' view_profile: Vider profilo @@ -1622,9 +1621,6 @@ ia: title: Historia de authentication mail_subscriptions: unsubscribe: - action: Si, cancellar subscription - complete: Desubscribite - confirmation_html: Es tu secur de voler cancellar le subscription al %{type} de Mastodon sur %{domain} pro tu adresse de e-mail %{email}? Tu pote sempre resubscriber te a partir del parametros de notification in e-mail. emails: notification_emails: favourite: notificationes de favorites in e-mail @@ -1632,9 +1628,6 @@ ia: follow_request: requestas de sequimento in e-mail mention: notificationes de mentiones in e-mail reblog: notificationes de impulsos in e-mail - resubscribe_html: Si tu ha cancellate le subscription in error, tu pote resubscriber te a partir del parametros de notification in e-mail. - success_html: Tu non recipera plus %{type} pro Mastodon sur %{domain} a tu adresse de e-mail %{email}. - title: Desubcriber media_attachments: validations: images_and_video: Impossibile annexar un video a un message que jam contine imagines diff --git a/config/locales/ie.yml b/config/locales/ie.yml index 157650444489de..b28cbbb70beffe 100644 --- a/config/locales/ie.yml +++ b/config/locales/ie.yml @@ -1328,11 +1328,6 @@ ie: failed_sign_in_html: Fallit prova de apertion de session per %{method} de %{ip} (%{browser}) successful_sign_in_html: Successosi apertion de session per %{method} de %{ip} (%{browser}) title: Historie de autentication - mail_subscriptions: - unsubscribe: - action: Yes, desabonnar - complete: Desabonnat - title: Desabonnar media_attachments: validations: images_and_video: On ne posse atachar un video a un posta quel ja contene images diff --git a/config/locales/io.yml b/config/locales/io.yml index 58ae0f015d24e0..85aa06234acdc8 100644 --- a/config/locales/io.yml +++ b/config/locales/io.yml @@ -1104,7 +1104,6 @@ io: application_mailer: notification_preferences: Chanjar retpostopreferaji salutation: "%{name}," - settings: 'Chanjar retpostopreferaji: %{link}' unsubscribe: Desabonez view: 'Vidar:' view_profile: Videz profilo @@ -1461,11 +1460,6 @@ io: failed_sign_in_html: Falita enirprob per %{method} de %{ip} (%{browser}) successful_sign_in_html: Sucesoza eniro per %{method} de %{ip} (%{browser}) title: Yurizeshistorio - mail_subscriptions: - unsubscribe: - action: Yes, desabonez - complete: Desabonita - title: Desabonez media_attachments: validations: images_and_video: Ne povas addonar video ad afisho qua ja enhavas imaji diff --git a/config/locales/is.yml b/config/locales/is.yml index 1ea18a39d4ba16..77a4feb5125caf 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1233,7 +1233,6 @@ is: application_mailer: notification_preferences: Breyta kjörstillingum tölvupósts salutation: "%{name}," - settings: 'Breyta kjörstillingum tölvupósts: %{link}' unsubscribe: Taka úr áskrift view: 'Skoða:' view_profile: Skoða notandasnið @@ -1659,9 +1658,6 @@ is: title: Auðkenningarferill mail_subscriptions: unsubscribe: - action: Já, hætta í áskrift - complete: Hætta í áskrift - confirmation_html: Ertu viss um að þú viljir hætta áskrift sendinga á %{type} fyrir Mastodon á %{domain} til póstfangsins þíns %{email}? Þú getur alltaf aftur gerst áskrifandi í stillingunum fyrir tilkynningar í tölvupósti. emails: notification_emails: favourite: tilkynningum í tölvupósti um eftirlæti @@ -1669,9 +1665,6 @@ is: follow_request: tilkynningum í tölvupósti um beiðnir um að fylgjast með mention: tilkynningum í tölvupósti um tilvísanir reblog: tilkynningum í tölvupósti um endurbirtingar - resubscribe_html: Ef þú hættir áskrift fyrir mistök, geturðu alltaf aftur gerst áskrifandi í stillingunum fyrir tilkynningar í tölvupósti. - success_html: Þú munt ekki lengur fá sendingar með %{type} fyrir Mastodon á %{domain} á póstfangið þitt %{email}. - title: Taka úr áskrift media_attachments: validations: images_and_video: Ekki er hægt að hengja myndskeið við færslu sem þegar inniheldur myndir diff --git a/config/locales/it.yml b/config/locales/it.yml index e01bed8b978a2f..ed80d9b37774ae 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1231,7 +1231,6 @@ it: application_mailer: notification_preferences: Modifica le preferenze e-mail salutation: "%{name}," - settings: 'Modifica le preferenze e-mail: %{link}' unsubscribe: Disiscriviti view: 'Guarda:' view_profile: Mostra profilo @@ -1655,9 +1654,6 @@ it: title: Cronologia delle autenticazioni mail_subscriptions: unsubscribe: - action: Sì, annulla l'iscrizione - complete: Iscrizione annullata - confirmation_html: Si è sicuri di voler annullare l'iscrizione per non ricevere %{type} per Mastodon su %{domain} sulla tua e-mail %{email}? Puoi sempre reiscriverti dalle tue impostazioni di notifica e-mail. emails: notification_emails: favourite: e-mail di notifica preferite @@ -1665,9 +1661,6 @@ it: follow_request: segui le e-mail di richiesta mention: menziona le e-mail di notifica reblog: e-mail di notifica per le condivisioni - resubscribe_html: Se hai annullato l'iscrizione per errore, puoi reiscriverti tramite le impostazioni di notifica e-mail. - success_html: Non riceverai più %{type} per Mastodon su %{domain} al tuo indirizzo e-mail %{email}. - title: Disiscriviti media_attachments: validations: images_and_video: Impossibile allegare video a un post che contiene già immagini diff --git a/config/locales/ja.yml b/config/locales/ja.yml index b1e2fdbef70807..df8967eebeb6e1 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1169,7 +1169,6 @@ ja: application_mailer: notification_preferences: メール設定の変更 salutation: "%{name}さん" - settings: 'メール設定の変更: %{link}' unsubscribe: 購読解除 view: 'リンク:' view_profile: プロフィールを表示 @@ -1560,9 +1559,6 @@ ja: title: 認証履歴 mail_subscriptions: unsubscribe: - action: 購読を解除する - complete: 購読を解除しました - confirmation_html: Mastodon (%{domain}) による %{email} 宛の「%{type}」の配信を停止します。再度必要になった場合はメール通知の設定からいつでも再開できます。 emails: notification_emails: favourite: お気に入りの通知メール @@ -1570,9 +1566,6 @@ ja: follow_request: フォローリクエストの通知メール mention: 返信の通知メール reblog: ブーストの通知メール - resubscribe_html: 誤って解除した場合はメール通知の設定から再購読できます。 - success_html: Mastodon (%{domain}) から %{email} への「%{type}」の配信が停止されました。 - title: 購読の解除 media_attachments: validations: images_and_video: 既に画像が追加されているため、動画を追加することはできません diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 35bffc281019d1..93dc72865cf899 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -567,7 +567,6 @@ kab: application_mailer: notification_preferences: Snifel imenyafen n imayl salutation: "%{name}," - settings: 'Snifel imenyafen n imayl: %{link}' view: 'Ẓaṛ:' view_profile: Ssken-d amaɣnu view_status: Ssken-d tasuffiɣt diff --git a/config/locales/ko.yml b/config/locales/ko.yml index a5e90f9894b3f8..ae7d13ff0f346c 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1194,7 +1194,6 @@ ko: application_mailer: notification_preferences: 이메일 설정 변경 salutation: "%{name} 님," - settings: '이메일 설정 변경: %{link}' unsubscribe: 구독 해제 view: '보기:' view_profile: 프로필 보기 @@ -1596,9 +1595,6 @@ ko: title: 인증 이력 mail_subscriptions: unsubscribe: - action: 네, 구독 취소합니다 - complete: 구독 취소됨 - confirmation_html: 정말로 %{domain}에서 %{email}로 보내는 마스토돈의 %{type}에 대한 구독을 취소하시겠습니까? 언제든지 이메일 알림 설정에서 다시 구독할 수 있습니다. emails: notification_emails: favourite: 좋아요 알림 이메일 @@ -1606,9 +1602,6 @@ ko: follow_request: 팔로우 요청 이메일 mention: 멘션 알림 이메일 reblog: 부스트 알림 이메일 - resubscribe_html: 만약 실수로 구독 취소를 했다면 이메일 알림 설정에서 다시 구독할 수 있습니다. - success_html: 이제 더이상 %{domain}의 마스토돈에서 %{email}로 %{type} 알림을 보내지 않습니다. - title: 구독 취소 media_attachments: validations: images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다. diff --git a/config/locales/lad.yml b/config/locales/lad.yml index aeffb477be5c11..78eadbb9532291 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -1135,7 +1135,6 @@ lad: application_mailer: notification_preferences: Troka preferensyas de posta salutation: "%{name}," - settings: 'Troka preferensyas de posta: %{link}' unsubscribe: Dezabona view: 'Mira:' view_profile: Ve profil @@ -1505,9 +1504,6 @@ lad: title: Estoria de autentifikasyon mail_subscriptions: unsubscribe: - action: Si, dezabona - complete: Dezabonado - confirmation_html: Estas siguro de ke ya no keres risivir %{type} de Mastodon en %{domain} a tu posta elektronika %{email}? Syempre podras reabonarte dizde las opsyones de avizos por posta.. emails: notification_emails: favourite: avizos de favoritos por posta @@ -1515,9 +1511,6 @@ lad: follow_request: avizos de solisitasyones de segimyento por posta mention: avizos de enmentaduras por posta reblog: avizos de repartajasyones por posta - resubscribe_html: Si tyenes deabonado por yerro, puedes reabonar en tus opsyones de avizos por posta elektronika. - success_html: Ya no risiviras %{type} de Mastodon en %{domain} a tu posta en %{email}. - title: Dezabona media_attachments: validations: images_and_video: No se puede adjuntar un video a un estado ke ya kontenga imajes diff --git a/config/locales/lt.yml b/config/locales/lt.yml index b807451ece13e9..8ce2304a40ac44 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1078,7 +1078,6 @@ lt: emails: notification_emails: reblog: dalintis pranešimų el. pašto laiškais - success_html: Daugiau negausi %{type} „Mastodon“ domene %{domain} į savo el. paštą %{email}. media_attachments: validations: images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 1a31034a59d0e2..fb96e9400ae026 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1174,7 +1174,6 @@ lv: application_mailer: notification_preferences: Mainīt e-pasta uztādījumus salutation: "%{name}," - settings: 'Mainīt e-pasta uztādījumus: %{link}' unsubscribe: Atcelt abonēšanu view: 'Skatīt:' view_profile: Skatīt profilu @@ -1598,9 +1597,6 @@ lv: title: Autentifikācijas vēsture mail_subscriptions: unsubscribe: - action: Jā, atcelt abonēšanu - complete: Anulēts - confirmation_html: Vai tiešām atteikties no %{type} saņemšanas savā e-pasta adresē %{email} par %{domain} esošo Mastodon? Vienmēr var abonēt no jauna savos e-pasta paziņojumu iestatījumos. emails: notification_emails: favourite: izlases paziņojumu e-pasta ziņojumi @@ -1608,9 +1604,6 @@ lv: follow_request: sekošanas pieprasījumu e-pasta ziņojumi mention: pieminēšanas paziņojumu e-pasta ziņojumi reblog: pastiprinājumu paziņojumu e-pasta ziņojumi - resubscribe_html: Ja abonements tika atcelts kļūdas dēļ, abonēt no jauna var savos e-pasta paziņojumu iestatījumos. - success_html: Tu vairs savā e-pasta adresē %{email} nesaņemsi %{type} par %{domain} esošo Mastodon. - title: Atcelt abonēšanu media_attachments: validations: images_and_video: Nevar pievienot videoklipu tādai ziņai, kura jau satur attēlus diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 6edddd432306f7..21470409e2a833 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1280,12 +1280,9 @@ ms: title: Sejarah pengesahan mail_subscriptions: unsubscribe: - action: Ya, nyahlanggan - complete: Menyahlanggan emails: notification_emails: favourite: emel pemberitahuan sukaan - title: Hentikan langganan media_attachments: validations: images_and_video: Tidak boleh melampirkan video pada pos yang sudah mengandungi imej diff --git a/config/locales/my.yml b/config/locales/my.yml index f8f69586a9251d..fd0bbcb005113b 100644 --- a/config/locales/my.yml +++ b/config/locales/my.yml @@ -1275,11 +1275,6 @@ my: failed_sign_in_html: "%{ip} (%{browser}) မှ %{method} ဖြင့် အကောင့်ဝင်ရောက်ခြင်း မအောင်မြင်ပါ" successful_sign_in_html: "%{ip} (%{browser}) မှ %{method} ဖြင့် အကောင့်ဝင်၍ရပါပြီ" title: အထောက်အထားမှတ်တမ်း - mail_subscriptions: - unsubscribe: - action: ဟုတ်ကဲ့၊ စာရင်းမှ ဖြုတ်လိုက်ပါပြီ - complete: စာရင်းမှထွက်ရန် - title: စာရင်းမှထွက်ရန် media_attachments: validations: images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ diff --git a/config/locales/nan-TW.yml b/config/locales/nan-TW.yml index dc471a9c2c3467..deba9672577245 100644 --- a/config/locales/nan-TW.yml +++ b/config/locales/nan-TW.yml @@ -1210,7 +1210,6 @@ nan-TW: application_mailer: notification_preferences: 改電子phue ê偏好 salutation: "%{name}、" - settings: 改電子phue ê偏好:%{link} unsubscribe: 取消訂 view: 檢視: view_profile: 看個人資料 @@ -1614,9 +1613,6 @@ nan-TW: title: 認證歷史 mail_subscriptions: unsubscribe: - action: Hennh,mài訂 - complete: 無訂ah - confirmation_html: Lí kám確定beh取消訂 %{domain} ê Mastodon 內底 ê %{type} kàu lí ê電子批 %{email}?Lí ē當隨時對lí ê電子批通知設定重訂。 emails: notification_emails: favourite: 收藏通知電子批 @@ -1624,9 +1620,6 @@ nan-TW: follow_request: 跟tuè請求電子批 mention: 提起通知電子批 reblog: 轉送通知電子批 - resubscribe_html: Nā出tshê取消訂,lí通重訂tuì lí ê電子批通知設定。 - success_html: Lí bē koh收著佇 %{domain} ê Mastodon內底ê %{type} kàu lí ê電子批 %{email}。 - title: 取消訂 media_attachments: validations: images_and_video: Bē當佇有影像ê PO文內底加影片 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 69ff56febdc2bf..8549e7e17c7560 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1231,7 +1231,6 @@ nl: application_mailer: notification_preferences: E-mailvoorkeuren wijzigen salutation: "%{name}," - settings: 'E-mailvoorkeuren wijzigen: %{link}' unsubscribe: Afmelden view: 'Bekijk:' view_profile: Profiel bekijken @@ -1655,9 +1654,6 @@ nl: title: Inloggeschiedenis mail_subscriptions: unsubscribe: - action: Ja, afmelden - complete: Afgemeld - confirmation_html: Weet je zeker dat je je wilt afmelden voor het ontvangen van %{type} van Mastodon op %{domain} op je e-mailadres %{email}? Je kunt je altijd opnieuw abonneren in jouw instellingen voor e-mailmeldingen. emails: notification_emails: favourite: e-mailmeldingen voor favorieten @@ -1665,9 +1661,6 @@ nl: follow_request: e-mailmeldingen voor volgverzoeken mention: e-mailmeldingen voor vermeldingen reblog: e-mailmeldingen voor boosts - resubscribe_html: Als je je per ongeluk hebt afgemeld, kun je je opnieuw abonneren in jouw instellingen voor e-mailmeldingen. - success_html: Je ontvangt niet langer %{type} van Mastodon op %{domain} op je e-mailadres %{email}. - title: Afmelden media_attachments: validations: images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld diff --git a/config/locales/nn.yml b/config/locales/nn.yml index f59ba333346ef0..04c021d5ccd338 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1229,7 +1229,6 @@ nn: application_mailer: notification_preferences: Endre e-post-innstillingane salutation: Hei %{name}, - settings: 'Endre e-post-innstillingar: %{link}' unsubscribe: Meld av view: 'Sjå:' view_profile: Sjå profil @@ -1653,9 +1652,6 @@ nn: title: Autentiseringshistorikk mail_subscriptions: unsubscribe: - action: Ja, meld av - complete: Meldt av - confirmation_html: Er du sikker på at du ikkje lenger ynskjer å motta %{type} frå Mastodon på %{domain} til e-posten din %{email}? Du kan alltids gjera om på dette i innstillingar for e-postvarsling. emails: notification_emails: favourite: e-postar om favorittmarkeringar @@ -1663,9 +1659,6 @@ nn: follow_request: e-postar om fylgjeførespurnadar mention: e-postar om omtaler reblog: e-postar om framhevingar - resubscribe_html: Om du har avslutta abonnementet ved ein feil, kan du abonnera på nytt i innstillingar for e-postvarsling. - success_html: Du vil ikkje lenger få %{type} frå Mastodon på %{domain} til e-posten på %{email}. - title: Meld av media_attachments: validations: images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete diff --git a/config/locales/no.yml b/config/locales/no.yml index f6dd1e9c8de88e..e2bf55a2292f01 100644 --- a/config/locales/no.yml +++ b/config/locales/no.yml @@ -1352,11 +1352,6 @@ failed_sign_in_html: Mislykket innloggingsforsøk med %{method} fra %{ip} (%{browser}) successful_sign_in_html: Vellykket innlogging med %{method} fra %{ip} (%{browser}) title: Autentiseringshistorikk - mail_subscriptions: - unsubscribe: - action: Ja, avslutt abonnement - complete: Abonnement avsluttet - title: Avslutt abonnement media_attachments: validations: images_and_video: Kan ikke legge ved video på en status som allerede inneholder bilder diff --git a/config/locales/pl.yml b/config/locales/pl.yml index e0ae1f7106095d..af03c4f7cf912e 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1230,7 +1230,6 @@ pl: application_mailer: notification_preferences: Zmień ustawienia e-maili salutation: "%{name}," - settings: 'Zmień ustawienia e-maili: %{link}' unsubscribe: Anuluj subskrypcję view: 'Zobacz:' view_profile: Wyświetl profil @@ -1689,9 +1688,6 @@ pl: title: Historia uwierzytelniania mail_subscriptions: unsubscribe: - action: Tak, wypisuję się - complete: Anulowano subskrypcję - confirmation_html: Czy na pewno chcesz wypisać się z otrzymywania %{type} z Mastodona na %{domain} na adres %{email}? Zawsze możesz zapisać się ponownie ze strony ustawień powiadomień mejlowych. emails: notification_emails: favourite: powiadomień mejlowych o polubieniach @@ -1699,9 +1695,6 @@ pl: follow_request: mejli o prośbach o możliwość obserwowania mention: powiadomień mejlowych o wspomnieniach reblog: powiadomień mejlowych o podbiciach - resubscribe_html: W przypadku przypadkowego wypisania możesz zapisać się ponownie z ustawień powiadomień mejlowych. - success_html: Już nie będziesz otrzymywać %{type} z Mastodona na %{domain} na adres %{email}. - title: Anuluj subskrypcję media_attachments: validations: images_and_video: Nie możesz załączyć pliku wideo do wpisu, który zawiera już zdjęcia diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index e8789d4236f20b..2b4a820851cc41 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1229,7 +1229,6 @@ pt-BR: application_mailer: notification_preferences: Alterar preferências de e-mail salutation: "%{name}," - settings: 'Alterar preferências de e-mail: %{link}' unsubscribe: Desinscrever view: 'Ver:' view_profile: Ver perfil @@ -1651,9 +1650,6 @@ pt-BR: title: Histórico de autenticação mail_subscriptions: unsubscribe: - action: Sim, cancelar subscrição - complete: Desinscrito - confirmation_html: Tem certeza que deseja cancelar a assinatura de %{type} para Mastodon no %{domain} para o seu endereço de e-mail %{email}? Você sempre pode se inscrever novamente nas configurações de notificação de email. emails: notification_emails: favourite: emails de notificação favoritos @@ -1661,9 +1657,6 @@ pt-BR: follow_request: emails de seguidores pendentes mention: emails de notificação de menções reblog: emails de notificação de impulsos - resubscribe_html: Se você cancelou sua inscrição por engano, você pode se inscrever novamente em suas configurações de notificações por e-mail. - success_html: Você não mais receberá %{type} no Mastodon em %{domain} ao seu endereço de e-mail %{email}. - title: Cancelar inscrição media_attachments: validations: images_and_video: Não foi possível anexar um vídeo a uma publicação que já contém imagens diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index c388a0a48e2e92..21550b348d8282 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1229,7 +1229,6 @@ pt-PT: application_mailer: notification_preferences: Alterar preferências de e-mail salutation: "%{name}," - settings: 'Alterar preferências de e-mail: %{link}' unsubscribe: Cancelar subscrição view: 'Ver:' view_profile: Ver perfil @@ -1651,9 +1650,6 @@ pt-PT: title: Histórico de autenticação mail_subscriptions: unsubscribe: - action: Sim, cancelar subscrição - complete: Subscrição cancelada - confirmation_html: Tens a certeza que desejas cancelar a subscrição para receber %{type} pelo Mastodon em %{domain} no teu e-mail em %{email}? Podes sempre subscrever novamente nas tuas definições de notificação por e-mail. emails: notification_emails: favourite: e-mails de notificação de favoritos @@ -1661,9 +1657,6 @@ pt-PT: follow_request: e-mails de pedido de seguidor mention: e-mails de notificação de menção reblog: e-mails de notificação de partilhas - resubscribe_html: Se tiveres anulado a subscrição por engano, podes voltar a subscrevê-la nas definições de notificação por e-mail. - success_html: Não receberás novamente %{type} do Mastodon em %{domain} para o teu e-mail em %{email}. - title: Cancelar subscrição media_attachments: validations: images_and_video: Não é possível anexar um vídeo a uma publicação que já contém imagens diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 626870709d0992..c56574643b3f45 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1227,7 +1227,6 @@ ru: application_mailer: notification_preferences: Настроить оповещения по электронной почте salutation: Привет, %{name}! - settings: 'Настроить оповещения по электронной почте можно здесь: %{link}' unsubscribe: Отписаться view: 'Открыть в браузере:' view_profile: Перейти к профилю @@ -1675,9 +1674,6 @@ ru: title: История входов mail_subscriptions: unsubscribe: - action: Да, я хочу отписаться - complete: Подписка отменена - confirmation_html: Вы уверены в том, что хотите отписаться от всех %{type}, которые вы получаете на адрес %{email} для учётной записи на сервере Mastodon %{domain}? Вы всегда сможете подписаться снова в настройках уведомлений по электронной почте. emails: notification_emails: favourite: уведомлений о добавлении ваших постов в избранное @@ -1685,9 +1681,6 @@ ru: follow_request: уведомлений о новых запросах на подписку mention: уведомлений о новых упоминаниях reblog: уведомлений о продвижении ваших постов - resubscribe_html: Если вы отписались по ошибке и хотите подписаться снова, перейдите на страницу настройки уведомлений по электронной почте. - success_html: Вы отказались от %{type}, которые вы получали на адрес %{email} для вашей учётной записи на сервере Mastodon %{domain}. - title: Отписаться media_attachments: validations: images_and_video: Нельзя добавить видео к посту с изображениями diff --git a/config/locales/sc.yml b/config/locales/sc.yml index 6924ba67c4360b..2c94bc3a1046a2 100644 --- a/config/locales/sc.yml +++ b/config/locales/sc.yml @@ -913,9 +913,6 @@ sc: authentication_methods: password: crae webauthn: craes de seguresa - mail_subscriptions: - unsubscribe: - title: Annulla sa sutiscritzione media_attachments: validations: images_and_video: Non si podet allegare unu vìdeu in una publicatzione chi cuntenet giai immàgines diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 87334b14e7aff2..be92d56a8a2b8e 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -134,6 +134,7 @@ en: otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' webauthn: If it's an USB key be sure to insert it and, if necessary, tap it. settings: + email_subscriptions: Disabling retains existing subscribers but stops sending emails. indexable: Your profile page may appear in search results on Google, Bing, and others. show_application: You will always be able to see which app published your post regardless. tag: @@ -356,6 +357,7 @@ en: hint: Additional information text: Rule settings: + email_subscriptions: Enable email sign-ups indexable: Include profile page in search engines show_application: Display from which app you sent a post tag: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 0a684eeb4cd54d..25bc48a198f3ab 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1085,7 +1085,6 @@ sk: emails: notification_emails: reblog: e-mailové upozornenia na zdieľania - title: Ukonči odber media_attachments: validations: images_and_video: K príspevku ktorý už obsahuje obrázky nemôžeš priložiť video diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 6061b6fc8ede8f..8e2372a4cc1787 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1227,7 +1227,6 @@ sl: application_mailer: notification_preferences: Spremenite e-poštne nastavitve salutation: "%{name}," - settings: 'Spremenite e-poštne nastavitve: %{link}' unsubscribe: Odjavi od naročnine view: 'Pogled:' view_profile: Ogled profila @@ -1687,9 +1686,6 @@ sl: title: Zgodovina overjanja mail_subscriptions: unsubscribe: - action: Da, odjavi me - complete: Odjavljeni - confirmation_html: Ali se res želite odjaviti od prejemanja %{type} za Mastodon na %{domain} na svojo e-pošto %{email}? Kadarkoli se lahko znova prijavite iz svojih nastavitev e-poštnih obvestil. emails: notification_emails: favourite: e-sporočil z obvestili o priljubljenosti @@ -1697,9 +1693,6 @@ sl: follow_request: e-sporočil o zahtevah za sledenje mention: e-sporočil z obvestili o omembah reblog: e-sporočil z obvestili o izpostavljanju - resubscribe_html: Če ste se odjavili po pomoti, se lahko znova prijavite iz svojih nastavitev e-poštnih obvestil. - success_html: Nič več ne boste prejemali %{type} za Mastodon na %{domain} na svoj e-naslov %{email}. - title: Odjavi od naročnine media_attachments: validations: images_and_video: Videoposnetka ni mogoče priložiti objavi, ki že vsebuje slike diff --git a/config/locales/sq.yml b/config/locales/sq.yml index caf915df780a4f..dc52f54b24b507 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1220,7 +1220,6 @@ sq: application_mailer: notification_preferences: Ndryshoni parapëlqime rreth email-esh salutation: "%{name}," - settings: 'Ndryshoni parapëlqime rreth email-esh: %{link}' unsubscribe: Shpajtohuni view: 'Parje:' view_profile: Shihni profilin @@ -1640,9 +1639,6 @@ sq: title: Historik mirëfilltësimesh mail_subscriptions: unsubscribe: - action: Po, shpajtomëni - complete: U shpajtuat - confirmation_html: Jeni i sigurt se doni të shpajtoheni nga marrje %{type} për Mastodon te %{domain} në email-in tuaj %{email}? Mundeni përherë të ripajtoheni që nga rregullimet tuaja për njoftime me email. emails: notification_emails: favourite: email-e njoftimesh parapëlqimesh @@ -1650,9 +1646,6 @@ sq: follow_request: email-e kërkesash ndjekjeje mention: email-e njoftimesh përmendjesh reblog: email-e njoftimesh përforcimesh - resubscribe_html: Nëse u shpajtuat gabimisht, mund të ripajtoheni që nga rregullimet tuaja për njoftime me email. - success_html: S’do të merrni më %{type} për Mastodon te %{domain} në email-in tuaj te %{email}. - title: Shpajtohuni media_attachments: validations: images_and_video: S’mund të bashkëngjitet video te një gjendje që përmban figura tashmë diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml index 3f9eee3caed723..d75f5f76d3a6ac 100644 --- a/config/locales/sr-Latn.yml +++ b/config/locales/sr-Latn.yml @@ -1357,11 +1357,6 @@ sr-Latn: failed_sign_in_html: Neuspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser}) successful_sign_in_html: Uspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser}) title: Istorija autentifikacije - mail_subscriptions: - unsubscribe: - action: Da, odjavi me - complete: Odjavljen - title: Odjavi se media_attachments: validations: images_and_video: Ne može da se prikači video na status koji već ima slike diff --git a/config/locales/sr.yml b/config/locales/sr.yml index 35d845bb1ea3c2..8bc89180d41709 100644 --- a/config/locales/sr.yml +++ b/config/locales/sr.yml @@ -1387,11 +1387,6 @@ sr: failed_sign_in_html: Неуспешан покушај пријављивања путем %{method} са %{ip} (%{browser}) successful_sign_in_html: Успешан покушај пријављивања путем %{method} са %{ip} (%{browser}) title: Историја аутентификације - mail_subscriptions: - unsubscribe: - action: Да, одјави ме - complete: Одјављен - title: Одјави се media_attachments: validations: images_and_video: Не може да се прикачи видео на статус који већ има слике diff --git a/config/locales/sv.yml b/config/locales/sv.yml index a514556ba91864..3180a0ba98c51f 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1228,7 +1228,6 @@ sv: application_mailer: notification_preferences: Ändra e-postpreferenser salutation: "%{name}," - settings: 'Ändra e-postinställningar: %{link}' unsubscribe: Avprenumerera view: 'Granska:' view_profile: Visa profil @@ -1652,9 +1651,6 @@ sv: title: Autentiseringshistorik mail_subscriptions: unsubscribe: - action: Ja, avsluta prenumerationen - complete: Prenumeration avslutad - confirmation_html: Är du säker på att du vill avregistrera dig från att ta emot %{type} för Mastodon på %{domain} med din e-post på %{email}? Du kan alltid återprenumerera bland dina e-postmeddelandeinställningar. emails: notification_emails: favourite: aviseringsmejl för favoriserade inlägg @@ -1662,9 +1658,6 @@ sv: follow_request: aviseringsmejl för följdförfrågningar mention: aviseringsmejl för inlägg där du nämns reblog: aviseringsmejl för förhöjda inlägg - resubscribe_html: Om du slutat prenumerera av misstag kan du återprenumerera i dina e-postaviseringsinställningar. - success_html: Du får inte längre %{type} för Mastodon på %{domain} till din e-post på %{email}. - title: Avsluta prenumeration media_attachments: validations: images_and_video: Det går inte att bifoga en video till ett inlägg som redan innehåller bilder diff --git a/config/locales/th.yml b/config/locales/th.yml index b3e24132355747..a90f1a2555448f 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1124,7 +1124,6 @@ th: application_mailer: notification_preferences: เปลี่ยนการกำหนดลักษณะอีเมล salutation: "%{name}," - settings: 'เปลี่ยนการกำหนดลักษณะอีเมล: %{link}' unsubscribe: เลิกบอกรับ view: 'ดู:' view_profile: ดูโปรไฟล์ @@ -1510,9 +1509,6 @@ th: title: ประวัติการรับรองความถูกต้อง mail_subscriptions: unsubscribe: - action: ใช่ เลิกบอกรับ - complete: เลิกบอกรับแล้ว - confirmation_html: คุณแน่ใจหรือไม่ว่าต้องการเลิกบอกรับจากการรับ %{type} สำหรับ Mastodon ใน %{domain} ไปยังอีเมลของคุณที่ %{email}? คุณสามารถบอกรับใหม่ได้เสมอจาก การตั้งค่าการแจ้งเตือนอีเมล ของคุณ emails: notification_emails: favourite: อีเมลการแจ้งเตือนการชื่นชอบ @@ -1520,9 +1516,6 @@ th: follow_request: อีเมลคำขอติดตาม mention: อีเมลการแจ้งเตือนการกล่าวถึง reblog: อีเมลการแจ้งเตือนการดัน - resubscribe_html: หากคุณได้เลิกบอกรับโดยไม่ได้ตั้งใจ คุณสามารถบอกรับใหม่ได้จาก การตั้งค่าการแจ้งเตือนอีเมล ของคุณ - success_html: คุณจะไม่ได้รับ %{type} สำหรับ Mastodon ใน %{domain} ไปยังอีเมลของคุณที่ %{email} อีกต่อไป - title: เลิกบอกรับ media_attachments: validations: images_and_video: ไม่สามารถแนบวิดีโอกับโพสต์ที่มีภาพอยู่แล้ว diff --git a/config/locales/tr.yml b/config/locales/tr.yml index d58aab2664e264..1ad87c39d3c8d3 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1231,7 +1231,6 @@ tr: application_mailer: notification_preferences: E-posta tercihlerini değiştir salutation: "%{name}," - settings: 'E-posta tercihlerini değiştir: %{link}' unsubscribe: Abonelikten çık view: 'Görüntüle:' view_profile: Profili görüntüle @@ -1655,9 +1654,6 @@ tr: title: Kimlik doğrulama geçmişi mail_subscriptions: unsubscribe: - action: Evet, abonelikten çık - complete: Abonelikten çık - confirmation_html: '%{domain} üzerindeki Mastodon için %{type} almayı durdurarak %{email} adresinize aboneliğinizi iptal etmek istediğinizden emin misiniz? e-posta bildirim ayarlarınızdan her zaman yeniden abone olabilirsiniz.' emails: notification_emails: favourite: favori bildirim e-postaları @@ -1665,9 +1661,6 @@ tr: follow_request: takip isteği bildirim e-postaları mention: bahsetme bildirim e-postaları reblog: öne çıkanlar bildirim e-postaları - resubscribe_html: Abonelikten yanlışlıkla çıktıysanız, e-posta bildirim ayarlarınızdan yeniden abone olabilirsiniz. - success_html: Artık %{email} adresindeki e-postanıza %{domain} üzerindeki Mastodon için %{type} almayacaksınız. - title: Abonelikten çık media_attachments: validations: images_and_video: Zaten resim içeren bir duruma video eklenemez diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 11dcf51c6eb73f..e5ddc13b1fb874 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1180,7 +1180,6 @@ uk: application_mailer: notification_preferences: Змінити налаштування електронної пошти salutation: "%{name}," - settings: 'Змінити налаштування електронної пошти: %{link}' unsubscribe: Відписатися view: 'Перегляд:' view_profile: Показати профіль @@ -1572,9 +1571,6 @@ uk: title: Історія входів mail_subscriptions: unsubscribe: - action: Так, відписатися - complete: Відписалися - confirmation_html: Ви впевнені, що хочете відписатися від отримання %{type} для Mastodon на %{domain} до своєї скриньки %{email}? Ви можете повторно підписатися у налаштуваннях сповіщень електронною поштою. emails: notification_emails: favourite: отримувати сповіщення про вподобання електронною поштою @@ -1582,9 +1578,6 @@ uk: follow_request: отримувати сповіщення про запити на стеження електронною поштою mention: отримувати сповіщення про згадки електронною поштою reblog: отримувати сповіщення про поширення електронною поштою - resubscribe_html: Якщо ви відписалися помилково, ви можете повторно підписатися в налаштуваннях сповіщень електронною поштою. - success_html: Ви більше не отримуватимете %{type} для Mastodon %{domain} на адресу %{email}. - title: Відписатися media_attachments: validations: images_and_video: Не можна додати відео до допису з зображеннями diff --git a/config/locales/vi.yml b/config/locales/vi.yml index f773dda729cbf4..02862dcd73015e 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1210,7 +1210,6 @@ vi: application_mailer: notification_preferences: Thay đổi thiết lập email salutation: "%{name}," - settings: 'Thay đổi thiết lập email: %{link}' unsubscribe: Hủy đăng ký view: 'Chi tiết:' view_profile: Xem trang hồ sơ @@ -1614,9 +1613,6 @@ vi: title: Lịch sử đăng nhập mail_subscriptions: unsubscribe: - action: Đúng, hủy đăng ký - complete: Đã hủy đăng ký - confirmation_html: Bạn có chắc muốn hủy đăng ký %{type} Mastodon trên %{domain} tới %{email}? Bạn có thể đăng ký lại từ cài đặt thông báo email. emails: notification_emails: favourite: email thông báo lượt thích @@ -1624,9 +1620,6 @@ vi: follow_request: email thông báo yêu cầu theo dõi mention: email thông báo lượt nhắc đến reblog: email thông báo lượt đăng lại - resubscribe_html: Nếu đổi ý, bạn có thể đăng ký lại từ cài đặt thông báo email. - success_html: Bạn sẽ không còn nhận %{type} Mastodon trên %{domain} tới %{email}. - title: Hủy đăng ký media_attachments: validations: images_and_video: Không thể đính kèm video vào tút đã chứa hình ảnh diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index c161b996819792..80ead9ee797949 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1210,7 +1210,6 @@ zh-CN: application_mailer: notification_preferences: 更改邮件偏好 salutation: "%{name}:" - settings: 更改邮件偏好: %{link} unsubscribe: 取消订阅 view: 点此链接查看详情: view_profile: 查看个人资料 @@ -1614,9 +1613,6 @@ zh-CN: title: 认证历史 mail_subscriptions: unsubscribe: - action: 是,取消订阅 - complete: 已取消订阅 - confirmation_html: 你确定要退订来自 %{domain} 上的 Mastodon 的 %{type} 到你的邮箱 %{email} 吗?你可以随时在邮件通知设置中重新订阅。 emails: notification_emails: favourite: 嘟文被喜欢邮件通知 @@ -1624,9 +1620,6 @@ zh-CN: follow_request: 关注请求邮件通知 mention: 账号被提及邮件通知 reblog: 嘟文被转嘟邮件通知 - resubscribe_html: 如果你不小心取消了订阅,可以在你的邮件通知设置中重新订阅。 - success_html: 你将不会在你的邮箱 %{email} 中收到 %{domain} 上的 Mastodon的 %{type} - title: 取消订阅 media_attachments: validations: images_and_video: 无法在嘟文中同时插入视频和图片 diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml index ac26ce9af44581..6caf362fa7d93a 100644 --- a/config/locales/zh-HK.yml +++ b/config/locales/zh-HK.yml @@ -1341,11 +1341,6 @@ zh-HK: failed_sign_in_html: 以 %{method} 從 %{ip} (%{browser}) 登入失敗 successful_sign_in_html: 以 %{method} 從 %{ip} (%{browser}) 成功登入 title: 驗證操作歷史 - mail_subscriptions: - unsubscribe: - action: 沒錯,取消訂閱 - complete: 已取消訂閱 - title: 取消訂閱 media_attachments: validations: images_and_video: 不能在已有圖片的文章上加入影片 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 4585b729bc4091..8d3cfc6ee63a19 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1212,7 +1212,6 @@ zh-TW: application_mailer: notification_preferences: 變更電子郵件設定 salutation: "%{name}、" - settings: 變更電子郵件設定︰%{link} unsubscribe: 取消訂閱 view: 進入瀏覽: view_profile: 檢視個人檔案 @@ -1616,9 +1615,6 @@ zh-TW: title: 認證歷史紀錄 mail_subscriptions: unsubscribe: - action: 是的,取消訂閱 - complete: 取消訂閱 - confirmation_html: 您確定要取要取消訂閱自 Mastodon 上 %{domain} 之 %{type} 至您電子郵件 %{email} 嗎?您隨時可以自電子郵件通知設定重新訂閱。 emails: notification_emails: favourite: 最愛通知電子郵件 @@ -1626,9 +1622,6 @@ zh-TW: follow_request: 跟隨請求通知電子郵件 mention: 提及通知電子郵件 reblog: 轉嘟通知電子郵件 - resubscribe_html: 若您不慎錯誤地取消訂閱,您可以自電子郵件通知設定重新訂閱。 - success_html: 您將不再收到來自 Mastodon 上 %{domain} 之 %{type} 至您電子郵件 %{email}。 - title: 取消訂閱 media_attachments: validations: images_and_video: 無法於已有圖片之嘟文中加入影片 diff --git a/config/routes.rb b/config/routes.rb index 1bc32a28615c8b..d31331a6c1faf6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -71,7 +71,7 @@ def redirect_with_vary(path) devise_scope :user do get '/invite/:invite_code', to: 'auth/registrations#new', as: :public_invite - resource :unsubscribe, only: [:show, :create], controller: :mail_subscriptions + resource :unsubscribe, only: [:show, :create], controller: :unsubscriptions namespace :auth do resource :setup, only: [:show, :update], controller: :setup @@ -188,6 +188,10 @@ def redirect_with_vary(path) resources :statuses, only: :show end + namespace :email_subscriptions do + resource :confirmation, only: :show + end + resources :media, only: [:show] do get :player end diff --git a/config/routes/api.rb b/config/routes/api.rb index 285b032d01f22f..61d74f4cd9fe79 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -221,6 +221,7 @@ resources :identity_proofs, only: :index resources :featured_tags, only: :index resources :endorsements, only: :index + resources :email_subscriptions, only: :create end member do diff --git a/db/migrate/20260311212130_create_email_subscriptions.rb b/db/migrate/20260311212130_create_email_subscriptions.rb new file mode 100644 index 00000000000000..b750ccc7fc8ac8 --- /dev/null +++ b/db/migrate/20260311212130_create_email_subscriptions.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class CreateEmailSubscriptions < ActiveRecord::Migration[8.1] + def change + create_table :email_subscriptions do |t| + t.references :account, null: false, foreign_key: { on_delete: :cascade } + t.string :email, null: false + t.string :locale, null: false + t.string :confirmation_token, index: { unique: true, where: 'confirmation_token is not null' } + t.datetime :confirmed_at + + t.timestamps + end + + add_index :email_subscriptions, [:account_id, :email], unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 69a9ef45dae6a1..1a839c2493e74c 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -504,6 +504,19 @@ t.index ["domain"], name: "index_email_domain_blocks_on_domain", unique: true end + create_table "email_subscriptions", force: :cascade do |t| + t.bigint "account_id", null: false + t.string "confirmation_token" + t.datetime "confirmed_at" + t.datetime "created_at", null: false + t.string "email", null: false + t.string "locale", null: false + t.datetime "updated_at", null: false + t.index ["account_id", "email"], name: "index_email_subscriptions_on_account_id_and_email", unique: true + t.index ["account_id"], name: "index_email_subscriptions_on_account_id" + t.index ["confirmation_token"], name: "index_email_subscriptions_on_confirmation_token", unique: true, where: "(confirmation_token IS NOT NULL)" + end + create_table "fasp_backfill_requests", force: :cascade do |t| t.string "category", null: false t.datetime "created_at", null: false @@ -1486,6 +1499,7 @@ add_foreign_key "custom_filter_statuses", "statuses", on_delete: :cascade add_foreign_key "custom_filters", "accounts", on_delete: :cascade add_foreign_key "email_domain_blocks", "email_domain_blocks", column: "parent_id", on_delete: :cascade + add_foreign_key "email_subscriptions", "accounts", on_delete: :cascade add_foreign_key "fasp_backfill_requests", "fasp_providers" add_foreign_key "fasp_debug_callbacks", "fasp_providers" add_foreign_key "fasp_follow_recommendations", "accounts", column: "recommended_account_id" diff --git a/spec/fabricators/email_subscription_fabricator.rb b/spec/fabricators/email_subscription_fabricator.rb new file mode 100644 index 00000000000000..8d61945564730d --- /dev/null +++ b/spec/fabricators/email_subscription_fabricator.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +Fabricator(:email_subscription) do + account + email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } } + locale 'en' +end diff --git a/spec/mailers/email_subscription_mailer_spec.rb b/spec/mailers/email_subscription_mailer_spec.rb new file mode 100644 index 00000000000000..0d8ec6e66b3fd1 --- /dev/null +++ b/spec/mailers/email_subscription_mailer_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe EmailSubscriptionMailer do + describe '.confirmation' do + let(:email_subscription) { Fabricate(:email_subscription) } + let(:mail) { described_class.with(subscription: email_subscription).confirmation } + + it 'renders the email' do + expect { mail.deliver } + .to send_email( + to: email_subscription.email, + from: 'notifications@localhost', + subject: I18n.t('email_subscription_mailer.confirmation.subject') + ) + end + end + + describe '.notification' do + let(:email_subscription) { Fabricate(:email_subscription, confirmed_at: Time.now.utc) } + let(:statuses) { Fabricate.times(num_of_statuses, :status) } + let(:mail) { described_class.with(subscription: email_subscription).notification(statuses) } + + context 'with a single status' do + let(:num_of_statuses) { 1 } + + it 'renders the email' do + expect { mail.deliver } + .to send_email( + to: email_subscription.email, + from: 'notifications@localhost', + subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: statuses.first.text.truncate(17)) + ) + end + end + + context 'with multiple statuses' do + let(:num_of_statuses) { 2 } + + it 'renders the email' do + expect { mail.deliver } + .to send_email( + to: email_subscription.email, + from: 'notifications@localhost', + subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: ActionController::Base.helpers.truncate(statuses.first.text, length: 17)) + ) + end + end + end +end diff --git a/spec/mailers/previews/email_subscription_mailer_preview.rb b/spec/mailers/previews/email_subscription_mailer_preview.rb new file mode 100644 index 00000000000000..436e24c390d725 --- /dev/null +++ b/spec/mailers/previews/email_subscription_mailer_preview.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer + +class EmailSubscriptionMailerPreview < ActionMailer::Preview + # Preview this email at http://localhost:3000/rails/mailers/email_subscription_mailer/confirmation + def confirmation + EmailSubscriptionMailer.with(subscription: EmailSubscription.last!).confirmation + end + + # Preview this email at http://localhost:3000/rails/mailers/email_subscription_mailer/notification + def notification + EmailSubscriptionMailer.with(subscription: EmailSubscription.last!).notification(Status.where(visibility: :public).without_replies.without_reblogs.limit(5)) + end +end diff --git a/spec/models/email_subscription_spec.rb b/spec/models/email_subscription_spec.rb new file mode 100644 index 00000000000000..6e1a0483f85a86 --- /dev/null +++ b/spec/models/email_subscription_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe EmailSubscription do + describe '#confirmed?' do + it 'returns true when confirmed' do + subject.confirmed_at = Time.now.utc + expect(subject.confirmed?).to be true + end + + it 'returns false when not confirmed' do + subject.confirmed_at = nil + expect(subject.confirmed?).to be false + end + end + + describe '#confirm!' do + subject { Fabricate(:email_subscription) } + + it 'records confirmation time' do + subject.confirm! + expect(subject.confirmed_at).to_not be_nil + end + end + + describe 'Callbacks' do + subject { Fabricate(:email_subscription) } + + it 'generates token and delivers confirmation email', :inline_jobs do + emails = capture_emails { subject } + + expect(subject.confirmed_at).to be_nil + expect(subject.confirmation_token).to_not be_nil + expect(emails.size).to eq(1) + expect(emails.first) + .to have_attributes( + to: contain_exactly(subject.email), + subject: eq(I18n.t('email_subscription_mailer.confirmation.subject', name: subject.account.username, domain: Rails.configuration.x.local_domain)) + ) + end + end +end diff --git a/spec/requests/api/v1/accounts/email_subscriptions_spec.rb b/spec/requests/api/v1/accounts/email_subscriptions_spec.rb new file mode 100644 index 00000000000000..ef7a31476af7b8 --- /dev/null +++ b/spec/requests/api/v1/accounts/email_subscriptions_spec.rb @@ -0,0 +1,48 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Accounts Email Subscriptions API', feature: :email_subscriptions do + let(:account) { Fabricate(:user).account } + + describe 'POST /api/v1/accounts/:id/email_subscriptions' do + context 'when the account has the permission' do + let(:role) { Fabricate(:user_role, permissions: UserRole::FLAGS[:manage_email_subscriptions]) } + + before do + account.user.update!(role: role) + end + + context 'when user has enabled the setting' do + before do + account.user.settings['email_subscriptions'] = true + account.user.save! + end + + it 'returns http success' do + post "/api/v1/accounts/#{account.id}/email_subscriptions", params: { email: 'test@example.com' } + + expect(response).to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + end + end + + context 'when user has not enabled the setting' do + it 'returns http not found' do + post "/api/v1/accounts/#{account.id}/email_subscriptions", params: { email: 'test@example.com' } + + expect(response).to have_http_status(404) + end + end + end + + context 'when the account does not have the permission' do + it 'returns http not found' do + post "/api/v1/accounts/#{account.id}/email_subscriptions", params: { email: 'test@example.com' } + + expect(response).to have_http_status(404) + end + end + end +end diff --git a/spec/requests/email_subscriptions/confirmations_spec.rb b/spec/requests/email_subscriptions/confirmations_spec.rb new file mode 100644 index 00000000000000..909aab1b77bba9 --- /dev/null +++ b/spec/requests/email_subscriptions/confirmations_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Email Subscriptions Confirmation' do + describe 'GET /email_subscriptions/confirmation' do + context 'when email subscription is unconfirmed' do + let!(:email_subscription) { Fabricate(:email_subscription, confirmed_at: nil) } + + it 'renders success page and updates subscription as confirmed' do + get email_subscriptions_confirmation_path(confirmation_token: email_subscription.confirmation_token) + + expect(response) + .to have_http_status(200) + expect(email_subscription.reload.confirmed?) + .to be true + end + end + + context 'when email subscription is already confirmed' do + let!(:email_subscription) { Fabricate(:email_subscription, confirmed_at: Time.now.utc) } + + it 'renders success page' do + get email_subscriptions_confirmation_path(confirmation_token: email_subscription.confirmation_token) + + expect(response) + .to have_http_status(200) + expect(email_subscription.reload.confirmed?) + .to be true + end + end + end +end diff --git a/spec/requests/mail_subscriptions_spec.rb b/spec/requests/unsubscriptions_spec.rb similarity index 90% rename from spec/requests/mail_subscriptions_spec.rb rename to spec/requests/unsubscriptions_spec.rb index cc6557cab01903..95a149922316df 100644 --- a/spec/requests/mail_subscriptions_spec.rb +++ b/spec/requests/unsubscriptions_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe 'MailSubscriptionsController' do +RSpec.describe 'UnsubscriptionsController' do let(:user) { Fabricate(:user) } let(:token) { user.to_sgid(for: 'unsubscribe').to_s } let(:type) { 'follow' } @@ -39,9 +39,8 @@ expect(response).to have_http_status(200) expect(response.body).to include( - I18n.t('mail_subscriptions.unsubscribe.action') + I18n.t('unsubscriptions.show.action') ) - expect(response.body).to include(user.email) end end @@ -60,9 +59,8 @@ expect(response).to have_http_status(200) expect(response.body).to include( - I18n.t('mail_subscriptions.unsubscribe.complete') + I18n.t('unsubscriptions.create.title') ) - expect(response.body).to include(user.email) end it 'updates notification settings' do diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb index c99813bceba89f..4c2d129e9e33bc 100644 --- a/spec/services/bootstrap_timeline_service_spec.rb +++ b/spec/services/bootstrap_timeline_service_spec.rb @@ -3,35 +3,31 @@ require 'rails_helper' RSpec.describe BootstrapTimelineService do - subject { described_class.new } + subject { described_class.new.call(new_user.account) } + + let(:invite) { nil } + let(:new_user) { Fabricate(:user, invite_code: invite&.code) } context 'when the new user has registered from an invite' do - let(:service) { instance_double(FollowService) } let(:autofollow) { false } let(:inviter) { Fabricate(:user, confirmed_at: 2.days.ago) } let(:invite) { Fabricate(:invite, user: inviter, max_uses: nil, expires_at: 1.hour.from_now, autofollow: autofollow) } - let(:new_user) { Fabricate(:user, invite_code: invite.code) } - - before do - allow(FollowService).to receive(:new).and_return(service) - allow(service).to receive(:call) - end context 'when the invite has auto-follow enabled' do let(:autofollow) { true } - it 'calls FollowService to follow the inviter' do - subject.call(new_user.account) - expect(service).to have_received(:call).with(new_user.account, inviter.account) + it 'follows the inviter' do + subject + expect(new_user.account.following?(inviter.account)).to be true end end context 'when the invite does not have auto-follow enable' do let(:autofollow) { false } - it 'calls FollowService to follow the inviter' do - subject.call(new_user.account) - expect(service).to_not have_received(:call) + it 'does not follow the inviter' do + subject + expect(new_user.account.following?(inviter.account)).to be false end end end From 2884abacef776889b8998ae9990957926fe39a45 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 25 Mar 2026 17:31:04 +0100 Subject: [PATCH 029/335] Fix item count (#38402) --- app/serializers/activitypub/featured_collection_serializer.rb | 2 +- .../activitypub/featured_collection_serializer_spec.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/serializers/activitypub/featured_collection_serializer.rb b/app/serializers/activitypub/featured_collection_serializer.rb index e37085d4221b4d..00fdb368e683c5 100644 --- a/app/serializers/activitypub/featured_collection_serializer.rb +++ b/app/serializers/activitypub/featured_collection_serializer.rb @@ -32,7 +32,7 @@ def attributed_to end def total_items - object.collection_items.size + object.accepted_collection_items.size end def published diff --git a/spec/serializers/activitypub/featured_collection_serializer_spec.rb b/spec/serializers/activitypub/featured_collection_serializer_spec.rb index b25ec13a52df9a..78b9daf6135791 100644 --- a/spec/serializers/activitypub/featured_collection_serializer_spec.rb +++ b/spec/serializers/activitypub/featured_collection_serializer_spec.rb @@ -76,6 +76,7 @@ it 'only includes accepted items' do items = subject['orderedItems'] + expect(subject['totalItems']).to eq 1 expect(items.size).to eq 1 expect(items.first['id']).to eq ActivityPub::TagManager.instance.uri_for(collection_items.last) end From 31abef8917879917a330419fe3981a2fb7f35b69 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 25 Mar 2026 12:37:02 -0400 Subject: [PATCH 030/335] Remove archive screenshots step from search CI job (#38403) --- .github/workflows/test-ruby.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index cf9e5c240513c0..d0c1d4fbcd9633 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -384,10 +384,3 @@ jobs: with: name: test-search-logs-${{ matrix.ruby-version }} path: log/ - - - name: Archive test screenshots - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 - if: failure() - with: - name: test-search-screenshots - path: tmp/capybara/ From 19806be8ecc387adda4c229fc5e0e7b3af733e4f Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 25 Mar 2026 23:03:33 +0100 Subject: [PATCH 031/335] Fix processing keys from separate documents (#38407) --- app/services/activitypub/process_account_service.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index bc282eeef5cde7..4a5597f2fe8c92 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -289,8 +289,8 @@ def public_keys next unless value['owner'] == @account.uri - value['publicKeyPem'] - { type: :rsa, public_key: :key, uri: key_id } + key = value['publicKeyPem'] + { type: :rsa, public_key: key, uri: key_id } end end From 806e2a993a8de166b96aa046c214f10eb140362f Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 26 Mar 2026 10:58:47 +0100 Subject: [PATCH 032/335] Fix Webfinger endpoint not handling new AP ID scheme (#38391) --- .../well_known/webfinger_controller.rb | 18 +- app/lib/webfinger_resource.rb | 23 +-- spec/lib/webfinger_resource_spec.rb | 154 +++++++++--------- 3 files changed, 88 insertions(+), 107 deletions(-) diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb index 72f0ea890fc654..9536b948f3c1e4 100644 --- a/app/controllers/well_known/webfinger_controller.rb +++ b/app/controllers/well_known/webfinger_controller.rb @@ -18,23 +18,7 @@ def show private def set_account - username = username_from_resource - - @account = begin - if username == Rails.configuration.x.local_domain || username == Rails.configuration.x.web_domain - Account.representative - else - Account.find_local!(username) - end - end - end - - def username_from_resource - resource_user = resource_param - username, domain = resource_user.split('@') - resource_user = "#{username}@#{Rails.configuration.x.local_domain}" if Rails.configuration.x.alternate_domains.include?(domain) - - WebfingerResource.new(resource_user).username + @account = WebfingerResource.new(resource_param).account end def resource_param diff --git a/app/lib/webfinger_resource.rb b/app/lib/webfinger_resource.rb index 95de496a6d5f9f..2d4c6ab2be9368 100644 --- a/app/lib/webfinger_resource.rb +++ b/app/lib/webfinger_resource.rb @@ -9,14 +9,14 @@ def initialize(resource) @resource = resource end - def username + def account case resource when %r{\A(https?://)?#{instance_actor_regexp}/?\Z} - Rails.configuration.x.local_domain + Account.representative when /\Ahttps?/i - username_from_url + account_from_url when /@/ - username_from_acct + account_from_acct else raise InvalidRequest end @@ -31,11 +31,11 @@ def instance_actor_regexp Regexp.union(hosts) end - def username_from_url + def account_from_url if account_show_page? - path_params[:username] + path_params.key?(:username) ? Account.find_local!(path_params[:username]) : Account.local.find(path_params[:id]) elsif instance_actor_page? - Rails.configuration.x.local_domain + Account.representative else raise ActiveRecord::RecordNotFound end @@ -53,10 +53,13 @@ def path_params Rails.application.routes.recognize_path(resource) end - def username_from_acct + def account_from_acct raise ActiveRecord::RecordNotFound unless domain_matches_local? - local_username + username = local_username + return Account.representative if username == Rails.configuration.x.local_domain || username == Rails.configuration.x.web_domain + + Account.find_local!(username) end def split_acct @@ -76,6 +79,6 @@ def local_domain end def domain_matches_local? - TagManager.instance.local_domain?(local_domain) || TagManager.instance.web_domain?(local_domain) + TagManager.instance.local_domain?(local_domain) || TagManager.instance.web_domain?(local_domain) || Rails.configuration.x.alternate_domains.include?(local_domain) end end diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb index 0b86b41c481db3..581fa7264b4961 100644 --- a/spec/lib/webfinger_resource_spec.rb +++ b/spec/lib/webfinger_resource_spec.rb @@ -11,133 +11,127 @@ Rails.configuration.x.web_domain = before_web end - describe '#username' do + describe '#account' do + subject { described_class.new(resource).account } + describe 'with a URL value' do - it 'raises with a route whose controller is not AccountsController' do - resource = 'https://example.com/users/alice/other' + context 'with a route whose controller is not AccountsController' do + let(:resource) { 'https://example.com/users/alice/other' } - expect do - described_class.new(resource).username - end.to raise_error(ActiveRecord::RecordNotFound) + it 'raises an error' do + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) + end end - it 'raises with a route whose action is not show' do - resource = 'https://example.com/users/alice' - - recognized = Rails.application.routes.recognize_path(resource) - allow(recognized).to receive(:[]).with(:controller).and_return('accounts') - allow(recognized).to receive(:[]).with(:username).and_return('alice') - allow(recognized).to receive(:[]).with(:action).and_return('create') + context 'with a string that does not start with an URL' do + let(:resource) { 'website for http://example.com/users/alice.other' } - allow(Rails.application.routes).to receive(:recognize_path).with(resource).and_return(recognized) + it 'raises an error' do + expect { subject }.to raise_error(described_class::InvalidRequest) + end + end - expect do - described_class.new(resource).username - end.to raise_error(ActiveRecord::RecordNotFound) - expect(recognized).to have_received(:[]).exactly(3).times + context 'with a valid HTTPS route to an existing user' do + let(:account) { Fabricate(:account) } + let(:resource) { "https://example.com/users/#{account.username}" } - expect(Rails.application.routes).to have_received(:recognize_path) - .with(resource) - .at_least(:once) + it { is_expected.to eq(account) } end - it 'raises with a string that doesnt start with URL' do - resource = 'website for http://example.com/users/alice/other' + context 'with a valid HTTPS route to an existing user using the new API scheme' do + let(:account) { Fabricate(:account) } + let(:resource) { "https://example.com/ap/users/#{account.id}" } - expect do - described_class.new(resource).username - end.to raise_error(described_class::InvalidRequest) + it { is_expected.to eq(account) } end - it 'finds the username in a valid https route' do - resource = 'https://example.com/users/alice' + context 'with a valid HTTPS route to a non-existing user' do + let(:account) { Fabricate(:account) } + let(:resource) { 'https://example.com/users/alice' } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it 'raises an error' do + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) + end end - it 'finds the username in a mixed case http route' do - resource = 'HTTp://exAMPLe.com/users/alice' + context 'with a mixed case HTTP but valid route to an existing user' do + let(:account) { Fabricate(:account) } + let(:resource) { "HTTp://example.com/users/#{account.username}" } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it { is_expected.to eq(account) } end - it 'finds the username in a valid http route' do - resource = 'http://example.com/users/alice' + context 'with a valid HTTP route to an existing user' do + let(:account) { Fabricate(:account) } + let(:resource) { "http://example.com/users/#{account.username}" } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it { is_expected.to eq(account) } end end describe 'with a username and hostname value' do - it 'raises on a non-local domain' do - resource = 'user@remote-host.com' + context 'with a non-local domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "#{account.username}@remote-host.com" } - expect do - described_class.new(resource).username - end.to raise_error(ActiveRecord::RecordNotFound) + it 'raises an error' do + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) + end end - it 'finds username for a local domain' do - Rails.configuration.x.local_domain = 'example.com' - resource = 'alice@example.com' + context 'with a valid handle for a local user with local domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "#{account.username}@example.com" } + + before { Rails.configuration.x.local_domain = 'example.com' } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it { is_expected.to eq(account) } end - it 'finds username for a web domain' do - Rails.configuration.x.web_domain = 'example.com' - resource = 'alice@example.com' + context 'with a valid handle for a local user with web domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "#{account.username}@example.com" } - result = described_class.new(resource).username - expect(result).to eq 'alice' + before { Rails.configuration.x.web_domain = 'example.com' } + + it { is_expected.to eq(account) } end end describe 'with an acct value' do - it 'raises on a non-local domain' do - resource = 'acct:user@remote-host.com' + context 'with a non-local domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "acct:#{account.username}@remote-host.com" } - expect do - described_class.new(resource).username - end.to raise_error(ActiveRecord::RecordNotFound) + it 'raises an error' do + expect { subject }.to raise_error(ActiveRecord::RecordNotFound) + end end - it 'raises on a nonsense domain' do - resource = 'acct:user@remote-host@remote-hostess.remote.local@remote' - - expect do - described_class.new(resource).username - end.to raise_error(ActiveRecord::RecordNotFound) - end + context 'with a valid handle for a local user with local domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "acct:#{account.username}@example.com" } - it 'finds the username for a local account if the domain is the local one' do - Rails.configuration.x.local_domain = 'example.com' - resource = 'acct:alice@example.com' + before { Rails.configuration.x.local_domain = 'example.com' } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it { is_expected.to eq(account) } end - it 'finds the username for a local account if the domain is the Web one' do - Rails.configuration.x.web_domain = 'example.com' - resource = 'acct:alice@example.com' + context 'with a valid handle for a local user with web domain' do + let(:account) { Fabricate(:account) } + let(:resource) { "acct:#{account.username}@example.com" } + + before { Rails.configuration.x.web_domain = 'example.com' } - result = described_class.new(resource).username - expect(result).to eq 'alice' + it { is_expected.to eq(account) } end end describe 'with a nonsense resource' do - it 'raises InvalidRequest' do - resource = 'df/:dfkj' + let(:resource) { 'df/:dfkj' } - expect do - described_class.new(resource).username - end.to raise_error(described_class::InvalidRequest) + it 'raises an error' do + expect { subject }.to raise_error(described_class::InvalidRequest) end end end From df479d598fbedb96b84c480c5d1d6ae7a95f4a15 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 26 Mar 2026 06:03:17 -0400 Subject: [PATCH 033/335] Expand coverage for `Tag.search_for` method (#38405) --- app/models/admin/tag_filter.rb | 2 +- app/models/tag.rb | 2 +- spec/models/tag_spec.rb | 28 ++++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/app/models/admin/tag_filter.rb b/app/models/admin/tag_filter.rb index 5e75757b2374a7..a35c77bcad1db9 100644 --- a/app/models/admin/tag_filter.rb +++ b/app/models/admin/tag_filter.rb @@ -32,7 +32,7 @@ def scope_for(key, value) when :status status_scope(value) when :name - Tag.search_for(value.to_s.strip, params[:limit], params[:offset], exclude_unlistable: false) + Tag.search_for(value, params[:limit], params[:offset], exclude_unlistable: false) when :order order_scope(value) else diff --git a/app/models/tag.rb b/app/models/tag.rb index b14dfce76366e8..a5fbf2f6837a57 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -128,7 +128,7 @@ def find_or_create_by_names(name_or_names) end def search_for(term, limit = 5, offset = 0, options = {}) - stripped_term = term.strip + stripped_term = term.to_s.strip options.reverse_merge!({ exclude_unlistable: true, exclude_unreviewed: false }) query = Tag.matches_name(stripped_term) diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb index 61ef531fe188e2..d0a06013d29b1b 100644 --- a/spec/models/tag_spec.rb +++ b/spec/models/tag_spec.rb @@ -338,6 +338,23 @@ def previous_name_error_message expect(results).to eq [tag] end + it 'finds tag records from padded term queries' do + tag = Fabricate(:tag, name: 'MATCH') + _miss_tag = Fabricate(:tag, name: 'miss') + + results = described_class.search_for(' match ') + + expect(results) + .to contain_exactly(tag) + end + + it 'handles nil query' do + results = described_class.search_for(nil) + + expect(results) + .to be_empty + end + it 'finds the exact matching tag as the first item' do similar_tag = Fabricate(:tag, name: 'matchlater', reviewed_at: Time.now.utc) tag = Fabricate(:tag, name: 'match', reviewed_at: Time.now.utc) @@ -364,5 +381,16 @@ def previous_name_error_message expect(results).to eq [tag, unlisted_tag] end + + it 'excludes non reviewed tags via option' do + tag = Fabricate(:tag, name: 'match', reviewed_at: 5.days.ago) + unreviewed_tag = Fabricate(:tag, name: 'matchreviewed', reviewed_at: nil) + + results = described_class.search_for('match', 5, 0, exclude_unreviewed: true) + + expect(results) + .to include(tag) + .and not_include(unreviewed_tag) + end end end From 1fb5cb1e679d0df4a64effd3edaeb915d2dc539d Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 26 Mar 2026 11:17:08 +0100 Subject: [PATCH 034/335] Add unique indexes for Collection(Item) URIs (#38409) --- ...1755_add_unique_indexes_to_collections_and_items.rb | 10 ++++++++++ db/schema.rb | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 db/migrate/20260325151755_add_unique_indexes_to_collections_and_items.rb diff --git a/db/migrate/20260325151755_add_unique_indexes_to_collections_and_items.rb b/db/migrate/20260325151755_add_unique_indexes_to_collections_and_items.rb new file mode 100644 index 00000000000000..df8604ebf12efd --- /dev/null +++ b/db/migrate/20260325151755_add_unique_indexes_to_collections_and_items.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class AddUniqueIndexesToCollectionsAndItems < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :collections, :uri, unique: true, where: 'uri IS NOT NULL', algorithm: :concurrently + add_index :collection_items, :uri, unique: true, where: 'uri IS NOT NULL', algorithm: :concurrently + end +end diff --git a/db/schema.rb b/db/schema.rb index 1a839c2493e74c..878ddd9e42ac0d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_03_23_105645) do +ActiveRecord::Schema[8.1].define(version: 2026_03_25_151755) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -374,6 +374,7 @@ t.index ["approval_uri"], name: "index_collection_items_on_approval_uri", unique: true, where: "(approval_uri IS NOT NULL)" t.index ["collection_id"], name: "index_collection_items_on_collection_id" t.index ["object_uri"], name: "index_collection_items_on_object_uri", unique: true, where: "(activity_uri IS NOT NULL)" + t.index ["uri"], name: "index_collection_items_on_uri", unique: true, where: "(uri IS NOT NULL)" end create_table "collection_reports", force: :cascade do |t| @@ -402,6 +403,7 @@ t.string "uri" t.index ["account_id"], name: "index_collections_on_account_id" t.index ["tag_id"], name: "index_collections_on_tag_id" + t.index ["uri"], name: "index_collections_on_uri", unique: true, where: "(uri IS NOT NULL)" end create_table "conversation_mutes", force: :cascade do |t| From 3ebd3952a1e0b7b88884d501af9414df81972ed8 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 26 Mar 2026 11:32:30 +0100 Subject: [PATCH 035/335] Add `formatted_note` and `formatted_fields` to `GET /api/v1/profile` (#38339) --- app/serializers/rest/profile_serializer.rb | 10 ++++++++++ spec/requests/api/v1/profiles_spec.rb | 2 ++ 2 files changed, 12 insertions(+) diff --git a/app/serializers/rest/profile_serializer.rb b/app/serializers/rest/profile_serializer.rb index b96daf87d46324..79b620f0ac462e 100644 --- a/app/serializers/rest/profile_serializer.rb +++ b/app/serializers/rest/profile_serializer.rb @@ -2,9 +2,11 @@ class REST::ProfileSerializer < ActiveModel::Serializer include RoutingHelper + include FormattingHelper # Please update app/javascript/api_types/profile.ts when making changes to the attributes attributes :id, :display_name, :note, :fields, + :formatted_note, :formatted_fields, :avatar, :avatar_static, :avatar_description, :header, :header_static, :header_description, :locked, :bot, :hide_collections, :discoverable, :indexable, @@ -17,10 +19,18 @@ def id object.id.to_s end + def formatted_note + account_bio_format(object) + end + def fields object.fields.map(&:to_h) end + def formatted_fields + object.fields.map { |field| { name: field.name, value: account_field_value_format(field), verified_at: field.verified_at } } + end + def avatar object.avatar_file_name.present? ? full_asset_url(object.avatar_original_url) : nil end diff --git a/spec/requests/api/v1/profiles_spec.rb b/spec/requests/api/v1/profiles_spec.rb index 7d0d1a3622465d..0107b9c404867f 100644 --- a/spec/requests/api/v1/profiles_spec.rb +++ b/spec/requests/api/v1/profiles_spec.rb @@ -44,8 +44,10 @@ 'indexable' => account.indexable, 'display_name' => account.display_name, 'fields' => [], + 'formatted_fields' => [], 'attribution_domains' => [], 'note' => account.note, + 'formatted_note' => account.note, 'show_featured' => account.show_featured, 'show_media' => account.show_media, 'show_media_replies' => account.show_media_replies, From 1dd604df207771f5646de842f5269cf5549dd638 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 11:35:06 +0100 Subject: [PATCH 036/335] New Crowdin Translations (automated) (#38408) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 2 +- app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es-MX.json | 2 +- app/javascript/mastodon/locales/es.json | 25 ++++++++ app/javascript/mastodon/locales/fi.json | 1 - app/javascript/mastodon/locales/fr-CA.json | 22 ++++++- app/javascript/mastodon/locales/fr.json | 22 ++++++- app/javascript/mastodon/locales/ga.json | 2 +- app/javascript/mastodon/locales/gl.json | 15 ++++- app/javascript/mastodon/locales/he.json | 19 ++++++ app/javascript/mastodon/locales/hu.json | 1 - app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/nl.json | 26 +++++++++ app/javascript/mastodon/locales/pl.json | 63 ++++++++++++++++++++ app/javascript/mastodon/locales/pt-BR.json | 1 - app/javascript/mastodon/locales/pt-PT.json | 7 +++ app/javascript/mastodon/locales/sq.json | 2 +- app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/tr.json | 20 +++++++ app/javascript/mastodon/locales/vi.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 4 +- config/locales/ar.yml | 9 --- config/locales/az.yml | 5 -- config/locales/be.yml | 9 --- config/locales/bg.yml | 9 --- config/locales/ca.yml | 9 --- config/locales/cs.yml | 9 --- config/locales/cy.yml | 9 --- config/locales/da.yml | 68 +++++++++++++++++++--- config/locales/de.yml | 37 +++++++++--- config/locales/el.yml | 68 +++++++++++++++++++--- config/locales/en-GB.yml | 9 --- config/locales/eo.yml | 9 --- config/locales/es-AR.yml | 68 +++++++++++++++++++--- config/locales/es-MX.yml | 68 +++++++++++++++++++--- config/locales/es.yml | 68 +++++++++++++++++++--- config/locales/et.yml | 9 --- config/locales/eu.yml | 9 --- config/locales/fa.yml | 9 --- config/locales/fi.yml | 9 --- config/locales/fo.yml | 9 --- config/locales/fr-CA.yml | 9 --- config/locales/fr.yml | 13 +---- config/locales/fy.yml | 9 --- config/locales/ga.yml | 9 --- config/locales/gd.yml | 9 --- config/locales/gl.yml | 10 +--- config/locales/he.yml | 9 --- config/locales/hu.yml | 9 --- config/locales/ia.yml | 9 --- config/locales/is.yml | 62 +++++++++++++++++--- config/locales/it.yml | 10 +--- config/locales/ja.yml | 9 --- config/locales/ko.yml | 9 --- config/locales/lad.yml | 9 --- config/locales/lt.yml | 5 -- config/locales/lv.yml | 9 --- config/locales/ms.yml | 5 -- config/locales/nan-TW.yml | 9 --- config/locales/nl.yml | 9 --- config/locales/nn.yml | 9 --- config/locales/pl.yml | 9 --- config/locales/pt-BR.yml | 61 ++++++++++++++++--- config/locales/pt-PT.yml | 9 --- config/locales/ru.yml | 9 --- config/locales/simple_form.da.yml | 2 + config/locales/simple_form.el.yml | 2 + config/locales/simple_form.es-AR.yml | 2 + config/locales/simple_form.es-MX.yml | 10 ++-- config/locales/simple_form.es.yml | 2 + config/locales/simple_form.fr.yml | 2 +- config/locales/simple_form.is.yml | 2 + config/locales/simple_form.sq.yml | 2 + config/locales/simple_form.vi.yml | 2 + config/locales/simple_form.zh-CN.yml | 2 + config/locales/simple_form.zh-TW.yml | 2 + config/locales/sk.yml | 5 -- config/locales/sl.yml | 9 --- config/locales/sq.yml | 68 +++++++++++++++++++--- config/locales/sv.yml | 9 --- config/locales/th.yml | 9 --- config/locales/tr.yml | 9 --- config/locales/uk.yml | 9 --- config/locales/vi.yml | 65 ++++++++++++++++++--- config/locales/zh-CN.yml | 65 ++++++++++++++++++--- config/locales/zh-TW.yml | 65 ++++++++++++++++++--- 91 files changed, 915 insertions(+), 497 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 888834b3b70ef2..4d00d75d8c93cd 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -141,8 +141,8 @@ "account.unmute": "Не ігнараваць @{name}", "account.unmute_notifications_short": "Апавяшчаць", "account.unmute_short": "Не ігнараваць", + "account_edit.bio.add_label": "Апісаць сябе", "account_edit.bio.edit_label": "Змяніць апісанне", - "account_edit.bio.label": "хто я", "account_edit.bio.placeholder": "Коратка апішыце сябе, каб дапамагчы іншым пазнаць Вас.", "account_edit.bio.title": "Хто я", "account_edit.bio_modal.add_title": "Апісаць сябе", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 512f9cbdf9b306..855bfa64b87ba2 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -141,8 +141,8 @@ "account.unmute": "Vis @{name} igen", "account.unmute_notifications_short": "Vis notifikationer igen", "account.unmute_short": "Vis igen", + "account_edit.bio.add_label": "Tilføj bio", "account_edit.bio.edit_label": "Rediger bio", - "account_edit.bio.label": "bio", "account_edit.bio.placeholder": "Tilføj en kort introduktion, så andre kan få et indtryk af, hvem du er.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Tilføj bio", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 0346c0b0171bbb..8c83dfc1e3dfa3 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -141,8 +141,8 @@ "account.unmute": "Stummschaltung von @{name} aufheben", "account.unmute_notifications_short": "Stummschaltung der Benachrichtigungen aufheben", "account.unmute_short": "Stummschaltung aufheben", + "account_edit.bio.add_label": "Biografie hinzufügen", "account_edit.bio.edit_label": "Biografie bearbeiten", - "account_edit.bio.label": "Biografie", "account_edit.bio.placeholder": "Gib anderen einen Einblick über dich, damit sie wissen, wer du bist.", "account_edit.bio.title": "Über mich", "account_edit.bio_modal.add_title": "Biografie hinzufügen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index a4e907780132b6..783cc969e89c61 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -141,8 +141,8 @@ "account.unmute": "Άρση σίγασης @{name}", "account.unmute_notifications_short": "Σίγαση ειδοποιήσεων", "account.unmute_short": "Κατάργηση σίγασης", + "account_edit.bio.add_label": "Προσθήκη βιογραφικού", "account_edit.bio.edit_label": "Επεξεργασία βιογραφικού", - "account_edit.bio.label": "βιογραφικό", "account_edit.bio.placeholder": "Προσθέστε μια σύντομη εισαγωγή για να βοηθήσετε άλλους να σας αναγνωρίσουν.", "account_edit.bio.title": "Βιογραφικό", "account_edit.bio_modal.add_title": "Προσθήκη βιογραφικού", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 7372b4baead4d2..c072c2d1d5137b 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -141,8 +141,8 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications_short": "Dejar de silenciar notificaciones", "account.unmute_short": "Dejar de silenciar", + "account_edit.bio.add_label": "Agregar biografía", "account_edit.bio.edit_label": "Editar biografía", - "account_edit.bio.label": "biografía", "account_edit.bio.placeholder": "Agregá una breve introducción para ayudar a otras personas a identificarte.", "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Agregar biografía", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 9dd92e85859bd5..91e12c1a6f8610 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -141,8 +141,8 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications_short": "Dejar de silenciar notificaciones", "account.unmute_short": "Dejar de silenciar", + "account_edit.bio.add_label": "Añadir biografía", "account_edit.bio.edit_label": "Editar biografía", - "account_edit.bio.label": "biografía", "account_edit.bio.placeholder": "Añade una breve introducción para ayudar a los demás a identificarte.", "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Añadir biografía", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 4d8f4caa28a266..1cbdf0bb773b33 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -141,27 +141,39 @@ "account.unmute": "Dejar de silenciar a @{name}", "account.unmute_notifications_short": "Dejar de silenciar notificaciones", "account.unmute_short": "Dejar de silenciar", + "account_edit.bio.add_label": "Añadir biografía", + "account_edit.bio.edit_label": "Editar biografía", "account_edit.bio.placeholder": "Añade una breve introducción para ayudar a los demás a identificarte.", "account_edit.bio.title": "Biografía", "account_edit.bio_modal.add_title": "Añadir biografía", "account_edit.bio_modal.edit_title": "Editar biografía", "account_edit.column_button": "Hecho", "account_edit.column_title": "Editar perfil", + "account_edit.custom_fields.add_label": "Añadir campo", + "account_edit.custom_fields.edit_label": "Editar campo", "account_edit.custom_fields.placeholder": "Añade tus pronombres, enlaces externos o cualquier otra cosa que quieras compartir.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Puedes añadir credibilidad fácilmente a tu cuenta de Mastodon verificando los enlaces a tus propias webs.", "account_edit.custom_fields.tip_title": "Consejo: Añade enlaces verificados", "account_edit.custom_fields.title": "Campos personalizados", "account_edit.custom_fields.verified_hint": "¿Cómo añado un enlace verificado?", + "account_edit.display_name.add_label": "Añadir nombre para mostrar", + "account_edit.display_name.edit_label": "Editar nombre para mostrar", "account_edit.display_name.placeholder": "Tu nombre de usuario es el nombre que aparece en tu perfil y en las cronologías.", "account_edit.display_name.title": "Nombre para mostrar", + "account_edit.featured_hashtags.edit_label": "Añadir etiquetas", "account_edit.featured_hashtags.placeholder": "Ayuda a otros a identificar tus temas favoritos y a acceder rápidamente a ellos.", "account_edit.featured_hashtags.title": "Etiquetas destacadas", + "account_edit.field_actions.delete": "Eliminar campo", + "account_edit.field_actions.edit": "Editar campo", "account_edit.field_delete_modal.confirm": "¿Estás seguro de que quieres borrar este campo personalizado? La acción no se puede deshacer.", "account_edit.field_delete_modal.delete_button": "Borrar", "account_edit.field_delete_modal.title": "¿Borrar campo personalizado?", "account_edit.field_edit_modal.add_title": "Añadir campo personalizado", + "account_edit.field_edit_modal.discard_confirm": "Descartar", + "account_edit.field_edit_modal.discard_message": "Tiene cambios no guardados. ¿Seguro que quieres descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", + "account_edit.field_edit_modal.limit_warning": "Se ha superado el límite recomendado de caracteres. Es posible que los usuarios móviles no vean el campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos no usar emojis personalizados combinados con enlaces. Los campos personalizados que contengan ambos solo se mostrarán como texto en vez de un enlace, para evitar confusiones.", "account_edit.field_edit_modal.name_hint": "Ej. \"Web personal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -190,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Editar texto alternativo", "account_edit.image_edit.remove_button": "Quitar imagen", "account_edit.image_edit.replace_button": "Sustituir imagen", + "account_edit.item_list.delete": "Eliminar {name}", + "account_edit.item_list.edit": "Editar {name}", "account_edit.name_modal.add_title": "Añadir nombre para mostrar", "account_edit.name_modal.edit_title": "Editar nombre para mostrar", "account_edit.profile_tab.button_label": "Personalizar", @@ -212,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Suelta para subir", "account_edit.upload_modal.step_upload.header": "Elige una imagen", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF o JPG, hasta {limit}MB.{br}La imagen será escalada a {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Añadir foto de perfil", + "account_edit.upload_modal.title_add.header": "Añadir foto de portada", + "account_edit.upload_modal.title_replace.avatar": "Reemplazar foto de perfil", + "account_edit.upload_modal.title_replace.header": "Reemplazar foto de portada", "account_edit.verified_modal.details": "Añade credibilidad a tu perfil de Mastodon verificando enlaces a tus webs personales. Así es como funciona:", "account_edit.verified_modal.invisible_link.details": "Añade el enlace en el encabezado. La parte importante es rel=\"me\", que evita la suplantación de identidad en webs con contenido generado por usuarios. Incluso puedes utilizar un enlace con etiqueta en el encabezado de la página en vez de {tag}, pero el HTML debe ser accesible sin ejecutar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "¿Cómo puedo hacer el enlace invisible?", @@ -220,10 +238,13 @@ "account_edit.verified_modal.step2.header": "Añade tu web como un campo personalizado", "account_edit.verified_modal.title": "Cómo añadir un enlace verificado", "account_edit_tags.add_tag": "Agregar #{tagName}", + "account_edit_tags.column_title": "Editar Etiquetas", "account_edit_tags.help_text": "Las etiquetas destacadas ayudan a los usuarios a descubrir e interactuar con tu perfil. Aparecen como filtros en la vista de actividad de tu página de perfil.", + "account_edit_tags.max_tags_reached": "Has alcanzado el número máximo de etiquetas destacadas.", "account_edit_tags.search_placeholder": "Introduce una etiqueta…", "account_edit_tags.suggestions": "Sugerencias:", "account_edit_tags.tag_status_count": "{count, plural, one {# publicación} other {# publicaciones}}", + "account_list.total": "{total, plural, one {# cuenta} other {# cuentas}}", "account_note.placeholder": "Haz clic para añadir nota", "admin.dashboard.daily_retention": "Tasa de retención de usuarios por día después del registro", "admin.dashboard.monthly_retention": "Tasa de retención de usuarios por mes después del registro", @@ -339,6 +360,8 @@ "collections.accounts.empty_description": "Añade hasta {count} cuentas que sigas", "collections.accounts.empty_title": "Esta colección está vacía", "collections.collection_description": "Descripción", + "collections.collection_language": "Idioma", + "collections.collection_language_none": "Ninguno", "collections.collection_name": "Nombre", "collections.collection_topic": "Tema", "collections.confirm_account_removal": "¿Estás seguro de que quieres eliminar esta cuenta de la colección?", @@ -662,7 +685,9 @@ "follow_suggestions.who_to_follow": "A quién seguir", "followed_tags": "Etiquetas seguidas", "followers.hide_other_followers": "Este usuario ha elegido no hacer visible sus otros seguidores", + "followers.title": "Siguiendo a {name}", "following.hide_other_following": "Este usuario ha elegido no hacer visible a quién más sigue", + "following.title": "Seguido por {name}", "footer.about": "Acerca de", "footer.about_mastodon": "Acerca de Mastodon", "footer.about_server": "Acerca de {domain}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 0fa0d632f0e987..632f8f54c1925f 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -142,7 +142,6 @@ "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys", "account.unmute_short": "Kumoa mykistys", "account_edit.bio.edit_label": "Muokkaa elämäkertaa", - "account_edit.bio.label": "elämäkerta", "account_edit.bio.placeholder": "Lisää lyhyt esittely, joka auttaa muita tunnistamaan sinut.", "account_edit.bio.title": "Elämäkerta", "account_edit.bio_modal.add_title": "Lisää elämäkerta", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 13923aa50cdaef..bdac463c6bc27d 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -141,27 +141,39 @@ "account.unmute": "Ne plus masquer @{name}", "account.unmute_notifications_short": "Ne plus masquer les notifications", "account.unmute_short": "Ne plus masquer", + "account_edit.bio.add_label": "Ajouter une présentation", + "account_edit.bio.edit_label": "Modifier la présentation", "account_edit.bio.placeholder": "Ajouter une courte introduction pour aider les autres à vous connaître.", "account_edit.bio.title": "Présentation", "account_edit.bio_modal.add_title": "Ajouter une présentation", "account_edit.bio_modal.edit_title": "Modifier la présentation", "account_edit.column_button": "Terminé", "account_edit.column_title": "Modifier le profil", + "account_edit.custom_fields.add_label": "Ajouter un champ", + "account_edit.custom_fields.edit_label": "Modifier le champ", "account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.", "account_edit.custom_fields.reorder_button": "Réorganiser les champs", "account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.", "account_edit.custom_fields.tip_title": "Astuce : ajout de liens vérifiés", "account_edit.custom_fields.title": "Champs personnalisés", "account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?", + "account_edit.display_name.add_label": "Ajouter un nom public", + "account_edit.display_name.edit_label": "Modifier le nom public", "account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.", "account_edit.display_name.title": "Nom public", + "account_edit.featured_hashtags.edit_label": "Ajouter des hashtags", "account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.", "account_edit.featured_hashtags.title": "Hashtags mis en avant", + "account_edit.field_actions.delete": "Supprimer le champ", + "account_edit.field_actions.edit": "Modifier le champ", "account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.", "account_edit.field_delete_modal.delete_button": "Supprimer", "account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?", "account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé", + "account_edit.field_edit_modal.discard_confirm": "Abandonner", + "account_edit.field_edit_modal.discard_message": "Vos modifications n’ont pas été enregistrées. Voulez-vous vraiment les abandonner ?", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", + "account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -190,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Modifier le texte alternatif", "account_edit.image_edit.remove_button": "Supprimer l’image", "account_edit.image_edit.replace_button": "Remplacer l'image", + "account_edit.item_list.delete": "Supprimer {name}", + "account_edit.item_list.edit": "Modifier {name}", "account_edit.name_modal.add_title": "Ajouter un nom public", "account_edit.name_modal.edit_title": "Modifier le nom public", "account_edit.profile_tab.button_label": "Personnaliser", @@ -212,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser", "account_edit.upload_modal.step_upload.header": "Choisir une image", "account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.", + "account_edit.upload_modal.title_add.avatar": "Ajouter une photo de profil", + "account_edit.upload_modal.title_add.header": "Ajouter une photo de couverture", + "account_edit.upload_modal.title_replace.avatar": "Remplacer la photo de profil", + "account_edit.upload_modal.title_replace.header": "Remplacer la photo de couverture", "account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :", "account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?", @@ -220,7 +238,9 @@ "account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé", "account_edit.verified_modal.title": "Comment ajouter un lien vérifié ?", "account_edit_tags.add_tag": "Ajouter #{tagName}", + "account_edit_tags.column_title": "Modifier les hashtags", "account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.", + "account_edit_tags.max_tags_reached": "Vous avez atteint le nombre maximum de hashtags mis en avant.", "account_edit_tags.search_placeholder": "Saisir un hashtag…", "account_edit_tags.suggestions": "Suggestions :", "account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}", @@ -996,7 +1016,7 @@ "onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…", "onboarding.profile.title": "Configuration du profil", "onboarding.profile.upload_avatar": "Importer une photo de profil", - "onboarding.profile.upload_header": "Importer un entête de profil", + "onboarding.profile.upload_header": "Importer une image de couverture", "password_confirmation.exceeds_maxlength": "La confirmation du mot de passe dépasse la longueur maximale du mot de passe", "password_confirmation.mismatching": "Les deux mots de passe ne correspondent pas", "picture_in_picture.restore": "Remettre en place", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 951d25fa2fc7f5..d76f0f8d4f91ed 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -141,27 +141,39 @@ "account.unmute": "Ne plus masquer @{name}", "account.unmute_notifications_short": "Réactiver les notifications", "account.unmute_short": "Ne plus masquer", + "account_edit.bio.add_label": "Ajouter une présentation", + "account_edit.bio.edit_label": "Modifier la présentation", "account_edit.bio.placeholder": "Ajouter une courte introduction pour aider les autres à vous connaître.", "account_edit.bio.title": "Présentation", "account_edit.bio_modal.add_title": "Ajouter une présentation", "account_edit.bio_modal.edit_title": "Modifier la présentation", "account_edit.column_button": "Terminé", "account_edit.column_title": "Modifier le profil", + "account_edit.custom_fields.add_label": "Ajouter un champ", + "account_edit.custom_fields.edit_label": "Modifier le champ", "account_edit.custom_fields.placeholder": "Ajouter vos pronoms, vos sites, ou tout ce que vous voulez partager.", "account_edit.custom_fields.reorder_button": "Réorganiser les champs", "account_edit.custom_fields.tip_content": "Vous pouvez facilement ajouter de la crédibilité à votre compte Mastodon en vérifiant les liens vers tous les sites Web que vous possédez.", "account_edit.custom_fields.tip_title": "Astuce : ajout de liens vérifiés", "account_edit.custom_fields.title": "Champs personnalisés", "account_edit.custom_fields.verified_hint": "Comment ajouter un lien vérifié ?", + "account_edit.display_name.add_label": "Ajouter un nom public", + "account_edit.display_name.edit_label": "Modifier le nom public", "account_edit.display_name.placeholder": "Votre nom public est le nom qui apparaît sur votre profil et dans les fils d'actualités.", "account_edit.display_name.title": "Nom public", + "account_edit.featured_hashtags.edit_label": "Ajouter des hashtags", "account_edit.featured_hashtags.placeholder": "Aider les autres à identifier et à accéder rapidement à vos sujets préférés.", "account_edit.featured_hashtags.title": "Hashtags mis en avant", + "account_edit.field_actions.delete": "Supprimer le champ", + "account_edit.field_actions.edit": "Modifier le champ", "account_edit.field_delete_modal.confirm": "Voulez-vous vraiment supprimer ce champ personnalisé ? Cette action ne peut pas être annulée.", "account_edit.field_delete_modal.delete_button": "Supprimer", "account_edit.field_delete_modal.title": "Supprimer le champ personnalisé ?", "account_edit.field_edit_modal.add_title": "Ajouter un champ personnalisé", + "account_edit.field_edit_modal.discard_confirm": "Abandonner", + "account_edit.field_edit_modal.discard_message": "Vos modifications n’ont pas été enregistrées. Voulez-vous vraiment les abandonner ?", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", + "account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -190,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Modifier le texte alternatif", "account_edit.image_edit.remove_button": "Supprimer l’image", "account_edit.image_edit.replace_button": "Remplacer l'image", + "account_edit.item_list.delete": "Supprimer {name}", + "account_edit.item_list.edit": "Modifier {name}", "account_edit.name_modal.add_title": "Ajouter un nom public", "account_edit.name_modal.edit_title": "Modifier le nom public", "account_edit.profile_tab.button_label": "Personnaliser", @@ -212,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Déposer pour téléverser", "account_edit.upload_modal.step_upload.header": "Choisir une image", "account_edit.upload_modal.step_upload.hint": "Format WebP, PNG, GIF ou JPEG, jusqu'à {limit} Mo.{br}L'image sera redimensionnée à {width} × {height} px.", + "account_edit.upload_modal.title_add.avatar": "Ajouter une photo de profil", + "account_edit.upload_modal.title_add.header": "Ajouter une photo de couverture", + "account_edit.upload_modal.title_replace.avatar": "Remplacer la photo de profil", + "account_edit.upload_modal.title_replace.header": "Remplacer la photo de couverture", "account_edit.verified_modal.details": "Ajouter de la crédibilité à votre profil Mastodon en vérifiant les liens vers vos sites Web personnels. Voici comment cela fonctionne :", "account_edit.verified_modal.invisible_link.details": "Ajouter le lien dans votre en-tête. La partie importante est « rel=\"me\" » qui empêche l'usurpation d'identité sur des sites Web ayant du contenu généré par d'autres utilisateur·rice·s. Vous pouvez aussi utiliser une balise link dans l'en-tête de la page au lieu de {tag}, mais le code HTML doit être accessible sans avoir besoin d'exécuter du JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Comment rendre le lien invisible ?", @@ -220,7 +238,9 @@ "account_edit.verified_modal.step2.header": "Ajouter votre site Web en tant que champ personnalisé", "account_edit.verified_modal.title": "Comment ajouter un lien vérifié ?", "account_edit_tags.add_tag": "Ajouter #{tagName}", + "account_edit_tags.column_title": "Modifier les hashtags", "account_edit_tags.help_text": "Les hashtags mis en avant aident les personnes à découvrir et interagir avec votre profil. Ils apparaissent comme des filtres dans la vue « Activité » de votre profil.", + "account_edit_tags.max_tags_reached": "Vous avez atteint le nombre maximum de hashtags mis en avant.", "account_edit_tags.search_placeholder": "Saisir un hashtag…", "account_edit_tags.suggestions": "Suggestions :", "account_edit_tags.tag_status_count": "{count, plural, one {# message} other {# messages}}", @@ -996,7 +1016,7 @@ "onboarding.profile.note_hint": "Vous pouvez @mentionner d'autres personnes ou #hashtags…", "onboarding.profile.title": "Configuration du profil", "onboarding.profile.upload_avatar": "Importer une photo de profil", - "onboarding.profile.upload_header": "Importer un entête de profil", + "onboarding.profile.upload_header": "Importer une image de couverture", "password_confirmation.exceeds_maxlength": "La confirmation du mot de passe dépasse la longueur du mot de passe", "password_confirmation.mismatching": "Les deux mots de passe ne correspondent pas", "picture_in_picture.restore": "Remettre en place", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index c6b3b1371e9f26..5f8ebf98b83270 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -141,8 +141,8 @@ "account.unmute": "Díbhalbhaigh @{name}", "account.unmute_notifications_short": "Díbhalbhaigh fógraí", "account.unmute_short": "Díbhalbhaigh", + "account_edit.bio.add_label": "Cuir beathaisnéis leis", "account_edit.bio.edit_label": "Cuir beathaisnéis in eagar", - "account_edit.bio.label": "beathaisnéis", "account_edit.bio.placeholder": "Cuir réamhrá gearr leis chun cabhrú le daoine eile tú a aithint.", "account_edit.bio.title": "Beathaisnéis", "account_edit.bio_modal.add_title": "Cuir beathaisnéis leis", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 26b13a7d221d0f..27ad0f4ff891eb 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -141,8 +141,8 @@ "account.unmute": "Deixar de silenciar a @{name}", "account.unmute_notifications_short": "Reactivar notificacións", "account.unmute_short": "Non silenciar", + "account_edit.bio.add_label": "Engadir biografía", "account_edit.bio.edit_label": "Editar biografía", - "account_edit.bio.label": "sobre ti", "account_edit.bio.placeholder": "Escribe unha breve presentación para que te coñezan mellor.", "account_edit.bio.title": "Sobre ti", "account_edit.bio_modal.add_title": "Engadir biografía", @@ -171,7 +171,9 @@ "account_edit.field_delete_modal.title": "Eliminar campo persoal?", "account_edit.field_edit_modal.add_title": "Engadir campo persoal", "account_edit.field_edit_modal.discard_confirm": "Desbotar", + "account_edit.field_edit_modal.discard_message": "Tes cambios sen gardar. Tes certeza de querer desbotalos?", "account_edit.field_edit_modal.edit_title": "Editar campo persoal", + "account_edit.field_edit_modal.limit_warning": "Superouse o límite de caracteres recomendado. Nos móbiles podería non verse a información completa.", "account_edit.field_edit_modal.link_emoji_warning": "Non recomendamos o uso de emojis persoais combinados con URLs. Os campos persoais que conteñen ambos móstranse só como texto e non como unha ligazón, para evitar a confusión de quen os lea.", "account_edit.field_edit_modal.name_hint": "Ex. \"Páxina web persoal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -200,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Editar descrición", "account_edit.image_edit.remove_button": "Retirar a imaxe", "account_edit.image_edit.replace_button": "Substituír a imaxe", + "account_edit.item_list.delete": "Eliminar {name}", + "account_edit.item_list.edit": "Editar {name}", "account_edit.name_modal.add_title": "Engadir nome público", "account_edit.name_modal.edit_title": "Editar o nome público", "account_edit.profile_tab.button_label": "Personalizar", @@ -222,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Solta aquí para subir", "account_edit.upload_modal.step_upload.header": "Escoller unha imaxe", "account_edit.upload_modal.step_upload.hint": "Formato WEBP, PNG, GIF ou JPG, ata {limit}MB.{br}A imaxe será comprimida a {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Engadir foto do perfil", + "account_edit.upload_modal.title_add.header": "Engadir foto da cabeceira", + "account_edit.upload_modal.title_replace.avatar": "Substituír foto do perfil", + "account_edit.upload_modal.title_replace.header": "Substituír foto da cabeceira", "account_edit.verified_modal.details": "Engade maior credibilidade ao teu perfil Mastodon verificando as ligazóns ás túas páxinas web persoais. Funciona así:", "account_edit.verified_modal.invisible_link.details": "Engade a ligazón ao «header» da páxina web. A parte importante é rel=\"me\", que evita a suplantación en sitios web con contido creado polas usuarias. Tamén podes usar a etiqueta «link» na cabeceira da páxina no lugar de {tag}, pero o HTML ten que ser accesible sen usar JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Como fago visible a ligazón?", @@ -230,10 +238,13 @@ "account_edit.verified_modal.step2.header": "Engade a túa páxina como campo persoal", "account_edit.verified_modal.title": "Como engadir unha ligazón verificada", "account_edit_tags.add_tag": "Engadir #{tagName}", + "account_edit_tags.column_title": "Editar etiquetas", "account_edit_tags.help_text": "Os cancelos destacados axúdanlle ás usuarias a atopar e interactuar co teu perfil. Aparecen como filtros na túa páxina de perfil na vista Actividade.", + "account_edit_tags.max_tags_reached": "Acadaches o número máximo de cancelos destacados.", "account_edit_tags.search_placeholder": "Escribe un cancelo…", "account_edit_tags.suggestions": "Suxestións:", "account_edit_tags.tag_status_count": "{count, plural, one {# publicación} other {# publicacións}}", + "account_list.total": "{total, plural, one {# conta} other {# contas}}", "account_note.placeholder": "Preme para engadir nota", "admin.dashboard.daily_retention": "Ratio de retención de usuarias diaria após rexistrarse", "admin.dashboard.monthly_retention": "Ratio de retención de usuarias mensual após o rexistro", @@ -674,7 +685,9 @@ "follow_suggestions.who_to_follow": "A quen seguir", "followed_tags": "Cancelos seguidos", "followers.hide_other_followers": "Esta usuaria escolleu non mostrar as outras persoas que a seguen", + "followers.title": "Seguindo a {name}", "following.hide_other_following": "Esta usuaria escolleu non mostrar as outras persoas que segue", + "following.title": "Seguida por {name}", "footer.about": "Sobre", "footer.about_mastodon": "Sobre Mastodon", "footer.about_server": "Sobre {domain}", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index e56abf8fd6cd0d..39f6a7f60b34dc 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -141,27 +141,38 @@ "account.unmute": "הפסקת השתקת @{name}", "account.unmute_notifications_short": "הפעלת הודעות", "account.unmute_short": "ביטול השתקה", + "account_edit.bio.edit_label": "עריכת ביוגרפיה", "account_edit.bio.placeholder": "הוסיפו הצגה קצרה כדי לעזור לאחרים לזהות אותך.", "account_edit.bio.title": "ביוגרפיה", "account_edit.bio_modal.add_title": "הוסיפו ביוגרפיה", "account_edit.bio_modal.edit_title": "עריכת ביוגרפיה", "account_edit.column_button": "סיום", "account_edit.column_title": "עריכת הפרופיל", + "account_edit.custom_fields.add_label": "הוספת שדה", + "account_edit.custom_fields.edit_label": "עריכת שדה", "account_edit.custom_fields.placeholder": "הוסיפו צורת פניה, קישורים חיצוניים וכל דבר שתרצו לשתף.", "account_edit.custom_fields.reorder_button": "הגדרת סדר השדות", "account_edit.custom_fields.tip_content": "ניתן להוסיף אמינות לחשבון המסטודון שלך על ידי וידוא קישורים לאתרים שבבעלותך.", "account_edit.custom_fields.tip_title": "טיפ: הוספת קישורים מוודאים", "account_edit.custom_fields.title": "שדות בהתאמה אישית", "account_edit.custom_fields.verified_hint": "כיצד תוסיפו קישורים מוודאים?", + "account_edit.display_name.add_label": "הוספת שם תצוגה", + "account_edit.display_name.edit_label": "עריכת שם תצוגה", "account_edit.display_name.placeholder": "שם התצוגה שלכן הוא איך שהשם יופיע בפרופיל ובצירי הזמנים.", "account_edit.display_name.title": "שם תצוגה", + "account_edit.featured_hashtags.edit_label": "הוספת תגיות", "account_edit.featured_hashtags.placeholder": "עזרו לאחרים לזהות ולגשת בקלות לנושאים החביבים עליכם.", "account_edit.featured_hashtags.title": "תגיות נבחרות", + "account_edit.field_actions.delete": "מחיקת שדה", + "account_edit.field_actions.edit": "עריכת שדה", "account_edit.field_delete_modal.confirm": "האם אתם בטוחיםות שברצונכן למחוק את השדה המיוחד הזה? פעולה זו לא ניתנת לביטול.", "account_edit.field_delete_modal.delete_button": "מחק", "account_edit.field_delete_modal.title": "מחיקת שדה מתואם אישית?", "account_edit.field_edit_modal.add_title": "הוסף שדה מותאם אישית", + "account_edit.field_edit_modal.discard_confirm": "השלך", + "account_edit.field_edit_modal.discard_message": "יש שינויים שלא נשמרו. לסלק אותם?", "account_edit.field_edit_modal.edit_title": "עריכת שדה מותאם אישית", + "account_edit.field_edit_modal.limit_warning": "עברת את מספר התווים המירבי המומלץ. משתמשים בנייד עלולים שלא לראות את השדה המלא.", "account_edit.field_edit_modal.link_emoji_warning": "אנו ממליצים נגד שימוש באמוג'י ייחודיים ביחד עם URL. שדות מיוחדים שמכילים את שניהם יופיעו כמלל בלבד ולא כקישור, כדי למנוע בלבול משתמשים.", "account_edit.field_edit_modal.name_hint": "למשל \"אתר אישי\"", "account_edit.field_edit_modal.name_label": "תווית", @@ -190,6 +201,8 @@ "account_edit.image_edit.alt_edit_button": "עריכת מלל חלופי", "account_edit.image_edit.remove_button": "הסרת תמונה", "account_edit.image_edit.replace_button": "החלפת תמונה", + "account_edit.item_list.delete": "מחיקת {name}", + "account_edit.item_list.edit": "עריכת {name}", "account_edit.name_modal.add_title": "הוספת שם תצוגה", "account_edit.name_modal.edit_title": "עריכת שם תצוגה", "account_edit.profile_tab.button_label": "התאמה אישית", @@ -212,6 +225,10 @@ "account_edit.upload_modal.step_upload.dragging": "גרור להעלאה", "account_edit.upload_modal.step_upload.header": "בחר/י תמונה", "account_edit.upload_modal.step_upload.hint": "תכנים בתקן WEBP, PNG, GIF או JPG, עד לגודל {limit} מ\"ב.{br}התמונה תתוקן לגודל {width} על {height} פיקסלים.", + "account_edit.upload_modal.title_add.avatar": "הוספת תמונת פרופיל", + "account_edit.upload_modal.title_add.header": "הוספת תמונת מסגרת", + "account_edit.upload_modal.title_replace.avatar": "החלפת תמונת פרופיל", + "account_edit.upload_modal.title_replace.header": "החלפת תמונת מסגרת", "account_edit.verified_modal.details": "הוספת אמינות לחשבון המסטודון על ידי הוספת קישורים מוודאים לאתרים אישיים. כך זה עובד:", "account_edit.verified_modal.invisible_link.details": "הוסיפו את הקישור בכותרת. החלק החשוב הוא rel=\"me\" שמונע התחזות על אתרים עם תוכן משתמשים. ניתן גם ליצור תגית link בכותרת העמוד במקום קישור {tag} אבל קוד ה־HTML חייב להופיע שם ללא הרצה של ג'אווהסקריפט.", "account_edit.verified_modal.invisible_link.summary": "כיצד לגרום לקישור להיות בלתי נראה?", @@ -220,7 +237,9 @@ "account_edit.verified_modal.step2.header": "הוסיפו את אתרכן בשדה המיוחד", "account_edit.verified_modal.title": "כיצד תוסיפו קישורים מוודאים", "account_edit_tags.add_tag": "הוספת #{tagName}", + "account_edit_tags.column_title": "עריכת תגיות", "account_edit_tags.help_text": "תגיות נבחרות עוזרות למשתמשים לגלות ולהשתמש בפרופיל שלך. הן יופיעו כסננים במבט הפעילויות על עמוד הפרופיל שלך.", + "account_edit_tags.max_tags_reached": "הגעת למספר התגיות הנבחרות המירבי.", "account_edit_tags.search_placeholder": "הזנת תגית…", "account_edit_tags.suggestions": "הצעות:", "account_edit_tags.tag_status_count": "{count, plural, one {הודעה אחת} two {הודעותיים} other {# הודעות}}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 48fd189c40b7aa..7735fbe1ff2834 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -142,7 +142,6 @@ "account.unmute_notifications_short": "Értesítések némításának feloldása", "account.unmute_short": "Némitás feloldása", "account_edit.bio.edit_label": "Bemutatkozás szerkesztése", - "account_edit.bio.label": "bemutatkozás", "account_edit.bio.placeholder": "Adj meg egy rövid bemutatkozást, hogy mások könnyebben megtaláljanak.", "account_edit.bio.title": "Bemutatkozás", "account_edit.bio_modal.add_title": "Bemutatkozás hozzáadása", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 512102f6fa7528..9476dc6f923d6f 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -141,8 +141,8 @@ "account.unmute": "Hætta að þagga niður í @{name}", "account.unmute_notifications_short": "Hætta að þagga í tilkynningum", "account.unmute_short": "Hætta að þagga niður", + "account_edit.bio.add_label": "Bættu við æviágripi", "account_edit.bio.edit_label": "Breyta æviágripi", - "account_edit.bio.label": "æviágrip", "account_edit.bio.placeholder": "Settu inn stutta kynningu á þér svo aðrir eigi betur með að auðkenna þig.", "account_edit.bio.title": "Æviágrip", "account_edit.bio_modal.add_title": "Bættu við æviágripi", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index f8bd1f1039a7e8..1c62bdc03030fe 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -141,8 +141,8 @@ "account.unmute": "Riattiva @{name}", "account.unmute_notifications_short": "Riattiva notifiche", "account.unmute_short": "Attiva audio", + "account_edit.bio.add_label": "Aggiungi biografia", "account_edit.bio.edit_label": "Modifica la biografia", - "account_edit.bio.label": "biografia", "account_edit.bio.placeholder": "Aggiungi una breve introduzione per aiutare gli altri a identificarti.", "account_edit.bio.title": "Biografia", "account_edit.bio_modal.add_title": "Aggiungi biografia", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index d53f17eb659b09..6f573b080a436a 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -141,27 +141,38 @@ "account.unmute": "@{name} niet langer negeren", "account.unmute_notifications_short": "Meldingen niet langer negeren", "account.unmute_short": "Niet langer negeren", + "account_edit.bio.edit_label": "Biografie bewerken", "account_edit.bio.placeholder": "Vertel iets over jezelf, zodat anderen inzicht krijgen in wat voor persoon je bent.", "account_edit.bio.title": "Biografie", "account_edit.bio_modal.add_title": "Biografie toevoegen", "account_edit.bio_modal.edit_title": "Biografie bewerken", "account_edit.column_button": "Klaar", "account_edit.column_title": "Profiel bewerken", + "account_edit.custom_fields.add_label": "Veld toevoegen", + "account_edit.custom_fields.edit_label": "Veld bewerken", "account_edit.custom_fields.placeholder": "Voeg je voornaamwoorden, externe links of iets anders toe dat je wilt delen.", "account_edit.custom_fields.reorder_button": "Velden opnieuw ordenen", "account_edit.custom_fields.tip_content": "Je kunt gemakkelijk je Mastodon-account geloofwaardig maken door links naar websites die van jou zijn te laten verifiëren.", "account_edit.custom_fields.tip_title": "Tip: Geverifieerde links toevoegen", "account_edit.custom_fields.title": "Extra velden", "account_edit.custom_fields.verified_hint": "Hoe voeg ik een geverifieerde link toe?", + "account_edit.display_name.add_label": "Weergavenaam toevoegen", + "account_edit.display_name.edit_label": "Weergavenaam bewerken", "account_edit.display_name.placeholder": "Je weergavenaam wordt op jouw profiel en op tijdlijnen weergegeven.", "account_edit.display_name.title": "Weergavenaam", + "account_edit.featured_hashtags.edit_label": "Hashtags toevoegen", "account_edit.featured_hashtags.placeholder": "Geef anderen een overzicht van en snel toegang tot je favoriete onderwerpen.", "account_edit.featured_hashtags.title": "Uitgelichte hashtags", + "account_edit.field_actions.delete": "Veld verwijderen", + "account_edit.field_actions.edit": "Veld bewerken", "account_edit.field_delete_modal.confirm": "Weet je zeker dat je dit aangepaste veld wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.", "account_edit.field_delete_modal.delete_button": "Verwijderen", "account_edit.field_delete_modal.title": "Aangepast veld verwijderen?", "account_edit.field_edit_modal.add_title": "Aangepast veld toevoegen", + "account_edit.field_edit_modal.discard_confirm": "Weggooien", + "account_edit.field_edit_modal.discard_message": "U heeft niet-opgeslagen wijzigingen. Weet u zeker dat u ze wilt weggooien?", "account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken", + "account_edit.field_edit_modal.limit_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk uw veld niet volledig.", "account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.", "account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"", "account_edit.field_edit_modal.name_label": "Label", @@ -190,6 +201,8 @@ "account_edit.image_edit.alt_edit_button": "Alt-tekst bewerken", "account_edit.image_edit.remove_button": "Afbeelding verwijderen", "account_edit.image_edit.replace_button": "Afbeelding vervangen", + "account_edit.item_list.delete": "{name} verwijderen", + "account_edit.item_list.edit": "{name} bewerken", "account_edit.name_modal.add_title": "Weergavenaam toevoegen", "account_edit.name_modal.edit_title": "Weergavenaam bewerken", "account_edit.profile_tab.button_label": "Aanpassen", @@ -212,6 +225,10 @@ "account_edit.upload_modal.step_upload.dragging": "Hierheen slepen om te uploaden", "account_edit.upload_modal.step_upload.header": "Kies een afbeelding", "account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- of JPG-formaat, tot max. {limit}MB.{br}Afbeelding wordt geschaald naar {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Profielfoto toevoegen", + "account_edit.upload_modal.title_add.header": "Omslagfoto toevoegen", + "account_edit.upload_modal.title_replace.avatar": "Profielfoto vervangen", + "account_edit.upload_modal.title_replace.header": "Omslagfoto vervangen", "account_edit.verified_modal.details": "Maak je Mastodonprofiel geloofwaardig door links naar persoonlijke websites te verifiëren. Zo werkt het:", "account_edit.verified_modal.invisible_link.details": "Voeg de link aan de HTML van je website toe. Het belangrijkste onderdeel is rel=\"me\", waarmee wordt voorkomen dat websites met user-generated content geïmpersoneerd kunnen worden. Je kunt zelfs een -tag gebruiken binnen de -tag van je website in plaats van {tag}, maar de HTML moet zonder JavaScript toegankelijk zijn.", "account_edit.verified_modal.invisible_link.summary": "Hoe maak ik de link onzichtbaar?", @@ -220,10 +237,13 @@ "account_edit.verified_modal.step2.header": "Voeg je website toe als een aangepast veld", "account_edit.verified_modal.title": "Hoe voeg je een geverifieerde link toe", "account_edit_tags.add_tag": "#{tagName} toevoegen", + "account_edit_tags.column_title": "Labels bewerken", "account_edit_tags.help_text": "Uitgelichte hashtags helpen gebruikers je profiel te ontdekken en om er interactie mee te communiceren. Ze verschijnen als filters op je Profielpagina onder het tabblad Activiteit.", + "account_edit_tags.max_tags_reached": "Maximum aantal uitgelichte hashtags bereikt.", "account_edit_tags.search_placeholder": "Voer een hashtag in…", "account_edit_tags.suggestions": "Suggesties:", "account_edit_tags.tag_status_count": "{count, plural, one {# bericht} other {# berichten}}", + "account_list.total": "{total, plural, one {# account} other {# accounts}}", "account_note.placeholder": "Klik om een opmerking toe te voegen", "admin.dashboard.daily_retention": "Retentiegraad van gebruikers per dag, vanaf registratie", "admin.dashboard.monthly_retention": "Retentiegraad van gebruikers per maand, vanaf registratie", @@ -618,6 +638,10 @@ "featured_carousel.header": "{count, plural, one {Vastgezet bericht} other {Vastgezette berichten}}", "featured_carousel.slide": "Bericht {current, number} van {max, number}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "De laatste tijd heb over {items} gepost. Deze toevoegen als uitgelichte hashtags?", + "featured_tags.suggestions.add": "Toevoegen", + "featured_tags.suggestions.added": "Je kunt je uitgelichte hashtags beheren onder Profiel bewerken > Uitgelichte hashtags.", + "featured_tags.suggestions.dismiss": "Nee, bedankt", "filter_modal.added.context_mismatch_explanation": "Deze filtercategorie is niet van toepassing op de context waarin je dit bericht hebt benaderd. Als je wilt dat het bericht ook in deze context wordt gefilterd, moet je het filter bewerken.", "filter_modal.added.context_mismatch_title": "Context komt niet overeen!", "filter_modal.added.expired_explanation": "Deze filtercategorie is verlopen. Je moet de vervaldatum wijzigen om de categorie toe te kunnen passen.", @@ -660,7 +684,9 @@ "follow_suggestions.who_to_follow": "Wie te volgen", "followed_tags": "Gevolgde hashtags", "followers.hide_other_followers": "Deze gebruiker heeft ervoor gekozen diens andere volgers niet zichtbaar te maken", + "followers.title": "{name} volgen", "following.hide_other_following": "Deze gebruiker heeft ervoor gekozen de rest van diens gevolgde accounts niet zichtbaar te maken", + "following.title": "Gevolgd door {name}", "footer.about": "Over", "footer.about_mastodon": "Over Mastodon", "footer.about_server": "Over {domain}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 88b21f47caecf7..c3642f25c0b68d 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -14,9 +14,16 @@ "about.powered_by": "Zdecentralizowane media społecznościowe napędzane przez {mastodon}", "about.rules": "Regulamin serwera", "account.account_note_header": "Notatka", + "account.activity": "Aktywność", + "account.add_note": "Dodaj osobistą notkę", "account.add_or_remove_from_list": "Dodaj lub usuń z list", + "account.badges.admin": "Admin", + "account.badges.blocked": "Zablokowane", "account.badges.bot": "Bot", + "account.badges.domain_blocked": "Zablokowana domena", "account.badges.group": "Grupa", + "account.badges.muted": "Wyciszone", + "account.badges.muted_until": "Wyciszone do {until}", "account.block": "Blokuj @{name}", "account.block_domain": "Blokuj wszystko z {domain}", "account.block_short": "Zablokuj", @@ -27,6 +34,7 @@ "account.direct": "Napisz bezpośrednio do @{name}", "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}", "account.domain_blocking": "Blokowanie domeny", + "account.edit_note": "Edytuj osobistą notkę", "account.edit_profile": "Edytuj profil", "account.edit_profile_short": "Edytuj", "account.enable_notifications": "Powiadamiaj mnie o wpisach @{name}", @@ -36,9 +44,17 @@ "account.familiar_followers_two": "To konto jest obserwowane przez {name1} i {name2}", "account.featured": "Wyróżnione", "account.featured.accounts": "Profile", + "account.featured.collections": "Kolekcje", "account.featured.hashtags": "Tagi", "account.featured_tags.last_status_at": "Ostatni post {date}", "account.featured_tags.last_status_never": "Brak postów", + "account.field_overflow": "Pokaż całą zawartość", + "account.filters.all": "Wszystkie aktywności", + "account.filters.boosts_toggle": "Pokaż ulepszenia", + "account.filters.posts_boosts": "Posty i ulepszenia", + "account.filters.posts_only": "Posty", + "account.filters.posts_replies": "Posty i odpowiedzi", + "account.filters.replies_toggle": "Pokaż odpowiedzi", "account.follow": "Obserwuj", "account.follow_back": "Również obserwuj", "account.follow_back_short": "Również obserwuj", @@ -63,6 +79,24 @@ "account.locked_info": "To konto jest prywatne. Właściciel ręcznie wybiera kto może go obserwować.", "account.media": "Multimedia", "account.mention": "Wspomnij o @{name}", + "account.menu.add_to_list": "Dodaj do listy…", + "account.menu.block": "Zablokuj konto", + "account.menu.block_domain": "Zablokuj {domain}", + "account.menu.copied": "Skopiowano link do konta do schowka", + "account.menu.copy": "Skopiuj link", + "account.menu.direct": "Prywatna wzmianka", + "account.menu.hide_reblogs": "Ukryj ulepszenia na osi czasu", + "account.menu.mention": "Wzmianka", + "account.menu.mute": "Wycisz konta", + "account.menu.note.description": "Widoczne tylko dla Ciebie", + "account.menu.open_original_page": "Zobacz na {domain}", + "account.menu.remove_follower": "Usuń obserwującego", + "account.menu.report": "Zgłoś konto", + "account.menu.share": "Udostępnij...", + "account.menu.show_reblogs": "Pokaż ulepszenia na osi czasu", + "account.menu.unblock": "Odblokuj konto", + "account.menu.unblock_domain": "Odblokuj {domain}", + "account.menu.unmute": "Odcisz konto", "account.moved_to": "{name} jako swoje nowe konto wskazał/a:", "account.mute": "Wycisz @{name}", "account.mute_notifications_short": "Wycisz powiadomienia", @@ -90,6 +124,35 @@ "account.unmute": "Nie wyciszaj @{name}", "account.unmute_notifications_short": "Nie wyciszaj powiadomień", "account.unmute_short": "Nie wyciszaj", + "account_edit.bio_modal.add_title": "Szczegóły profilu", + "account_edit.bio_modal.edit_title": "Edytuj szczegóły profilu", + "account_edit.column_button": "Gotowe", + "account_edit.column_title": "Edytuj profil", + "account_edit.custom_fields.add_label": "Dodaj pole", + "account_edit.custom_fields.edit_label": "Edytuj pole", + "account_edit.custom_fields.placeholder": "Dodaj swoje zaimki, linki zewnętrzne lub cokolwiek innego, które chcesz udostępnić.", + "account_edit.custom_fields.reorder_button": "Zmień kolejność pól", + "account_edit.custom_fields.tip_content": "Możesz z łatwością zwiększyć wiarygodność swojego konta Mastodon poprzez weryfikację linków do wszelkich stron internetowych, które posiadasz.", + "account_edit.custom_fields.tip_title": "Wskazówka: Dodawanie zweryfikowanych linków", + "account_edit.custom_fields.title": "Pola niestandardowe", + "account_edit.custom_fields.verified_hint": "Jak dodać zweryfikowany link?", + "account_edit.display_name.add_label": "Dodaj nazwę wyświetlaną", + "account_edit.display_name.edit_label": "Edytuj nazwę wyświetlaną", + "account_edit.display_name.placeholder": "Twoja nazwa wyświetlana jest jak Twoja nazwa pojawia się na Twoim profilu i na osi czasu.", + "account_edit.display_name.title": "Wyświetlana nazwa", + "account_edit.featured_hashtags.edit_label": "Dodaj hashtagi", + "account_edit.featured_hashtags.placeholder": "Pomóż innym zidentyfikować i mieć szybki dostęp do Twoich ulubionych tematów.", + "account_edit.featured_hashtags.title": "Wyróżnione hashtagi", + "account_edit.field_actions.delete": "Usuń pole", + "account_edit.field_actions.edit": "Edytuj pole", + "account_edit.field_delete_modal.confirm": "Czy na pewno chcesz usunąć to pole niestandardowe? Tej czynności nie można cofnąć.", + "account_edit.field_delete_modal.delete_button": "Usuń", + "account_edit.field_delete_modal.title": "Usuń pole niestandardowe ", + "account_edit.field_edit_modal.add_title": "Dodaj pole niestandardowe", + "account_edit.field_edit_modal.discard_confirm": "Odrzuć", + "account_edit.field_edit_modal.discard_message": "Masz niezapisane zmiany. Czy na pewno chcesz je odrzucić?", + "account_edit.field_edit_modal.edit_title": "Edytuj dodatkowe pole", + "account_edit.field_edit_modal.limit_warning": "Przekroczono limit zalecanych znaków. Użytkownicy mobilni mogą nie widzieć Twojego pola w całości.", "account_note.placeholder": "Kliknij, aby dodać notatkę", "admin.dashboard.daily_retention": "Wskaźnik utrzymania użytkowników według dni od rejestracji", "admin.dashboard.monthly_retention": "Wskaźnik utrzymania użytkowników według miesięcy od rejestracji", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index b0b49bc117db24..0d067c6d8c2f8e 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -142,7 +142,6 @@ "account.unmute_notifications_short": "Ativar som de notificações", "account.unmute_short": "Desativar silêncio", "account_edit.bio.edit_label": "Editar Biografia", - "account_edit.bio.label": "biografia", "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Adicionar biografia", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 62339bf622e72d..b31772b7af1f5c 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -141,12 +141,16 @@ "account.unmute": "Desocultar @{name}", "account.unmute_notifications_short": "Desocultar notificações", "account.unmute_short": "Desocultar", + "account_edit.bio.add_label": "Adicionar biografia", + "account_edit.bio.edit_label": "Editar biografia", "account_edit.bio.placeholder": "Adicione uma breve apresentação para ajudar os outros a identificá-lo.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Adicionar biografia", "account_edit.bio_modal.edit_title": "Editar biografia", "account_edit.column_button": "Concluído", "account_edit.column_title": "Editar Perfil", + "account_edit.custom_fields.add_label": "Adicionar campo", + "account_edit.custom_fields.edit_label": "Editar campo", "account_edit.custom_fields.placeholder": "Adicione os seus pronomes, hiperligações externas ou qualquer outra coisa que queira partilhar.", "account_edit.custom_fields.reorder_button": "Reordenar campos", "account_edit.custom_fields.tip_content": "Pode adicionar facilmente credibilidade à sua conta Mastodon, verificando ligações para qualquer website que possua.", @@ -157,10 +161,13 @@ "account_edit.display_name.title": "Nome a mostrar", "account_edit.featured_hashtags.placeholder": "Ajude à sua identificação por outros e tenha acesso rápido aos seus tópicos favoritos.", "account_edit.featured_hashtags.title": "Etiquetas em destaque", + "account_edit.field_actions.delete": "Eliminar campo", + "account_edit.field_actions.edit": "Editar campo", "account_edit.field_delete_modal.confirm": "Tem certeza de que deseja excluir este campo personalizado? Esta ação não pode ser desfeita.", "account_edit.field_delete_modal.delete_button": "Excluir", "account_edit.field_delete_modal.title": "Excluir campo personalizado?", "account_edit.field_edit_modal.add_title": "Adicionar campo personalizado", + "account_edit.field_edit_modal.discard_confirm": "Descartar", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", "account_edit.field_edit_modal.link_emoji_warning": "Não recomendamos o uso de emojis personalizados em combinação com URLs. Campos personalizados que contenham ambos serão exibidos apenas como texto, em vez de como hiperligação, para evitar confusão aos utilizadores.", "account_edit.field_edit_modal.name_hint": "Ex.: \"Site pessoal\"", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index b65762ddf6d153..4965eaac16a5ed 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -141,8 +141,8 @@ "account.unmute": "Ktheji zërin @{name}", "account.unmute_notifications_short": "Shfaqi njoftimet", "account.unmute_short": "Çheshtoje", + "account_edit.bio.add_label": "Shtoni jetëshkrim", "account_edit.bio.edit_label": "Përpunoni jetëshkrim", - "account_edit.bio.label": "jetëshkrim", "account_edit.bio.placeholder": "Shtoni një hyrje të shkurtër për të ndihmuar të tjerët t’ju identifikojnë.", "account_edit.bio.title": "Jetëshkrim", "account_edit.bio_modal.add_title": "Shtoni jetëshkrim", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 9b0dae15eccec6..e8af5b70789b59 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -134,6 +134,7 @@ "account.unmute": "Sluta tysta @{name}", "account.unmute_notifications_short": "Aktivera aviseringsljud", "account.unmute_short": "Avtysta", + "account_edit.bio.add_label": "Lägg till biografi", "account_edit.bio.placeholder": "Lägg till en kort introduktion för att hjälpa andra att identifiera dig.", "account_edit.bio.title": "Biografi", "account_edit.bio_modal.add_title": "Lägg till biografi", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index c30e20c8670b4c..4f13dec3c340bf 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -141,27 +141,39 @@ "account.unmute": "@{name} adlı kişinin sesini aç", "account.unmute_notifications_short": "Bildirimlerin sesini aç", "account.unmute_short": "Susturmayı kaldır", + "account_edit.bio.add_label": "Kişisel bilgi ekle", + "account_edit.bio.edit_label": "Kişisel bilgiyi düzenle", "account_edit.bio.placeholder": "Diğerlerinin sizi tanımasına yardımcı olmak için kısa bir tanıtım ekleyin.", "account_edit.bio.title": "Kişisel bilgiler", "account_edit.bio_modal.add_title": "Kişisel bilgi ekle", "account_edit.bio_modal.edit_title": "Kişisel bilgiyi düzenle", "account_edit.column_button": "Tamamlandı", "account_edit.column_title": "Profili Düzenle", + "account_edit.custom_fields.add_label": "Alan ekle", + "account_edit.custom_fields.edit_label": "Alanı düzenle", "account_edit.custom_fields.placeholder": "Zamirlerinizi, harici bağlantılarınızı veya paylaşmak istediğiniz diğer bilgileri ekleyin.", "account_edit.custom_fields.reorder_button": "Alanları yeniden sırala", "account_edit.custom_fields.tip_content": "Sahip olduğunuz web sitelerine bağlantıları doğrulayarak Mastodon hesabınıza kolayca güvenilirlik katabilirsiniz.", "account_edit.custom_fields.tip_title": "İpucu: Doğrulanmış bağlantılar ekleme", "account_edit.custom_fields.title": "Özel alanlar", "account_edit.custom_fields.verified_hint": "Doğrulanmış bir bağlantı nasıl eklerim?", + "account_edit.display_name.add_label": "Görüntülenecek ad ekle", + "account_edit.display_name.edit_label": "Görüntülenecek adı düzenle", "account_edit.display_name.placeholder": "Görünen adınız profilinizde ve zaman akışlarında adınızın nasıl göründüğüdür.", "account_edit.display_name.title": "Görünen ad", + "account_edit.featured_hashtags.edit_label": "Etiket ekle", "account_edit.featured_hashtags.placeholder": "Başkalarının favori konularınızı tanımlamasına ve bunlara hızlı bir şekilde erişmesine yardımcı olun.", "account_edit.featured_hashtags.title": "Öne çıkan etiketler", + "account_edit.field_actions.delete": "Alanı sil", + "account_edit.field_actions.edit": "Alanı düzenle", "account_edit.field_delete_modal.confirm": "Bu özel alanı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.", "account_edit.field_delete_modal.delete_button": "Sil", "account_edit.field_delete_modal.title": "Özel alanı sil?", "account_edit.field_edit_modal.add_title": "Özel alan ekle", + "account_edit.field_edit_modal.discard_confirm": "Yoksay", + "account_edit.field_edit_modal.discard_message": "Kaydedilmemiş değişiklikleriniz var. Bunları silmek istediğinizden emin misiniz?", "account_edit.field_edit_modal.edit_title": "Özel alanı düzenle", + "account_edit.field_edit_modal.limit_warning": "Önerilen karakter sınırı aşıldı. Mobil kullanıcılar sahayı tam olarak görmeyebilirler.", "account_edit.field_edit_modal.link_emoji_warning": "Url'lerle birlikte özel emoji kullanmamanızı öneririz. Her ikisini de içeren özel alanlar, kullanıcıların kafasını karıştırmamak için bağlantı yerine yalnızca metin olarak görüntülenir.", "account_edit.field_edit_modal.name_hint": "Örn. \"Kişisel web sitesi\"", "account_edit.field_edit_modal.name_label": "Etiket", @@ -190,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "Alternatif metni düzenle", "account_edit.image_edit.remove_button": "Görseli kaldır", "account_edit.image_edit.replace_button": "Görseli değiştir", + "account_edit.item_list.delete": "{name} sil", + "account_edit.item_list.edit": "{name} düzenle", "account_edit.name_modal.add_title": "Görünen ad ekle", "account_edit.name_modal.edit_title": "Görünen adı düzenle", "account_edit.profile_tab.button_label": "Özelleştir", @@ -212,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Yüklemek için bırakın", "account_edit.upload_modal.step_upload.header": "Bir resim seç", "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF veya JPG formatında, en fazla {limit} MB.{br}Görsel {width}x{height} piksel boyutuna getirilir.", + "account_edit.upload_modal.title_add.avatar": "Profil fotoğrafı ekle", + "account_edit.upload_modal.title_add.header": "Kapak fotoğrafı ekle", + "account_edit.upload_modal.title_replace.avatar": "Profil fotoğrafını değiştir", + "account_edit.upload_modal.title_replace.header": "Kapak fotoğrafını değiştirin", "account_edit.verified_modal.details": "Kişisel web sitelerine bağlantıları doğrulayarak Mastodon profilinize güvenilirlik katın. İşte böyle çalışıyor:", "account_edit.verified_modal.invisible_link.details": "Bağlantıyı başlığınıza ekleyin. Önemli olan kısım, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimlik sahtekarlığını önleyen rel=\"me\" özniteliğidir. {tag} yerine sayfanın başlığında bir bağlantı etiketi bile kullanabilirsiniz, ancak HTML, JavaScript çalıştırılmadan erişilebilir olmalıdır.", "account_edit.verified_modal.invisible_link.summary": "Bağlantıyı nasıl görünmez hale getirebilirim?", @@ -220,7 +238,9 @@ "account_edit.verified_modal.step2.header": "Web sitenizi özel bir alan olarak ekleyin", "account_edit.verified_modal.title": "Doğrulanmış bir bağlantı nasıl eklenir", "account_edit_tags.add_tag": "#{tagName} ekle", + "account_edit_tags.column_title": "Etiketleri Düzenle", "account_edit_tags.help_text": "Öne çıkan etiketler kullanıcıların profilinizi keşfetmesine ve etkileşim kurmasına yardımcı olur. Profil sayfanızın Etkinlik görünümünde filtreler olarak görünürler.", + "account_edit_tags.max_tags_reached": "Azami öne çıkan etiket sayısına ulaştınız.", "account_edit_tags.search_placeholder": "Bir etiket girin…", "account_edit_tags.suggestions": "Öneriler:", "account_edit_tags.tag_status_count": "{count, plural, one {# gönderi} other {# gönderi}}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index af8f7d186e21b7..c68db5734ce6c3 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -141,8 +141,8 @@ "account.unmute": "Bỏ phớt lờ @{name}", "account.unmute_notifications_short": "Bỏ phớt lờ thông báo", "account.unmute_short": "Bỏ phớt lờ", + "account_edit.bio.add_label": "Thêm giới thiệu", "account_edit.bio.edit_label": "Sửa giới thiệu", - "account_edit.bio.label": "giới thiệu", "account_edit.bio.placeholder": "Thêm một dòng giới thiệu để giúp mọi người nhận ra bạn.", "account_edit.bio.title": "Giới thiệu", "account_edit.bio_modal.add_title": "Thêm giới thiệu", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 9cf0de1a1a2728..482455e55bc9ac 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -141,8 +141,8 @@ "account.unmute": "不再隐藏 @{name}", "account.unmute_notifications_short": "恢复通知", "account.unmute_short": "取消隐藏", + "account_edit.bio.add_label": "添加个人简介", "account_edit.bio.edit_label": "编辑个人简介", - "account_edit.bio.label": "简介", "account_edit.bio.placeholder": "添加一段简短介绍,帮助其他人认识你。", "account_edit.bio.title": "简介", "account_edit.bio_modal.add_title": "添加个人简介", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 15256077de688a..8552ab635f3099 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -141,8 +141,8 @@ "account.unmute": "解除靜音 @{name}", "account.unmute_notifications_short": "解除靜音推播通知", "account.unmute_short": "解除靜音", + "account_edit.bio.add_label": "新增個人簡介", "account_edit.bio.edit_label": "編輯個人簡介", - "account_edit.bio.label": "個人簡介", "account_edit.bio.placeholder": "加入一段簡短介紹以幫助其他人識別您。", "account_edit.bio.title": "個人簡介", "account_edit.bio_modal.add_title": "新增個人簡介", @@ -639,7 +639,7 @@ "featured_carousel.header": "{count, plural, other {# 則釘選嘟文}}", "featured_carousel.slide": "{max, number} 則嘟文中之第 {current, number} 則", "featured_tags.more_items": "+{count}", - "featured_tags.suggestions": "最近您曾發有關 {items} 之嘟文。是否新增其為推薦主題標籤?", + "featured_tags.suggestions": "最近您曾發過有關 {items} 之嘟文。是否新增其為推薦主題標籤?", "featured_tags.suggestions.add": "新增", "featured_tags.suggestions.added": "於 編輯個人檔案 > 推薦主題標籤 隨時管理您的推薦主題標籤。", "featured_tags.suggestions.dismiss": "不需要,謝謝", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 218b12a065c037..91a16c83f62beb 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -1761,15 +1761,6 @@ ar: failed_sign_in_html: فشل محاولة تسجيل الدخول مع %{method} من %{ip} (%{browser}) successful_sign_in_html: تم تسجيل الدخول بنجاح مع %{method} من %{ip} (%{browser}) title: تاريخ المصادقة - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: إرسال إشعارات التفضيلات بالبريد الإلكتروني - follow: إرسال إشعارات المتابعة بالبريد الإلكتروني - follow_request: إرسال إشعارات الطلبات بالبريد الإلكتروني - mention: إشعارات رسائل البريد عندما يَذكُرك أحدهم - reblog: رسائل البريد الخاصة بالمنشورات المعاد نشرها media_attachments: validations: images_and_video: ليس بالإمكان إرفاق فيديو في منشور يحتوي مسبقا على صور diff --git a/config/locales/az.yml b/config/locales/az.yml index fb1282ab94c84d..ea5304929bbef2 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -211,11 +211,6 @@ az: otp: iki faktorlu kimlik doğrulama tətbiqi password: parol description_html: Əgər tanımadığınız bir fəaliyyəti görsəniz, parolunuzu dəyişdirməyi və iki faktorlu kimlik doğrulamanı fəallaşdırmağı düşünə bilərsiniz - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - reblog: təkrar paylaşma bildirişi e-poçtları migrations: incoming_migrations: Fərqli bir hesabdan daşı incoming_migrations_html: Başqa bir hesabdan bu hesaba daşımaq üçün əvvəlcə bir hesab alias-ı yaratmalısınız. diff --git a/config/locales/be.yml b/config/locales/be.yml index 7a30f3a6ec7b24..70f032c2fca3ac 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1734,15 +1734,6 @@ be: failed_sign_in_html: Няўдалая спроба ўваходу праз %{method} з %{ip} (%{browser}) successful_sign_in_html: Паспяховы ўваход праз %{method} з %{ip} (%{browser}) title: Гісторыя ўваходаў - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: апавяшчэнні на пошту пра упадабанае - follow: апавяшчэнні на пошту пра падпіскі - follow_request: апавяшчэнні на пошту пра запыты на падпіску - mention: апавяшчэнні на пошту пра згадванні - reblog: апавяшчэнні на пошту пра пашырэнні media_attachments: validations: images_and_video: Немагчыма далучыць відэа да допісу, які ўжо змяшчае выявы diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 35ef73d52176c8..84e88b3cad654c 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1598,15 +1598,6 @@ bg: failed_sign_in_html: Неуспешен опит за влизане с %{method} от %{ip} (%{browser}) successful_sign_in_html: Успешно влизане с %{method} от %{ip} (%{browser}) title: Историята на удостоверяване - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: е-писма за известия с любими - follow: е-писма с известия за последване - follow_request: е-писма със заявки за следване - mention: е-писма с известия за споменаване - reblog: е-писма с известия за подсилване media_attachments: validations: images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 6ac65afd6f6826..e0bac6c6c3f3cc 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -1613,15 +1613,6 @@ ca: failed_sign_in_html: Intent d'inici de sessió errat amb %{method} des de %{ip} (%{browser}) successful_sign_in_html: Inici de sessió exitós amb %{method} des de %{ip} (%{browser}) title: Historial d'autenticació - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: notificacions dels favorits per correu electrònic - follow: notificacions dels seguiments per correu electrònic - follow_request: correus electrònics de peticions de seguiment - mention: correus electrònics de notificacions de mencions - reblog: correus electrònics de notificacions d'impulsos media_attachments: validations: images_and_video: No es pot adjuntar un vídeo a una publicació que ja contingui imatges diff --git a/config/locales/cs.yml b/config/locales/cs.yml index 6b2bfd45397b9a..a090b663a36fad 100644 --- a/config/locales/cs.yml +++ b/config/locales/cs.yml @@ -1726,15 +1726,6 @@ cs: failed_sign_in_html: Neúspěšný pokus o přihlášení %{method} z %{ip} (%{browser}) successful_sign_in_html: Úspěšné přihlášení %{method} z %{ip} (%{browser}) title: Historie přihlášení - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mailové oznámení při oblíbení - follow: e-mailové oznámení při sledování - follow_request: e-mail při žádost o sledování - mention: e-mailové oznámení při zmínění - reblog: e-mailové oznámení při boostu media_attachments: validations: images_and_video: K příspěvku, který již obsahuje obrázky, nelze připojit video diff --git a/config/locales/cy.yml b/config/locales/cy.yml index a81826d7c254ae..2bf693f5ea27e2 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -1814,15 +1814,6 @@ cy: failed_sign_in_html: Ymgais mewngofnodi wedi methu gyda %{method} gan %{ip} (%{browser}) successful_sign_in_html: Mewngofnodi llwyddiannus gyda %{method} o %{ip} (%{browser}) title: Hanes dilysu - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-bost hysbysu hoffi - follow: e-byst hysbysu dilyn - follow_request: e-byst ceisiadau dilyn - mention: e-byst hysbysu crybwylliadau - reblog: e-byst hysbysiadau hybu media_attachments: validations: images_and_video: Methu atodi fideo i bostiad sydd eisoes yn cynnwys delweddau diff --git a/config/locales/da.yml b/config/locales/da.yml index ca3d45aca30886..9b2ef173b7ef30 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -762,6 +762,7 @@ da: categories: administration: Administration devops: DevOps + email: E-mail invites: Invitationer moderation: Moderering special: Speciel @@ -790,6 +791,8 @@ da: manage_blocks_description: Tillader brugere at blokere e-mailudbydere og IP-adresser manage_custom_emojis: Administrere tilpassede emojier manage_custom_emojis_description: Tillader brugere at administrere tilpassede emojier på serveren + manage_email_subscriptions: Administrer e-mail-abonnementer + manage_email_subscriptions_description: Giv brugere mulighed for at abonnere på andre brugere med denne tilladelse via e-mail manage_federation: Administrere federation manage_federation_description: Tillader brugere at blokere eller tillade federation med andre domæner og styre leverbarhed manage_invites: Administrere invitationer @@ -1418,6 +1421,38 @@ da: basic_information: Oplysninger hint_html: "Tilpas, hvad folk ser på din offentlige profil og ved siden af dine indlæg. Andre personer er mere tilbøjelige til at følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede." other: Andre + email_subscription_mailer: + confirmation: + action: Bekræft e-mailadresse + instructions_to_confirm: Bekræft, at du gerne vil modtage e-mails fra %{name} (@%{acct}), når vedkommende offentliggør nye indlæg. + instructions_to_ignore: Hvis du ikke ved, hvorfor du har modtaget denne e-mail, kan du slette den. Du bliver ikke tilmeldt, hvis du ikke klikker på linket ovenfor. + subject: Bekræft din e-mailadresse + title: Modtag e-mail opdateringer fra %{name}? + notification: + create_account: Opret en Mastodon-konto + footer: + privacy_html: E-mails sendes fra %{domain}, en server drevet af Mastodon. For at få mere at vide om, hvordan denne server behandler dine personoplysninger, kan du læse privatlivspolitikken. + reason_for_email_html: Du modtager denne e-mail, fordi du har valgt at modtage e-mailopdateringer fra %{name}. Ønsker du ikke at modtage disse e-mails? Afmeld + interact_with_this_post: + one: Interagér med dette indlæg, og find flere lignende indlæg. + other: Interagér med disse indlæg, og find flere. + subject: + one: 'Nyt indlæg: "%{excerpt}"' + other: Nye indlæg fra %{name} + title: + one: 'Nyt indlæg: "%{excerpt}"' + other: Nye indlæg fra %{name} + email_subscriptions: + active: Aktive + confirmations: + show: + changed_your_mind: Har du skiftet mening? + success_html: Du vil nu begynde at modtage e-mails, når %{name} offentliggør nye indlæg. Tilføj %{sender} til dine kontakter, så disse indlæg ikke ender i din spam-mappe. + title: Du er tilmeldt + unsubscribe: Afmeld + inactive: Inaktive + status: Status + subscribers: Abonnenter emoji_styles: auto: Auto native: Indbygget @@ -1652,15 +1687,6 @@ da: failed_sign_in_html: Mislykket indlogning med %{method} fra %{ip} (%{browser}) successful_sign_in_html: Gennemført indlogning med %{method} fra %{ip} (%{browser}) title: Godkendelseshistorik - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mailnotifikationer om favoritmarkeringer - follow: e-mailnotifikationer om nye følgere - follow_request: e-mailnotifikationer om følgeanmodninger - mention: e-mailnotifikationer om omtaler - reblog: e-mailnotifikationer om fremhævelser media_attachments: validations: images_and_video: En video kan ikke vedhæftes et indlæg med billedindhold @@ -1798,6 +1824,8 @@ da: posting_defaults: Standarder for indlæg public_timelines: Offentlige tidslinjer privacy: + email_subscriptions: Send indlæg via e-mail + email_subscriptions_hint_html: Tilføj en tilmeldingsformular til din profil, som vises for brugere, der ikke er logget ind. Når besøgende indtaster deres e-mailadresse og tilmelder sig, sender Mastodon e-mailopdateringer om dine offentlige indlæg. hint_html: "Tilpas hvordan din profil og dine indlæg kan findes. En række funktioner i Mastodon kan hjælpe dig med at nå ud til et bredere publikum, hvis du aktiverer dem. Tjek indstillingerne herunder for at sikre, at de passer til dit brugsscenarie." privacy: Privatliv privacy_hint_html: Styr, hvor meget du vil afsløre til gavn for andre. Folk opdager interessante profiler og apps ved at gennemse andres følgere og se, hvilke apps de sender fra, men du foretrækker måske at holde det skjult. @@ -2061,6 +2089,28 @@ da: resume_app_authorization: Genoptag godkendelse af applikation role_requirement: "%{domain} kræver, at du konfigurerer tofaktorgodkendelse, før du kan bruge Mastodon." webauthn: Sikkerhedsnøgler + unsubscriptions: + create: + action: Gå til serverens hjemmeside + email_subscription: + confirmation_html: Du vil ikke længere modtage e-mails fra %{name}. + title: Du er afmeldt + user: + confirmation_html: Du vil ikke længere modtage %{type} fra Mastodon på %{domain}. + notification_emails: + favourite: e-mail-notifikationer om favoritmarkeringer + follow: e-mail-notifikationer om nye følgere + follow_request: e-mail-notifikationer om følgeanmodninger + mention: e-mail-notifikationer om omtaler + reblog: e-mail-notifikationer om fremhævelser + show: + action: Afmeld + email_subscription: + confirmation_html: Du vil ikke længere modtage e-mails, når denne konto offentliggør nye indlæg. + title: Afmeld fra %{name}? + user: + confirmation_html: Du vil ikke længere modtage %{type} fra Mastodon på %{domain}. + title: Afmeld fra %{type}? user_mailer: announcement_published: description: 'Administratorerne på %{domain} udsender en annoncering:' diff --git a/config/locales/de.yml b/config/locales/de.yml index f95f2f794042c9..f0203268a2ca7a 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -762,6 +762,7 @@ de: categories: administration: Administration devops: DevOps + email: E-Mail invites: Einladungen moderation: Moderation special: Besonderheit @@ -790,6 +791,7 @@ de: manage_blocks_description: E-Mail-Provider und IP-Adressen sperren manage_custom_emojis: Emojis manage_custom_emojis_description: Spezielle Emojis dieses Servers verwalten + manage_email_subscriptions: E-Mail-Benachrichtigungen verwalten manage_federation: Föderation manage_federation_description: Domains anderer Mastodon-Server sperren/zulassen – und Zustellbarkeit kontrollieren manage_invites: Einladungen @@ -1418,6 +1420,28 @@ de: basic_information: Allgemeine Informationen hint_html: "Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können. Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen." other: Andere + email_subscription_mailer: + confirmation: + action: E-Mail-Adresse bestätigen + subject: Bestätige deine E-Mail-Adresse + title: E-Mail-Benachrichtigungen von %{name} erhalten? + notification: + create_account: Mastodon-Konto erstellen + subject: + one: 'Neuer Beitrag: „%{excerpt}“' + other: Neue Beiträge von %{name} + title: + one: 'Neuer Beitrag: „%{excerpt}“' + other: Neue Beiträge von %{name} + email_subscriptions: + active: Aktiviert + confirmations: + show: + changed_your_mind: Meinung geändert? + unsubscribe: Abbestellen + inactive: Deaktiviert + status: Status + subscribers: Abonnent*innen emoji_styles: auto: Automatisch native: Nativ @@ -1652,15 +1676,6 @@ de: failed_sign_in_html: Fehlgeschlagener Anmeldeversuch mit %{method} von %{ip} (%{browser}) successful_sign_in_html: Erfolgreiches Anmelden mit %{method} von %{ip} (%{browser}) title: Anmeldeverlauf - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: E-Mail-Benachrichtigungen bei Favoriten - follow: E-Mail-Benachrichtigungen bei Followern - follow_request: E-Mail-Benachrichtigungen bei Follower-Anfragen - mention: E-Mail-Benachrichtigungen bei Erwähnungen - reblog: E-Mail-Benachrichtigungen bei geteilten Beiträgen media_attachments: validations: images_and_video: Es kann kein Video an einen Beitrag angehängt werden, der bereits Bilder enthält @@ -1798,6 +1813,7 @@ de: posting_defaults: Standardeinstellungen für Beiträge public_timelines: Öffentliche Timelines privacy: + email_subscriptions: Sende Beiträge per E-Mail hint_html: "Bestimme selbst, wie dein Profil und deine Beiträge gefunden werden sollen. Zahlreiche Mastodon-Funktionen können dir für eine größere Reichweite behilflich sein. Nimm dir einen Moment Zeit, um diese Einstellungen zu überprüfen." privacy: Datenschutz privacy_hint_html: Bestimme, wie viele Informationen du für andere preisgeben möchtest. Viele Menschen entdecken interessante Profile und coole Apps, indem sie die Follower anderer Profile durchstöbern und die Apps sehen, über die Beiträge veröffentlicht wurden – möglicherweise möchtest du diese Informationen ausblenden. @@ -2061,6 +2077,9 @@ de: resume_app_authorization: Autorisierung der App fortsetzen role_requirement: "%{domain} verlangt das Einrichten einer Zwei-Faktor-Authentisierung, bevor du Mastodon verwenden kannst." webauthn: Sicherheitsschlüssel + unsubscriptions: + show: + action: Abbestellen user_mailer: announcement_published: description: 'Ankündigung der Administrator*innen von %{domain}:' diff --git a/config/locales/el.yml b/config/locales/el.yml index 5b834356fb4463..9239f1d93a751a 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -762,6 +762,7 @@ el: categories: administration: Διαχείριση devops: DevOps + email: Email invites: Προσκλήσεις moderation: Συντονισμός special: Ειδικός @@ -790,6 +791,8 @@ el: manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους email και διευθύνσεις IP manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή + manage_email_subscriptions: Διαχείριση Συνδρομών Email + manage_email_subscriptions_description: Να επιτρέπεται στους χρήστες να εγγράφονται σε χρήστες με αυτήν την άδεια μέσω ηλεκτρονικού ταχυδρομείου manage_federation: Διαχείριση Ομοσπονδίας manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν τις συναλλαγές με άλλους τομείς και να ελέγχουν την παράδοση manage_invites: Διαχείριση Προσκλήσεων @@ -1418,6 +1421,38 @@ el: basic_information: Βασικές πληροφορίες hint_html: "Προσάρμοσε τί βλέπουν άτομα στο δημόσιο προφίλ σου και δίπλα στις αναρτήσεις σου. Είναι πιο πιθανό άλλα άτομα να σε ακολουθήσουν πίσω και να αλληλεπιδράσουν μαζί σου αν έχεις ολοκληρωμένο προφίλ και εικόνα προφίλ." other: Άλλο + email_subscription_mailer: + confirmation: + action: Επιβεβαιώστε τη διεύθυνση email + instructions_to_confirm: Επιβεβαιώστε ότι θα θέλατε να λαμβάνετε email από %{name} (@%{acct}) όταν δημοσιεύει νέες αναρτήσεις. + instructions_to_ignore: Αν δεν είστε σίγουροι γιατί λάβατε αυτό το email, μπορείτε να το διαγράψετε. Δεν θα εγγραφείτε αν δεν κάνετε κλικ στον παραπάνω σύνδεσμο. + subject: Επιβεβαιώστε τη διεύθυνση email σας + title: Να λαμβάνετε ενημερώσεις μέσω email από %{name}; + notification: + create_account: Δημιουργήστε έναν λογαριασμό Mastodon + footer: + privacy_html: Τα email στέλνονται από το %{domain}, έναν διακομιστή που βασίζεται στο Mastodon. Για να καταλάβετε πώς ο διακομιστής αυτός επεξεργάζεται τα προσωπικά σας δεδομένα, ανατρέξτε στην Πολιτική Απορρήτου. + reason_for_email_html: Λαμβάνετε αυτό το email επειδή έχετε κάνει εγγραφή για ενημερώσεις από %{name}. Δεν θέλετε να λαμβάνετε τέτοια email; Κατάργηση συνδρομής + interact_with_this_post: + one: Αλληλεπιδράστε με αυτήν την ανάρτηση και ανακαλύψτε περισσότερες σαν αυτήν. + other: Αλληλεπιδράστε με αυτές τις αναρτήσεις και ανακαλύψτε περισσότερες. + subject: + one: 'Νέα ανάρτηση: "%{excerpt}"' + other: Νέες αναρτήσεις από %{name} + title: + one: 'Νέα ανάρτηση: "%{excerpt}"' + other: Νέες αναρτήσεις από %{name} + email_subscriptions: + active: Ενεργή + confirmations: + show: + changed_your_mind: Αλλάξατε γνώμη; + success_html: Τώρα θα αρχίσετε να λαμβάνετε email όταν ο χρήστης %{name} δημοσιεύει νέες αναρτήσεις. Προσθέστε το %{sender} στις επαφές σας, έτσι ώστε αυτές οι αναρτήσεις να μην καταλήγουν στο φάκελο Ανεπιθύμητα. + title: Έχετε εγγραφεί + unsubscribe: Κατάργηση συνδρομής + inactive: Ανενεργή + status: Κατάσταση + subscribers: Συνδρομητές emoji_styles: auto: Αυτόματο native: Εγγενές @@ -1652,15 +1687,6 @@ el: failed_sign_in_html: Αποτυχημένη προσπάθεια σύνδεσης με %{method} από %{ip} (%{browser}) successful_sign_in_html: Επιτυχής σύνδεση με %{method} από %{ip} (%{browser}) title: Ιστορικό ελέγχου ταυτότητας - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: ειδοποιήσεις email για αγαπημένα - follow: ειδοποιήσεις email για ακολουθήσεις - follow_request: email για αιτήματα ακολούθησης - mention: ειδοποιήσεις email για επισημάνσεις - reblog: ειδοποιήσεις email για ενίσχυση media_attachments: validations: images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ανάρτηση που ήδη περιέχει εικόνες @@ -1798,6 +1824,8 @@ el: posting_defaults: Προεπιλογές ανάρτησης public_timelines: Δημόσιες ροές privacy: + email_subscriptions: Αποστολή αναρτήσεων μέσω email + email_subscriptions_hint_html: Προσθέστε μια φόρμα εγγραφής μέσω email στο προφίλ σας που εμφανίζεται για αποσυνδεδεμένους χρήστες. Όταν οι επισκέπτες εισαγάγουν τη διεύθυνση email τους και επιλέξουν εγγραφή, το Mastodon θα στέλνει ενημερώσεις email για τις δημόσιες αναρτήσεις σας. hint_html: "Προσάρμοσε πώς θες το προφίλ και οι αναρτήσεις σου να ανακαλύπτονται.. Μια ποικιλία δυνατοτήτων στο Mastodon μπορούν να σε βοηθήσουν να απευθυνθείς σε μεγαλύτερο κοινό όταν ενεργοποιηθούν. Αφιέρωσε μερικά λεπτά για να εξετάσεις τις ρυθμίσεις και να σιγουρευτείς ότι σου ταιριάζουν." privacy: Απόρρητο privacy_hint_html: "'Έλεγξε πόσο θες να αποκαλύπτεις προς όφελος των άλλων. Οι άνθρωποι ανακαλύπτουν ενδιαφέροντα προφίλ και εφαρμογές με την περιήγηση των ακολούθων άλλων ατόμων και βλέποντας από ποιες εφαρμογές δημοσιεύουν, αλλά μπορεί να προτιμάς να το κρατάς κρυφό." @@ -2061,6 +2089,28 @@ el: resume_app_authorization: Συνέχιση εξουσιοδότησης εφαρμογής role_requirement: Το %{domain} απαιτεί να ρυθμίσετε τον έλεγχο ταυτότητας δύο παραγόντων πριν χρησιμοποιήσετε το Mastodon. webauthn: Κλειδιά ασφαλείας + unsubscriptions: + create: + action: Μετάβαση στην αρχική σελίδα του διακομιστή + email_subscription: + confirmation_html: Δεν θα λαμβάνετε πλέον email από %{name}. + title: Έχετε καταργήσει τη συνδρομή + user: + confirmation_html: Δεν θα λαμβάνετε πλέον %{type} από το Mastodon στο %{domain}. + notification_emails: + favourite: ειδοποιήσεις email για αγαπημένα + follow: ειδοποιήσεις email για ακολουθήσεις + follow_request: email για αιτήματα ακολούθησης + mention: ειδοποιήσεις email για επισημάνσεις + reblog: ειδοποιήσεις email για ενισχύσεις + show: + action: Κατάργηση συνδρομής + email_subscription: + confirmation_html: Θα σταματήσετε να λαμβάνετε email όταν αυτός ο λογαριασμός δημοσιεύει νέες αναρτήσεις. + title: Κατάργηση συνδρομής από %{name}; + user: + confirmation_html: Θα σταματήσετε να λαμβάνετε %{type} από το Mastodon στο %{domain}. + title: Κατάργηση συνδρομής από %{type}; user_mailer: announcement_published: description: 'Οι διαχειριστές του %{domain} κάνουν μια ανακοίνωση:' diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index 81843c2c4d9ea4..1e970f3bc6569f 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -1648,15 +1648,6 @@ en-GB: failed_sign_in_html: Failed login attempt with %{method} from %{ip} (%{browser}) successful_sign_in_html: Successful login with %{method} from %{ip} (%{browser}) title: Authentication history - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: favourite notification emails - follow: follow notification emails - follow_request: follow request emails - mention: mention notification emails - reblog: boost notification emails media_attachments: validations: images_and_video: Cannot attach a video to a post that already contains images diff --git a/config/locales/eo.yml b/config/locales/eo.yml index d9712beb53c4d8..195b95f07e2234 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -1589,15 +1589,6 @@ eo: failed_sign_in_html: Malsukcese ensalutprovo per %{method} de %{ip} (%{browser}) successful_sign_in_html: Sukcese ensaluto per %{method} de %{ip} (%{browser}) title: Aŭtentiga historio - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: sciigoj retpoŝtaj de ŝatataj - follow: sciigoj retpoŝtaj de sekvoj - follow_request: retpoŝtajn petoj de sekvado - mention: sciigoj retpoŝtaj de mencioj - reblog: sciigoj retpoŝtaj de diskonigoj media_attachments: validations: images_and_video: Aldoni videon al mesaĝo, kiu jam havas bildojn ne eblas diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 248c3db979b566..dc3535a4f0f6d2 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -762,6 +762,7 @@ es-AR: categories: administration: Administración devops: Operadores de desarrollo + email: Correo electrónico invites: Invitaciones moderation: Moderación special: Especial @@ -790,6 +791,8 @@ es-AR: manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP manage_custom_emojis: Administrar emojis personalizados manage_custom_emojis_description: Permite a los usuarios administrar emojis personalizados en el servidor + manage_email_subscriptions: Administrar suscripciones de correo electrónico + manage_email_subscriptions_description: Permitir a los usuarios suscribirse a usuarios con este permiso por correo electrónico manage_federation: Administrar Federación manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios y controlar las entregas manage_invites: Administrar invitaciones @@ -1418,6 +1421,38 @@ es-AR: basic_information: Información básica hint_html: "Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil." other: Otros + email_subscription_mailer: + confirmation: + action: Confirmar dirección de correo electrónico + instructions_to_confirm: Confirmá que querés recibir correos electrónicos de %{name} (@%{acct}) cuando publique algo nuevo. + instructions_to_ignore: Si no estás seguro de por qué recibiste este correo electrónico, podés eliminarlo. Si no hacés clic en el enlace de arriba, no te vas a suscribir. + subject: Confirmá tu dirección de correo electrónico + title: "¿Obtener actualizaciones por correo electrónico de %{name}?" + notification: + create_account: Crear una cuenta de Mastodon + footer: + privacy_html: Los correos electrónicos son enviados desde %{domain}, un servidor de Mastodon. Para conocer cómo este servidor procesa tus datos personales, consultá la Política de Privacidad. + reason_for_email_html: Estás recibiendo este correo porque optaste recibir actualizaciones por correo electrónico de %{name}. ¿No querés recibir estos correos? Desuscribite + interact_with_this_post: + one: Interactuá con esta publicación y descubrí otras similares. + other: Interactuá con estas publicaciones y descubrí otras similares. + subject: + one: 'Nueva publicación: «%{excerpt}»' + other: Nuevos publicaciones de %{name} + title: + one: 'Nueva publicación: «%{excerpt}»' + other: Nuevos mensajes de %{name} + email_subscriptions: + active: Activa + confirmations: + show: + changed_your_mind: "¿Cambiaste de opinión?" + success_html: Ahora vas a empezar a recibir correos electrónicos cuando %{name} publique algo nuevo. Agregá a %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de spam o correo no deseado. + title: Te suscribiste + unsubscribe: Desuscribirse + inactive: Inactiva + status: Estado + subscribers: Suscriptores emoji_styles: auto: Automático native: Nativo @@ -1652,15 +1687,6 @@ es-AR: failed_sign_in_html: Intento de inicio de sesión fallido con %{method} desde %{ip} (%{browser}) successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser}) title: Historial de autenticación - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: notificaciones de favoritos por correo electrónico - follow: notificaciones de seguidores por correo electrónico - follow_request: notificaciones de solicitudes de seguimiento por correo electrónico - mention: notificaciones de menciones por correo electrónico - reblog: notificaciones de adhesiones por correo electrónico media_attachments: validations: images_and_video: No se puede adjuntar un video a un mensaje que ya contenga imágenes @@ -1798,6 +1824,8 @@ es-AR: posting_defaults: Configuración predeterminada de mensajes public_timelines: Líneas temporales públicas privacy: + email_subscriptions: Enviar mensajes por correo electrónico + email_subscriptions_hint_html: Agregá un formulario de registro por correo electrónico a tu perfil, que aparece para los usuarios que no iniciaron sesión. Cuando los visitantes ingresen su dirección de correo electrónico y opten por ello, Mastodon enviará actualizaciones por correo electrónico para tus mensajes públicos. hint_html: "Personalizá cómo querés que sean encontrados tu perfil y tus mensajes. Una variedad de funciones en Mastodon pueden ayudarte a alcanzar una mayor audiencia al estar activada. Tomate un momento para revisar esta configuración para asegurarte de que se ajusta a tu caso." privacy: Privacidad privacy_hint_html: Controlá cuánto querés revelar a los demás. La gente descubre perfiles interesantes y aplicaciones copadas explorando los seguimientos de otras personas y viendo qué aplicaciones usan, pero puede que prefieras mantener esto oculto. @@ -2061,6 +2089,28 @@ es-AR: resume_app_authorization: Reanudar autorización de aplicación role_requirement: "%{domain} requiere que configurés la autenticación de dos factores antes de poder usar Mastodon." webauthn: Llaves de seguridad + unsubscriptions: + create: + action: Ir a la página de inicio del servidor + email_subscription: + confirmation_html: Ya no recibirás correos electrónicos de %{name}. + title: Te desuscribiste + user: + confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}. + notification_emails: + favourite: correos de notificación de favoritos + follow: correos de notificación de nuevos seguidores + follow_request: correos de notificación de solicitudes de seguimiento + mention: correos de notificación de menciones + reblog: correos de notificación de adhesiones + show: + action: Desuscribirse + email_subscription: + confirmation_html: Vas a dejar de recibir correos cuando esta cuenta publique algo nuevo. + title: "¿Desuscribirse de %{name}?" + user: + confirmation_html: Vas a dejar de recibir %{type} de Mastodon en %{domain}. + title: "¿Desuscribirse de %{type}?" user_mailer: announcement_published: description: 'Los administradores de %{domain} están haciendo un anuncio:' diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 48e19919f0b71a..3b1237bdf89a7e 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -762,6 +762,7 @@ es-MX: categories: administration: Administración devops: DevOps + email: Correo electrónico invites: Invitaciones moderation: Moderación special: Especial @@ -790,6 +791,8 @@ es-MX: manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP manage_custom_emojis: Administrar Emojis Personalizados manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor + manage_email_subscriptions: Gestionar suscripciones por correo electrónico + manage_email_subscriptions_description: Permitir a los usuarios suscribirse a otros usuarios con este permiso por correo electrónico manage_federation: Administrar Federación manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad manage_invites: Administrar Invitaciones @@ -1418,6 +1421,38 @@ es-MX: basic_information: Información básica hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto." other: Otro + email_subscription_mailer: + confirmation: + action: Confirmar dirección de correo electrónico + instructions_to_confirm: Confirma que deseas recibir correos electrónicos de %{name} (@%{acct}) cuando haga una nueva publicación. + instructions_to_ignore: Si no estás seguro de por qué has recibido este correo electrónico, puedes borrarlo. No te suscribirás si no haces clic en el enlace de arriba. + subject: Confirma tu dirección de correo electrónico + title: "¿Deseas recibir actualizaciones por correo electrónico de %{name}?" + notification: + create_account: Crear una cuenta de Mastodon + footer: + privacy_html: Los correos electrónicos se envían desde %{domain} un servidor que utiliza Mastodon. Para saber cómo este servidor procesa tus datos personales, consulta la Política de privacidad. + reason_for_email_html: Recibes este correo electrónico porque te has suscrito a las actualizaciones por correo electrónico de %{name}. ¿No quieres recibir estos correos electrónicos? Cancelar suscripción + interact_with_this_post: + one: Interactúa con esta publicación y descubre otras similares. + other: Interactúa con estas publicaciones y descubre más. + subject: + one: 'Nueva publicación: "%{excerpt}"' + other: Nuevas publicaciones de %{name} + title: + one: 'Nueva publicación: "%{excerpt}"' + other: Nuevas publicaciones de %{name} + email_subscriptions: + active: Activa + confirmations: + show: + changed_your_mind: "¿Has cambiado de opinión?" + success_html: A partir de ahora, recibirás correos electrónicos cada vez que %{name} haga nuevas publicaciones. Añade a %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de spam. + title: Ya estás registrado + unsubscribe: Cancelar suscripción + inactive: Inactiva + status: Estado + subscribers: Suscriptores emoji_styles: auto: Automático native: Nativo @@ -1652,15 +1687,6 @@ es-MX: failed_sign_in_html: Intento de inicio de sesión fallido con %{method} de %{ip} (%{browser}) successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser}) title: Historial de autenticación - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: correos de notificación de favoritos - follow: correos electrónicos de notificación de seguimiento - follow_request: correos electrónicos de solicitud de seguimiento - mention: correos de notificación de menciones - reblog: correos de notificación de impulsos media_attachments: validations: images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes @@ -1798,6 +1824,8 @@ es-MX: posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas privacy: + email_subscriptions: Enviar publicaciones por correo electrónico + email_subscriptions_hint_html: Añade un formulario de suscripción por correo electrónico a tu perfil que se muestre a los usuarios que no hayan iniciado sesión. Cuando los visitantes introduzcan su dirección de correo electrónico y se suscriban, Mastodon les enviará actualizaciones por correo electrónico de tus publicaciones públicas. hint_html: "Personaliza cómo te gustaría que tu perfil y tus publicaciones sean encontradas. En Mastodon tienes a tu disposición distintas características que pueden ayudarte a llegar a una audiencia más amplia cuando se encuentran activadas. Toma un momento para revisar estos ajustes para asegurarte si cumplen tus necesidades." privacy: Privacidad privacy_hint_html: Controla cuánto quieres compartir para el beneficio de otros. Las personas descubren perfiles interesantes y aplicaciones geniales al navegar por los seguidores de otras personas y viendo desde cuáles aplicaciones publican, pero también puedes preferir mantenerlo oculto. @@ -2061,6 +2089,28 @@ es-MX: resume_app_authorization: Reanudar autorización de aplicación role_requirement: "%{domain} requiere que configures la autenticación de dos pasos antes de poder utilizar Mastodon." webauthn: Claves de seguridad + unsubscriptions: + create: + action: Ir a la página de inicio del servidor + email_subscription: + confirmation_html: Ya no recibirás correos electrónicos de %{name}. + title: Ya no estás suscrito + user: + confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}. + notification_emails: + favourite: correos electrónicos de notificación de favoritos + follow: correos electrónicos de notificación de seguimiento + follow_request: correos electrónicos de solicitud de seguimiento + mention: correos de notificación de menciones + reblog: correos de notificación de impulsos + show: + action: Cancelar suscripción + email_subscription: + confirmation_html: Dejarás de recibir correos electrónicos cuando esta cuenta haga nuevas publicaciones. + title: "¿Deseas cancelar suscripción a %{name}?" + user: + confirmation_html: Dejarás de recibir %{type} de Mastodon en %{domain}. + title: "¿Deseas cancelar suscripción a %{type}?" user_mailer: announcement_published: description: 'Los administradores de %{domain} están haciendo un anuncio:' diff --git a/config/locales/es.yml b/config/locales/es.yml index 15c7d44ba5e431..90f631b49a43a3 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -762,6 +762,7 @@ es: categories: administration: Administración devops: DevOps + email: Correo electrónico invites: Invitaciones moderation: Moderación special: Especial @@ -790,6 +791,8 @@ es: manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP manage_custom_emojis: Administrar Emojis Personalizados manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor + manage_email_subscriptions: Administrar suscripciones de correo electrónico + manage_email_subscriptions_description: Permitir a los usuarios suscribirse a usuarios con este permiso por correo electrónico manage_federation: Administrar Federación manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad manage_invites: Administrar Invitaciones @@ -1418,6 +1421,38 @@ es: basic_information: Información básica hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto." other: Otros + email_subscription_mailer: + confirmation: + action: Confirmar dirección de correo electrónico + instructions_to_confirm: Confirma que quieres recibir correos electrónicos de %{name} (@%{acct}) cuando publique algo nuevo. + instructions_to_ignore: Si no estás seguro de por qué recibiste este correo electrónico, puedes eliminarlo. No te suscribirás si no haces clic en el enlace de arriba. + subject: Confirme tu dirección de correo electrónico + title: "¿Obtener actualizaciones por correo electrónico de %{name}?" + notification: + create_account: Crear una cuenta de Mastodon + footer: + privacy_html: Los correos electrónicos son enviados desde %{domain}, un servidor de Mastodon. Para conocer cómo este servidor procesa tus datos personales, consulta la Política de Privacidad. + reason_for_email_html: Estás recibiendo este correo porque has optado por recibir actualizaciones por correo electrónico de %{name}. ¿No quieres recibir estos correos? Cancela la suscripción + interact_with_this_post: + one: Interactúa con esta publicación y descubre otras similares. + other: Interactúa con estas publicaciones y descubre otras similares. + subject: + one: 'Nueva publicación: "%{excerpt}"' + other: Nuevas publicaciones de %{name} + title: + one: 'Nueva publicación: "%{excerpt}"' + other: Nuevas publicaciones de %{name} + email_subscriptions: + active: Activa + confirmations: + show: + changed_your_mind: "¿Cambiaste de opinión?" + success_html: Ahora empezarás a recibir correos electrónicos cuando %{name} publique algo nuevo. Añade %{sender} a tus contactos para que estas publicaciones no terminen en tu carpeta de Spam. + title: Estás suscrito + unsubscribe: Cancelar suscripición + inactive: Inactiva + status: Estado + subscribers: Suscriptores emoji_styles: auto: Automático native: Nativo @@ -1652,15 +1687,6 @@ es: failed_sign_in_html: Intento de inicio de sesión fallido con %{method} de %{ip} (%{browser}) successful_sign_in_html: Inicio de sesión exitoso con %{method} desde %{ip} (%{browser}) title: Historial de autenticación - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: correos de notificación de favoritos - follow: correos de notificación de nuevos seguidores - follow_request: correos de notificación de solicitud de seguidor - mention: correos de notificación de menciones - reblog: correos de notificación de impulsos media_attachments: validations: images_and_video: No se puede adjuntar un video a una publicación que ya contenga imágenes @@ -1798,6 +1824,8 @@ es: posting_defaults: Configuración por defecto de publicaciones public_timelines: Líneas de tiempo públicas privacy: + email_subscriptions: Enviar mensajes por correo electrónico + email_subscriptions_hint_html: Añade un formulario de registro por correo electrónico a tu perfil, que aparece para los usuarios que no han iniciado sesión. Cuando los visitantes ingresen su dirección de correo electrónico y opten por ello, Mastodon enviará actualizaciones por correo electrónico para tus publicaciones públicas. hint_html: "Personaliza el descubrimiento de tu perfil y tus publicaciones. En Mastodon tienes distintas características que te ayudarán a alcanzar una mayor audiencia si las activas. Tómate un momento para revisar estas configuraciones y asegurarte de que cumplen tus necesidades." privacy: Privacidad privacy_hint_html: Controla cuánto deseas revelar a los demás. Las personas descubren perfiles y aplicaciones interesantes navegando por los seguidores de otras personas y viendo desde qué aplicaciones publican, pero puede que prefieras mantenerlo oculto. @@ -2061,6 +2089,28 @@ es: resume_app_authorization: Reanudar autorización de aplicación role_requirement: "%{domain} requiere que establezcas la autenticación en dos pasos para poder usar Mastodon." webauthn: Claves de seguridad + unsubscriptions: + create: + action: Ir a la página de inicio del servidor + email_subscription: + confirmation_html: Ya no recibirás correos electrónicos de %{name}. + title: Ya no estás suscrito + user: + confirmation_html: Ya no recibirás %{type} de Mastodon en %{domain}. + notification_emails: + favourite: correos de notificación de favoritos + follow: correos de notificación de nuevos seguidores + follow_request: correos de notificación de solicitudes de seguimiento + mention: correos de notificación de menciones + reblog: correos de notificación de impulsos + show: + action: Cancelar suscripción + email_subscription: + confirmation_html: Dejarás de recibir correos cuando esta cuenta publique algo nuevo. + title: "¿Darse de baja de %{name}?" + user: + confirmation_html: Dejarás de recibir %{type} de Mastodon en %{domain}. + title: "¿Darse de baja de %{type}?" user_mailer: announcement_published: description: 'Los administradores de %{domain} están haciendo un anuncio:' diff --git a/config/locales/et.yml b/config/locales/et.yml index 91b227b5aaffb0..8a6e8b39bc2494 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1633,15 +1633,6 @@ et: failed_sign_in_html: Nurjunud sisenemine meetodiga %{method} aadressilt %{ip} (%{browser}) successful_sign_in_html: Edukas sisenemine meetodiga %{method} aadressilt %{ip} (%{browser}) title: Autentimise ajalugu - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: lemmikuks märkimise teavituskirjade - follow: jälgimiste teavituskirjade - follow_request: jälgimistaotluste teavituskirjade - mention: mainimiste teavituskirjade - reblog: jagamiste teavituskirjade media_attachments: validations: images_and_video: Ei saa lisada video postitusele, milles on juba pildid diff --git a/config/locales/eu.yml b/config/locales/eu.yml index 41a6d578955729..85b6eb08f5f1bb 100644 --- a/config/locales/eu.yml +++ b/config/locales/eu.yml @@ -1535,15 +1535,6 @@ eu: failed_sign_in_html: Huts egindako saioa hasteko saiakera %{method} erabiliz %{ip} IPtik (%{browser}) successful_sign_in_html: Saioa hasiera arrakastatsua %{method} erabiliz %{ip} IPtik (%{browser}) title: Autentifikazioen historia - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: zure argitalpena gogoko egin dutenaren jakinarazpen e-mailak - follow: jarraitu jakinarazpen-mezu elektronikoak - follow_request: jarraipen-eskaeren jakinarazpen e-mailak - mention: aipamenen jakinarazpen e-mailak - reblog: bultzaden jakinarazpen e-mailak media_attachments: validations: images_and_video: Ezin da irudiak dituen bidalketa batean bideo bat erantsi diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 1fd310cb8f086d..50e5a8576f4271 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1629,15 +1629,6 @@ fa: failed_sign_in_html: تلاش‌های شکست‌خوردهٔ ورود با %{method} از %{ip} (%{browser}) successful_sign_in_html: ورودهای موفق با %{method} از %{ip} (%{browser}) title: تاریخچهٔ تأیید هویت - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: رایانامه‌های آگاهی برگزیدن - follow: رایانامه‌های آگاهی پی‌گیری - follow_request: رایانامه‌های درخواست پی‌گیری - mention: رایانامه‌های آگاهی اشاره - reblog: رایانامه‌های آگاهی تقویت media_attachments: validations: images_and_video: نمی‌توان برای نوشته‌ای که تصویر دارد ویدیو بارگذاری کرد diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 782d59c31567e7..d0828dfbce552c 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1652,15 +1652,6 @@ fi: failed_sign_in_html: Epäonnistunut kirjautumisyritys %{method} IP-osoitteesta %{ip} (%{browser}) successful_sign_in_html: Onnistunut kirjautuminen %{method} IP-osoitteesta %{ip} (%{browser}) title: Todennushistoria - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä - follow: sähköposti-ilmoituksia seuraamisista - follow_request: sähköposti-ilmoituksia seurantapyynnöistä - mention: sähköposti-ilmoituksia maininnoista - reblog: sähköposti-ilmoituksia tehostuksista media_attachments: validations: images_and_video: Videota ei voi liittää tilapäivitykseen, jossa on jo kuvia diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 49e768f4a3cbd7..057afbec78dfcd 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -1648,15 +1648,6 @@ fo: failed_sign_in_html: Miseydnað innritanarroynd við %{method} frá %{ip} (%{browser}) successful_sign_in_html: Eydnað innritan við %{method} frá %{ip} (%{browser}) title: Samgildissøga - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: yndisfráboðanarteldupostar - follow: fylg fráboðanarteldupostar - follow_request: fylg umbønir um teldupost - mention: nevn fráboðanarteldupostar - reblog: framhevja fráboðanarpostar media_attachments: validations: images_and_video: Kann ikki viðfesta sjónfílu til ein post, sum longu inniheldur myndir diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index dca8edc5819d81..c255371b9b3d0e 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1655,15 +1655,6 @@ fr-CA: failed_sign_in_html: Tentative de connexion échouée avec %{method} de %{ip} (%{browser}) successful_sign_in_html: Connexion réussie avec %{method} de %{ip} (%{browser}) title: Historique d'authentification - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mails de notifications de favoris - follow: e-mails de notifications d’abonnements - follow_request: e-mails de demandes d’abonnements - mention: e-mails de notifications de mentions - reblog: e-mails de notifications de partages media_attachments: validations: images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 7b7968b7cef5c6..b8fe93c5e0df79 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -80,7 +80,7 @@ fr: enabled_msg: Le compte de %{username} a été dégelé avec succès followers: Abonné·e·s follows: Abonnements - header: Entête + header: Image de couverture inbox_url: URL d’entrée invite_request_text: Raisons de l’adhésion invited_by: Invité par @@ -128,7 +128,7 @@ fr: remote_suspension_irreversible: Les données de ce compte ont été supprimées définitivement. remote_suspension_reversible_hint_html: Ce compte a été suspendu par son serveur d'accueil, et les données rattachées seront supprimées le %{date}. Jusqu'à cette date, il peut être restauré sans aucune perte par le serveur distant. Si vous souhaitez supprimer immédiatement toutes les données de ce compte, vous pouvez le faire ci-dessous. remove_avatar: Supprimer l’avatar - remove_header: Supprimer l’entête + remove_header: Supprimer l'image de couverture removed_avatar_msg: L’avatar de %{username} a été supprimé avec succès removed_header_msg: L’image d’en-tête de %{username} a été supprimée avec succès resend_confirmation: @@ -1655,15 +1655,6 @@ fr: failed_sign_in_html: Tentative de connexion échouée avec %{method} de %{ip} (%{browser}) successful_sign_in_html: Connexion réussie avec %{method} de %{ip} (%{browser}) title: Historique d'authentification - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mails de notifications de favoris - follow: e-mails de notifications d’abonnements - follow_request: e-mails de demandes d’abonnements - mention: e-mails de notifications de mentions - reblog: e-mails de notifications de partages media_attachments: validations: images_and_video: Impossible de joindre une vidéo à un message contenant déjà des images diff --git a/config/locales/fy.yml b/config/locales/fy.yml index c017132e751b32..55381b4ba65170 100644 --- a/config/locales/fy.yml +++ b/config/locales/fy.yml @@ -1594,15 +1594,6 @@ fy: failed_sign_in_html: Mislearre oanmeldbesykjen mei %{method} fan %{ip} (%{browser}) successful_sign_in_html: Mei sukses oanmeld mei %{method} fan %{ip} (%{browser}) title: Oanmeldskiednis - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mailmeldingen foar favoriten - follow: e-mailmeldingen foar nije folgers - follow_request: e-mailmeldingen foar folchfersiken - mention: e-mailmeldingen foar fermeldingen - reblog: e-mailmeldingen foar boosts media_attachments: validations: images_and_video: In fideo kin net oan in berjocht mei ôfbyldingen keppele wurde diff --git a/config/locales/ga.yml b/config/locales/ga.yml index d75af425269bfd..00909fdcd2feb8 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1777,15 +1777,6 @@ ga: failed_sign_in_html: Theip ar iarracht síniú isteach le %{method} ó %{ip} (%{browser}) successful_sign_in_html: D'éirigh le síniú isteach le %{method} ó %{ip} (%{browser}) title: Stair fíordheimhnithe - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: ríomhphoist fógra is fearr leat - follow: leanúint ríomhphoist fógra - follow_request: lean ríomhphoist iarratais - mention: trácht ar ríomhphoist fógra - reblog: ríomhphoist fógraí a threisiú media_attachments: validations: images_and_video: Ní féidir físeán a cheangal le postáil a bhfuil íomhánna ann cheana féin diff --git a/config/locales/gd.yml b/config/locales/gd.yml index fc11600ca40565..7eaf6a9852399c 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -1707,15 +1707,6 @@ gd: failed_sign_in_html: Oidhirp clàraidh a-steach nach deach leis le %{method} o %{ip} (%{browser}) successful_sign_in_html: Oidhirp clàraidh a-steach a shoirbhich leis le %{method} o %{ip} (%{browser}) title: Eachdraidh an dearbhaidh - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: puist-d le brathan mu annsachdan - follow: puist-d le brathan mu leantainn - follow_request: puist-d le brathan mu iarrtasan leantainn - mention: puist-d le brathan mu iomraidhean - reblog: puist-d le brathan mu bhrosnachaidhean media_attachments: validations: images_and_video: Chan urrainn dhut video a cheangal ri post sa bheil dealbh mu thràth diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 307029de98fb20..57e6a5fc9cc1c7 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -762,6 +762,7 @@ gl: categories: administration: Administración devops: DevOps + email: Correo electrónico invites: Convites moderation: Moderación special: Especial @@ -1652,15 +1653,6 @@ gl: failed_sign_in_html: Intento de acceso errado con %{method} desde %{ip} (%{browser}) successful_sign_in_html: Acceso correcto con %{method} desde %{ip} (%{browser}) title: Historial de autenticación - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: notificacións de favorecidas - follow: notificacións de seguimentos - follow_request: notificacións de solicitudes de seguimento - mention: notificacións de mencións - reblog: notificacións de promocións media_attachments: validations: images_and_video: Non podes anexar un vídeo a unha publicación que xa contén imaxes diff --git a/config/locales/he.yml b/config/locales/he.yml index 2fe1446b4e953e..3732077701ba57 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1734,15 +1734,6 @@ he: failed_sign_in_html: נסיון כניסה כושל בשיטת %{method} מכתובת %{ip} (%{browser}) successful_sign_in_html: נסיון כניסה מוצלח בשיטה %{method} מכתובת %{ip} (%{browser}) title: הסטוריית אימותים - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: הודעות דואל לגבי חיבובים - follow: הודעות דואל לגבי עוקבים חדשים - follow_request: הודעות דואל לגבי בקשות מעקב - mention: הודעות דואל לגבי איזכורים - reblog: הודעות דואל לגבי הידהודים media_attachments: validations: images_and_video: לא ניתן להוסיף וידאו להודעה שכבר מכילה תמונות diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 921f05f2b8a133..d633054b174663 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1652,15 +1652,6 @@ hu: failed_sign_in_html: Bejelentkezés meghiúsult ezzel %{method} innen %{ip} (%{browser}) successful_sign_in_html: Sikeres bejelentkezés ezzel %{method} innen %{ip} (%{browser}) title: Hitelesítési történet - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: kedvencnek jelölés értesítő e-mailjei - follow: követés értesítő e-mailjei - follow_request: követési kérések e-mailjei - mention: megemlítés értesítő e-mailjei - reblog: megtolás értesítő e-mailjei media_attachments: validations: images_and_video: Nem csatolhatsz videót olyan bejegyzéshez, amelyhez már csatoltál képet diff --git a/config/locales/ia.yml b/config/locales/ia.yml index f090d524692848..babee4f9aaff95 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -1619,15 +1619,6 @@ ia: failed_sign_in_html: Tentativa de authentication fallite con %{method} ab %{ip} (%{browser}) successful_sign_in_html: Apertura de session succedite con %{method} desde %{ip} (%{browser}) title: Historia de authentication - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: notificationes de favorites in e-mail - follow: notificationes de sequimento in e-mail - follow_request: requestas de sequimento in e-mail - mention: notificationes de mentiones in e-mail - reblog: notificationes de impulsos in e-mail media_attachments: validations: images_and_video: Impossibile annexar un video a un message que jam contine imagines diff --git a/config/locales/is.yml b/config/locales/is.yml index 77a4feb5125caf..ccaac522ca242d 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -762,6 +762,7 @@ is: categories: administration: Stjórnun devops: DevOps + email: Tölvupóstur invites: Boðsgestir moderation: Umsjón special: Sérstakt @@ -790,6 +791,8 @@ is: manage_blocks_description: Leyfir notendum að loka á tölvupóstþjónustur og IP-vistföng manage_custom_emojis: Sýsla með sérsniðin lyndistákn manage_custom_emojis_description: Leyfir notendum að sýsla með sérsniðin lyndistákn á netþjóninum + manage_email_subscriptions: Sýsla með tölvupóstáskriftir + manage_email_subscriptions_description: Leyfa notendum að gerast áskrifendur að tölvupósti frá notendum með þessa heimild manage_federation: Sýsla með netþjónasambönd manage_federation_description: Leyfir notendum að loka á eða leyfa samþættingu við önnur lén (federation) og stýra afhendingu skilaboða manage_invites: Sýsla með boðsgesti @@ -1422,6 +1425,33 @@ is: basic_information: Grunnupplýsingar hint_html: "Sérsníddu hvað fólk sér á opinbera notandasniðinu þínu og næst færslunum þínum. Annað fólk er líklegra til að fylgjast með þér og eiga í samskiptum við þig ef þú fyllir út notandasniðið og setur auðkennismynd." other: Annað + email_subscription_mailer: + confirmation: + action: Staðfestu tölvupóstfangið + instructions_to_confirm: Staðfestu að þú viljir fá tölvupósta frá %{name} (@%{acct}) þegar viðkomandi birtir nýjar færslur. + subject: Staðfestu tölvupóstfangið þitt + title: Fá tilkynningar í tölvupósti frá %{name}? + notification: + create_account: Búa til nýjan Mastodon-aðgang + interact_with_this_post: + one: Eigðu í samskiptum við þessa færslu og finndu fleiri í sama dúr. + other: Eigðu í samskiptum við þessar færslur og finndu fleiri í sama dúr. + subject: + one: 'Ný færsla: "%{excerpt}"' + other: Nýjar færslur frá %{name} + title: + one: 'Ný færsla: "%{excerpt}"' + other: Nýjar færslur frá %{name} + email_subscriptions: + active: Virkur + confirmations: + show: + changed_your_mind: Skiptirðu um skoðun? + title: Þú hefur skráð þig + unsubscribe: Hætta í áskrift + inactive: Óvirkur + status: Staða + subscribers: Áskrifendur emoji_styles: auto: Sjálfvirkt native: Innbyggt @@ -1656,15 +1686,6 @@ is: failed_sign_in_html: Misheppnuð tilraun til innskráningar með %{method} frá %{ip} (%{browser}) successful_sign_in_html: Vel heppnuð tilraun til innskráningar með %{method} frá %{ip} (%{browser}) title: Auðkenningarferill - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: tilkynningum í tölvupósti um eftirlæti - follow: tilkynningum í tölvupósti um fylgjendur - follow_request: tilkynningum í tölvupósti um beiðnir um að fylgjast með - mention: tilkynningum í tölvupósti um tilvísanir - reblog: tilkynningum í tölvupósti um endurbirtingar media_attachments: validations: images_and_video: Ekki er hægt að hengja myndskeið við færslu sem þegar inniheldur myndir @@ -1802,6 +1823,7 @@ is: posting_defaults: Sjálfgefin gildi við gerð færslna public_timelines: Opinberar tímalínur privacy: + email_subscriptions: Senda færslur með tölvupósti hint_html: "Sérsníddu hvernig þú vilt að finna megi notandasnið þitt og færslur. Ýmsir eiginleikar í Mastodon geta hjálpað þér að ná til breiðari áheyrendahóps, séu þeir virkjaðir. Taktu þér tíma til að yfirfara þessar stillingar svo að þær henti þér." privacy: Gagnaleynd privacy_hint_html: Stýrðu því hve miklar upplýsingar þú birtir sem gætu gagnast öðrum. Fólk uppgötvar áhugaverða notendur og sniðug forrit með því að skoða hvað annað fólk fylgist með og hvaða forrit það notar til að birta færslur, en hinsvegar er þér frjálst að halda þessu leyndu. @@ -2065,6 +2087,28 @@ is: resume_app_authorization: Halda áfram með auðkenningu forrits role_requirement: "%{domain} krefst þess að þú setjir upp tveggja-þátta auðkenningu áður en þú getur notað Mastodon." webauthn: Öryggislyklar + unsubscriptions: + create: + action: Fara á heimasíðu netþjónsins + email_subscription: + confirmation_html: Þú munt ekki lengur fá tölvupósta frá %{name}. + title: Þú hefur sagt upp áskrift + user: + confirmation_html: Þú munt ekki lengur fá %{type} frá Mastodon á %{domain}. + notification_emails: + favourite: tölvupóst um eftirlæti + follow: tölvupóst um fylgjendur + follow_request: tölvupóst um fylgjendabeiðnir + mention: tölvupóst um tilvísanir í þig + reblog: tölvupóst um endurbirtingar + show: + action: Hætta í áskrift + email_subscription: + confirmation_html: Þú munt ekki lengur fá tölvupóst þegar þessi aðili birtir nýjar færslur. + title: Afpanta áskrift að %{name}? + user: + confirmation_html: Þú munt ekki lengur fá %{type} frá Mastodon á %{domain}. + title: Afpanta áskrift að %{type}? user_mailer: announcement_published: description: 'Stjórnendur %{domain} eru að senda frá sér yfirlýsingu:' diff --git a/config/locales/it.yml b/config/locales/it.yml index ed80d9b37774ae..108364009509e8 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -762,6 +762,7 @@ it: categories: administration: Amministrazione devops: DevOps + email: Email invites: Inviti moderation: Moderazione special: Speciale @@ -1652,15 +1653,6 @@ it: failed_sign_in_html: Tentativo di accesso fallito con %{method} da %{ip} (%{browser}) successful_sign_in_html: Accesso riuscito con %{method} da %{ip} (%{browser}) title: Cronologia delle autenticazioni - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mail di notifica preferite - follow: segui le e-mail di notifica - follow_request: segui le e-mail di richiesta - mention: menziona le e-mail di notifica - reblog: e-mail di notifica per le condivisioni media_attachments: validations: images_and_video: Impossibile allegare video a un post che contiene già immagini diff --git a/config/locales/ja.yml b/config/locales/ja.yml index df8967eebeb6e1..b058bfdacf563b 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1557,15 +1557,6 @@ ja: failed_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに失敗しました。" successful_sign_in_html: "%{ip} (%{browser}) から%{method}を利用したサインインに成功しました" title: 認証履歴 - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: お気に入りの通知メール - follow: フォローの通知メール - follow_request: フォローリクエストの通知メール - mention: 返信の通知メール - reblog: ブーストの通知メール media_attachments: validations: images_and_video: 既に画像が追加されているため、動画を追加することはできません diff --git a/config/locales/ko.yml b/config/locales/ko.yml index ae7d13ff0f346c..179956c433183e 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1593,15 +1593,6 @@ ko: failed_sign_in_html: 실패한 로그인 시도 %{method} %{ip} (%{browser}) successful_sign_in_html: 성공한 로그인 시도 %{method} %{ip} (%{browser}) title: 인증 이력 - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: 좋아요 알림 이메일 - follow: 팔로우 알림 이메일 - follow_request: 팔로우 요청 이메일 - mention: 멘션 알림 이메일 - reblog: 부스트 알림 이메일 media_attachments: validations: images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다. diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 78eadbb9532291..04a09327c0338d 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -1502,15 +1502,6 @@ lad: failed_sign_in_html: Prova de inisiasyon de sesion no reushida kon %{method} de %{ip} (%{browser}) successful_sign_in_html: Prova de sesion reushida kon %{method} dizde %{ip} (%{browser}) title: Estoria de autentifikasyon - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: avizos de favoritos por posta - follow: avizos de segidores por posta - follow_request: avizos de solisitasyones de segimyento por posta - mention: avizos de enmentaduras por posta - reblog: avizos de repartajasyones por posta media_attachments: validations: images_and_video: No se puede adjuntar un video a un estado ke ya kontenga imajes diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 8ce2304a40ac44..006668fbe89e4b 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -1073,11 +1073,6 @@ lt: description_html: Jei pastebėjei neatpažįstamą veiklą, apsvarstyk galimybę pakeisti slaptažodį ir įjungti dvigubą tapatybės nustatymą. empty: Tapatybės nustatymas istorijos nėra title: Tapatybės nustatymo istorija - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - reblog: dalintis pranešimų el. pašto laiškais media_attachments: validations: images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką diff --git a/config/locales/lv.yml b/config/locales/lv.yml index fb96e9400ae026..89f5c43a21f689 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -1595,15 +1595,6 @@ lv: failed_sign_in_html: Neizdevies pieteikšanās mēģinājums ar %{method} no %{ip} (%{browser}) successful_sign_in_html: Sekmīga pieteikšanās ar %{method} no %{ip} (%{browser}) title: Autentifikācijas vēsture - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: izlases paziņojumu e-pasta ziņojumi - follow: sekošanas paziņojumu e-pasta ziņojumi - follow_request: sekošanas pieprasījumu e-pasta ziņojumi - mention: pieminēšanas paziņojumu e-pasta ziņojumi - reblog: pastiprinājumu paziņojumu e-pasta ziņojumi media_attachments: validations: images_and_video: Nevar pievienot videoklipu tādai ziņai, kura jau satur attēlus diff --git a/config/locales/ms.yml b/config/locales/ms.yml index 21470409e2a833..afd74144a0c607 100644 --- a/config/locales/ms.yml +++ b/config/locales/ms.yml @@ -1278,11 +1278,6 @@ ms: failed_sign_in_html: Percubaan log masuk gagal dengan %{method} daripada %{ip} (%{browser}) successful_sign_in_html: Log masuk yang berjaya dengan %{method} daripada %{ip} (%{browser}) title: Sejarah pengesahan - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: emel pemberitahuan sukaan media_attachments: validations: images_and_video: Tidak boleh melampirkan video pada pos yang sudah mengandungi imej diff --git a/config/locales/nan-TW.yml b/config/locales/nan-TW.yml index deba9672577245..a69d14d3b8af5d 100644 --- a/config/locales/nan-TW.yml +++ b/config/locales/nan-TW.yml @@ -1611,15 +1611,6 @@ nan-TW: failed_sign_in_html: Uì %{ip} (%{browser}) 用 %{method} 試登入失敗 successful_sign_in_html: Uì %{ip} (%{browser}) 用 %{method} 登入成功 title: 認證歷史 - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: 收藏通知電子批 - follow: 跟tuè通知電子批 - follow_request: 跟tuè請求電子批 - mention: 提起通知電子批 - reblog: 轉送通知電子批 media_attachments: validations: images_and_video: Bē當佇有影像ê PO文內底加影片 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 8549e7e17c7560..1fcbd0206c723e 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1652,15 +1652,6 @@ nl: failed_sign_in_html: Mislukte inlogpoging met %{method} van %{ip} (%{browser}) successful_sign_in_html: Succesvol ingelogd met %{method} van %{ip} (%{browser}) title: Inloggeschiedenis - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mailmeldingen voor favorieten - follow: e-mailmeldingen voor nieuwe volgers - follow_request: e-mailmeldingen voor volgverzoeken - mention: e-mailmeldingen voor vermeldingen - reblog: e-mailmeldingen voor boosts media_attachments: validations: images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld diff --git a/config/locales/nn.yml b/config/locales/nn.yml index 04c021d5ccd338..b2564b118a9476 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1650,15 +1650,6 @@ nn: failed_sign_in_html: Mislykket innloggingsforsøk med %{method} fra %{ip} (%{browser}) successful_sign_in_html: Vellykket innlogging med %{method} fra %{ip} (%{browser}) title: Autentiseringshistorikk - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-postar om favorittmarkeringar - follow: e-postar om nye fylgjarar - follow_request: e-postar om fylgjeførespurnadar - mention: e-postar om omtaler - reblog: e-postar om framhevingar media_attachments: validations: images_and_video: Kan ikkje leggja ved video til status som allereie inneheld bilete diff --git a/config/locales/pl.yml b/config/locales/pl.yml index af03c4f7cf912e..2b258ab495550a 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -1686,15 +1686,6 @@ pl: failed_sign_in_html: Próba logowania zakończona niepowodzeniem przy pomocy %{method} z %{ip} (%{browser}) successful_sign_in_html: Pomyślne logowanie przy pomocy %{method} z %{ip} (%{browser}) title: Historia uwierzytelniania - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: powiadomień mejlowych o polubieniach - follow: powiadomień mejlowych o obserwujących - follow_request: mejli o prośbach o możliwość obserwowania - mention: powiadomień mejlowych o wspomnieniach - reblog: powiadomień mejlowych o podbiciach media_attachments: validations: images_and_video: Nie możesz załączyć pliku wideo do wpisu, który zawiera już zdjęcia diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 2b4a820851cc41..b0f42b31e316e8 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -762,6 +762,7 @@ pt-BR: categories: administration: Administração devops: DevOps + email: E-mail invites: Convites moderation: Moderação special: Especial @@ -778,6 +779,8 @@ pt-BR: administrator_description: Usuários com essa permissão irão ignorar todas as permissões delete_user_data: Apagar Dados de Usuário delete_user_data_description: Permitir aos usuários apagar os dados de outros usuários instantaneamente + invite_bypass_approval: Convidar usuário sem revisão + invite_bypass_approval_description: Permitir pessoas convidadas para esse servidor por esses usuários para dispensar aprovação por moderação invite_users: Convidar Usuários invite_users_description: Permite que os usuários convidem novas pessoas para o servidor manage_announcements: Gerenciar Avisos @@ -788,6 +791,8 @@ pt-BR: manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP manage_custom_emojis: Gerenciar Emojis Personalizados manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor + manage_email_subscriptions: Gerenciar assinaturas do correio eletrônico + manage_email_subscriptions_description: Permitir que usuários se inscrevam com essa permissão por e-mail manage_federation: Gerenciar Federação manage_federation_description: Permite aos usuários bloquear ou permitir federação com outros domínios e controlar a entregabilidade manage_invites: Gerenciar convites @@ -1278,6 +1283,7 @@ pt-BR: progress: confirm: Confirmar e-mail details: Suas informações + list: Progresso do cadastro review: Nossa avaliação rules: Aceitar regras providers: @@ -1293,6 +1299,7 @@ pt-BR: invited_by: 'Você pode juntar-se a %{domain} graças ao convite que recebeu de:' preamble: Estes são definidos e aplicados pelos moderadores de %{domain}. preamble_invited: Antes de prosseguir, considere as regras de base definidas pelos moderadores de %{domain}. + read_more: Ler mais title: Algumas regras básicas. title_invited: Você recebeu convite. security: Segurança @@ -1414,6 +1421,38 @@ pt-BR: basic_information: Informações básicas hint_html: "Personalize o que as pessoas veem no seu perfil público e ao lado de suas publicações. É mais provável que outras pessoas o sigam de volta e interajam com você quando você tiver um perfil preenchido e uma foto de perfil." other: Outro + email_subscription_mailer: + confirmation: + action: Confirmar endereço de e-mail + instructions_to_confirm: Confirme que você gostaria de receber e-mails do %{name} (@%{acct}) quando postarem novas publicações. + instructions_to_ignore: Se você não tem certeza por que recebeu esse e-mail, você pode excluir. Você não será inscrito se não clicar no link acima. + subject: Confirme seu endereço de e-mail + title: Obter atualizações de e-mail do %{name}? + notification: + create_account: Criar uma conta Mastodon + footer: + privacy_html: E-mails são enviados do %{domain}, Um servidor alimentado pelo Mastodon. Para entender como esse servidor processa seus dados pessoais, consulte a Política de privacidade. + reason_for_email_html: Você está recebendo esse e-mail porque você optou por receber atualizações do %{name}. Não quer receber esses e-mails? Cancelar + interact_with_this_post: + one: Interaja com essa publicação e descubra mais como essa. + other: Interaja com essas publicações e descubra mais. + subject: + one: Nova publicação "%{excerpt}" + other: Novas publicações do %{name} + title: + one: 'Nova publicação: "%{excerpt}"' + other: Novas publicações do %{name} + email_subscriptions: + active: Ativo + confirmations: + show: + changed_your_mind: Mudou de ideia? + success_html: Agora você começará a receber e-mails quando %{name} publicar novas postagens. Adicione %{sender} para seus contatos para que essas publicações não apareçam em sua caixa de Spam. + title: Você está registrado + unsubscribe: Cancelar inscrição + inactive: Inativo + status: Situação + subscribers: Inscritos emoji_styles: auto: Automático native: Nativo @@ -1648,15 +1687,6 @@ pt-BR: failed_sign_in_html: Falha na tentativa de login com %{method} de %{ip} (%{browser}) successful_sign_in_html: Login bem-sucedido com %{method} de %{ip} (%{browser}) title: Histórico de autenticação - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: emails de notificação favoritos - follow: seguir emails de notificação - follow_request: emails de seguidores pendentes - mention: emails de notificação de menções - reblog: emails de notificação de impulsos media_attachments: validations: images_and_video: Não foi possível anexar um vídeo a uma publicação que já contém imagens @@ -1795,6 +1825,8 @@ pt-BR: posting_defaults: Padrões de publicação public_timelines: Linhas públicas privacy: + email_subscriptions: Enviar publicações por e-mail + email_subscriptions_hint_html: Adicione um formulário de inscrição por e-mail ao seu perfil, que será exibido para usuários que não estiverem conectados. Quando os visitantes inserirem seu endereço de e-mail e se inscreverem, o Mastodon enviará atualizações por e-mail sobre suas publicações públicas. hint_html: "Personalize como você quer que seu perfil e suas publicações sejam encontrados. Uma variedade de funcionalidades no Mastodon pode ajudar a alcançar um público mais amplo quando habilitado. Reserve um momento para revisar estas configurações para garantir que atendem ao seu caso de uso." privacy: Privacidade privacy_hint_html: Controle o quanto você deseja revelar para o benefício de outros. As pessoas descobrem perfis interessantes e aplicativos legais navegando pelos seguidores de outras pessoas e vendo de quais aplicativos eles publicam, mas você pode preferir manter isso oculto. @@ -2058,6 +2090,17 @@ pt-BR: resume_app_authorization: Retomar autorização de aplicativo role_requirement: "%{domain} exige que você configure a autenticação de dois fatores antes de poder utilizar o Mastodon." webauthn: Chaves de segurança + unsubscriptions: + create: + action: Acesse a página inicial do servidor + email_subscription: + confirmation_html: Você não receberá mais e-mails do %{name}. + title: Você não está registrado + user: + confirmation_html: Você não receberá mais %{type} do Mastodon no %{domain}. + notification_emails: + favourite: e-mails de notificações de favoritos + follow: receber e-mails de notificação user_mailer: announcement_published: description: 'Os administradores do %{domain} estão fazendo um anúncio:' diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 21550b348d8282..36ba06e400c0a2 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -1648,15 +1648,6 @@ pt-PT: failed_sign_in_html: Tentativa falhada de início de sessão com %{method} de %{ip} (%{browser}) successful_sign_in_html: Sessão corretamente iniciada com %{method} de %{ip} (%{browser}) title: Histórico de autenticação - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-mails de notificação de favoritos - follow: e-mails de notificação de seguidor - follow_request: e-mails de pedido de seguidor - mention: e-mails de notificação de menção - reblog: e-mails de notificação de partilhas media_attachments: validations: images_and_video: Não é possível anexar um vídeo a uma publicação que já contém imagens diff --git a/config/locales/ru.yml b/config/locales/ru.yml index c56574643b3f45..78dcda366f5f4e 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1672,15 +1672,6 @@ ru: failed_sign_in_html: Неудачная попытка входа при помощи %{method} с IP-адреса %{ip} (%{browser}) successful_sign_in_html: Вход при помощи %{method} с IP-адреса %{ip} (%{browser}) title: История входов - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: уведомлений о добавлении ваших постов в избранное - follow: уведомлений о новых подписчиках - follow_request: уведомлений о новых запросах на подписку - mention: уведомлений о новых упоминаниях - reblog: уведомлений о продвижении ваших постов media_attachments: validations: images_and_video: Нельзя добавить видео к посту с изображениями diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index 4a236d374a4201..32a3a54f8dcb19 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -134,6 +134,7 @@ da: otp: 'Angiv tofaktorkoden generet af din mobil-app eller brug en af dine gendannelseskoder:' webauthn: Er det en USB-nøgle, så sørg for at isætte den og, om nødvendigt, åbne den manuelt. settings: + email_subscriptions: Deaktivering bevarer eksisterende abonnenter, men stopper udsendelsen af e-mails. indexable: Din profilside kan fremgå i søgeresultater på Google, Bing mv. show_application: Du vil dog altid kunne se, hvilken app, der offentliggjorde dit indlæg. tag: @@ -356,6 +357,7 @@ da: hint: Yderligere oplysninger text: Regel settings: + email_subscriptions: Aktivér e-mail-tilmeldinger indexable: Inkludér profilside i søgemaskiner show_application: Vis, fra hvilken app et indlæg er sendt tag: diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 1477f1e2b15572..7a7e929ae1196f 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -134,6 +134,7 @@ el: otp: 'Βάλε τον κωδικό δυο παραγόντων (2FA) από την εφαρμογή του τηλεφώνου σου ή χρησιμοποίησε κάποιον από τους κωδικούς ανάκτησης σου:' webauthn: Αν πρόκειται για ένα κλειδί USB βεβαιωθείτε ότι είναι συνδεδεμένο και αν απαιτείται πατήστε το ελαφρά. settings: + email_subscriptions: Η απενεργοποίηση διατηρεί τους υπάρχοντες συνδρομητές αλλά σταματά την αποστολή email. indexable: Η σελίδα του προφίλ σου μπορεί να εμφανιστεί στα αποτελέσματα αναζήτησης στο Google, Bing και άλλες. show_application: Θα είσαι πάντα σε θέση να δεις ποια εφαρμογή δημοσίευσε την ανάρτησή σου όπως και να 'χει. tag: @@ -356,6 +357,7 @@ el: hint: Επιπρόσθετες πληροφορίες text: Κανόνας settings: + email_subscriptions: Ενεργοποίηση εγγραφών μέσω email indexable: Συμπερίληψη σελίδας προφίλ στις μηχανές αναζήτησης show_application: Εμφάνιση από ποια εφαρμογή έστειλες μία ανάρτηση tag: diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 62961d7817d95b..d9eeec211bf3c3 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -134,6 +134,7 @@ es-AR: otp: 'Ingresá el código de autenticación de dos factores generado por la aplicación en tu dispositivo, o usá uno de tus códigos de recuperación:' webauthn: Si es una llave USB, asegurate de insertarla y, de ser necesario, tocarla. settings: + email_subscriptions: Deshabilitar retiene a los suscriptores existentes, pero detiene el envío de correos electrónicos. indexable: Tu página de perfil podría aparecer en los resultados de búsqueda en Google, Bing y otros motores de búsqueda. show_application: Sin embargo, siempre podrás ver desde qué aplicación se envió tu mensaje. tag: @@ -356,6 +357,7 @@ es-AR: hint: Información adicional text: Regla settings: + email_subscriptions: Habilitar suscripciones por correo electrónico indexable: Incluir la página de perfil en los motores de búsqueda show_application: Mostrar desde qué aplicación enviaste un mensaje tag: diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index c110d76ee66c66..b90f40d68cf122 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -37,11 +37,11 @@ es-MX: starts_at: Opcional. En caso de que su anuncio esté vinculado a un intervalo de tiempo específico text: Puedes usar la sintaxis de publicaciones. Por favor ten en cuenta el espacio que ocupará el anuncio en la pantalla del usuario appeal: - text: Sólo puede apelar una amonestación a la vez + text: Solo se puede apelar una amonestación una vez defaults: autofollow: Los usuarios que se registren mediante la invitación te seguirán automáticamente avatar: WEBP, PNG, GIF o JPG. Máximo %{size}. Será escalado a %{dimensions}px - bot: Esta cuenta ejecuta principalmente acciones automatizadas y podría no ser monitorizada + bot: Indica a los demás que la cuenta realiza principalmente acciones automatizadas y que es posible que no esté supervisada context: Uno o múltiples contextos en los que debe aplicarse el filtro current_password: Por razones de seguridad por favor ingrese la contraseña de la cuenta actual current_username: Para confirmar, por favor ingrese el nombre de usuario de la cuenta actual @@ -53,9 +53,9 @@ es-MX: locale: El idioma de la interfaz de usuario, correos y notificaciones push password: Usa al menos 8 caracteres phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de una publicación - scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales. + scopes: A qué API tendrá acceso la aplicación. Si seleccionas un ámbito de nivel superior, no es necesario que selecciones ámbitos individuales. setting_advanced_layout: Mostrar Mastodon en un diseño de varias columnas, lo que te permite ver la cronología, las notificaciones y una tercera columna de tu elección. No se recomienda para pantallas pequeñas. - setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que han sido recientemente impulsadas (sólo afecta a las publicaciones recibidas recientemente) + setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que se hayan impulsado recientemente (solo afecta a los impulsos recibidos recientemente) setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente setting_boost_modal: Cuando está habilitado, impulsar abrirá primero un cuadro de confirmación en el que podrás cambiar la visibilidad de tu impulso. setting_default_quote_policy_private: Las publicaciones solo para seguidores hechas en Mastodon no pueden ser citadas por otros usuarios. @@ -134,6 +134,7 @@ es-MX: otp: 'Introduce el código de autenticación de dos factores generado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' webauthn: Si es una tecla USB, asegúrese de insertarla y, si es necesario, púlsela. settings: + email_subscriptions: Al desactivar la función, se conservan los suscriptores actuales, pero se deja de enviar correos electrónicos. indexable: Tu página de perfil puede aparecer en los resultados de búsqueda en Google, Bing, entre otros. show_application: Siempre podrás ver desde cuál aplicación realizaste una publicación. tag: @@ -356,6 +357,7 @@ es-MX: hint: Información adicional text: Norma settings: + email_subscriptions: Habilitar suscripciones por correo electrónico indexable: Incluir la página de perfil en los motores de búsqueda show_application: Mostrar desde cuál aplicación enviaste una publicación tag: diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 30da06b1d72f60..056e85b1a122c9 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -134,6 +134,7 @@ es: otp: 'Introduce el código de autenticación de dos factores generado por tu aplicación de teléfono o usa uno de tus códigos de recuperación:' webauthn: Si es una tecla USB, asegúrese de insertarla y, si es necesario, púlsela. settings: + email_subscriptions: Deshabilitar retiene a los suscriptores existentes pero detiene el envío de correos electrónicos. indexable: Puede que tu página de perfil aparezca en los resultados de búsqueda en Google, Bing y otros. show_application: Tú siempre podrás ver desde qué aplicación se ha publicado tu publicación. tag: @@ -356,6 +357,7 @@ es: hint: Información adicional text: Norma settings: + email_subscriptions: Habilitar registros de correo electrñonico indexable: Incluye la página de perfil en los buscadores show_application: Mostrar desde qué aplicación enviaste una publicación tag: diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 4375b37d3d3a6b..846533bddb5305 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -225,7 +225,7 @@ fr: expires_in: Expire après fields: Métadonnées du profil filter_action: Action du filtre - header: Image d’en-tête + header: Photo de couverture honeypot: "%{label} (ne pas remplir)" inbox_url: URL de la boîte de relais irreversible: Supprimer plutôt que masquer diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 34121f6e8c071e..a1540d071280f2 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -134,6 +134,7 @@ is: otp: 'Settu inn tveggja-þátta kóðann sem farsímaforritið útbjó eða notaðu einn af endurheimtukóðunum þínum:' webauthn: Ef þetta er USB-lykill, gakktu úr skugga um að honum sé stungið í samband og ef þörf þykir að ýta á hann. settings: + email_subscriptions: Sé þetta gert óvirkt haldast fyrirliggjandi áskrifendur en sending tölvupósta stöðvast. indexable: Síðan með notandasniðinu þínu gæti birst í leitarniðurstöðum Google, Bing og fleiri. show_application: Þú munt alltaf geta séð hvaða forrit birti færsluna þína. tag: @@ -356,6 +357,7 @@ is: hint: Viðbótarupplýsingar text: Regla settings: + email_subscriptions: Virkja áskriftir í tölvupósti indexable: Hafa notandasnið með í leitarvélum show_application: Birta úr hvaða forriti þú sendir færslu tag: diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index b36bdb59ec7765..5d7b7b67579910 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -133,6 +133,7 @@ sq: otp: 'Jepni kodin dyfaktorësh të prodhuar nga aplikacioni i telefonit tuaj ose përdorni një nga kodet tuaj të rikthimeve:' webauthn: Nëse është një diskth USB, sigurohuni se e keni futur dhe, në qoftë e nevojshme, prekeni. settings: + email_subscriptions: Çaktivzimi i mban pajtimtarët ekzistues, por resht dërgim email-esh. indexable: Faqja e profilit tuaj mund të shfaqet në përfundime kërkimi në Google, Bing dhe të tjerë. show_application: Pavarësisht nga kjo, do të jeni përherë në gjendje të shihni cili aplikacion botoi postimin tuaj. tag: @@ -355,6 +356,7 @@ sq: hint: Informacion shtesë text: Rregull settings: + email_subscriptions: Aktivizo regjistrime me email indexable: Përfshi faqe profili në motorë kërkimesh show_application: Shfaq prej cilit aplikacion dërguat një postim tag: diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index bb43d41c1e9caf..04c1a977ead9ac 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -134,6 +134,7 @@ vi: otp: 'Nhập mã xác thực 2 bước được tạo bởi ứng dụng điện thoại của bạn hoặc dùng một trong các mã khôi phục của bạn:' webauthn: Nếu đây là USB key, hãy cắm vào và thử xoay chiều. settings: + email_subscriptions: Việc vô hiệu hóa sẽ giữ lại những người đăng ký hiện có nhưng ngừng gửi email. indexable: Trang của bạn có thể xuất hiện trong kết quả tìm kiếm trên Google, Bing và các nơi khác. show_application: Bạn luôn có thể xem ứng dụng đã đăng tút của mình. tag: @@ -355,6 +356,7 @@ vi: hint: Thông tin thêm text: Nội quy settings: + email_subscriptions: Bật đăng ký đọc email indexable: Hiện hồ sơ trong công cụ tìm kiếm show_application: Hiện ứng dụng dùng để đăng tút tag: diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index c2e16f2459c7af..03f8cf63f9f155 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -134,6 +134,7 @@ zh-CN: otp: 输入你手机应用上生成的双因素认证代码,或者任意一个恢复代码: webauthn: 如果是 USB 密钥,请确保将其插入,如有必要,请点击它。 settings: + email_subscriptions: 禁用会保留现有的订阅者,而停止发送电子邮件。 indexable: 你的个人资料可能会出现在Google、Bing等的搜索结果中。 show_application: 无论如何,你始终可以看到是哪个应用发布了你的嘟文。 tag: @@ -355,6 +356,7 @@ zh-CN: hint: 补充信息 text: 规则 settings: + email_subscriptions: 启用邮件订阅 indexable: 允许搜索引擎索引个人资料 show_application: 显示你发嘟使用的应用 tag: diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index fcc6694b898a31..9cea1c15a7751d 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -134,6 +134,7 @@ zh-TW: otp: 請輸入產生自您手機 App 的兩階段驗證碼,或輸入其中一個備用驗證碼: webauthn: 若它是 USB 安全金鑰,請確認已正確插入,如有需要請觸擊。 settings: + email_subscriptions: 停用將保留既有訂閱者,但會停止寄送電子郵件。 indexable: 個人檔案可能出現於 Google、Bing、或其他搜尋引擎。 show_application: 將總是顯示您發嘟文之應用程式 tag: @@ -355,6 +356,7 @@ zh-TW: hint: 其他資訊 text: 規則 settings: + email_subscriptions: 啟用電子郵件訂閱註冊 indexable: 於搜尋引擎中包含個人檔案頁面 show_application: 顯示您發嘟文之應用程式 tag: diff --git a/config/locales/sk.yml b/config/locales/sk.yml index 25bc48a198f3ab..a3f9b5cd8aeaf7 100644 --- a/config/locales/sk.yml +++ b/config/locales/sk.yml @@ -1080,11 +1080,6 @@ sk: password: heslom webauthn: bezpečnostnými kľúčmi title: História overení - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - reblog: e-mailové upozornenia na zdieľania media_attachments: validations: images_and_video: K príspevku ktorý už obsahuje obrázky nemôžeš priložiť video diff --git a/config/locales/sl.yml b/config/locales/sl.yml index 8e2372a4cc1787..ed5f5f4ca8862b 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -1684,15 +1684,6 @@ sl: failed_sign_in_html: Spodletela prijava z metodo %{method} iz %{ip} (%{browser}) successful_sign_in_html: Uspešna prijava z metodo %{method} iz %{ip} (%{browser}) title: Zgodovina overjanja - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: e-sporočil z obvestili o priljubljenosti - follow: e-sporočil z obvestili o sledenju - follow_request: e-sporočil o zahtevah za sledenje - mention: e-sporočil z obvestili o omembah - reblog: e-sporočil z obvestili o izpostavljanju media_attachments: validations: images_and_video: Videoposnetka ni mogoče priložiti objavi, ki že vsebuje slike diff --git a/config/locales/sq.yml b/config/locales/sq.yml index dc52f54b24b507..910daa74dba915 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -757,6 +757,7 @@ sq: other: "%{count} përdorues" categories: administration: Administrim + email: Email invites: Ftesa moderation: Moderim special: Special @@ -785,6 +786,8 @@ sq: manage_blocks_description: U lejon përdoruesve të bllkojnë shërbime email dhe adresa IP manage_custom_emojis: Të Administrojë Emoxhi Vetjake manage_custom_emojis_description: U lejon përdoruesve të administrojnë te shërbyesi emoxhi vetjake + manage_email_subscriptions: Administroni Pajtime Me Email + manage_email_subscriptions_description: Lejojini përdoruesit të pajtohen me email te përdorues me këtë leje manage_federation: Të Administrojë Federim manage_federation_description: U lejon përdoruesve të bllokojnë ose lejojnë federim me përkatësi të tjera dhe të kontrollojnë shpërndarjen manage_invites: Të Administrojë Ftesa @@ -1407,6 +1410,38 @@ sq: basic_information: Hollësi elementare hint_html: "Përshtatni ç’shohin njerëzit në profilin tuaj publik dhe në krah të postimeve tuaja. Personat e tjerë ka më shumë gjasa t’ju ndjekin dhe ndërveprojnë me ju, kur keni të plotësuar profilin dhe një foto profili." other: Tjetër + email_subscription_mailer: + confirmation: + action: Ripohoni adresë email + instructions_to_confirm: Ripohoni se do të donit të merrni email -e nga %{name} (@%{acct}), kur boton postime të reja. + instructions_to_ignore: Nëse s’jeni i sigurt pse e morët këtë email, mund ta fshini. S’do të pajtoheni, po qe se nuk klikoni mbi lidhjen më sipër. + subject: Ripohoni adresën tuaj email + title: Të merren përditësime me email nga %{name}? + notification: + create_account: Krijoni një llogari Mastodon + footer: + privacy_html: Email-et dërgohen nga %{domain}, një shërbyes i bazuar në Mastodon. Që të kuptoni se si ky shërbyes përpunon të dhënat tuaja personale, referojuni Rregullave të Privatësisë. + reason_for_email_html: Po e merrni këtë email ngaqë keni zgjedhur përditësime me email nga %{name}. S’doni t’i merrni këta email-e? Shpajtohuni + interact_with_this_post: + one: Ndërveproni me këtë postim dhe zbuloni më tepër si ai. + other: Ndërveproni me këto postime dhe zbuloni më tepër. + subject: + one: 'Postim i ri: “%{excerpt}”' + other: Postime të reja nga %{name} + title: + one: 'Postim i ri: “%{excerpt}”' + other: Postime të reja nga %{name} + email_subscriptions: + active: Aktiv + confirmations: + show: + changed_your_mind: Ndërruat mendje? + success_html: Tani do të filloni të merrni email-e, kur %{name} boton postime të reja. Shtojeni %{sender} te kontaktet tuaj, që këto postime të mos përfundojnë te dosja juaj e Të padëshiruarve. + title: U regjistruat + unsubscribe: Shpajtohuni + inactive: Joaktiv + status: Gjendje + subscribers: Pajtimtarë errors: '400': Kërkesa që parashtruar qe e pavlefshme ose e keqformuar. '403': S’keni leje të shihni këtë faqe. @@ -1637,15 +1672,6 @@ sq: failed_sign_in_html: Dështoi përpjekje hyrjeje me %{method} nga %{ip} (%{browser}) successful_sign_in_html: Hyrje e suksesshme me %{method} nga %{ip} (%{browser}) title: Historik mirëfilltësimesh - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: email-e njoftimesh parapëlqimesh - follow: email-e njoftimesh ndjekjeje - follow_request: email-e kërkesash ndjekjeje - mention: email-e njoftimesh përmendjesh - reblog: email-e njoftimesh përforcimesh media_attachments: validations: images_and_video: S’mund të bashkëngjitet video te një gjendje që përmban figura tashmë @@ -1783,6 +1809,8 @@ sq: posting_defaults: Parazgjedhje postimesh public_timelines: Rrjedha kohore publike privacy: + email_subscriptions: Dërgo postime me email + email_subscriptions_hint_html: Shtoni te profili juaj një fotmular regjistrimi me email, që u shfaqet përdoruesve jo të futur në llogari. Kur vizitorët japin adresën e tyre email dhe zgjedhin, Mastodon-i do të dërgojë përditësime me email për postimet tuaja publike. hint_html: "Përshtatni mënyrën se si dëshironi të gjenden prej të tjerëve profili dhe postimet tuaja. Një larmi veçorish të Mastodon-it mund t’ju ndihmojnë të shtriheni në një publik më të gjerë, kur aktivizohen. Ndaluni një çast t’i shqyrtoni këto rregullime, për t’u siguruar se i përshtaten rastit tuaj." privacy: Privatësi privacy_hint_html: Kontrolloni sa doni të tregoni prej vetes për të mirën e të tjerëve. Njerëzit zbulojnë profile interensante dhe aplikacione të lezetshme duke shfletuar ndjekjet e personave të tjerë dhe duke parë se prej cilëve aplikacione postuan, por mund të parapëlqeni ta mbani të fshehur këtë. @@ -2045,6 +2073,28 @@ sq: resume_app_authorization: Rinis autorizim aplikacioni role_requirement: "%{domain} lyp që të ujdisni Mirëfilltësim Dyfaktorësh, para se të përdorni Mastodon-in." webauthn: Kyçe sigurie + unsubscriptions: + create: + action: Kalo te faqja hyrëse e shërbyesit + email_subscription: + confirmation_html: S’do të merrni më email-e nga %{name}. + title: U shpajtuat + user: + confirmation_html: S’do të merrni më %{type} nga Mastodon-i në %{domain}. + notification_emails: + favourite: email-e njoftimesh parapëlqimesh + follow: email-e njoftimesh ndjekjeje + follow_request: email-e kërkesash ndjekjeje + mention: email-e njoftimesh përmendjesh + reblog: email-e njoftimesh përforcimesh + show: + action: Shpajtohuni + email_subscription: + confirmation_html: Do të reshtni së marri email-e, kur kjo llogari të botojë postime të reja. + title: Të bëhet shpajtim nga %{name}? + user: + confirmation_html: Do të reshtni së marri %{type} nga Mastodon-i në %{domain}. + title: Të bëhet shpajtim nga %{type}? user_mailer: announcement_published: description: 'Përgjegjësit e %{domain} po bëjnë një njoftim:' diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 3180a0ba98c51f..0a26249b7d007a 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1649,15 +1649,6 @@ sv: failed_sign_in_html: Misslyckat inloggningsförsök med %{method} från %{ip} (%{browser}) successful_sign_in_html: Lyckad inloggning med %{method} från %{ip} (%{browser}) title: Autentiseringshistorik - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: aviseringsmejl för favoriserade inlägg - follow: aviseringsmejl för följda inlägg - follow_request: aviseringsmejl för följdförfrågningar - mention: aviseringsmejl för inlägg där du nämns - reblog: aviseringsmejl för förhöjda inlägg media_attachments: validations: images_and_video: Det går inte att bifoga en video till ett inlägg som redan innehåller bilder diff --git a/config/locales/th.yml b/config/locales/th.yml index a90f1a2555448f..905ecad4ab1bed 100644 --- a/config/locales/th.yml +++ b/config/locales/th.yml @@ -1507,15 +1507,6 @@ th: failed_sign_in_html: ความพยายามในการลงชื่อเข้าด้วย %{method} จาก %{ip} (%{browser}) ล้มเหลว successful_sign_in_html: ลงชื่อเข้าด้วย %{method} จาก %{ip} (%{browser}) สำเร็จ title: ประวัติการรับรองความถูกต้อง - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: อีเมลการแจ้งเตือนการชื่นชอบ - follow: อีเมลการแจ้งเตือนการติดตาม - follow_request: อีเมลคำขอติดตาม - mention: อีเมลการแจ้งเตือนการกล่าวถึง - reblog: อีเมลการแจ้งเตือนการดัน media_attachments: validations: images_and_video: ไม่สามารถแนบวิดีโอกับโพสต์ที่มีภาพอยู่แล้ว diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 1ad87c39d3c8d3..c930f08e45548d 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1652,15 +1652,6 @@ tr: failed_sign_in_html: "%{method} yöntemiyle %{ip} (%{browser}) adresinden başarısız oturum açma girişimi" successful_sign_in_html: "%{method} yöntemiyle %{ip} (%{browser}) adresinden başarılı oturum açma" title: Kimlik doğrulama geçmişi - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: favori bildirim e-postaları - follow: takip bildirim e-postaları - follow_request: takip isteği bildirim e-postaları - mention: bahsetme bildirim e-postaları - reblog: öne çıkanlar bildirim e-postaları media_attachments: validations: images_and_video: Zaten resim içeren bir duruma video eklenemez diff --git a/config/locales/uk.yml b/config/locales/uk.yml index e5ddc13b1fb874..431b6e18a5de7c 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -1569,15 +1569,6 @@ uk: failed_sign_in_html: Не вдалося увійти з %{method} з %{ip} (%{browser}) successful_sign_in_html: Успішний вхід з %{method} з %{ip} (%{browser}) title: Історія входів - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: отримувати сповіщення про вподобання електронною поштою - follow: отримувати сповіщення про підписки електронною поштою - follow_request: отримувати сповіщення про запити на стеження електронною поштою - mention: отримувати сповіщення про згадки електронною поштою - reblog: отримувати сповіщення про поширення електронною поштою media_attachments: validations: images_and_video: Не можна додати відео до допису з зображеннями diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 02862dcd73015e..976fb782cec38c 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -747,6 +747,7 @@ vi: categories: administration: Quản trị viên devops: Nhà phát triển + email: Email invites: Lời mời moderation: Kiểm duyệt special: Đặc biệt @@ -774,6 +775,8 @@ vi: manage_blocks_description: Cho phép người dùng tự chặn các nhà cung cấp email và địa chỉ IP manage_custom_emojis: Quản lý emoji manage_custom_emojis_description: Cho phép quản lý các emoji tùy chỉnh trên máy chủ + manage_email_subscriptions: Quản lý đăng ký đọc qua email + manage_email_subscriptions_description: Cho phép người dùng đăng ký nhận thông báo qua email từ những người dùng có quyền này manage_federation: Quản lý liên hợp manage_federation_description: Cho phép chặn hoặc liên hợp với các máy chủ khác và kiểm soát khả năng phân phối manage_invites: Quản lý lời mời @@ -1397,6 +1400,35 @@ vi: basic_information: Thông tin cơ bản hint_html: Mọi người sẽ muốn theo dõi và tương tác với bạn hơn nếu bạn có ảnh đại diện và hồ sơ hoàn chỉnh. other: Khác + email_subscription_mailer: + confirmation: + action: Xác nhận địa chỉ email + instructions_to_confirm: Xác nhận bạn muốn nhận email từ %{name} (@%{acct}) khi họ đăng tút mới. + instructions_to_ignore: Nếu bạn không chắc tại sao mình nhận được email này, bạn có thể xóa nó. Bạn sẽ không được đăng ký nếu không nhấn vào liên kết ở trên. + subject: Xác nhận địa chỉ email của bạn + title: Nhận cập nhật qua email từ %{name}? + notification: + create_account: Tạo một tài khoản Mastodon + footer: + privacy_html: Các email sẽ được gửi từ %{domain}, một máy chủ vận hành nhờ Mastodon. Để hiểu cách máy chủ này xử lý dữ liệu cá nhân của bạn, vui lòng tham khảo Chính sách bảo mật. + reason_for_email_html: Bạn nhận được email này vì bạn đã đăng ký nhận tút mới qua email từ %{name}. Không muốn nhận email này? Hủy đăng ký đọc + interact_with_this_post: + other: Hãy tương tác với những tút này và khám phá thêm nhiều điều thú vị. + subject: + other: Tút mới từ %{name} + title: + other: Những tút mới từ %{name} + email_subscriptions: + active: Hoạt động + confirmations: + show: + changed_your_mind: Thay đổi ý định? + success_html: Bạn sẽ bắt đầu nhận được email khi %{name} đăng tút mới. Thêm %{sender} vào danh bạ của bạn để những tút này không bị chuyển vào thư mục Spam. + title: Bạn đã đăng ký đọc + unsubscribe: Hủy đăng ký đọc + inactive: Không hoạt động + status: Trạng thái + subscribers: Người đăng ký đọc emoji_styles: auto: Tự động native: Nguyên bản @@ -1611,15 +1643,6 @@ vi: failed_sign_in_html: Đăng nhập thất bại bằng %{method} từ %{ip} (%{browser}) successful_sign_in_html: Đăng nhập bằng %{method} từ %{ip} (%{browser}) title: Lịch sử đăng nhập - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: email thông báo lượt thích - follow: email thông báo người theo dõi mới - follow_request: email thông báo yêu cầu theo dõi - mention: email thông báo lượt nhắc đến - reblog: email thông báo lượt đăng lại media_attachments: validations: images_and_video: Không thể đính kèm video vào tút đã chứa hình ảnh @@ -1757,6 +1780,8 @@ vi: posting_defaults: Mặc định cho tút public_timelines: Bảng tin privacy: + email_subscriptions: Gửi tút qua email + email_subscriptions_hint_html: Thêm biểu mẫu đăng ký email vào hồ sơ của bạn, biểu mẫu này sẽ hiển thị cho cả người dùng chưa đăng nhập. Khi khách truy cập nhập địa chỉ email của họ và chọn đăng ký, Mastodon sẽ gửi thông báo qua email về các tút công khai của bạn. hint_html: Tùy chỉnh cách mọi người tìm thấy hồ sơ và tút của bạn. privacy: Riêng tư privacy_hint_html: Kiểm soát mức độ tiết lộ chi tiết. Mọi người khám phá các hồ sơ thú vị và các ứng dụng thú vị bằng cách xem bạn theo dõi ai và bạn đăng bằng ứng dụng nào, nhưng có thể bạn muốn ẩn nó đi. @@ -2016,6 +2041,28 @@ vi: resume_app_authorization: Tiếp tục xác thực bằng ứng dụng role_requirement: "%{domain} yêu cầu bạn thiết lập Xác thụec 2 bước trước khi sử dụng Mastodon." webauthn: Khóa bảo mật + unsubscriptions: + create: + action: Đến trang chủ máy chủ + email_subscription: + confirmation_html: Bạn sẽ không còn nhận được email từ %{name}. + title: Bạn đã hủy đăng ký đọc + user: + confirmation_html: Bạn sẽ không còn nhận %{type} từ Mastodon trên %{domain}. + notification_emails: + favourite: email thông báo lượt thích + follow: email thông báo người theo dõi mới + follow_request: email thông báo yêu cầu theo dõi + mention: email thông báo lượt nhắc đến + reblog: email thông báo lượt đăng lại + show: + action: Hủy đăng ký đọc + email_subscription: + confirmation_html: Bạn sẽ ngừng nhận email khi tài khoản này đăng tút mới. + title: Hủy đăng ký đọc %{name}? + user: + confirmation_html: Bạn sẽ không còn nhận %{type} từ Mastodon trên %{domain}. + title: Hủy đăng ký đọc %{type}? user_mailer: announcement_published: description: 'Quản trị viên %{domain} gửi một thông báo:' diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 80ead9ee797949..f0e5517565ff6b 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -747,6 +747,7 @@ zh-CN: categories: administration: 管理 devops: 开发运维 + email: 电子邮件 invites: 邀请 moderation: 审核 special: 特殊 @@ -774,6 +775,8 @@ zh-CN: manage_blocks_description: 允许用户屏蔽邮箱域名与IP地址 manage_custom_emojis: 管理自定义表情 manage_custom_emojis_description: 允许用户管理站点上的自定义表情 + manage_email_subscriptions: 管理邮件订阅 + manage_email_subscriptions_description: 允许其他用户通过电子邮件订阅具备此权限的用户 manage_federation: 管理联合 manage_federation_description: 允许用户禁止或允许本站同其他站点的联合,并控制消息投递能力 manage_invites: 管理邀请 @@ -1397,6 +1400,35 @@ zh-CN: basic_information: 基本信息 hint_html: "自定义公开资料和嘟文旁边显示的内容。当你填写完整的个人资料并设置了头像时,其他人更有可能关注你并与你互动。" other: 其他 + email_subscription_mailer: + confirmation: + action: 确认电子邮件地址 + instructions_to_confirm: 确认你确实想要在 %{name}(@%{acct})发布新嘟文时收到电子邮件通知。 + instructions_to_ignore: 如果你不知道为什么收到这封电子邮件,可以直接删除。如果你不点击上方链接,则不会为你订阅。 + subject: 确认你的电子邮件地址 + title: 要接收来自 %{name} 的电子邮件推送吗? + notification: + create_account: 创建 Mastodon 账号 + footer: + privacy_html: 电子邮件发送自 %{domain},由 Mastodon 驱动的社区实例。要了解本站如何处理你的个人信息,请参见隐私政策。 + reason_for_email_html: 你收到此邮件是因为你先前订阅了来自 %{name} 的嘟文邮件通知。不想收到这些电子邮件?可以取消订阅 + interact_with_this_post: + other: 和嘟文互动,探索更多相关内容。 + subject: + other: 来自 %{name} 的新嘟文 + title: + other: 来自 %{name} 的新嘟文 + email_subscriptions: + active: 已生效 + confirmations: + show: + changed_your_mind: 改变主意了吗? + success_html: 现在开始当 %{name} 发布新嘟文时你会收到邮件提醒。记得将 %{sender} 添加到邮箱联系人中,以免嘟文推送被丢入垃圾邮件文件夹。 + title: 你已成功订阅 + unsubscribe: 取消订阅 + inactive: 未生效 + status: 状态 + subscribers: 订阅者 emoji_styles: auto: 自动 native: 原生 @@ -1611,15 +1643,6 @@ zh-CN: failed_sign_in_html: 失败的 %{method} 登录尝试,来自 %{ip} (%{browser}) successful_sign_in_html: 通过 %{method} 成功登录,来自 %{ip} (%{browser}) title: 认证历史 - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: 嘟文被喜欢邮件通知 - follow: 账号被关注邮件通知 - follow_request: 关注请求邮件通知 - mention: 账号被提及邮件通知 - reblog: 嘟文被转嘟邮件通知 media_attachments: validations: images_and_video: 无法在嘟文中同时插入视频和图片 @@ -1757,6 +1780,8 @@ zh-CN: posting_defaults: 发布默认值 public_timelines: 公共时间线 privacy: + email_subscriptions: 通过电子邮件发送嘟文 + email_subscriptions_hint_html: 在你的个人资料中添加电子邮件订阅表单,此表单会显示给未登录的用户。当访客输入电子邮件地址并主动加入时,Mastodon 将在你更新公开嘟文时为这些访客发送电子邮件通知。 hint_html: "自定义你希望如何找到你的个人资料和嘟文。启用Mastodon中的各种功能可以帮助你扩大受众范围。请花点时间查看这些设置,确保它们适合你的使用情况。" privacy: 隐私 privacy_hint_html: 控制你愿意向他人透露多少信息。通过浏览他人的关注列表和查看他们发嘟所用的应用,人们可以发现有趣的用户和酷炫的应用,但你可能更喜欢将其隐藏起来。 @@ -2016,6 +2041,28 @@ zh-CN: resume_app_authorization: 恢复应用程序授权 role_requirement: "%{domain} 要求你设置双因素认证以使用 Mastodon。" webauthn: 安全密钥 + unsubscriptions: + create: + action: 转到服务器主页 + email_subscription: + confirmation_html: 你将不会再收到来自 %{name} 的电子邮件。 + title: 你已取消订阅 + user: + confirmation_html: 你将不会再收到 %{domain} 上的 Mastodon 的%{type}。 + notification_emails: + favourite: 嘟文被喜欢邮件通知 + follow: 账号被关注邮件通知 + follow_request: 关注请求邮件通知 + mention: 账号被提及邮件通知 + reblog: 嘟文被转嘟邮件通知 + show: + action: 取消订阅 + email_subscription: + confirmation_html: 你将不再收到此账号发布新嘟文时的通知邮件。 + title: 取消订阅%{name}? + user: + confirmation_html: 你将停止接收 %{domain} 上的 Mastodon 的%{type}。 + title: 取消订阅%{type}? user_mailer: announcement_published: description: "%{domain}管理员发布了一则公告:" diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 8d3cfc6ee63a19..ecffe7aefe5945 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -747,6 +747,7 @@ zh-TW: categories: administration: 管理員 devops: DevOps + email: 電子郵件 invites: 邀請 moderation: 站務 special: 特殊 @@ -774,6 +775,8 @@ zh-TW: manage_blocks_description: 允許使用者封鎖電子郵件提供商與 IP 位址 manage_custom_emojis: 管理自訂 emoji 表情符號 manage_custom_emojis_description: 允許使用者管理伺服器上之自訂 emoji 表情符號 + manage_email_subscriptions: 管理電子郵件訂閱 + manage_email_subscriptions_description: 此權限允許使用者透過電子郵件訂閱其他使用者動態 manage_federation: 管理聯邦宇宙 manage_federation_description: 允許使用者封鎖或允許與其他網域的聯邦宇宙,並控制傳遞能力 manage_invites: 管理邀請 @@ -1399,6 +1402,35 @@ zh-TW: basic_information: 基本資訊 hint_html: "自訂人們能於您個人檔案及嘟文旁所見之內容。當您完成填寫個人檔案及設定大頭貼後,其他人們比較願意跟隨您並與您互動。" other: 其他 + email_subscription_mailer: + confirmation: + action: 確認電子郵件地址 + instructions_to_confirm: 確認您想要收到來自 %{name} (@%{acct}) 發表新嘟文時的電子郵件。 + instructions_to_ignore: 您若不確定為何您收到此電子郵件,您可以刪除它。您若不點擊上方連結,將不會訂閱。 + subject: 確認您的電子郵件地址 + title: 是否想要收到來自 %{name} 之電子郵件通訊? + notification: + create_account: 建立 Mastodon 帳號 + footer: + privacy_html: 這些電子郵件由 Mastodon 伺服器 %{domain} 寄出。欲了解這台伺服器如何處理您的個人資料,請參考 隱私權政策。 + reason_for_email_html: 您正收到這封電子郵件,因為您選擇收到來自 %{name} 之電子郵件通訊。不想再收到這些電子郵件?取消訂閱 + interact_with_this_post: + other: 與此嘟文互動並且發現更多類似嘟文。 + subject: + other: 來自 %{name} 之新嘟文 + title: + other: 來自 %{name} 之新嘟文 + email_subscriptions: + active: 生效中 + confirmations: + show: + changed_your_mind: 改變主意了嗎? + success_html: 您將開始收到當 %{name} 發表新嘟文之電子郵件。請新增 %{sender} 至您的通訊錄使這些嘟文不被分類至垃圾信件夾。 + title: 已完成註冊 + unsubscribe: 取消訂閱 + inactive: 已停用 + status: 狀態 + subscribers: 訂閱者 emoji_styles: auto: 自動 native: 原生風格 @@ -1613,15 +1645,6 @@ zh-TW: failed_sign_in_html: 使用來自 %{ip} (%{browser}) 的 %{method} 登入嘗試失敗 successful_sign_in_html: 使用來自 %{ip} (%{browser}) 的 %{method} 登入成功 title: 認證歷史紀錄 - mail_subscriptions: - unsubscribe: - emails: - notification_emails: - favourite: 最愛通知電子郵件 - follow: 跟隨通知電子郵件 - follow_request: 跟隨請求通知電子郵件 - mention: 提及通知電子郵件 - reblog: 轉嘟通知電子郵件 media_attachments: validations: images_and_video: 無法於已有圖片之嘟文中加入影片 @@ -1759,6 +1782,8 @@ zh-TW: posting_defaults: 嘟文預設值 public_timelines: 公開時間軸 privacy: + email_subscriptions: 以電子郵件寄送嘟文 + email_subscriptions_hint_html: 於您的個人檔案中新增電子郵件訂閱表單,該表單將對未登入使用者顯示。當訪客輸入他們的電子郵件地址並選擇訂閱時,Mastodon 將會寄送您公開嘟文之電子郵件通訊。 hint_html: "自訂您希望如何使您的個人檔案及嘟文被發現。藉由啟用一系列 Mastodon 功能以幫助您觸及更廣的受眾。煩請花些時間確認您是否欲啟用這些設定。" privacy: 隱私權 privacy_hint_html: 控制您希望向其他人揭露之內容。人們透過瀏覽其他人的跟隨者與其發嘟之應用程式發現有趣的個人檔案與酷炫的 Mastodon 應用程式,但您能選擇將其隱藏。 @@ -2018,6 +2043,28 @@ zh-TW: resume_app_authorization: 恢復應用程式授權 role_requirement: "%{domain} 要求您設定兩階段驗證以使用 Mastodon。" webauthn: 安全金鑰 + unsubscriptions: + create: + action: 前往伺服器首頁 + email_subscription: + confirmation_html: 您將不再收到來自 %{name} 之電子郵件。 + title: 您已成功取消訂閱 + user: + confirmation_html: 您將不再收到來自 %{domain} Mastodon 之 %{type}。 + notification_emails: + favourite: 最愛通知電子郵件 + follow: 跟隨通知電子郵件 + follow_request: 跟隨請求通知電子郵件 + mention: 提及通知電子郵件 + reblog: 轉嘟通知電子郵件 + show: + action: 取消訂閱 + email_subscription: + confirmation_html: 您將不再收到來自此帳號新嘟文之電子郵件。 + title: 取消訂閱 %{name}? + user: + confirmation_html: 您將不再收到來自 %{domain} Mastodon 之 %{type}。 + title: 取消訂閱 %{type}? user_mailer: announcement_published: description: "%{domain} 之管理員正在進行公告:" From 5061f0b1cd14c3a8dd07fb0cda1ab3456835f178 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 11:41:52 +0100 Subject: [PATCH 037/335] Update dependency @vitejs/plugin-react to v5.2.0 (#38179) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9bedbe029dd9b2..8420e1deb4e845 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5210,8 +5210,8 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^5.0.0": - version: 5.1.4 - resolution: "@vitejs/plugin-react@npm:5.1.4" + version: 5.2.0 + resolution: "@vitejs/plugin-react@npm:5.2.0" dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" @@ -5220,8 +5220,8 @@ __metadata: "@types/babel__core": "npm:^7.20.5" react-refresh: "npm:^0.18.0" peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 - checksum: 10c0/dd7b8f40717ecd4a5ab18f467134ea8135f9a443359333d71e4114aeacfc8b679be9fd36dc12290d076c78883a02e708bfe1f0d93411c06c9659da0879b952e3 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/bac0a409e71eee954a05bc41580411c369bd5f9ef0586a1f9743fba76ad6603c437d93d407d230780015361f93d1592c55e53314813cded6369c36d3c1e8edbf languageName: node linkType: hard From dd8602a928f2fbe1d89fc3bf4d159ea5d39a8df7 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 26 Mar 2026 12:03:40 +0100 Subject: [PATCH 038/335] Profile editing: Add notice in profile preferences (#38404) --- app/javascript/styles/mastodon/admin.scss | 47 ++++++++++++++++++++++ app/views/settings/profiles/show.html.haml | 9 +++++ config/locales/en.yml | 3 ++ 3 files changed, 59 insertions(+) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 47f3ff080c6e22..5a879faf7f2cd7 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -442,6 +442,53 @@ $content-width: 840px; } } } + + .callout { + display: flex; + align-items: start; + padding: 12px; + gap: 8px; + background-color: var(--color-bg-brand-softest); + color: var(--color-text-primary); + border-radius: 12px; + font-size: 15px; + margin-bottom: 30px; + + .icon { + padding: 4px; + border-radius: 9999px; + width: 1rem; + height: 1rem; + margin-top: -2px; + background-color: var(--color-bg-brand-soft); + } + + .content { + display: flex; + flex-direction: column; + gap: 8px; + flex-grow: 1; + padding: 0; + + @media screen and (width >= 630px) { + flex-direction: row; + } + } + + .body { + flex-grow: 1; + } + + .title { + font-weight: 600; + margin-bottom: 8px; + } + + a { + color: inherit; + font-weight: 600; + } + } } hr.spacer { diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml index 4f59c04747e1e0..7d7eab35457bd1 100644 --- a/app/views/settings/profiles/show.html.haml +++ b/app/views/settings/profiles/show.html.haml @@ -5,6 +5,15 @@ %h1= t('settings.profile') = render partial: 'settings/shared/profile_navigation' +- if Mastodon::Feature.profile_redesign_enabled? + %aside.callout + = material_symbol 'info' + .content + .body + %p.title= t('edit_profile.redesign_title') + %p= t('edit_profile.redesign_body') + = link_to t('edit_profile.redesign_button'), '/profile/edit' + = simple_form_for @account, url: settings_profile_path, html: { id: :edit_profile } do |f| = render 'shared/error_messages', object: @account diff --git a/config/locales/en.yml b/config/locales/en.yml index 97c4809aa3ef61..76b25667dfb85b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1421,6 +1421,9 @@ en: basic_information: Basic information hint_html: "Customize what people see on your public profile and next to your posts. Other people are more likely to follow you back and interact with you when you have a filled out profile and a profile picture." other: Other + redesign_body: Profile editing can now be accessed directly from the profile page. + redesign_button: Go there + redesign_title: There’s a new profile editing experience email_subscription_mailer: confirmation: action: Confirm email address From 39ad873589ae30230c8de1679104ade5e99bfd35 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 26 Mar 2026 12:16:55 +0100 Subject: [PATCH 039/335] Fix regressions caused by rendering default translation wrapper element (#38412) --- app/javascript/mastodon/components/badge.tsx | 2 +- .../mastodon/components/more_from_author.tsx | 20 +++++++--------- .../components/not_signed_in_indicator.tsx | 1 + .../components/regeneration_indicator.tsx | 1 + .../components/scrollable_list/components.tsx | 6 ++++- .../components/scrollable_list/index.jsx | 2 +- app/javascript/mastodon/components/status.jsx | 4 ++-- .../components/status_thread_label.tsx | 2 +- .../components/empty_message.tsx | 6 ++++- .../account_timeline/v2/tags_suggestions.tsx | 2 ++ .../mastodon/features/collections/index.tsx | 1 + .../compose/components/upload_progress.tsx | 24 ++++++++++--------- .../mastodon/features/explore/links.jsx | 2 +- .../mastodon/features/explore/suggestions.jsx | 2 +- .../mastodon/features/explore/tags.jsx | 2 +- .../mastodon/features/followers/index.tsx | 1 + .../mastodon/features/following/index.tsx | 1 + .../components/inline_follow_suggestions.tsx | 2 +- .../mastodon/features/lists/members.tsx | 1 + .../notification_group_with_status.tsx | 2 +- .../mastodon/features/report/comment.tsx | 1 + .../status/components/detailed_status.tsx | 1 + .../styles/mastodon/components.scss | 7 +----- 23 files changed, 52 insertions(+), 41 deletions(-) diff --git a/app/javascript/mastodon/components/badge.tsx b/app/javascript/mastodon/components/badge.tsx index 07ecdfa46ccd1f..54c28bf7b755c3 100644 --- a/app/javascript/mastodon/components/badge.tsx +++ b/app/javascript/mastodon/components/badge.tsx @@ -31,7 +31,7 @@ export const Badge: FC = ({ data-account-role-id={roleId} > {icon} - {label} + {label} {domain && {domain}} ); diff --git a/app/javascript/mastodon/components/more_from_author.tsx b/app/javascript/mastodon/components/more_from_author.tsx index 5075a29d3d8ab3..f855a515d2ebe9 100644 --- a/app/javascript/mastodon/components/more_from_author.tsx +++ b/app/javascript/mastodon/components/more_from_author.tsx @@ -6,16 +6,12 @@ import { AuthorLink } from 'mastodon/features/explore/components/author_link'; export const MoreFromAuthor: React.FC<{ accountId: string }> = ({ accountId, }) => ( - }} - > - {(chunks) => ( -
    - - {chunks} -
    - )} -
    +
    + + }} + /> +
    ); diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.tsx b/app/javascript/mastodon/components/not_signed_in_indicator.tsx index 015f74dcaeabed..c2e95093b71336 100644 --- a/app/javascript/mastodon/components/not_signed_in_indicator.tsx +++ b/app/javascript/mastodon/components/not_signed_in_indicator.tsx @@ -6,6 +6,7 @@ export const NotSignedInIndicator: React.FC = () => ( diff --git a/app/javascript/mastodon/components/regeneration_indicator.tsx b/app/javascript/mastodon/components/regeneration_indicator.tsx index e26b93eb4fbd0d..a79556104e1502 100644 --- a/app/javascript/mastodon/components/regeneration_indicator.tsx +++ b/app/javascript/mastodon/components/regeneration_indicator.tsx @@ -20,6 +20,7 @@ export const RegenerationIndicator: React.FC = () => ( diff --git a/app/javascript/mastodon/components/scrollable_list/components.tsx b/app/javascript/mastodon/components/scrollable_list/components.tsx index 79afaf837ad7e9..9e90ce807e8251 100644 --- a/app/javascript/mastodon/components/scrollable_list/components.tsx +++ b/app/javascript/mastodon/components/scrollable_list/components.tsx @@ -37,7 +37,11 @@ export const ItemList = forwardRef< } >(({ isLoading, emptyMessage, className, children, ...otherProps }, ref) => { if (!isLoading && Children.count(children) === 0 && emptyMessage) { - return
    {emptyMessage}
    ; + return ( +
    + {emptyMessage} +
    + ); } return ( diff --git a/app/javascript/mastodon/components/scrollable_list/index.jsx b/app/javascript/mastodon/components/scrollable_list/index.jsx index 02cbb056f784c6..a80fe5581aa12e 100644 --- a/app/javascript/mastodon/components/scrollable_list/index.jsx +++ b/app/javascript/mastodon/components/scrollable_list/index.jsx @@ -385,7 +385,7 @@ class ScrollableList extends PureComponent { {alwaysPrepend && prepend}
    - {emptyMessage} + {emptyMessage}
    {footer} diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 82028b5a3d4e9f..1df2d0965e9223 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -435,7 +435,7 @@ class Status extends ImmutablePureComponent { prepend = (
    - +
    ); @@ -447,7 +447,7 @@ class Status extends ImmutablePureComponent { prepend = (
    - +
    ); } else if (showThread && status.get('in_reply_to_id')) { diff --git a/app/javascript/mastodon/components/status_thread_label.tsx b/app/javascript/mastodon/components/status_thread_label.tsx index e1fc3b8cdacdac..147a6586eda3a5 100644 --- a/app/javascript/mastodon/components/status_thread_label.tsx +++ b/app/javascript/mastodon/components/status_thread_label.tsx @@ -51,7 +51,7 @@ export const StatusThreadLabel: React.FC<{
    - {label} + {label} ); }; diff --git a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx index 51450a85d80dbc..5a60780a09e7f8 100644 --- a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx +++ b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx @@ -65,5 +65,9 @@ export const EmptyMessage: React.FC = ({ ); } - return
    {message}
    ; + return ( +
    + {message} +
    + ); }; diff --git a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx b/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx index 93ac491f6caee2..e7f2d19cbedc78 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx @@ -78,6 +78,7 @@ export const TagSuggestions: FC = () => { values={{ link: (chunks) => {chunks}, }} + tagName='span' /> ); @@ -122,6 +123,7 @@ export const TagSuggestions: FC = () => { /> ), }} + tagName='span' /> ); diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index 9d9b5d06d86d79..d1f1953bdabc79 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -47,6 +47,7 @@ export const Collections: React.FC<{ ) : ( <> diff --git a/app/javascript/mastodon/features/compose/components/upload_progress.tsx b/app/javascript/mastodon/features/compose/components/upload_progress.tsx index e12f58d17f9d96..4fd861ddfe0c17 100644 --- a/app/javascript/mastodon/features/compose/components/upload_progress.tsx +++ b/app/javascript/mastodon/features/compose/components/upload_progress.tsx @@ -30,17 +30,19 @@ export const UploadProgress: React.FC = ({
    - {isProcessing ? ( - - ) : ( - - )} + + {isProcessing ? ( + + ) : ( + + )} +
    diff --git a/app/javascript/mastodon/features/explore/links.jsx b/app/javascript/mastodon/features/explore/links.jsx index 9858fc893209d3..8c2576f4c29512 100644 --- a/app/javascript/mastodon/features/explore/links.jsx +++ b/app/javascript/mastodon/features/explore/links.jsx @@ -47,7 +47,7 @@ class Links extends PureComponent { return (
    - +
    ); diff --git a/app/javascript/mastodon/features/explore/suggestions.jsx b/app/javascript/mastodon/features/explore/suggestions.jsx index b469a152527a5a..cca9935f9ed8e0 100644 --- a/app/javascript/mastodon/features/explore/suggestions.jsx +++ b/app/javascript/mastodon/features/explore/suggestions.jsx @@ -45,7 +45,7 @@ class Suggestions extends PureComponent { return (
    - +
    ); diff --git a/app/javascript/mastodon/features/explore/tags.jsx b/app/javascript/mastodon/features/explore/tags.jsx index 683f95bfb4e95f..9afb5ad6fa53cb 100644 --- a/app/javascript/mastodon/features/explore/tags.jsx +++ b/app/javascript/mastodon/features/explore/tags.jsx @@ -46,7 +46,7 @@ class Tags extends PureComponent { return (
    - +
    ); diff --git a/app/javascript/mastodon/features/followers/index.tsx b/app/javascript/mastodon/features/followers/index.tsx index bba2f4cb083348..219462ef6ff04c 100644 --- a/app/javascript/mastodon/features/followers/index.tsx +++ b/app/javascript/mastodon/features/followers/index.tsx @@ -63,6 +63,7 @@ const Followers: FC = () => {
    ); diff --git a/app/javascript/mastodon/features/following/index.tsx b/app/javascript/mastodon/features/following/index.tsx index 6bc7abda69aaa6..6f213fbe6b1b98 100644 --- a/app/javascript/mastodon/features/following/index.tsx +++ b/app/javascript/mastodon/features/following/index.tsx @@ -65,6 +65,7 @@ const Followers: FC = () => {
    ); diff --git a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx index 45b867ad9d6aa5..eb61183834f0d8 100644 --- a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx +++ b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx @@ -115,7 +115,7 @@ const Source: React.FC<{ id: ApiSuggestionSourceJSON }> = ({ id }) => { title={hint} > - {label} + {label} ); }; diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx index c8970b6d7a1fd6..5aa8279c052e1b 100644 --- a/app/javascript/mastodon/features/lists/members.tsx +++ b/app/javascript/mastodon/features/lists/members.tsx @@ -285,6 +285,7 @@ const ListMembers: React.FC<{ ) } diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx index 00746560dace6a..8035493283cee6 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx @@ -126,7 +126,7 @@ export const NotificationGroupWithStatus: React.FC<{
    - {label} + {label} {timestamp && ( <> diff --git a/app/javascript/mastodon/features/report/comment.tsx b/app/javascript/mastodon/features/report/comment.tsx index 8c2728a9445387..f65d38470e743b 100644 --- a/app/javascript/mastodon/features/report/comment.tsx +++ b/app/javascript/mastodon/features/report/comment.tsx @@ -194,6 +194,7 @@ const Comment: React.FC = ({ id='report.forward' defaultMessage='Forward to {target}' values={{ target: domain }} + tagName='span' /> ))} diff --git a/app/javascript/mastodon/features/status/components/detailed_status.tsx b/app/javascript/mastodon/features/status/components/detailed_status.tsx index 1dee2e51477a99..b85841098a745a 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.tsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.tsx @@ -406,6 +406,7 @@ export const DetailedStatus: React.FC<{
    )} diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index d254d0ae5286c9..5890ccc5385b73 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10679,6 +10679,7 @@ noscript { &__source { display: inline-flex; align-items: center; + max-width: 100%; color: var(--color-text-tertiary); gap: 4px; overflow: hidden; @@ -10899,12 +10900,6 @@ noscript { color: var(--color-text-secondary); } - & > span { - display: flex; - align-items: center; - gap: 8px; - } - a { display: inline-flex; align-items: center; From 35c30dfc6e7cc52cc4058a3ab0827aa2fb221457 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 26 Mar 2026 14:29:47 +0100 Subject: [PATCH 040/335] Remove overeager unique index (#38414) --- ...4_remove_unique_index_on_collection_item_object_uris.rb | 7 +++++++ db/schema.rb | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20260326112324_remove_unique_index_on_collection_item_object_uris.rb diff --git a/db/migrate/20260326112324_remove_unique_index_on_collection_item_object_uris.rb b/db/migrate/20260326112324_remove_unique_index_on_collection_item_object_uris.rb new file mode 100644 index 00000000000000..0b4ba869bc011e --- /dev/null +++ b/db/migrate/20260326112324_remove_unique_index_on_collection_item_object_uris.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class RemoveUniqueIndexOnCollectionItemObjectUris < ActiveRecord::Migration[8.1] + def change + remove_index :collection_items, :object_uri, unique: true, where: '(activity_uri IS NOT NULL)' + end +end diff --git a/db/schema.rb b/db/schema.rb index 878ddd9e42ac0d..70810b10d9f0b2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_03_25_151755) do +ActiveRecord::Schema[8.1].define(version: 2026_03_26_112324) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -373,7 +373,6 @@ t.index ["account_id"], name: "index_collection_items_on_account_id" t.index ["approval_uri"], name: "index_collection_items_on_approval_uri", unique: true, where: "(approval_uri IS NOT NULL)" t.index ["collection_id"], name: "index_collection_items_on_collection_id" - t.index ["object_uri"], name: "index_collection_items_on_object_uri", unique: true, where: "(activity_uri IS NOT NULL)" t.index ["uri"], name: "index_collection_items_on_uri", unique: true, where: "(uri IS NOT NULL)" end From abd29109c5d445e4696ddb2b99e1d849ab0430ac Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 26 Mar 2026 14:30:27 +0100 Subject: [PATCH 041/335] Fetch unknown collection when handling `FeatureRequest` activity (#38413) --- .../activitypub/activity/feature_request.rb | 13 ++++++++++- .../activity/feature_request_spec.rb | 23 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/app/lib/activitypub/activity/feature_request.rb b/app/lib/activitypub/activity/feature_request.rb index 314a430b6ba8ee..67355f6bdaa639 100644 --- a/app/lib/activitypub/activity/feature_request.rb +++ b/app/lib/activitypub/activity/feature_request.rb @@ -7,7 +7,7 @@ def perform return unless Mastodon::Feature.collections_federation_enabled? return if non_matching_uri_hosts?(@account.uri, @json['id']) - @collection = @account.collections.find_by(uri: value_or_id(@json['instrument'])) + @collection = find_or_fetch_collection @featured_account = ActivityPub::TagManager.instance.uris_to_local_accounts([value_or_id(@json['object'])]).first return if @collection.nil? || @featured_account.nil? @@ -37,6 +37,17 @@ def reject_request! queue_delivery!(collection_item, ActivityPub::RejectFeatureRequestSerializer) end + def find_or_fetch_collection + uri = value_or_id(@json['instrument']) + collection = @account.collections.find_by(uri:) + return collection if collection.present? + + collection = ActivityPub::FetchRemoteFeaturedCollectionService.new.call(uri) + return collection if collection.present? && collection.account == @account + + nil + end + def collection_item_attributes(state = :accepted) { account: @featured_account, activity_uri: @json['id'], state: } end diff --git a/spec/lib/activitypub/activity/feature_request_spec.rb b/spec/lib/activitypub/activity/feature_request_spec.rb index 4a3d60b5de13d8..cd199a806a4486 100644 --- a/spec/lib/activitypub/activity/feature_request_spec.rb +++ b/spec/lib/activitypub/activity/feature_request_spec.rb @@ -52,5 +52,28 @@ end, recipient.id, sender.inbox_url) end end + + context 'when the collection is not yet known' do + let(:discoverable) { true } + let(:collection) { instance_double(Collection, uri: 'https://example.com/collections/1') } + let(:stubbed_service) do + service = instance_double(ActivityPub::FetchRemoteFeaturedCollectionService) + allow(service).to receive(:call) do + Fabricate(:remote_collection, account: sender, uri: collection.uri) + end + service + end + + before do + allow(ActivityPub::FetchRemoteFeaturedCollectionService).to receive(:new).and_return(stubbed_service) + end + + it 'fetches the collection before handling the request' do + subject.perform + + expect(ActivityPub::DeliveryWorker).to have_enqueued_sidekiq_job + expect(stubbed_service).to have_received(:call) + end + end end end From e81a4e258c62e14b5bbff860aa1ef9f18c465b8c Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 26 Mar 2026 14:33:16 +0100 Subject: [PATCH 042/335] Add support for FEP-2c59 (#38239) --- app/helpers/context_helper.rb | 1 + .../activitypub/actor_serializer.rb | 6 +- .../activitypub/fetch_remote_actor_service.rb | 20 +++- config/initializers/json_ld_webfinger.rb | 14 +++ .../fetch_remote_actor_service_spec.rb | 92 +++++++++++++++++++ 5 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 config/initializers/json_ld_webfinger.rb diff --git a/app/helpers/context_helper.rb b/app/helpers/context_helper.rb index 143668aa43be3c..ed8f4fbf0bc912 100644 --- a/app/helpers/context_helper.rb +++ b/app/helpers/context_helper.rb @@ -4,6 +4,7 @@ module ContextHelper NAMED_CONTEXT_MAP = { activitystreams: 'https://www.w3.org/ns/activitystreams', security: 'https://w3id.org/security/v1', + webfinger: 'https://purl.archive.org/socialweb/webfinger', }.freeze CONTEXT_EXTENSION_MAP = { diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb index 9b78412887af99..664d8f88d7468c 100644 --- a/app/serializers/activitypub/actor_serializer.rb +++ b/app/serializers/activitypub/actor_serializer.rb @@ -4,7 +4,7 @@ class ActivityPub::ActorSerializer < ActivityPub::Serializer include RoutingHelper include FormattingHelper - context :security + context :security, :webfinger context_extensions :manually_approves_followers, :featured, :also_known_as, :moved_to, :property_value, :discoverable, :suspended, @@ -55,6 +55,10 @@ def id ActivityPub::TagManager.instance.uri_for(object) end + def webfinger + object.local_username_and_domain + end + def type if object.instance_actor? 'Application' diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb index 1fb3f45ce5811f..9daa7e445ef23e 100644 --- a/app/services/activitypub/fetch_remote_actor_service.rb +++ b/app/services/activitypub/fetch_remote_actor_service.rb @@ -27,11 +27,23 @@ def call(uri, prefetched_body: nil, break_on_redirect: false, only_key: false, s raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context? raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type? raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present? - raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank? + raise Error, "Actor #{uri} has neither 'preferredUsername' nor `webfinger`, which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank? && @json['webfinger'].blank? - @uri = @json['id'] - @username = @json['preferredUsername'] - @domain = Addressable::URI.parse(@uri).normalized_host + @uri = @json['id'] + + # FEP-2c59 defines a `webfinger` attribute that makes things more explicit and spares an extra request in some cases. + # It supersedes `preferredUsername`. + if @json['webfinger'].present? && @json['webfinger'].is_a?(String) + @username, @domain = split_acct(@json['webfinger']) + Rails.logger.debug { "Actor #{uri} has an invalid `webfinger` value, falling back to `preferredUsername`" } + end + + if @username.blank? || @domain.blank? + raise "Actor #{uri} has no `preferredUsername`, and either a bogus or missing `webfinger`, which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank? + + @username = @json['preferredUsername'] + @domain = Addressable::URI.parse(@uri).normalized_host + end check_webfinger! unless only_key diff --git a/config/initializers/json_ld_webfinger.rb b/config/initializers/json_ld_webfinger.rb new file mode 100644 index 00000000000000..da2437260c06a7 --- /dev/null +++ b/config/initializers/json_ld_webfinger.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'json/ld' + +class JSON::LD::Context + add_preloaded("http://purl.archive.org/socialweb/webfinger") do + new(processingMode: "json-ld-1.0", term_definitions: { + "webfinger" => TermDefinition.new("webfinger", id: "https://purl.archive.org/socialweb/webfinger#webfinger", type_mapping: "http://www.w3.org/2001/XMLSchema#string"), + "wf" => TermDefinition.new("wf", id: "https://purl.archive.org/socialweb/webfinger#", simple: true, prefix: true), + "xsd" => TermDefinition.new("xsd", id: "http://www.w3.org/2001/XMLSchema#", simple: true, prefix: true) + }) + end + alias_preloaded("https://purl.archive.org/socialweb/webfinger", "http://purl.archive.org/socialweb/webfinger") +end diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb index 61b1e15c95947b..a014e234adb832 100644 --- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb @@ -133,5 +133,97 @@ expect(subject.call('https://fake.address/@foo', prefetched_body: actor.to_json)).to be_nil end end + + context 'when the actor uses the webfinger propery from FEP-2c59' do + before do + actor[:webfinger] = acct + end + + context 'when URI and WebFinger share the same host' do + let(:acct) { 'alice@example.com' } + let!(:webfinger) { { subject: "acct:#{acct}", links: [{ rel: 'self', href: 'https://example.com/alice', type: 'application/activity+json' }] } } + + before do + stub_request(:get, 'https://example.com/alice').to_return(body: actor.to_json, headers: { 'Content-Type': 'application/activity+json' }) + stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:#{acct}").to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' }) + end + + it 'fetches resource and looks up webfinger and sets values' do + account + + expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once + expect(a_request(:get, "https://example.com/.well-known/webfinger?resource=acct:#{acct}")).to have_been_made.once + + expect(account.username).to eq 'alice' + expect(account.domain).to eq 'example.com' + end + + it_behaves_like 'sets profile data' + end + + context 'when WebFinger returns a different URI' do + let(:acct) { 'alice@example.com' } + let!(:webfinger) { { subject: "acct:#{acct}", links: [{ rel: 'self', href: 'https://example.com/bob', type: 'application/activity+json' }] } } + + before do + stub_request(:get, 'https://example.com/alice').to_return(body: actor.to_json, headers: { 'Content-Type': 'application/activity+json' }) + stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:#{acct}").to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' }) + end + + it 'fetches resource and looks up webfinger and does not create account' do + expect(account).to be_nil + + expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once + expect(a_request(:get, "https://example.com/.well-known/webfinger?resource=acct:#{acct}")).to have_been_made.once + end + end + + context 'when WebFinger is at another domain' do + let(:acct) { 'alice@iscool.af' } + let!(:webfinger) { { subject: "acct:#{acct}", links: [{ rel: 'self', href: 'https://example.com/alice', type: 'application/activity+json' }] } } + + before do + stub_request(:get, 'https://example.com/alice').to_return(body: actor.to_json, headers: { 'Content-Type': 'application/activity+json' }) + stub_request(:get, "https://iscool.af/.well-known/webfinger?resource=acct:#{acct}").to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' }) + end + + it 'fetches resource and looks up webfinger and follows redirect and sets values' do + account + + expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once + expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to_not have_been_made + expect(a_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af')).to have_been_made.once + + expect(account.username).to eq 'alice' + expect(account.domain).to eq 'iscool.af' + end + + it_behaves_like 'sets profile data' + end + + context 'when WebFinger is at another domain and redirects back' do + let(:acct) { 'alice@iscool.af' } + let!(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice', type: 'application/activity+json' }] } } + + before do + stub_request(:get, 'https://example.com/alice').to_return(body: actor.to_json, headers: { 'Content-Type': 'application/activity+json' }) + stub_request(:get, "https://iscool.af/.well-known/webfinger?resource=acct:#{acct}").to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' }) + stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: webfinger.to_json, headers: { 'Content-Type': 'application/jrd+json' }) + end + + it 'fetches resource and looks up webfinger and follows redirect and sets values' do + account + + expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once + expect(a_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af')).to have_been_made.once + expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made + + expect(account.username).to eq 'alice' + expect(account.domain).to eq 'example.com' + end + + it_behaves_like 'sets profile data' + end + end end end From b321d5d37756cf7e96631321bc07f116667dfcdb Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 26 Mar 2026 10:07:06 -0400 Subject: [PATCH 043/335] Use `resources` to declare API TOS access endpoints (#38416) --- .../instances/terms_of_service_controller.rb | 15 ++++ .../instances/terms_of_services_controller.rb | 23 ------ config/routes/api.rb | 5 +- .../v1/instances/terms_of_services_spec.rb | 77 ++++++++++++++++--- 4 files changed, 83 insertions(+), 37 deletions(-) create mode 100644 app/controllers/api/v1/instances/terms_of_service_controller.rb delete mode 100644 app/controllers/api/v1/instances/terms_of_services_controller.rb diff --git a/app/controllers/api/v1/instances/terms_of_service_controller.rb b/app/controllers/api/v1/instances/terms_of_service_controller.rb new file mode 100644 index 00000000000000..9968b41317eb2f --- /dev/null +++ b/app/controllers/api/v1/instances/terms_of_service_controller.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +class Api::V1::Instances::TermsOfServiceController < Api::V1::Instances::BaseController + before_action :cache_even_if_authenticated! + + def index + @terms_of_service = TermsOfService.current || raise(ActiveRecord::RecordNotFound) + render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer + end + + def show + @terms_of_service = TermsOfService.published.find_by!(effective_date: params[:date]) + render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer + end +end diff --git a/app/controllers/api/v1/instances/terms_of_services_controller.rb b/app/controllers/api/v1/instances/terms_of_services_controller.rb deleted file mode 100644 index a32438e31d8c39..00000000000000 --- a/app/controllers/api/v1/instances/terms_of_services_controller.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -class Api::V1::Instances::TermsOfServicesController < Api::V1::Instances::BaseController - before_action :set_terms_of_service - - def show - cache_even_if_authenticated! - render json: @terms_of_service, serializer: REST::TermsOfServiceSerializer - end - - private - - def set_terms_of_service - @terms_of_service = begin - if params[:date].present? - TermsOfService.published.find_by!(effective_date: params[:date]) - else - TermsOfService.current - end - end - not_found if @terms_of_service.nil? - end -end diff --git a/config/routes/api.rb b/config/routes/api.rb index 61d74f4cd9fe79..696981aad223f3 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -145,14 +145,13 @@ resources :peers, only: [:index] resources :rules, only: [:index] resources :domain_blocks, only: [:index] + resources :terms_of_service, only: [:index, :show], param: :date + resource :privacy_policy, only: [:show] - resource :terms_of_service, only: [:show] resource :extended_description, only: [:show] resource :translation_languages, only: [:show] resource :languages, only: [:show] resource :activity, only: [:show], controller: :activity - - get '/terms_of_service/:date', to: 'terms_of_services#show' end end diff --git a/spec/requests/api/v1/instances/terms_of_services_spec.rb b/spec/requests/api/v1/instances/terms_of_services_spec.rb index 5feb49f48d58a5..3a352a6d0cb623 100644 --- a/spec/requests/api/v1/instances/terms_of_services_spec.rb +++ b/spec/requests/api/v1/instances/terms_of_services_spec.rb @@ -4,21 +4,76 @@ RSpec.describe 'Terms of Service' do describe 'GET /api/v1/instance/terms_of_service' do - before do - Fabricate(:terms_of_service) + context 'with a current TOS record' do + before do + Fabricate(:terms_of_service) + end + + it 'returns http success' do + get api_v1_instance_terms_of_service_index_path + + expect(response) + .to have_http_status(200) + expect(response.media_type) + .to eq('application/json') + + expect(response.parsed_body) + .to be_present + .and include(:content) + end + end + + context 'without a current TOS record' do + it 'returns http success' do + get api_v1_instance_terms_of_service_index_path + + expect(response) + .to have_http_status(404) + expect(response.media_type) + .to eq('application/json') + + expect(response.parsed_body) + .to be_present + .and include(error: /not found/i) + end + end + end + + describe 'GET /api/v1/instance/terms_of_service/:date' do + context 'with an effective TOS record' do + before do + travel_to 2.days.ago do + Fabricate(:terms_of_service, effective_date: 2.days.from_now, published_at: Date.current) + end + end + + it 'returns http success' do + get api_v1_instance_terms_of_service_path(date: Date.current.to_s) + + expect(response) + .to have_http_status(200) + expect(response.media_type) + .to eq('application/json') + + expect(response.parsed_body) + .to be_present + .and include(:content) + end end - it 'returns http success' do - get api_v1_instance_terms_of_service_path + context 'without an effective TOS record' do + it 'returns http not found' do + get api_v1_instance_terms_of_service_path(date: Date.current.to_s) - expect(response) - .to have_http_status(200) - expect(response.content_type) - .to start_with('application/json') + expect(response) + .to have_http_status(404) + expect(response.media_type) + .to eq('application/json') - expect(response.parsed_body) - .to be_present - .and include(:content) + expect(response.parsed_body) + .to be_present + .and include(error: /not found/i) + end end end end From 5b2e614bebdc59552b8c878aaabf957f8ec3e78b Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 26 Mar 2026 15:13:43 +0100 Subject: [PATCH 044/335] Add more key processing tests (#38419) --- .../process_account_service_spec.rb | 119 +++++++++++++++++- 1 file changed, 113 insertions(+), 6 deletions(-) diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 8e8fbb6a440817..99bcbba9fea951 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -95,6 +95,8 @@ end context 'with a single keypair' do + let(:public_key) { 'foo' } + let(:payload) do { id: 'https://foo.test/actor', @@ -104,7 +106,7 @@ publicKey: { id: 'https://foo.test/actor#key1', owner: 'https://foo.test/actor', - publicKeyPem: 'foo', + publicKeyPem: public_key, }, }.with_indifferent_access end @@ -116,18 +118,116 @@ expect(account.keypairs).to contain_exactly( have_attributes( uri: 'https://foo.test/actor#key1', + type: 'rsa', + public_key: + ) + ) + end + + context 'when the account was known with a legacy key' do + let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice') } + + it 'invalidates the legacy key and stores the new key' do + expect { subject.call('alice', 'example.com', payload) } + .to change { alice.reload.public_key }.to('') + .and change { alice.reload.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa', public_key: }))) + end + end + + context 'when the account was known with an old key' do + let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice', public_key: '') } + + before do + Fabricate(:keypair, account: alice, uri: 'https://foo.test/actor#old-key', type: :rsa) + end + + it 'invalidates the legacy key and stores the new key' do + expect { subject.call('alice', 'example.com', payload) } + .to change { alice.reload.keypairs.to_a }.from(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#old-key' }))).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa', public_key: }))) + + expect(alice.reload.public_key) + .to eq '' + end + end + end + + context 'when the key is in a separate document' do + let(:key_id) { 'https://foo.test/actor/main-key' } + let(:public_key) { 'foo' } + + let(:payload) do + { + id: 'https://foo.test/actor', + type: 'Actor', + inbox: 'https://foo.test/inbox', + preferredUsername: 'alice', + publicKey: key_id, + }.deep_stringify_keys + end + + let(:key_document) do + { + id: key_id, + owner: 'https://foo.test/actor', + publicKeyPem: public_key, + }.deep_stringify_keys + end + + before do + stub_request(:get, key_id).to_return(status: 200, body: key_document.to_json, headers: { 'Content-Type': 'application/activity+json' }) + end + + it 'stores the key' do + account = subject.call('alice', 'example.com', payload) + + expect(account.public_key).to eq '' + expect(account.keypairs).to contain_exactly( + have_attributes( + uri: key_id, + public_key:, type: 'rsa' ) ) end + context 'when the key document is a bogus copy of the author (GoToSocial quirk)' do + let(:payload) do + { + id: 'https://foo.test/actor', + type: 'Actor', + inbox: 'https://foo.test/inbox', + preferredUsername: 'alice', + publicKey: { + id: key_id, + owner: 'https://foo.test/actor', + publicKeyPem: public_key, + }, + }.deep_stringify_keys + end + + let(:key_document) { payload } + + it 'stores the key' do + account = subject.call('alice', 'example.com', payload) + + expect(account.public_key).to eq '' + expect(account.keypairs).to contain_exactly( + have_attributes( + uri: key_id, + public_key:, + type: 'rsa' + ) + ) + end + end + context 'when the account was known with a legacy key' do let!(:alice) { Fabricate(:account, uri: 'https://foo.test/actor', domain: 'example.com', username: 'alice') } it 'invalidates the legacy key and stores the new key' do expect { subject.call('alice', 'example.com', payload) } .to change { alice.reload.public_key }.to('') - .and change { alice.reload.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }))) + .and change { alice.reload.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: key_id, type: 'rsa', public_key: }))) end end @@ -140,7 +240,7 @@ it 'invalidates the legacy key and stores the new key' do expect { subject.call('alice', 'example.com', payload) } - .to change { alice.reload.keypairs.to_a }.from(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#old-key' }))).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }))) + .to change { alice.reload.keypairs.to_a }.from(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#old-key' }))).to(contain_exactly(have_attributes({ uri: key_id, type: 'rsa', public_key: }))) expect(alice.reload.public_key) .to eq '' @@ -177,11 +277,13 @@ expect(account.keypairs).to contain_exactly( have_attributes( uri: 'https://foo.test/actor#key1', - type: 'rsa' + type: 'rsa', + public_key: 'foo' ), have_attributes( uri: 'https://foo.test/actor#key2', - type: 'rsa' + type: 'rsa', + public_key: 'bar' ) ) end @@ -192,7 +294,12 @@ it 'invalidates the legacy key and stores the new keys' do expect { subject.call('alice', 'example.com', payload) } .to change { alice.reload.public_key }.to('') - .and change { alice.keypairs.to_a }.from([]).to(contain_exactly(have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa' }), have_attributes({ uri: 'https://foo.test/actor#key2', type: 'rsa' }))) + .and change { alice.keypairs.to_a }.from([]).to( + contain_exactly( + have_attributes({ uri: 'https://foo.test/actor#key1', type: 'rsa', public_key: 'foo' }), + have_attributes({ uri: 'https://foo.test/actor#key2', type: 'rsa', public_key: 'bar' }) + ) + ) end end end From 87dc8f903633f8c31075f75cfe7cff7457993017 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 26 Mar 2026 15:15:05 +0100 Subject: [PATCH 045/335] Profile redesign: Fix follower/following pagination (#38417) --- app/javascript/mastodon/selectors/user_lists.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/selectors/user_lists.ts b/app/javascript/mastodon/selectors/user_lists.ts index 9d681aa2553e41..ed5a3271bacbcd 100644 --- a/app/javascript/mastodon/selectors/user_lists.ts +++ b/app/javascript/mastodon/selectors/user_lists.ts @@ -29,7 +29,7 @@ export const selectUserListWithoutMe = createAppSelector( .filter((id) => id !== currentAccountId) .toArray(), isLoading: !!list.get('isLoading', true), - hasMore: !!list.get('hasMore', false), + hasMore: !!list.get('next'), }; }, ); From 71092457e97bb4f842de4b9570e6f36cf86d4879 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 14:18:41 +0000 Subject: [PATCH 046/335] Update dependency rails to v8.1.3 (#38377) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cc3843b19b2153..d5d71953b406ae 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,29 +12,29 @@ GEM specs: action_text-trix (2.1.17) railties - actioncable (8.1.2.1) - actionpack (= 8.1.2.1) - activesupport (= 8.1.2.1) + actioncable (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (8.1.2.1) - actionpack (= 8.1.2.1) - activejob (= 8.1.2.1) - activerecord (= 8.1.2.1) - activestorage (= 8.1.2.1) - activesupport (= 8.1.2.1) + actionmailbox (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) mail (>= 2.8.0) - actionmailer (8.1.2.1) - actionpack (= 8.1.2.1) - actionview (= 8.1.2.1) - activejob (= 8.1.2.1) - activesupport (= 8.1.2.1) + actionmailer (8.1.3) + actionpack (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activesupport (= 8.1.3) mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (8.1.2.1) - actionview (= 8.1.2.1) - activesupport (= 8.1.2.1) + actionpack (8.1.3) + actionview (= 8.1.3) + activesupport (= 8.1.3) nokogiri (>= 1.8.5) rack (>= 2.2.4) rack-session (>= 1.0.1) @@ -42,16 +42,16 @@ GEM rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) useragent (~> 0.16) - actiontext (8.1.2.1) + actiontext (8.1.3) action_text-trix (~> 2.1.15) - actionpack (= 8.1.2.1) - activerecord (= 8.1.2.1) - activestorage (= 8.1.2.1) - activesupport (= 8.1.2.1) + actionpack (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (8.1.2.1) - activesupport (= 8.1.2.1) + actionview (8.1.3) + activesupport (= 8.1.3) builder (~> 3.1) erubi (~> 1.11) rails-dom-testing (~> 2.2) @@ -61,22 +61,22 @@ GEM activemodel (>= 4.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (8.1.2.1) - activesupport (= 8.1.2.1) + activejob (8.1.3) + activesupport (= 8.1.3) globalid (>= 0.3.6) - activemodel (8.1.2.1) - activesupport (= 8.1.2.1) - activerecord (8.1.2.1) - activemodel (= 8.1.2.1) - activesupport (= 8.1.2.1) + activemodel (8.1.3) + activesupport (= 8.1.3) + activerecord (8.1.3) + activemodel (= 8.1.3) + activesupport (= 8.1.3) timeout (>= 0.4.0) - activestorage (8.1.2.1) - actionpack (= 8.1.2.1) - activejob (= 8.1.2.1) - activerecord (= 8.1.2.1) - activesupport (= 8.1.2.1) + activestorage (8.1.3) + actionpack (= 8.1.3) + activejob (= 8.1.3) + activerecord (= 8.1.3) + activesupport (= 8.1.3) marcel (~> 1.0) - activesupport (8.1.2.1) + activesupport (8.1.3) base64 bigdecimal concurrent-ruby (~> 1.0, >= 1.3.1) @@ -354,7 +354,7 @@ GEM azure-blob (~> 0.5.2) hashie (~> 5.0) jmespath (1.6.2) - json (2.19.2) + json (2.19.3) json-canonicalization (1.0.0) json-jwt (1.17.0) activesupport (>= 4.2) @@ -657,20 +657,20 @@ GEM rack (>= 1.3) rackup (2.3.1) rack (>= 3) - rails (8.1.2.1) - actioncable (= 8.1.2.1) - actionmailbox (= 8.1.2.1) - actionmailer (= 8.1.2.1) - actionpack (= 8.1.2.1) - actiontext (= 8.1.2.1) - actionview (= 8.1.2.1) - activejob (= 8.1.2.1) - activemodel (= 8.1.2.1) - activerecord (= 8.1.2.1) - activestorage (= 8.1.2.1) - activesupport (= 8.1.2.1) + rails (8.1.3) + actioncable (= 8.1.3) + actionmailbox (= 8.1.3) + actionmailer (= 8.1.3) + actionpack (= 8.1.3) + actiontext (= 8.1.3) + actionview (= 8.1.3) + activejob (= 8.1.3) + activemodel (= 8.1.3) + activerecord (= 8.1.3) + activestorage (= 8.1.3) + activesupport (= 8.1.3) bundler (>= 1.15.0) - railties (= 8.1.2.1) + railties (= 8.1.3) rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest @@ -681,9 +681,9 @@ GEM rails-i18n (8.1.0) i18n (>= 0.7, < 2) railties (>= 8.0.0, < 9) - railties (8.1.2.1) - actionpack (= 8.1.2.1) - activesupport (= 8.1.2.1) + railties (8.1.3) + actionpack (= 8.1.3) + activesupport (= 8.1.3) irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) From 6f509d71c3ea3fd715bd46d17f6f391f3c800392 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 26 Mar 2026 15:42:44 +0100 Subject: [PATCH 047/335] Make sure collection exists before items are added (#38424) --- .../process_featured_collection_service.rb | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/app/services/activitypub/process_featured_collection_service.rb b/app/services/activitypub/process_featured_collection_service.rb index 80742b081ef1f0..9e7c82af42d638 100644 --- a/app/services/activitypub/process_featured_collection_service.rb +++ b/app/services/activitypub/process_featured_collection_service.rb @@ -17,20 +17,15 @@ def call(account, json, request_id: nil) Collection.transaction do @collection = @account.collections.find_or_initialize_by(uri: @json['id']) - @collection.update!( - local: false, - name: (@json['name'] || '')[0, Collection::NAME_LENGTH_HARD_LIMIT], - description_html: truncated_summary, - language:, - sensitive: @json['sensitive'], - discoverable: @json['discoverable'], - original_number_of_items: @json['totalItems'] || 0, - tag_name: @json.dig('topic', 'name') - ) - - process_items! + @collection.update!(collection_attributes) + + @items = (@json['orderedItems'] || [])[0, ITEMS_LIMIT] + item_uris = @items.filter_map { |i| value_or_id(i) } + @collection.collection_items.where.not(uri: item_uris).delete_all end + process_items! + @collection end end @@ -46,14 +41,22 @@ def language @json['summaryMap']&.keys&.first end + def collection_attributes + { + local: false, + name: (@json['name'] || '')[0, Collection::NAME_LENGTH_HARD_LIMIT], + description_html: truncated_summary, + language:, + sensitive: @json['sensitive'], + discoverable: @json['discoverable'], + original_number_of_items: @json['totalItems'] || 0, + tag_name: @json.dig('topic', 'name'), + } + end + def process_items! - uris = [] - items = @json['orderedItems'] || [] - items.take(ITEMS_LIMIT).each_with_index do |item_json, index| - uris << value_or_id(item_json) + @items.each_with_index do |item_json, index| ActivityPub::ProcessFeaturedItemWorker.perform_async(@collection.id, item_json, index + 1, @request_id) end - uris.compact! - @collection.collection_items.where.not(uri: uris).delete_all end end From 2124be8a819a0d645dd8438ec50fd698f749936f Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 26 Mar 2026 15:56:36 +0100 Subject: [PATCH 048/335] Update collection list item design (#38425) --- app/javascript/mastodon/components/avatar.tsx | 2 +- .../components/display_name/default.tsx | 15 +- .../features/account_featured/index.tsx | 1 + .../detail/collection_list_item.module.scss | 54 +++++-- .../detail/collection_list_item.tsx | 149 +++++++++++------- .../features/collections/detail/index.tsx | 51 +++++- .../collections/detail/styles.module.scss | 12 +- .../mastodon/features/collections/index.tsx | 2 + app/javascript/mastodon/locales/en.json | 1 + .../styles/mastodon/components.scss | 5 +- 10 files changed, 215 insertions(+), 77 deletions(-) diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx index b086ef42259dcc..ced733b5d717f0 100644 --- a/app/javascript/mastodon/components/avatar.tsx +++ b/app/javascript/mastodon/components/avatar.tsx @@ -95,7 +95,7 @@ export const Avatar: React.FC = ({ }; export const AvatarById: React.FC< - { accountId: string } & Omit + { accountId: string | undefined } & Omit > = ({ accountId, ...otherProps }) => { const account = useAccount(accountId); return ; diff --git a/app/javascript/mastodon/components/display_name/default.tsx b/app/javascript/mastodon/components/display_name/default.tsx index 57ae24ab26f7ac..ec42c9ada97ed8 100644 --- a/app/javascript/mastodon/components/display_name/default.tsx +++ b/app/javascript/mastodon/components/display_name/default.tsx @@ -6,10 +6,11 @@ import { Skeleton } from '../skeleton'; import type { DisplayNameProps } from './index'; import { DisplayNameWithoutDomain } from './no-domain'; -export const DisplayNameDefault: FC< - Omit & ComponentPropsWithoutRef<'span'> -> = ({ account, localDomain, className, ...props }) => { - const username = useMemo(() => { +export function useAccountHandle( + account: DisplayNameProps['account'], + localDomain: DisplayNameProps['localDomain'], +) { + return useMemo(() => { if (!account) { return null; } @@ -20,6 +21,12 @@ export const DisplayNameDefault: FC< } return `@${acct}`; }, [account, localDomain]); +} + +export const DisplayNameDefault: FC< + Omit & ComponentPropsWithoutRef<'span'> +> = ({ account, localDomain, className, ...props }) => { + const username = useAccountHandle(account, localDomain); return ( = ({ key={item.id} collection={item} withoutBorder={index === listedCollections.length - 1} + withAuthorHandle={false} positionInList={index + 1} listSize={listedCollections.length} /> diff --git a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss b/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss index 3c71e90f484fc0..7cdf9b854127cc 100644 --- a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss +++ b/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss @@ -1,8 +1,9 @@ .wrapper { display: flex; - align-items: center; + align-items: start; + margin-inline: 24px; + padding-block: 12px; gap: 16px; - padding-inline: 16px; &:not(.wrapperWithoutBorder) { border-bottom: 1px solid var(--color-border-primary); @@ -12,12 +13,42 @@ .content { position: relative; flex-grow: 1; - padding-block: 15px; + display: flex; + align-items: center; + column-gap: 12px; +} + +.avatarGrid { + position: relative; + display: grid; + grid-template-columns: repeat(2, min-content); + gap: 2px; + + &.avatarGridSensitive { + .avatar { + filter: blur(4px); + } + } +} + +.avatar { + background: var(--color-bg-brand-softest); +} + +.avatarSensitiveBadge { + position: absolute; + inset: 0; + margin: auto; + padding: 3px; + width: 18px; + height: 18px; + border-radius: 8px; + color: var(--color-text-primary); + background: var(--color-bg-warning-softest); } .link { display: block; - margin-bottom: 2px; font-size: 15px; font-weight: 500; text-decoration: none; @@ -40,15 +71,12 @@ color: var(--color-text-secondary); } -.metaList { - --gap: 0.75ch; - - display: flex; - flex-wrap: wrap; - gap: var(--gap); +.menuButton { + padding: 4px; + margin-top: -2px; - & > li:not(:last-child)::after { - content: '·'; - margin-inline-start: var(--gap); + svg { + width: 20px; + height: 20px; } } diff --git a/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx b/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx index 73584a9e7b54c7..08c04f030ae6ae 100644 --- a/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx +++ b/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx @@ -5,70 +5,65 @@ import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import { Link } from 'react-router-dom'; +import WarningIcon from '@/material-icons/400-24px/warning.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; +import { AvatarById } from 'mastodon/components/avatar'; +import { useAccountHandle } from 'mastodon/components/display_name/default'; import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; import { Article } from 'mastodon/components/scrollable_list/components'; +import { useAccount } from 'mastodon/hooks/useAccount'; +import { domain } from 'mastodon/initial_state'; import classes from './collection_list_item.module.scss'; import { CollectionMenu } from './collection_menu'; -export const CollectionMetaData: React.FC<{ - collection: ApiCollectionJSON; - extended?: boolean; - className?: string; -}> = ({ collection, extended, className }) => { +export const AvatarGrid: React.FC<{ + accountIds: (string | undefined)[]; + sensitive?: boolean; +}> = ({ accountIds: ids, sensitive }) => { + const avatarIds = [ids[0], ids[1], ids[2], ids[3]]; return ( -
      - - {extended && ( - <> - {collection.discoverable ? ( - - ) : ( - - )} - {collection.sensitive && ( - - )} - +
      , - }} - tagName='li' - /> -
    + > + {avatarIds.map((id) => ( + + ))} + {sensitive && } + ); }; export const CollectionListItem: React.FC<{ collection: ApiCollectionJSON; withoutBorder?: boolean; + withAuthorHandle?: boolean; + withTimestamp?: boolean; positionInList: number; listSize: number; -}> = ({ collection, withoutBorder, positionInList, listSize }) => { +}> = ({ + collection, + withoutBorder, + withAuthorHandle = true, + withTimestamp, + positionInList, + listSize, +}) => { const { id, name } = collection; - const linkId = useId(); + const uniqueId = useId(); + const linkId = `${uniqueId}-link`; + const infoId = `${uniqueId}-info`; + const authorAccount = useAccount(collection.account_id); + const authorHandle = useAccountHandle(authorAccount, domain); return (
    -

    - - {name} - -

    - + item.account_id)} + sensitive={collection.sensitive} + /> +
    +

    + + {name} + +

    +
      + {collection.sensitive && ( +
    • + +
    • + )} + {withAuthorHandle && authorAccount && ( + + )} + + {withTimestamp && ( + + ), + }} + tagName='li' + /> + )} +
    +
    - +
    ); }; diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index 8db00e73d34813..1e4248026c48f7 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -6,6 +6,7 @@ import { Helmet } from 'react-helmet'; import { useHistory, useLocation, useParams } from 'react-router'; import { openModal } from '@/mastodon/actions/modal'; +import { RelativeTimestamp } from '@/mastodon/components/relative_timestamp'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; @@ -25,7 +26,6 @@ import { fetchCollection } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; import { CollectionAccountsList } from './accounts_list'; -import { CollectionMetaData } from './collection_list_item'; import { CollectionMenu } from './collection_menu'; import classes from './styles.module.scss'; @@ -40,6 +40,54 @@ const messages = defineMessages({ }, }); +const CollectionMetaData: React.FC<{ + collection: ApiCollectionJSON; + extended?: boolean; +}> = ({ collection, extended }) => { + return ( +
      + + {extended && ( + <> + {collection.discoverable ? ( + + ) : ( + + )} + {collection.sensitive && ( + + )} + + )} + , + }} + tagName='li' + /> +
    + ); +}; + export const AuthorNote: React.FC<{ id: string; previewMode?: boolean }> = ({ id, // When previewMode is enabled, your own display name @@ -137,7 +185,6 @@ const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({ ); diff --git a/app/javascript/mastodon/features/collections/detail/styles.module.scss b/app/javascript/mastodon/features/collections/detail/styles.module.scss index 786c0e7000b98e..89bad584b66c20 100644 --- a/app/javascript/mastodon/features/collections/detail/styles.module.scss +++ b/app/javascript/mastodon/features/collections/detail/styles.module.scss @@ -52,9 +52,19 @@ font-size: 13px; } -.metaData { +.metaList { + --gap: 0.75ch; + + display: flex; + flex-wrap: wrap; margin-top: 16px; + gap: var(--gap); font-size: 15px; + + & > li:not(:last-child)::after { + content: '·'; + margin-inline-start: var(--gap); + } } .columnSubheading { diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index d1f1953bdabc79..82653a22c15527 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -93,6 +93,8 @@ export const Collections: React.FC<{ {collections.map((item, index) => ( Date: Thu, 26 Mar 2026 11:03:10 -0400 Subject: [PATCH 049/335] Avoid `rubocop:disable` for private address spec (#38420) --- spec/lib/private_address_check_spec.rb | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/spec/lib/private_address_check_spec.rb b/spec/lib/private_address_check_spec.rb index ee9f9295d50024..20a94983d9e492 100644 --- a/spec/lib/private_address_check_spec.rb +++ b/spec/lib/private_address_check_spec.rb @@ -4,17 +4,11 @@ RSpec.describe PrivateAddressCheck do describe 'private_address?' do + let(:private_ips) { %w(192.168.1.7 0.0.0.0 127.0.0.1 ::ffff:0.0.0.1) } + it 'returns true for private addresses' do - # rubocop:disable RSpec/ExpectActual - expect( - [ - '192.168.1.7', - '0.0.0.0', - '127.0.0.1', - '::ffff:0.0.0.1', - ] - ).to all satisfy('return true') { |addr| described_class.private_address?(IPAddr.new(addr)) } - # rubocop:enable RSpec/ExpectActual + expect(private_ips) + .to all(satisfy { |addr| described_class.private_address?(IPAddr.new(addr)) }) end end end From dad7f0e86959f777239310dd615779dc82e0d68e Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 26 Mar 2026 16:07:39 +0100 Subject: [PATCH 050/335] Update outer spacing of new profile page (#38426) --- .../account_timeline/components/redesign.module.scss | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss index d483922e778d1b..40fdc5cfa8afb8 100644 --- a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss @@ -9,6 +9,11 @@ .barWrapper { border-bottom: none; + padding-inline: 24px; + + @container (width < 500px) { + padding-inline: 16px; + } } .avatarWrapper { @@ -125,7 +130,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; position: sticky; bottom: var(--mobile-bottom-nav-height); padding: 12px 16px; - margin: 0 -20px; + margin: 0 -16px; @container (width >= #{$button-breakpoint}) { display: none; @@ -388,7 +393,7 @@ svg.badgeIcon { padding: 0 24px; @container (width < 500px) { - padding: 0 12px; + padding: 0 16px; a { flex: 1 1 0px; From 9d5e10a70e006c1c0bc61e7f591b1078c7be6ab4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Mar 2026 16:25:53 +0100 Subject: [PATCH 051/335] Update dependency chromatic to v16 (#38345) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 54bae4d3891b53..4fb0a44a062a84 100644 --- a/package.json +++ b/package.json @@ -165,7 +165,7 @@ "@vitest/browser-playwright": "^4.1.0", "@vitest/coverage-v8": "^4.1.0", "@vitest/ui": "^4.1.0", - "chromatic": "^13.3.3", + "chromatic": "^16.0.0", "eslint": "^9.39.2", "eslint-import-resolver-typescript": "^4.2.5", "eslint-plugin-formatjs": "^6.0.0", diff --git a/yarn.lock b/yarn.lock index 8420e1deb4e845..c1ae5170641c0d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2875,7 +2875,7 @@ __metadata: axios: "npm:^1.4.0" babel-plugin-transform-react-remove-prop-types: "npm:^0.4.24" blurhash: "npm:^2.0.5" - chromatic: "npm:^13.3.3" + chromatic: "npm:^16.0.0" classnames: "npm:^2.3.2" cocoon-js-vanilla: "npm:^1.5.1" color-blend: "npm:^4.0.0" @@ -6194,9 +6194,9 @@ __metadata: languageName: node linkType: hard -"chromatic@npm:^13.3.3": - version: 13.3.5 - resolution: "chromatic@npm:13.3.5" +"chromatic@npm:^16.0.0": + version: 16.0.0 + resolution: "chromatic@npm:16.0.0" peerDependencies: "@chromatic-com/cypress": ^0.*.* || ^1.0.0 "@chromatic-com/playwright": ^0.*.* || ^1.0.0 @@ -6209,7 +6209,7 @@ __metadata: chroma: dist/bin.js chromatic: dist/bin.js chromatic-cli: dist/bin.js - checksum: 10c0/58b3d7984db000f8c7b605788569a24c3f3cd41bb6b2d3a94f18acc9ff11ce6c6881f795c8390a94ff721ccfcf8a2d7942e78a54a1f70294a7b3d35ccc382154 + checksum: 10c0/ebebbf1c7d57e1ee9863997416c5125aab0a1886dce60fcb0358d34a51e0e1a45edc4635c8f8fb56d9facbcf21cd48014320c550f723b4791da51dde8552ee2b languageName: node linkType: hard From 28284b84522c77c54ed72e1874fe58bbebb2a989 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 09:26:09 +0100 Subject: [PATCH 052/335] New Crowdin Translations (automated) (#38435) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 1 + app/javascript/mastodon/locales/da.json | 1 + app/javascript/mastodon/locales/de.json | 3 +- app/javascript/mastodon/locales/el.json | 1 + app/javascript/mastodon/locales/es-AR.json | 1 + app/javascript/mastodon/locales/es-MX.json | 1 + app/javascript/mastodon/locales/es.json | 3 +- app/javascript/mastodon/locales/gl.json | 1 + app/javascript/mastodon/locales/he.json | 1 + app/javascript/mastodon/locales/hu.json | 2 + app/javascript/mastodon/locales/is.json | 1 + app/javascript/mastodon/locales/it.json | 1 + app/javascript/mastodon/locales/nl.json | 10 +-- app/javascript/mastodon/locales/pt-BR.json | 39 +++++++++++ app/javascript/mastodon/locales/sq.json | 1 + app/javascript/mastodon/locales/sr-Latn.json | 23 +++++++ app/javascript/mastodon/locales/sv.json | 1 + app/javascript/mastodon/locales/vi.json | 21 +++--- app/javascript/mastodon/locales/zh-CN.json | 1 + app/javascript/mastodon/locales/zh-TW.json | 1 + config/locales/be.yml | 68 +++++++++++++++++++ config/locales/da.yml | 3 + config/locales/de.yml | 3 + config/locales/el.yml | 3 + config/locales/es-AR.yml | 3 + config/locales/es-MX.yml | 3 + config/locales/es.yml | 3 + config/locales/ga.yml | 71 ++++++++++++++++++++ config/locales/gl.yml | 61 +++++++++++++++++ config/locales/hu.yml | 36 ++++++++++ config/locales/is.yml | 11 ++- config/locales/it.yml | 17 +++++ config/locales/nl.yml | 43 ++++++++++++ config/locales/pt-BR.yml | 16 ++++- config/locales/simple_form.be.yml | 2 + config/locales/simple_form.ga.yml | 2 + config/locales/simple_form.gl.yml | 2 + config/locales/simple_form.nl.yml | 1 + config/locales/simple_form.pt-BR.yml | 2 + config/locales/simple_form.tr.yml | 2 + config/locales/simple_form.vi.yml | 24 +++---- config/locales/simple_form.zh-CN.yml | 2 +- config/locales/sq.yml | 3 + config/locales/tr.yml | 62 +++++++++++++++++ config/locales/vi.yml | 25 ++++--- config/locales/zh-CN.yml | 9 ++- config/locales/zh-TW.yml | 3 + 47 files changed, 549 insertions(+), 45 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 4d00d75d8c93cd..1dd5b1705bc142 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural,one {# уліковы запіс} few {# уліковыя запісы} other {# уліковых запісаў}}", "collections.accounts.empty_description": "Дадайце да {count} уліковых запісаў, на якія Вы падпісаныя", "collections.accounts.empty_title": "Гэтая калекцыя пустая", + "collections.by_account": "ад {account_handle}", "collections.collection_description": "Апісанне", "collections.collection_language": "Мова", "collections.collection_language_none": "Няма", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 855bfa64b87ba2..f9c186850c5959 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# konto} other {# konti}}", "collections.accounts.empty_description": "Tilføj op til {count} konti, du følger", "collections.accounts.empty_title": "Denne samling er tom", + "collections.by_account": "af {account_handle}", "collections.collection_description": "Beskrivelse", "collections.collection_language": "Sprog", "collections.collection_language_none": "Intet", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 8c83dfc1e3dfa3..76272095689745 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# Konto} other {# Konten}}", "collections.accounts.empty_description": "Füge bis zu {count} Konten, denen du folgst, hinzu", "collections.accounts.empty_title": "Diese Sammlung ist leer", + "collections.by_account": "von {account_handle}", "collections.collection_description": "Beschreibung", "collections.collection_language": "Sprache", "collections.collection_language_none": "Nicht festgelegt", @@ -687,7 +688,7 @@ "followers.hide_other_followers": "Dieses Profil möchte die weiteren Follower geheim halten", "followers.title": "Folgt {name}", "following.hide_other_following": "Dieses Profil möchte die gefolgten Profile geheim halten", - "following.title": "Gefolgt von {name}", + "following.title": "Von {name} gefolgt", "footer.about": "Über", "footer.about_mastodon": "Über Mastodon", "footer.about_server": "Über {domain}", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 783cc969e89c61..4926d38f91bd2e 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# λογαριασμός} other {# λογαριασμοί}}", "collections.accounts.empty_description": "Προσθέστε μέχρι και {count} λογαριασμούς που ακολουθείτε", "collections.accounts.empty_title": "Αυτή η συλλογή είναι κενή", + "collections.by_account": "από {account_handle}", "collections.collection_description": "Περιγραφή", "collections.collection_language": "Γλώσσα", "collections.collection_language_none": "Καμία", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index c072c2d1d5137b..22a768e673572c 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# hora} other {# horas}}", "collections.accounts.empty_description": "Agregá hasta {count} cuentas que seguís", "collections.accounts.empty_title": "Esta colección está vacía", + "collections.by_account": "por {account_handle}", "collections.collection_description": "Descripción", "collections.collection_language": "Idioma", "collections.collection_language_none": "Ninguno", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 91e12c1a6f8610..613487829abbf4 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural,one {# cuenta} other {# cuentas}}", "collections.accounts.empty_description": "Añade hasta {count} cuentas que sigues", "collections.accounts.empty_title": "Esta colección está vacía", + "collections.by_account": "de {account_handle}", "collections.collection_description": "Descripción", "collections.collection_language": "Idioma", "collections.collection_language_none": "Ninguno", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 1cbdf0bb773b33..12f04ee234b483 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -171,7 +171,7 @@ "account_edit.field_delete_modal.title": "¿Borrar campo personalizado?", "account_edit.field_edit_modal.add_title": "Añadir campo personalizado", "account_edit.field_edit_modal.discard_confirm": "Descartar", - "account_edit.field_edit_modal.discard_message": "Tiene cambios no guardados. ¿Seguro que quieres descartarlos?", + "account_edit.field_edit_modal.discard_message": "Tienes cambios no guardados. ¿Seguro que quieres descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", "account_edit.field_edit_modal.limit_warning": "Se ha superado el límite recomendado de caracteres. Es posible que los usuarios móviles no vean el campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos no usar emojis personalizados combinados con enlaces. Los campos personalizados que contengan ambos solo se mostrarán como texto en vez de un enlace, para evitar confusiones.", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# cuenta} other {# cuentas}}", "collections.accounts.empty_description": "Añade hasta {count} cuentas que sigas", "collections.accounts.empty_title": "Esta colección está vacía", + "collections.by_account": "de {account_handle}", "collections.collection_description": "Descripción", "collections.collection_language": "Idioma", "collections.collection_language_none": "Ninguno", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 27ad0f4ff891eb..737ee8c81cebb2 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# conta} other {# contas}}", "collections.accounts.empty_description": "Engade ata {count} contas que segues", "collections.accounts.empty_title": "A colección está baleira", + "collections.by_account": "de {account_handle}", "collections.collection_description": "Descrición", "collections.collection_language": "Idioma", "collections.collection_language_none": "Ningún", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 39f6a7f60b34dc..85c8a432b64ddf 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -141,6 +141,7 @@ "account.unmute": "הפסקת השתקת @{name}", "account.unmute_notifications_short": "הפעלת הודעות", "account.unmute_short": "ביטול השתקה", + "account_edit.bio.add_label": "הוסיפו ביוגרפיה", "account_edit.bio.edit_label": "עריכת ביוגרפיה", "account_edit.bio.placeholder": "הוסיפו הצגה קצרה כדי לעזור לאחרים לזהות אותך.", "account_edit.bio.title": "ביוגרפיה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 7735fbe1ff2834..e362f28d52c16a 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -141,6 +141,7 @@ "account.unmute": "@{name} némításának feloldása", "account.unmute_notifications_short": "Értesítések némításának feloldása", "account.unmute_short": "Némitás feloldása", + "account_edit.bio.add_label": "Bemutatkozás hozzáadása", "account_edit.bio.edit_label": "Bemutatkozás szerkesztése", "account_edit.bio.placeholder": "Adj meg egy rövid bemutatkozást, hogy mások könnyebben megtaláljanak.", "account_edit.bio.title": "Bemutatkozás", @@ -358,6 +359,7 @@ "collections.account_count": "{count, plural, one {# fiók} other {# fiók}}", "collections.accounts.empty_description": "Adj hozzá legfeljebb {count} követett fiókot", "collections.accounts.empty_title": "Ez a gyűjtemény üres", + "collections.by_account": "szerző: {account_handle}", "collections.collection_description": "Leírás", "collections.collection_language": "Nyelv", "collections.collection_language_none": "Egyik sem", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 9476dc6f923d6f..c62f7554d3cd41 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# aðgangur} other {# aðgangar}}", "collections.accounts.empty_description": "Bættu við allt að {count} aðgöngum sem þú fylgist með", "collections.accounts.empty_title": "Þetta safn er tómt", + "collections.by_account": "frá {account_handle}", "collections.collection_description": "Lýsing", "collections.collection_language": "Tungumál", "collections.collection_language_none": "Ekkert", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 1c62bdc03030fe..8899776c74a43c 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# account} other {# account}}", "collections.accounts.empty_description": "Aggiungi fino a {count} account che segui", "collections.accounts.empty_title": "Questa collezione è vuota", + "collections.by_account": "di {account_handle}", "collections.collection_description": "Descrizione", "collections.collection_language": "Lingua", "collections.collection_language_none": "Nessuna", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 6f573b080a436a..862bdd35b70041 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -73,7 +73,7 @@ "account.go_to_profile": "Ga naar profiel", "account.hide_reblogs": "Boosts van @{name} verbergen", "account.in_memoriam": "In memoriam.", - "account.joined_short": "Geregistreerd op", + "account.joined_short": "Geregistreerd", "account.languages": "Getoonde talen wijzigen", "account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}", "account.locked_info": "De privacystatus van dit account is ingesteld op vergrendeld. De eigenaar beoordeelt handmatig wie diegene kan volgen.", @@ -141,6 +141,7 @@ "account.unmute": "@{name} niet langer negeren", "account.unmute_notifications_short": "Meldingen niet langer negeren", "account.unmute_short": "Niet langer negeren", + "account_edit.bio.add_label": "Biografie toevoegen", "account_edit.bio.edit_label": "Biografie bewerken", "account_edit.bio.placeholder": "Vertel iets over jezelf, zodat anderen inzicht krijgen in wat voor persoon je bent.", "account_edit.bio.title": "Biografie", @@ -170,9 +171,9 @@ "account_edit.field_delete_modal.title": "Aangepast veld verwijderen?", "account_edit.field_edit_modal.add_title": "Aangepast veld toevoegen", "account_edit.field_edit_modal.discard_confirm": "Weggooien", - "account_edit.field_edit_modal.discard_message": "U heeft niet-opgeslagen wijzigingen. Weet u zeker dat u ze wilt weggooien?", + "account_edit.field_edit_modal.discard_message": "Je hebt niet-opgeslagen wijzigingen. Weet je zeker dat je ze wilt weggooien?", "account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken", - "account_edit.field_edit_modal.limit_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk uw veld niet volledig.", + "account_edit.field_edit_modal.limit_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk je veld niet volledig.", "account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.", "account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"", "account_edit.field_edit_modal.name_label": "Label", @@ -358,6 +359,7 @@ "collections.account_count": "{count, plural, one {# account} other {# accounts}}", "collections.accounts.empty_description": "Tot {count} accounts die je volgt toevoegen", "collections.accounts.empty_title": "Deze verzameling is leeg", + "collections.by_account": "door {account_handle}", "collections.collection_description": "Omschrijving", "collections.collection_language": "Taal", "collections.collection_language_none": "Geen", @@ -638,7 +640,7 @@ "featured_carousel.header": "{count, plural, one {Vastgezet bericht} other {Vastgezette berichten}}", "featured_carousel.slide": "Bericht {current, number} van {max, number}", "featured_tags.more_items": "+{count}", - "featured_tags.suggestions": "De laatste tijd heb over {items} gepost. Deze toevoegen als uitgelichte hashtags?", + "featured_tags.suggestions": "Je hebt de afgelopen periode over {items} bericht. Deze toevoegen als uitgelichte hashtags?", "featured_tags.suggestions.add": "Toevoegen", "featured_tags.suggestions.added": "Je kunt je uitgelichte hashtags beheren onder Profiel bewerken > Uitgelichte hashtags.", "featured_tags.suggestions.dismiss": "Nee, bedankt", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 0d067c6d8c2f8e..3eebdd526806cd 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -141,6 +141,7 @@ "account.unmute": "Dessilenciar @{name}", "account.unmute_notifications_short": "Ativar som de notificações", "account.unmute_short": "Desativar silêncio", + "account_edit.bio.add_label": "Adicionar biografia", "account_edit.bio.edit_label": "Editar Biografia", "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.", "account_edit.bio.title": "Bio", @@ -194,6 +195,15 @@ "account_edit.image_alt_modal.text_hint": "Texto alternativo ajuda leitores de tela a entender seu conteúdo.", "account_edit.image_alt_modal.text_label": "Texto alternativo", "account_edit.image_delete_modal.confirm": "Tem certeza de que deseja excluir esta imagem? Esta ação não pode ser desfeita.", + "account_edit.image_delete_modal.delete_button": "Deletar", + "account_edit.image_delete_modal.title": "Deletar imagem?", + "account_edit.image_edit.add_button": "Adicionar imagem", + "account_edit.image_edit.alt_add_button": "Adicionar texto alternativo", + "account_edit.image_edit.alt_edit_button": "Editar texto alternativo", + "account_edit.image_edit.remove_button": "Remover imagem", + "account_edit.image_edit.replace_button": "Substituir imagem", + "account_edit.item_list.delete": "Deletar {name}", + "account_edit.item_list.edit": "Editar {name}", "account_edit.name_modal.add_title": "Inserir nome de exibição", "account_edit.name_modal.edit_title": "Editar nome de exibição", "account_edit.profile_tab.button_label": "Personalizar", @@ -208,17 +218,33 @@ "account_edit.profile_tab.subtitle": "Personalizar as abas em seu perfil e o que elas exibem.", "account_edit.profile_tab.title": "Configurações da aba de perfil", "account_edit.save": "Salvar", + "account_edit.upload_modal.back": "Voltar", + "account_edit.upload_modal.done": "Concluído", + "account_edit.upload_modal.next": "Próximo", + "account_edit.upload_modal.step_crop.zoom": "Aproximar", + "account_edit.upload_modal.step_upload.button": "Procurar arquivos", + "account_edit.upload_modal.step_upload.dragging": "Solte para enviar", + "account_edit.upload_modal.step_upload.header": "Escolha uma imagem", + "account_edit.upload_modal.step_upload.hint": "WEBP, formatos GIF ou JPG, até {limit}MB.{br} imagem será redimensionada para {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Adicionar foto de perfil", + "account_edit.upload_modal.title_add.header": "Adicionar foto de capa", + "account_edit.upload_modal.title_replace.avatar": "Substituir foto de perfil", + "account_edit.upload_modal.title_replace.header": "Substituir foto de capa", "account_edit.verified_modal.details": "Dê credibilidade ao seu perfil do Mastodon, verificando links para sites pessoais. Veja como funciona:", + "account_edit.verified_modal.invisible_link.details": "Adicione o link para seu HTML do site. A parte importante é rel=\"eu\" onde previne falsificação de identidade em sites com conteúdo gerado por usuários. Você pode até mesmo usar um link tag no HTML da página ao invés de {tag}, mas o HTML deve ser acessível sem a execução do JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Como posso tornar o link invisível?", "account_edit.verified_modal.step1.header": "Copie o código HTML abaixo e cole no cabeçalho do seu site", "account_edit.verified_modal.step2.details": "Se já adicionou seu site como um campo personalizado, deverá excluí-lo e adicioná-lo novamente para acionar a verificação.", "account_edit.verified_modal.step2.header": "Adicione seu site como um campo personalizado", "account_edit.verified_modal.title": "Como adicionar um link verificado", "account_edit_tags.add_tag": "Adicionar #{tagName}", + "account_edit_tags.column_title": "Editar Tags", "account_edit_tags.help_text": "Hashtags em destaque ajudam os usuários a descobrir e interagir com seu perfil. Elas aparecem como filtros na visualização de Atividade da sua página de Perfil.", + "account_edit_tags.max_tags_reached": "Você atingiu o número máximo de hashtags em destaque.", "account_edit_tags.search_placeholder": "Insira uma hashtag…", "account_edit_tags.suggestions": "Sugestões:", "account_edit_tags.tag_status_count": "{count, plural, one {# publicação} other {# publicações}}", + "account_list.total": "{total, plural,one {#conta}other {#contas}}", "account_note.placeholder": "Nota pessoal sobre este perfil aqui", "admin.dashboard.daily_retention": "Taxa de retenção de usuários por dia, após a inscrição", "admin.dashboard.monthly_retention": "Taxa de retenção de usuários por mês, após a inscrição", @@ -333,7 +359,10 @@ "collections.account_count": "{count, plural, one {# conta} other {# conta}}", "collections.accounts.empty_description": "Adicionar até {count} contas que você segue", "collections.accounts.empty_title": "Esta coleção está vazia", + "collections.by_account": "por {account_handle}", "collections.collection_description": "Descrição", + "collections.collection_language": "Língua", + "collections.collection_language_none": "Nenhum", "collections.collection_name": "Nome", "collections.collection_topic": "Tópico", "collections.confirm_account_removal": "Tem certeza que deseja remover esta conta da sua coleção?", @@ -377,6 +406,7 @@ "collections.search_accounts_max_reached": "Você acrescentou o numero máximo de contas", "collections.sensitive": "Sensível", "collections.topic_hint": "Adicione uma hashtag que ajude os outros a entender o tópico principal desta coleção.", + "collections.topic_special_chars_hint": "Caracteres especiais serão removidos ao salvar", "collections.view_collection": "Ver coleção", "collections.view_other_collections_by_user": "Ver outras coleções deste usuário", "collections.visibility_public": "Público", @@ -610,6 +640,10 @@ "featured_carousel.header": "{count, plural, one {Publicação fixada} other {Publicações fixadas}}", "featured_carousel.slide": "Publicação {current, number} de {max, number}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Anteriormente você postou sobre {items}. Adicionar estas como hashtags em destaque?", + "featured_tags.suggestions.add": "Adicionar", + "featured_tags.suggestions.added": "Gerencie suas hashtags a qualquer momento sob Editar Perfil > Hashtags em destaque.", + "featured_tags.suggestions.dismiss": "Não, obrigado", "filter_modal.added.context_mismatch_explanation": "Esta categoria de filtro não se aplica ao contexto no qual você acessou esta publicação. Se quiser que a publicação seja filtrada nesse contexto também, você terá que editar o filtro.", "filter_modal.added.context_mismatch_title": "Incompatibilidade de contexto!", "filter_modal.added.expired_explanation": "Esta categoria de filtro expirou, você precisará alterar a data de expiração para aplicar.", @@ -652,7 +686,9 @@ "follow_suggestions.who_to_follow": "Quem seguir", "followed_tags": "Hashtags seguidas", "followers.hide_other_followers": "Este usuário escolheu não deixar visíveis seus seguidores", + "followers.title": "Seguinte {name}", "following.hide_other_following": "Este usuário escolheu não deixar visíveis aqueles a quem segue", + "following.title": "Seguido por {name}", "footer.about": "Sobre", "footer.about_mastodon": "Sobre o mastodon", "footer.about_server": "Sobre {domain}", @@ -969,12 +1005,14 @@ "notifications_permission_banner.title": "Nunca perca nada", "onboarding.follows.back": "Voltar", "onboarding.follows.empty": "Infelizmente, não é possível mostrar resultados agora. Você pode tentar usar a busca ou navegar na página de exploração para encontrar pessoas para seguir, ou tentar novamente mais tarde.", + "onboarding.follows.next": "Próximo: Configure seu perfil", "onboarding.follows.search": "Buscar", "onboarding.follows.title": "Comece seguindo pessoas", "onboarding.profile.discoverable": "Tornar meu perfil descobrível", "onboarding.profile.discoverable_hint": "Quando você aceita a capacidade de descoberta no Mastodon, suas postagens podem aparecer nos resultados de busca e nas tendências, e seu perfil pode ser sugerido a pessoas com interesses similares aos seus.", "onboarding.profile.display_name": "Nome de exibição", "onboarding.profile.display_name_hint": "Seu nome completo ou apelido…", + "onboarding.profile.finish": "Finalizar", "onboarding.profile.note": "Biografia", "onboarding.profile.note_hint": "Você pode @mencionar outras pessoas ou usar #hashtags…", "onboarding.profile.title": "Configuração do perfil", @@ -1123,6 +1161,7 @@ "sign_in_banner.mastodon_is": "O Mastodon é a melhor maneira de acompanhar o que está acontecendo.", "sign_in_banner.sign_in": "Entrar", "sign_in_banner.sso_redirect": "Entrar ou Registrar-se", + "skip_links.hotkey": "Tecla de atalho{hotkey}", "skip_links.skip_to_content": "Conteúdo principal", "skip_links.skip_to_navigation": "Navegação principal", "status.admin_account": "Abrir interface de moderação para @{name}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 4965eaac16a5ed..0d6788c86d10f6 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -354,6 +354,7 @@ "collection.share_template_own": "Shihni koleksionin tim të ri: {link}", "collections.account_count": "{count, plural, one {# llogari} other {# llogari}}", "collections.accounts.empty_title": "Ky koleksion është i zbrazët", + "collections.by_account": "nga {account_handle}", "collections.collection_description": "Përshkrim", "collections.collection_language": "Gjuhë", "collections.collection_language_none": "Asnjë", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index c9d62e2a9ff252..56371dddc89b92 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -8,10 +8,14 @@ "about.domain_blocks.silenced.title": "Ograničen", "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati niti razmenjivati, što će onemogućiti bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.", "about.domain_blocks.suspended.title": "Suspendovan", + "about.language_label": "Jezik", "about.not_available": "Ove informacije nisu dostupne na ovom serveru.", "about.powered_by": "Decentralizovana društvena mreža koju pokreće {mastodon}", "about.rules": "Pravila servera", + "account.activity": "Aktivnosti", "account.add_or_remove_from_list": "Dodaj ili ukloni sa lista", + "account.badges.admin": "Admin", + "account.badges.blocked": "Blokiran", "account.badges.bot": "Automatizovano", "account.badges.group": "Grupa", "account.block": "Blokiraj @{name}", @@ -23,18 +27,31 @@ "account.direct": "Privatno pomeni @{name}", "account.disable_notifications": "Zaustavi obaveštavanje za objave korisnika @{name}", "account.edit_profile": "Uredi profil", + "account.edit_profile_short": "Uredi", "account.enable_notifications": "Obavesti me kada @{name} objavi", "account.endorse": "Istakni na profilu", + "account.featured.accounts": "Profili", "account.featured_tags.last_status_at": "Poslednja objava {date}", "account.featured_tags.last_status_never": "Nema objava", + "account.filters.all": "Sve aktivnosti", + "account.filters.posts_only": "Objave", + "account.filters.posts_replies": "Objave i odgovori", + "account.filters.replies_toggle": "Prikaži odgovore", "account.follow": "Prati", "account.follow_back": "Uzvrati praćenje", + "account.follow_back_short": "Uzvrati praćenje", + "account.follow_request": "Zahtevaj praćenje", + "account.follow_request_cancel": "Poništi zahtev", + "account.follow_request_cancel_short": "Poništi", + "account.follow_request_short": "Zahtevaj", "account.followers": "Pratioci", "account.followers.empty": "Još uvek niko ne prati ovog korisnika.", "account.followers_counter": "{count, plural, one {{counter} pratilac} few {{counter} pratioca} other {{counter} pratilaca}}", + "account.followers_you_know_counter": "{counter} koje ti poznaješ", "account.following": "Prati", "account.following_counter": "{count, plural, one {{counter} prati} few {{counter} prati} other {{counter} prati}}", "account.follows.empty": "Ovaj korisnik još uvek nikog ne prati.", + "account.follows_you": "Prati te", "account.go_to_profile": "Idi na profil", "account.hide_reblogs": "Sakrij podržavanja @{name}", "account.in_memoriam": "U znak sećanja na.", @@ -44,6 +61,12 @@ "account.locked_info": "Status privatnosti ovog naloga je podešen na „zaključano”. Vlasnik ručno pregleda ko ga može pratiti.", "account.media": "Multimedija", "account.mention": "Pomeni korisnika @{name}", + "account.menu.add_to_list": "Dodaj u listu", + "account.menu.block": "Blokiraj nalog", + "account.menu.block_domain": "Blokiraj {domain}", + "account.menu.copy": "Kopiraj link", + "account.menu.remove_follower": "Ukloni pratioca", + "account.menu.report": "Prijavi nalog", "account.moved_to": "Korisnik {name} je naznačio da je njegov novi nalog sada:", "account.mute": "Ignoriši korisnika @{name}", "account.mute_notifications_short": "Isključi obaveštenja", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index e8af5b70789b59..1c4001ee95f97a 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -272,6 +272,7 @@ "closed_registrations_modal.preamble": "Mastodon är decentraliserat så oavsett var du skapar ditt konto kommer du att kunna följa och interagera med någon på denna server. Du kan också köra din egen server!", "closed_registrations_modal.title": "Registrera sig på Mastodon", "collections.accounts.empty_description": "Lägg till upp till {count} konton som du följer", + "collections.by_account": "av {account_handle}", "collections.collection_language": "Språk", "collections.collection_language_none": "Inga", "collections.create_a_collection_hint": "Skapa en samling för att rekommendera eller dela dina favoritkonton med andra.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index c68db5734ce6c3..0beb80c18897fb 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -79,8 +79,8 @@ "account.locked_info": "Đây là tài khoản riêng tư. Chủ tài khoản tự mình xét duyệt các yêu cầu theo dõi.", "account.media": "Phương tiện", "account.mention": "Nhắc đến @{name}", - "account.menu.add_to_list": "Thêm vào danh sách…", - "account.menu.block": "Chặn người này", + "account.menu.add_to_list": "Thêm vào danh sách", + "account.menu.block": "Chặn tài khoản", "account.menu.block_domain": "Chặn {domain}", "account.menu.copied": "Đã sao chép liên kết tài khoản vào clipboard", "account.menu.copy": "Sao chép liên kết", @@ -143,7 +143,7 @@ "account.unmute_short": "Bỏ phớt lờ", "account_edit.bio.add_label": "Thêm giới thiệu", "account_edit.bio.edit_label": "Sửa giới thiệu", - "account_edit.bio.placeholder": "Thêm một dòng giới thiệu để giúp mọi người nhận ra bạn.", + "account_edit.bio.placeholder": "Giúp mọi người nhận ra bạn là ai.", "account_edit.bio.title": "Giới thiệu", "account_edit.bio_modal.add_title": "Thêm giới thiệu", "account_edit.bio_modal.edit_title": "Sửa giới thiệu", @@ -159,7 +159,7 @@ "account_edit.custom_fields.verified_hint": "Làm thế nào để thêm liên kết xác minh?", "account_edit.display_name.add_label": "Thêm tên gọi", "account_edit.display_name.edit_label": "Sửa tên gọi", - "account_edit.display_name.placeholder": "Tên gọi là tên hiển thị trên hồ sơ của bạn, cũng như bảng tin.", + "account_edit.display_name.placeholder": "Tên gọi là tên hiển thị trên hồ sơ của bạn và bảng tin.", "account_edit.display_name.title": "Tên gọi", "account_edit.featured_hashtags.edit_label": "Thêm hashtag", "account_edit.featured_hashtags.placeholder": "Giúp mọi người nhận diện và truy cập nhanh những chủ đề mà bạn thích.", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, other {# tài khoản}}", "collections.accounts.empty_description": "Thêm tối đa {count} tài khoản mà bạn theo dõi", "collections.accounts.empty_title": "Gói khởi đầu này trống", + "collections.by_account": "bởi {account_handle}", "collections.collection_description": "Mô tả", "collections.collection_language": "Ngôn ngữ", "collections.collection_language_none": "Không", @@ -460,7 +461,7 @@ "compose_form.direct_message_warning_learn_more": "Tìm hiểu thêm", "compose_form.encryption_warning": "Các tút trên Mastodon không được mã hóa đầu cuối. Không chia sẻ bất kỳ thông tin nhạy cảm nào qua Mastodon.", "compose_form.hashtag_warning": "Tút này sẽ không xuất hiện công khai. Chỉ những tút công khai mới có thể được tìm kiếm thông qua hashtag.", - "compose_form.lock_disclaimer": "Tài khoản của bạn không {locked}. Bất cứ ai cũng có thể theo dõi và xem tút chỉ dành cho người theo dõi bạn.", + "compose_form.lock_disclaimer": "Tài khoản của bạn không {locked}. Bất kỳ ai cũng có thể theo dõi và xem tút chỉ dành cho người theo dõi bạn.", "compose_form.lock_disclaimer.lock": "khóa", "compose_form.placeholder": "Bạn đang nghĩ gì?", "compose_form.poll.duration": "Hết hạn sau", @@ -604,7 +605,7 @@ "empty_column.account_suspended": "Tài khoản vô hiệu hóa", "empty_column.account_timeline": "Chưa có tút nào!", "empty_column.account_unavailable": "Tài khoản bị đình chỉ", - "empty_column.blocks": "Bạn chưa chặn bất cứ ai.", + "empty_column.blocks": "Bạn chưa chặn ai.", "empty_column.bookmarked_statuses": "Bạn chưa lưu tút nào. Nếu có, nó sẽ hiển thị ở đây.", "empty_column.community": "Máy chủ của bạn chưa có tút nào công khai. Bạn hãy thử viết gì đó đi!", "empty_column.direct": "Bạn chưa có tin nhắn riêng nào. Khi bạn gửi hoặc nhận một tin nhắn riêng, nó sẽ xuất hiện ở đây.", @@ -641,7 +642,7 @@ "featured_tags.more_items": "+{count}", "featured_tags.suggestions": "Gần đây bạn đã đăng về {items}. Thêm cái này vào hashtag thường dùng?", "featured_tags.suggestions.add": "Thêm", - "featured_tags.suggestions.added": "Quản lý hashtag bạn thường dùng vào bất cứ lúc nào tại Sửa hồ sơ > Hashtag thường dùng.", + "featured_tags.suggestions.added": "Quản lý hashtag bạn thường dùng vào bất kỳ lúc nào tại Sửa hồ sơ > Hashtag thường dùng.", "featured_tags.suggestions.dismiss": "Không, cảm ơn", "filter_modal.added.context_mismatch_explanation": "Danh mục bộ lọc này không áp dụng cho ngữ cảnh mà bạn đã truy cập tút này. Nếu bạn muốn tút cũng được lọc trong ngữ cảnh này, bạn sẽ phải chỉnh sửa bộ lọc.", "filter_modal.added.context_mismatch_title": "Bối cảnh không phù hợp!", @@ -1035,13 +1036,13 @@ "privacy.direct.short": "Nhắn riêng", "privacy.private.long": "Chỉ người theo dõi", "privacy.private.short": "Người theo dõi", - "privacy.public.long": "Bất cứ ai", + "privacy.public.long": "Bất kỳ ai", "privacy.public.short": "Công khai", "privacy.quote.anyone": "{visibility}, cho phép trích dẫn", "privacy.quote.disabled": "{visibility}, tắt trích dẫn", "privacy.quote.limited": "{visibility}, hạn chế trích dẫn", "privacy.unlisted.additional": "Công khai, nhưng tút sẽ không hiện trong bảng tin, hashtag, khám phá hoặc tìm kiếm Mastodon, kể cả trong cài đặt tài khoản bạn chọn cho phép.", - "privacy.unlisted.long": "Ẩn khỏi kết quả tìm kiếm, xu hướng và dòng thời gian công khai của Mastodon", + "privacy.unlisted.long": "Ẩn khỏi kết quả tìm kiếm, xu hướng và bảng tin công khai", "privacy.unlisted.short": "Hạn chế", "privacy_policy.last_updated": "Cập nhật lần cuối {date}", "privacy_policy.title": "Chính sách bảo mật", @@ -1321,6 +1322,6 @@ "visibility_modal.quote_followers": "Chỉ người theo dõi", "visibility_modal.quote_label": "Ai có thể trích dẫn", "visibility_modal.quote_nobody": "Chỉ tôi", - "visibility_modal.quote_public": "Bất cứ ai", + "visibility_modal.quote_public": "Bất kỳ ai", "visibility_modal.save": "Lưu" } diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 482455e55bc9ac..f00835a608f105 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, other {# 个账号}}", "collections.accounts.empty_description": "添加你关注的账号,最多 {count} 个", "collections.accounts.empty_title": "收藏列表为空", + "collections.by_account": "由 {account_handle}", "collections.collection_description": "说明", "collections.collection_language": "语言", "collections.collection_language_none": "无", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 8552ab635f3099..fa9736d672783c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, other {# 個帳號}}", "collections.accounts.empty_description": "加入最多 {count} 個您跟隨之帳號", "collections.accounts.empty_title": "此收藏名單是空的", + "collections.by_account": "來自 {account_handle}", "collections.collection_description": "說明", "collections.collection_language": "語言", "collections.collection_language_none": "無", diff --git a/config/locales/be.yml b/config/locales/be.yml index 70f032c2fca3ac..d7035d5c2669ed 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -792,6 +792,7 @@ be: categories: administration: Адміністрацыя devops: DevOps + email: Эл. пошта invites: Запрашэнні moderation: Мадэрацыя special: Спецыяльны @@ -822,6 +823,8 @@ be: manage_blocks_description: Дазваляе блакіраваць пэўных пастаўшчыкоў паслуг электроннай пошты і IP адрасы manage_custom_emojis: Кіраванне адвольнымі эмодзі manage_custom_emojis_description: Дазваляе кіраваць адвольнымі эмодзі на серверы + manage_email_subscriptions: Наладзіць падпіскі па электроннай пошце + manage_email_subscriptions_description: Дазвольце карыстальнікам падпісвацца на карыстальнікаў з гэтым дазволам праз электронную пошту manage_federation: Кіраваць федэрацыяй manage_federation_description: Дазваляе карыстальнікам блакіраваць або дазваляць аб'яднанне з іншымі даменамі і кантраляваць магчымасць дастаўкі manage_invites: Кіраванне запрашэннямі @@ -1460,6 +1463,47 @@ be: basic_information: Асноўная інфармацыя hint_html: "Наладзьце тое, што людзі будуць бачыць у вашым профілі і побач з вашымі паведамленнямі. Іншыя людзі з большай верагоднасцю будуць сачыць і ўзаемадзейнічаць з вамі, калі ў вас ёсць запоўнены профіль і фота профілю." other: Іншае + redesign_body: Рэдагаванне профілю цяпер даступнае наўпрост са старонкі профілю. + redesign_button: Перайсці туды + redesign_title: Адбыліся змены ў рэдагаванні профілю + email_subscription_mailer: + confirmation: + action: Пацвердзіць адрас электроннай пошты + instructions_to_confirm: Пацвердзіце, што хочаце атрымліваць электронныя лісты ад %{name} (@%{acct}), калі ён (яна) робіць новыя допісы. + instructions_to_ignore: Калі Вы няўпэўненыя ў тым, чаму Вы атрымалі гэты ліст, можаце выдаліць яго. Вы не будзеце падпісаныя, калі не клікніце па спасылцы вышэй. + subject: Пацвердзіце свой адрас электроннай пошты + title: Атрымліваць абнаўленні па электроннай пошце ад %{name}? + notification: + create_account: Стварыць уліковы запіс Mastodon + footer: + privacy_html: Электронныя лісты адпраўляюцца з %{domain}, сервера Mastodon. Каб зразумець, як гэты сервер апрацоўвае Вашыя асабістыя даныя, звярніцеся да Палітыкі прыватнасці. + reason_for_email_html: Вы атрымалі гэты ліст, таму што пагадзіліся на абнаўленні праз электронную пошту ад %{name}. Не хочаце атрымліваць гэтыя лісты? Адпішыцеся + interact_with_this_post: + few: Узаемадзейнічайце з гэтымі допісамі і знайдзіце іншыя, падобныя да іх. + many: Узаемадзейнічайце з гэтымі допісамі і знайдзіце іншыя, падобныя да іх. + one: Узаемадзейнічайце з гэтым допісам і знайдзіце іншыя, падобныя да яго. + other: Узаемадзейнічайце з гэтымі допісамі і знайдзіце іншыя, падобныя да іх. + subject: + few: Новыя допісы ад %{name} + many: Новыя допісы ад %{name} + one: 'Новы допіс: "%{excerpt}"' + other: Новыя допісы ад %{name} + title: + few: Новыя допісы ад %{name} + many: Новыя допісы ад %{name} + one: 'Новы допіс: "%{excerpt}"' + other: Новыя допісы ад %{name} + email_subscriptions: + active: Актыўная + confirmations: + show: + changed_your_mind: Перадумалі? + success_html: Вы цяпер пачняце атрымліваць электронныя лісты, калі %{name} будзе рабіць новыя допісы. Дадайце %{sender} у свае кантакты, каб гэтыя допісы не траплялі ў папку са спамам. + title: Вы падпісаліся праз эл. пошту + unsubscribe: Адпісацца + inactive: Неактыўная + status: Стан + subscribers: Падпісчыкі па эл.пошце emoji_styles: auto: Аўтаматычны native: Мясцовы @@ -1871,6 +1915,8 @@ be: posting_defaults: Публікаваць па змаўчанні public_timelines: Публічныя стужкі privacy: + email_subscriptions: Дасылаць допісы праз электронную пошту + email_subscriptions_hint_html: Дадайце форму падпіскі праз электронную пошту, якую будуць бачыць карыстальнікі, што не ўвайшлі. Калі наведвальнік увядзе свой адрас электроннай пошты і дасць згоду, Mastodon будзе дасылаць яму электронныя лісты аб абнаўленнях у Вашых публічных допісах. hint_html: "Наладзьце тое, якім чынам ваш профіль і вашы паведамленні могуць быць знойдзеныя. Розныя функцыі ў Mastodon могуць дапамагчы вам ахапіць шырэйшую аўдыторыю. Удзяліце час гэтым наладам, каб пераканацца, што яны падыходзяць вам." privacy: Прыватнасць privacy_hint_html: Кантралюйце, колькі інфармацыі вы хочаце раскрыць для карысці іншых. Людзі адкрываюць для сябе цікавыя профілі і класныя праграмы, праглядаючы допісы іншых людзей і даведваючыся, з якіх праграм яны пішуць, але, магчыма, вы аддаеце перавагу трымаць гэта ў таямніцы. @@ -2142,6 +2188,28 @@ be: resume_app_authorization: Працягнуць аўтарызацыю role_requirement: "%{domain} патрабуе, каб Вы ўключылі двухфактарную аўтэнтыфікацыю для таго, каб Вы маглі карыстацца Mastodon." webauthn: Ключы бяспекі + unsubscriptions: + create: + action: Перайсці на хатнюю старонку сервера + email_subscription: + confirmation_html: Вы больш не атрымаеце электронныя лісты ад %{name}. + title: Вы адпісаліся + user: + confirmation_html: Вы больш не атрымаеце %{type} з Mastodon на %{domain}. + notification_emails: + favourite: апавяшчэнні на пошту пра ўпадабанні + follow: апавяшчэнні на пошту пра падпіскі + follow_request: апавяшчэнні на пошту пра запыты на падпіску + mention: апавяшчэнні на пошту пра згадванні + reblog: апавяшчэнні на пошту пра пашырэнні + show: + action: Адпісацца + email_subscription: + confirmation_html: Вы перастанеце атрымліваць электронныя лісты, калі гэты ўліковы запіс будзе рабіць новыя допісы. + title: Адпісацца ад %{name}? + user: + confirmation_html: Вы перастанеце атрымліваць %{type} з Mastodon на %{domain}. + title: Адпісацца ад %{type}? user_mailer: announcement_published: description: 'Аб''ява ад адміністратараў %{domain}:' diff --git a/config/locales/da.yml b/config/locales/da.yml index 9b2ef173b7ef30..35ca8a88e7f8c4 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1421,6 +1421,9 @@ da: basic_information: Oplysninger hint_html: "Tilpas, hvad folk ser på din offentlige profil og ved siden af dine indlæg. Andre personer er mere tilbøjelige til at følge dig tilbage og interagere med dig, når du har en udfyldt profil og et profilbillede." other: Andre + redesign_body: Profilredigering kan nu tilgås direkte fra profilsiden. + redesign_button: Gå dertil + redesign_title: Der er en ny måde at redigere sin profil på email_subscription_mailer: confirmation: action: Bekræft e-mailadresse diff --git a/config/locales/de.yml b/config/locales/de.yml index f0203268a2ca7a..aa96d026c5b3b8 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1420,6 +1420,9 @@ de: basic_information: Allgemeine Informationen hint_html: "Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können. Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen." other: Andere + redesign_body: Das Profil kann jetzt direkt über die Profilseite angepasst werden. + redesign_button: Loslegen + redesign_title: Es gibt eine brandneue Möglichkeit, das Profil zu bearbeiten email_subscription_mailer: confirmation: action: E-Mail-Adresse bestätigen diff --git a/config/locales/el.yml b/config/locales/el.yml index 9239f1d93a751a..df67698672c41e 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1421,6 +1421,9 @@ el: basic_information: Βασικές πληροφορίες hint_html: "Προσάρμοσε τί βλέπουν άτομα στο δημόσιο προφίλ σου και δίπλα στις αναρτήσεις σου. Είναι πιο πιθανό άλλα άτομα να σε ακολουθήσουν πίσω και να αλληλεπιδράσουν μαζί σου αν έχεις ολοκληρωμένο προφίλ και εικόνα προφίλ." other: Άλλο + redesign_body: Η επεξεργασία προφίλ μπορεί τώρα να προσεγγιστεί απευθείας από τη σελίδα του προφίλ. + redesign_button: Πηγαίνετε εκεί + redesign_title: Υπάρχει μια νέα εμπειρία επεξεργασίας προφίλ email_subscription_mailer: confirmation: action: Επιβεβαιώστε τη διεύθυνση email diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index dc3535a4f0f6d2..fccc9df48125fa 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1421,6 +1421,9 @@ es-AR: basic_information: Información básica hint_html: "Personalizá lo que la gente ve en tu perfil público y junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen con vos cuando tengas un perfil completo y una foto de perfil." other: Otros + redesign_body: Ahora podés acceder a la edición del perfil desde la propia página de perfil. + redesign_button: Ir allí + redesign_title: Hay una nueva experiencia de edición de perfil email_subscription_mailer: confirmation: action: Confirmar dirección de correo electrónico diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 3b1237bdf89a7e..b677d444f04d55 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1421,6 +1421,9 @@ es-MX: basic_information: Información básica hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completes tu perfil y agregues una foto." other: Otro + redesign_body: Ahora puede acceder a la edición del perfil desde la propia página del perfil. + redesign_button: Llévame allí + redesign_title: Hay una nueva experiencia de edición de perfil email_subscription_mailer: confirmation: action: Confirmar dirección de correo electrónico diff --git a/config/locales/es.yml b/config/locales/es.yml index 90f631b49a43a3..2ea9b325d45f74 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1421,6 +1421,9 @@ es: basic_information: Información básica hint_html: "Personaliza lo que la gente ve en tu perfil público junto a tus publicaciones. Es más probable que otras personas te sigan e interactúen contigo cuando completas tu perfil y foto." other: Otros + redesign_body: Ahora puedes acceder a la edición del perfil desde la propia página de perfil. + redesign_button: Llévame allí + redesign_title: Hay una nueva experiencia de edición de perfil email_subscription_mailer: confirmation: action: Confirmar dirección de correo electrónico diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 00909fdcd2feb8..ce1ab3b97ddae7 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -807,6 +807,7 @@ ga: categories: administration: Riar devops: DevOps + email: Ríomhphost invites: Cuirí moderation: Measarthacht special: Speisialta @@ -838,6 +839,8 @@ ga: manage_blocks_description: Ligeann sé d'úsáideoirí bac a chur ar sholáthraithe ríomhphoist agus seoltaí IP manage_custom_emojis: Bainistigh Emojis Saincheaptha manage_custom_emojis_description: Ligeann sé d'úsáideoirí emojis saincheaptha a bhainistiú ar an bhfreastalaí + manage_email_subscriptions: Bainistigh Síntiúis Ríomhphoist + manage_email_subscriptions_description: Ceadaigh d’úsáideoirí liostáil le húsáideoirí leis an gcead seo trí ríomhphost manage_federation: Cónaidhm a bhainistiú manage_federation_description: Ligeann sé d’úsáideoirí cónaidhm a bhlocáil nó a cheadú le fearainn eile, agus inseachadacht a rialú manage_invites: Bainistigh Cuirí @@ -1483,6 +1486,50 @@ ga: basic_information: Eolas bunúsach hint_html: "Saincheap a bhfeiceann daoine ar do phróifíl phoiblí agus in aice le do phostálacha. Is dóichí go leanfaidh daoine eile ar ais tú agus go n-idirghníomhóidh siad leat nuair a bhíonn próifíl líonta agus pictiúr próifíle agat." other: Eile + redesign_body: Is féidir rochtain a fháil ar eagarthóireacht próifíle go díreach ón leathanach próifíle anois. + redesign_button: Téigh ann + redesign_title: Tá taithí nua eagarthóireachta próifíle ann + email_subscription_mailer: + confirmation: + action: Deimhnigh an seoladh ríomhphoist + instructions_to_confirm: Deimhnigh gur mhaith leat ríomhphoist a fháil ó %{name} (@%{acct}) nuair a fhoilsíonn siad poist nua. + instructions_to_ignore: Mura bhfuil tú cinnte cén fáth ar fuair tú an ríomhphost seo, is féidir leat é a scriosadh. Ní bheidh tú síntiúsáilte mura gcliceálann tú ar an nasc thuas. + subject: Deimhnigh do sheoladh ríomhphoist + title: Nuashonruithe ríomhphoist a fháil ó %{name}? + notification: + create_account: Cruthaigh cuntas Mastodon + footer: + privacy_html: Seoltar ríomhphoist ó %{domain}, freastalaí atá faoi thiomáint ag Mastodon. Chun tuiscint a fháil ar an gcaoi a bpróiseálann an freastalaí seo do shonraí pearsanta, féach ar an Polasaí Príobháideachais. + reason_for_email_html: Tá an ríomhphost seo á fháil agat mar gur roghnaigh tú nuashonruithe ríomhphoist a fháil ó %{name}. Nach mian leat na ríomhphoist seo a fháil? Díliostáil + interact_with_this_post: + few: Idirghníomhaigh leis na poist seo agus faigh amach tuilleadh. + many: Idirghníomhaigh leis na poist seo agus faigh amach tuilleadh. + one: Idirghníomhaigh leis an bpost seo agus faigh amach níos mó cosúil leis. + other: Idirghníomhaigh leis na poist seo agus faigh amach tuilleadh. + two: Idirghníomhaigh leis na poist seo agus faigh amach tuilleadh. + subject: + few: Poist nua ó %{name} + many: Poist nua ó %{name} + one: 'Post nua: "%{excerpt}"' + other: Poist nua ó %{name} + two: Poist nua ó %{name} + title: + few: Poist nua ó %{name} + many: Poist nua ó %{name} + one: 'Post nua: "%{excerpt}"' + other: Poist nua ó %{name} + two: Poist nua ó %{name} + email_subscriptions: + active: Gníomhach + confirmations: + show: + changed_your_mind: Ar athraigh tú d’intinn? + success_html: Tosóidh tú ag fáil ríomhphoist anois nuair a fhoilseoidh %{name} poist nua. Cuir %{sender} le do theagmhálaithe ionas nach gcríochnóidh na poist seo i do fhillteán Turscair. + title: Tá tú cláraithe + unsubscribe: Díliostáil + inactive: Neamhghníomhach + status: Stádas + subscribers: Síntiúsóirí emoji_styles: auto: Uath native: Dúchasach @@ -1914,6 +1961,8 @@ ga: posting_defaults: Réamhshocruithe á bpostáil public_timelines: Amlínte poiblí privacy: + email_subscriptions: Seol poist trí ríomhphost + email_subscriptions_hint_html: Cuir foirm chlárúcháin ríomhphoist le do phróifíl a thaispeánfar d’úsáideoirí atá logáilte amach. Nuair a chuireann cuairteoirí a seoladh ríomhphoist isteach agus a roghnaíonn siad isteach, seolfaidh Mastodon nuashonruithe ríomhphoist chugat le haghaidh do phoist phoiblí. hint_html: "Saincheap conas is mian leat do phróifíl agus do phostálacha a fháil. Is féidir le gnéithe éagsúla i Mastodon cabhrú leat teacht ar lucht féachana níos leithne nuair atá tú cumasaithe. Tóg nóiméad chun athbhreithniú a dhéanamh ar na socruithe seo chun a chinntiú go n-oireann siad do do chás úsáide." privacy: Príobháideacht privacy_hint_html: Rialú ar an méid is mian leat a nochtadh ar mhaithe le daoine eile. Aimsíonn daoine próifílí suimiúla agus aipeanna fionnuara trí na haipeanna seo a leanas a bhrabhsáil agus a fheiceáil cé na haipeanna a bpostálann siad, ach b’fhéidir gurbh fhearr leat é a choinneáil faoi cheilt. @@ -2189,6 +2238,28 @@ ga: resume_app_authorization: Údarú iarratais atosú role_requirement: Éilíonn %{domain} ort Fíordheimhniú Dhá Fhachtóir a shocrú sula bhféadfaidh tú Mastodon a úsáid. webauthn: Eochracha slándála + unsubscriptions: + create: + action: Téigh go dtí leathanach baile an fhreastalaí + email_subscription: + confirmation_html: Ní bhfaighidh tú ríomhphoist ó %{name} a thuilleadh. + title: Tá tú díliostáilte + user: + confirmation_html: Ní bhfaighidh tú %{type} ó Mastodon ar %{domain} a thuilleadh. + notification_emails: + favourite: ríomhphoist fógra is fearr leat + follow: lean ríomhphoist fógra + follow_request: ríomhphoist iarratais leantach + mention: ríomhphoist fógraí tráchta + reblog: ríomhphoist fógraí a threisiú + show: + action: Díliostáil + email_subscription: + confirmation_html: Ní bheidh ríomhphoist á bhfáil agat a thuilleadh nuair a fhoilseoidh an cuntas seo poist nua. + title: Díliostáil ó %{name}? + user: + confirmation_html: Scoirfidh tú de %{type} a fháil ó Mastodon ar %{domain}. + title: Díliostáil ó %{type}? user_mailer: announcement_published: description: 'Tá riarthóirí %{domain} ag déanamh fógra:' diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 57e6a5fc9cc1c7..73e2b244d7317f 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -791,6 +791,8 @@ gl: manage_blocks_description: Permite que as usuarias bloqueen provedoras de correo e enderezos IP manage_custom_emojis: Xestionar Emojis personalizados manage_custom_emojis_description: Permite xestionar os emojis personalizados do servidor + manage_email_subscriptions: Xestionar subscripcións por correo + manage_email_subscriptions_description: Permitir que as usuarias se subscriban por correo a outras usuarias con este permiso manage_federation: Xestionar a federación manage_federation_description: Permite bloquear ou permitir a federación con outros dominios, e controlar as entregas manage_invites: Xestionar Convites @@ -1419,6 +1421,41 @@ gl: basic_information: Información básica hint_html: "Personaliza o que van ver no teu perfil público e ao lado das túas publicacións. As outras persoas estarán máis animadas a seguirte e interactuar contigo se engades algún dato sobre ti así como unha imaxe de perfil." other: Outros + redesign_body: Agora podes acceder á edición do perfil directamente desde a páxina do perfil. + redesign_button: Ir á edición + redesign_title: Hai novidades no xeito en que podes editar o perfil + email_subscription_mailer: + confirmation: + action: Confirmar enderezo de correo + instructions_to_confirm: Confirma que queres recibir correos de %{name} (@%{acct}) cando publique novas publicacións. + instructions_to_ignore: Se non sabes por que recibiches este correo, podes eliminalo. Non te vas subscribir se non premes na ligazón de arriba. + subject: Confirma o teu enderezo de correo + title: Queres obter actualizacións de %{name} por correo? + notification: + create_account: Crear unha conta Mastodon + footer: + privacy_html: Os correos envíanse desde %{domain}, un servidor de Mastodon. Para comprender como este servidor procesa os teus datos persoais le a Directiva de Privacidade. + reason_for_email_html: Recibes este correo porque te subscribiches para recibir actualizacións por correo de %{name}. Non queres recibir estes correos? Retira a subscrición + interact_with_this_post: + one: Interactúa con esta publicación e descubre máis coma ela. + other: Interactúa con estas publicacións e descubre máis coma elas. + subject: + one: 'Nova publicación: «%{excerpt}»' + other: Novas publicacións desde %{name} + title: + one: 'Nova publicación: «%{excerpt}»' + other: Novas publicacións desde %{name} + email_subscriptions: + active: Activa + confirmations: + show: + changed_your_mind: Cambiaches de idea? + success_html: Vas comezar a recibir correos cando %{name} publique novas publicacións. Engade %{sender} á túa libreta de enderezos para que os correos non vaian directamente ao cartafol de Spam. + title: Subscribícheste + unsubscribe: Anular subscrición + inactive: Inactiva + status: Estado + subscribers: Subscritoras emoji_styles: auto: Auto native: Nativo @@ -1790,6 +1827,8 @@ gl: posting_defaults: Valores por defecto public_timelines: Cronoloxías públicas privacy: + email_subscriptions: Enviar publicacións por coreo + email_subscriptions_hint_html: Engade un formulario de subscrición por correo para mostrar ás usuarias sen sesión iniciada. Ao escribir o seu enderezo de correo e así indicalo, Mastodon vaille enviar actualizacións por correo das túas publicacións públicas. hint_html: "Personaliza o xeito no que queres que se atope o teu perfil e publicacións. Mastodon ten variedade de ferramentas para axudarche a acadar unha audiencia maior. Dedica un minuto a revisalas e confirma que se axustan ao teu caso persoal." privacy: Privacidade privacy_hint_html: Controla canto queres mostrar ás demais persoas. As usuarias descubren perfís interesantes e apps estupendas mirando a quen seguen outras persoas e vendo as apps desde as que publican, pero ti poderías querer non mostralas. @@ -2053,6 +2092,28 @@ gl: resume_app_authorization: Retomar autorización da aplicación role_requirement: "%{domain} require que configures un Segundo Factor de Autenticación para poder usar Mastodon" webauthn: Chaves de seguridade + unsubscriptions: + create: + action: Ir á páxina de inicio do servidor + email_subscription: + confirmation_html: Xa non vas seguir recibindo correos desde %{name}. + title: Retiraches a subscrición + user: + confirmation_html: Non vas recibir %{type} de Mastodon en %{domain}. + notification_emails: + favourite: correos de notificación de favorecementos + follow: correos de notificación de seguimentos + follow_request: correos de solicitudes de seguimento + mention: correos de notificación de mencións + reblog: correos de notificación de promocións + show: + action: Anular subscrición + email_subscription: + confirmation_html: Vas deixar de recibir correos cando esta conta publique novas publicacións. + title: Dar de baixa a subscrición a %{name}? + user: + confirmation_html: Vas deixar de recibir %{type} de Mastodon en %{domain}. + title: Dar de baixa a subscrición a %{type}? user_mailer: announcement_published: description: A administración de %{domain} publicou un anuncio diff --git a/config/locales/hu.yml b/config/locales/hu.yml index d633054b174663..47c9884bd63844 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -762,6 +762,7 @@ hu: categories: administration: Adminisztráció devops: DevOps + email: E-mail-cím invites: Meghívások moderation: Moderáció special: Speciális @@ -790,6 +791,8 @@ hu: manage_blocks_description: Lehetővé teszi, hogy a felhasználók e-mail-szolgáltatókat és IP-címeket tiltsanak le manage_custom_emojis: Egyedi emodzsik kezelése manage_custom_emojis_description: Lehetővé teszi a felhasználó számára, hogy a kiszolgáló egyéni emodzsiait kezelje + manage_email_subscriptions: E-mail-feliratkozások kezelése + manage_email_subscriptions_description: Engedélyezés, hogy a felhasználók e-maillel feliratkozzanak az ilyen jogosultságú felhasználókra manage_federation: Föderáció kezelése manage_federation_description: Lehetővé teszi a felhasználó számára, hogy más domainnekkel való föderációt engedélyezzen vagy letiltson, illetve szabályozza a kézbesítést manage_invites: Meghívások kezelése @@ -1418,6 +1421,30 @@ hu: basic_information: Általános információk hint_html: "Tedd egyedivé, mi látnak mások a profilodon és a bejegyzéseid mellett. Mások nagyobb eséllyel követnek vissza és lépnek veled kapcsolatba, ha van kitöltött profilod és profilképed." other: Egyéb + redesign_body: A profil szerkesztése most már közvetlenül elérhető a profiloldalon. + redesign_button: Ugrás oda + redesign_title: Az új profilszerkesztési élmény + email_subscription_mailer: + confirmation: + action: E-mail-cím megerősítése + subject: E-mail-cím megerősítése + notification: + subject: + one: 'Új bejegyzés: „%{excerpt}”' + other: 'Új bejegyzések tőle: %{name}' + title: + one: 'Új bejegyzés: „%{excerpt}”' + other: 'Új bejegyzések tőle: %{name}' + email_subscriptions: + active: Aktív + confirmations: + show: + changed_your_mind: Meggondoltad magad? + title: Feliratkoztál + unsubscribe: Leiratkozás + inactive: Inaktív + status: Állapot + subscribers: Feliratkozók emoji_styles: auto: Automatikus native: Natív @@ -1789,6 +1816,7 @@ hu: posting_defaults: Bejegyzések alapértelmezései public_timelines: Nyilvános idővonalak privacy: + email_subscriptions: Bejegyzések küldése e-mailben hint_html: "Testreszabható a profil és a bejegyzések megjelenése. A Mastodon számos funkciója segíthet szélesebb közönség elérésében, ha engedélyezve van. Szánj egy percet a beállítások áttekintésére, hogy megbizonyosodj arról, hogy ezek megfelelnek a te felhasználási esetednek." privacy: Adatvédelem privacy_hint_html: Szabályozd, hogy mások számára miket szeretnél nyilvánosságra hozni. Az emberek érdekes profilokat és nagyszerű alkalmazásokat fedezhetnek fel, amikor böngésznek mások követései között és látják, hogy mely alkalmazásokból tesznek közzé bejegyzéseket, de az is lehet, hogy inkább elrejtenéd ezeket az infókat. @@ -2052,6 +2080,14 @@ hu: resume_app_authorization: Alkalmazás jogosultság-ellenőrzésének folytatása role_requirement: A(z) %{domain} megköveteli a kétlépcsős hitelesítés beállítása a Mastodon használata előtt. webauthn: Biztonsági kulcsok + unsubscriptions: + create: + action: Ugrás a kiszolgáló kezdőlapjára + email_subscription: + confirmation_html: 'Már nem fogsz leveleket kapni róla: %{name}.' + title: Leiratkoztál + show: + action: Leiratkozás user_mailer: announcement_published: description: 'A(z) %{domain} adminisztrátorai a következő bejelentést teszik:' diff --git a/config/locales/is.yml b/config/locales/is.yml index ccaac522ca242d..56156c40d7cec3 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1425,14 +1425,21 @@ is: basic_information: Grunnupplýsingar hint_html: "Sérsníddu hvað fólk sér á opinbera notandasniðinu þínu og næst færslunum þínum. Annað fólk er líklegra til að fylgjast með þér og eiga í samskiptum við þig ef þú fyllir út notandasniðið og setur auðkennismynd." other: Annað + redesign_body: Núna er hægt að breyta notandasíðunni sinni beint á þeirri síðu. + redesign_button: Fara þangað + redesign_title: Núna er ný aðferð við að breyta notandasíðunni sinni email_subscription_mailer: confirmation: action: Staðfestu tölvupóstfangið instructions_to_confirm: Staðfestu að þú viljir fá tölvupósta frá %{name} (@%{acct}) þegar viðkomandi birtir nýjar færslur. + instructions_to_ignore: Ef þú ert ekki viss af hverju þú fékkst þennan tölvupóst, þá geturðu eytt honum. Þú verður ekki áskrifandi nema ef þú smellir á tengilinn hér fyrir ofan. subject: Staðfestu tölvupóstfangið þitt title: Fá tilkynningar í tölvupósti frá %{name}? notification: create_account: Búa til nýjan Mastodon-aðgang + footer: + privacy_html: Tölvupóstar eru sendir frá %{domain}, netþjóni sem keyrir Mastodon. Til að sjá hvernig þessi netþjónn vinnur með persónuleg gögn þín, Þá ættirðu að skoða Meðferð persónuupplýsinga. + reason_for_email_html: Þú færð þennan tölvupóst vegna þess að þú skráðir þig til að fá pósta með færslum frá %{name}. Viltu ekki fá þessar póstsendingar? Hættu í áskrift interact_with_this_post: one: Eigðu í samskiptum við þessa færslu og finndu fleiri í sama dúr. other: Eigðu í samskiptum við þessar færslur og finndu fleiri í sama dúr. @@ -1447,6 +1454,7 @@ is: confirmations: show: changed_your_mind: Skiptirðu um skoðun? + success_html: Þú munt núna fara að fá tölvupósta þegar %{name} birtir nýjar færslur. Bættu %{sender} í tengiliðina þína svo þessir póstar lendi ekki í ruslpóstmöppunni þinni. title: Þú hefur skráð þig unsubscribe: Hætta í áskrift inactive: Óvirkur @@ -1465,7 +1473,7 @@ is: '422': content: Öryggisprófun mistókst. Ertu að loka á vefkökur/fótspor? title: Öryggisprófun mistókst - '429': Í hægagangi + '429': Of margar beiðnir '500': content: Því miður, en eitthvað fór úrskeiðis á okkar enda. title: Þessi síða er ekki rétt @@ -1824,6 +1832,7 @@ is: public_timelines: Opinberar tímalínur privacy: email_subscriptions: Senda færslur með tölvupósti + email_subscriptions_hint_html: Bættu áskriftarformi fyrir tölvupóst á notandasíðuna þína sem birtist fyrir notendur sem ekki eru skráðir inn. Þegar gestir setja inn tölvupóstfangið sitt og skrá sig í áskrift, mun Mastodon senda út tilkynningar um opinberar færslur þínar. hint_html: "Sérsníddu hvernig þú vilt að finna megi notandasnið þitt og færslur. Ýmsir eiginleikar í Mastodon geta hjálpað þér að ná til breiðari áheyrendahóps, séu þeir virkjaðir. Taktu þér tíma til að yfirfara þessar stillingar svo að þær henti þér." privacy: Gagnaleynd privacy_hint_html: Stýrðu því hve miklar upplýsingar þú birtir sem gætu gagnast öðrum. Fólk uppgötvar áhugaverða notendur og sniðug forrit með því að skoða hvað annað fólk fylgist með og hvaða forrit það notar til að birta færslur, en hinsvegar er þér frjálst að halda þessu leyndu. diff --git a/config/locales/it.yml b/config/locales/it.yml index 108364009509e8..cd1ecb466ae4b9 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -791,6 +791,8 @@ it: manage_blocks_description: Consente agli utenti di bloccare i provider di posta elettronica e gli indirizzi IP manage_custom_emojis: Gestisci emoji personalizzate manage_custom_emojis_description: Consente agli utenti di gestire emoji personalizzate sul server + manage_email_subscriptions: Gestisci le iscrizioni via email + manage_email_subscriptions_description: Consenti agli utenti di iscriversi tramite email agli utenti, con questa autorizzazione manage_federation: Gestisci Federazione manage_federation_description: Consente agli utenti di bloccare o consentire la federazione con altri domini e controllare la consegnabilità manage_invites: Gestisci Inviti @@ -1419,6 +1421,21 @@ it: basic_information: Informazioni di base hint_html: "Personalizza ciò che le persone vedono sul tuo profilo pubblico e accanto ai tuoi post. È più probabile che altre persone ti seguano e interagiscano con te quando hai un profilo compilato e un'immagine del profilo." other: Altro + redesign_body: Ora è possibile modificare il profilo direttamente dalla pagina del profilo stesso. + redesign_button: Vai lì + redesign_title: È disponibile una nuova esperienza di modifica del profilo + email_subscription_mailer: + confirmation: + action: Conferma l'indirizzo email + instructions_to_confirm: Conferma di voler ricevere email da %{name} (@%{acct}) quando pubblicano nuovi post. + instructions_to_ignore: Se non sai perché hai ricevuto questa email, puoi cancellarla. L'iscrizione non sarà confermata se non clicchi sul link qui sopra. + subject: Conferma il tuo indirizzo email + title: Ricevere aggiornamenti via email da %{name}? + notification: + create_account: Crea un account Mastodon + footer: + privacy_html: Le email vengono inviate da %{domain}, un server gestito da Mastodon. Per comprendere come questo server elabora i tuoi dati personali, consulta l'Informativa sulla privacy. + reason_for_email_html: Ricevi questa email perché hai scelto di ottenere aggiornamenti via email da %{name}. Non vuoi più ricevere queste email? Disiscriviti emoji_styles: auto: Automatico native: Nativo diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 1fcbd0206c723e..a785e86059eb5a 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -762,6 +762,7 @@ nl: categories: administration: Beheer devops: DevOps + email: E-mail invites: Uitnodigingen moderation: Moderatie special: Speciaal @@ -790,6 +791,8 @@ nl: manage_blocks_description: Staat gebruikers toe om e-mailproviders en IP-adressen te blokkeren manage_custom_emojis: Lokale emoji's beheren manage_custom_emojis_description: Staat gebruikers toe om lokale emoji's op de server te beheren + manage_email_subscriptions: E-mailabonnementen beheren + manage_email_subscriptions_description: Sta gebruikers toe om zich per e-mail te abonneren op gebruikers met deze rechten manage_federation: Federatie beheren manage_federation_description: Staat gebruikers toe om federatie met andere domeinen te blokkeren of toe te staan en om de bezorging te bepalen manage_invites: Uitnodigingen beheren @@ -1418,6 +1421,34 @@ nl: basic_information: Algemene informatie hint_html: "Wat mensen op jouw openbare profiel en naast je berichten zien aanpassen. Andere mensen gaan je waarschijnlijk eerder volgen en hebben vaker interactie met je, wanneer je profiel is ingevuld en je een profielfoto hebt." other: Overige + redesign_body: Het bewerken van je profiel is nu toegankelijk vanaf de profielpagina. + redesign_button: Ga erheen + redesign_title: Er is een nieuwe profielbewerkingservaring + email_subscription_mailer: + confirmation: + action: E-mailadres bevestigen + instructions_to_confirm: Bevestig dat je e-mails van %{name} (@%{acct}) wilt ontvangen wanneer deze gebruiker nieuwe berichten publiceert. + instructions_to_ignore: Wanneer je niet zeker weet waarom je deze e-mail hebt ontvangen, kun je deze verwijderen. Je bent niet geabonneerd wanneer je niet op de bovenstaande link klikt. + subject: Je e-mailadres bevestigen + title: E-mailupdates van %{name} ontvangen? + notification: + create_account: Een Mastodon-account registreren + subject: + one: 'Nieuw bericht: "%{excerpt}"' + other: Nieuwe berichten van %{name} + title: + one: 'Nieuw bericht: "%{excerpt}"' + other: Nieuwe berichten van %{name} + email_subscriptions: + active: Actief + confirmations: + show: + changed_your_mind: Van mening veranderd? + title: Je bent ingeschreven + unsubscribe: Uitschrijven + inactive: Inactief + status: Status + subscribers: Abonnees emoji_styles: auto: Auto native: Systeemeigen @@ -1789,6 +1820,7 @@ nl: posting_defaults: Jouw nieuwe berichten public_timelines: Openbare tijdlijnen privacy: + email_subscriptions: Berichten per e-mail verzenden hint_html: "Hoe wil je dat jouw profiel en berichten kunnen worden gevonden? Een verscheidenheid aan functies in Mastodon kunnen je helpen om een groter publiek te bereiken als ze zijn ingeschakeld. Neem rustig de tijd om deze instellingen te bekijken, om er zo zeker van te zijn dat ze aan jouw wensen voldoen." privacy: Privacy privacy_hint_html: Hoeveel informatie wil je aan andere gebruikers kwijt? Mensen ontdekken interessante accounts en coole apps door te bekijken welke accounts jij volgt en door te bekijken welke app jij gebruikt voor het plaatsen van berichten. Het kan achter zo zijn dat je dit liever verborgen houdt. @@ -2052,6 +2084,17 @@ nl: resume_app_authorization: Applicatie-machtiging hervatten role_requirement: "%{domain} vereist dat je Tweestapsverificatie instelt voordat je Mastodon kunt gebruiken." webauthn: Beveiligingssleutels + unsubscriptions: + create: + title: Je bent uitgeschreven + notification_emails: + favourite: e-mailmeldingen favorieten + follow: e-mailmeldingen volgers + follow_request: e-mailmeldingen volgverzoeken + mention: e-mailmeldingen vermeldingen + reblog: e-mailmeldingen boosts + show: + action: Uitschrijven user_mailer: announcement_published: description: 'De beheerders van %{domain} doen een mededeling:' diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index b0f42b31e316e8..d2a628b52a7a31 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -791,7 +791,7 @@ pt-BR: manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP manage_custom_emojis: Gerenciar Emojis Personalizados manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor - manage_email_subscriptions: Gerenciar assinaturas do correio eletrônico + manage_email_subscriptions: Gerenciar assinaturas do e-mail manage_email_subscriptions_description: Permitir que usuários se inscrevam com essa permissão por e-mail manage_federation: Gerenciar Federação manage_federation_description: Permite aos usuários bloquear ou permitir federação com outros domínios e controlar a entregabilidade @@ -1421,6 +1421,9 @@ pt-BR: basic_information: Informações básicas hint_html: "Personalize o que as pessoas veem no seu perfil público e ao lado de suas publicações. É mais provável que outras pessoas o sigam de volta e interajam com você quando você tiver um perfil preenchido e uma foto de perfil." other: Outro + redesign_body: A edição de perfil pode ser acessada diretamente a partir da página de perfil. + redesign_button: Ir para lá + redesign_title: Há uma nova experiência de edição de perfil email_subscription_mailer: confirmation: action: Confirmar endereço de e-mail @@ -2101,6 +2104,17 @@ pt-BR: notification_emails: favourite: e-mails de notificações de favoritos follow: receber e-mails de notificação + follow_request: seguir e-mails solicitados + mention: e-mails de notificação + reblog: otimizar e-mails de notificação + show: + action: Cancelar inscrição + email_subscription: + confirmation_html: Você deixará de receber e-mails quando esta conta publicar novas postagens. + title: Cancelar inscrição de %{name}? + user: + confirmation_html: Você deixará de receber %{type} do Mastodon no %{domain}. + title: Cancelar inscrição de %{type}? user_mailer: announcement_published: description: 'Os administradores do %{domain} estão fazendo um anúncio:' diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index e4ee1062ba44ed..68f0ff843299e5 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -134,6 +134,7 @@ be: otp: 'Увядзіце код двухфактарнай аўтэнтыфікацыі з вашага тэлефона або адзін з кодаў аднаўлення:' webauthn: Калі гэта USB прылада, устаўце яе і, калі неабходна, націсніце на яе. settings: + email_subscriptions: Адключэнне захавае бягучых падпісчыкаў, але спыніць адпраўку электронных лістоў. indexable: Старонка вашага профілю можа з'явіцца ў выніках пошуку ў Google, Bing і іншых. show_application: Вы ў любым выпадку зможаце ўбачыць, якая праграма апублікавала ваш допіс. tag: @@ -358,6 +359,7 @@ be: hint: Дадатковая інфармацыя text: Правіла settings: + email_subscriptions: Уключыць падпіскі праз электронную пошту indexable: Індэксаваць профіль у пошукавых сістэмах show_application: Паказваць з якой праграмы было адпраўлена паведамленне tag: diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index daa4e62f31b547..0e7048eb94e8ae 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -134,6 +134,7 @@ ga: otp: 'Cuir isteach an cód dhá fhachtóir ginte ag d''aip ghutháin nó úsáid ceann de do chóid athshlánaithe:' webauthn: Más eochair USB atá ann déan cinnte é a chur isteach agus, más gá, tapáil í. settings: + email_subscriptions: Coinnítear síntiúsóirí reatha ach cuirtear stop le ríomhphoist a sheoladh má dhíchumasaítear iad. indexable: Seans go mbeidh do leathanach próifíle le feiceáil i dtorthaí cuardaigh ar Google, Bing agus eile. show_application: Beidh tú in ann a fheiceáil i gcónaí cén aip a d’fhoilsigh do phostáil beag beann ar. tag: @@ -359,6 +360,7 @@ ga: hint: Eolas breise text: Riail settings: + email_subscriptions: Cumasaigh clárúcháin ríomhphoist indexable: Cuir leathanach próifíle san innill chuardaigh show_application: Taispeáin cén aip ónar sheol tú postáil tag: diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index c308eb32d96ef8..a77e69d1858f47 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -134,6 +134,7 @@ gl: otp: 'Escribe o código do segundo factor creado pola aplicación do teu móbil ou usa un dos códigos de recuperación:' webauthn: Se é unha chave USB asegúrate de que está conectada e preme o botón. settings: + email_subscriptions: A desactivación mantén as subscricións actuais pero deixa de enviar correos. indexable: A túa páxina de perfil podería aparecer nos resultados de busca de Google, Bing e outros. show_application: Independentemente, ti sempre poderás ver a app coa que publicaches a túa publicación. tag: @@ -356,6 +357,7 @@ gl: hint: Información adicional text: Regra settings: + email_subscriptions: Activar crear contas por correo indexable: Incluír páxina de perfil nos motores de busca show_application: Mostrar a app coa que enviaches unha publicación tag: diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index bdf627973a724d..f730c9ad70c6a0 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -356,6 +356,7 @@ nl: hint: Aanvullende informatie text: Regel settings: + email_subscriptions: Berichten per e-mail inschakelen indexable: Zoekmachines jouw profielpagina laten vinden show_application: App tonen die je voor het plaatsen van berichten gebruikt tag: diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 847e5f44a1e63e..0d1baa1ab665dc 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -134,6 +134,7 @@ pt-BR: otp: 'Digite o código de dois fatores gerado pelo aplicativo no seu celular ou use um dos códigos de recuperação:' webauthn: Se for uma chave USB tenha certeza de inseri-la e, se necessário, tocar nela. settings: + email_subscriptions: A desativação mantém assinantes existentes, mas para de enviar e-mails. indexable: Sua página de perfil pode aparecer nos resultados de busca no Google, Bing e outros. show_application: Você sempre conseguirá ver qual aplicativo realizou sua publicação independentemente disso. tag: @@ -356,6 +357,7 @@ pt-BR: hint: Informações adicionais text: Regra settings: + email_subscriptions: Habilitar cadastro por e-mails indexable: Incluir página de perfil nos motores de busca show_application: Exibir a partir de qual aplicativo você publicou tag: diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index f40034407b19fa..b02061839a8958 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -134,6 +134,7 @@ tr: otp: 'Telefonunuzdaki two-factor kodunuzu giriniz veya kurtarma kodlarınızdan birini giriniz:' webauthn: Bir USB anahtarıysa, taktığınızdan ve gerekirse üzerine tıkladığınızdan emin olun. settings: + email_subscriptions: Devre dışı bırakma işlemi mevcut aboneleri korur ancak e-posta gönderimini durdurur. indexable: Profil sayfanız Google, Bing ve diğerlerindeki arama sonuçlarında görüntülenebilir. show_application: Ne olursa olsun gönderinizi yayınlayan uygulamayı her zaman görebileceksiniz. tag: @@ -356,6 +357,7 @@ tr: hint: Ek bilgi text: Kural settings: + email_subscriptions: E-posta aboneliklerini etkinleştir indexable: Arama motorları profil sayfasını içersin show_application: Gönderiyi hangi uygulamadan gönderdiğiniz görüntülensin tag: diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 04c1a977ead9ac..9cdbe19be9e49d 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -6,7 +6,7 @@ vi: attribution_domains: Bảo vệ khỏi những sự gán ghép sai. discoverable: Mọi người có thể được đề xuất hồ sơ và tút công khai của bạn. display_name: Tên đầy đủ hoặc biệt danh đều được. - fields: Blog của bạn, nghề nghiệp, tuổi hoặc bất cứ gì. + fields: Blog của bạn, nghề nghiệp, tuổi hoặc bất kỳ. indexable: Mọi người có thể tìm kiếm và tương tác với những tút công khai của bạn trên Mastodon. note: 'Bạn có thể @aiđó hoặc #hashtags.' show_collections: Mọi người sẽ biết bạn theo dõi ai và ai theo dõi bạn. @@ -54,18 +54,18 @@ vi: password: Tối thiểu 8 ký tự phrase: Sẽ được hiện thị trong văn bản hoặc cảnh báo nội dung của một tút scopes: Ứng dụng sẽ được phép truy cập những API nào. Nếu bạn chọn quyền cấp cao nhất, không cần chọn quyền nhỏ. - setting_advanced_layout: Hiển thị Mastodon dưới dạng bố cục nhiều cột, cho phép bạn xem dòng thời gian, thông báo và cột thứ ba mà bạn chọn. Không nên dùng cho màn hình nhỏ. + setting_advanced_layout: Cho phép bạn xem bảng tin, thông báo và một cột thứ ba mà bạn chọn. Không nên dùng nếu màn hình nhỏ. setting_aggregate_reblogs: Nếu một tút đã được đăng lại thì sẽ không hiện những lượt đăng lại khác trên bảng tin setting_always_send_emails: Bình thường thì sẽ không gửi khi bạn đang dùng Mastodon - setting_boost_modal: Nếu được bật, trước khi đăng lại sẽ mở hộp thoại xác nhận - trong đó bạn có thể thay đổi mức độ hiển thị tút của mình. + setting_boost_modal: Nếu bật, trước khi đăng lại sẽ mở hộp thoại xác nhận - trong đó bạn có thể thay đổi mức độ hiển thị tút của mình. setting_default_quote_policy_private: Không thể trích dẫn tút chỉ dành cho người theo dõi trên Mastodon. setting_default_quote_policy_unlisted: Khi ai đó trích dẫn bạn, tút của họ cũng sẽ bị ẩn khỏi bảng tin công khai. setting_default_sensitive: Bắt buộc nhấn vào mới có thể xem setting_display_media_default: Click để xem setting_display_media_hide_all: Luôn ẩn setting_display_media_show_all: Luôn hiện - setting_emoji_style: Cách hiển thị Emoji. "Tự động" sẽ dùng biểu tượng cảm xúc nguyên bản, nhưng đối với các trình duyệt cũ sẽ chuyển thành Twemoji. - setting_quick_boosting_html: Nếu bật, nhấn biểu tượng %{boost_icon} Đăng lại sẽ lập tức đăng lại thay vì mở menu xổ xuống đăng lại/trích dẫn. Chuyển vị trí hành động trích dẫn sang menu %{options_icon} (Tùy chọn). + setting_emoji_style: '"Tự động" sẽ dùng biểu tượng cảm xúc nguyên bản, nhưng đối với các trình duyệt cũ sẽ chuyển thành Twemoji.' + setting_quick_boosting_html: Nếu bật, nhấn biểu tượng %{boost_icon} Đăng lại sẽ đăng lại lập tức, thay vì mở menu xổ xuống đăng lại/trích dẫn. Chuyển vị trí hành động trích dẫn sang menu %{options_icon} (Tùy chọn). setting_system_scrollbars_ui: Chỉ áp dụng trình duyệt Chrome và Safari bản desktop setting_use_blurhash: Phủ lớp màu làm nhòe đi hình ảnh nhạy cảm setting_use_pending_items: Dồn lại toàn bộ tút mới và chỉ hiển thị khi nhấn vào @@ -236,10 +236,10 @@ vi: otp_attempt: Mã xác thực 2 bước password: Mật khẩu phrase: Từ khóa hoặc cụm từ - setting_advanced_layout: Bố cục nhiều cột + setting_advanced_layout: Dùng bố cục nhiều cột setting_aggregate_reblogs: Không hiện lượt đăng lại trùng lặp setting_always_send_emails: Luôn gửi email thông báo - setting_auto_play_gif: Tự động phát ảnh GIF + setting_auto_play_gif: Phát ảnh GIF tự động setting_boost_modal: Kiểm soát khả năng đăng lại setting_color_scheme: Bảng màu setting_contrast: Độ tương phản @@ -248,17 +248,17 @@ vi: setting_default_quote_policy: Ai có thể trích dẫn setting_default_sensitive: Đánh dấu media nhạy cảm setting_delete_modal: Cảnh báo tôi trước khi xóa một tút - setting_disable_hover_cards: Không popup hồ sơ - setting_disable_swiping: Không thao tác vuốt + setting_disable_hover_cards: Không hiện popup xem trước hồ sơ + setting_disable_swiping: Không dùng thao tác vuốt setting_display_media: Media nhạy cảm setting_display_media_default: Mặc định setting_display_media_hide_all: Ẩn toàn bộ setting_display_media_show_all: Hiện toàn bộ setting_emoji_style: Phong cách Emoji - setting_expand_spoilers: Luôn mở rộng tút chứa nội dung ẩn + setting_expand_spoilers: Luôn mở rộng nội dung ẩn setting_hide_network: Ẩn quan hệ của bạn setting_missing_alt_text_modal: Cảnh báo tôi trước khi đăng media mà không có alt text - setting_quick_boosting: Bật đăng lại nhanh + setting_quick_boosting: Đăng lại nhanh setting_reduce_motion: Giảm chuyển động ảnh GIF setting_system_font_ui: Phông chữ mặc định hệ thống setting_system_scrollbars_ui: Thanh cuộn mặc định hệ thống @@ -266,7 +266,7 @@ vi: setting_trends: Hiện xu hướng trong ngày setting_unfollow_modal: Hỏi trước khi bỏ theo dõi ai đó setting_use_blurhash: Làm mờ media bị ẩn - setting_use_pending_items: Không tự động làm mới bảng tin + setting_use_pending_items: Chế độ chậm severity: Mức độ nghiêm trọng sign_in_token_attempt: Mã an toàn title: Tựa đề diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 03f8cf63f9f155..2cc603e642828e 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -356,7 +356,7 @@ zh-CN: hint: 补充信息 text: 规则 settings: - email_subscriptions: 启用邮件订阅 + email_subscriptions: 启用邮件订阅注册 indexable: 允许搜索引擎索引个人资料 show_application: 显示你发嘟使用的应用 tag: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 910daa74dba915..405b3c3b27c048 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1410,6 +1410,9 @@ sq: basic_information: Hollësi elementare hint_html: "Përshtatni ç’shohin njerëzit në profilin tuaj publik dhe në krah të postimeve tuaja. Personat e tjerë ka më shumë gjasa t’ju ndjekin dhe ndërveprojnë me ju, kur keni të plotësuar profilin dhe një foto profili." other: Tjetër + redesign_body: Përpunimi i profilit tanimë mund të kryhet drejt e nga faqja e profilit. + redesign_button: Kalo atje + redesign_title: Ka një rrugë të re përpunimi profili email_subscription_mailer: confirmation: action: Ripohoni adresë email diff --git a/config/locales/tr.yml b/config/locales/tr.yml index c930f08e45548d..4cedbfd741bc64 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -762,6 +762,7 @@ tr: categories: administration: Yönetim devops: DevOps + email: E-posta invites: Davetler moderation: Denetim special: Özel @@ -790,6 +791,8 @@ tr: manage_blocks_description: Kullanıcıların e-posta sağlayıcıları ve IP adreslerini engellemesine izin verir manage_custom_emojis: Özel İfadeleri Yönetme manage_custom_emojis_description: Kullanıcıların sunucudaki özel ifadeleri yönetmesine izin verir + manage_email_subscriptions: E-posta Aboneliklerini Yönet + manage_email_subscriptions_description: Kullanıcılara bu izne sahip diğer kullanıcıları e-posta yoluyla takip etme olanağı verin manage_federation: Birleştirme Yönetme manage_federation_description: Kullanıcıların diğer alan adlarıyla birleştirmeye izin vermesi veya engellemesine ve teslim edilebilirliği denetlemesine izin verir manage_invites: Davetleri Yönetme @@ -1418,6 +1421,41 @@ tr: basic_information: Temel bilgiler hint_html: "İnsanlara herkese açık profilinizde ve gönderilerinizin yanında ne göstermek istediğinizi düzenleyin. Dolu bir profile ve bir profil resmine sahip olduğunuzda diğer insanlar daha yüksek ihtimalle sizi takip etmek ve sizinle etkileşime geçmek isteyeceklerdir." other: Diğer + redesign_body: Profil düzenlemeye şimdi doğrudan profil sayfasından da erişilebilir. + redesign_button: Git + redesign_title: Yeni bir profile düzenleme deneyimi var + email_subscription_mailer: + confirmation: + action: E-posta adresini onayla + instructions_to_confirm: "%{name} (@%{acct}) yeni bir gönderi yayınladığında e-posta almak istediğinizi onaylayın." + instructions_to_ignore: Bu e-postayı neden aldığınızdan emin değilseniz silebilirsiniz. Yukarıdaki bağlantıya tıklamazsanız aboneliğiniz başlamayacaktır. + subject: E-posta adresinizi onaylayın + title: "%{name} kişisinden e-posta güncellemeleri alınsın mı?" + notification: + create_account: Bir Mastodon hesabı oluşturun + footer: + privacy_html: E-postalar Mastodon destekli %{domain} sunucusundan gönderilmektedir. Bu sunucunun kişisel verilerinizi nasıl işlediğini öğrenmek için Gizlilik Politikası sayfasına bakabilirsiniz. + reason_for_email_html: Bu e-postayı, %{name}'den e-posta güncellemelerini almayı seçtiğiniz için alıyorsunuz. Bu e-postaları almak istemiyor musunuz? Aboneliği iptal edebilirsiniz + interact_with_this_post: + one: Bu gönderiyle etkileşim kurun ve benzer içerikleri keşfedin. + other: Bu gönderilerle etkileşim kurun ve benzer içerikleri keşfedin. + subject: + one: 'Yeni gönderi: "%{excerpt}"' + other: "%{name} kişisinden yeni gönderiler" + title: + one: 'Yeni gönderi: "%{excerpt}"' + other: "%{name} kişisinden yeni gönderiler" + email_subscriptions: + active: Etkin + confirmations: + show: + changed_your_mind: Fikrinizi mi değiştirdiniz? + success_html: "%{name} yeni bir yazı yayınladığında artık e-posta almaya başlayacaksınız. Bu yazılar spam klasörüne düşmesin diye %{sender}'ı kişi listenize ekleyin." + title: Abone oldunuz + unsubscribe: Abonelikten çık + inactive: Etkin değil + status: Durum + subscribers: Aboneler emoji_styles: auto: Otomatik native: Yerel @@ -1789,6 +1827,8 @@ tr: posting_defaults: Gönderi varsayılanları public_timelines: Genel zaman çizelgeleri privacy: + email_subscriptions: Gönderileri e-posta ile gönder + email_subscriptions_hint_html: Profilinize oturumu kapatmış kullanıcılara gösterilecek bir e-posta kayıt formu ekleyin. Ziyaretçiler e-posta adreslerini girip abonelik isteğinde bulunduklarında, Mastodon kamuya açık gönderilerinizle ilgili güncellemeleri e-posta yoluyla gönderecektir. hint_html: "Profilinizin ve gönderilerinizin nasıl bulunmasını istediğinizi yapılandırın. Mastodon'daki çeşitli özellik etkinleştirildiklerinde çok daha geniş bir izleyici kitlesine ulaşmanıza yardımcı olabilir. Durumunuza uyup uymadığını anlamak için bu ayarlara bir göz atın." privacy: Gizlilik privacy_hint_html: Başkalarına ne kadar bilgi göstermek istediğinizi denetleyin. İnsanlar ilginç profilleri ve havalı uygulamaları diğer kişilerin takiplerine ve gönderileri paylaştıkları uygulamalara bakarak keşfederler, ama belki de gizli tutmak isteyebilirsiniz. @@ -2052,6 +2092,28 @@ tr: resume_app_authorization: Uygulama yetkilendirmeyi sürdür role_requirement: "%{domain} Mastodon'u kullanabilmeniz için İki Aşamalı Kimlik Doğrulama'yı ayarlamanızı gerektirir." webauthn: Güvenlik anahtarları + unsubscriptions: + create: + action: Sunucu anasayfasına git + email_subscription: + confirmation_html: "%{name} kişisinden artık e-posta almayacaksınız." + title: Abonelikten ayrıldınız + user: + confirmation_html: Artık %{domain} adresindeki Mastodon'dan %{type} almayacaksınız. + notification_emails: + favourite: öne çıkanlar bildirim e-postaları + follow: takip bildirim e-postaları + follow_request: takip isteği bildirim e-postaları + mention: bahsetme bildirim e-postaları + reblog: öne çıkanlar bildirim e-postaları + show: + action: Abonelikten çık + email_subscription: + confirmation_html: Bu hesap yeni gönderiler yayınladığında e-posta almayacaksınız. + title: "%{name} kişisinin aboneliğinden ayrıl?" + user: + confirmation_html: "%{domain} adresindeki Mastodon'dan artık %{type} almayacaksınız." + title: "%{type} aboneliğinden çıkılsın mı?" user_mailer: announcement_published: description: "%{domain} yöneticileri bir duyuru yapıyorlar:" diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 976fb782cec38c..c28535741624b1 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -592,7 +592,7 @@ vi: created_msg: Thêm lưu ý kiểm duyệt máy chủ thành công! description_html: Xem và để lại lưu ý cho các kiểm duyệt viên khác destroyed_msg: Xóa lưu ý kiểm duyệt máy chủ thành công! - placeholder: Thông tin về máy chủ này, hành động trước đây, hoặc bất cứ lưu ý giúp bạn kiểm duyệt máy chủ này trong tương lai. + placeholder: Thông tin về máy chủ này, hành động trước đây, hoặc mọi lưu ý giúp bạn kiểm duyệt máy chủ này trong tương lai. title: Lưu ý kiểm duyệt private_comment: Bình luận riêng public_comment: Bình luận công khai @@ -877,7 +877,7 @@ vi: modes: approved: Yêu cầu phê duyệt để đăng ký none: Không ai có thể đăng ký - open: Bất cứ ai cũng có thể đăng ký + open: Bất kỳ ai cũng có thể đăng ký warning_hint: Chúng tôi khuyên bạn nên sử dụng "Duyệt đăng ký thủ công" trừ khi bạn tin tưởng đội ngũ kiểm duyệt của mình có thể xử lý kịp thời các đăng ký spam và độc hại. security: authorized_fetch: Yêu cầu xác thực từ các máy chủ liên hợp @@ -1200,9 +1200,9 @@ vi: hint_html: Nếu bạn muốn chuyển từ máy chủ khác sang máy chủ này, bắt buộc bạn phải tạo tên người dùng mới thì mới có thể tiến hành chuyển được người theo dõi. Hành động này không ảnh hưởng gì và có thể đảo ngược. Việc di chuyển tài khoản được bắt đầu từ tài khoản cũ. remove: Bỏ liên kết bí danh appearance: - advanced_settings: Cài đặt nâng cao + advanced_settings: Nâng cao animations_and_accessibility: Hiệu ứng - boosting_preferences: Thiết lập đăng lại + boosting_preferences: Đăng lại boosting_preferences_info_html: "Mẹo: Bất kể cài đặt, Shift + Click trên biểu tượng %{icon} Đăng lại sẽ lập tức đăng lại." discovery: Khám phá localization: @@ -1223,7 +1223,7 @@ vi: logout: Đăng xuất regenerate_token: Tạo lại mã truy cập token_regenerated: Mã truy cập được tạo lại thành công - warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai! + warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất kỳ ai! your_token: Mã truy cập của bạn auth: apply_for_account: Xin đăng ký @@ -1400,6 +1400,9 @@ vi: basic_information: Thông tin cơ bản hint_html: Mọi người sẽ muốn theo dõi và tương tác với bạn hơn nếu bạn có ảnh đại diện và hồ sơ hoàn chỉnh. other: Khác + redesign_body: Giờ đây, hồ sơ đã có thể chỉnh sửa trực tiếp từ trang hồ sơ. + redesign_button: Tới đó + redesign_title: Đây là trải nghiệm sửa hồ sơ mới email_subscription_mailer: confirmation: action: Xác nhận địa chỉ email @@ -1459,12 +1462,12 @@ vi: in_progress: Đang tổng hợp dữ liệu của bạn... request: Tải về dữ liệu của bạn size: Dung lượng - blocks: Người chặn + blocks: Tài khoản đã chặn bookmarks: Tút đã lưu csv: CSV - domain_blocks: Máy chủ chặn + domain_blocks: Máy chủ đã chặn lists: Danh sách - mutes: Tài khoản bị phớt lờ + mutes: Tài khoản đã phớt lờ storage: Tập tin featured_tags: add_new: Thêm mới @@ -1529,7 +1532,7 @@ vi: other: Chọn tất cả%{count} mục trùng hợp với tìm kiếm của bạn. today: hôm nay validation_errors: - other: Đã có %{count} lỗi xảy ra! Xem chi tiết bên dưới + other: Đã xảy ra %{count} lỗi! Xem chi tiết bên dưới imports: errors: empty: File CSV trống @@ -1953,7 +1956,7 @@ vi: quote_policies: followers: Chỉ người theo dõi nobody: Chỉ tôi - public: Bất cứ ai + public: Bất kỳ ai quote_post_author: Trích dẫn từ tút của @%{acct} title: '%{name}: "%{quote}"' visibilities: @@ -1962,7 +1965,7 @@ vi: public: Công khai public_long: Bất kỳ ai trong và ngoài Mastodon unlisted: Hạn chế - unlisted_long: Ẩn khỏi kết quả tìm kiếm, xu hướng và dòng thời gian công khai của Mastodon + unlisted_long: Ẩn khỏi kết quả tìm kiếm, xu hướng và bảng tin công khai statuses_cleanup: enabled: Tự động xóa những tút cũ enabled_hint: Trừ những ngoại lệ bên dưới diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index f0e5517565ff6b..70426f79faff34 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1400,6 +1400,9 @@ zh-CN: basic_information: 基本信息 hint_html: "自定义公开资料和嘟文旁边显示的内容。当你填写完整的个人资料并设置了头像时,其他人更有可能关注你并与你互动。" other: 其他 + redesign_body: 现在可以直接在个人资料页面编辑个人资料。 + redesign_button: 前往 + redesign_title: 全新个人资料编辑体验现已到来 email_subscription_mailer: confirmation: action: 确认电子邮件地址 @@ -1411,9 +1414,9 @@ zh-CN: create_account: 创建 Mastodon 账号 footer: privacy_html: 电子邮件发送自 %{domain},由 Mastodon 驱动的社区实例。要了解本站如何处理你的个人信息,请参见隐私政策。 - reason_for_email_html: 你收到此邮件是因为你先前订阅了来自 %{name} 的嘟文邮件通知。不想收到这些电子邮件?可以取消订阅 + reason_for_email_html: 你收到此邮件是因为你先前订阅了来自 %{name} 的嘟文邮件通知。不想再收到这些电子邮件?可以取消订阅 interact_with_this_post: - other: 和嘟文互动,探索更多相关内容。 + other: 和嘟文互动,发现更多类似嘟文。 subject: other: 来自 %{name} 的新嘟文 title: @@ -1781,7 +1784,7 @@ zh-CN: public_timelines: 公共时间线 privacy: email_subscriptions: 通过电子邮件发送嘟文 - email_subscriptions_hint_html: 在你的个人资料中添加电子邮件订阅表单,此表单会显示给未登录的用户。当访客输入电子邮件地址并主动加入时,Mastodon 将在你更新公开嘟文时为这些访客发送电子邮件通知。 + email_subscriptions_hint_html: 在你的个人资料中添加电子邮件订阅表单,此表单会显示给未登录的用户。当访客输入电子邮件地址并选择订阅时,Mastodon 将在你更新公开嘟文时为这些访客发送电子邮件通知。 hint_html: "自定义你希望如何找到你的个人资料和嘟文。启用Mastodon中的各种功能可以帮助你扩大受众范围。请花点时间查看这些设置,确保它们适合你的使用情况。" privacy: 隐私 privacy_hint_html: 控制你愿意向他人透露多少信息。通过浏览他人的关注列表和查看他们发嘟所用的应用,人们可以发现有趣的用户和酷炫的应用,但你可能更喜欢将其隐藏起来。 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index ecffe7aefe5945..26fc2fc64014fc 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1402,6 +1402,9 @@ zh-TW: basic_information: 基本資訊 hint_html: "自訂人們能於您個人檔案及嘟文旁所見之內容。當您完成填寫個人檔案及設定大頭貼後,其他人們比較願意跟隨您並與您互動。" other: 其他 + redesign_body: 個人檔案編輯功能現在能自個人檔案頁面直接存取。 + redesign_button: 前往 + redesign_title: 全新個人檔案編輯體驗 email_subscription_mailer: confirmation: action: 確認電子郵件地址 From e26c6fa2560b3a7a1b6d3032544fc30a0e587aa3 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 27 Mar 2026 11:12:41 +0100 Subject: [PATCH 053/335] Fix styling regressions: familiar followers layout & alert action hover color (#38438) --- .../mastodon/components/edited_timestamp/index.tsx | 1 + .../account_timeline/components/familiar_followers.tsx | 4 +++- app/javascript/styles/mastodon/components.scss | 8 ++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/components/edited_timestamp/index.tsx b/app/javascript/mastodon/components/edited_timestamp/index.tsx index eb07559cb259ee..2d73904dff2f26 100644 --- a/app/javascript/mastodon/components/edited_timestamp/index.tsx +++ b/app/javascript/mastodon/components/edited_timestamp/index.tsx @@ -121,6 +121,7 @@ export const EditedTimestamp: React.FC<{ /> ), }} + tagName='span' /> diff --git a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx index cc6434c6ee6436..248a182d27a6d6 100644 --- a/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/familiar_followers.tsx @@ -69,7 +69,9 @@ export const FamiliarFollowers: React.FC<{ accountId: string }> = ({ ))} - + + + ); }; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index c6870f1fb8ede1..f1438c9490b729 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10400,9 +10400,13 @@ noscript { padding: 0 4px; &:hover, - &:focus, &:active { - background: var(--color-bg-brand-softest); + background: rgb(from var(--color-text-inverted) r g b / 10%); + } + + &:focus-visible { + outline: 2px solid var(--color-text-brand-on-inverted); + outline-offset: 2px; } } From 9b6f877be59b8da9aba1ae82cf455bdaa5ae512d Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 13:40:34 +0100 Subject: [PATCH 054/335] Profile editing: Make field buttons vanish instead of disable (#38440) --- .../mastodon/features/account_edit/index.tsx | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/index.tsx b/app/javascript/mastodon/features/account_edit/index.tsx index d129f60ee52ae1..2e56a1b8785a7a 100644 --- a/app/javascript/mastodon/features/account_edit/index.tsx +++ b/app/javascript/mastodon/features/account_edit/index.tsx @@ -241,21 +241,23 @@ export const AccountEdit: FC = () => { showDescription={!hasFields} buttons={
    - + )} + {profile.fields.length < maxFieldCount && ( + - - = maxFieldCount} - /> + )}
    } > From 57a4f6b6eca3ddfd18e28fb00bf698a9e5dceefb Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 13:41:54 +0100 Subject: [PATCH 055/335] Profile editing: Field inline messages (#38442) --- .../components/callout_inline/index.tsx | 6 +- .../form_fields/emoji_text_field.tsx | 17 +- .../components/form_fields/fieldset.tsx | 2 +- .../form_fields/form_field_wrapper.tsx | 8 +- .../mastodon/components/form_fields/index.ts | 1 + .../account_edit/modals/fields_modals.tsx | 165 +++++++++++------- app/javascript/mastodon/locales/en.json | 3 +- 7 files changed, 122 insertions(+), 80 deletions(-) diff --git a/app/javascript/mastodon/components/callout_inline/index.tsx b/app/javascript/mastodon/components/callout_inline/index.tsx index e2e6791963285a..b8c571e4ea324e 100644 --- a/app/javascript/mastodon/components/callout_inline/index.tsx +++ b/app/javascript/mastodon/components/callout_inline/index.tsx @@ -7,15 +7,11 @@ import ErrorIcon from '@/material-icons/400-24px/error.svg?react'; import InfoIcon from '@/material-icons/400-24px/info.svg?react'; import WarningIcon from '@/material-icons/400-24px/warning.svg?react'; +import type { FieldStatus } from '../form_fields/form_field_wrapper'; import { Icon } from '../icon'; import classes from './styles.module.css'; -export interface FieldStatus { - variant: 'error' | 'warning' | 'info' | 'success'; - message?: string; -} - const iconMap: Record = { error: ErrorIcon, warning: WarningIcon, diff --git a/app/javascript/mastodon/components/form_fields/emoji_text_field.tsx b/app/javascript/mastodon/components/form_fields/emoji_text_field.tsx index af9e3d5280f8c4..6e65d22fc730f3 100644 --- a/app/javascript/mastodon/components/form_fields/emoji_text_field.tsx +++ b/app/javascript/mastodon/components/form_fields/emoji_text_field.tsx @@ -2,11 +2,9 @@ import type { ChangeEvent, ChangeEventHandler, ComponentPropsWithoutRef, - Dispatch, FC, ReactNode, RefObject, - SetStateAction, } from 'react'; import { useCallback, useId, useRef } from 'react'; @@ -25,7 +23,7 @@ import { TextInput } from './text_input_field'; export type EmojiInputProps = { value?: string; - onChange?: Dispatch>; + onChange?: (newValue: string) => void; counterMax?: number; recommended?: boolean; } & Omit; @@ -138,12 +136,15 @@ const EmojiFieldWrapper: FC< const handlePickEmoji = useCallback( (emoji: string) => { - onChange?.((prev) => { - const position = inputRef.current?.selectionStart ?? prev.length; - return insertEmojiAtPosition(prev, emoji, position); - }); + if (!value) { + onChange?.(''); + return; + } + const position = inputRef.current?.selectionStart ?? value.length; + const newValue = insertEmojiAtPosition(value, emoji, position); + onChange?.(newValue); }, - [onChange, inputRef], + [inputRef, value, onChange], ); const handleChange = useCallback( diff --git a/app/javascript/mastodon/components/form_fields/fieldset.tsx b/app/javascript/mastodon/components/form_fields/fieldset.tsx index 26381ca834ca0a..06882d8e816889 100644 --- a/app/javascript/mastodon/components/form_fields/fieldset.tsx +++ b/app/javascript/mastodon/components/form_fields/fieldset.tsx @@ -4,10 +4,10 @@ import type { ReactNode, FC } from 'react'; import { createContext, useId } from 'react'; import { A11yLiveRegion } from 'mastodon/components/a11y_live_region'; -import type { FieldStatus } from 'mastodon/components/callout_inline'; import { CalloutInline } from 'mastodon/components/callout_inline'; import classes from './fieldset.module.scss'; +import type { FieldStatus } from './form_field_wrapper'; import { getFieldStatus } from './form_field_wrapper'; import formFieldWrapperClasses from './form_field_wrapper.module.scss'; diff --git a/app/javascript/mastodon/components/form_fields/form_field_wrapper.tsx b/app/javascript/mastodon/components/form_fields/form_field_wrapper.tsx index 7cd6d676142f74..ffa7f491bcfa1d 100644 --- a/app/javascript/mastodon/components/form_fields/form_field_wrapper.tsx +++ b/app/javascript/mastodon/components/form_fields/form_field_wrapper.tsx @@ -8,7 +8,6 @@ import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import { A11yLiveRegion } from 'mastodon/components/a11y_live_region'; -import type { FieldStatus } from 'mastodon/components/callout_inline'; import { CalloutInline } from 'mastodon/components/callout_inline'; import { FieldsetNameContext } from './fieldset'; @@ -20,11 +19,16 @@ export interface InputProps { 'aria-describedby'?: string; } +export interface FieldStatus { + variant: 'error' | 'warning' | 'info' | 'success'; + message?: string; +} + interface FieldWrapperProps { label: ReactNode; hint?: ReactNode; required?: boolean; - status?: FieldStatus['variant'] | FieldStatus; + status?: FieldStatus['variant'] | FieldStatus | null; inputId?: string; describedById?: string; inputPlacement?: 'inline-start' | 'inline-end'; diff --git a/app/javascript/mastodon/components/form_fields/index.ts b/app/javascript/mastodon/components/form_fields/index.ts index 97fb90cf562ee4..5f89c03ece817d 100644 --- a/app/javascript/mastodon/components/form_fields/index.ts +++ b/app/javascript/mastodon/components/form_fields/index.ts @@ -1,3 +1,4 @@ +export type { FieldStatus } from './form_field_wrapper'; export { FormFieldWrapper } from './form_field_wrapper'; export { FormStack } from './form_stack'; export { Fieldset } from './fieldset'; diff --git a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx index 41991da7d0f468..0a4c64d9c4a258 100644 --- a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx @@ -1,11 +1,5 @@ -import { - forwardRef, - useCallback, - useImperativeHandle, - useMemo, - useState, -} from 'react'; -import type { FC } from 'react'; +import { forwardRef, useCallback, useImperativeHandle, useState } from 'react'; +import type { FC, FocusEventHandler } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; @@ -13,7 +7,7 @@ import type { Map as ImmutableMap } from 'immutable'; import { closeModal } from '@/mastodon/actions/modal'; import { Button } from '@/mastodon/components/button'; -import { Callout } from '@/mastodon/components/callout'; +import type { FieldStatus } from '@/mastodon/components/form_fields'; import { EmojiTextInputField } from '@/mastodon/components/form_fields'; import { removeField, @@ -71,6 +65,26 @@ const messages = defineMessages({ id: 'account_edit.field_edit_modal.discard_confirm', defaultMessage: 'Discard', }, + errorBlank: { + id: 'form_error.blank', + defaultMessage: 'Field cannot be blank.', + }, + warningLength: { + id: 'account_edit.field_edit_modal.length_warning', + defaultMessage: + 'Recommended character limit exceeded. Mobile users might not see your field in full.', + }, + warningUrlEmoji: { + id: 'account_edit.field_edit_modal.link_emoji_warning', + defaultMessage: + 'We recommend against the use of custom emoji in combination with urls. Custom fields containing both will display as text only instead of as a link, in order to prevent user confusion.', + }, + warningUrlProtocol: { + id: 'account_edit.field_edit_modal.url_warning', + defaultMessage: + 'To add a link, please include {protocol} at the beginning.', + description: '{protocol} is https://', + }, }); // We have two different values- the hard limit set by the server, @@ -124,34 +138,86 @@ export const EditFieldModal = forwardRef< const { nameLimit, valueLimit } = useAppSelector(selectFieldLimits); const isPending = useAppSelector((state) => state.profileEdit.isPending); - const disabled = - !newLabel.trim() || - !newValue.trim() || - !isDirty || - !nameLimit || - !valueLimit || - newLabel.length > nameLimit || - newValue.length > valueLimit; + const [fieldStatuses, setFieldStatuses] = useState<{ + label?: FieldStatus; + value?: FieldStatus; + }>({}); const customEmojiCodes = useAppSelector(selectEmojiCodes); - const hasLinkAndEmoji = useMemo(() => { - const text = `${newLabel} ${newValue}`; // Combine text, as we're searching it all. - const hasLink = /https?:\/\//.test(text); - const hasEmoji = customEmojiCodes.some((code) => - text.includes(`:${code}:`), - ); - return hasLink && hasEmoji; - }, [customEmojiCodes, newLabel, newValue]); - const hasLinkWithoutProtocol = useMemo( - () => isUrlWithoutProtocol(newValue), - [newValue], + const checkField = useCallback( + (value: string): FieldStatus | null => { + if (!value.trim()) { + return { + variant: 'error', + message: intl.formatMessage(messages.errorBlank), + }; + } + + if (value.length > RECOMMENDED_LIMIT) { + return { + variant: 'warning', + message: intl.formatMessage(messages.warningLength, { + max: RECOMMENDED_LIMIT, + }), + }; + } + + const hasLink = /https?:\/\//.test(value); + const hasEmoji = customEmojiCodes.some((code) => + value.includes(`:${code}:`), + ); + if (hasLink && hasEmoji) { + return { + variant: 'warning', + message: intl.formatMessage(messages.warningUrlEmoji), + }; + } + + if (isUrlWithoutProtocol(value)) { + return { + variant: 'warning', + message: intl.formatMessage(messages.warningUrlProtocol, { + protocol: 'https://', + }), + }; + } + + return null; + }, + [customEmojiCodes, intl], + ); + + const handleBlur: FocusEventHandler = useCallback( + (event) => { + const { name, value } = event.target; + const result = checkField(value); + if (name !== 'label' && name !== 'value') { + return; + } + setFieldStatuses((statuses) => ({ + ...statuses, + [name]: result ?? undefined, + })); + }, + [checkField], ); const dispatch = useAppDispatch(); const handleSave = useCallback(() => { - if (disabled || isPending) { + if (isPending) { + return; + } + + const labelStatus = checkField(newLabel); + const valueStatus = checkField(newValue); + if (labelStatus || valueStatus) { + setFieldStatuses({ + label: labelStatus ?? undefined, + value: valueStatus ?? undefined, + }); return; } + void dispatch( updateField({ id: fieldKey, name: newLabel, value: newValue }), ).then(() => { @@ -163,7 +229,7 @@ export const EditFieldModal = forwardRef< }), ); }); - }, [disabled, dispatch, fieldKey, isPending, newLabel, newValue]); + }, [checkField, dispatch, fieldKey, isPending, newLabel, newValue]); useImperativeHandle( ref, @@ -198,60 +264,33 @@ export const EditFieldModal = forwardRef< confirm={intl.formatMessage(messages.save)} onConfirm={handleSave} updating={isPending} - disabled={disabled} className={classes.wrapper} > - - {hasLinkAndEmoji && ( - - - - )} - - {(newLabel.length > RECOMMENDED_LIMIT || - newValue.length > RECOMMENDED_LIMIT) && ( - - - - )} - - {hasLinkWithoutProtocol && ( - - https://, - }} - /> - - )} ); }); diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ad18733d34d155..769e228c148946 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Discard", "account_edit.field_edit_modal.discard_message": "You have unsaved changes. Are you sure you want to discard them?", "account_edit.field_edit_modal.edit_title": "Edit custom field", - "account_edit.field_edit_modal.limit_warning": "Recommended character limit exceeded. Mobile users might not see your field in full.", + "account_edit.field_edit_modal.length_warning": "Recommended character limit exceeded. Mobile users might not see your field in full.", "account_edit.field_edit_modal.link_emoji_warning": "We recommend against the use of custom emoji in combination with urls. Custom fields containing both will display as text only instead of as a link, in order to prevent user confusion.", "account_edit.field_edit_modal.name_hint": "E.g. “Personal website”", "account_edit.field_edit_modal.name_label": "Label", @@ -700,6 +700,7 @@ "footer.source_code": "View source code", "footer.status": "Status", "footer.terms_of_service": "Terms of service", + "form_error.blank": "Field cannot be blank.", "form_field.optional": "(optional)", "generic.saved": "Saved", "getting_started.heading": "Getting started", From 92fa8ce88c3c01225c4ceb5ecbf31370f8bd9ed3 Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 13:45:59 +0100 Subject: [PATCH 056/335] Profile redesign: Include replies in pinned posts (#38443) --- .../mastodon/features/account_timeline/v2/pinned_statuses.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx b/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx index 7a8523c9de549e..694c107f3afbea 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx @@ -38,6 +38,7 @@ export function usePinnedStatusIds({ userId: accountId, tagged, pinned: true, + replies: true, }); const dispatch = useAppDispatch(); From 931f43c8b846674a14eafdec104cb5225237d9bb Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 13:50:34 +0100 Subject: [PATCH 057/335] Profile redesign: Re-adds title for profile counts and join date (#38445) --- .../features/account_timeline/components/number_fields.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx index efbb87021a6bcb..3494718fbfbd15 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx @@ -85,7 +85,7 @@ const RedesignNumberFields: FC<{ accountId: string }> = ({ accountId }) => { >
  • - +
  • @@ -114,7 +114,7 @@ const RedesignNumberFields: FC<{ accountId: string }> = ({ accountId }) => {
  • - + {createdThisYear ? ( Date: Fri, 27 Mar 2026 13:57:46 +0100 Subject: [PATCH 058/335] Profile editing: Minor size fixes (#38446) --- .../mastodon/features/account_edit/styles.module.scss | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index 69abdb856b6ceb..cd3d34f31b712e 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -13,7 +13,6 @@ > img { object-fit: cover; - object-position: top center; width: 100%; height: 100%; } @@ -26,7 +25,7 @@ .avatar { margin-top: -64px; - margin-left: 18px; + margin-left: 22px; position: relative; width: 82px; @@ -251,7 +250,7 @@ // Section component .section { - padding: 20px; + padding: 24px; border-bottom: 1px solid var(--color-border-primary); font-size: 15px; } From db54c59df4af34ea2752141f9a8c7bd2150c80f0 Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 16:03:52 +0100 Subject: [PATCH 059/335] Shows loading state for gallery correctly (#38451) --- .../features/account_gallery/index.tsx | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 52f30ac5057b44..2a69342a4672d4 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -37,15 +37,25 @@ const selectGalleryTimeline = createAppSelector( (state) => state.statuses, ], (accountId, timelines, accounts, statuses) => { + let items = emptyList; if (!accountId) { - return null; + return { + items, + hasMore: false, + isLoading: false, + withReplies: false, + }; } const account = accounts.get(accountId); if (!account) { - return null; + return { + items, + hasMore: false, + isLoading: false, + withReplies: false, + }; } - let items = emptyList; const { show_media, show_media_replies } = account; // If the account disabled showing media, don't display anything. if (!show_media && redesignEnabled) { @@ -53,13 +63,13 @@ const selectGalleryTimeline = createAppSelector( items, hasMore: false, isLoading: false, - showingReplies: false, + withReplies: false, }; } - const showingReplies = show_media_replies && redesignEnabled; + const withReplies = show_media_replies && redesignEnabled; const timeline = timelines.get( - `account:${accountId}:media${showingReplies ? ':with_replies' : ''}`, + `account:${accountId}:media${withReplies ? ':with_replies' : ''}`, ); const statusIds = timeline?.get('items'); @@ -77,8 +87,8 @@ const selectGalleryTimeline = createAppSelector( return { items, hasMore: !!timeline?.get('hasMore'), - isLoading: !!timeline?.get('isLoading'), - showingReplies, + isLoading: timeline?.get('isLoading') ? true : false, + withReplies, }; }, ); @@ -89,11 +99,11 @@ export const AccountGallery: React.FC<{ const dispatch = useAppDispatch(); const accountId = useAccountId(); const { - isLoading = true, - hasMore = false, - items: attachments = emptyList, - showingReplies: withReplies = false, - } = useAppSelector((state) => selectGalleryTimeline(state, accountId)) ?? {}; + isLoading, + items: attachments, + hasMore, + withReplies, + } = useAppSelector((state) => selectGalleryTimeline(state, accountId)); const { suspended, blockedBy, hidden } = useAccountVisibility(accountId); @@ -215,7 +225,7 @@ export const AccountGallery: React.FC<{ alwaysPrepend append={accountId && } scrollKey='account_gallery' - isLoading={isLoading} + showLoading={isLoading} hasMore={!forceEmptyState && hasMore} onLoadMore={handleLoadMore} emptyMessage={emptyMessage} From 43adb2c91d9254a88eef25dbc4a93c34f473f918 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 27 Mar 2026 16:04:07 +0100 Subject: [PATCH 060/335] Revert translation wrapper for counters (#38453) --- app/javascript/mastodon/components/counters.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/javascript/mastodon/components/counters.tsx b/app/javascript/mastodon/components/counters.tsx index 8b14d2a822cdb0..ad4331875b1932 100644 --- a/app/javascript/mastodon/components/counters.tsx +++ b/app/javascript/mastodon/components/counters.tsx @@ -13,6 +13,7 @@ export const StatusesCounter = ( count: pluralReady, counter: {displayNumber}, }} + tagName='span' /> ); @@ -27,6 +28,7 @@ export const FollowingCounter = ( count: pluralReady, counter: {displayNumber}, }} + tagName='span' /> ); @@ -41,6 +43,7 @@ export const FollowersCounter = ( count: pluralReady, counter: {displayNumber}, }} + tagName='span' /> ); @@ -55,5 +58,6 @@ export const FollowersYouKnowCounter = ( count: pluralReady, counter: {displayNumber}, }} + tagName='span' /> ); From 9a076359b9dd1a58ebf084d7b9361a3882ba4857 Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 16:15:36 +0100 Subject: [PATCH 061/335] Profile redesign: Add Intl.Segmenter fallback (#38456) --- .../mastodon/components/character_counter/index.tsx | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/app/javascript/mastodon/components/character_counter/index.tsx b/app/javascript/mastodon/components/character_counter/index.tsx index 6ffe4d02f48a9a..6bc88c23ac520e 100644 --- a/app/javascript/mastodon/components/character_counter/index.tsx +++ b/app/javascript/mastodon/components/character_counter/index.tsx @@ -1,9 +1,9 @@ -import { useMemo } from 'react'; - import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; +import { length } from 'stringz'; + import { polymorphicForwardRef } from '@/types/polymorphic'; import classes from './styles.module.scss'; @@ -14,8 +14,6 @@ interface CharacterCounterProps { recommended?: boolean; } -const segmenter = new Intl.Segmenter(); - export const CharacterCounter = polymorphicForwardRef< 'span', CharacterCounterProps @@ -31,10 +29,7 @@ export const CharacterCounter = polymorphicForwardRef< }, ref, ) => { - const currentLength = useMemo( - () => [...segmenter.segment(currentString)].length, - [currentString], - ); + const currentLength = length(currentString); return ( Date: Fri, 27 Mar 2026 15:19:18 +0000 Subject: [PATCH 062/335] Update dependency vite to v8.0.3 (#38411) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 156 +++++++++++++++++++++++++++--------------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/yarn.lock b/yarn.lock index c1ae5170641c0d..67b7bb975f1162 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3725,109 +3725,109 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-android-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.11" +"@rolldown/binding-android-arm64@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.12" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.11" +"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.12" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-x64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.11" +"@rolldown/binding-darwin-x64@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.12" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.11" +"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.12" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.11" +"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.12" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.12" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.11" +"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.12" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.12" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.12" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.11" +"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.12" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.11" +"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.12" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.11" +"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.12" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.11" +"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.12" dependencies: "@napi-rs/wasm-runtime": "npm:^1.1.1" conditions: cpu=wasm32 languageName: node linkType: hard -"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.11" +"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.12" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.11" +"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.12" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3854,10 +3854,10 @@ __metadata: languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.11" - checksum: 10c0/ed20f15c0d78bb3e82f1cb1924ed4b489c026e76cc28ed861609101c75790effa1e2e0fed37ee1b22ceec83aee8ab59098a0d5d3d1b62baa1b44753f88a5e4c6 +"@rolldown/pluginutils@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.12" + checksum: 10c0/f785d1180ea4876bf6a6a67135822808d1c07f902409524ff1088779f7d5318f6e603d281fb107a5145c1ca54b7cabebd359629ec474ebbc2812f2cf53db4023 languageName: node linkType: hard @@ -11090,10 +11090,10 @@ __metadata: languageName: node linkType: hard -"picomatch@npm:2 || 3 || 4, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 +"picomatch@npm:2 || 3 || 4, picomatch@npm:^4.0.2, picomatch@npm:^4.0.3, picomatch@npm:^4.0.4": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 languageName: node linkType: hard @@ -12640,27 +12640,27 @@ __metadata: languageName: node linkType: hard -"rolldown@npm:1.0.0-rc.11": - version: 1.0.0-rc.11 - resolution: "rolldown@npm:1.0.0-rc.11" +"rolldown@npm:1.0.0-rc.12": + version: 1.0.0-rc.12 + resolution: "rolldown@npm:1.0.0-rc.12" dependencies: "@oxc-project/types": "npm:=0.122.0" - "@rolldown/binding-android-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.11" - "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.11" - "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.11" - "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.11" - "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.11" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.11" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.11" - "@rolldown/pluginutils": "npm:1.0.0-rc.11" + "@rolldown/binding-android-arm64": "npm:1.0.0-rc.12" + "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.12" + "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.12" + "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.12" + "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.12" + "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.12" + "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.12" + "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.12" + "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.12" + "@rolldown/pluginutils": "npm:1.0.0-rc.12" dependenciesMeta: "@rolldown/binding-android-arm64": optional: true @@ -12694,7 +12694,7 @@ __metadata: optional: true bin: rolldown: bin/cli.mjs - checksum: 10c0/f92457aa26dac614bbaa92079d05c6a4819054468b46b2f46f68bae4bf42dc2c840a4d89be4ffa2a5821a63cd46157fa167a93e1f0b6671f89c16e3da8e2dbf3 + checksum: 10c0/0c4e5e3cdcdddce282cb2d84e1c98d6ad8d4e452d5c1402e498b35ec1060026e552dd783efc9f4ba876d7c0863b5973edc79b6a546f565e9832dc1077ec18c2c languageName: node linkType: hard @@ -14733,14 +14733,14 @@ __metadata: linkType: hard "vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0-0, vite@npm:^8.0.0": - version: 8.0.2 - resolution: "vite@npm:8.0.2" + version: 8.0.3 + resolution: "vite@npm:8.0.3" dependencies: fsevents: "npm:~2.3.3" lightningcss: "npm:^1.32.0" - picomatch: "npm:^4.0.3" + picomatch: "npm:^4.0.4" postcss: "npm:^8.5.8" - rolldown: "npm:1.0.0-rc.11" + rolldown: "npm:1.0.0-rc.12" tinyglobby: "npm:^0.2.15" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 @@ -14785,7 +14785,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/b271a3c3f8100bab45ee16583cb046aa028f943205b56065b09d3f1851ed8e7068fc6a76e9dc01beca805e8bb1e53f229c4c1c623be87ef1acb00fc002a29cf6 + checksum: 10c0/bed9520358080393a02fe22565b3309b4b3b8f916afe4c97577528f3efb05c1bf4b29f7b552179bc5b3938629e50fbd316231727457411dbc96648fa5c9d14bf languageName: node linkType: hard From ab5cbe350924ebd6da480aa08af333cd22198946 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 27 Mar 2026 16:19:47 +0100 Subject: [PATCH 063/335] Update dependency @vitejs/plugin-legacy to v8.0.1 (#38410) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/yarn.lock b/yarn.lock index 67b7bb975f1162..13e611512a4dc5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1063,7 +1063,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.29.0": +"@babel/preset-env@npm:^7.11.0, @babel/preset-env@npm:^7.29.2": version: 7.29.2 resolution: "@babel/preset-env@npm:7.29.2" dependencies: @@ -5187,25 +5187,25 @@ __metadata: linkType: hard "@vitejs/plugin-legacy@npm:^8.0.0": - version: 8.0.0 - resolution: "@vitejs/plugin-legacy@npm:8.0.0" + version: 8.0.1 + resolution: "@vitejs/plugin-legacy@npm:8.0.1" dependencies: "@babel/core": "npm:^7.29.0" "@babel/plugin-transform-dynamic-import": "npm:^7.27.1" "@babel/plugin-transform-modules-systemjs": "npm:^7.29.0" - "@babel/preset-env": "npm:^7.29.0" - babel-plugin-polyfill-corejs3: "npm:^0.14.1" - babel-plugin-polyfill-regenerator: "npm:^0.6.7" + "@babel/preset-env": "npm:^7.29.2" + babel-plugin-polyfill-corejs3: "npm:^0.14.2" + babel-plugin-polyfill-regenerator: "npm:^0.6.8" browserslist: "npm:^4.28.1" browserslist-to-esbuild: "npm:^2.1.1" - core-js: "npm:^3.48.0" + core-js: "npm:^3.49.0" magic-string: "npm:^0.30.21" regenerator-runtime: "npm:^0.14.1" systemjs: "npm:^6.15.1" peerDependencies: terser: ^5.16.0 vite: ^8.0.0 - checksum: 10c0/5b88d81ac1eb82aa607d9809f3df1354ee065095f5941b63b51d9aea2a73ba9cee8d08d7af944971b651dedf12fea931fec99baf9673fde54e2331abc8d709c9 + checksum: 10c0/7c148ccabc154cf781d9e281d1cd17b2a640335fb16b226c0dd4e80982f672b867f719e20bfe734d0541398a9791464146a06f04827f6db2e4e19d2b2986515f languageName: node linkType: hard @@ -5843,7 +5843,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-corejs3@npm:^0.14.0, babel-plugin-polyfill-corejs3@npm:^0.14.1": +"babel-plugin-polyfill-corejs3@npm:^0.14.0, babel-plugin-polyfill-corejs3@npm:^0.14.2": version: 0.14.2 resolution: "babel-plugin-polyfill-corejs3@npm:0.14.2" dependencies: @@ -5855,7 +5855,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-polyfill-regenerator@npm:^0.6.6, babel-plugin-polyfill-regenerator@npm:^0.6.7": +"babel-plugin-polyfill-regenerator@npm:^0.6.6, babel-plugin-polyfill-regenerator@npm:^0.6.8": version: 0.6.8 resolution: "babel-plugin-polyfill-regenerator@npm:0.6.8" dependencies: @@ -6439,7 +6439,7 @@ __metadata: languageName: node linkType: hard -"core-js@npm:^3.30.2, core-js@npm:^3.48.0": +"core-js@npm:^3.30.2, core-js@npm:^3.49.0": version: 3.49.0 resolution: "core-js@npm:3.49.0" checksum: 10c0/2e42edb47eda38fd5368380131623c8aa5d4a6b42164125b17744bdc08fa5ebbbdd06b4b4aa6ca3663470a560b0f2fba48e18f142dfe264b0039df85bc625694 From df9dec741f78ae518a8ee976d2f6381104dfd625 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 27 Mar 2026 11:25:19 -0400 Subject: [PATCH 064/335] Add private method for event export filename (#38454) --- .../severed_relationships_controller.rb | 8 ++++++-- .../account_relationship_severance_event.rb | 4 ++++ ...count_relationship_severance_event_spec.rb | 20 +++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 spec/models/account_relationship_severance_event_spec.rb diff --git a/app/controllers/severed_relationships_controller.rb b/app/controllers/severed_relationships_controller.rb index 9371ebf7d0676a..a5373685301fe0 100644 --- a/app/controllers/severed_relationships_controller.rb +++ b/app/controllers/severed_relationships_controller.rb @@ -13,13 +13,13 @@ def index def following respond_to do |format| - format.csv { send_data following_data, filename: "following-#{@event.target_name}-#{@event.created_at.to_date.iso8601}.csv" } + format.csv { send_data following_data, filename: } end end def followers respond_to do |format| - format.csv { send_data followers_data, filename: "followers-#{@event.target_name}-#{@event.created_at.to_date.iso8601}.csv" } + format.csv { send_data followers_data, filename: } end end @@ -48,4 +48,8 @@ def followers_data def acct(account) account.local? ? account.local_username_and_domain : account.acct end + + def filename + "#{action_name}-#{@event.identifier}.csv" + end end diff --git a/app/models/account_relationship_severance_event.rb b/app/models/account_relationship_severance_event.rb index 115c63c06273b9..89e6d8b9817572 100644 --- a/app/models/account_relationship_severance_event.rb +++ b/app/models/account_relationship_severance_event.rb @@ -32,6 +32,10 @@ class AccountRelationshipSeveranceEvent < ApplicationRecord before_create :set_relationships_count! + def identifier + "#{target_name}-#{created_at.to_date.iso8601}" + end + private def set_relationships_count! diff --git a/spec/models/account_relationship_severance_event_spec.rb b/spec/models/account_relationship_severance_event_spec.rb new file mode 100644 index 00000000000000..d3a600eee41545 --- /dev/null +++ b/spec/models/account_relationship_severance_event_spec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +RSpec.describe AccountRelationshipSeveranceEvent do + describe 'Associations' do + it { is_expected.to belong_to(:account) } + it { is_expected.to belong_to(:relationship_severance_event) } + it { is_expected.to have_many(:severed_relationships).through(:relationship_severance_event) } + end + + describe '#identifier' do + subject { account_relationship_severance_event.identifier } + + let(:account_relationship_severance_event) { Fabricate.build :account_relationship_severance_event, relationship_severance_event:, created_at: DateTime.new(2026, 3, 15, 1, 2, 3) } + let(:relationship_severance_event) { Fabricate.build :relationship_severance_event, target_name: 'host.example' } + + context 'with a hostname target and timestamp' do + it { is_expected.to eq('host.example-2026-03-15') } + end + end +end From 5a880ff995ea9b1e8be419965bd4ad3ef148ed9a Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Fri, 27 Mar 2026 11:29:52 -0400 Subject: [PATCH 065/335] Clean up some route declarations (#38444) --- config/routes.rb | 6 ++++-- config/routes/admin.rb | 6 +++--- config/routes/api.rb | 2 +- config/routes/settings.rb | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/routes.rb b/config/routes.rb index d31331a6c1faf6..85bd79a1cee2ba 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -200,7 +200,7 @@ def redirect_with_vary(path) resources :emojis, only: [:show] resources :invites, only: [:index, :create, :destroy] resources :filters, except: [:show] do - resources :statuses, only: [:index], controller: 'filters/statuses' do + resources :statuses, only: [:index], module: :filters do collection do post :batch end @@ -219,7 +219,9 @@ def redirect_with_vary(path) resource :statuses_cleanup, controller: :statuses_cleanup, only: [:show, :update] get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy, format: false - get '/backups/:id/download', to: 'backups#download', as: :download_backup, format: false + resources :backups, only: [] do + member { get :download, format: false } + end resource :authorize_interaction, only: [:show] resource :share, only: [:show] diff --git a/config/routes/admin.rb b/config/routes/admin.rb index 84beea4611c55c..3751126382b919 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -92,7 +92,7 @@ post :stop_delivery end - resources :moderation_notes, controller: 'instances/moderation_notes', only: [:create, :destroy] + resources :moderation_notes, module: :instances, only: [:create, :destroy] end resources :rules, only: [:index, :new, :create, :edit, :update, :destroy] do @@ -108,13 +108,13 @@ post :disable end - resource :secret, only: [], controller: 'webhooks/secrets' do + resource :secret, only: [], module: :webhooks do post :rotate end end resources :reports, only: [:index, :show] do - resources :actions, only: [:create], controller: 'reports/actions' do + resources :actions, only: [:create], module: :reports do collection do post :preview end diff --git a/config/routes/api.rb b/config/routes/api.rb index 696981aad223f3..a2a93ff207863f 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -258,7 +258,7 @@ end namespace :featured_tags do - get :suggestions, to: 'suggestions#index' + resources :suggestions, only: :index end resources :featured_tags, only: [:index, :create, :destroy] diff --git a/config/routes/settings.rb b/config/routes/settings.rb index f5869a767c2a69..bec68fc6e277fe 100644 --- a/config/routes/settings.rb +++ b/config/routes/settings.rb @@ -9,7 +9,7 @@ namespace :preferences do resource :appearance, only: [:show, :update], controller: :appearance - resource :posting_defaults, only: [:show, :update], controller: :posting_defaults + resource :posting_defaults, only: [:show, :update] resource :notifications, only: [:show, :update] resource :other, only: [:show, :update], controller: :other end From 098d698a7e24982324996c4a0df23f2c423b31c8 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 27 Mar 2026 16:30:06 +0100 Subject: [PATCH 066/335] Implement new collection page design (#38450) --- .../mastodon/components/account/index.tsx | 4 +- .../components/callout/styles.module.css | 1 + .../collections/detail/accounts_list.tsx | 81 ++++++++---- .../detail/collection_list_item.module.scss | 2 +- .../features/collections/detail/index.tsx | 121 ++++-------------- .../collections/detail/share_modal.tsx | 2 +- .../collections/detail/styles.module.scss | 118 ++++++++--------- app/javascript/mastodon/locales/en.json | 8 +- .../styles/mastodon/components.scss | 21 ++- 9 files changed, 154 insertions(+), 204 deletions(-) diff --git a/app/javascript/mastodon/components/account/index.tsx b/app/javascript/mastodon/components/account/index.tsx index f8668bce325a1c..1e8db6c5b9b3ff 100644 --- a/app/javascript/mastodon/components/account/index.tsx +++ b/app/javascript/mastodon/components/account/index.tsx @@ -75,6 +75,7 @@ interface AccountProps { withMenu?: boolean; withBorder?: boolean; extraAccountInfo?: React.ReactNode; + className?: string; children?: React.ReactNode; } @@ -88,6 +89,7 @@ export const Account: React.FC = ({ withMenu = true, withBorder = true, extraAccountInfo, + className, children, }) => { const intl = useIntl(); @@ -290,7 +292,7 @@ export const Account: React.FC = ({ return (
    = ({ id }) => { @@ -41,8 +39,9 @@ const SimpleAuthorName: React.FC<{ id: string }> = ({ id }) => { const AccountItem: React.FC<{ accountId: string | undefined; collectionOwnerId: string; + withBio?: boolean; withBorder?: boolean; -}> = ({ accountId, withBorder = true, collectionOwnerId }) => { +}> = ({ accountId, withBio = true, withBorder = true, collectionOwnerId }) => { const relationship = useRelationship(accountId); if (!accountId) { @@ -59,12 +58,17 @@ const AccountItem: React.FC<{ (relationship.following || relationship.requested)); return ( - +
    + + {!withoutButton && } +
    ); }; @@ -131,19 +135,27 @@ const SensitiveScreen: React.FC<{ } return ( -
    + + } + primaryLabel={ + + } + onPrimary={showAnyway} + > - -
    + ); }; @@ -192,13 +204,14 @@ export const CollectionAccountsList: React.FC<{ {collection && currentUserInCollection ? ( <>

    , }} @@ -208,9 +221,11 @@ export const CollectionAccountsList: React.FC<{ key={currentUserInCollection.account_id} aria-posinset={1} aria-setsize={items.length} + className={classes.youWereAddedWrapper} > @@ -225,18 +240,30 @@ export const CollectionAccountsList: React.FC<{ ref={listHeadingRef} >

    ) : (

    - {intl.formatMessage(messages.accounts)} + {collection ? ( + + ) : ( + + )}

    )} {collection && ( diff --git a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss b/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss index 7cdf9b854127cc..7fb3d21bbccb18 100644 --- a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss +++ b/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss @@ -43,7 +43,7 @@ width: 18px; height: 18px; border-radius: 8px; - color: var(--color-text-primary); + fill: var(--color-text-primary); background: var(--color-bg-warning-softest); } diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index 1e4248026c48f7..e9337eaed8f34a 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -4,24 +4,19 @@ import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { Helmet } from 'react-helmet'; import { useHistory, useLocation, useParams } from 'react-router'; +import { Link } from 'react-router-dom'; import { openModal } from '@/mastodon/actions/modal'; -import { RelativeTimestamp } from '@/mastodon/components/relative_timestamp'; +import { useAccountHandle } from '@/mastodon/components/display_name/default'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; -import { Avatar } from 'mastodon/components/avatar'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; -import { - DisplayName, - LinkedDisplayName, -} from 'mastodon/components/display_name'; import { IconButton } from 'mastodon/components/icon_button'; import { Scrollable } from 'mastodon/components/scrollable_list/components'; -import { Tag } from 'mastodon/components/tags/tag'; import { useAccount } from 'mastodon/hooks/useAccount'; -import { me } from 'mastodon/initial_state'; +import { domain } from 'mastodon/initial_state'; import { fetchCollection } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; @@ -40,88 +35,29 @@ const messages = defineMessages({ }, }); -const CollectionMetaData: React.FC<{ - collection: ApiCollectionJSON; - extended?: boolean; -}> = ({ collection, extended }) => { - return ( -
      - - {extended && ( - <> - {collection.discoverable ? ( - - ) : ( - - )} - {collection.sensitive && ( - - )} - - )} - , - }} - tagName='li' - /> -
    - ); -}; - -export const AuthorNote: React.FC<{ id: string; previewMode?: boolean }> = ({ - id, - // When previewMode is enabled, your own display name - // will not be replaced with "you" - previewMode = false, -}) => { +export const AuthorNote: React.FC<{ id: string }> = ({ id }) => { const account = useAccount(id); + const authorHandle = useAccountHandle(account, domain); + + if (!account) { + return null; + } + const author = ( - - - {previewMode ? ( - - ) : ( - - )} - + + {authorHandle} + ); - const displayAsYou = id === me && !previewMode; - return ( -

    - {displayAsYou ? ( - - ) : ( - - )} +

    +

    ); }; @@ -156,14 +92,12 @@ const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({ }, [history, handleShare, isNewCollection, location.pathname]); return ( -
    +
    - {tag && ( - // TODO: Make non-interactive tag component - - )} + {tag && #{tag.name}}

    {name}

    +
    = ({
    {description &&

    {description}

    } - - -
    + ); }; diff --git a/app/javascript/mastodon/features/collections/detail/share_modal.tsx b/app/javascript/mastodon/features/collections/detail/share_modal.tsx index 26bab6abe00c88..1b7f4dcf1c6da0 100644 --- a/app/javascript/mastodon/features/collections/detail/share_modal.tsx +++ b/app/javascript/mastodon/features/collections/detail/share_modal.tsx @@ -97,7 +97,7 @@ export const CollectionShareModal: React.FC<{

    {collection.name}

    - +
    {collection.items.slice(0, 5).map(({ account_id }) => { diff --git a/app/javascript/mastodon/features/collections/detail/styles.module.scss b/app/javascript/mastodon/features/collections/detail/styles.module.scss index 89bad584b66c20..62e2285294ae8b 100644 --- a/app/javascript/mastodon/features/collections/detail/styles.module.scss +++ b/app/javascript/mastodon/features/collections/detail/styles.module.scss @@ -1,6 +1,5 @@ .header { - padding: 16px; - border-bottom: 1px solid var(--color-border-primary); + padding: 24px; } .titleWithMenu { @@ -11,23 +10,46 @@ .titleWrapper { flex-grow: 1; + display: flex; + flex-direction: column; + align-items: start; + gap: 4px; min-width: 0; } .tag { - margin-bottom: 4px; - margin-inline-start: -8px; + display: inline-block; + padding: 4px; + font-size: 13px; + font-weight: 500; + color: var(--color-text-secondary); + background: var(--color-bg-secondary); } .name { - font-size: 28px; + font-size: 22px; + font-weight: 500; line-height: 1.2; overflow-wrap: anywhere; } +.authorNote { + font-size: 13px; + color: var(--color-text-secondary); + + a { + color: inherit; + text-decoration-color: rgb(from var(--color-text-secondary) r g b / 50%); + + &:hover { + text-decoration: none; + } + } +} + .description { font-size: 15px; - margin-top: 8px; + margin-top: 12px; } .headerButtonWrapper { @@ -39,79 +61,41 @@ box-sizing: content-box; padding: 5px; border-radius: 4px; - border: 1px solid var(--color-border-primary); -} - -.authorNote { - margin-top: 8px; - font-size: 13px; - color: var(--color-text-secondary); -} - -.previewAuthorNote { - font-size: 13px; } -.metaList { - --gap: 0.75ch; - - display: flex; - flex-wrap: wrap; - margin-top: 16px; - gap: var(--gap); - font-size: 15px; - - & > li:not(:last-child)::after { - content: '·'; - margin-inline-start: var(--gap); - } +.itemList { + padding-inline: 24px; } .columnSubheading { - background: var(--color-bg-secondary); - padding: 15px 20px; + padding-bottom: 12px; font-size: 15px; font-weight: 500; - - &:focus-visible { - outline: var(--outline-focus-default); - outline-offset: -2px; - } } -.displayNameWithAvatar { - display: inline-flex; - gap: 4px; - align-items: baseline; - - a { - color: inherit; - text-decoration: underline; +.accountItemWrapper { + display: flex; + align-items: start; + padding-block: 16px; - &:hover, - &:focus { - text-decoration: none; - } + &[data-with-border='true'] { + border-bottom: 1px solid var(--color-border-primary); } +} - > :global(.account__avatar) { - align-self: center; - } +.accountItem { + --account-name-size: 15px; + --account-handle-color: var(--color-text-secondary); + --account-handle-size: 13px; + --account-bio-color: var(--color-text-primary); + --account-bio-size: 13px; + --account-outer-spacing: 0; + + flex-grow: 1; } -.sensitiveWarning { - display: flex; - flex-direction: column; - align-items: center; - max-width: 460px; - margin: auto; - padding: 60px 30px; - gap: 20px; - text-align: center; - text-wrap: balance; - font-size: 15px; - line-height: 1.5; - cursor: default; +.youWereAddedWrapper { + padding-bottom: 16px; } .revokeControlWrapper { @@ -119,9 +103,7 @@ flex-wrap: wrap; align-items: center; gap: 10px; - margin-top: -10px; - padding-bottom: 16px; - padding-inline: calc(26px + var(--avatar-width)) 16px; + margin-bottom: 8px; :global(.button) { min-width: 30%; diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 769e228c148946..a7520348300ce1 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -378,14 +378,13 @@ "collections.description_length_hint": "100 characters limit", "collections.detail.accept_inclusion": "Okay", "collections.detail.accounts_heading": "Accounts", - "collections.detail.author_added_you": "{author} added you to this collection", - "collections.detail.curated_by_author": "Curated by {author}", - "collections.detail.curated_by_you": "Curated by you", "collections.detail.loading": "Loading collection…", - "collections.detail.other_accounts_in_collection": "Others in this collection:", + "collections.detail.other_accounts_count": "{count, plural, one {# other account} other {# other accounts}}", "collections.detail.revoke_inclusion": "Remove me", + "collections.detail.sensitive_content": "Sensitive content", "collections.detail.sensitive_note": "This collection contains accounts and content that may be sensitive to some users.", "collections.detail.share": "Share this collection", + "collections.detail.you_were_added_to_this_collection": "You were added to this collection", "collections.edit_details": "Edit details", "collections.error_loading_collections": "There was an error when trying to load your collections.", "collections.hints.accounts_counter": "{count} / {max} accounts", @@ -541,6 +540,7 @@ "content_warning.hide": "Hide post", "content_warning.show": "Show anyway", "content_warning.show_more": "Show more", + "content_warning.show_short": "Show", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index f1438c9490b729..593743a0229667 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2011,7 +2011,15 @@ body > [data-popper-placement] { } .account { - padding: 16px; + --account-outer-spacing: 16px; + --account-name-color: var(--color-text-primary); + --account-name-size: 14px; + --account-handle-color: var(--color-text-secondary); + --account-handle-size: 14px; + --account-bio-color: var(--color-text-secondary); + --account-bio-size: 14px; + + padding: var(--account-outer-spacing); // Using :where keeps specificity low, allowing for existing // .account overrides to still apply @@ -2024,10 +2032,10 @@ body > [data-popper-placement] { display: flex; align-items: center; gap: 10px; - color: var(--color-text-secondary); + color: var(--account-handle-color); overflow: hidden; text-decoration: none; - font-size: 14px; + font-size: var(--account-handle-size); .display-name { margin-bottom: 4px; @@ -2035,7 +2043,8 @@ body > [data-popper-placement] { .display-name strong { display: inline; - color: var(--color-text-primary); + font-size: var(--account-name-size); + color: var(--account-name-color); } } @@ -2173,7 +2182,7 @@ body > [data-popper-placement] { } &__note { - font-size: 14px; + font-size: var(--account-bio-size); font-weight: 400; overflow: hidden; text-overflow: ellipsis; @@ -2182,7 +2191,7 @@ body > [data-popper-placement] { -webkit-line-clamp: 1; -webkit-box-orient: vertical; margin-top: 10px; - color: var(--color-text-secondary); + color: var(--account-bio-color); &--missing { color: var(--color-text-tertiary); From e303c89e4d97235411c405c388034a87acd7fdce Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 27 Mar 2026 17:13:07 +0100 Subject: [PATCH 067/335] Refactor `NumberFields` to standalone component (#38455) --- .../components/number_fields/index.tsx | 40 +++++++ .../number_fields/styles.module.scss | 32 ++++++ app/javascript/mastodon/components/router.tsx | 2 + .../components/number_fields.tsx | 102 +++++++++--------- .../components/redesign.module.scss | 31 ------ 5 files changed, 123 insertions(+), 84 deletions(-) create mode 100644 app/javascript/mastodon/components/number_fields/index.tsx create mode 100644 app/javascript/mastodon/components/number_fields/styles.module.scss diff --git a/app/javascript/mastodon/components/number_fields/index.tsx b/app/javascript/mastodon/components/number_fields/index.tsx new file mode 100644 index 00000000000000..36e99725c7539d --- /dev/null +++ b/app/javascript/mastodon/components/number_fields/index.tsx @@ -0,0 +1,40 @@ +import { NavLink } from 'react-router-dom'; + +import type { MastodonLocationDescriptor } from 'mastodon/components/router'; + +import classes from './styles.module.scss'; + +interface WrapperProps { + children: React.ReactNode; +} + +export const NumberFields: React.FC = ({ children }) => { + return
      {children}
    ; +}; + +interface ItemProps { + label: React.ReactNode; + hint?: string; + link?: MastodonLocationDescriptor; + children: React.ReactNode; +} + +export const NumberFieldsItem: React.FC = ({ + label, + hint, + link, + children, +}) => { + return ( +
  • + {label} + {link ? ( + + {children} + + ) : ( + {children} + )} +
  • + ); +}; diff --git a/app/javascript/mastodon/components/number_fields/styles.module.scss b/app/javascript/mastodon/components/number_fields/styles.module.scss new file mode 100644 index 00000000000000..085bd5051dd7a6 --- /dev/null +++ b/app/javascript/mastodon/components/number_fields/styles.module.scss @@ -0,0 +1,32 @@ +.list { + display: flex; + flex-wrap: wrap; + margin: 8px 0; + padding: 0; + gap: 4px 20px; + font-size: 13px; + color: var(--color-text-secondary); +} + +.item { + @container (width < 420px) { + flex: 1 1 0px; + } + + a, + strong { + display: block; + font-weight: 600; + color: var(--color-text-primary); + font-size: 15px; + } + + a { + padding: 0; + + &:hover, + &:focus { + text-decoration: underline; + } + } +} diff --git a/app/javascript/mastodon/components/router.tsx b/app/javascript/mastodon/components/router.tsx index 1c251d6abcda9c..bd6e4b568f0f18 100644 --- a/app/javascript/mastodon/components/router.tsx +++ b/app/javascript/mastodon/components/router.tsx @@ -26,6 +26,8 @@ export type LocationState = MastodonLocationState | null | undefined; export type MastodonLocation = ReturnType>; +export type MastodonLocationDescriptor = LocationDescriptor; + type HistoryPath = Path | LocationDescriptor; export const browserHistory = createBrowserHistory(); diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx index 3494718fbfbd15..0fa805ac6ba355 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx @@ -3,7 +3,6 @@ import type { FC } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; -import classNames from 'classnames'; import { NavLink } from 'react-router-dom'; import { @@ -12,13 +11,15 @@ import { StatusesCounter, } from '@/mastodon/components/counters'; import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; +import { + NumberFields, + NumberFieldsItem, +} from '@/mastodon/components/number_fields'; import { ShortNumber } from '@/mastodon/components/short_number'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { isRedesignEnabled } from '../common'; -import classes from './redesign.module.scss'; - const LegacyNumberFields: FC<{ accountId: string }> = ({ accountId }) => { const intl = useIntl(); const account = useAccount(accountId); @@ -77,56 +78,51 @@ const RedesignNumberFields: FC<{ accountId: string }> = ({ accountId }) => { } return ( -
      -
    • - - - - -
    • - -
    • - - - - -
    • - -
    • - - - - -
    • - -
    • - - - {createdThisYear ? ( - - ) : ( - - )} - -
    • -
    + + } + hint={intl.formatNumber(account.statuses_count)} + > + + + + + } + hint={intl.formatNumber(account.followers_count)} + link={`/@${account.acct}/followers`} + > + + + + + } + hint={intl.formatNumber(account.following_count)} + link={`/@${account.acct}/following`} + > + + + + + } + hint={intl.formatDate(account.created_at)} + > + {createdThisYear ? ( + + ) : ( + + )} + + ); }; diff --git a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss index 40fdc5cfa8afb8..391a6ac7fe71d0 100644 --- a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss @@ -312,37 +312,6 @@ svg.badgeIcon { } } -.fieldNumbersWrapper { - display: flex; - font-size: 13px; - padding: 0; - margin: 8px 0; - gap: 20px; - - li { - @container (width < 420px) { - flex: 1 1 0px; - } - } - - a, - strong { - display: block; - font-weight: 600; - color: var(--color-text-primary); - font-size: 15px; - } - - a { - padding: 0; - - &:hover, - &:focus { - text-decoration: underline; - } - } -} - .modalCloseButton { padding: 8px; border-radius: 50%; From 6e103636f2214520812432635fd50a9633cec64c Mon Sep 17 00:00:00 2001 From: Echo Date: Fri, 27 Mar 2026 17:21:58 +0100 Subject: [PATCH 068/335] Add error notice when bundle load fails (#38458) --- app/javascript/mastodon/features/ui/components/bundle.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/features/ui/components/bundle.jsx b/app/javascript/mastodon/features/ui/components/bundle.jsx index 57143f157150a5..90e775f907395a 100644 --- a/app/javascript/mastodon/features/ui/components/bundle.jsx +++ b/app/javascript/mastodon/features/ui/components/bundle.jsx @@ -69,6 +69,7 @@ class Bundle extends PureComponent { this.setState({ mod: mod.default }); }) .catch((error) => { + console.error('Bundle fetching error:', error); this.setState({ mod: null }); }); }; From 8e00f7cc8fab9b447f80a27a972eef78186633ad Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 27 Mar 2026 17:28:29 +0100 Subject: [PATCH 069/335] Improve contrast for `text-warning` and `text-success` tokens (#38459) --- app/javascript/styles/mastodon/theme/_dark.scss | 4 ++-- app/javascript/styles/mastodon/theme/_light.scss | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/javascript/styles/mastodon/theme/_dark.scss b/app/javascript/styles/mastodon/theme/_dark.scss index 161524cdc434de..629c87e225e7da 100644 --- a/app/javascript/styles/mastodon/theme/_dark.scss +++ b/app/javascript/styles/mastodon/theme/_dark.scss @@ -18,9 +18,9 @@ --color-text-brand-on-inverted: var(--color-indigo-600); // legacy --color-text-error: var(--color-red-300); --color-text-on-error-base: var(--color-white); - --color-text-warning: var(--color-yellow-400); // legacy + --color-text-warning: var(--color-yellow-400); --color-text-on-warning-base: var(--color-white); - --color-text-success: var(--color-green-400); // legacy + --color-text-success: var(--color-green-400); --color-text-on-success-base: var(--color-white); --color-text-disabled: var(--color-grey-600); // legacy --color-text-on-disabled: var(--color-grey-400); // legacy diff --git a/app/javascript/styles/mastodon/theme/_light.scss b/app/javascript/styles/mastodon/theme/_light.scss index 5759fffd75076c..c4d7fc06394d30 100644 --- a/app/javascript/styles/mastodon/theme/_light.scss +++ b/app/javascript/styles/mastodon/theme/_light.scss @@ -18,9 +18,9 @@ --color-text-brand-on-inverted: var(--color-indigo-400); // legacy --color-text-error: var(--color-red-800); --color-text-on-error-base: var(--color-white); - --color-text-warning: var(--color-yellow-600); // legacy + --color-text-warning: var(--color-yellow-700); --color-text-on-warning-base: var(--color-white); - --color-text-success: var(--color-green-600); // legacy + --color-text-success: var(--color-green-700); --color-text-on-success-base: var(--color-white); --color-text-disabled: var(--color-grey-300); // legacy --color-text-on-disabled: var(--color-grey-200); // legacy From 77507d2c7c3cb21657807c5fc69a28c636a0997f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 30 Mar 2026 04:52:48 -0400 Subject: [PATCH 070/335] Add counting convenience methods on `BulkImport` (#38465) --- app/models/bulk_import.rb | 10 ++++++++- app/services/bulk_import_service.rb | 2 +- app/views/settings/imports/index.html.haml | 9 +++----- spec/models/bulk_import_spec.rb | 24 ++++++++++++++++++++++ 4 files changed, 37 insertions(+), 8 deletions(-) diff --git a/app/models/bulk_import.rb b/app/models/bulk_import.rb index e76f29bfc2ab15..79f47d11ddc49b 100644 --- a/app/models/bulk_import.rb +++ b/app/models/bulk_import.rb @@ -48,6 +48,14 @@ class BulkImport < ApplicationRecord scope :archival_completed, -> { where(created_at: ..ARCHIVE_PERIOD.ago) } scope :confirmation_missed, -> { state_unconfirmed.where(created_at: ..CONFIRM_PERIOD.ago) } + def failure_count + processed_items - imported_items + end + + def processing_complete? + processed_items == total_items + end + def self.progress!(bulk_import_id, imported: false) # Use `increment_counter` so that the incrementation is done atomically in the database BulkImport.increment_counter(:processed_items, bulk_import_id) @@ -55,6 +63,6 @@ def self.progress!(bulk_import_id, imported: false) # Since the incrementation has been done atomically, concurrent access to `bulk_import` is now benign bulk_import = BulkImport.find(bulk_import_id) - bulk_import.update!(state: :finished, finished_at: Time.now.utc) if bulk_import.processed_items == bulk_import.total_items + bulk_import.update!(state: :finished, finished_at: Time.now.utc) if bulk_import.processing_complete? end end diff --git a/app/services/bulk_import_service.rb b/app/services/bulk_import_service.rb index a361c7a3dac70c..8e0864a07f42bc 100644 --- a/app/services/bulk_import_service.rb +++ b/app/services/bulk_import_service.rb @@ -20,7 +20,7 @@ def call(import) import_lists! end - @import.update!(state: :finished, finished_at: Time.now.utc) if @import.processed_items == @import.total_items + @import.update!(state: :finished, finished_at: Time.now.utc) if @import.processing_complete? rescue @import.update!(state: :finished, finished_at: Time.now.utc) diff --git a/app/views/settings/imports/index.html.haml b/app/views/settings/imports/index.html.haml index 55421991e13173..e5195b74cc8c20 100644 --- a/app/views/settings/imports/index.html.haml +++ b/app/views/settings/imports/index.html.haml @@ -60,9 +60,6 @@ = l(import.created_at) %td - - num_failed = import.processed_items - import.imported_items - - if num_failed.positive? - - if import.state_finished? - = link_to num_failed, failures_settings_import_path(import, format: 'csv') - - else - = num_failed + - if import.failure_count.positive? + = link_to_if import.state_finished?, import.failure_count, failures_settings_import_path(import, format: :csv) do + = import.failure_count diff --git a/spec/models/bulk_import_spec.rb b/spec/models/bulk_import_spec.rb index a3bd01d2a85dec..4eb36aeb4645ca 100644 --- a/spec/models/bulk_import_spec.rb +++ b/spec/models/bulk_import_spec.rb @@ -39,4 +39,28 @@ end end end + + describe '#failure_count' do + subject { described_class.new(processed_items: 100, imported_items: 90).failure_count } + + it { is_expected.to eq(10) } + end + + describe '#processing_complete?' do + subject { Fabricate.build :bulk_import, processed_items:, total_items: } + + context 'when processed and total are the same' do + let(:processed_items) { 100 } + let(:total_items) { 100 } + + it { is_expected.to be_processing_complete } + end + + context 'when processed and total are not the same' do + let(:processed_items) { 100 } + let(:total_items) { 200 } + + it { is_expected.to_not be_processing_complete } + end + end end From ac69a3374c90410f30fab840689addc26351c265 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Mar 2026 11:37:48 +0200 Subject: [PATCH 071/335] New Crowdin Translations (automated) (#38470) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 3 +- app/javascript/mastodon/locales/da.json | 3 +- app/javascript/mastodon/locales/de.json | 11 +- app/javascript/mastodon/locales/el.json | 3 +- app/javascript/mastodon/locales/en-GB.json | 16 ++ app/javascript/mastodon/locales/es-AR.json | 3 +- app/javascript/mastodon/locales/es-MX.json | 5 +- app/javascript/mastodon/locales/es.json | 3 +- app/javascript/mastodon/locales/fi.json | 5 +- app/javascript/mastodon/locales/fr-CA.json | 4 +- app/javascript/mastodon/locales/fr.json | 4 +- app/javascript/mastodon/locales/ga.json | 4 +- app/javascript/mastodon/locales/gl.json | 3 +- app/javascript/mastodon/locales/he.json | 4 +- app/javascript/mastodon/locales/hu.json | 1 - app/javascript/mastodon/locales/io.json | 94 ++++++- app/javascript/mastodon/locales/is.json | 3 +- app/javascript/mastodon/locales/it.json | 5 +- app/javascript/mastodon/locales/ja.json | 8 + app/javascript/mastodon/locales/nan-TW.json | 31 ++- app/javascript/mastodon/locales/nl.json | 3 +- app/javascript/mastodon/locales/pl.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 3 +- app/javascript/mastodon/locales/ru.json | 163 +++++++++++- app/javascript/mastodon/locales/sq.json | 3 +- app/javascript/mastodon/locales/sv.json | 2 + app/javascript/mastodon/locales/tr.json | 4 +- app/javascript/mastodon/locales/vi.json | 23 +- app/javascript/mastodon/locales/zh-CN.json | 7 +- app/javascript/mastodon/locales/zh-TW.json | 3 +- config/locales/activerecord.io.yml | 12 + config/locales/de.yml | 9 +- config/locales/devise.fr-CA.yml | 6 +- config/locales/devise.fr.yml | 14 +- config/locales/devise.io.yml | 1 + config/locales/doorkeeper.fr.yml | 14 +- config/locales/doorkeeper.io.yml | 4 + config/locales/doorkeeper.vi.yml | 2 +- config/locales/es.yml | 2 +- config/locales/fi.yml | 64 ++++- config/locales/fr-CA.yml | 155 ++++++++---- config/locales/fr.yml | 259 ++++++++++++-------- config/locales/he.yml | 68 +++++ config/locales/it.yml | 44 ++++ config/locales/nan-TW.yml | 31 +++ config/locales/nl.yml | 19 ++ config/locales/ru.yml | 28 +++ config/locales/simple_form.es.yml | 2 +- config/locales/simple_form.fi.yml | 2 + config/locales/simple_form.fr-CA.yml | 18 +- config/locales/simple_form.fr.yml | 22 +- config/locales/simple_form.he.yml | 2 + config/locales/simple_form.it.yml | 2 + config/locales/simple_form.nl.yml | 1 + config/locales/simple_form.zh-CN.yml | 2 +- config/locales/vi.yml | 6 +- config/locales/zh-CN.yml | 2 +- 57 files changed, 972 insertions(+), 244 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 1dd5b1705bc142..467c6749ef031c 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Адхіліць", "account_edit.field_edit_modal.discard_message": "У Вас ёсць незахаваныя змены. Вы сапраўды хочаце адхіліць іх?", "account_edit.field_edit_modal.edit_title": "Рэдагаваць адвольнае поле", - "account_edit.field_edit_modal.limit_warning": "Перавышаны рэкамендаваны ліміт сімвалаў. Карыстальнікі мабільных прылад могуць не пабачыць Вашае поле цалкам.", + "account_edit.field_edit_modal.length_warning": "Перавышаны рэкамендаваны ліміт сімвалаў. Карыстальнікі мабільных прылад могуць не пабачыць Вашае поле цалкам.", "account_edit.field_edit_modal.link_emoji_warning": "Мы раім не ўжываць адвольныя эмодзі разам з url-спасылкамі. Адвольныя палі, якія ўтрымліваюць і тое, і другое, будуць адлюстраваныя выключна як тэкст, а не спасылкі, каб не блытаць карыстальнікаў.", "account_edit.field_edit_modal.name_hint": "Напрыклад, \"Асабісты Сайт\"", "account_edit.field_edit_modal.name_label": "Назва", @@ -700,6 +700,7 @@ "footer.source_code": "Прагледзець зыходны код", "footer.status": "Статус", "footer.terms_of_service": "Умовы выкарыстання", + "form_error.blank": "Поле не можа быць пустым.", "form_field.optional": "(неабавязкова)", "generic.saved": "Захавана", "getting_started.heading": "Пачатак працы", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index f9c186850c5959..352c716d23e9cd 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Kassér", "account_edit.field_edit_modal.discard_message": "Du har ændringer, der ikke er gemt. Er du sikker på, at du vil kassere dem?", "account_edit.field_edit_modal.edit_title": "Rediger brugerdefineret felt", - "account_edit.field_edit_modal.limit_warning": "Anbefalet tegngrænse overskredet. Mobilbrugere kan muligvis ikke se hele dit felt.", + "account_edit.field_edit_modal.length_warning": "Anbefalet tegngrænse overskredet. Mobilbrugere kan muligvis ikke se hele dit felt.", "account_edit.field_edit_modal.link_emoji_warning": "Vi fraråder brug af brugerdefinerede emoji i kombination med url'er. Brugerdefinerede felter, der indeholder begge dele, vises kun som tekst i stedet for som et link for at undgå forvirring hos brugerne.", "account_edit.field_edit_modal.name_hint": "F.eks. “Personligt websted”", "account_edit.field_edit_modal.name_label": "Etiket", @@ -700,6 +700,7 @@ "footer.source_code": "Vis kildekode", "footer.status": "Status", "footer.terms_of_service": "Tjenestevilkår", + "form_error.blank": "Feltet må ikke være tomt.", "form_field.optional": "(valgfri)", "generic.saved": "Gemt", "getting_started.heading": "Startmenu", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 76272095689745..36bd1a76d3563c 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -73,9 +73,9 @@ "account.go_to_profile": "Profil aufrufen", "account.hide_reblogs": "Geteilte Beiträge von @{name} ausblenden", "account.in_memoriam": "Zum Andenken.", - "account.joined_short": "Registriert am", + "account.joined_short": "Dabei seit", "account.languages": "Sprachen verwalten", - "account.link_verified_on": "Das Profil mit dieser E-Mail-Adresse wurde bereits am {date} bestätigt", + "account.link_verified_on": "Dieser Link wurde am {date} Uhr verifiziert", "account.locked_info": "Die Privatsphäre dieses Kontos wurde auf „geschützt“ gesetzt. Die Person bestimmt manuell, wer ihrem Profil folgen darf.", "account.media": "Medien", "account.mention": "@{name} erwähnen", @@ -83,7 +83,7 @@ "account.menu.block": "Konto blockieren", "account.menu.block_domain": "{domain} blockieren", "account.menu.copied": "Profillink in die Zwischenablage kopiert", - "account.menu.copy": "Link kopieren", + "account.menu.copy": "Profillink kopieren", "account.menu.direct": "Privat erwähnen", "account.menu.hide_reblogs": "Geteilte Beiträge in der Timeline ausblenden", "account.menu.mention": "Erwähnen", @@ -120,7 +120,7 @@ "account.node_modal.title": "Persönliche Notiz hinzufügen", "account.note.edit_button": "Bearbeiten", "account.note.title": "Persönliche Notiz (nur für dich sichtbar)", - "account.open_original_page": "Originalbeitrag öffnen", + "account.open_original_page": "Originalseite öffnen", "account.posts": "Beiträge", "account.posts_with_replies": "Beiträge & Antworten", "account.remove_from_followers": "@{name} als Follower entfernen", @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Verwerfen", "account_edit.field_edit_modal.discard_message": "Du hast Änderungen vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?", "account_edit.field_edit_modal.edit_title": "Zusatzfeld bearbeiten", - "account_edit.field_edit_modal.limit_warning": "Empfohlenes Zeichenlimit überschritten. Auf mobilen Endgeräten wird der Inhalt möglicherweise nicht vollständig angezeigt.", + "account_edit.field_edit_modal.length_warning": "Empfohlene Zeichenanzahl überschritten. Auf mobilen Geräten wird dieses Feld möglicherweise nicht vollständig angezeigt.", "account_edit.field_edit_modal.link_emoji_warning": "Das Verwenden von Emojis wird bei URLs nicht empfohlen. Die Zusatzfelder werden bei dieser Kombination nur als Text und nicht als Link dargestellt.", "account_edit.field_edit_modal.name_hint": "z. B. „Meine Website“", "account_edit.field_edit_modal.name_label": "Beschriftung", @@ -700,6 +700,7 @@ "footer.source_code": "Quellcode anzeigen", "footer.status": "Status", "footer.terms_of_service": "Nutzungsbedingungen", + "form_error.blank": "Feld darf nicht leer sein.", "form_field.optional": "(optional)", "generic.saved": "Gespeichert", "getting_started.heading": "Auf gehts!", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 4926d38f91bd2e..9158fcd74616c1 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Απόρριψη", "account_edit.field_edit_modal.discard_message": "Έχετε μη αποθηκευμένες αλλαγές. Σίγουρα θέλετε να τις απορρίψετε;", "account_edit.field_edit_modal.edit_title": "Επεξεργασία προσαρμοσμένου πεδίου", - "account_edit.field_edit_modal.limit_warning": "Υπέρβαση του συνιστώμενου ορίου χαρακτήρων. Οι χρήστες κινητών ενδέχεται να μην βλέπουν το πεδίο σας πλήρες.", + "account_edit.field_edit_modal.length_warning": "Υπέρβαση του συνιστώμενου ορίου χαρακτήρων. Οι χρήστες κινητών ενδέχεται να μην βλέπουν το πεδίο σας πλήρως.", "account_edit.field_edit_modal.link_emoji_warning": "Δεν συνιστούμε τη χρήση προσαρμοσμένων emoji σε συνδυασμό με URL. Τα προσαρμοσμένα πεδία που περιέχουν και τα δύο θα εμφανίζονται ως κείμενο μόνο αντί ως σύνδεσμος, προκειμένου να αποφευχθεί η σύγχυση του χρήστη.", "account_edit.field_edit_modal.name_hint": "Π.χ. “Προσωπική ιστοσελίδα”", "account_edit.field_edit_modal.name_label": "Ετικέτα", @@ -700,6 +700,7 @@ "footer.source_code": "Προβολή πηγαίου κώδικα", "footer.status": "Κατάσταση", "footer.terms_of_service": "Όροι υπηρεσίας", + "form_error.blank": "Το πεδίο δεν μπορεί να είναι κενό.", "form_field.optional": "(προαιρετικό)", "generic.saved": "Αποθηκεύτηκε", "getting_started.heading": "Ας ξεκινήσουμε", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 8946539592f418..4bb7898415faa6 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -141,6 +141,7 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications_short": "Unmute notifications", "account.unmute_short": "Unmute", + "account_edit.bio.add_label": "", "account_edit.bio.placeholder": "Add a short introduction to help others identify you.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Add bio", @@ -153,15 +154,22 @@ "account_edit.custom_fields.tip_title": "Tip: adding verified links", "account_edit.custom_fields.title": "Custom fields", "account_edit.custom_fields.verified_hint": "How do I add a verified link?", + "account_edit.display_name.add_label": "He", + "account_edit.display_name.edit_label": "Xs", "account_edit.display_name.placeholder": "Your display name is how your name appears on your profile and in timelines.", "account_edit.display_name.title": "Display name", "account_edit.featured_hashtags.placeholder": "Help others identify, and have quick access to, your favourite topics.", "account_edit.featured_hashtags.title": "Featured hashtags", + "account_edit.field_actions.delete": "Delete", + "account_edit.field_actions.edit": "Edit", "account_edit.field_delete_modal.confirm": "Are you sure you want to delete this custom field? This action can’t be undone.", "account_edit.field_delete_modal.delete_button": "Delete", "account_edit.field_delete_modal.title": "Delete custom field?", "account_edit.field_edit_modal.add_title": "Add custom field", + "account_edit.field_edit_modal.discard_confirm": "Confirm", + "account_edit.field_edit_modal.discard_message": "Discord them", "account_edit.field_edit_modal.edit_title": "Edit custom field", + "account_edit.field_edit_modal.length_warning": "Lenght_warning", "account_edit.field_edit_modal.link_emoji_warning": "We recommend against the use of custom emoji in combination with URLs. Custom fields containing both will display as text only instead of as a link, in order to prevent user confusion.", "account_edit.field_edit_modal.name_hint": "Eg “Personal website”", "account_edit.field_edit_modal.name_label": "Label", @@ -176,11 +184,14 @@ "account_edit.field_reorder_modal.drag_start": "Picked up field \"{item}\".", "account_edit.field_reorder_modal.handle_label": "Drag field \"{item}\"", "account_edit.field_reorder_modal.title": "Rearrange fields", + "account_edit.image_alt_modal.add_title": "Iphone xs", "account_edit.image_edit.add_button": "Add image", "account_edit.image_edit.alt_add_button": "Add alt text", "account_edit.image_edit.alt_edit_button": "Edit alt text", "account_edit.image_edit.remove_button": "Remove image", "account_edit.image_edit.replace_button": "Replace image", + "account_edit.item_list.delete": "Rifat Chowdhury", + "account_edit.item_list.edit": "Anas Chowdhury", "account_edit.name_modal.add_title": "Add display name", "account_edit.name_modal.edit_title": "Edit display name", "account_edit.profile_tab.button_label": "Customise", @@ -195,6 +206,10 @@ "account_edit.profile_tab.subtitle": "Customise the tabs on your profile and what they display.", "account_edit.profile_tab.title": "Profile tab settings", "account_edit.save": "Save", + "account_edit.upload_modal.back": "Iphone xs", + "account_edit.upload_modal.step_crop.zoom": "I'm ", + "account_edit.upload_modal.step_upload.button": "The only way", + "account_edit.upload_modal.step_upload.hint": "The only way I could do that was if you had to do a lot more work and then you would be done ", "account_edit.verified_modal.details": "Add credibility to your Mastodon profile by verifying links to personal websites. Here’s how it works:", "account_edit.verified_modal.invisible_link.details": "Add the link to your header. The important part is rel=\"me\" which prevents impersonation on websites with user-generated content. You can even use a link tag in the header of the page instead of {tag}, but the HTML must be accessible without executing JavaScript.", "account_edit.verified_modal.invisible_link.summary": "How do I make the link invisible?", @@ -321,6 +336,7 @@ "collections.account_count": "{count, plural, one {# account} other {# accounts}}", "collections.accounts.empty_description": "Add up to {count} accounts you follow", "collections.accounts.empty_title": "This collection is empty", + "collections.by_account": "Delete", "collections.collection_description": "Description", "collections.collection_name": "Name", "collections.collection_topic": "Topic", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 22a768e673572c..ac3dbb0d2e22c7 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Descartar", "account_edit.field_edit_modal.discard_message": "Tenés cambios sin guardar. ¿De verdad querés descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_warning": "Se excedió el límite recomendado de caracteres. Es posible que los usuarios en dispositivos móviles no vean tu campo completo.", + "account_edit.field_edit_modal.length_warning": "Se excedió el límite recomendado de caracteres. Es posible que los usuarios en dispositivos móviles no vean tu campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "No recomendamos el uso de emojis personalizados en combinación con direcciones web. Los campos personalizados que contengan ambos solo se mostrarán como texto en lugar de como enlace, con el fin de evitar la confusión del usuario.", "account_edit.field_edit_modal.name_hint": "Por ejemplo: «Sitio web personal»", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -700,6 +700,7 @@ "footer.source_code": "Ver código fuente", "footer.status": "Estado", "footer.terms_of_service": "Términos del servicio", + "form_error.blank": "El campo no puede estar en blanco.", "form_field.optional": "(opcional)", "generic.saved": "Guardado", "getting_started.heading": "Inicio de Mastodon", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 613487829abbf4..de58210b17bbba 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -156,7 +156,7 @@ "account_edit.custom_fields.tip_content": "Puedes añadir fácilmente credibilidad a tu cuenta de Mastodon verificando los enlaces a cualquier sitio web que poseas.", "account_edit.custom_fields.tip_title": "Consejo: Añadir enlaces verificados", "account_edit.custom_fields.title": "Campos personalizados", - "account_edit.custom_fields.verified_hint": "¿Cómo agrego un enlace verificado?", + "account_edit.custom_fields.verified_hint": "¿Cómo añado un enlace verificado?", "account_edit.display_name.add_label": "Añadir nombre para mostrar", "account_edit.display_name.edit_label": "Editar nombre para mostrar", "account_edit.display_name.placeholder": "Tu nombre de usuario es el nombre que aparece en tu perfil y en las líneas de tiempo.", @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Descartar", "account_edit.field_edit_modal.discard_message": "Tienes cambios sin guardar. ¿Estás seguro/a de que quieres descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_warning": "Se ha superado el límite de caracteres recomendado. Es posible que los usuarios de dispositivos móviles no vean el campo completo.", + "account_edit.field_edit_modal.length_warning": "Se ha superado el límite de caracteres recomendado. Es posible que los usuarios de dispositivos móviles no vean el campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "No recomendamos el uso de emojis personalizados en combinación con direcciones URL. Los campos personalizados que contengan ambos se mostrarán solo como texto en lugar de como un enlace, con el fin de evitar confusiones al usuario.", "account_edit.field_edit_modal.name_hint": "Por ejemplo, «sitio web personal»", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -700,6 +700,7 @@ "footer.source_code": "Ver código fuente", "footer.status": "Estado", "footer.terms_of_service": "Condiciones del servicio", + "form_error.blank": "El campo no puede quedar en blanco.", "form_field.optional": "(opcional)", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 12f04ee234b483..8e2ba946d8ac7c 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Descartar", "account_edit.field_edit_modal.discard_message": "Tienes cambios no guardados. ¿Seguro que quieres descartarlos?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_warning": "Se ha superado el límite recomendado de caracteres. Es posible que los usuarios móviles no vean el campo completo.", + "account_edit.field_edit_modal.length_warning": "Se ha superado el límite recomendado de caracteres. Es posible que los usuarios en dispositivos móviles no vean el campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos no usar emojis personalizados combinados con enlaces. Los campos personalizados que contengan ambos solo se mostrarán como texto en vez de un enlace, para evitar confusiones.", "account_edit.field_edit_modal.name_hint": "Ej. \"Web personal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -700,6 +700,7 @@ "footer.source_code": "Ver código fuente", "footer.status": "Estado", "footer.terms_of_service": "Términos del servicio", + "form_error.blank": "El campo no puede estar vacío.", "form_field.optional": "(opcional)", "generic.saved": "Guardado", "getting_started.heading": "Primeros pasos", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 632f8f54c1925f..95c36e0aa4735d 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -141,6 +141,7 @@ "account.unmute": "Kumoa käyttäjän @{name} mykistys", "account.unmute_notifications_short": "Kumoa ilmoitusten mykistys", "account.unmute_short": "Kumoa mykistys", + "account_edit.bio.add_label": "Lisää elämäkerta", "account_edit.bio.edit_label": "Muokkaa elämäkertaa", "account_edit.bio.placeholder": "Lisää lyhyt esittely, joka auttaa muita tunnistamaan sinut.", "account_edit.bio.title": "Elämäkerta", @@ -172,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Hylkää", "account_edit.field_edit_modal.discard_message": "Sinulla on tallentamattomia muutoksia. Haluatko varmasti hylätä ne?", "account_edit.field_edit_modal.edit_title": "Muokkaa mukautettua kenttää", - "account_edit.field_edit_modal.limit_warning": "Suositeltava merkkimäärä ylitetty. Mobiilikäyttäjät eivät välttämättä näe kenttää kokonaan.", + "account_edit.field_edit_modal.length_warning": "Suositeltava merkkimäärä ylitetty. Mobiilikäyttäjät eivät välttämättä näe kenttää kokonaan.", "account_edit.field_edit_modal.link_emoji_warning": "Emme suosittele käyttämään mukautettuja emojeita URL-osoitteiden kanssa. Molempia sisältävät mukautetut kentät näkyvät vain tekstinä linkin sijaan, jotta estetään käyttäjien sekaannus.", "account_edit.field_edit_modal.name_hint": "Esim. ”Henkilökohtainen verkkosivusto”", "account_edit.field_edit_modal.name_label": "Nimike", @@ -358,6 +359,7 @@ "collections.account_count": "{count, plural, one {# tili} other {# tiliä}}", "collections.accounts.empty_description": "Lisää enintään {count} seuraamaasi tiliä", "collections.accounts.empty_title": "Tämä kokoelma on tyhjä", + "collections.by_account": "koonnut {account_handle}", "collections.collection_description": "Kuvaus", "collections.collection_language": "Kieli", "collections.collection_language_none": "Ei mikään", @@ -698,6 +700,7 @@ "footer.source_code": "Näytä lähdekoodi", "footer.status": "Tila", "footer.terms_of_service": "Käyttöehdot", + "form_error.blank": "Kenttä ei voi olla tyhjä.", "form_field.optional": "(valinnainen)", "generic.saved": "Tallennettu", "getting_started.heading": "Näin pääset alkuun", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index bdac463c6bc27d..c26309a2270601 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Abandonner", "account_edit.field_edit_modal.discard_message": "Vos modifications n’ont pas été enregistrées. Voulez-vous vraiment les abandonner ?", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", - "account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", + "account_edit.field_edit_modal.length_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# compte} other {# comptes}}", "collections.accounts.empty_description": "Ajouter jusqu'à {count} comptes que vous suivez", "collections.accounts.empty_title": "Cette collection est vide", + "collections.by_account": "par {account_handle}", "collections.collection_description": "Description", "collections.collection_language": "Langue", "collections.collection_language_none": "Aucune", @@ -699,6 +700,7 @@ "footer.source_code": "Voir le code source", "footer.status": "État", "footer.terms_of_service": "Conditions d’utilisation", + "form_error.blank": "Le champ ne peut pas être vide.", "form_field.optional": "(facultatif)", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index d76f0f8d4f91ed..7987b77d00c5d2 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Abandonner", "account_edit.field_edit_modal.discard_message": "Vos modifications n’ont pas été enregistrées. Voulez-vous vraiment les abandonner ?", "account_edit.field_edit_modal.edit_title": "Modifier un champ personnalisé", - "account_edit.field_edit_modal.limit_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", + "account_edit.field_edit_modal.length_warning": "Le nombre de caractères dépasse la limite recommandée. Le champ peut ne pas s'afficher entièrement sur les téléphones.", "account_edit.field_edit_modal.link_emoji_warning": "Nous déconseillons l'usage d'émoji personnalisé avec les URL. Les champs personnalisés contenant les deux seront affichés comme du texte et non un lien, afin d'éviter toute confusion.", "account_edit.field_edit_modal.name_hint": "Par exemple « Site Web personnel »", "account_edit.field_edit_modal.name_label": "Libellé", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# compte} other {# comptes}}", "collections.accounts.empty_description": "Ajouter jusqu'à {count} comptes que vous suivez", "collections.accounts.empty_title": "Cette collection est vide", + "collections.by_account": "par {account_handle}", "collections.collection_description": "Description", "collections.collection_language": "Langue", "collections.collection_language_none": "Aucune", @@ -699,6 +700,7 @@ "footer.source_code": "Voir le code source", "footer.status": "État", "footer.terms_of_service": "Conditions d’utilisation", + "form_error.blank": "Le champ ne peut pas être vide.", "form_field.optional": "(facultatif)", "generic.saved": "Sauvegardé", "getting_started.heading": "Pour commencer", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 5f8ebf98b83270..35c35265a8932c 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Caith uait", "account_edit.field_edit_modal.discard_message": "Tá athruithe neamhshábháilte agat. An bhfuil tú cinnte gur mian leat iad a chaitheamh amach?", "account_edit.field_edit_modal.edit_title": "Cuir réimse saincheaptha in eagar", - "account_edit.field_edit_modal.limit_warning": "Sáraíodh an teorainn carachtar molta. B’fhéidir nach bhfeicfeadh úsáideoirí soghluaiste do réimse ina iomláine.", + "account_edit.field_edit_modal.length_warning": "Sáraíodh an teorainn carachtar molta. B’fhéidir nach bhfeicfeadh úsáideoirí soghluaiste do réimse ina iomláine.", "account_edit.field_edit_modal.link_emoji_warning": "Molaimid gan emoji saincheaptha a úsáid i gcomhar le Urlanna. Taispeánfar réimsí saincheaptha ina bhfuil an dá cheann mar théacs amháin seachas mar nasc, chun mearbhall úsáideoirí a sheachaint.", "account_edit.field_edit_modal.name_hint": "M.sh. “Suíomh Gréasáin pearsanta”", "account_edit.field_edit_modal.name_label": "Lipéad", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# cuntas} two {# cuntais} few {# cuntais} many {# cuntais} other {# cuntais}}", "collections.accounts.empty_description": "Cuir suas le {count} cuntas leis a leanann tú", "collections.accounts.empty_title": "Tá an bailiúchán seo folamh", + "collections.by_account": "le {account_handle}", "collections.collection_description": "Cur síos", "collections.collection_language": "Teanga", "collections.collection_language_none": "Dada", @@ -699,6 +700,7 @@ "footer.source_code": "Féach ar an gcód foinseach", "footer.status": "Stádas", "footer.terms_of_service": "Téarmaí seirbhíse", + "form_error.blank": "Ní féidir an réimse a fhágáil bán.", "form_field.optional": "(roghnach)", "generic.saved": "Sábháilte", "getting_started.heading": "Ag tosú amach", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 737ee8c81cebb2..e0acb888280b2c 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Desbotar", "account_edit.field_edit_modal.discard_message": "Tes cambios sen gardar. Tes certeza de querer desbotalos?", "account_edit.field_edit_modal.edit_title": "Editar campo persoal", - "account_edit.field_edit_modal.limit_warning": "Superouse o límite de caracteres recomendado. Nos móbiles podería non verse a información completa.", + "account_edit.field_edit_modal.length_warning": "Superouse o límite de caracteres recomendado. Nos móbiles podería non verse o campo completo.", "account_edit.field_edit_modal.link_emoji_warning": "Non recomendamos o uso de emojis persoais combinados con URLs. Os campos persoais que conteñen ambos móstranse só como texto e non como unha ligazón, para evitar a confusión de quen os lea.", "account_edit.field_edit_modal.name_hint": "Ex. \"Páxina web persoal\"", "account_edit.field_edit_modal.name_label": "Etiqueta", @@ -700,6 +700,7 @@ "footer.source_code": "Ver código fonte", "footer.status": "Estado", "footer.terms_of_service": "Condicións do servizo", + "form_error.blank": "O campo non pode quedar baleiro.", "form_field.optional": "(optativo)", "generic.saved": "Gardado", "getting_started.heading": "Primeiros pasos", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 85c8a432b64ddf..70749b8bd9e8b6 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "השלך", "account_edit.field_edit_modal.discard_message": "יש שינויים שלא נשמרו. לסלק אותם?", "account_edit.field_edit_modal.edit_title": "עריכת שדה מותאם אישית", - "account_edit.field_edit_modal.limit_warning": "עברת את מספר התווים המירבי המומלץ. משתמשים בנייד עלולים שלא לראות את השדה המלא.", + "account_edit.field_edit_modal.length_warning": "עברת את מספר התווים המירבי המומלץ. משתמשים בנייד עלולים שלא לראות את השדה המלא.", "account_edit.field_edit_modal.link_emoji_warning": "אנו ממליצים נגד שימוש באמוג'י ייחודיים ביחד עם URL. שדות מיוחדים שמכילים את שניהם יופיעו כמלל בלבד ולא כקישור, כדי למנוע בלבול משתמשים.", "account_edit.field_edit_modal.name_hint": "למשל \"אתר אישי\"", "account_edit.field_edit_modal.name_label": "תווית", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {חשבון אחד} other {# חשבונות}}", "collections.accounts.empty_description": "להוסיף עד ל־{count} חשבונות שאתם עוקבים אחריהם", "collections.accounts.empty_title": "האוסף הזה ריק", + "collections.by_account": "מאת {account_handle}", "collections.collection_description": "תיאור", "collections.collection_language": "שפה", "collections.collection_language_none": "לא מצוין", @@ -699,6 +700,7 @@ "footer.source_code": "צפיה בקוד המקור", "footer.status": "מצב", "footer.terms_of_service": "תנאי השירות", + "form_error.blank": "שדות לא יכולים להשאר ריקים.", "form_field.optional": "(אפשרות)", "generic.saved": "נשמר", "getting_started.heading": "בואו נתחיל", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index e362f28d52c16a..d7dda6b91871a6 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -173,7 +173,6 @@ "account_edit.field_edit_modal.discard_confirm": "Elvetés", "account_edit.field_edit_modal.discard_message": "Nem mentett módosításaid vannak. Biztos, hogy elveted?", "account_edit.field_edit_modal.edit_title": "Egyéni mező szerkesztése", - "account_edit.field_edit_modal.limit_warning": "Javasolt karakterkorlát túllépve. A mobilos felhasználók lehet, hogy nem fogják látni a teljes mezőt.", "account_edit.field_edit_modal.link_emoji_warning": "Nem javasoljuk az egyéni emodzsik és webcímek együttes használatát. A mindkettőt tartalmazó egyéni mezők a felhasználók megzavarásának elkerülése érdekében csak szövegként jelennek meg, nem hivatkozásként.", "account_edit.field_edit_modal.name_hint": "Például „Személyes webhely”", "account_edit.field_edit_modal.name_label": "Címke", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 9254164374f6fd..c0bbf7f4ffa554 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -8,6 +8,7 @@ "about.domain_blocks.silenced.title": "Limitizita", "about.domain_blocks.suspended.explanation": "Nula informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla.", "about.domain_blocks.suspended.title": "Restriktita", + "about.language_label": "Linguo", "about.not_available": "Ca informo ne igesis che ca servilo.", "about.powered_by": "Necentraligita sociala ret quo povigesas da {mastodon}", "about.rules": "Servilreguli", @@ -45,6 +46,7 @@ "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.", "account.media": "Audvidaji", "account.mention": "Mencionar @{name}", + "account.menu.share": "Kunhavigez…", "account.moved_to": "{name} indikis ke lua nova konto es nune:", "account.mute": "Celar @{name}", "account.mute_notifications_short": "Silencigez avizi", @@ -67,6 +69,7 @@ "account.unmute": "Ne plus celar @{name}", "account.unmute_notifications_short": "Dessilencigez avizi", "account.unmute_short": "Desilencigez", + "account_edit.custom_fields.placeholder": "Adjuntez vua pronomi, externa ligili o altra irgo quan vu volas kunhavigar.", "account_note.placeholder": "Klikez por adjuntar noto", "admin.dashboard.daily_retention": "Dia uzantoretenseso pos registro", "admin.dashboard.monthly_retention": "Monata uzantoreteneso pos registro", @@ -90,11 +93,17 @@ "alt_text_modal.describe_for_people_with_visual_impairments": "Priskribar co por personi kun viddeskapableso…", "alt_text_modal.done": "Finis", "announcement.announcement": "Anunco", + "annual_report.shared_page.donate": "Donacez", + "annual_report.shared_page.footer": "Igita kun {heart} da la grupo di Mastodon", + "annual_report.shared_page.footer_server_info": "{username} uzas {domain}, un de multa komunitati quin povizita da Mastodon.", "annual_report.summary.most_used_app.most_used_app": "maxim uzita aplikajo", "annual_report.summary.most_used_hashtag.most_used_hashtag": "maxim uzita gretvorto", "annual_report.summary.new_posts.new_posts": "nova afishi", "annual_report.summary.percentile.text": "To pozas vu sur la supro di uzanti di {domain}.", "annual_report.summary.percentile.we_wont_tell_bernie": "Ni ne dicas ad Bernio.", + "annual_report.summary.share_elsewhere": "Havigez ad altra loki", + "annual_report.summary.share_message": "Me ganas la persontipo {archetype}!", + "annual_report.summary.share_on_mastodon": "Kunhavigez che Mastodon", "attachments_list.unprocessed": "(neprocedita)", "audio.hide": "Celez audio", "block_modal.remote_users_caveat": "Ni questionos {domain} di la servilo por respektar vua decido. Publika posti forsan ankore estas videbla a neenirinta uzanti.", @@ -125,6 +134,15 @@ "closed_registrations_modal.find_another_server": "Trovar altra servilo", "closed_registrations_modal.preamble": "Mastodon es descentraligita, do on povas krear konto che irga servilo e sequar e interagar kun irgu che ca servilo. On mem povas operacar servilo ipse!", "closed_registrations_modal.title": "Krear konto che Mastodon", + "collection.share_modal.share_link_label": "Invitkunhavigligilo", + "collection.share_modal.share_via_post": "Afishigez che Mastodon", + "collection.share_modal.share_via_system": "Kunhavigez ad…", + "collection.share_modal.title": "Kunhavigez kolektajo", + "collection.share_modal.title_new": "Kunhavigez vua nova kolektajo!", + "collection.share_template_other": "Videz ca splendida kolektajo: {link}", + "collection.share_template_own": "Videz mia nova kolektajo: {link}", + "collections.create_a_collection_hint": "Kreez kolektajo por rekomendar o kunhavigez vua favoriza konti kun altri.", + "collections.detail.share": "Kunhavigez ca kolektajo", "column.about": "Pri co", "column.blocks": "Blokusita uzeri", "column.bookmarks": "Lektosigni", @@ -200,9 +218,21 @@ "confirmations.missing_alt_text.secondary": "Mesajar irgamaniere", "confirmations.missing_alt_text.title": "Ka adjuntar alternativa texto?", "confirmations.mute.confirm": "Silencigez", + "confirmations.private_quote_notify.cancel": "Retro ad redakto", + "confirmations.private_quote_notify.confirm": "Publikigez afisho", + "confirmations.private_quote_notify.do_not_show_again": "Ne montrez ca mesajo ankorfoye ad me", + "confirmations.private_quote_notify.message": "La persono quan vua citas e altra mencioni esar savigos e povos vidar vua afisho, mem se li ne sequas vua.", + "confirmations.private_quote_notify.title": "Ka kunhavigez kun sequanti e mencionita uzanti?", + "confirmations.quiet_post_quote_info.dismiss": "Ne memorigez me ankorfoye", + "confirmations.quiet_post_quote_info.got_it": "Komprenas", + "confirmations.quiet_post_quote_info.message": "Kande citar deslauta publika afisho, vua afisho esar celitos de tendenca tempolinei.", + "confirmations.quiet_post_quote_info.title": "Citas deslauta publika afishi", "confirmations.redraft.confirm": "Efacez e riskisez", "confirmations.redraft.message": "Ka vu certe volas efacar ca posto e riskisigar ol? Favoriziti e repeti esos perdita, e respondi al posto originala esos orfanigita.", "confirmations.redraft.title": "Ka efacar & riskisar posto?", + "confirmations.revoke_quote.confirm": "Efacez afisho", + "confirmations.revoke_quote.message": "Ca ago ne povas esar retroagar.", + "confirmations.revoke_quote.title": "Ka efacez afisho?", "confirmations.unfollow.confirm": "Desequez", "content_warning.hide": "Celez posto", "content_warning.show": "Montrez nur", @@ -290,6 +320,7 @@ "errors.unexpected_crash.copy_stacktrace": "Kopiez amastraso a klipplanko", "errors.unexpected_crash.report_issue": "Reportigez problemo", "explore.suggested_follows": "Personi", + "explore.title": "Tendenca", "explore.trending_links": "Novaji", "explore.trending_statuses": "Posti", "explore.trending_tags": "Hashtagi", @@ -366,6 +397,7 @@ "hints.profiles.see_more_followers": "Vidar plu multa sequanti sur {domain}", "hints.profiles.see_more_follows": "Vidar plu multa sequati sur {domain}", "hints.profiles.see_more_posts": "Vidar plu multa posti sur {domain}", + "home.column_settings.show_quotes": "Montrez citi", "home.column_settings.show_reblogs": "Montrar repeti", "home.column_settings.show_replies": "Montrar respondi", "home.hide_announcements": "Celez anunci", @@ -402,6 +434,7 @@ "keyboard_shortcuts.description": "Deskripto", "keyboard_shortcuts.down": "to move down in the list", "keyboard_shortcuts.enter": "to open status", + "keyboard_shortcuts.explore": "Apertez tendenca tempolineo", "keyboard_shortcuts.favourite": "Favorizez ca posto", "keyboard_shortcuts.favourites": "Apertez listo di favoriziti", "keyboard_shortcuts.federated": "to open federated timeline", @@ -417,6 +450,7 @@ "keyboard_shortcuts.open_media": "Desklozar audvidaji", "keyboard_shortcuts.pinned": "Desklozar listo di adpinglita afishi", "keyboard_shortcuts.profile": "to open author's profile", + "keyboard_shortcuts.quote": "Citez afisho", "keyboard_shortcuts.reply": "to reply", "keyboard_shortcuts.requests": "to open follow requests list", "keyboard_shortcuts.search": "to focus search", @@ -495,6 +529,7 @@ "navigation_bar.opened_in_classic_interface": "Posti, konti e altra pagini specifika apertesas en la retovidilo klasika.", "navigation_bar.preferences": "Preferi", "navigation_bar.search": "Serchez", + "navigation_bar.search_trends": "Sercho / Tendenco", "not_signed_in_indicator.not_signed_in": "Vu mustas enirar por acesar ca moyeno.", "notification.admin.report": "{name} raportizis {target}", "notification.admin.report_account": "{name} raportis {count, plural,one {1 posto} other {# posti}} de {target} pro {category}", @@ -516,6 +551,7 @@ "notification.label.mention": "Mencionez", "notification.label.private_mention": "Privata menciono", "notification.label.private_reply": "Privata respondo", + "notification.label.quote": "{name} citis vua afisho", "notification.label.reply": "Respondez", "notification.mention": "Mencionez", "notification.mentioned_you": "{name} mencionis vu", @@ -530,6 +566,7 @@ "notification.moderation_warning.action_suspend": "Vua konto restriktesis.", "notification.own_poll": "Vua votinquesto fineskis", "notification.poll": "Votinquesto ube vu votis fineskis", + "notification.quoted_update": "{name} redaktis afisho quan vu citas", "notification.reblog": "{name} repetis tua mesajo", "notification.reblog.name_and_others_with_link": "{name} e {count, plural,one {# altru} other {#altri}} repetis vua posto", "notification.relationships_severance_event": "Desganis konekteso kun {name}", @@ -573,6 +610,7 @@ "notifications.column_settings.mention": "Mencioni:", "notifications.column_settings.poll": "Votinquestorezulti:", "notifications.column_settings.push": "Pulsavizi", + "notifications.column_settings.quote": "Citi:", "notifications.column_settings.reblog": "Repeti:", "notifications.column_settings.show": "Montrar en kolumno", "notifications.column_settings.sound": "Plear sono", @@ -646,10 +684,20 @@ "privacy.private.short": "Sequanti", "privacy.public.long": "Ulu de e ne de Mastodon", "privacy.public.short": "Publike", + "privacy.quote.anyone": "{visibility}, citi permisita", + "privacy.quote.disabled": "{visibility}, citi despermisita", + "privacy.quote.limited": "{visibility}, citi limitizita", "privacy.unlisted.additional": "Co kondutas exakte kam publika, ecepte la posto ne aparos en nuna flui o gretvorti, exploro, o sercho di Mastodon, mem se vu esas volunta totkonte.", + "privacy.unlisted.long": "Celita de Mastodon-serchrezulti, tendenci e publika tempolinei", "privacy.unlisted.short": "Deslauta publiko", "privacy_policy.last_updated": "Antea novajo ye {date}", "privacy_policy.title": "Privatesguidilo", + "quote_error.edit": "Citi ne povas esar adjuntar kande redaktar afisho.", + "quote_error.poll": "Cito ne esas permisita kun votinquesti.", + "quote_error.private_mentions": "Cito ne esas permisita kun direta mencioni.", + "quote_error.quote": "Nur un cito samtempe esas permisita.", + "quote_error.unauthorized": "Vu ne esas yurizita por citar ca afisho.", + "quote_error.upload": "Cito ne esas permisita kun audvidajatachaji.", "recommended": "Rekomendata", "refresh": "Rifreshez", "regeneration_indicator.please_stand_by": "Vartez.", @@ -665,6 +713,9 @@ "relative_time.minutes": "{number}m", "relative_time.seconds": "{number}s", "relative_time.today": "hodie", + "remove_quote_hint.button_label": "Komprenas", + "remove_quote_hint.message": "Vu povas agar ol de la {icon} preferajmenuo.", + "remove_quote_hint.title": "Ka volas efacar vua citita afisho?", "reply_indicator.attachments": "{count, plural, one {# addonajo} other {# addonaji}}", "reply_indicator.cancel": "Nihiligar", "reply_indicator.poll": "Votinquesto", @@ -755,10 +806,13 @@ "status.admin_account": "Apertez jerintervizajo por @{name}", "status.admin_domain": "Apertez jerintervizajo por {domain}", "status.admin_status": "Open this status in the moderation interface", + "status.all_disabled": "Dishavigi e citi esas desaktivigita", "status.block": "Restriktez @{name}", "status.bookmark": "Lektosigno", "status.cancel_reblog_private": "Desrepetez", + "status.cannot_quote": "Vu ne esas permisita citar ca afisho", "status.cannot_reblog": "Ca posto ne povas repetesar", + "status.contains_quote": "Kontenas cito", "status.continued_thread": "Durigita postaro", "status.copy": "Copy link to status", "status.delete": "Efacar", @@ -783,18 +837,45 @@ "status.mute_conversation": "Silencigez konverso", "status.open": "Detaligar ca mesajo", "status.pin": "Pinglagez che profilo", + "status.quote": "Citez", + "status.quote.cancel": "Anulez cito", + "status.quote_error.blocked_account_hint.title": "Ca afisho esas celita por ke vu blokusis @{name}.", + "status.quote_error.blocked_domain_hint.title": "Ca afisho esas celita por ke vu blokusis @{domain}.", + "status.quote_error.filtered": "Celita por un de vua filtrili", + "status.quote_error.limited_account_hint.action": "Montrez nure", + "status.quote_error.limited_account_hint.title": "Ca konto esas celita da jeranti di {domain}.", + "status.quote_error.muted_account_hint.title": "Ca afisho esas celita por ke vu silentigis @{name}.", + "status.quote_error.not_available": "Profilo esas nedisponebla", + "status.quote_error.pending_approval": "Afisho pendas", + "status.quote_error.pending_approval_popout.body": "Che Mastodon, vu povas regar ka ulu povas citar vu.", + "status.quote_error.revoked": "Afisho esas efacita da afishiganto", + "status.quote_followers_only": "Nur sequanti povas citar ca afisho", + "status.quote_manual_review": "Afishiganto permanue kontrolos", + "status.quote_noun": "Cito", + "status.quote_policy_change": "Chanjez persono quan povas citar", + "status.quote_post_author": "Citis afisho da @{name}", + "status.quote_private": "Privata afishi ne povas esar citita", + "status.quotes.empty": "Nulu citas ca afisho ankore.", + "status.quotes.local_other_disclaimer": "Citi quan esar desaprobita da afishiganto ne esar montrita.", + "status.quotes.remote_other_disclaimer": "Nur citi de {domain} certe esas montrita hike.", + "status.quotes_count": "{count, plural,one {{counter} cito} other {{counter} citi}}", "status.read_more": "Lektez plu", "status.reblog": "Repetez", + "status.reblog_or_quote": "Dishavigez o citez", + "status.reblog_private": "Ankorfoye kunhavigez kun vua sequanti", "status.reblogged_by": "{name} repetis", "status.reblogs.empty": "Nulu ja repetis ca posto. Kande ulu facas lo, lu montresos hike.", "status.redraft": "Efacez e riskisigez", "status.remove_bookmark": "Forigar lektosigno", "status.remove_favourite": "Forigar de priziti", + "status.remove_quote": "Efacez", "status.replied_in_thread": "Respondesis en postaro", "status.replied_to": "Respondis a {name}", "status.reply": "Respondar", "status.replyAll": "Respondar a filo", "status.report": "Denuncar @{name}", + "status.request_quote": "Demandez cito", + "status.revoke_quote": "Efacez mea afisho de afisho da @{name}", "status.sensitive_warning": "Trubliva kontenajo", "status.share": "Partigez", "status.show_less_all": "Montrez min por omno", @@ -827,6 +908,7 @@ "upload_button.label": "Adjuntar imaji, video o sondosiero", "upload_error.limit": "Dosieradkarglimito ecesesis.", "upload_error.poll": "Dosieradkargo ne permisesas kun votinquesti.", + "upload_error.quote": "Dosieradkargo ne esas permisita kun citi.", "upload_form.drag_and_drop.instructions": "Por tenar audvidajaddonajo, presez spaco o eniro. Presez spaco o eniro denove por destenar la audvidajatachajo en olua nova loko, o presez eskapo por nuligar.", "upload_form.drag_and_drop.on_drag_cancel": "Tiro nuligesis.", "upload_form.drag_and_drop.on_drag_end": "Audvidajaddonajo {item} destenesis.", @@ -843,5 +925,15 @@ "video.fullscreen": "Plena skreno", "video.hide": "Celez video", "video.pause": "Pauzez", - "video.play": "Pleez" + "video.play": "Pleez", + "visibility_modal.direct_quote_warning.text": "Se vu retenas la nuna preferaji, la enpozita cito esas chanjita ad ligilo.", + "visibility_modal.direct_quote_warning.title": "Citi ne povas esar enpozita en privata mencioni", + "visibility_modal.helper.direct_quoting": "Privata mencioni quan esas igita che Mastodon ne povas mencionita da altri.", + "visibility_modal.helper.privacy_private_self_quote": "Suciti di privata afishi ne povas esar publikigita.", + "visibility_modal.helper.private_quoting": "Nursequanta afishi quan igita che Mastodon ne povas esar citita da altri.", + "visibility_modal.helper.unlisted_quoting": "Kande personi citas vu, anke lia afisho esar celitos de tendenca tempolinei.", + "visibility_modal.quote_followers": "Nur sequanti", + "visibility_modal.quote_label": "Qua povas citar", + "visibility_modal.quote_nobody": "Nur me", + "visibility_modal.quote_public": "Irgu" } diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index c62f7554d3cd41..77f4c43ba4edea 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Henda", "account_edit.field_edit_modal.discard_message": "Þú ert með óvistaðar breytingar, ertu viss um að þú viljir henda þeim?", "account_edit.field_edit_modal.edit_title": "Breyta sérsniðnum reit", - "account_edit.field_edit_modal.limit_warning": "Hámarksfjölda stafa er náð. Farsímanotendur ná mögulega ekki að sjá allan reitinn hjá þér.", + "account_edit.field_edit_modal.length_warning": "Hámarksfjölda stafa er náð. Farsímanotendur ná mögulega ekki að sjá allan reitinn hjá þér.", "account_edit.field_edit_modal.link_emoji_warning": "Við mælum gegn því að nota sérsniðin tjáningartákn saman með vefslóðum. Sérsniðnir reitir sem innihalda hvort tveggja munu birtast sem einungis texti í stað þess að vera tenglar, til að koma í veg fyrir að notendur taki annað í misgripum fyrir hitt.", "account_edit.field_edit_modal.name_hint": "T.d. \"Eigið vefsvæði\"", "account_edit.field_edit_modal.name_label": "Skýring", @@ -700,6 +700,7 @@ "footer.source_code": "Skoða frumkóða", "footer.status": "Staða", "footer.terms_of_service": "Þjónustuskilmálar", + "form_error.blank": "Reitur má ekki vera auður.", "form_field.optional": "(valfrjálst)", "generic.saved": "Vistað", "getting_started.heading": "Komast í gang", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 8899776c74a43c..6c01695859ff16 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Abbandona", "account_edit.field_edit_modal.discard_message": "Sono presenti modifiche non salvate. Vuoi davvero eliminarle?", "account_edit.field_edit_modal.edit_title": "Modifica campo personalizzato", - "account_edit.field_edit_modal.limit_warning": "Il limite di caratteri raccomandato è stato superato. Gli utenti da dispositivi mobili potrebbero non visualizzare il tuo campo per intero.", + "account_edit.field_edit_modal.length_warning": "Il limite di caratteri raccomandato è stato superato. Gli utenti da dispositivi mobili potrebbero non visualizzare il tuo campo per intero.", "account_edit.field_edit_modal.link_emoji_warning": "Sconsigliamo l'uso di emoji personalizzate in combinazione con gli URL. I campi personalizzati che contengono entrambi verranno visualizzati solo come testo anziché come link, in modo da evitare confusione nell'utente.", "account_edit.field_edit_modal.name_hint": "Per esempio: “Sito web personale”", "account_edit.field_edit_modal.name_label": "Etichetta", @@ -700,6 +700,7 @@ "footer.source_code": "Visualizza il codice sorgente", "footer.status": "Stato", "footer.terms_of_service": "Termini di servizio", + "form_error.blank": "Il campo non può essere vuoto.", "form_field.optional": "(opzionale)", "generic.saved": "Salvato", "getting_started.heading": "Per iniziare", @@ -860,7 +861,7 @@ "navigation_bar.collections": "Collezioni", "navigation_bar.direct": "Menzioni private", "navigation_bar.domain_blocks": "Domini bloccati", - "navigation_bar.favourites": "Preferiti", + "navigation_bar.favourites": "Apprezzamenti", "navigation_bar.filters": "Parole silenziate", "navigation_bar.follow_requests": "Richieste di seguirti", "navigation_bar.followed_tags": "Hashtag seguiti", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index add5561977398a..4e225422c60533 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -14,9 +14,16 @@ "about.powered_by": "{mastodon}による分散型ソーシャルメディア", "about.rules": "サーバーのルール", "account.account_note_header": "自分用メモ", + "account.activity": "アクティビティ", + "account.add_note": "個人的なメモを追加する", "account.add_or_remove_from_list": "リストから追加または外す", + "account.badges.admin": "管理者", + "account.badges.blocked": "ブロック中", "account.badges.bot": "Bot", + "account.badges.domain_blocked": "ブロック中のドメイン", "account.badges.group": "Group", + "account.badges.muted": "ミュート中", + "account.badges.muted_until": "{until} までミュート中", "account.block": "@{name}さんをブロック", "account.block_domain": "{domain}全体をブロック", "account.block_short": "ブロック", @@ -27,6 +34,7 @@ "account.direct": "@{name}さんに非公開でメンション", "account.disable_notifications": "@{name}さんの投稿時の通知を停止", "account.domain_blocking": "ブロックしているドメイン", + "account.edit_note": "個人的なメモを編集する", "account.edit_profile": "プロフィール編集", "account.edit_profile_short": "編集", "account.enable_notifications": "@{name}さんの投稿時に通知", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index 6da1010d08fc78..f5198b730625a9 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -141,27 +141,39 @@ "account.unmute": "取消消音 @{name}", "account.unmute_notifications_short": "Kā通知取消消音", "account.unmute_short": "取消消音", + "account_edit.bio.add_label": "加添個人紹介", + "account_edit.bio.edit_label": "編個人紹介", "account_edit.bio.placeholder": "加一段短紹介,幫tsān別lâng認捌lí。", "account_edit.bio.title": "個人紹介", "account_edit.bio_modal.add_title": "加添個人紹介", "account_edit.bio_modal.edit_title": "編個人紹介", "account_edit.column_button": "做好ah", "account_edit.column_title": "編輯個人資料", + "account_edit.custom_fields.add_label": "加框á", + "account_edit.custom_fields.edit_label": "編框á", "account_edit.custom_fields.placeholder": "加lí ê代名詞、外部連結,á是其他lí beh分享ê。", "account_edit.custom_fields.reorder_button": "重排框á", "account_edit.custom_fields.tip_content": "Lí通用驗證連kàu lí 所有ê網站ê連結,來增加lí ê Mastodon口座ê通信ê程度。", "account_edit.custom_fields.tip_title": "撇步:加驗證過ê連結", "account_edit.custom_fields.title": "自訂欄", "account_edit.custom_fields.verified_hint": "我beh án-tsuánn加驗證過ê連結?", + "account_edit.display_name.add_label": "加添顯示ê名", + "account_edit.display_name.edit_label": "編顯示ê名", "account_edit.display_name.placeholder": "Lí ê顯示ê名是lí ê名佇lí ê個人資料kap時間線出現ê方式。", "account_edit.display_name.title": "顯示ê名", + "account_edit.featured_hashtags.edit_label": "加hashtag", "account_edit.featured_hashtags.placeholder": "幫tsān別lâng認捌,kap緊緊接近使用lí收藏ê主題。", "account_edit.featured_hashtags.title": "特色ê hashtag", + "account_edit.field_actions.delete": "Thâi掉框á", + "account_edit.field_actions.edit": "編框á", "account_edit.field_delete_modal.confirm": "Lí敢確定beh thâi掉tsit ê自訂ê框á?Tsit ê動作bē當改倒轉。", "account_edit.field_delete_modal.delete_button": "Thâi掉", "account_edit.field_delete_modal.title": "敢beh thâi掉自訂ê框á?", "account_edit.field_edit_modal.add_title": "加自訂ê框á", + "account_edit.field_edit_modal.discard_confirm": "棄sak", + "account_edit.field_edit_modal.discard_message": "Lí有iáu bē儲存ê改變。Lí kám確定想欲棄sak in?", "account_edit.field_edit_modal.edit_title": "編自訂ê框á", + "account_edit.field_edit_modal.length_warning": "建議ê字數限制超過ah。行動設備ê用者可能bē當讀著kui个框á ê內容。", "account_edit.field_edit_modal.link_emoji_warning": "Lán無建議佇URL內底用自訂ê emoji。為著避免用者舞花去,自訂ê框á若包含自訂emoji kap URL,kan-ta ē顯示做文字。", "account_edit.field_edit_modal.name_hint": "例:「個人網站」", "account_edit.field_edit_modal.name_label": "標簽", @@ -190,6 +202,8 @@ "account_edit.image_edit.alt_edit_button": "編說明文字", "account_edit.image_edit.remove_button": "Suá掉圖片", "account_edit.image_edit.replace_button": "取代圖片", + "account_edit.item_list.delete": "Thâi {name}", + "account_edit.item_list.edit": "編 {name}", "account_edit.name_modal.add_title": "加添顯示ê名", "account_edit.name_modal.edit_title": "編顯示ê名", "account_edit.profile_tab.button_label": "自訂", @@ -212,6 +226,10 @@ "account_edit.upload_modal.step_upload.dragging": "Giú kàu tsia傳上去", "account_edit.upload_modal.step_upload.header": "揀圖片", "account_edit.upload_modal.step_upload.hint": "WEBP、PNG、GIF á是 JPG 格式,上大 {limit}MB。{br}圖會伸kiu kàu {width}x{height} px。", + "account_edit.upload_modal.title_add.avatar": "加個人資料ê相", + "account_edit.upload_modal.title_add.header": "加封面ê相片", + "account_edit.upload_modal.title_replace.avatar": "替換個人資料ê相", + "account_edit.upload_modal.title_replace.header": "替換封面ê相片", "account_edit.verified_modal.details": "用驗證連kàu個人網站ê連結來加添lí ê Mastodon個人檔案ê通信ê程度。下kha是運作ê方法:", "account_edit.verified_modal.invisible_link.details": "加連結kàu lí ê網頁頭(header)。上重要ê部份是 rel=\"me\",伊防止通過用者生成ê網站內容來做假包。Lí甚至佇網頁ê header毋免用 {tag},反轉用link標簽,但是HTML定著佇無執行JavaScript ê時陣,就ē當接近使用。", "account_edit.verified_modal.invisible_link.summary": "Án-tsuánn khàm掉tsit ê連結?", @@ -220,10 +238,13 @@ "account_edit.verified_modal.step2.header": "Kā lí ê網站加做自訂ê框á", "account_edit.verified_modal.title": "Án-tsuánn加驗證過ê連結", "account_edit_tags.add_tag": "加 #{tagName}", - "account_edit_tags.help_text": "收藏ê hashtag幫tsān用者發現kap hām lí ê個人資料互動。In會成做過濾器,佇lí ê個人資料頁ê活動內底出現。", + "account_edit_tags.column_title": "編標簽", + "account_edit_tags.help_text": "特色ê hashtag幫tsān用者發現kap hām lí ê個人資料互動。In會成做過濾器,佇lí ê個人資料頁ê活動內底出現。", + "account_edit_tags.max_tags_reached": "Lí已經加kàu特色ê hashtag數ê盡磅ah。", "account_edit_tags.search_placeholder": "編輯hashtag……", "account_edit_tags.suggestions": "建議:", "account_edit_tags.tag_status_count": "{count, plural, other {# 篇PO文}}", + "account_list.total": "{total, plural, other {# ê口座}}", "account_note.placeholder": "Tshi̍h tse加註kha", "admin.dashboard.daily_retention": "註冊以後ê用者維持率(用kang計算)", "admin.dashboard.monthly_retention": "註冊以後ê用者維持率", @@ -338,6 +359,7 @@ "collections.account_count": "{count, plural, other {# ê口座}}", "collections.accounts.empty_description": "加lí跟tuè ê口座,上tsē {count} ê", "collections.accounts.empty_title": "收藏內底無半項", + "collections.by_account": "tuì {account_handle}", "collections.collection_description": "說明", "collections.collection_language": "語言", "collections.collection_language_none": "無", @@ -618,6 +640,10 @@ "featured_carousel.header": "{count, plural, one {{counter} 篇} other {{counter} 篇}} 釘起來ê PO文", "featured_carousel.slide": "{max, number} 篇PO文內底ê第 {current, number} 篇", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Tsit tsām-á lí有PO關係{items} ê文。敢beh加tsiah ê kàu 特色ê hashtag?", + "featured_tags.suggestions.add": "加", + "featured_tags.suggestions.added": "請隨時佇編輯個人資料 > 特色hashtag管理lí ê特色hashtag。", + "featured_tags.suggestions.dismiss": "毋免,多謝。", "filter_modal.added.context_mismatch_explanation": "Tsit ê過濾器類別bē當適用佇lí所接近使用ê PO文ê情境。若是lí mā beh佇tsit ê情境過濾tsit ê PO文,lí著編輯過濾器。.", "filter_modal.added.context_mismatch_title": "本文無sio合!", "filter_modal.added.expired_explanation": "Tsit ê過濾器類別過期ah,lí需要改到期ê日期來繼續用。", @@ -660,7 +686,9 @@ "follow_suggestions.who_to_follow": "Thang tuè ê", "followed_tags": "跟tuè ê hashtag", "followers.hide_other_followers": "Tsit位用者選擇mài公開跟tuè伊ê", + "followers.title": "Teh跟tuè {name}", "following.hide_other_following": "Tsit位用者選擇mài公開伊跟tuè ê別lâng", + "following.title": "Hōo {name} 跟tuè", "footer.about": "概要", "footer.about_mastodon": "關係Mastodon", "footer.about_server": "關係 {domain}", @@ -672,6 +700,7 @@ "footer.source_code": "看原始碼", "footer.status": "狀態", "footer.terms_of_service": "服務規定", + "form_error.blank": "框á bē當空白。", "form_field.optional": "(通揀)", "generic.saved": "儲存ah", "getting_started.heading": "開始用", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 862bdd35b70041..2a20a096f60776 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Weggooien", "account_edit.field_edit_modal.discard_message": "Je hebt niet-opgeslagen wijzigingen. Weet je zeker dat je ze wilt weggooien?", "account_edit.field_edit_modal.edit_title": "Aangepast veld bewerken", - "account_edit.field_edit_modal.limit_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk je veld niet volledig.", + "account_edit.field_edit_modal.length_warning": "Aanbevolen tekenlimiet overschreden. Mobiele gebruikers zien mogelijk je veld niet volledig.", "account_edit.field_edit_modal.link_emoji_warning": "We raden aan om geen lokale emoji in combinatie met URL's te gebruiken. Aangepaste velden die beide bevatten worden alleen als tekst weergegeven, in plaats van als een link. Dit om verwarring voor de gebruiker te voorkomen.", "account_edit.field_edit_modal.name_hint": "Bijv. \"Persoonlijke website\"", "account_edit.field_edit_modal.name_label": "Label", @@ -700,6 +700,7 @@ "footer.source_code": "Broncode bekijken", "footer.status": "Status", "footer.terms_of_service": "Gebruiksvoorwaarden", + "form_error.blank": "Veld mag niet leeg zijn.", "form_field.optional": "(optioneel)", "generic.saved": "Opgeslagen", "getting_started.heading": "Aan de slag", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index c3642f25c0b68d..16c5ac240b5c93 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -152,7 +152,6 @@ "account_edit.field_edit_modal.discard_confirm": "Odrzuć", "account_edit.field_edit_modal.discard_message": "Masz niezapisane zmiany. Czy na pewno chcesz je odrzucić?", "account_edit.field_edit_modal.edit_title": "Edytuj dodatkowe pole", - "account_edit.field_edit_modal.limit_warning": "Przekroczono limit zalecanych znaków. Użytkownicy mobilni mogą nie widzieć Twojego pola w całości.", "account_note.placeholder": "Kliknij, aby dodać notatkę", "admin.dashboard.daily_retention": "Wskaźnik utrzymania użytkowników według dni od rejestracji", "admin.dashboard.monthly_retention": "Wskaźnik utrzymania użytkowników według miesięcy od rejestracji", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 3eebdd526806cd..213866229ca1a4 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Descartar", "account_edit.field_edit_modal.discard_message": "Você possui alterações não salvas. Tem certeza de que deseja descartá-las?", "account_edit.field_edit_modal.edit_title": "Editar campo personalizado", - "account_edit.field_edit_modal.limit_warning": "Excedido o limite recomendado de caracteres. Usuários de dispositivos móveis podem não ver seu campo completamente.", + "account_edit.field_edit_modal.length_warning": "Limite de caracteres recomendados ultrapassado. Usuários em telefones podem não conseguir ver o espaço completo.", "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos não utilizar emojis personalizados combinados com URLs. Campos personalizados contendo ambos serão exibidos apenas como texto em vez de link, para evitar confusão dos usuários.", "account_edit.field_edit_modal.name_hint": "Ex. \"Site pessoal\"", "account_edit.field_edit_modal.name_label": "Descrição", @@ -700,6 +700,7 @@ "footer.source_code": "Exibir código-fonte", "footer.status": "Status", "footer.terms_of_service": "Termos de serviço", + "form_error.blank": "O espaço não pode estar em branco.", "form_field.optional": "(opcional)", "generic.saved": "Salvo", "getting_started.heading": "Primeiros passos", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 44dd60505ac61c..165ecf22660e23 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -13,10 +13,17 @@ "about.not_available": "Администраторы сервера предпочли не раскрывать эту информацию.", "about.powered_by": "Децентрализованная социальная сеть на базе {mastodon}", "about.rules": "Правила сервера", - "account.account_note_header": "Личная заметка", + "account.account_note_header": "Заметка для себя", + "account.activity": "Посты", + "account.add_note": "Добавить заметку для себя", "account.add_or_remove_from_list": "Добавить в списки", + "account.badges.admin": "Администратор", + "account.badges.blocked": "Заблокирован(а)", "account.badges.bot": "Бот", + "account.badges.domain_blocked": "Домен заблокирован", "account.badges.group": "Группа", + "account.badges.muted": "Игнорируется", + "account.badges.muted_until": "Игнорируется до {until}", "account.block": "Заблокировать @{name}", "account.block_domain": "Заблокировать {domain}", "account.block_short": "Заблокировать", @@ -27,6 +34,7 @@ "account.direct": "Упомянуть @{name} лично", "account.disable_notifications": "Не уведомлять о постах пользователя @{name}", "account.domain_blocking": "Домен заблокирован", + "account.edit_note": "Редактировать заметку для себя", "account.edit_profile": "Редактировать", "account.edit_profile_short": "Редактировать", "account.enable_notifications": "Уведомлять о постах пользователя @{name}", @@ -36,9 +44,17 @@ "account.familiar_followers_two": "В подписках у {name1} и {name2}", "account.featured": "Рекомендации", "account.featured.accounts": "Профили", + "account.featured.collections": "Подборки", "account.featured.hashtags": "Хештеги", "account.featured_tags.last_status_at": "Последний пост опубликован {date}", "account.featured_tags.last_status_never": "Нет постов", + "account.field_overflow": "Показать полностью", + "account.filters.all": "Всё вместе", + "account.filters.boosts_toggle": "Показывать продвижения", + "account.filters.posts_boosts": "Посты и продвижения", + "account.filters.posts_only": "Только посты", + "account.filters.posts_replies": "Посты и ответы", + "account.filters.replies_toggle": "Показывать ответы", "account.follow": "Подписаться", "account.follow_back": "Подписаться в ответ", "account.follow_back_short": "Подписаться", @@ -63,6 +79,24 @@ "account.locked_info": "Это закрытая учётная запись. Её владелец вручную одобряет подписчиков.", "account.media": "Медиа", "account.mention": "Упомянуть @{name}", + "account.menu.add_to_list": "Добавить в список…", + "account.menu.block": "Заблокировать", + "account.menu.block_domain": "Заблокировать {domain}", + "account.menu.copied": "Ссылка на профиль скопирована в буфер обмена", + "account.menu.copy": "Копировать ссылку", + "account.menu.direct": "Упомянуть лично", + "account.menu.hide_reblogs": "Скрыть продвижения", + "account.menu.mention": "Упомянуть", + "account.menu.mute": "Игнорировать", + "account.menu.note.description": "Не видно никому, кроме вас", + "account.menu.open_original_page": "Открыть на {domain}", + "account.menu.remove_follower": "Убрать из подписчиков", + "account.menu.report": "Пожаловаться", + "account.menu.share": "Поделиться…", + "account.menu.show_reblogs": "Показывать продвижения", + "account.menu.unblock": "Разблокировать", + "account.menu.unblock_domain": "Разблокировать {domain}", + "account.menu.unmute": "Не игнорировать", "account.moved_to": "У {name} теперь новая учётная запись:", "account.mute": "Игнорировать @{name}", "account.mute_notifications_short": "Скрыть уведомления", @@ -70,7 +104,22 @@ "account.muted": "Игнорируется", "account.muting": "Игнорируется", "account.mutual": "Вы подписаны друг на друга", + "account.name.help.domain": "{domain} — это сервер, на котором размещены профиль и посты пользователя.", + "account.name.help.domain_self": "{domain} — это ваш сервер, на котором размещены ваши профиль и посты.", + "account.name.help.footer": "Точно так же как вы отправляете сообщения пользователям разных почтовых сервисов, вы можете взаимодействовать с пользователями других серверов Mastodon, а также других платформ, которые совместимы с Mastodon благодаря использованию протокола ActivityPub.", + "account.name.help.header": "Адрес пользователя напоминает адрес электронной почты", + "account.name.help.username": "{username} — это имя пользователя на сервере. На разных серверах могут встречаться люди с тем же именем пользователя.", + "account.name.help.username_self": "{username} — это ваше имя пользователя на этом сервере. На других серверах могут встречаться люди с тем же именем пользователя.", + "account.name_info": "Что это значит?", "account.no_bio": "Описание профиля отсутствует.", + "account.node_modal.callout": "Эта заметка будет видна только вам.", + "account.node_modal.edit_title": "Редактировать заметку для себя", + "account.node_modal.error_unknown": "Не удалось сохранить заметку", + "account.node_modal.field_label": "Текст заметки", + "account.node_modal.save": "Сохранить", + "account.node_modal.title": "Добавить заметку для себя", + "account.note.edit_button": "Редактировать", + "account.note.title": "Заметка для себя (никто, кроме вас, её не увидит)", "account.open_original_page": "Открыть исходную страницу", "account.posts": "Посты", "account.posts_with_replies": "Посты и ответы", @@ -81,6 +130,8 @@ "account.share": "Поделиться профилем @{name}", "account.show_reblogs": "Показывать продвижения от @{name}", "account.statuses_counter": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}", + "account.timeline.pinned": "Закреплён", + "account.timeline.pinned.view_all": "Показать все закреплённые посты", "account.unblock": "Разблокировать @{name}", "account.unblock_domain": "Разблокировать {domain}", "account.unblock_domain_short": "Разблокировать", @@ -90,6 +141,98 @@ "account.unmute": "Не игнорировать @{name}", "account.unmute_notifications_short": "Показать уведомления", "account.unmute_short": "Не игнорировать", + "account_edit.bio.add_label": "Добавить описание профиля", + "account_edit.bio.edit_label": "Редактировать описание профиля", + "account_edit.bio.placeholder": "Добавьте немного информации о себе, чтобы другие люди могли легче узнать вас.", + "account_edit.bio.title": "О себе", + "account_edit.bio_modal.add_title": "Добавить описание профиля", + "account_edit.bio_modal.edit_title": "Редактировать описание профиля", + "account_edit.column_button": "Готово", + "account_edit.column_title": "Редактировать профиль", + "account_edit.custom_fields.add_label": "Добавить", + "account_edit.custom_fields.edit_label": "Редактировать свойство", + "account_edit.custom_fields.placeholder": "Добавьте свои местоимения, ссылки на сайты — всё, что посчитаете нужным указать в профиле.", + "account_edit.custom_fields.reorder_button": "Упорядочить", + "account_edit.custom_fields.tip_content": "Вы без особого труда сможете повысить доверие к своему профилю в Mastodon, если верифицируете ссылки на принадлежащие вам сайты.", + "account_edit.custom_fields.tip_title": "Подсказка: Добавьте верифицированные ссылки", + "account_edit.custom_fields.title": "Дополнительные поля", + "account_edit.custom_fields.verified_hint": "Как мне добавить верифицированную ссылку?", + "account_edit.display_name.add_label": "Добавить отображаемое имя", + "account_edit.display_name.edit_label": "Редактировать отображаемое имя", + "account_edit.display_name.placeholder": "Отображаемое имя — это то, как вы будете подписаны в профиле и лентах.", + "account_edit.display_name.title": "Отображаемое имя", + "account_edit.featured_hashtags.edit_label": "Добавить", + "account_edit.featured_hashtags.placeholder": "Укажите наиболее интересные для вас темы и предоставьте быстрый доступ к ним.", + "account_edit.featured_hashtags.title": "Рекомендации хештегов", + "account_edit.field_actions.delete": "Удалить свойство", + "account_edit.field_actions.edit": "Редактировать свойство", + "account_edit.field_delete_modal.confirm": "Вы уверены, что хотите удалить дополнительное поле? Это действие невозможно отменить.", + "account_edit.field_delete_modal.delete_button": "Удалить", + "account_edit.field_delete_modal.title": "Удалить дополнительное поле?", + "account_edit.field_edit_modal.add_title": "Добавить дополнительное поле", + "account_edit.field_edit_modal.discard_confirm": "Сбросить", + "account_edit.field_edit_modal.discard_message": "У вас есть несохраненные изменения. Вы уверены, хотите сбросить их?", + "account_edit.field_edit_modal.edit_title": "Редактировать свойство", + "account_edit.field_edit_modal.length_warning": "Превышено рекомендуемое количество символов. Пользователи, просматривающие ваш профиль с мобильных устройств, могут не увидеть всю строку целиком.", + "account_edit.field_edit_modal.link_emoji_warning": "Мы не рекомендуем использовать нестандартные эмодзи вместе со ссылками. Если дополнительное поле содержит и URL-адрес, и эмодзи, оно будет отображено без форматирования, чтобы не сбивать с толку пользователей.", + "account_edit.field_edit_modal.name_hint": "Например: «Сайт»", + "account_edit.field_edit_modal.name_label": "Свойство", + "account_edit.field_edit_modal.url_warning": "Ссылка не будет создана, если вы не укажете {protocol} в начале.", + "account_edit.field_edit_modal.value_hint": "Например: «https://example.me»", + "account_edit.field_edit_modal.value_label": "Значение", + "account_edit.field_reorder_modal.drag_cancel": "Перемещение отменено. Поле \"{item}\" было оставлено на прежнем месте.", + "account_edit.field_reorder_modal.drag_end": "Поле \"{item}\" было перемещено.", + "account_edit.field_reorder_modal.drag_instructions": "Чтобы упорядочить дополнительные поля, нажмите \"Пробел\" (Space) или \"Ввод\" (Enter). Используйте клавиши со стрелками, чтобы передвинуть поле вверх или вниз. Нажмите \"Пробел\" (Space) или \"Ввод\" (Enter) ещё раз, чтобы переместить поле на новое место, либо нажмите кнопку \"Выйти\" (Escape) для отмены перемещения.", + "account_edit.field_reorder_modal.drag_move": "Поле \"{item}\" было передвинуто.", + "account_edit.field_reorder_modal.drag_over": "Поле \"{item}\" было передвинуто на поле \"{over}\".", + "account_edit.field_reorder_modal.drag_start": "Выбрано поле \"{item}\".", + "account_edit.field_reorder_modal.handle_label": "Переместить поле \"{item}\"", + "account_edit.field_reorder_modal.title": "Упорядочить свойства", + "account_edit.image_alt_modal.add_title": "Добавить альтернативный текст", + "account_edit.image_alt_modal.details_content": "НУЖНО:
    • Описывать себя по изображению
    • Говорить о себе в третьем лице, то есть, например, писать «Саша» вместо «я»
    • Придерживаться краткости и лаконичности — нескольких слов вполне достаточно
    НЕ НУЖНО:
    • Начинать со слова «Фото» — это избыточная информация для программ чтения с экрана
    ПРИМЕР:
    • «Саша в зелёной рубашке и очках»
    ", + "account_edit.image_alt_modal.details_title": "Советы по описанию фото профиля", + "account_edit.image_alt_modal.edit_title": "Редактировать альтернативный текст", + "account_edit.image_alt_modal.text_hint": "Альтернативный текст помогает пользователям программ для чтения с экрана понимать визуальное содержимое.", + "account_edit.image_alt_modal.text_label": "Альтернативный текст", + "account_edit.image_delete_modal.confirm": "Вы уверены, что хотите удалить изображение? Это действие невозможно отменить.", + "account_edit.image_delete_modal.delete_button": "Удалить", + "account_edit.image_delete_modal.title": "Удалить изображение?", + "account_edit.image_edit.add_button": "Загрузить изображение", + "account_edit.image_edit.alt_add_button": "Добавить описание", + "account_edit.image_edit.alt_edit_button": "Редактировать описание", + "account_edit.image_edit.remove_button": "Удалить изображение", + "account_edit.image_edit.replace_button": "Заменить изображение", + "account_edit.item_list.delete": "Удалить {name}", + "account_edit.item_list.edit": "Редактировать {name}", + "account_edit.name_modal.add_title": "Добавить отображаемое имя", + "account_edit.name_modal.edit_title": "Редактировать отображаемое имя", + "account_edit.profile_tab.button_label": "Настроить", + "account_edit.profile_tab.hint.description": "Эти настройки определяют, что будет видно пользователям сервера {server} в официальных приложениях, в то время как пользователи других серверов и сторонних приложений могут не учитывать эти настройки.", + "account_edit.profile_tab.hint.title": "Внешний вид может отличаться", + "account_edit.profile_tab.show_featured.description": "«Рекомендации» — это дополнительная вкладка, на которой вы можете показать другие профили.", + "account_edit.profile_tab.show_featured.title": "Показывать вкладку «Рекомендации»", + "account_edit.profile_tab.show_media.description": "«Медиа» — это дополнительная вкладка, на которой будут показаны ваши посты, содержащие изображения и видео.", + "account_edit.profile_tab.show_media.title": "Показывать вкладку «Медиа»", + "account_edit.profile_tab.show_media_replies.description": "Когда эта опция включена, на вкладке «Медиа» будут показаны в том числе ваши ответы на посты других людей.", + "account_edit.profile_tab.show_media_replies.title": "Показывать ответы на вкладке «Медиа»", + "account_edit.profile_tab.subtitle": "Настройте вкладки вашего профиля и их содержимое.", + "account_edit.profile_tab.title": "Настройки вкладок профиля", + "account_edit.save": "Сохранить", + "account_edit.upload_modal.back": "Назад", + "account_edit.upload_modal.done": "Готово", + "account_edit.upload_modal.next": "Далее", + "account_edit.upload_modal.step_crop.zoom": "Масштаб", + "account_edit.upload_modal.step_upload.button": "Обзор файлов", + "account_edit.upload_modal.step_upload.dragging": "Перетащите сюда, чтобы загрузить", + "account_edit.upload_modal.step_upload.header": "Выберите изображение", + "account_edit.upload_modal.step_upload.hint": "Поддерживаются файлы WEBP, PNG, GIF и JPG размером не более {limit} МБ.{br}Изображение будет уменьшено до {width}x{height} пикселей.", + "account_edit.upload_modal.title_add.avatar": "Добавить фото профиля", + "account_edit.upload_modal.title_add.header": "Добавить обложку профиля", + "account_edit.upload_modal.title_replace.avatar": "Заменить фото профиля", + "account_edit.upload_modal.title_replace.header": "Заменить обложку профиля", + "account_edit_tags.add_tag": "Добавить #{tagName}", + "account_edit_tags.tag_status_count": "{count, plural, one {# пост} few {# поста} other {# постов}}", + "account_list.total": "{total, plural, one {# пользователь} few {# пользователя} other {# пользователей}}", "account_note.placeholder": "Текст заметки", "admin.dashboard.daily_retention": "Уровень удержания пользователей после регистрации, в днях", "admin.dashboard.monthly_retention": "Уровень удержания пользователей после регистрации, в месяцах", @@ -119,11 +262,12 @@ "annual_report.nav_item.badge": "Новый", "annual_report.shared_page.donate": "Пожертвовать", "annual_report.shared_page.footer": "Сгенерировано с {heart} командой Mastodon", - "annual_report.summary.archetype.booster.name": "Лучник", + "annual_report.summary.archetype.booster.name": "Репостер", "annual_report.summary.archetype.die_drei_fragezeichen": "???", "annual_report.summary.archetype.lurker.name": "Стоик", - "annual_report.summary.archetype.oracle.name": "Оракул", - "annual_report.summary.archetype.replier.name": "Бабочка", + "annual_report.summary.archetype.oracle.name": "Гуру", + "annual_report.summary.archetype.pollster.name": "Опросчик", + "annual_report.summary.archetype.replier.name": "Душа компании", "annual_report.summary.archetype.reveal": "Показать мой архетип", "annual_report.summary.archetype.title_public": "Архетип {name}", "annual_report.summary.archetype.title_self": "Ваш архетип", @@ -134,7 +278,6 @@ "annual_report.summary.new_posts.new_posts": "новых постов", "annual_report.summary.percentile.text": "Всё это помещает вас в топпользователей {domain}.", "annual_report.summary.percentile.we_wont_tell_bernie": "Роскомнадзор об этом не узнает.", - "annual_report.summary.share_elsewhere": "Поделиться на других", "annual_report.summary.share_on_mastodon": "Поделиться в Mastodon", "attachments_list.unprocessed": "(не обработан)", "audio.hide": "Скрыть аудио", @@ -170,6 +313,7 @@ "column.about": "О проекте", "column.blocks": "Заблокированные пользователи", "column.bookmarks": "Закладки", + "column.collections": "Мои подборки", "column.community": "Локальная лента", "column.create_list": "Создать список", "column.direct": "Личные упоминания", @@ -229,6 +373,9 @@ "confirmations.delete.confirm": "Удалить", "confirmations.delete.message": "Вы уверены, что хотите удалить этот пост?", "confirmations.delete.title": "Удалить пост?", + "confirmations.delete_collection.confirm": "Удалить", + "confirmations.delete_collection.message": "Это действие невозможно отменить.", + "confirmations.delete_collection.title": "Удалить «{name}»?", "confirmations.delete_list.confirm": "Удалить", "confirmations.delete_list.message": "Вы уверены, что хотите навсегда удалить этот список?", "confirmations.delete_list.title": "Удалить список?", @@ -284,6 +431,7 @@ "conversation.open": "Просмотр беседы", "conversation.with": "С {names}", "copy_icon_button.copied": "Скопировано в буфер обмена", + "copy_icon_button.copy_this_text": "Копировать ссылку в буфер обмена", "copypaste.copied": "Скопировано", "copypaste.copy_to_clipboard": "Копировать в буфер обмена", "directory.federated": "Со всего федивёрса", @@ -375,6 +523,7 @@ "featured_carousel.current": "Пост {current, number} / {max, number}", "featured_carousel.header": "{count, plural, other {Закреплённые посты}}", "featured_carousel.slide": "Пост {current, number} из {max, number}", + "featured_tags.more_items": "+{count}", "filter_modal.added.context_mismatch_explanation": "Этот фильтр не применяется в том контексте, в котором вы видели этот пост. Если вы хотите, чтобы пост был отфильтрован в текущем контексте, необходимо редактировать фильтр.", "filter_modal.added.context_mismatch_title": "Несоответствие контекста", "filter_modal.added.expired_explanation": "Этот фильтр истёк. Чтобы он был применён, вам нужно изменить срок действия фильтра.", @@ -482,7 +631,7 @@ "interaction_modal.on_another_server": "На другом сервере", "interaction_modal.on_this_server": "На этом сервере", "interaction_modal.title": "Войдите, чтобы продолжить", - "interaction_modal.username_prompt": "Например, {example}", + "interaction_modal.username_prompt": "Например: {example}", "intervals.full.days": "{number, plural, one {# день} few {# дня} other {# дней}}", "intervals.full.hours": "{number, plural, one {# час} few {# часа} other {# часов}}", "intervals.full.minutes": "{number, plural, one {# минута} few {# минуты} other {# минут}}", @@ -579,6 +728,7 @@ "navigation_bar.automated_deletion": "Автоудаление постов", "navigation_bar.blocks": "Заблокированные пользователи", "navigation_bar.bookmarks": "Закладки", + "navigation_bar.collections": "Подборки", "navigation_bar.direct": "Личные упоминания", "navigation_bar.domain_blocks": "Заблокированные домены", "navigation_bar.favourites": "Избранное", @@ -757,6 +907,7 @@ "privacy.private.short": "Для подписчиков", "privacy.public.long": "Для кого угодно в интернете", "privacy.public.short": "Публичный", + "privacy.quote.anyone": "{visibility}, с возможностью цитирования", "privacy.quote.disabled": "{visibility}, без возможности цитирования", "privacy.quote.limited": "{visibility}, с ограничениями цитирования", "privacy.unlisted.additional": "Похоже на «Публичный» за исключением того, что пост не появится ни в живых лентах, ни в лентах хештегов, ни в разделе «Актуальное», ни в поиске Mastodon, даже если вы разрешили поиск по своим постам в настройках профиля.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 0d6788c86d10f6..d4076cddee7a59 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Hidhe tej", "account_edit.field_edit_modal.discard_message": "Keni ndryshime të paruajtura. Jeni i sigurt se doni të hidhen tej?", "account_edit.field_edit_modal.edit_title": "Përpunoni fushë të përshtatur", - "account_edit.field_edit_modal.limit_warning": "Është tejkaluar kufiri i rekomanduar i shenjave. Përdoruesit në celuilar mund të mos e shohin të plotë fushën tuaj.", + "account_edit.field_edit_modal.length_warning": "U tejkaluar kufi i rekomanduar shenjash. Përdorues në celular mund të mos shohin të plotë fushën tuaj.", "account_edit.field_edit_modal.link_emoji_warning": "Rekomandojmë të mos përdoren emoji të përshtatur tok me url-ra. Fusha të përshtatura që i përmbajnë të dyja llojetn do t’i shfaqin si tekst, në vend se si një lidhje, për të parandaluar ngatërrim të përdoruesve.", "account_edit.field_edit_modal.name_hint": "P.sh., “Sajt personal”", "account_edit.field_edit_modal.name_label": "Etiketë", @@ -694,6 +694,7 @@ "footer.source_code": "Shihni kodin burim", "footer.status": "Gjendje", "footer.terms_of_service": "Kushte shërbimi", + "form_error.blank": "Fusha s’mund të jetë e zbrazët.", "form_field.optional": "(opsionale)", "generic.saved": "U ruajt", "getting_started.heading": "Si t’ia fillohet", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 1c4001ee95f97a..ec8a80039e1dda 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -156,6 +156,7 @@ "account_edit.field_delete_modal.title": "Radera tilläggsfält?", "account_edit.field_edit_modal.add_title": "Lägg till tilläggsfält", "account_edit.field_edit_modal.edit_title": "Redigera tilläggsfält", + "account_edit.field_edit_modal.length_warning": "Rekommenderad teckengräns överskrids. Mobilanvändare kanske inte ser ditt fält i sin helhet.", "account_edit.field_edit_modal.name_hint": "T.ex. “Personlig webbplats”", "account_edit.field_edit_modal.name_label": "Etikett", "account_edit.field_edit_modal.url_warning": "För att lägga till en länk, vänligen inkludera {protocol} i början.", @@ -559,6 +560,7 @@ "footer.source_code": "Visa källkod", "footer.status": "Status", "footer.terms_of_service": "Användarvillkor", + "form_error.blank": "Fältet får inte vara tomt.", "generic.saved": "Sparad", "getting_started.heading": "Kom igång", "hashtag.admin_moderation": "Öppet modereringsgränssnittet för #{name}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 4f13dec3c340bf..afc1244435fefc 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Yoksay", "account_edit.field_edit_modal.discard_message": "Kaydedilmemiş değişiklikleriniz var. Bunları silmek istediğinizden emin misiniz?", "account_edit.field_edit_modal.edit_title": "Özel alanı düzenle", - "account_edit.field_edit_modal.limit_warning": "Önerilen karakter sınırı aşıldı. Mobil kullanıcılar sahayı tam olarak görmeyebilirler.", + "account_edit.field_edit_modal.length_warning": "Önerilen karakter sınırı aşıldı. Mobil kullanıcılar sahayı tam olarak görmeyebilirler.", "account_edit.field_edit_modal.link_emoji_warning": "Url'lerle birlikte özel emoji kullanmamanızı öneririz. Her ikisini de içeren özel alanlar, kullanıcıların kafasını karıştırmamak için bağlantı yerine yalnızca metin olarak görüntülenir.", "account_edit.field_edit_modal.name_hint": "Örn. \"Kişisel web sitesi\"", "account_edit.field_edit_modal.name_label": "Etiket", @@ -359,6 +359,7 @@ "collections.account_count": "{count, plural, one {# hesap} other {# hesap}}", "collections.accounts.empty_description": "Takip ettiğiniz hesapların sayısını {count} kadar artırın", "collections.accounts.empty_title": "Bu koleksiyon boş", + "collections.by_account": "yazan {account_handle}", "collections.collection_description": "Açıklama", "collections.collection_language": "Dil", "collections.collection_language_none": "Hiçbiri", @@ -699,6 +700,7 @@ "footer.source_code": "Kaynak kodu görüntüle", "footer.status": "Durum", "footer.terms_of_service": "Hizmet şartları", + "form_error.blank": "Alan boş bırakılamaz.", "form_field.optional": "(isteğe bağlı)", "generic.saved": "Kaydet", "getting_started.heading": "Başlarken", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 0beb80c18897fb..03ca0e77b06a45 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -15,7 +15,7 @@ "about.rules": "Nội quy máy chủ", "account.account_note_header": "Ghi chú", "account.activity": "Hoạt động", - "account.add_note": "Thêm ghi chú", + "account.add_note": "Ghi chú", "account.add_or_remove_from_list": "Sửa danh sách", "account.badges.admin": "Quản trị viên", "account.badges.blocked": "Đã chặn", @@ -62,18 +62,18 @@ "account.follow_request_cancel": "Hủy yêu cầu", "account.follow_request_cancel_short": "Hủy bỏ", "account.follow_request_short": "Yêu cầu", - "account.followers": "Người theo dõi", + "account.followers": "Người theo", "account.followers.empty": "Chưa có người theo dõi nào.", "account.followers_counter": "{count, plural, other {{counter} người theo dõi}}", "account.followers_you_know_counter": "{counter} bạn biết", - "account.following": "Đang theo dõi", + "account.following": "Đang theo", "account.following_counter": "{count, plural, other {{counter} theo dõi}}", "account.follows.empty": "Tài khoản này chưa theo dõi ai.", "account.follows_you": "Đang theo dõi bạn", "account.go_to_profile": "Xem hồ sơ", "account.hide_reblogs": "Ẩn tút @{name} đăng lại", "account.in_memoriam": "Tưởng Niệm.", - "account.joined_short": "Tham gia", + "account.joined_short": "Năm", "account.languages": "Đổi ngôn ngữ mong muốn", "account.link_verified_on": "Liên kết này đã được xác minh vào {date}", "account.locked_info": "Đây là tài khoản riêng tư. Chủ tài khoản tự mình xét duyệt các yêu cầu theo dõi.", @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "Loại bỏ", "account_edit.field_edit_modal.discard_message": "Bạn có các thay đổi chưa được lưu. Bạn có muốn loại bỏ chúng?", "account_edit.field_edit_modal.edit_title": "Sửa trường tùy chỉnh", - "account_edit.field_edit_modal.limit_warning": "Vượt quá giới hạn ký tự. Người dùng điện thoại sẽ không thể thấy đầy đủ.", + "account_edit.field_edit_modal.length_warning": "Vượt quá giới hạn ký tự. Người dùng điện thoại sẽ không thể thấy đầy đủ.", "account_edit.field_edit_modal.link_emoji_warning": "Không nên dùng emoji tùy chỉnh với url. Trường tùy chỉnh chứa cả hai sẽ chỉ hiển thị văn bản, để ngăn chặn việc bối rối.", "account_edit.field_edit_modal.name_hint": "Vd: “Website cá nhân”", "account_edit.field_edit_modal.name_label": "Nhãn", @@ -684,7 +684,7 @@ "follow_suggestions.similar_to_recently_followed_longer": "Tương tự những tài khoản mà bạn theo dõi gần đây", "follow_suggestions.view_all": "Xem tất cả", "follow_suggestions.who_to_follow": "Gợi ý theo dõi", - "followed_tags": "Hashtag theo dõi", + "followed_tags": "Những hashtag đã theo dõi", "followers.hide_other_followers": "Tài khoản này đã ẩn người theo dõi của họ", "followers.title": "Đang theo dõi {name}", "following.hide_other_following": "Tài khoản này đã ẩn người mà họ theo dõi", @@ -700,6 +700,7 @@ "footer.source_code": "Mã nguồn", "footer.status": "Trạng thái", "footer.terms_of_service": "Điều khoản dịch vụ", + "form_error.blank": "Không thể để trống trường.", "form_field.optional": "(tùy chọn)", "generic.saved": "Đã lưu", "getting_started.heading": "Quản lý", @@ -791,7 +792,7 @@ "keyboard_shortcuts.reply": "trả lời", "keyboard_shortcuts.requests": "mở danh sách yêu cầu theo dõi", "keyboard_shortcuts.search": "mở tìm kiếm", - "keyboard_shortcuts.spoilers": "hiện/ẩn nội dung nhạy cảm", + "keyboard_shortcuts.spoilers": "ẩn/hiện nội dung nhạy cảm", "keyboard_shortcuts.start": "mở \"Dành cho người mới\"", "keyboard_shortcuts.toggle_hidden": "ẩn/hiện nội dung ẩn", "keyboard_shortcuts.toggle_sensitivity": "ẩn/hiện ảnh hoặc video", @@ -854,16 +855,16 @@ "navigation_bar.account_settings": "Bảo mật", "navigation_bar.administration": "Quản trị", "navigation_bar.advanced_interface": "Dùng bố cục nhiều cột", - "navigation_bar.automated_deletion": "Tự động xóa tút cũ", + "navigation_bar.automated_deletion": "Xóa tút cũ tự động", "navigation_bar.blocks": "Tài khoản đã chặn", - "navigation_bar.bookmarks": "Tút lưu", + "navigation_bar.bookmarks": "Tút đã lưu", "navigation_bar.collections": "Gói khởi đầu", "navigation_bar.direct": "Nhắn riêng", "navigation_bar.domain_blocks": "Máy chủ đã ẩn", - "navigation_bar.favourites": "Tút thích", + "navigation_bar.favourites": "Tút đã thích", "navigation_bar.filters": "Từ khóa đã lọc", "navigation_bar.follow_requests": "Yêu cầu theo dõi", - "navigation_bar.followed_tags": "Hashtag theo dõi", + "navigation_bar.followed_tags": "Hashtag", "navigation_bar.follows_and_followers": "Quan hệ", "navigation_bar.import_export": "Nhập và xuất", "navigation_bar.lists": "Danh sách", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index f00835a608f105..83045f0a1b76a0 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -49,7 +49,7 @@ "account.featured_tags.last_status_at": "上次发言于 {date}", "account.featured_tags.last_status_never": "暂无嘟文", "account.field_overflow": "显示完整内容", - "account.filters.all": "所有活动", + "account.filters.all": "全部活动", "account.filters.boosts_toggle": "显示转嘟", "account.filters.posts_boosts": "嘟文与转嘟", "account.filters.posts_only": "嘟文", @@ -131,7 +131,7 @@ "account.show_reblogs": "显示来自 @{name} 的转嘟", "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}", "account.timeline.pinned": "已置顶", - "account.timeline.pinned.view_all": "查看所有置顶嘟文", + "account.timeline.pinned.view_all": "查看全部置顶嘟文", "account.unblock": "取消屏蔽 @{name}", "account.unblock_domain": "取消屏蔽 {domain} 域名", "account.unblock_domain_short": "取消屏蔽", @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "丢弃", "account_edit.field_edit_modal.discard_message": "你有尚未保存的更改。确定要丢弃这些更改吗?", "account_edit.field_edit_modal.edit_title": "编辑自定义字段", - "account_edit.field_edit_modal.limit_warning": "已超过建议字数限制。移动端用户可能无法完整看见字段内容。", + "account_edit.field_edit_modal.length_warning": "已超过建议字数限制。移动端用户可能无法完整看见字段内容。", "account_edit.field_edit_modal.link_emoji_warning": "我们建议不要同时使用自定义表情和网址。同时包含两者的自定义字段将会显示为纯文本而不是链接形式,以避免用户混淆。", "account_edit.field_edit_modal.name_hint": "例如:“个人网站”", "account_edit.field_edit_modal.name_label": "标签", @@ -700,6 +700,7 @@ "footer.source_code": "查看源代码", "footer.status": "状态", "footer.terms_of_service": "服务条款", + "form_error.blank": "字段不能为空。", "form_field.optional": "(选填)", "generic.saved": "已保存", "getting_started.heading": "开始使用", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index fa9736d672783c..b515f5ba1cb555 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -173,7 +173,7 @@ "account_edit.field_edit_modal.discard_confirm": "捨棄", "account_edit.field_edit_modal.discard_message": "您有尚未儲存之變更。您是否確定要捨棄這些變更?", "account_edit.field_edit_modal.edit_title": "編輯自訂欄位", - "account_edit.field_edit_modal.limit_warning": "已超過建議字數。行動裝置使用者可能無法檢視您的欄位完整內容。", + "account_edit.field_edit_modal.length_warning": "已超過建議字數。行動裝置使用者可能無法檢視您的欄位完整內容。", "account_edit.field_edit_modal.link_emoji_warning": "我們不建議於 URL 中使用自訂 emoji 表情符號。為了避免使用者混淆,包含兩者之自訂欄位將僅顯示為文字,而不是顯示為連結。", "account_edit.field_edit_modal.name_hint": "例如:「個人網站」", "account_edit.field_edit_modal.name_label": "標籤", @@ -700,6 +700,7 @@ "footer.source_code": "檢視原始碼", "footer.status": "狀態", "footer.terms_of_service": "服務條款", + "form_error.blank": "欄位內容無法為空白。", "form_field.optional": "(可選的)", "generic.saved": "已儲存", "getting_started.heading": "開始使用", diff --git a/config/locales/activerecord.io.yml b/config/locales/activerecord.io.yml index 67b59e24fcdc00..59ff09a243dd2b 100644 --- a/config/locales/activerecord.io.yml +++ b/config/locales/activerecord.io.yml @@ -32,6 +32,12 @@ io: attributes: url: invalid: ne esas valida URL + collection: + attributes: + collection_items: + too_many: esas tro multa, ne multa ol %{count} esas permisita + tag: + unusable: ne povas uzesar doorkeeper/application: attributes: website: @@ -49,8 +55,14 @@ io: attributes: reblog: taken: de postajo ja existas + terms_of_service: + attributes: + effective_date: + too_soon: esas tro antea, mustas esar post %{date} user: attributes: + date_of_birth: + below_limit: esas sub la evlimito email: blocked: uzas nepermisata retpostodomeno unreachable: semblas ne existar diff --git a/config/locales/de.yml b/config/locales/de.yml index aa96d026c5b3b8..ac2d10c18cae3e 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -17,7 +17,7 @@ de: other: Folge ich instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert, und kein persönliches Profil. Es wird für Föderationszwecke verwendet und sollte daher nicht gesperrt werden. last_active: zuletzt aktiv - link_verified_on: Das Profil mit dieser E-Mail-Adresse wurde bereits am %{date} bestätigt + link_verified_on: Dieser Link wurde am %{date} Uhr verifiziert nothing_here: Keine Treffer mit dieser Auswahl pin_errors: following: Du musst dieser Person folgen, um sie empfehlen zu können @@ -1420,7 +1420,7 @@ de: basic_information: Allgemeine Informationen hint_html: "Bestimme, was andere auf deinem öffentlichen Profil und neben deinen Beiträgen sehen können. Wenn du ein Profilbild festlegst und dein Profil vervollständigst, werden andere eher mit dir interagieren und dir folgen." other: Andere - redesign_body: Das Profil kann jetzt direkt über die Profilseite angepasst werden. + redesign_body: Dein Profil kannst du jetzt direkt auf deiner Profilseite bearbeiten. redesign_button: Loslegen redesign_title: Es gibt eine brandneue Möglichkeit, das Profil zu bearbeiten email_subscription_mailer: @@ -1441,6 +1441,7 @@ de: confirmations: show: changed_your_mind: Meinung geändert? + title: Du hast dich angemeldet unsubscribe: Abbestellen inactive: Deaktiviert status: Status @@ -2081,6 +2082,10 @@ de: role_requirement: "%{domain} verlangt das Einrichten einer Zwei-Faktor-Authentisierung, bevor du Mastodon verwenden kannst." webauthn: Sicherheitsschlüssel unsubscriptions: + create: + action: Zur Homepage des Servers gehen + email_subscription: + confirmation_html: Du erhältst keine E-Mails mehr von %{name}. show: action: Abbestellen user_mailer: diff --git a/config/locales/devise.fr-CA.yml b/config/locales/devise.fr-CA.yml index 1acb5d1770f27b..20d58a365abc8c 100644 --- a/config/locales/devise.fr-CA.yml +++ b/config/locales/devise.fr-CA.yml @@ -7,7 +7,7 @@ fr-CA: send_paranoid_instructions: Si votre adresse courriel existe dans notre base de données, vous allez recevoir un courriel contenant les instructions de confirmation de votre adresse. Veuillez vérifier votre dossier de pourriels si vous n'avez pas reçu ce message. failure: already_authenticated: Vous êtes déjà connecté·e. - closed_registrations: Votre tentative d'inscription a été bloquée en raison d'une politique de réseau. Si vous pensez qu'il s'agit d'une erreur, contactez %{email}. + closed_registrations: Votre inscription a été bloquée en raison d'une politique réseau. Si vous pensez qu'il s'agit d'une erreur, contacter %{email}. inactive: Votre compte n’est pas encore activé. invalid: "%{authentication_keys} ou mot de passe invalide." last_attempt: Vous avez droit à une dernière tentative avant que votre compte ne soit verrouillé. @@ -49,12 +49,12 @@ fr-CA: subject: 'Mastodon: Instructions pour changer votre mot de passe' title: Réinitialisation du mot de passe two_factor_disabled: - explanation: La connexion est maintenant possible en n'utilisant uniquement l'adresse e-mail et le mot de passe. + explanation: La connexion est maintenant possible en utilisant uniquement l'adresse de courriel et le mot de passe. subject: 'Mastodon: authentification à deux facteurs désactivée' subtitle: L'authentification à deux facteurs pour votre compte a été désactivée. title: A2F désactivée two_factor_enabled: - explanation: Un jeton généré par l'application appairée TOTP sera nécessaire pour vous connecter. + explanation: Un jeton généré par l'application TOTP appairée sera nécessaire pour vous connecter. subject: 'Mastodon: authentification à deux facteurs activée' subtitle: L'authentification à deux facteurs est maintenant activée pour votre compte. title: A2F activée diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index ef2fd873c47da5..882605b45ced43 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -3,11 +3,11 @@ fr: devise: confirmations: confirmed: Votre adresse de courriel a été validée. - send_instructions: Vous allez recevoir par courriel les instructions nécessaires à la confirmation de votre compte dans quelques minutes. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. - send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. + send_instructions: Vous allez recevoir par courriel les instructions nécessaires à la confirmation de votre compte dans quelques minutes. Dans le cas où vous ne recevriez pas ce message, veuillez vérifier vos courriels indésirables. + send_paranoid_instructions: Si votre adresse de courriel existe dans notre base de données, vous allez bientôt recevoir un message contenant les instructions de confirmation de votre compte. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier vos courriels indésirables. failure: already_authenticated: Vous êtes déjà connecté⋅e. - closed_registrations: Votre tentative d'inscription a été bloquée en raison d'une politique de réseau. Si vous pensez qu'il s'agit d'une erreur, contactez %{email}. + closed_registrations: Votre inscription a été bloquée en raison d'une politique réseau. Si vous pensez qu'il s'agit d'une erreur, contacter %{email}. inactive: Votre compte n’est pas encore activé. invalid: "%{authentication_keys} ou mot de passe invalide." last_attempt: Vous avez droit à une dernière tentative avant que votre compte ne soit verrouillé. @@ -46,15 +46,15 @@ fr: action: Modifier le mot de passe explanation: Vous avez demandé un nouveau mot de passe pour votre compte. extra: Si vous ne l’avez pas demandé, veuillez ignorer ce courriel. Votre mot de passe ne changera pas tant que vous n’aurez pas cliqué sur le lien ci-dessus et que vous n’en aurez pas créé un nouveau. - subject: 'Mastodon : Instructions pour changer votre mot de passe' + subject: 'Mastodon : instructions pour changer votre mot de passe' title: Réinitialisation du mot de passe two_factor_disabled: - explanation: La connexion est maintenant possible en n'utilisant uniquement l'adresse e-mail et le mot de passe. + explanation: La connexion est maintenant possible en utilisant uniquement l'adresse de courriel et le mot de passe. subject: 'Mastodon : authentification à deux facteurs désactivée' subtitle: L'authentification à deux facteurs pour votre compte a été désactivée. - title: 2FA désactivée + title: Authentification à deux facteurs désactivée two_factor_enabled: - explanation: Un jeton généré par l'application appairée TOTP sera nécessaire pour vous connecter. + explanation: Un jeton généré par l'application TOTP appairée sera nécessaire pour vous connecter. subject: 'Mastodon : authentification à deux facteurs activée' subtitle: L'authentification à deux facteurs est maintenant activée pour votre compte. title: A2F activée diff --git a/config/locales/devise.io.yml b/config/locales/devise.io.yml index 8a86cf18b080fc..df49f96049c5c3 100644 --- a/config/locales/devise.io.yml +++ b/config/locales/devise.io.yml @@ -7,6 +7,7 @@ io: send_paranoid_instructions: Se tua retpost-adreso existas en nia datumbazo, tu balde revecos retpost-mesajo, qua kontenas la instrucioni por konfirmar tua konto. failure: already_authenticated: Tu ya esas enirinta. + closed_registrations: Vua registroprobo esas blokusita pro reteypoliteso. Se vu kredas ke co esas eroro, kontaktez %{email}. inactive: Tua konto ankore ne konfirmesas. invalid: Nejusta %{authentication_keys}. last_attempt: Tu ankore povas probar unfoye ante ke tua konto esos extingita. diff --git a/config/locales/doorkeeper.fr.yml b/config/locales/doorkeeper.fr.yml index 7329f613910ddb..f33ac9e0ade889 100644 --- a/config/locales/doorkeeper.fr.yml +++ b/config/locales/doorkeeper.fr.yml @@ -154,19 +154,19 @@ fr: scopes: admin:read: lire toutes les données du serveur admin:read:accounts: lire les informations sensibles de tous les comptes - admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs de courriels canoniques + admin:read:canonical_email_blocks: lire les informations sensibles de tous les blocages de courriels canoniques admin:read:domain_allows: lire les informations sensibles de tous les domaines autorisés - admin:read:domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines + admin:read:domain_blocks: lire les informations sensibles de tous les blocages de domaines admin:read:email_domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines de courriel - admin:read:ip_blocks: lire les informations sensibles de tous les blocqueurs d'IP + admin:read:ip_blocks: lire les informations sensibles de tous les blocages d'IP admin:read:reports: lire les informations sensibles de tous les signalements et des comptes signalés admin:write: modifier toutes les données sur le serveur admin:write:accounts: effectuer des actions de modération sur les comptes - admin:write:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs de courriels canoniques + admin:write:canonical_email_blocks: effectuer des actions de modération sur les blocages de courriels canoniques admin:write:domain_allows: effectuer des actions de modération sur les autorisations de domaines - admin:write:domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines - admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines de courriel - admin:write:ip_blocks: effectuer des actions de modération sur des bloqueurs d'IP + admin:write:domain_blocks: effectuer des actions de modération sur des blocages de domaines + admin:write:email_domain_blocks: effectuer des actions de modération sur des blocages de domaines de courriel + admin:write:ip_blocks: effectuer des actions de modération sur des blocages d'IP admin:write:reports: effectuer des actions de modération sur les signalements crypto: utiliser le chiffrement de bout-en-bout follow: modifier les relations du compte diff --git a/config/locales/doorkeeper.io.yml b/config/locales/doorkeeper.io.yml index 2f8adf8ce3958f..1eebd1ac1a5852 100644 --- a/config/locales/doorkeeper.io.yml +++ b/config/locales/doorkeeper.io.yml @@ -83,6 +83,10 @@ io: access_denied: Moyenproprietanto o yurizservilo refuzis la demando. credential_flow_not_configured: Moyenproprietantpasvortidentesesofluo faliis pro ke Doorkeeper.configure.resource_owner_from_credentials ne ajustesis. invalid_client: Klientpermiso falias pro nesavita kliento, neinkluzita klientpermiso o nesuportita permismetodo. + invalid_code_challenge_method: + one: La code_challenge_method mustas esar %{challenge_methods}. + other: La code_challenge_method mustas esar un de %{challenge_methods}. + zero: La yurizservilo ne subtenas PKCE pro ke ne havas aceptita valori di code_challenge_method. invalid_grant: Provizita yurizo esis nevalida, expiris, deaprobesis, ne parigas uzita ridirektoligilo dum yurizdemando o facesis a altra kliento. invalid_redirect_uri: La inkluzita ridirektoligilo esas nevalida. invalid_request: diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml index 3098f36e8c2bb5..af609bfa71ae84 100644 --- a/config/locales/doorkeeper.vi.yml +++ b/config/locales/doorkeeper.vi.yml @@ -71,7 +71,7 @@ vi: confirmations: revoke: Bạn có chắc không? index: - authorized_at: Cho phép vào %{date} + authorized_at: Cho phép %{date} description_html: Đây là những ứng dụng có thể truy cập tài khoản của bạn bằng API. Nếu có ứng dụng bạn không nhận ra ở đây hoặc ứng dụng hoạt động sai, bạn có thể thu hồi quyền truy cập của ứng dụng đó. last_used_at: Dùng lần cuối %{date} never_used: Chưa dùng diff --git a/config/locales/es.yml b/config/locales/es.yml index 2ea9b325d45f74..95ab07709dd0d8 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1429,7 +1429,7 @@ es: action: Confirmar dirección de correo electrónico instructions_to_confirm: Confirma que quieres recibir correos electrónicos de %{name} (@%{acct}) cuando publique algo nuevo. instructions_to_ignore: Si no estás seguro de por qué recibiste este correo electrónico, puedes eliminarlo. No te suscribirás si no haces clic en el enlace de arriba. - subject: Confirme tu dirección de correo electrónico + subject: Confirma tu dirección de correo electrónico title: "¿Obtener actualizaciones por correo electrónico de %{name}?" notification: create_account: Crear una cuenta de Mastodon diff --git a/config/locales/fi.yml b/config/locales/fi.yml index d0828dfbce552c..5408495f5546d8 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -762,6 +762,7 @@ fi: categories: administration: Ylläpito devops: DevOps + email: Sähköposti invites: Kutsut moderation: Moderointi special: Erityistä @@ -778,7 +779,7 @@ fi: administrator_description: Käyttäjät, joilla on tämä käyttöoikeus, ohittavat jokaisen käyttöoikeuden delete_user_data: Poistaa käyttäjän tiedot delete_user_data_description: Sallii käyttäjien poistaa muiden käyttäjien tiedot viipymättä - invite_bypass_approval: Kutsu käyttäjiä arvioimatta + invite_bypass_approval: Kutsua käyttäjiä arvioimatta invite_bypass_approval_description: Sallii näiden käyttäjien tälle palvelimelle kutsumien henkilöiden ohittaa moderoinnin hyväksyntä invite_users: Kutsua käyttäjiä invite_users_description: Sallii käyttäjien kutsua uusia käyttäjiä palvelimelle @@ -790,6 +791,8 @@ fi: manage_blocks_description: Sallii käyttäjien estää sähköpostipalveluntarjoajia ja IP-osoitteita manage_custom_emojis: Hallita mukautettuja emojeita manage_custom_emojis_description: Sallii käyttäjien hallita palvelimen mukautettuja emojeita + manage_email_subscriptions: Hallita sähköpostitilauksia + manage_email_subscriptions_description: Sallii käyttäjien tilata sähköpostitse käyttäjiä, joilla on tämä käyttöoikeus manage_federation: Hallita federointia manage_federation_description: Sallii käyttäjien estää tai sallia federointi muiden verkkotunnusten kanssa ja hallita toimitusta manage_invites: Hallita kutsuja @@ -1418,6 +1421,41 @@ fi: basic_information: Perustiedot hint_html: "Mukauta, mitä ihmiset näkevät julkisessa profiilissasi ja julkaisujesi vieressä. Sinua seurataan takaisin ja kanssasi ollaan vuorovaikutuksessa todennäköisemmin, kun sinulla on täytetty profiili ja profiilikuva." other: Muut + redesign_body: Profiilia pääsee muokkaamaan nyt suoraan profiilisivulta. + redesign_button: Siirry sinne + redesign_title: Profiilin muokkauskokemus on uudistunut + email_subscription_mailer: + confirmation: + action: Vahvista sähköpostiosoite + instructions_to_confirm: Vahvista, että haluat saada sähköpostia käyttäjältä %{name} (@%{acct}), kun hän julkaisee uutta. + instructions_to_ignore: Jos et ole varma, miksi sait tämän sähköpostiviestin, voit poistaa sen. Tilaus ei ala, ellet avaa edellä olevaa linkkiä. + subject: Vahvista sähköpostiosoitteesi + title: Otetaanko vastaan sähköpostipäivityksiä käyttäjältä %{name}? + notification: + create_account: Luo Mastodon-tili + footer: + privacy_html: Sähköposti lähetetään verkkotunnuksesta %{domain}, Mastodonin tarjoamalta palvelimelta. Jos haluat ymmärtää, miten tämä palvelin käsittelee henkilötietojasi, katso tietosuojakäytäntö. + reason_for_email_html: Saat tämän sähköpostiviestin, koska olet tilannut sähköpostipäivitykset käyttäjältä %{name}. Etkö halua näitä sähköpostiviestejä? Lopeta tilaus + interact_with_this_post: + one: Ole vuorovaikutuksessa tämän julkaisun kanssa ja löydä lisää sen kaltaista. + other: Olet vuorovaikutuksessa näiden julkaisujen kanssa ja löydä lisää. + subject: + one: 'Uusi julkaisu: ”%{excerpt}”' + other: Uusia julkaisuja käyttäjältä %{name} + title: + one: 'Uusi julkaisu: ”%{excerpt}”' + other: Uusia julkaisuja käyttäjältä %{name} + email_subscriptions: + active: Ota käyttöön + confirmations: + show: + changed_your_mind: Muutitko mieltäsi? + success_html: Alat nyt saada sähköpostia, kun %{name} julkaisee uutta. Lisää %{sender} yhteystietoihisi, jotta nämä julkaisut eivät joudu roskapostikansioon. + title: Olet aloittanut tilauksen + unsubscribe: Lopeta tilaus + inactive: Poissa käytöstä + status: Tila + subscribers: Tilaajia emoji_styles: auto: Automaattinen native: Natiivi @@ -1789,6 +1827,8 @@ fi: posting_defaults: Julkaisun oletukset public_timelines: Julkiset aikajanat privacy: + email_subscriptions: Lähetä julkaisut sähköpostitse + email_subscriptions_hint_html: Lisää profiiliisi sähköpostintilauslomake, joka näkyy kirjautumattomille käyttäjille. Kun vierailijat syöttävät sähköpostiosoitteensa ja hyväksyvät tilauksen, Mastodon lähettää sähköpostipäivityksiä julkisista julkaisuistasi. hint_html: "Määritä, kuinka haluat profiilisi ja julkaisujesi löytyvän. Mastodonissa on monia ominaisuuksia, joiden käyttöönotto voi auttaa sinua tavoittamaan laajemman yleisön. Käytä hetki tarkistaaksesi, sopivatko nämä asetukset käyttöösi." privacy: Yksityisyys privacy_hint_html: Määritä, kuinka paljon muita avustavia tietoja haluat paljastaa. Käyttäjät löytävät kiinnostavia profiileja ja hienoja sovelluksia, kun he selaavat toisten seuraamia käyttäjiä ja kun he näkevät, millä sovelluksilla nämä julkaisevat. Saatat kuitenkin haluta piilottaa nämä tiedot. @@ -2052,6 +2092,28 @@ fi: resume_app_authorization: Jatka sovelluksen valtuutusta role_requirement: "%{domain} vaatii ottamaan kaksivaiheisen todennuksen käyttöön ennen kuin voit käyttää Mastodonia." webauthn: Suojausavaimet + unsubscriptions: + create: + action: Siirry palvelimen etusivulle + email_subscription: + confirmation_html: Et saa enää sähköpostia käyttäjältä %{name}. + title: Olet lopettanut tilauksen + user: + confirmation_html: Et saa enää %{type} Mastodon-palvelimelta %{domain}. + notification_emails: + favourite: sähköposti-ilmoituksia suosikkeihin lisäämisistä + follow: sähköposti-ilmoituksia seuraamisista + follow_request: sähköpostia seurantapyynnöistä + mention: sähköposti-ilmoituksia maininnoista + reblog: sähköposti-ilmoituksia tehostuksista + show: + action: Lopeta tilaus + email_subscription: + confirmation_html: Lakkaat saamasta sähköpostia, kun tämä tili julkaisee uutta. + title: Lopetetaanko käyttäjän %{name} tilaus? + user: + confirmation_html: Lakkaat saamasta %{type} Mastodon-palvelimelta %{domain}. + title: Lopetetaanko tilaus aiheesta %{type}? user_mailer: announcement_published: description: 'Palvelimen %{domain} ylläpito tiedottaa:' diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index c255371b9b3d0e..cbbd9a8a4e6063 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -66,7 +66,7 @@ fr-CA: demote: Rétrograder destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment disable: Geler - disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail + disable_sign_in_token_auth: Désactiver le jeton d'authentification par courriel disable_two_factor_authentication: Désactiver l’authentification à deux facteurs disabled: Gelé display_name: Nom affiché @@ -75,7 +75,7 @@ fr-CA: email: Courriel email_status: État du courriel enable: Dégeler - enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail + enable_sign_in_token_auth: Activer le jeton d'authentification par courriel enabled: Activé enabled_msg: Le compte de %{username} a été dégelé avec succès followers: Abonné·e·s @@ -195,29 +195,29 @@ fr-CA: create_relay: Créer un relais create_unavailable_domain: Créer un domaine indisponible create_user_role: Créer le rôle - create_username_block: Créer une règle de nom d'utilisateur + create_username_block: Créer une règle de nom d'utilisateur·rice demote_user: Rétrograder l’utilisateur·ice destroy_announcement: Supprimer l’annonce - destroy_canonical_email_block: Supprimer le blocage de courriel + destroy_canonical_email_block: Supprimer un blocage de courriel destroy_custom_emoji: Supprimer des émojis personnalisés destroy_domain_allow: Supprimer le domaine autorisé destroy_domain_block: Supprimer le blocage de domaine - destroy_email_domain_block: Supprimer le blocage de domaine de courriel + destroy_email_domain_block: Supprimer un blocage de domaine de courriel destroy_instance: Purge du domaine destroy_ip_block: Supprimer la règle IP - destroy_relay: Supprimer le relais + destroy_relay: Supprimer un relais destroy_status: Supprimer le message destroy_unavailable_domain: Supprimer le domaine indisponible destroy_user_role: Détruire le rôle - destroy_username_block: Supprimer la règle de nom d'utilisateur + destroy_username_block: Supprimer la règle de nom d'utilisateur·rice disable_2fa_user: Désactiver l’A2F disable_custom_emoji: Désactiver les émojis personnalisés disable_relay: Désactiver le relais - disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur + disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par courriel pour l'utilisateur·rice disable_user: Désactiver le compte enable_custom_emoji: Activer les émojis personnalisées enable_relay: Activer le relais - enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur + enable_sign_in_token_auth_user: Activer le jeton d'authentification par courriel pour l'utilisateur·rice enable_user: Activer l’utilisateur memorialize_account: Ériger en mémorial promote_user: Promouvoir l’utilisateur @@ -244,34 +244,34 @@ fr-CA: update_report: Mettre à jour le rapport update_status: Mettre à jour le message update_user_role: Mettre à jour le rôle - update_username_block: Mettre à jour la règle de nom d'utilisateur + update_username_block: Mettre à jour la règle de nom d'utilisateur·rice actions: approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}" approve_user_html: "%{name} a approuvé l’inscription de %{target}" assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}" - change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}" + change_email_user_html: "%{name} a changé l'adresse de courriel de l'utilisateur·rice %{target}" change_role_user_html: "%{name} a changé le rôle de %{target}" - confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}" + confirm_user_html: "%{name} a confirmé l'adresse de courriel de l'utilisateur·rice %{target}" create_account_warning_html: "%{name} a envoyé un avertissement à %{target}" create_announcement_html: "%{name} a créé une nouvelle annonce %{target}" - create_canonical_email_block_html: "%{name} a bloqué l'adresse email avec le hachage %{target}" + create_canonical_email_block_html: "%{name} a bloqué l'adresse de courriel ayant l'empreinte %{target}" create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}" create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}" create_domain_block_html: "%{name} a bloqué le domaine %{target}" - create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}" + create_email_domain_block_html: "%{name} a bloqué le domaine de courriel %{target}" create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}" create_relay_html: "%{name} a créé un relais %{target}" create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}" create_user_role_html: "%{name} a créé le rôle %{target}" - create_username_block_html: "%{name} a ajouté une règle pour les noms d'utilisateur contenant %{target}" + create_username_block_html: "%{name} a ajouté une règle pour les noms d'utilisateur·rice contenant %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" - destroy_canonical_email_block_html: "%{name} a débloqué l'adresse email avec le hachage %{target}" + destroy_canonical_email_block_html: "%{name} a débloqué l'adresse courriel ayant l'empreinte %{target}" destroy_collection_html: "%{name} a supprimé la collection de %{target}" destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}" destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}" destroy_domain_block_html: "%{name} a débloqué le domaine %{target}" - destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}" + destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}" destroy_instance_html: "%{name} a purgé le domaine %{target}" destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}" destroy_relay_html: "%{name} a supprimé le relais %{target}" @@ -295,7 +295,7 @@ fr-CA: reject_user_html: "%{name} a rejeté l’inscription de %{target}" remove_avatar_user_html: "%{name} a supprimé l'avatar de %{target}" reopen_report_html: "%{name} a rouvert le signalement %{target}" - resend_user_html: "%{name} a renvoyé l'e-mail de confirmation pour %{target}" + resend_user_html: "%{name} a renvoyé le courriel de confirmation pour %{target}" reset_password_user_html: "%{name} a réinitialisé le mot de passe de l'utilisateur·rice %{target}" resolve_report_html: "%{name} a résolu le signalement %{target}" sensitive_account_html: "%{name} a marqué le média de %{target} comme sensible" @@ -332,8 +332,8 @@ fr-CA: create: Créer une annonce title: Nouvelle annonce preview: - disclaimer: Étant donné que les utilisateurs ne peuvent pas s'en retirer, les notifications par courriel devraient être limitées à des annonces importantes telles que des violations de données personnelles ou des notifications de fermeture de serveur. - explanation_html: 'L''e-mail sera envoyé à %{display_count} utilisateurs. Le texte suivant sera inclus :' + disclaimer: Étant donné que les utilisateur·rice·s ne peuvent pas les désactiver, les notifications par courriel devraient être limitées à des annonces importantes telles que des violations de données personnelles ou des notifications de fermeture de serveur. + explanation_html: 'Le courriel sera envoyé à %{display_count} utilisateurs. Le texte suivant sera inclus :' title: Aperçu de la notification d'annonce publish: Publier published_msg: Annonce publiée avec succès ! @@ -472,7 +472,7 @@ fr-CA: attempts_over_week: one: "%{count} tentative au cours de la dernière semaine" other: "%{count} tentatives au cours de la dernière semaine" - created_msg: Domaine d'e-mail bloqué avec succès + created_msg: Domaine de courriel bloqué avec succès delete: Supprimer dns: types: @@ -484,10 +484,7 @@ fr-CA: title: Blocage d'un nouveau domaine de messagerie électronique no_email_domain_block_selected: Aucun blocage de domaine de messagerie n'a été modifié comme aucun n'a été sélectionné not_permitted: Non autorisé - resolved_dns_records_hint_html: |- - Le nom de domaine se réfère aux domaines MX suivants, qui sont à leur tour responsables de la réception des courriels. - - Le blocage d'un domaine MX empêchera l'inscription depuis toute adresse électronique ayant recours au même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie. + resolved_dns_records_hint_html: Le nom de domaine est lié aux domaines MX suivants, qui sont responsables de la réception des courriels. Le blocage d'un domaine MX empêchera l'inscription de toute adresse de courriel utilisant le même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie. resolved_through_html: Résolu par %{domain} title: Domaines de messagerie électronique bloqués export_domain_allows: @@ -680,7 +677,7 @@ fr-CA: resolve_description_html: Aucune mesure ne sera prise contre le compte signalé, aucune sanction ne sera enregistrée et le sigalement sera clôturé. silence_description_html: Le compte ne sera visible que par ceux qui le suivent déjà ou qui le recherchent manuellement, ce qui limite fortement sa portée. Cette action peut toujours être annulée. Cloture tous les signalements concernant ce compte. suspend_description_html: Le compte et tous ses contenus seront inaccessibles et finalement supprimés, et il sera impossible d'interagir avec lui. Réversible dans les 30 jours. Cloture tous les signalements concernant ce compte. - actions_description_html: Décidez de l'action à entreprendre pour résoudre ce signalement. Si vous prenez une mesure punitive à l'encontre du compte signalé, une notification par courrier électronique lui sera envoyée, excepté lorsque la catégorie Spam est sélectionnée. + actions_description_html: Décider de l'action à entreprendre pour traiter ce signalement. Si vous prenez une mesure punitive à l'encontre du compte signalé, une notification sera envoyée par courriel, sauf si la catégorie Spam est sélectionnée. actions_description_remote_html: Décidez des mesures à prendre pour résoudre ce signalement. Cela n'affectera que la manière dont votre serveur communique avec ce compte distant et traite son contenu. actions_no_posts: Ce signalement n'a pas de messages qui lui sont associés et qui devraient être supprimés add_to_report: Ajouter davantage au rapport @@ -765,6 +762,7 @@ fr-CA: categories: administration: Administration devops: DevOps + email: Courriel invites: Invitations moderation: Modération special: Spécial @@ -793,6 +791,8 @@ fr-CA: manage_blocks_description: Permet aux utilisateur⋅rice⋅s de bloquer des fournisseurs de courriel et des adresses IP manage_custom_emojis: Gérer les émojis personnalisés manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur + manage_email_subscriptions: Gérer les abonnements par courriel + manage_email_subscriptions_description: Autoriser l'abonnement par courriel aux comptes ayant cette permission manage_federation: Gérer de la féderation manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison manage_invites: Gérer les invitations @@ -1041,18 +1041,18 @@ fr-CA: history: Historique live: En cours d'utilisation no_history: Il n'y a pas encore de modifications enregistrées des conditions d'utilisation. - no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateurs. - notified_on_html: Utilisateurs notifiés le `%{date}` - notify_users: Notifier les utilisateurs + no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateur·rice·s. + notified_on_html: Utilisateur·rice·s notifié·e·s le %{date} + notify_users: Notifier les utilisateur·rice·s preview: - explanation_html: 'L''e-mail sera envoyé aux utilisateurs %{display_count} qui se sont inscrits avant %{date}. Le texte suivant sera inclus dans l''e-mail :' + explanation_html: 'Le courriel sera envoyé aux %{display_count} utilisateur·rice·s qui se sont inscrits avant le %{date}. Le texte suivant sera inclus dans le message :' send_preview: Envoyer un aperçu à %{email} send_to_all: - one: Envoyer %{display_count} email - other: Envoyer %{display_count} emails - title: Notification concernant l'aperçu des conditions d'utilisation + one: Envoyer %{display_count} courriel + other: Envoyer %{display_count} courriels + title: Aperçu de la notification des conditions d'utilisation publish: Publier - published_on_html: Publié le %{date} + published_on_html: Publiés le %{date} save_draft: Enregistrer le brouillon title: Conditions d'utilisation title: Administration @@ -1253,7 +1253,7 @@ fr-CA: hint_html: Juste une autre chose! Nous avons besoin de confirmer que vous êtes un humain (pour que nous puissions empêcher les spams!). Résolvez le CAPTCHA ci-dessous et cliquez sur "Continuer". title: Vérification de sécurité confirmations: - awaiting_review: Votre adresse de messagerie est confirmée ! L'équipe de %{domain} est en train d'examiner votre inscription. Vous recevrez un e-mail si votre compte est approuvé ! + awaiting_review: Votre adresse de courriel est confirmée ! L'équipe de %{domain} est en train d'examiner votre inscription. Vous recevrez un courriel si votre compte est approuvé ! awaiting_review_title: Votre inscription est en cours de validation clicking_this_link: cliquer sur ce lien login_link: vous connecter @@ -1261,7 +1261,7 @@ fr-CA: redirect_to_app_html: Vous auriez dû être redirigé vers l’application %{app_name}. Si cela ne s’est pas produit, essayez de %{clicking_this_link} ou de revenir manuellement à l’application. registration_complete: Votre inscription sur %{domain} est désormais terminée ! welcome_title: Bienvenue, %{name} ! - wrong_email_hint: Si cette adresse de messagerie est incorrecte, vous pouvez la modifier dans vos paramètres de compte. + wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -1281,7 +1281,7 @@ fr-CA: migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici. or_log_in_with: Ou authentifiez-vous avec progress: - confirm: Confirmation de l'adresse mail + confirm: Confirmer l'adresse de courriel details: Vos infos list: Progression de l'inscription review: Notre avis @@ -1305,10 +1305,10 @@ fr-CA: security: Sécurité set_new_password: Définir le nouveau mot de passe setup: - email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte. - email_settings_hint_html: Cliquez sur le lien que nous avons envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendrons ici. + email_below_hint_html: Consultez votre dossier de courriels indésirables ou demandez-en un autre. Vous pouvez corriger votre adresse de courriel si elle est incorrecte. + email_settings_hint_html: Cliquer sur le lien envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendons ici. link_not_received: Vous n'avez pas reçu de lien? - new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes ! + new_confirmation_instructions_sent: Vous allez recevoir un nouveau courriel avec le lien de confirmation dans quelques minutes ! title: Vérifiez votre boîte de réception sign_in: preamble_html: Connectez-vous avec vos identifiants sur %{domain}. Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici. @@ -1321,7 +1321,7 @@ fr-CA: account_status: État du compte confirming: En attente de la confirmation par courrier électronique. functional: Votre compte est entièrement opérationnel. - pending: Votre demande est en attente d’examen par notre équipe. Cela peut prendre un certain temps. Vous recevrez un e-mail si votre demande est approuvée. + pending: Votre demande est en attente d’examen par notre équipe. Cela peut prendre un certain temps. Vous recevrez un courriel si votre demande est approuvée. redirecting_to: Votre compte est inactif car il est actuellement redirigé vers %{acct}. self_destruct: Comme %{domain} est en train de fermer, vous n’aurez qu’un accès limité à votre compte. view_strikes: Voir les sanctions précédemment appliquées à votre compte @@ -1380,9 +1380,9 @@ fr-CA: before: 'Veuillez lire attentivement ces notes avant de continuer :' caches: Le contenu mis en cache par d'autres serveurs peut persister data_removal: Vos messages et autres données seront définitivement supprimés - email_change_html: Vous pouvez modifier votre adresse e-mail sans supprimer votre compte - email_contact_html: S'il ne vous est toujours pas parvenu, vous pouvez envoyer un message à %{email} pour obtenir de l'aide - email_reconfirmation_html: Dans le cas où vous n'auriez pas reçu l'email de confirmation, vous pouvez en réclamer un nouveau + email_change_html: Vous pouvez modifier votre adresse de courriel sans supprimer votre compte + email_contact_html: S'il ne vous est toujours pas parvenu, vous pouvez envoyer un courriel à %{email} pour obtenir de l'aide + email_reconfirmation_html: Si vous ne recevez pas le courriel de confirmation, vous pouvez en réclamer un nouveau irreversible: Vous ne pourrez pas restaurer ou réactiver votre compte more_details_html: Pour plus de détails, voir la politique de confidentialité. username_available: Votre nom d’utilisateur·rice sera à nouveau disponible @@ -1421,6 +1421,41 @@ fr-CA: basic_information: Informations de base hint_html: "Personnalisez ce que les gens voient sur votre profil public et à côté de vos messages. Les autres personnes seront plus susceptibles de vous suivre et d’interagir avec vous lorsque vous avez un profil complet et une photo." other: Autre + redesign_body: La modification du profil est maintenant accessible directement depuis la page de profil. + redesign_button: Accéder + redesign_title: Nouvelle expérience de modification du profil + email_subscription_mailer: + confirmation: + action: Confirmer l'adresse de courriel + instructions_to_confirm: Veuillez confirmer que vous souhaitez recevoir des courriels de %{name} (@%{acct}) lors de la publication de nouveaux messages. + instructions_to_ignore: Si vous ne savez pas pourquoi vous recevez ce courriel, vous pouvez le supprimer. Vous ne serez pas abonné·e si vous ne cliquez pas sur le lien ci-dessus. + subject: Confirmer votre adresse de courriel + title: Recevoir les notifications par courriel de %{name} ? + notification: + create_account: Créer un compte Mastodon + footer: + privacy_html: Les courriels sont envoyés par %{domain}, un serveur propulsé par Mastodon. Pour comprendre comment ce serveur utilise vos données personnelles, se référer à la politique de confidentialité. + reason_for_email_html: Vous recevez ce courriel car vous avez choisi de recevoir les notifications de %{name}. Vous ne souhaitez pas recevoir ces courriels ? Désabonnez-vous + interact_with_this_post: + one: Interagissez avec ce message pour en découvrir d'autres. + other: Interagissez avec ces messages pour en découvrir plus. + subject: + one: 'Nouveau message : « %{excerpt} »' + other: Nouveaux messages de %{name} + title: + one: 'Nouveau message : « %{excerpt} »' + other: Nouveaux messages de %{name} + email_subscriptions: + active: Actif + confirmations: + show: + changed_your_mind: Vous avez changé d'avis ? + success_html: Vous allez maintenant commencer à recevoir des courriels quand %{name} publie de nouveaux messages. Ajoutez %{sender} à vos contacts pour que ces messages ne soient pas considérés comme des courriels indésirables. + title: Vous êtes abonné·e + unsubscribe: Se désabonner + inactive: Inactif + status: État + subscribers: Abonné·e·s emoji_styles: auto: Auto native: Natif @@ -1746,7 +1781,7 @@ fr-CA: subject: "%{name} a modifié un message" notifications: administration_emails: Notifications d'administration par courriel - email_events: Événements pour les notifications par e-mail + email_events: Événements pour les notifications par courriel email_events_hint: 'Sélectionnez les événements pour lesquels vous souhaitez recevoir des notifications :' number: human: @@ -1792,6 +1827,8 @@ fr-CA: posting_defaults: Paramètres de publication par défaut public_timelines: Fils publics privacy: + email_subscriptions: Envoyer des messages par courriel + email_subscriptions_hint_html: Ajoute un formulaire d'abonnement par courriel à votre profil pour les personnes non connectées. Après avoir validé leur adresse courriel, Mastodon leur enverra des notifications pour vos messages publics. hint_html: "Personnalisez la façon dont votre profil et vos messages peuvent être découverts. Mastodon peut vous aider à atteindre un public plus large lorsque certains paramètres sont activés. Prenez le temps de les examiner pour vous assurer qu’ils sont configurés comme vous le souhaitez." privacy: Confidentialité privacy_hint_html: Contrôler ce que vous souhaitez divulguer. Les utilisateur·rice·s découvrent des profils intéressants en parcourant ceux suivis par d’autres personnes et des applications sympas en voyant celles utilisées pour publier des messages, mais vous préférez peut-être ne pas dévoiler ces informations. @@ -2055,6 +2092,28 @@ fr-CA: resume_app_authorization: Reprendre l'autorisation de l'application role_requirement: "%{domain} nécessite de configurer une authentification à deux facteurs avant de pouvoir utiliser Mastodon." webauthn: Clés de sécurité + unsubscriptions: + create: + action: Aller à la page d'accueil du serveur + email_subscription: + confirmation_html: Vous ne recevrez plus de courriels de %{name}. + title: Vous êtes désabonné·e + user: + confirmation_html: Vous ne recevrez plus de %{type} de Mastodon depuis %{domain}. + notification_emails: + favourite: courriels de notification de mise en favori + follow: courriels de notification d'abonnement + follow_request: courriels de demande d'abonnement + mention: courriels de notification de mention + reblog: courriels de notification de partage + show: + action: Se désabonner + email_subscription: + confirmation_html: Vous ne recevrez plus de courriels quand ce compte publiera de nouveaux messages. + title: Se désabonner de %{name} ? + user: + confirmation_html: Vous ne recevrez plus de %{type} de Mastodon depuis %{domain}. + title: Se désabonner des %{type} ? user_mailer: announcement_published: description: 'Les administrateurs de %{domain} font une annonce :' @@ -2092,8 +2151,8 @@ fr-CA: terms_of_service_changed: agreement: En continuant d'utiliser %{domain}, vous acceptez ces conditions. Si vous n'êtes pas d'accord avec les conditions mises à jour, vous pouvez résilier votre accord avec %{domain} à tout moment en supprimant votre compte. changelog: 'En un coup d''œil, voici ce que cette mise à jour signifie pour vous :' - description: 'Vous recevez cet e-mail parce que nous apportons des modifications à nos conditions de service à %{domain}. Ces modifications entreront en vigueur le %{date}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :' - description_html: Vous recevez cet e-mail parce que nous apportons des modifications à nos conditions de service à %{domain}. Ces mises à jour entreront en vigueur le %{date}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici. + description: 'Vous recevez ce courriel parce que nous apportons des modifications à nos conditions de service de %{domain}. Ces modifications entreront en vigueur le %{date}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :' + description_html: Vous recevez ce courriel parce que nous apportons des modifications à nos conditions de service de %{domain}. Ces mises à jour entreront en vigueur le %{date}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici. sign_off: L'équipe %{domain} subject: Mises à jour de nos conditions d'utilisation subtitle: Les conditions d'utilisation de `%{domain}` changent @@ -2175,7 +2234,7 @@ fr-CA: invalid_otp_token: Le code d’authentification à deux facteurs est invalide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} rate_limited: Trop de tentatives d'authentification, réessayez plus tard. - seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles. + seamless_external_login: Vous êtes connectés via un service externe, donc les paramètres de mot de passe et de courriel ne sont pas disponibles. signed_in_as: 'Connecté·e en tant que :' verification: extra_instructions_html: Astuce: Le lien sur votre site Web peut être invisible. La partie importante est rel="me" qui évite d’autres liens provenant de contenu générés par des utilisateurs tiers d'être pris en compte. Vous pouvez même utiliser une balise link dans l’en-tête de la page au lieu de a, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript. diff --git a/config/locales/fr.yml b/config/locales/fr.yml index b8fe93c5e0df79..3014b8ed1d4858 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -65,19 +65,19 @@ fr: deleted: Supprimé demote: Rétrograder destroyed_msg: Les données de %{username} sont maintenant en file d’attente pour être supprimées imminemment - disable: Geler - disable_sign_in_token_auth: Désactiver le jeton d'authentification par e-mail + disable: Désactiver + disable_sign_in_token_auth: Désactiver le jeton d'authentification par courriel disable_two_factor_authentication: Désactiver l’authentification à deux facteurs - disabled: Gelé - display_name: Nom affiché + disabled: Désactivé + display_name: Nom public domain: Domaine edit: Modifier email: Adresse de courriel - email_status: État du courriel - enable: Dégeler - enable_sign_in_token_auth: Activer le jeton d'authentification par e-mail + email_status: État de l'adresse de courriel + enable: Activer + enable_sign_in_token_auth: Activer le jeton d'authentification par courriel enabled: Activé - enabled_msg: Le compte de %{username} a été dégelé avec succès + enabled_msg: Le compte de %{username} a été activé avec succès followers: Abonné·e·s follows: Abonnements header: Image de couverture @@ -171,7 +171,7 @@ fr: unsilenced_msg: La limitation du compte de %{username} a été annulée avec succès unsubscribe: Se désabonner unsuspended_msg: Le compte de %{username} a été réactivé avec succès - username: Nom d’utilisateur·ice + username: Nom d’utilisateur·rice view_domain: Voir le résumé du domaine warn: Avertissement web: Web @@ -194,30 +194,30 @@ fr: create_ip_block: Créer une règle IP create_relay: Créer un relais create_unavailable_domain: Créer un domaine indisponible - create_user_role: Créer le rôle - create_username_block: Créer une règle de nom d'utilisateur - demote_user: Rétrograder l’utilisateur·ice - destroy_announcement: Supprimer l’annonce - destroy_canonical_email_block: Supprimer le blocage de courriel - destroy_custom_emoji: Supprimer des émojis personnalisés - destroy_domain_allow: Supprimer le domaine autorisé - destroy_domain_block: Supprimer le blocage de domaine - destroy_email_domain_block: Supprimer le blocage de domaine de courriel - destroy_instance: Purge du domaine - destroy_ip_block: Supprimer la règle IP - destroy_relay: Supprimer le relais - destroy_status: Supprimer le message - destroy_unavailable_domain: Supprimer le domaine indisponible - destroy_user_role: Détruire le rôle - destroy_username_block: Supprimer la règle de nom d'utilisateur - disable_2fa_user: Désactiver l’A2F + create_user_role: Créer un rôle + create_username_block: Créer une règle de nom d'utilisateur·rice + demote_user: Rétrograder un·e utilisateur·ice + destroy_announcement: Supprimer une annonce + destroy_canonical_email_block: Supprimer un blocage de courriel + destroy_custom_emoji: Supprimer un émoji personnalisé + destroy_domain_allow: Supprimer un domaine autorisé + destroy_domain_block: Supprimer un blocage de domaine + destroy_email_domain_block: Supprimer un blocage de domaine de courriel + destroy_instance: Purger un domaine + destroy_ip_block: Supprimer une règle IP + destroy_relay: Supprimer un relais + destroy_status: Supprimer un message + destroy_unavailable_domain: Supprimer un domaine indisponible + destroy_user_role: Supprimer le rôle + destroy_username_block: Supprimer la règle de nom d'utilisateur·rice + disable_2fa_user: Désactiver l’authentification à deux facteurs disable_custom_emoji: Désactiver les émojis personnalisés disable_relay: Désactiver le relais - disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par e-mail pour l'utilisateur + disable_sign_in_token_auth_user: Désactiver le jeton d'authentification par courriel pour l'utilisateur·rice disable_user: Désactiver le compte enable_custom_emoji: Activer les émojis personnalisées enable_relay: Activer le relais - enable_sign_in_token_auth_user: Activer le jeton d'authentification par e-mail pour l'utilisateur + enable_sign_in_token_auth_user: Activer le jeton d'authentification par courriel pour l'utilisateur·rice enable_user: Activer le compte memorialize_account: Ériger en mémorial promote_user: Promouvoir le compte @@ -226,11 +226,11 @@ fr: reject_user: Rejeter le compte remove_avatar_user: Supprimer l’avatar reopen_report: Rouvrir le signalement - resend_user: Renvoyer l'e-mail de confirmation + resend_user: Renvoyer le courriel de confirmation reset_password_user: Réinitialiser le mot de passe - resolve_report: Résoudre le signalement - sensitive_account: Marquer les médias de votre compte comme sensibles - silence_account: Limiter le compte + resolve_report: Traiter le signalement + sensitive_account: Marquer le compte comme sensible + silence_account: Masquer le compte suspend_account: Suspendre le compte unassigned_report: Ne plus assigner le signalement unblock_email_account: Débloquer l’adresse de courriel @@ -244,36 +244,36 @@ fr: update_report: Mettre à jour le rapport update_status: Mettre à jour le message update_user_role: Mettre à jour le rôle - update_username_block: Mettre à jour la règle de nom d'utilisateur + update_username_block: Mettre à jour la règle de nom d'utilisateur·rice actions: approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}" approve_user_html: "%{name} a approuvé l’inscription de %{target}" assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}" - change_email_user_html: "%{name} a changé l'adresse e-mail de l'utilisateur \n%{target}" + change_email_user_html: "%{name} a changé l'adresse de courriel de l'utilisateur·rice %{target}" change_role_user_html: "%{name} a changé le rôle de %{target}" - confirm_user_html: "%{name} a confirmé l'adresse e-mail de l'utilisateur %{target}" + confirm_user_html: "%{name} a confirmé l'adresse de courriel de l'utilisateur·rice %{target}" create_account_warning_html: "%{name} a envoyé un avertissement à %{target}" - create_announcement_html: "%{name} a créé une nouvelle annonce %{target}" - create_canonical_email_block_html: "%{name} a bloqué l'adresse email avec le hachage %{target}" - create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}" + create_announcement_html: "%{name} a créé la nouvelle annonce %{target}" + create_canonical_email_block_html: "%{name} a bloqué l'adresse de courriel ayant l'empreinte %{target}" + create_custom_emoji_html: "%{name} a téléversé le nouvel émoji %{target}" create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}" create_domain_block_html: "%{name} a bloqué le domaine %{target}" - create_email_domain_block_html: "%{name} a bloqué le domaine d'e-mail %{target}" - create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}" + create_email_domain_block_html: "%{name} a bloqué le domaine de courriel %{target}" + create_ip_block_html: "%{name} a créé la règle pour IP %{target}" create_relay_html: "%{name} a créé un relais %{target}" create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}" create_user_role_html: "%{name} a créé le rôle %{target}" - create_username_block_html: "%{name} a ajouté une règle pour les noms d'utilisateur contenant %{target}" + create_username_block_html: "%{name} a ajouté une règle pour les noms d'utilisateur·rice contenant %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" - destroy_canonical_email_block_html: "%{name} a débloqué l'adresse email avec le hachage %{target}" + destroy_canonical_email_block_html: "%{name} a débloqué l'adresse courriel ayant l'empreinte %{target}" destroy_collection_html: "%{name} a supprimé la collection de %{target}" destroy_custom_emoji_html: "%{name} a supprimé l'émoji %{target}" - destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}" + destroy_domain_allow_html: "%{name} a supprimé la fédération avec le domaine %{target}" destroy_domain_block_html: "%{name} a débloqué le domaine %{target}" - destroy_email_domain_block_html: "%{name} a débloqué le domaine d'e-mail %{target}" + destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}" destroy_instance_html: "%{name} a purgé le domaine %{target}" - destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}" + destroy_ip_block_html: "%{name} a supprimé la règle pour IP %{target}" destroy_relay_html: "%{name} a supprimé le relais %{target}" destroy_status_html: "%{name} a supprimé le message de %{target}" destroy_unavailable_domain_html: "%{name} a repris la livraison au domaine %{target}" @@ -295,11 +295,11 @@ fr: reject_user_html: "%{name} a rejeté l’inscription de %{target}" remove_avatar_user_html: "%{name} a supprimé l'avatar de %{target}" reopen_report_html: "%{name} a rouvert le signalement %{target}" - resend_user_html: "%{name} a renvoyé l'e-mail de confirmation pour %{target}" + resend_user_html: "%{name} a renvoyé le courriel de confirmation pour %{target}" reset_password_user_html: "%{name} a réinitialisé le mot de passe de l'utilisateur·rice %{target}" - resolve_report_html: "%{name} a résolu le signalement %{target}" + resolve_report_html: "%{name} a traité le signalement %{target}" sensitive_account_html: "%{name} a marqué le média de %{target} comme sensible" - silence_account_html: "%{name} a limité le compte de %{target}" + silence_account_html: "%{name} a masqué le compte de %{target}" suspend_account_html: "%{name} a suspendu le compte de %{target}" unassigned_report_html: "%{name} a désassigné le signalement %{target}" unblock_email_account_html: "%{name} a débloqué l’adresse de courriel de %{target}" @@ -332,8 +332,8 @@ fr: create: Créer une annonce title: Nouvelle annonce preview: - disclaimer: Étant donné que les utilisateurs ne peuvent pas s'en retirer, les notifications par courriel devraient être limitées à des annonces importantes telles que des violations de données personnelles ou des notifications de fermeture de serveur. - explanation_html: 'L''e-mail sera envoyé à %{display_count} utilisateurs. Le texte suivant sera inclus :' + disclaimer: Étant donné que les utilisateur·rice·s ne peuvent pas les désactiver, les notifications par courriel devraient être limitées à des annonces importantes telles que des violations de données personnelles ou des notifications de fermeture de serveur. + explanation_html: 'Le courriel sera envoyé à %{display_count} utilisateurs. Le texte suivant sera inclus :' title: Aperçu de la notification d'annonce publish: Publier published_msg: Annonce publiée avec succès ! @@ -405,7 +405,7 @@ fr: pending_users_html: one: "%{count} utilisateur·rice en attente" other: "%{count} utilisateur·rice·s en attente" - resolved_reports: rapports résolus + resolved_reports: rapports traités software: Logiciel sources: Sources d'inscription space: Espace utilisé @@ -467,27 +467,24 @@ fr: undo: Annuler le blocage de domaine view: Afficher les blocages de domaines email_domain_blocks: - add_new: Ajouter un nouveau + add_new: Ajouter allow_registrations_with_approval: Autoriser les inscriptions avec approbation attempts_over_week: - one: "%{count} tentative au cours de la dernière semaine" - other: "%{count} tentatives au cours de la dernière semaine" - created_msg: Domaine d'e-mail bloqué avec succès + one: "%{count} tentative d'inscription au cours de la dernière semaine" + other: "%{count} tentatives d'inscription au cours de la dernière semaine" + created_msg: Domaine de courriel bloqué avec succès delete: Supprimer dns: types: mx: Enregistrement MX domain: Domaine new: - create: Créer le blocage + create: Ajouter un domaine resolve: Résoudre le domaine title: Blocage d'un nouveau domaine de messagerie électronique no_email_domain_block_selected: Aucun blocage de domaine de messagerie n'a été modifié comme aucun n'a été sélectionné not_permitted: Non autorisé - resolved_dns_records_hint_html: |- - Le nom de domaine se réfère aux domaines MX suivants, qui sont à leur tour responsables de la réception des courriels. - - Le blocage d'un domaine MX empêchera l'inscription depuis toute adresse électronique ayant recours au même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie. + resolved_dns_records_hint_html: Le nom de domaine est lié aux domaines MX suivants, qui sont responsables de la réception des courriels. Le blocage d'un domaine MX empêchera l'inscription de toute adresse de courriel utilisant le même domaine MX, et ce même si le nom de domaine visible est différent. Veillez à ne pas bloquer les principaux fournisseurs de services de messagerie. resolved_through_html: Résolu par %{domain} title: Domaines de messagerie électronique bloqués export_domain_allows: @@ -680,8 +677,8 @@ fr: resolve_description_html: Aucune mesure ne sera prise contre le compte signalé, aucune sanction ne sera enregistrée et le sigalement sera clôturé. silence_description_html: Le compte ne sera visible que par ceux qui le suivent déjà ou qui le recherchent manuellement, ce qui limite fortement sa portée. Cette action peut toujours être annulée. Cloture tous les signalements concernant ce compte. suspend_description_html: Le compte et tous ses contenus seront inaccessibles et finalement supprimés, et il sera impossible d'interagir avec lui. Réversible dans les 30 jours. Cloture tous les signalements concernant ce compte. - actions_description_html: Décidez de l'action à entreprendre pour résoudre ce signalement. Si vous prenez une mesure punitive à l'encontre du compte signalé, une notification par courrier électronique lui sera envoyée, excepté lorsque la catégorie Spam est sélectionnée. - actions_description_remote_html: Décidez des mesures à prendre pour résoudre ce signalement. Cela n'affectera que la manière dont votre serveur communique avec ce compte distant et traite son contenu. + actions_description_html: Décider de l'action à entreprendre pour traiter ce signalement. Si vous prenez une mesure punitive à l'encontre du compte signalé, une notification sera envoyée par courriel, sauf si la catégorie Spam est sélectionnée. + actions_description_remote_html: Décider des mesures à prendre pour traiter ce signalement. Cela n'affectera que la manière dont votre serveur communique avec ce compte distant et traite son contenu. actions_no_posts: Ce signalement n'a pas de messages qui lui sont associés et qui devraient être supprimés add_to_report: Ajouter davantage au rapport already_suspended_badges: @@ -705,13 +702,13 @@ fr: forwarded: Transféré forwarded_replies_explanation: Ce rapport provient d'un utilisateur sur une autre instance et concerne du contenu non-local. Il vous a été transmis car le contenu signalé est en réponse à l'un de vos utilisateurs. forwarded_to: Transféré à %{domain} - mark_as_resolved: Marquer comme résolu + mark_as_resolved: Marquer comme traité mark_as_sensitive: Marquer comme sensible - mark_as_unresolved: Marquer comme non-résolu + mark_as_unresolved: Marquer comme non-traité no_one_assigned: Personne notes: create: Ajouter une note - create_and_resolve: Résoudre avec une note + create_and_resolve: Traiter avec une note create_and_unresolve: Ré-ouvrir avec une note delete: Supprimer placeholder: Décrivez quelles actions ont été prises, ou toute autre mise à jour… @@ -726,8 +723,8 @@ fr: reported_by: Signalé par reported_content: Contenu signalé reported_with_application: Signalé avec l'application - resolved: Résolus - resolved_msg: Signalement résolu avec succès ! + resolved: Traité + resolved_msg: Signalement traité avec succès ! skip_to_actions: Passer aux actions status: Statut statuses: Messages (%{count}) @@ -743,8 +740,8 @@ fr: mark_as_sensitive_html: marquer le média des messages incriminés comme sensible silence_html: limiter drastiquement la portée du compte de @%{acct} en rendant son profil, ainsi que ses contenus, visibles uniquement des personnes déjà abonnées ou qui le recherchent manuellement suspend_html: suspendre le compte de @%{acct}, ce qui empêche toute interaction avec son profil et tout accès à ses contenus - close_report: 'marquer le signalement #%{id} comme résolu' - close_reports_html: marquer tous les signalements de @%{acct} comme résolus + close_report: Marquer le signalement n°%{id} comme traité + close_reports_html: Marquer tous les signalements de @%{acct} comme traités delete_data_html: effacer le profil de @%{acct} et ses contenus dans 30 jours, à moins que la suspension du compte ne soit annulée entre temps preview_preamble_html: "@%{acct} recevra un avertissement contenant les éléments suivants :" record_strike_html: enregistrer une sanction contre @%{acct} pour vous aider à prendre des mesures supplémentaires en cas d'infractions futures de ce compte @@ -754,7 +751,7 @@ fr: title: Signalements unassign: Dés-assigner unknown_action_msg: 'Action inconnue : %{action}' - unresolved: Non résolus + unresolved: Non traité updated_at: Mis à jour view_profile: Voir le profil roles: @@ -765,6 +762,7 @@ fr: categories: administration: Administration devops: DevOps + email: Courriel invites: Invitations moderation: Modération special: Spécial @@ -793,6 +791,8 @@ fr: manage_blocks_description: Permet aux utilisateur⋅rice⋅s de bloquer des fournisseurs de courriel et des adresses IP manage_custom_emojis: Gérer les émojis personnalisés manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur + manage_email_subscriptions: Gérer les abonnements par courriel + manage_email_subscriptions_description: Autoriser l'abonnement par courriel aux comptes ayant cette permission manage_federation: Gérer de la féderation manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison manage_invites: Gérer les invitations @@ -1041,18 +1041,18 @@ fr: history: Historique live: En cours d'utilisation no_history: Il n'y a pas encore de modifications enregistrées des conditions d'utilisation. - no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateurs. - notified_on_html: Utilisateurs notifiés le `%{date}` - notify_users: Notifier les utilisateurs + no_terms_of_service_html: Vous n'avez actuellement aucune condition d'utilisation configurée. Les conditions d'utilisation ont pour but de clarifier les droits et obligations de chacun lors de l'utilisation du service et de vous protéger contre d'éventuelles responsabilités en cas de litige avec vos utilisateur·rice·s. + notified_on_html: Utilisateur·rice·s notifié·e·s le %{date} + notify_users: Notifier les utilisateur·rice·s preview: - explanation_html: 'L''e-mail sera envoyé aux utilisateurs %{display_count} qui se sont inscrits avant %{date}. Le texte suivant sera inclus dans l''e-mail :' + explanation_html: 'Le courriel sera envoyé aux %{display_count} utilisateur·rice·s qui se sont inscrits avant le %{date}. Le texte suivant sera inclus dans le message :' send_preview: Envoyer un aperçu à %{email} send_to_all: - one: Envoyer %{display_count} email - other: Envoyer %{display_count} emails - title: Notification concernant l'aperçu des conditions d'utilisation + one: Envoyer %{display_count} courriel + other: Envoyer %{display_count} courriels + title: Aperçu de la notification des conditions d'utilisation publish: Publier - published_on_html: Publié le %{date} + published_on_html: Publiés le %{date} save_draft: Enregistrer le brouillon title: Conditions d'utilisation title: Administration @@ -1182,11 +1182,11 @@ fr: new_appeal: actions: delete_statuses: effacer les messages - disable: geler le compte + disable: désactiver le compte mark_statuses_as_sensitive: marquer les messages comme sensibles none: un avertissement sensitive: marquer le compte comme sensible - silence: limiter le compte + silence: masquer le compte suspend: suspendre le compte body: "%{target} fait appel de la décision de modération émise par %{action_taken_by} le %{date} et qui était : %{type}. Cette personne a écrit :" next_steps: Vous pouvez approuver l'appel pour annuler la décision de modération, ou l'ignorer. @@ -1250,10 +1250,10 @@ fr: apply_for_account: Demander un compte captcha_confirmation: help_html: Si vous avez des problèmes pour résoudre le CAPTCHA, vous pouvez nous contacter via %{email} et nous pourrons vous aider. - hint_html: Encore une chose ! Nous avons besoin de confirmer que vous êtes un humain (c'est pour que nous puissions empêcher les spams !). Résolvez le CAPTCHA ci-dessous et cliquez sur "Continuer". + hint_html: Encore une chose ! Nous avons besoin de confirmer que vous êtes un être humain (c'est pour que nous puissions empêcher les messages indésirables !). Résolvez le CAPTCHA ci-dessous et cliquez sur « Continuer ». title: Vérification de sécurité confirmations: - awaiting_review: Votre adresse de messagerie est confirmée ! L'équipe de %{domain} est en train d'examiner votre inscription. Vous recevrez un e-mail si votre compte est approuvé ! + awaiting_review: Votre adresse de courriel est confirmée ! L'équipe de %{domain} est en train d'examiner votre inscription. Vous recevrez un courriel si votre compte est approuvé ! awaiting_review_title: Votre inscription est en cours de validation clicking_this_link: cliquer sur ce lien login_link: vous connecter @@ -1261,7 +1261,7 @@ fr: redirect_to_app_html: Vous auriez dû être redirigé vers l’application %{app_name}. Si cela ne s’est pas produit, essayez de %{clicking_this_link} ou de revenir manuellement à l’application. registration_complete: Votre inscription sur %{domain} est désormais terminée ! welcome_title: Bienvenue, %{name} ! - wrong_email_hint: Si cette adresse de messagerie est incorrecte, vous pouvez la modifier dans vos paramètres de compte. + wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte. delete_account: Supprimer le compte delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action. description: @@ -1277,14 +1277,14 @@ fr: log_in_with: Se connecter via login: Se connecter logout: Se déconnecter - migrate_account: Déménager vers un compte différent + migrate_account: Déménager vers un autre compte migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici. - or_log_in_with: Ou authentifiez-vous avec + or_log_in_with: Ou connectez-vous avec progress: - confirm: Confirmation de l'adresse mail + confirm: Confirmer l'adresse de courriel details: Vos infos list: Progression de l'inscription - review: Notre avis + review: Vérification rules: Accepter les règles providers: cas: CAS @@ -1305,10 +1305,10 @@ fr: security: Sécurité set_new_password: Définir le nouveau mot de passe setup: - email_below_hint_html: Consultez votre dossier de courrier indésirable ou demandez-en un autre. Vous pouvez corriger votre adresse e-mail si elle est incorrecte. - email_settings_hint_html: Cliquez sur le lien que nous avons envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendrons ici. + email_below_hint_html: Consultez votre dossier de courriels indésirables ou demandez-en un autre. Vous pouvez corriger votre adresse de courriel si elle est incorrecte. + email_settings_hint_html: Cliquer sur le lien envoyé à %{email} pour commencer à utiliser Mastodon. Nous vous attendons ici. link_not_received: Vous n'avez pas reçu de lien ? - new_confirmation_instructions_sent: Vous allez recevoir un nouvel e-mail avec le lien de confirmation dans quelques minutes ! + new_confirmation_instructions_sent: Vous allez recevoir un nouveau courriel avec le lien de confirmation dans quelques minutes ! title: Vérifiez votre boîte de réception sign_in: preamble_html: Connectez-vous avec vos identifiants sur %{domain}. Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici. @@ -1321,7 +1321,7 @@ fr: account_status: État du compte confirming: En attente de la confirmation par courrier électronique. functional: Votre compte est entièrement opérationnel. - pending: Votre demande est en attente d’examen par notre équipe. Cela peut prendre un certain temps. Vous recevrez un e-mail si votre demande est approuvée. + pending: Votre demande est en attente d’examen par notre équipe. Cela peut prendre un certain temps. Vous recevrez un courriel si votre demande est approuvée. redirecting_to: Votre compte est inactif car il est actuellement redirigé vers %{acct}. self_destruct: Comme %{domain} est en train de fermer, vous n’aurez qu’un accès limité à votre compte. view_strikes: Voir les sanctions précédemment appliquées à votre compte @@ -1380,9 +1380,9 @@ fr: before: 'Veuillez lire attentivement ces notes avant de continuer :' caches: Le contenu mis en cache par d'autres serveurs peut persister data_removal: Vos messages et autres données seront définitivement supprimés - email_change_html: Vous pouvez modifier votre adresse e-mail sans supprimer votre compte - email_contact_html: S'il ne vous est toujours pas parvenu, vous pouvez envoyer un message à %{email} pour obtenir de l'aide - email_reconfirmation_html: Dans le cas où vous n'auriez pas reçu l'email de confirmation, vous pouvez en réclamer un nouveau + email_change_html: Vous pouvez modifier votre adresse de courriel sans supprimer votre compte + email_contact_html: S'il ne vous est toujours pas parvenu, vous pouvez envoyer un courriel à %{email} pour obtenir de l'aide + email_reconfirmation_html: Si vous ne recevez pas le courriel de confirmation, vous pouvez en réclamer un nouveau irreversible: Vous ne pourrez pas restaurer ou réactiver votre compte more_details_html: Pour plus de détails, voir la politique de confidentialité. username_available: Votre nom d’utilisateur·rice sera à nouveau disponible @@ -1421,6 +1421,41 @@ fr: basic_information: Informations de base hint_html: "Personnalisez ce que les gens voient sur votre profil public et à côté de vos messages. Les autres personnes seront plus susceptibles de vous suivre et d’interagir avec vous lorsque vous avez un profil complet et une photo." other: Autre + redesign_body: La modification du profil est maintenant accessible directement depuis la page de profil. + redesign_button: Accéder + redesign_title: Nouvelle expérience de modification du profil + email_subscription_mailer: + confirmation: + action: Confirmer l'adresse de courriel + instructions_to_confirm: Veuillez confirmer que vous souhaitez recevoir des courriels de %{name} (@%{acct}) lors de la publication de nouveaux messages. + instructions_to_ignore: Si vous ne savez pas pourquoi vous recevez ce courriel, vous pouvez le supprimer. Vous ne serez pas abonné·e si vous ne cliquez pas sur le lien ci-dessus. + subject: Confirmer votre adresse de courriel + title: Recevoir les notifications par courriel de %{name} ? + notification: + create_account: Créer un compte Mastodon + footer: + privacy_html: Les courriels sont envoyés par %{domain}, un serveur propulsé par Mastodon. Pour comprendre comment ce serveur utilise vos données personnelles, se référer à la politique de confidentialité. + reason_for_email_html: Vous recevez ce courriel car vous avez choisi de recevoir les notifications de %{name}. Vous ne souhaitez pas recevoir ces courriels ? Désabonnez-vous + interact_with_this_post: + one: Interagissez avec ce message pour en découvrir d'autres. + other: Interagissez avec ces messages pour en découvrir plus. + subject: + one: 'Nouveau message : « %{excerpt} »' + other: Nouveaux messages de %{name} + title: + one: 'Nouveau message : « %{excerpt} »' + other: Nouveaux messages de %{name} + email_subscriptions: + active: Actif + confirmations: + show: + changed_your_mind: Vous avez changé d'avis ? + success_html: Vous allez maintenant commencer à recevoir des courriels quand %{name} publie de nouveaux messages. Ajoutez %{sender} à vos contacts pour que ces messages ne soient pas considérés comme des courriels indésirables. + title: Vous êtes abonné·e + unsubscribe: Se désabonner + inactive: Inactif + status: État + subscribers: Abonné·e·s emoji_styles: auto: Auto native: Natif @@ -1441,7 +1476,7 @@ fr: '503': La page n'a pas pu être servie en raison d'une défaillance temporaire du serveur. noscript_html: Pour utiliser Mastodon, veuillez activer JavaScript. Sinon, essayez l’une des applications natives pour Mastodon pour votre plate-forme. existing_username_validator: - not_found: impossible de trouver un·e utilisateur·ice local·e de ce nom + not_found: impossible de trouver un·e utilisateur·rice local·e de ce nom not_found_multiple: n’a pas trouvé %{usernames} exports: archive_takeout: @@ -1746,7 +1781,7 @@ fr: subject: "%{name} a modifié un message" notifications: administration_emails: Notifications d'administration par courriel - email_events: Événements pour les notifications par e-mail + email_events: Événements pour les notifications par courriel email_events_hint: 'Sélectionnez les événements pour lesquels vous souhaitez recevoir des notifications :' number: human: @@ -1792,6 +1827,8 @@ fr: posting_defaults: Paramètres de publication par défaut public_timelines: Fils publics privacy: + email_subscriptions: Envoyer des messages par courriel + email_subscriptions_hint_html: Ajoute un formulaire d'abonnement par courriel à votre profil pour les personnes non connectées. Après avoir validé leur adresse courriel, Mastodon leur enverra des notifications pour vos messages publics. hint_html: "Personnalisez la façon dont votre profil et vos messages peuvent être découverts. Mastodon peut vous aider à atteindre un public plus large lorsque certains paramètres sont activés. Prenez le temps de les examiner pour vous assurer qu’ils sont configurés comme vous le souhaitez." privacy: Confidentialité privacy_hint_html: Contrôler ce que vous souhaitez divulguer. Les utilisateur·rice·s découvrent des profils intéressants en parcourant ceux suivis par d’autres personnes et des applications sympas en voyant celles utilisées pour publier des messages, mais vous préférez peut-être ne pas dévoiler ces informations. @@ -2055,6 +2092,28 @@ fr: resume_app_authorization: Reprendre l'autorisation de l'application role_requirement: "%{domain} nécessite de configurer une authentification à deux facteurs avant de pouvoir utiliser Mastodon." webauthn: Clés de sécurité + unsubscriptions: + create: + action: Aller à la page d'accueil du serveur + email_subscription: + confirmation_html: Vous ne recevrez plus de courriels de %{name}. + title: Vous êtes désabonné·e + user: + confirmation_html: Vous ne recevrez plus de %{type} de Mastodon depuis %{domain}. + notification_emails: + favourite: courriels de notification de mise en favori + follow: courriels de notification d'abonnement + follow_request: courriels de demande d'abonnement + mention: courriels de notification de mention + reblog: courriels de notification de partage + show: + action: Se désabonner + email_subscription: + confirmation_html: Vous ne recevrez plus de courriels quand ce compte publiera de nouveaux messages. + title: Se désabonner de %{name} ? + user: + confirmation_html: Vous ne recevrez plus de %{type} de Mastodon depuis %{domain}. + title: Se désabonner des %{type} ? user_mailer: announcement_published: description: 'Les administrateurs de %{domain} font une annonce :' @@ -2092,8 +2151,8 @@ fr: terms_of_service_changed: agreement: En continuant d'utiliser %{domain}, vous acceptez ces conditions. Si vous n'êtes pas d'accord avec les conditions mises à jour, vous pouvez résilier votre accord avec %{domain} à tout moment en supprimant votre compte. changelog: 'En un coup d''œil, voici ce que cette mise à jour signifie pour vous :' - description: 'Vous recevez cet e-mail parce que nous apportons des modifications à nos conditions de service à %{domain}. Ces modifications entreront en vigueur le %{date}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :' - description_html: Vous recevez cet e-mail parce que nous apportons des modifications à nos conditions de service à %{domain}. Ces mises à jour entreront en vigueur le %{date}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici. + description: 'Vous recevez ce courriel parce que nous apportons des modifications à nos conditions de service de %{domain}. Ces modifications entreront en vigueur le %{date}. Nous vous encourageons à consulter l''intégralité des conditions mises à jour ici :' + description_html: Vous recevez ce courriel parce que nous apportons des modifications à nos conditions de service de %{domain}. Ces mises à jour entreront en vigueur le %{date}. Nous vous encourageons à consulter l'intégralité des conditions mises à jour ici. sign_off: L'équipe %{domain} subject: Mises à jour de nos conditions d'utilisation subtitle: Les conditions d'utilisation de `%{domain}` changent @@ -2175,11 +2234,11 @@ fr: invalid_otp_token: Le code d’authentification à deux facteurs est invalide otp_lost_help_html: Si vous perdez accès aux deux, vous pouvez contacter %{email} rate_limited: Trop de tentatives d'authentification, réessayez plus tard. - seamless_external_login: Vous êtes connectés sur un service externe, de fait les paramètres de mot de passe et d'e-mail ne sont pas disponibles. + seamless_external_login: Vous êtes connectés via un service externe, donc les paramètres de mot de passe et de courriel ne sont pas disponibles. signed_in_as: 'Connecté·e en tant que :' verification: extra_instructions_html: Astuce : Le lien sur votre site Web peut être invisible. La partie importante est rel="me" qui évite que soient pris en compte d’autres liens provenant de contenu générés par des utilisateurs tiers. Vous pouvez même utiliser une balise link dans l’en-tête de la page au lieu de a, mais le HTML doit être accessible sans avoir besoin d’exécuter du JavaScript. - here_is_how: Voici comment + here_is_how: Comment faire ? hint_html: "La vérification de son profil sur Mastodon est accessible à tous. Elle s’appuie sur des standards ouverts du web, gratuits aujourd’hui et pour toujours. Tout ce dont vous avez besoin, c’est d’un site web personnel qui vous est associé dans l’esprit des gens. Lorsque vous ajoutez un lien depuis votre profil, nous vérifierons que le site web renvoie à son tour à votre profil Mastodon et montrerons un indicateur visuel à côté du lien si c’est le cas." instructions_html: Copiez et collez le code ci-dessous dans le code HTML de votre site web. Ajoutez ensuite l’adresse de votre site dans l’un des champs supplémentaires de votre profil à partir de l‘onglet « Modifier le profil » et enregistrez les modifications. verification: Vérification diff --git a/config/locales/he.yml b/config/locales/he.yml index 3732077701ba57..2a53fc759fdbdc 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -792,6 +792,7 @@ he: categories: administration: ניהול מערכת devops: DevOps + email: דוא״ל invites: הזמנות moderation: ניהול דיון special: מיוחדים @@ -822,6 +823,8 @@ he: manage_blocks_description: מאפשר למשתמשים לחסום ספקי דוא"ל וכתובות IP manage_custom_emojis: ניהול סמלונים בהתאמה אישית manage_custom_emojis_description: מאפשר למשתמשים לנהל סמלונים בהתאמה אישית של השרת + manage_email_subscriptions: ניהול הרשמות דוא"ל + manage_email_subscriptions_description: לאפשר למשתמשיםות להרשים למשתמשיםות ע"י הרשאה בדוא"ל manage_federation: ניהול פדרציה manage_federation_description: מאפשר למשתמשים לחסום או לאפשר התממשקות עם שמות מתחם אחרים manage_invites: ניהול הזמנות @@ -1460,6 +1463,47 @@ he: basic_information: מידע בסיסי hint_html: "התאמה אישית של מה שיראו אחרים בפרופיל הציבורי שלך וליד הודעותיך. אחרים עשויים יותר להחזיר עוקב וליצור אתך שיחה אם הפרופיל והתמונה יהיו מלאים." other: אחר + redesign_body: ניתן להגיע לעריכת הפרופיל ישירות מעמוד הפרופיל. + redesign_button: לך לשם + redesign_title: מעתה מוצעת חוויית עריכת פרופיל חדשה + email_subscription_mailer: + confirmation: + action: אישור כתובת דוא"ל + instructions_to_confirm: נא אשרו שתרצו לקבל דוא"ל מ%{name} (@%{acct}) כאשר הם מפרסמים הודעות חדשות. + instructions_to_ignore: אם אינך בטוח.ה מדוע קיבלת את הודעת הדוא"ל הזו, היו חופשיים למוחקה. לא תרשמו אם לא תלחצו על הקישור לעיל. + subject: אמתו את כתובת האימייל שלכם + title: לקבל הודעות דוא"ל מ%{name}? + notification: + create_account: יצירת חשבון מסטודון + footer: + privacy_html: דוא"ל ישלח מ- %{domain}, שרת הפועל על מסטודון. כדי להבין כיצד שרת זה מנהל את המידע האישי שלך, יש לפנות של מדיניות הפרטיוות. + reason_for_email_html: קיבלתם הודעת דוא"ל זו כי ביקשתם לקבל עידכונים מאת %{name}. אין ברצונכן לקבל הודעות אלו? ביטול הרשמה + interact_with_this_post: + many: תקשרו עם ההודעות הללו כדי לגלות עוד כמוהן. + one: תקשרו עם ההודעה הזו כדי לגלות עוד כמוה. + other: תקשרו עם ההודעות הללו כדי לגלות עוד כמוהן. + two: תקשרו עם ההודעות הללו כדי לגלות עוד כמוהן. + subject: + many: הודעות חדשות מאת %{name} + one: 'הודעה חדשה: "%{excerpt}"' + other: הודעות חדשות מאת %{name} + two: הודעות חדשות מאת %{name} + title: + many: הודעות חדשות מאת %{name} + one: 'הודעה חדשה: "%{excerpt}"' + other: הודעות חדשות מאת %{name} + two: הודעות חדשות מאת %{name} + email_subscriptions: + active: פעילים + confirmations: + show: + changed_your_mind: שיניתם את דעתכם? + success_html: מעתה תקבלנה דוא"ל כאשר %{name} יפרסמו הודעות חדשות. הוספנה את %{sender} לאנשי הקשר כדי שההודעות האלו לא יגיעו אל פח הספאם שלכן. + title: נרשמת + unsubscribe: ביטול ההרשמה + inactive: לא פעילים + status: מצב + subscribers: מנויים emoji_styles: auto: אוטומטי native: מקומי @@ -1871,6 +1915,8 @@ he: posting_defaults: ברירות מחדל בפרסום public_timelines: פידים פומביים privacy: + email_subscriptions: שליחת הודעות בדוא"ל + email_subscriptions_hint_html: הוסיפו רישום בדוא"ל לפרופיל שלכן שיופיע גם למשתמשים שאינם מחוברים. כאשר מבקרים יכניסו את כתובת הדוא"ל ויאשרו, מסטודון ישלח להם עדכוני דוא"ל על ההודעות הציבוריות שלכן. hint_html: "ניתן להתאים את הצורה שבה תירצו שיראו את פרופיל המשתמש וההודעות שלכם. מגוון אפשרויות במסטודון יכולות לעזור לכם להיחשף לקהל רחב יותר כאשר תפעילו אותן. הקדישו רגע לבדוק את ההגדרות הללו כדי לוודא שהן מתאימות לכם." privacy: פרטיות privacy_hint_html: הגדירו כמה תרצו לחשוף עצמכם לאחרים. משתמשים מגלים משתמשים מעניינים ואפליקציות מגניבות על ידי דפדוף ב-"מעקבים" של משתמשים אחרים ורואים מאילו אפליקציות הם מפרסמים, אבל אולי תעדיפו להסתיר את המידע הזה מפני אחרים. @@ -2142,6 +2188,28 @@ he: resume_app_authorization: חזרה לאישור יישומון role_requirement: "%{domain} דורש ממך להקים הזדהות בשני גורמים לפני שתוכלו להשתמש במסטודון." webauthn: מפתחות אבטחה + unsubscriptions: + create: + action: מעבר לעמוד הבית של השרת + email_subscription: + confirmation_html: לא תקבלו יותר הודעות דןא"ל מאת %{name}. + title: ביטלת את ההרשמה + user: + confirmation_html: לא תקבלו יותר %{type} ממסטודון על %{domain}. + notification_emails: + favourite: הודעות דואל לגבי חיבובים + follow: הודעות דואל לגבי עוקבים חדשים + follow_request: הודעות דואל לגבי בקשות מעקב + mention: הודעות דואל לגבי איזכורים + reblog: הודעות דואל לגבי הידהודים + show: + action: ביטול ההרשמה + email_subscription: + confirmation_html: לא תקבלו יותר דואל כשחשבון זה יפרסם הודעות חדשות. + title: לבטל הרשמה אל %{name}? + user: + confirmation_html: לא תקבלו יותר %{type} ממסטודון על %{domain}. + title: לבטל הרשמה אל %{type}? user_mailer: announcement_published: description: 'צוות ההנהלה של %{domain} מפרסם הודעה:' diff --git a/config/locales/it.yml b/config/locales/it.yml index cd1ecb466ae4b9..5f3073737c5640 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1436,6 +1436,26 @@ it: footer: privacy_html: Le email vengono inviate da %{domain}, un server gestito da Mastodon. Per comprendere come questo server elabora i tuoi dati personali, consulta l'Informativa sulla privacy. reason_for_email_html: Ricevi questa email perché hai scelto di ottenere aggiornamenti via email da %{name}. Non vuoi più ricevere queste email? Disiscriviti + interact_with_this_post: + one: Interagisci con questo post e scopri altri contenuti simili. + other: Interagisci con questi post e scopri di più. + subject: + one: 'Nuovo post: "%{excerpt}"' + other: Nuovi post da %{name} + title: + one: 'Nuovo post: "%{excerpt}"' + other: Nuovi post da %{name} + email_subscriptions: + active: Attiva + confirmations: + show: + changed_your_mind: Hai cambiato idea? + success_html: Ora inizierai a ricevere email quando %{name} pubblicherà nuovi post. Aggiungi %{sender} ai tuoi contatti in modo che questi post non finiscano nella cartella Spam. + title: Ti sei registrato/a + unsubscribe: Disiscriviti + inactive: Inattiva + status: Stato + subscribers: Iscritti emoji_styles: auto: Automatico native: Nativo @@ -1807,6 +1827,8 @@ it: posting_defaults: Predefinite di pubblicazione public_timelines: Timeline pubbliche privacy: + email_subscriptions: Invia i post via email + email_subscriptions_hint_html: Aggiungi al tuo profilo un modulo di iscrizione via email visibile agli utenti non autenticati. Quando i visitatori inseriscono il loro indirizzo email e acconsentono all'iscrizione, Mastodon invierà loro aggiornamenti via email relativi ai tuoi post pubblici. hint_html: "Personalizza il modo in cui vuoi che il tuo profilo e i tuoi post vengano trovati. Una varietà di funzionalità in Mastodon possono aiutarti a raggiungere un pubblico più ampio se abilitato. Prenditi un momento per rivedere queste impostazioni per assicurarti che si adattino al tuo caso d'uso." privacy: Privacy privacy_hint_html: Controlla quanto tu voglia mostrare a beneficio degli altri. Le persone scoprono profili interessanti e app fantastiche sfogliando il seguito di altre persone e vedendo da quali app pubblichino, ma potresti preferire tenerlo nascosto. @@ -2070,6 +2092,28 @@ it: resume_app_authorization: Riprendere l'autorizzazione dell'applicazione role_requirement: "%{domain} ti richiede di impostare l'autenticazione a due fattori prima di poter usare Mastodon." webauthn: Chiavi di sicurezza + unsubscriptions: + create: + action: Vai alla homepage del server + email_subscription: + confirmation_html: Non riceverai più email da %{name}. + title: Hai annullato l'iscrizione + user: + confirmation_html: Non riceverai più %{type} da Mastodon su %{domain}. + notification_emails: + favourite: email di notifica per i post apprezzati + follow: email di notifica per i nuovi follower + follow_request: email di notifica per le richieste di seguirti + mention: email di notifica per le menzioni + reblog: email di notifica per le condivisioni + show: + action: Disiscriviti + email_subscription: + confirmation_html: Smetterai di ricevere email quando questo account pubblicherà nuovi post. + title: Disiscriverti da %{name}? + user: + confirmation_html: Non riceverai più %{type} da Mastodon su %{domain}. + title: Disiscriverti da %{type}? user_mailer: announcement_published: description: 'Gli amministratori di %{domain} stanno facendo un annuncio:' diff --git a/config/locales/nan-TW.yml b/config/locales/nan-TW.yml index a69d14d3b8af5d..6d50e517add4d4 100644 --- a/config/locales/nan-TW.yml +++ b/config/locales/nan-TW.yml @@ -747,6 +747,7 @@ nan-TW: categories: administration: 管理員 devops: DevOps + email: 電子phue箱 invites: 邀請 moderation: 管理 special: 特別 @@ -774,6 +775,8 @@ nan-TW: manage_blocks_description: 允准用者封鎖電子phue ê 提供者kap IP地址 manage_custom_emojis: 管理自訂ê Emoji manage_custom_emojis_description: 允准用者管理佇tsit ê服侍器ê自訂Emoji + manage_email_subscriptions: 管理訂電子phue + manage_email_subscriptions_description: 允准用者用電子phue訂有chit ê權限ê用者 manage_federation: 管理聯邦 manage_federation_description: 允准用者封鎖á是允准kap其他域名相連,mā控制寄送ê能力 manage_invites: 管理邀請 @@ -1397,6 +1400,34 @@ nan-TW: basic_information: 基本ê資訊 hint_html: "自訂lâng佇lí ê個人資料kap lí ê Po文邊仔所通看ê。Nā是lí有添好個人資料kap標á,別lâng較有可能kā lí跟tuè轉去,kap lí互動。" other: 其他 + redesign_body: 編輯個人檔案tsit-má ē當直接對個人資料頁接近使用。 + redesign_button: Kàu hia + redesign_title: 有新ê個人資料編輯ê體驗 + email_subscription_mailer: + confirmation: + action: 確認電子phue地址 + instructions_to_confirm: 請確認當 %{name}(@%{acct})發送新ê PO文ê時陣,lí想欲收in ê電子批。 + instructions_to_ignore: Lí若無確定是án-tsuánn lí收著tsit張phue,lí ē當kā thâi,Lí若無tshi̍h頂懸ê連結,就buē kā lí訂。 + subject: 確認lí ê電子phue地址 + title: Kám beh對 %{name}收著電子批ê更新? + notification: + create_account: 建立Mastodon ê口座 + footer: + privacy_html: 電子批是由Mastodon ê服侍器 %{domain} 送出。Beh了解tsit台服侍器án-tsuánn處理lí ê個人資料,請參考隱私權政策。 + reason_for_email_html: 因為lí選擇收著對 %{name} 來ê電子phue更新,所以lí teh收著tsit張電子批。Kám無beh收著tsiah ê電子phue?取消訂 + interact_with_this_post: + other: Kap tsit(tsiah)ê PO文互動,發現其他相siâng ê PO文。 + subject: + other: 對 %{name} 來ê新ê PO文 + title: + other: 對 %{name} 來ê新ê PO文 + email_subscriptions: + active: 有效ê + confirmations: + show: + changed_your_mind: Kám beh改變心意? + success_html: Lí對tsit-má開始,佇 %{name} 刊出新ê PO文ê時陣,ē收著電子批。加添 %{sender} kàu lí ê聯絡人,避免tsiah ê PO文hőng tàn kàu pùn-sò phue ê資料giap-á。 + title: Lí有註冊ah emoji_styles: auto: 自動 native: 原底ê diff --git a/config/locales/nl.yml b/config/locales/nl.yml index a785e86059eb5a..9f02e12b6ff746 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1433,6 +1433,12 @@ nl: title: E-mailupdates van %{name} ontvangen? notification: create_account: Een Mastodon-account registreren + footer: + privacy_html: E-mails worden verzonden van %{domain}, een server aangedreven door Mastodon. Raadpleeg het Privacybeleid om te begrijpen hoe deze server jouw persoonsgegevens verwerkt. + reason_for_email_html: Je ontvangt deze e-mail omdat je hebt gekozen voor e-mail updates van %{name}. Wil je deze e-mails niet ontvangen? Afmelden + interact_with_this_post: + one: Reageer op dit bericht en ontdek meer zoals dit. + other: Reageer op deze berichten en ontdek meer soortgelijks. subject: one: 'Nieuw bericht: "%{excerpt}"' other: Nieuwe berichten van %{name} @@ -1444,6 +1450,7 @@ nl: confirmations: show: changed_your_mind: Van mening veranderd? + success_html: Je ontvangt nu e-mails wanneer %{name} nieuwe berichten publiceert. Voeg %{sender} toe aan je contactpersonen, zodat deze berichten niet in je spam-map terechtkomen. title: Je bent ingeschreven unsubscribe: Uitschrijven inactive: Inactief @@ -1821,6 +1828,7 @@ nl: public_timelines: Openbare tijdlijnen privacy: email_subscriptions: Berichten per e-mail verzenden + email_subscriptions_hint_html: Voeg een e-mailaanmeldformulier toe aan je profiel dat verschijnt voor uitgelogde gebruikers. Wanneer bezoekers hun e-mailadres opgeven en zich aanmelden, zal Mastodon e-mail updates voor jouw openbare berichten verzenden. hint_html: "Hoe wil je dat jouw profiel en berichten kunnen worden gevonden? Een verscheidenheid aan functies in Mastodon kunnen je helpen om een groter publiek te bereiken als ze zijn ingeschakeld. Neem rustig de tijd om deze instellingen te bekijken, om er zo zeker van te zijn dat ze aan jouw wensen voldoen." privacy: Privacy privacy_hint_html: Hoeveel informatie wil je aan andere gebruikers kwijt? Mensen ontdekken interessante accounts en coole apps door te bekijken welke accounts jij volgt en door te bekijken welke app jij gebruikt voor het plaatsen van berichten. Het kan achter zo zijn dat je dit liever verborgen houdt. @@ -2086,7 +2094,12 @@ nl: webauthn: Beveiligingssleutels unsubscriptions: create: + action: Ga naar de serverhomepage + email_subscription: + confirmation_html: Je zult geen e-mails meer ontvangen van %{name}. title: Je bent uitgeschreven + user: + confirmation_html: Je zult geen %{type} meer ontvangen van Mastodon op %{domain}. notification_emails: favourite: e-mailmeldingen favorieten follow: e-mailmeldingen volgers @@ -2095,6 +2108,12 @@ nl: reblog: e-mailmeldingen boosts show: action: Uitschrijven + email_subscription: + confirmation_html: Je zult geen e-mails meer ontvangen wanneer dit account nieuwe berichten publiceert. + title: Afmelden van %{name}? + user: + confirmation_html: Je zult geen %{type} meer ontvangen van Mastodon op %{domain}. + title: Afmelden van %{type}? user_mailer: announcement_published: description: 'De beheerders van %{domain} doen een mededeling:' diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 78dcda366f5f4e..87342d142676b1 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -7,11 +7,18 @@ ru: hosted_on: Сервер Mastodon на сайте %{domain} title: О проекте accounts: + errors: + cannot_be_added_to_collections: Эта учётная запись не может быть добавлена в подборки. followers: few: подписчика many: подписчиков one: подписчик other: подписчиков + following: + few: подписки + many: подписок + one: подписка + other: подписок instance_actor_flash: Эта учетная запись - виртуальный пользователь, используемый для представления самого сервера, а не отдельного пользователя. Она используется для организационных целей и не может быть заморожена. last_active: последняя активность link_verified_on: Владение этой ссылкой было проверено %{date} @@ -55,6 +62,7 @@ ru: label: Изменить роль no_role: Без роли title: Изменить роль пользователя %{username} + collections: Подборки confirm: Подтвердить confirmed: Подтверждена confirming: Ожидает подтверждения @@ -267,6 +275,7 @@ ru: demote_user_html: "%{name} разжаловал(а) пользователя %{target}" destroy_announcement_html: "%{name} удалил(а) объявление %{target}" destroy_canonical_email_block_html: "%{name} снял(а) блокировку e-mail с хэшем %{target}" + destroy_collection_html: "%{name} удалил(а) подборку пользователя %{target}" destroy_custom_emoji_html: "%{name} удалил(а) эмодзи %{target}" destroy_domain_allow_html: "%{name} запретил(а) федерацию с доменом %{target}" destroy_domain_block_html: "%{name} снял(а) блокировку с домена %{target}" @@ -861,6 +870,7 @@ ru: publish_statistics: Публикация статистики title: Обзор trends: Актуальное + wrapstodon: Wrapstodon domain_blocks: all: Кому угодно disabled: Никому @@ -1217,7 +1227,10 @@ ru: hint_html: Если вы собираетесь переехать с другой учётной записи на эту, то, прежде чем вы сможете перенести подписчиков со старой учётной записи, вы должны связать учётные записи здесь. Это действие само по себе безвредно и обратимо. Начать переезд можно только со старой учётной записи. remove: Отвязать учётную запись appearance: + advanced_settings: Продвинутые настройки animations_and_accessibility: Анимации и доступность + boosting_preferences: Продвижения + boosting_preferences_info_html: "Подсказка: Вне зависимости от настроек, щелчок на кнопке %{icon} Продвинуть с зажатой клавишей Shift немедленно продвинет пост." discovery: Актуальное localization: body: Mastodon переводится добровольцами. @@ -1405,6 +1418,9 @@ ru: basic_information: Основные данные hint_html: "Здесь вы можете изменить всё то, что будет отображаться в вашем публичном профиле и рядом с вашими постами. На вас будут чаще подписываться и с вами будут чаще взаимодействовать, если у вас будет заполнен профиль и добавлено фото профиля." other: Разное + redesign_body: Теперь редактирование профиля доступно прямо на странице профиля. + redesign_button: Перейти + redesign_title: Редактируйте профиль по-новому emoji_styles: auto: Автоматически native: Как в системе @@ -1971,9 +1987,18 @@ ru: limit: Вы достигли максимального количества постов, которые можно закрепить в профиле ownership: Нельзя закрепить чужой пост reblog: Нельзя закрепить продвижение + quote_policies: + followers: Только подписчики + nobody: Только я + public: Кто угодно title: "%{name}: «%{quote}»" visibilities: + direct: Личное упоминание + private: Только для подписчиков public: Публичный + public_long: Для кого угодно в интернете + unlisted: Тихий публичный + unlisted_long: Не показывать в результатах поиска Mastodon, трендах и публичных лентах statuses_cleanup: enabled: Автоматически удалять старые посты enabled_hint: По истечении определённого срока с момента публикации ваши посты, кроме соответствующих отмеченным ниже исключениям, будут автоматически удалены @@ -2020,6 +2045,8 @@ ru: past_preamble_html: Мы изменили наше пользовательское соглашение с момента вашего последнего посещения. Мы рекомендуем вам ознакомиться с обновленным соглашением. review_link: Посмотреть пользовательское соглашение title: Изменяется пользовательское соглашение на сервере %{domain} + themes: + default: Mastodon time: formats: default: "%d %b %Y, %H:%M" @@ -2176,6 +2203,7 @@ ru: error: При удалении электронного ключа произошла ошибка. Попробуйте ещё раз. success: Ваш электронный ключ удалён. invalid_credential: Неверный электронный ключ + nickname: Название nickname_hint: Введите название для нового электронного ключа not_enabled: Вы еще не включили WebAuthn not_supported: В этом браузере отсутствует поддержка электронных ключей diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 056e85b1a122c9..42cc761fdf3f8c 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -357,7 +357,7 @@ es: hint: Información adicional text: Norma settings: - email_subscriptions: Habilitar registros de correo electrñonico + email_subscriptions: Habilitar suscripciones por correo electrónico indexable: Incluye la página de perfil en los buscadores show_application: Mostrar desde qué aplicación enviaste una publicación tag: diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 1187ffdf0593bb..112f375823a2ab 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -134,6 +134,7 @@ fi: otp: 'Näppäile mobiilisovelluksessa näkyvä kaksivaiheisen todennuksen tunnusluku tai käytä tarvittaessa palautuskoodia:' webauthn: Jos kyseessä on USB-avain, muista laittaa se paikalleen ja tarvittaessa napauttaa sitä. settings: + email_subscriptions: Käytöstäpoisto säilyttää olemassa olevat tilaajat mutta lopettaa sähköpostin lähettämisen. indexable: Profiilisi voi näkyä Googlen, Bingin ja muiden hakukoneiden hakutuloksissa. show_application: Voit silti aina nähdä, mistä sovelluksesta julkaisusi lähetettiin. tag: @@ -356,6 +357,7 @@ fi: hint: Lisätietoja text: Sääntö settings: + email_subscriptions: Ota sähköpostitilaukset käyttöön indexable: Sisällytä profiilisivu hakukoneisiin show_application: Näytä, mistä sovelluksesta lähetit julkaisun tag: diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index 2f4ef67b300d04..93b91ebcd6fb6a 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -134,23 +134,24 @@ fr-CA: otp: 'Entrez le code d’authentification à deux facteurs généré par l’application de votre téléphone ou utilisez un de vos codes de récupération :' webauthn: Si c'est une clé USB, assurez-vous de l'insérer et, si nécessaire, de la tapoter. settings: + email_subscriptions: La désactivation conserve les abonné·e·s mais arrête l'envoie de courriels. indexable: Votre page de profil peut apparaître dans les résultats de recherche sur Google, Bing et autres. show_application: Vous pourrez toujours voir quelle application vous avez utilisé pour publier un message dans tous les cas. tag: name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible terms_of_service: changelog: Peut être structuré avec la syntaxe Markdown. - effective_date: Un délai raisonnable peut varier entre 10 et 30 jours à compter de la date à laquelle vous informez vos utilisateurs. + effective_date: Un délai raisonnable peut varier entre 10 et 30 jours à compter de la date à laquelle vous informez vos utilisateur·rice·s. text: Peut être structuré avec la syntaxe Markdown. terms_of_service_generator: admin_email: Les avis juridiques comprennent les contre-avis, les ordonnances judiciaires, les demandes de retrait et les demandes des forces de l'ordre. - arbitration_address: Il peut s'agir de la même que l'adresse physique ci-dessus, ou « N/A » si vous utilisez une adresse e-mail. - arbitration_website: Il peut s'agir d'un formulaire web ou de « N/A » s'il s'agit d'un courrier électronique. + arbitration_address: Il peut s'agir de la même que l'adresse physique ci-dessus, ou « N/A » si vous utilisez une adresse de courriel. + arbitration_website: Il peut s'agir d'un formulaire web ou de « N/A » s'il s'agit d'une adresse de courriel. choice_of_law: Ville, région, territoire ou État dont le droit matériel interne régit toute réclamation. - dmca_address: Pour les opérateurs américains, utilisez l'adresse enregistrée dans le répertoire des agents désignés du DMCA Designated Agent Directory. Une boîte postale est disponible sur demande directe. Utilisez le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du Designated Agent Post Office Box Waiver Request pour envoyer un e-mail au Bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public. - dmca_email: Il peut s'agir du même courriel que celui utilisé pour l'« Adresse électronique pour les avis juridiques » ci-dessus. + dmca_address: Pour les opérateurs états-uniens, utiliser l'adresse enregistrée dans le répertoire des agents désignés du DMCA (DMCA Designated Agent Directory). Une boîte postale est disponible sur demande directe, utiliser le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du DMCA (Designated Agent Post Office Box Waiver Request) pour envoyer un courriel au bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public. + dmca_email: Il peut s'agir de la même adresse que celle utilisée pour l'« Adresse de courriel pour les avis juridiques » ci-dessus. domain: Identification unique du service en ligne que vous offrez. - jurisdiction: Indiquez le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant. + jurisdiction: Indique le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant. min_age: Ne doit pas être en dessous de l’âge minimum requis par les lois de votre juridiction. user: chosen_languages: Lorsque coché, seuls les messages dans les langues sélectionnées seront affichés sur les fils publics @@ -356,6 +357,7 @@ fr-CA: hint: Information supplémentaire text: Règle settings: + email_subscriptions: Activer les abonnements par courriel indexable: Inclure la page de profil dans les moteurs de recherches show_application: Afficher quelle application a été utilisée pour envoyer un message tag: @@ -368,12 +370,12 @@ fr-CA: effective_date: Date effective text: Conditions d'utilisation terms_of_service_generator: - admin_email: Adresse électronique pour les notifications légales + admin_email: Adresse de courriel pour les notifications légales arbitration_address: Adresse physique pour les notifications d'arbitrage arbitration_website: Site Web pour soumettre les notifications d'arbitrage choice_of_law: Choix de la loi dmca_address: Adresse physique pour les avis DMCA/copyright - dmca_email: Adresse e-mail pour les avis DMCA/copyright + dmca_email: Adresse de courriel pour les avis DMCA/copyright domain: Domaine jurisdiction: Juridiction min_age: Âge minimum diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 846533bddb5305..025386a9f213df 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -75,7 +75,7 @@ fr: domain: Ce domaine pourra récupérer des données de ce serveur et les données entrantes seront traitées et stockées email_domain_block: domain: Cela peut être le nom de domaine qui apparaît dans l'adresse courriel ou l'enregistrement MX qu'il utilise. Une vérification sera faite à l'inscription. - with_dns_records: Une tentative de résolution des enregistrements DNS du domaine donné sera effectuée et les résultats seront également mis sur liste noire + with_dns_records: Une tentative de résolution DNS du domaine donné sera faite et les résultats seront également bloqués featured_tag: name: 'Voici quelques hashtags que vous avez utilisés récemment :' filters: @@ -134,23 +134,24 @@ fr: otp: 'Entrez le code d’authentification à deux facteurs généré par l’application de votre téléphone ou utilisez un de vos codes de récupération :' webauthn: Si c'est une clé USB, assurez-vous de l'insérer et, si nécessaire, de la tapoter. settings: + email_subscriptions: La désactivation conserve les abonné·e·s mais arrête l'envoie de courriels. indexable: Votre page de profil peut apparaître dans les résultats de recherche sur Google, Bing et autres. show_application: Vous pourrez toujours voir quelle application vous avez utilisé pour publier un message dans tous les cas. tag: name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible terms_of_service: changelog: Peut être structuré avec la syntaxe Markdown. - effective_date: Un délai raisonnable peut varier entre 10 et 30 jours à compter de la date à laquelle vous informez vos utilisateurs. + effective_date: Un délai raisonnable peut varier entre 10 et 30 jours à compter de la date à laquelle vous informez vos utilisateur·rice·s. text: Peut être structuré avec la syntaxe Markdown. terms_of_service_generator: admin_email: Les avis juridiques comprennent les contre-avis, les ordonnances judiciaires, les demandes de retrait et les demandes des forces de l'ordre. - arbitration_address: Il peut s'agir de la même que l'adresse physique ci-dessus, ou « N/A » si vous utilisez une adresse e-mail. - arbitration_website: Il peut s'agir d'un formulaire web ou de « N/A » s'il s'agit d'un courrier électronique. + arbitration_address: Il peut s'agir de la même que l'adresse physique ci-dessus, ou « N/A » si vous utilisez une adresse de courriel. + arbitration_website: Il peut s'agir d'un formulaire web ou de « N/A » s'il s'agit d'une adresse de courriel. choice_of_law: Ville, région, territoire ou État dont le droit matériel interne régit toute réclamation. - dmca_address: Pour les opérateurs américains, utilisez l'adresse enregistrée dans le répertoire des agents désignés du DMCA Designated Agent Directory. Une boîte postale est disponible sur demande directe. Utilisez le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du Designated Agent Post Office Box Waiver Request pour envoyer un e-mail au Bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public. - dmca_email: Il peut s'agir du même courriel que celui utilisé pour l'« Adresse électronique pour les avis juridiques » ci-dessus. + dmca_address: Pour les opérateurs états-uniens, utiliser l'adresse enregistrée dans le répertoire des agents désignés du DMCA (DMCA Designated Agent Directory). Une boîte postale est disponible sur demande directe, utiliser le formulaire de demande de dérogation pour l'utilisation d'une boîte postale par un agent désigné du DMCA (Designated Agent Post Office Box Waiver Request) pour envoyer un courriel au bureau du droit d'auteur (Copyright Office) et expliquer que vous êtes un modérateur de contenu à domicile qui craint des représailles ou une vengeance pour ses actions et que vous avez besoin d'utiliser une boîte postale afin de masquer votre adresse personnelle au public. + dmca_email: Il peut s'agir de la même adresse que celle utilisée pour l'« Adresse de courriel pour les avis juridiques » ci-dessus. domain: Identification unique du service en ligne que vous offrez. - jurisdiction: Indiquez le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant. + jurisdiction: Indique le pays dans lequel réside la personne qui paie les factures. S'il s'agit d'une entreprise ou d'une autre entité, indiquez le pays dans lequel elle est enregistrée, ainsi que la ville, la région, le territoire ou l'État, le cas échéant. min_age: Ne doit pas être en dessous de l’âge minimum requis par les lois de votre juridiction. user: chosen_languages: Lorsque coché, seuls les messages dans les langues sélectionnées seront affichés sur les fils publics @@ -163,7 +164,7 @@ fr: highlighted: Cela rend le rôle visible publiquement name: Nom public du rôle, si le rôle est configuré pour être affiché avec un badge permissions_as_keys: Les utilisateur·rice·s ayant ce rôle auront accès à … - position: Dans certaines situations, un rôle supérieur peut trancher la résolution d'un conflit. Mais certaines opérations ne peuvent être effectuées que sur des rôles ayant une priorité inférieure + position: Dans certaines situations, un rôle supérieur peut trancher la résolution d'un conflit. Certaines opérations ne peuvent être effectuées que sur des rôles ayant une priorité inférieure require_2fa: Les utilisateur·ice·s ayant ce rôle devront configurer l'authentification à deux facteurs pour utiliser Mastodon username_block: allow_with_approval: Au lieu de bloquer l'inscription, les inscriptions correspondantes nécessiteront votre approbation @@ -356,6 +357,7 @@ fr: hint: Information supplémentaire text: Règle settings: + email_subscriptions: Activer les abonnements par courriel indexable: Inclure la page de profil dans les moteurs de recherches show_application: Afficher quelle application a été utilisée pour envoyer un message tag: @@ -368,12 +370,12 @@ fr: effective_date: Date effective text: Conditions d'utilisation terms_of_service_generator: - admin_email: Adresse électronique pour les notifications légales + admin_email: Adresse de courriel pour les notifications légales arbitration_address: Adresse physique pour les notifications d'arbitrage arbitration_website: Site Web pour soumettre les notifications d'arbitrage choice_of_law: Choix de la loi dmca_address: Adresse physique pour les avis DMCA/copyright - dmca_email: Adresse e-mail pour les avis DMCA/copyright + dmca_email: Adresse de courriel pour les avis DMCA/copyright domain: Domaine jurisdiction: Juridiction min_age: Âge minimum diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 7f4943c80d6c01..3a2c52c7a0f05f 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -134,6 +134,7 @@ he: otp: 'נא להקליד קוד אימות דו-שלבי ממכשירך או להשתמש באחד מקודי אחזור הגישה שלך:' webauthn: אם זהו מכשיר USB יש לוודא שהוא מוכנס, ואם יש צורך, להקיש עליו. settings: + email_subscriptions: עצירה שומרת את ההרשמה אך עוצרת את שליחת הודעות הדוא"ל. indexable: המשתמש שלך עלול להופיע בתוצאות החיפוש של גוגל, בינג או מנועי חיפוש אחרים. show_application: תמיד ניתן לראות איזו אפליקציה פרסמה את הפוסט שלך בכל מקרה. tag: @@ -358,6 +359,7 @@ he: hint: מידע נוסף text: כלל settings: + email_subscriptions: לאפשר הרשמות דוא"ל indexable: חשיפת דף המשתמש במנועי החיפוש show_application: חשיפת שם היישומון שהעלה את ההודעה tag: diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index 657547d0b0a1aa..f03d0f66226cd8 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -134,6 +134,7 @@ it: otp: 'Inserisci il codice a due fattori generato dall''app del tuo telefono o usa uno dei codici di recupero:' webauthn: Se si tratta di una chiavetta USB assicurati di inserirla e, se necessario, toccarla. settings: + email_subscriptions: Disabilitando questa opzione, si mantengono gli iscritti esistenti ma si interrompe l'invio delle email. indexable: La pagina del tuo profilo potrebbe apparire nei risultati di ricerca su Google, Bing e altri. show_application: Tu sarai sempre in grado di vedere quale app ha pubblicato il tuo post anche se hai attivato questa impostazione. tag: @@ -356,6 +357,7 @@ it: hint: Informazioni aggiuntive text: Regola settings: + email_subscriptions: Abilita le iscrizioni via email indexable: Includi la pagina del profilo nei motori di ricerca show_application: Mostra da quale app hai inviato un post tag: diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index f730c9ad70c6a0..285cc02c220ff0 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -134,6 +134,7 @@ nl: otp: 'Voer de tweestaps-toegangscode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcodes:' webauthn: Wanneer het een USB-sleutel is, zorg er dan voor dat je deze in de computer steekt en, wanneer nodig, activeert. settings: + email_subscriptions: Het uitschakelen behoudt bestaande abonnees, maar stopt met het verzenden van e-mails. indexable: Jouw profielpagina kan in de zoekresultaten van Google, Bing, DuckDuckGo en andere zoekmachines verschijnen. show_application: Je kunt zelf altijd zien met welke app je een bericht hebt geplaatst. tag: diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 2cc603e642828e..21ef598776437e 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -123,7 +123,7 @@ zh-CN: expires_in: IP 地址是一种有限的资源,它们有时是共享的,并且常常变化。因此,不推荐无限期的 IP 封禁。 ip: 输入 IPv4 或 IPv6 地址。你可以使用 CIDR 语法屏蔽 IP 段。小心不要屏蔽自己! severities: - no_access: 阻止访问所有资源 + no_access: 阻止访问全部资源 sign_up_block: 无法进行新的账号注册 sign_up_requires_approval: 新注册需要你的批准 severity: 选择如何处理来自此 IP 的请求。 diff --git a/config/locales/vi.yml b/config/locales/vi.yml index c28535741624b1..1c83415babb1cd 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1402,7 +1402,7 @@ vi: other: Khác redesign_body: Giờ đây, hồ sơ đã có thể chỉnh sửa trực tiếp từ trang hồ sơ. redesign_button: Tới đó - redesign_title: Đây là trải nghiệm sửa hồ sơ mới + redesign_title: Đã có trải nghiệm sửa hồ sơ mới email_subscription_mailer: confirmation: action: Xác nhận địa chỉ email @@ -1906,7 +1906,7 @@ vi: profile: Hồ sơ relationships: Quan hệ severed_relationships: Quan hệ đứt gãy - statuses_cleanup: Tự động xóa tút cũ + statuses_cleanup: Xóa tút cũ tự động strikes: Lần cảnh cáo two_factor_authentication: Xác thực 2 bước webauthn_authentication: Khóa bảo mật @@ -1967,7 +1967,7 @@ vi: unlisted: Hạn chế unlisted_long: Ẩn khỏi kết quả tìm kiếm, xu hướng và bảng tin công khai statuses_cleanup: - enabled: Tự động xóa những tút cũ + enabled: Xóa những tút cũ tự động enabled_hint: Trừ những ngoại lệ bên dưới exceptions: Ngoại lệ explanation: Có thể xảy ra độ trễ nhất định giữa thời điểm đạt ngưỡng và thời điểm tút bị xóa. diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 70426f79faff34..c7b958b2e52da1 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1400,7 +1400,7 @@ zh-CN: basic_information: 基本信息 hint_html: "自定义公开资料和嘟文旁边显示的内容。当你填写完整的个人资料并设置了头像时,其他人更有可能关注你并与你互动。" other: 其他 - redesign_body: 现在可以直接在个人资料页面编辑个人资料。 + redesign_body: 个人资料编辑功能现在可以直接在个人资料页面访问。 redesign_button: 前往 redesign_title: 全新个人资料编辑体验现已到来 email_subscription_mailer: From 52df6411722b7606da3d54c7d48688ce9304a253 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Mon, 30 Mar 2026 06:21:36 -0400 Subject: [PATCH 072/335] Use ruby version 4.0.2 (#37445) --- .devcontainer/Dockerfile | 2 +- .github/ISSUE_TEMPLATE/2.server_bug_report.yml | 2 +- .github/ISSUE_TEMPLATE/3.troubleshooting.yml | 2 +- .github/actions/setup-ruby/action.yml | 4 ++-- .github/workflows/bundler-audit.yml | 2 +- .github/workflows/lint-haml.yml | 2 +- .github/workflows/lint-ruby.yml | 2 +- .github/workflows/test-ruby.yml | 3 +++ .ruby-version | 2 +- Dockerfile | 4 ++-- Gemfile | 2 +- Gemfile.lock | 2 +- 12 files changed, 16 insertions(+), 13 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a7a8e26d91e540..97e1f4036d6e10 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # For details, see https://github.com/devcontainers/images/tree/main/src/ruby -FROM mcr.microsoft.com/devcontainers/ruby:3.4-trixie +FROM mcr.microsoft.com/devcontainers/ruby:4.0-trixie # Install node version from .nvmrc WORKDIR /app diff --git a/.github/ISSUE_TEMPLATE/2.server_bug_report.yml b/.github/ISSUE_TEMPLATE/2.server_bug_report.yml index ec3a52689d47bf..467df3ef7d93bf 100644 --- a/.github/ISSUE_TEMPLATE/2.server_bug_report.yml +++ b/.github/ISSUE_TEMPLATE/2.server_bug_report.yml @@ -59,7 +59,7 @@ body: Any additional technical details you may have, like logs or error traces value: | If this is happening on your own Mastodon server, please fill out those: - - Ruby version: (from `ruby --version`, eg. v3.4.9) + - Ruby version: (from `ruby --version`, eg. v4.0.2) - Node.js version: (from `node --version`, eg. v22.16.0) validations: required: false diff --git a/.github/ISSUE_TEMPLATE/3.troubleshooting.yml b/.github/ISSUE_TEMPLATE/3.troubleshooting.yml index 5278933ecefed9..9210e99b438eae 100644 --- a/.github/ISSUE_TEMPLATE/3.troubleshooting.yml +++ b/.github/ISSUE_TEMPLATE/3.troubleshooting.yml @@ -61,7 +61,7 @@ body: value: | Please at least include those informations: - Operating system: (eg. Ubuntu 24.04.2) - - Ruby version: (from `ruby --version`, eg. v3.4.9) + - Ruby version: (from `ruby --version`, eg. v4.0.2) - Node.js version: (from `node --version`, eg. v22.16.0) validations: required: false diff --git a/.github/actions/setup-ruby/action.yml b/.github/actions/setup-ruby/action.yml index 2993c66f7bc974..9f50aa60ffa222 100644 --- a/.github/actions/setup-ruby/action.yml +++ b/.github/actions/setup-ruby/action.yml @@ -1,4 +1,4 @@ -name: 'Setup RUby' +name: 'Setup Ruby' description: 'Setup a Ruby environment ready to run the Mastodon code' inputs: ruby-version: @@ -17,7 +17,7 @@ runs: sudo apt-get install --no-install-recommends -y libicu-dev libidn11-dev libvips42 ${{ inputs.additional-system-dependencies }} - name: Set up Ruby - uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 # v1 + uses: ruby/setup-ruby@c984c1a20bb35a1cbda04477c816cea024418be9 # v1 with: ruby-version: ${{ inputs.ruby-version }} bundler-cache: true diff --git a/.github/workflows/bundler-audit.yml b/.github/workflows/bundler-audit.yml index b1e8d406e2543e..964d93378d3baa 100644 --- a/.github/workflows/bundler-audit.yml +++ b/.github/workflows/bundler-audit.yml @@ -31,7 +31,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Set up Ruby - uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 # v1 + uses: ruby/setup-ruby@c984c1a20bb35a1cbda04477c816cea024418be9 # v1 with: bundler-cache: true diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml index 6cc212180a8f61..33dc4e4fb648a2 100644 --- a/.github/workflows/lint-haml.yml +++ b/.github/workflows/lint-haml.yml @@ -36,7 +36,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Set up Ruby - uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 # v1 + uses: ruby/setup-ruby@c984c1a20bb35a1cbda04477c816cea024418be9 # v1 with: bundler-cache: true diff --git a/.github/workflows/lint-ruby.yml b/.github/workflows/lint-ruby.yml index 216618f4e56993..06e4762d11460a 100644 --- a/.github/workflows/lint-ruby.yml +++ b/.github/workflows/lint-ruby.yml @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: Set up Ruby - uses: ruby/setup-ruby@4eb9f110bac952a8b68ecf92e3b5c7a987594ba6 # v1 + uses: ruby/setup-ruby@c984c1a20bb35a1cbda04477c816cea024418be9 # v1 with: bundler-cache: true diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index d0c1d4fbcd9633..a2a496475f4915 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -125,6 +125,7 @@ jobs: matrix: ruby-version: - '3.3' + - '3.4' - '.ruby-version' steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 @@ -217,6 +218,7 @@ jobs: matrix: ruby-version: - '3.3' + - '3.4' - '.ruby-version' steps: @@ -347,6 +349,7 @@ jobs: matrix: ruby-version: - '3.3' + - '3.4' - '.ruby-version' search-image: - docker.elastic.co/elasticsearch/elasticsearch:7.17.29 diff --git a/.ruby-version b/.ruby-version index 7bcbb3808b5089..4d54daddb617f2 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.4.9 +4.0.2 diff --git a/Dockerfile b/Dockerfile index c26f957cee23fe..df02e48104d872 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,9 +11,9 @@ ARG TARGETPLATFORM=${TARGETPLATFORM} ARG BUILDPLATFORM=${BUILDPLATFORM} ARG BASE_REGISTRY="docker.io" -# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="3.4.x"] +# Ruby image to use for base image, change with [--build-arg RUBY_VERSION="4.0.x"] # renovate: datasource=docker depName=docker.io/ruby -ARG RUBY_VERSION="3.4.9" +ARG RUBY_VERSION="4.0.2" # # Node.js version to use in base image, change with [--build-arg NODE_MAJOR_VERSION="22"] # renovate: datasource=node-version depName=node ARG NODE_MAJOR_VERSION="24" diff --git a/Gemfile b/Gemfile index 8f283db728dbd5..44b2b3d102595d 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby '>= 3.3.0', '< 3.5.0' +ruby '>= 3.3.0', '< 4.1.0' gem 'propshaft' gem 'puma', '~> 7.0' diff --git a/Gemfile.lock b/Gemfile.lock index d5d71953b406ae..92cc117b1cf280 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1097,7 +1097,7 @@ DEPENDENCIES xorcist (~> 1.1) RUBY VERSION - ruby 3.4.9 + ruby 4.0.2 BUNDLED WITH 4.0.8 From b1bb3baefbed0f89abee82bc27000db2e62c22fe Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 30 Mar 2026 15:27:00 +0200 Subject: [PATCH 073/335] Fix text layout in edition history dropdown (#38485) --- app/javascript/mastodon/components/edited_timestamp/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/mastodon/components/edited_timestamp/index.tsx b/app/javascript/mastodon/components/edited_timestamp/index.tsx index 2d73904dff2f26..9b7fec1849b6fe 100644 --- a/app/javascript/mastodon/components/edited_timestamp/index.tsx +++ b/app/javascript/mastodon/components/edited_timestamp/index.tsx @@ -71,12 +71,14 @@ export const EditedTimestamp: React.FC<{ id='status.history.created' defaultMessage='{name} created {date}' values={{ name: formattedName, date: formattedDate }} + tagName='span' /> ) : ( ); From 30275cd80e8552d6cbcdeb11f83a4d5028aa6eae Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 30 Mar 2026 16:45:59 +0200 Subject: [PATCH 074/335] Disable extraneous devise strategies if `DISABLE_DEVISE_TWO_STRATEGIES` is set to `true` (#38486) --- config/initializers/devise.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 149c1b1af4abbc..cb3fd28be84f57 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -98,8 +98,11 @@ def session_cookie manager.default_strategies(scope: :user).unshift :two_factor_ldap_authenticatable if Devise.ldap_authentication manager.default_strategies(scope: :user).unshift :two_factor_pam_authenticatable if Devise.pam_authentication manager.default_strategies(scope: :user).unshift :session_activation_rememberable - manager.default_strategies(scope: :user).unshift :two_factor_authenticatable - manager.default_strategies(scope: :user).unshift :two_factor_backupable + + unless ENV['DISABLE_DEVISE_TWO_STRATEGIES'] == 'true' + manager.default_strategies(scope: :user).unshift :two_factor_authenticatable + manager.default_strategies(scope: :user).unshift :two_factor_backupable + end end # The secret key used by Devise. Devise uses this key to generate From ede655517bc78a905879f938e479238d32ee5efd Mon Sep 17 00:00:00 2001 From: Andy Piper Date: Mon, 30 Mar 2026 17:36:07 +0100 Subject: [PATCH 075/335] Update to Contributor Covenant v3.0 (#36323) Signed-off-by: Andy Piper --- CODE_OF_CONDUCT.md | 159 ++++++++++++++++----------------------------- 1 file changed, 55 insertions(+), 104 deletions(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index c88a0d938553d8..bce574d47c1539 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,132 +1,83 @@ -# Contributor Covenant Code of Conduct +# Contributor Covenant 3.0 Code of Conduct ## Our Pledge -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. +We pledge to make our community welcoming, safe, and equitable for all. -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. +We are committed to fostering an environment that respects and promotes the dignity, rights, and contributions of all individuals, regardless of characteristics including race, ethnicity, caste, color, age, physical characteristics, neurodiversity, disability, sex or gender, gender identity or expression, sexual orientation, language, philosophy or religion, national or social origin, socio-economic position, level of education, or other status. The same privileges of participation are extended to everyone who participates in good faith and in accordance with this Covenant. -## Our Standards +## Encouraged Behaviors -Examples of behavior that contributes to a positive environment for our -community include: +While acknowledging differences in social norms, we all strive to meet our community's expectations for positive behavior. We also understand that our words and actions may be interpreted differently than we intend based on culture, background, or native language. -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community +With these considerations in mind, we agree to behave mindfully toward each other and act in ways that center our shared values, including: -Examples of unacceptable behavior include: +1. Respecting the **purpose of our community**, our activities, and our ways of gathering. +2. Engaging **kindly and honestly** with others. +3. Respecting **different viewpoints** and experiences. +4. **Taking responsibility** for our actions and contributions. +5. Gracefully giving and accepting **constructive feedback**. +6. Committing to **repairing harm** when it occurs. +7. Behaving in other ways that promote and sustain the **well-being of our community**. -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting +## Restricted Behaviors -## Enforcement Responsibilities +We agree to restrict the following behaviors in our community. Instances, threats, and promotion of these behaviors are violations of this Code of Conduct. -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. +1. **Harassment.** Violating explicitly expressed boundaries or engaging in unnecessary personal attention after any clear request to stop. +2. **Character attacks.** Making insulting, demeaning, or pejorative comments directed at a community member or group of people. +3. **Stereotyping or discrimination.** Characterizing anyone’s personality or behavior on the basis of immutable identities or traits. +4. **Sexualization.** Behaving in a way that would generally be considered inappropriately intimate in the context or purpose of the community. +5. **Violating confidentiality**. Sharing or acting on someone's personal or private information without their permission. +6. **Endangerment.** Causing, encouraging, or threatening violence or other harm toward any person or group. +7. Behaving in other ways that **threaten the well-being** of our community. -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. +### Other Restrictions -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[hello@joinmastodon.org](mailto:hello@joinmastodon.org). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines +1. **Misleading identity.** Impersonating someone else for any reason, or pretending to be someone else to evade enforcement actions. +2. **Failing to credit sources.** Not properly crediting the sources of content you contribute. +3. **Promotional materials**. Sharing marketing or other commercial content in a way that is outside the norms of the community. +4. **Irresponsible communication.** Failing to responsibly present content which includes, links or describes any other restricted behaviors. -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: +## Reporting an Issue -### 1. Correction +Tensions can occur between community members even when they are trying their best to collaborate. Not every conflict represents a code of conduct violation, and this Code of Conduct reinforces encouraged behaviors and norms that can help avoid conflicts and minimize harm. -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. +When an incident does occur, it is important to report it promptly. To report a possible violation, send an email describing the situation to hello@joinmastodon.org. -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. +Community Moderators take reports of violations seriously and will make every effort to respond in a timely manner. They will investigate all reports of code of conduct violations, reviewing messages, logs, and recordings, or interviewing witnesses and other participants. Community Moderators will keep investigation and enforcement actions as transparent as possible while prioritizing safety and confidentiality. In order to honor these values, enforcement actions are carried out in private with the involved parties, but communicating to the whole community may be part of a mutually agreed upon resolution. -### 2. Warning +## Addressing and Repairing Harm -**Community Impact**: A violation through a single incident or series of -actions. +If an investigation by the Community Moderators finds that this Code of Conduct has been violated, the following enforcement ladder may be used to determine how best to repair harm, based on the incident's impact on the individuals involved and the community as a whole. Depending on the severity of a violation, lower rungs on the ladder may be skipped. -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. +1. Warning + 1. Event: A violation involving a single incident or series of incidents. + 2. Consequence: A private, written warning from the Community Moderators. + 3. Repair: Examples of repair include a private written apology, acknowledgement of responsibility, and seeking clarification on expectations. +2. Temporarily Limited Activities + 1. Event: A repeated incidence of a violation that previously resulted in a warning, or the first incidence of a more serious violation. + 2. Consequence: A private, written warning with a time-limited cooldown period designed to underscore the seriousness of the situation and give the community members involved time to process the incident. The cooldown period may be limited to particular communication channels or interactions with particular community members. + 3. Repair: Examples of repair may include making an apology, using the cooldown period to reflect on actions and impact, and being thoughtful about re-entering community spaces after the period is over. +3. Temporary Suspension + 1. Event: A pattern of repeated violation which the Community Moderators have tried to address with warnings, or a single serious violation. + 2. Consequence: A private written warning with conditions for return from suspension. In general, temporary suspensions give the person being suspended time to reflect upon their behavior and possible corrective actions. + 3. Repair: Examples of repair include respecting the spirit of the suspension, meeting the specified conditions for return, and being thoughtful about how to reintegrate with the community when the suspension is lifted. +4. Permanent Ban + 1. Event: A pattern of repeated code of conduct violations that other steps on the ladder have failed to resolve, or a violation so serious that the Community Moderators determine there is no way to keep the community safe with this person as a member. + 2. Consequence: Access to all community spaces, tools, and communication channels is removed. In general, permanent bans should be rarely used, should have strong reasoning behind them, and should only be resorted to if working through other remedies has failed to change the behavior. + 3. Repair: There is no possible repair in cases of this severity. -### 3. Temporary Ban +This enforcement ladder is intended as a guideline. It does not limit the ability of Community Managers to use their discretion and judgment, in keeping with the best interests of our community. -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. +## Scope -**Consequence**: A permanent ban from any sort of public interaction within the -community. +This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public or other spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. ## Attribution -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. +This Code of Conduct is adapted from the Contributor Covenant, version 3.0, permanently available at [https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/). -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. +Contributor Covenant is stewarded by the Organization for Ethical Source and licensed under CC BY-SA 4.0. To view a copy of this license, visit [https://creativecommons.org/licenses/by-sa/4.0/](https://creativecommons.org/licenses/by-sa/4.0/) -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations +For answers to common questions about Contributor Covenant, see the FAQ at [https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq). Translations are provided at [https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations). Additional enforcement and community guideline resources can be found at [https://www.contributor-covenant.org/resources](https://www.contributor-covenant.org/resources). The enforcement ladder was inspired by the work of [Mozilla’s code of conduct team](https://github.com/mozilla/inclusion). From 6736b50c1429632da3f74ab28a8a92a7f6e84f5f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 31 Mar 2026 16:53:38 +0200 Subject: [PATCH 076/335] New Crowdin Translations (automated) (#38496) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/el.json | 4 +- app/javascript/mastodon/locales/gd.json | 233 ++++++++++++++++++++++++ app/javascript/mastodon/locales/io.json | 108 ++++++++++- app/javascript/mastodon/locales/ja.json | 1 + app/javascript/mastodon/locales/tt.json | 12 ++ app/javascript/mastodon/locales/vi.json | 18 +- config/locales/be.yml | 2 +- config/locales/doorkeeper.gd.yml | 4 + config/locales/doorkeeper.vi.yml | 4 +- config/locales/el.yml | 42 ++--- config/locales/gd.yml | 74 ++++++++ config/locales/simple_form.el.yml | 4 +- config/locales/simple_form.gd.yml | 4 + config/locales/vi.yml | 16 +- 14 files changed, 478 insertions(+), 48 deletions(-) diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 9158fcd74616c1..0842a8ea7dab70 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -480,7 +480,7 @@ "confirmation_modal.cancel": "Άκυρο", "confirmations.block.confirm": "Αποκλεισμός", "confirmations.delete.confirm": "Διαγραφή", - "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτή την ανάρτηση;", + "confirmations.delete.message": "Σίγουρα θες να διαγράψεις αυτήν την ανάρτηση;", "confirmations.delete.title": "Διαγραφή ανάρτησης;", "confirmations.delete_collection.confirm": "Διαγραφή", "confirmations.delete_collection.message": "Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.", @@ -1138,7 +1138,7 @@ "search.search_or_paste": "Αναζήτηση ή εισαγωγή URL", "search_popout.full_text_search_disabled_message": "Μη διαθέσιμο στο {domain}.", "search_popout.full_text_search_logged_out_message": "Διαθέσιμο μόνο όταν συνδεθείς.", - "search_popout.language_code": "Κωδικός γλώσσας ISO", + "search_popout.language_code": "κωδικός ISO γλώσσας", "search_popout.options": "Επιλογές αναζήτησης", "search_popout.quick_actions": "Γρήγορες ενέργειες", "search_popout.recent": "Πρόσφατες αναζητήσεις", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 0ca7f12e3ed18f..9fc37b55e06cd4 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -14,9 +14,16 @@ "about.powered_by": "Lìonra sòisealta sgaoilte le cumhachd {mastodon}", "about.rules": "Riaghailtean an fhrithealaiche", "account.account_note_header": "Nòta pearsanta", + "account.activity": "Gnìomhachd", + "account.add_note": "Cuir nòta pearsanta ris", "account.add_or_remove_from_list": "Cuir ris no thoir air falbh o liostaichean", + "account.badges.admin": "Rianaire", + "account.badges.blocked": "’Ga bhacadh", "account.badges.bot": "Fèin-obrachail", + "account.badges.domain_blocked": "Àrainn bhacte", "account.badges.group": "Buidheann", + "account.badges.muted": "’Ga mhùchadh", + "account.badges.muted_until": "’Ga mhùchadh gu ruige {until}", "account.block": "Bac @{name}", "account.block_domain": "Bac an àrainn {domain}", "account.block_short": "Bac", @@ -27,6 +34,7 @@ "account.direct": "Thoir iomradh air @{name} gu prìobhaideach", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", "account.domain_blocking": "Àrainn ’ga bacadh", + "account.edit_note": "Deasaich an nòta pearsanta", "account.edit_profile": "Deasaich a’ phròifil", "account.edit_profile_short": "Deasaich", "account.enable_notifications": "Cuir brath thugam nuair a chuireas @{name} post ris", @@ -36,9 +44,17 @@ "account.familiar_followers_two": "’Ga leantainn le {name1} ’s {name2}", "account.featured": "’Ga bhrosnachadh", "account.featured.accounts": "Pròifilean", + "account.featured.collections": "Cruinneachaidhean", "account.featured.hashtags": "Tagaichean hais", "account.featured_tags.last_status_at": "Am post mu dheireadh {date}", "account.featured_tags.last_status_never": "Gun phost", + "account.field_overflow": "Seall an t-susbaint shlàn", + "account.filters.all": "A’ ghnìomhachd air fad", + "account.filters.boosts_toggle": "Seall na brosnachaidhean", + "account.filters.posts_boosts": "Postaichean ’s brosnachaidhean", + "account.filters.posts_only": "Postaichean", + "account.filters.posts_replies": "Postaichean ’s freagairtean", + "account.filters.replies_toggle": "Seall na freagairtean", "account.follow": "Lean", "account.follow_back": "Lean air ais", "account.follow_back_short": "Lean air ais", @@ -63,6 +79,24 @@ "account.locked_info": "Tha prìobhaideachd ghlaiste aig a’ chunntais seo. Nì an sealbhadair lèirmheas a làimh air cò dh’fhaodas a leantainn.", "account.media": "Meadhanan", "account.mention": "Thoir iomradh air @{name}", + "account.menu.add_to_list": "Cuir ri liosta…", + "account.menu.block": "Bac an cunntas", + "account.menu.block_domain": "Bac {domain}", + "account.menu.copied": "Chaidh lethbhreac de cheangal a’ chunntais a chur air an stòr-bhòrd", + "account.menu.copy": "Dèan lethbhreac dhen cheangal", + "account.menu.direct": "Thoir iomradh air gu prìobhaideach", + "account.menu.hide_reblogs": "Falaich na brosnachaidhean air an loidhne-ama", + "account.menu.mention": "Thoir iomradh", + "account.menu.mute": "Mùch an cunntas", + "account.menu.note.description": "Chan fhaic ach thu fhèin seo", + "account.menu.open_original_page": "Seall air {domain}", + "account.menu.remove_follower": "Thoir an neach-leantainn air falbh", + "account.menu.report": "Dèan gearan mun chunntas", + "account.menu.share": "Co-roinn…", + "account.menu.show_reblogs": "Seall na brosnachaidhean air an loidhne-ama", + "account.menu.unblock": "Dì-bhac an cunntas", + "account.menu.unblock_domain": "Dì-bhac {domain}", + "account.menu.unmute": "Dì-mhùch an cunntas", "account.moved_to": "Dh’innis {name} gu bheil an cunntas ùr aca a-nis air:", "account.mute": "Mùch @{name}", "account.mute_notifications_short": "Mùch na brathan", @@ -70,7 +104,22 @@ "account.muted": "’Ga mhùchadh", "account.muting": "’Ga mhùchadh", "account.mutual": "A’ leantainn càch a chèile", + "account.name.help.domain": "Is {domain} am frithealaiche a tha ag òstadh pròifil ’s postaichean a’ chleachdaiche.", + "account.name.help.domain_self": "Is {domain} am frithealaiche agad-sa a tha ag òstadh pròifil ’s postaichean agad-sa.", + "account.name.help.footer": "Air an aon dòigh ’s a chuireas tu puist-d gu daoine le cliantan puist-d eadar-dhealaichte, ’s urrainn dhut conaltradh le daoine air frithealaichean Mastodon eile – agus le duine sam bith air aplacaidean sòisealta eile a chleachdas na h-aon riaghailtean ’s a chleachdas Mastodon (sin pròtacal ActivityPub).", + "account.name.help.header": "Tha aithnichear coltach ri seòladh puist-d", + "account.name.help.username": "Is {username} ainm-cleachdaiche a’ chunntais seo air an fhrithealaiche aca-san. Dh’fhaoidte gu bheil an t-aon ainm-cleachdaiche le cuideigin air frithealaiche eile.", + "account.name.help.username_self": "Is {username} d’ ainm-cleachdaiche air an fhrithealaiche seo. Dh’fhaoidte gu bheil an t-aon ainm-cleachdaiche le cuideigin air frithealaiche eile.", + "account.name_info": "Dè ’s ciall dha seo?", "account.no_bio": "Cha deach tuairisgeul a sholar.", + "account.node_modal.callout": "Chan fhaic ach thu fhèin na nòtaichean pearsanta.", + "account.node_modal.edit_title": "Deasaich an nòta pearsanta", + "account.node_modal.error_unknown": "Cha b’ urrainn dhuinn an nòta a shàbhaladh", + "account.node_modal.field_label": "Nòta pearsanta", + "account.node_modal.save": "Sàbhail", + "account.node_modal.title": "Cuir nòta pearsanta ris", + "account.note.edit_button": "Deasaich", + "account.note.title": "Nòta pearsanta (chan fhaic ach thu fhèin e)", "account.open_original_page": "Fosgail an duilleag thùsail", "account.posts": "Postaichean", "account.posts_with_replies": "Postaichean ’s freagairtean", @@ -81,6 +130,8 @@ "account.share": "Co-roinn a’ phròifil aig @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}", "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", + "account.timeline.pinned": "Prìnichte", + "account.timeline.pinned.view_all": "Seall na postaichean prìnichte uile", "account.unblock": "Dì-bhac @{name}", "account.unblock_domain": "Dì-bhac an àrainn {domain}", "account.unblock_domain_short": "Dì-bhac", @@ -90,6 +141,95 @@ "account.unmute": "Dì-mhùch @{name}", "account.unmute_notifications_short": "Dì-mhùch na brathan", "account.unmute_short": "Dì-mhùch", + "account_edit.bio.add_label": "Cuir ris roinn mu mo dhèidhinn", + "account_edit.bio.edit_label": "Deasaich an roinn mu mo dhèidhinn", + "account_edit.bio.placeholder": "Cuir thu fhèin an aithne càich gu goirid.", + "account_edit.bio.title": "Mu mo dhèidhinn", + "account_edit.bio_modal.add_title": "Cuir ris roinn mu mo dhèidhinn", + "account_edit.bio_modal.edit_title": "Deasaich an roinn mu mo dhèidhinn", + "account_edit.column_button": "Deiseil", + "account_edit.column_title": "Deasaich a’ phròifil", + "account_edit.custom_fields.add_label": "Cuir raon ris", + "account_edit.custom_fields.edit_label": "Deasaich an raon", + "account_edit.custom_fields.placeholder": "Cuir ris do riochdairean, ceanglaichean dhan taobh a-muigh no rud sam bith eile a bu mhiann leat co-roinneadh.", + "account_edit.custom_fields.reorder_button": "Atharraich òrdugh nan raointean", + "account_edit.custom_fields.tip_title": "Gliocas: Cuir ceangalaichean dearbhte ris", + "account_edit.custom_fields.title": "Raointean gnàthaichte", + "account_edit.custom_fields.verified_hint": "Ciamar a chuireas mi ceangal dearbhte ris?", + "account_edit.display_name.add_label": "Cuir ris ainm-taisbeanaidh", + "account_edit.display_name.edit_label": "Deasaich an t-ainm-taisbeanaidh", + "account_edit.display_name.placeholder": "’S e mar a nochdas d’ ainm air a’ phròifil agad agus air loidhnichean-ama a tha san ainm-taisbeanaidh agad.", + "account_edit.display_name.title": "Ainm-taisbeanaidh", + "account_edit.featured_hashtags.edit_label": "Cuir tagaichean hais ris", + "account_edit.featured_hashtags.title": "Tagaichean hais brosnaichte", + "account_edit.field_actions.delete": "Sguab às an raon", + "account_edit.field_actions.edit": "Deasaich an raon", + "account_edit.field_delete_modal.confirm": "A bheil thu cinnteach gu bheil thu airson an raon gnàthaichte seo a sguabadh às? Cha ghabh seo a neo-dhèanamh.", + "account_edit.field_delete_modal.delete_button": "Sguab às", + "account_edit.field_delete_modal.title": "A bheil thu airson an raon gnàthaichte a sguabadh às?", + "account_edit.field_edit_modal.add_title": "Cuir raon gnàthaichte ris", + "account_edit.field_edit_modal.discard_confirm": "Tilg air falbh", + "account_edit.field_edit_modal.discard_message": "Tha atharraichean gun sàbhaladh agad. A bheil thu cinnteach gu bheil airson an tilgeil air falbh?", + "account_edit.field_edit_modal.edit_title": "Deasaich an raoin gnàthaichte", + "account_edit.field_edit_modal.name_hint": "Can “Làrach-lìn phearsanta”", + "account_edit.field_edit_modal.name_label": "Leubail", + "account_edit.field_edit_modal.url_warning": "Airson ceangal a chur ris, gabh a-staigh {protocol} aig a thoiseach.", + "account_edit.field_edit_modal.value_hint": "Can “https://example.me”", + "account_edit.field_edit_modal.value_label": "Luach", + "account_edit.field_reorder_modal.drag_cancel": "Chaidh sgur dhen t-slaodadh. Chaidh an raon “{item}” a leigeil às.", + "account_edit.field_reorder_modal.drag_end": "Chaidh an raon “{item}” a leigeil às.", + "account_edit.field_reorder_modal.drag_move": "Chaidh an raon “{item}” a ghluasad.", + "account_edit.field_reorder_modal.drag_over": "Chaidh an raon “{item}” a ghluasad thar “{over}”.", + "account_edit.field_reorder_modal.drag_start": "Chaidh an raon “{item}” a thogail.", + "account_edit.field_reorder_modal.handle_label": "Slaod an raon “{item}”", + "account_edit.field_reorder_modal.title": "Cuir òrdugh ùr air na raointean", + "account_edit.image_alt_modal.add_title": "Cuir roghainn teacsa ris", + "account_edit.image_alt_modal.details_title": "Gliocasan: Roghainn teacsa air dealbhan pròifile", + "account_edit.image_alt_modal.edit_title": "Deasaich an roghainn teacsa", + "account_edit.image_alt_modal.text_label": "Roghainn teacsa", + "account_edit.image_delete_modal.confirm": "A bheil thu cinnteach gu bheil thu airson an dealbh seo a sguabadh às? Cha ghabh seo a neo-dhèanamh.", + "account_edit.image_delete_modal.delete_button": "Sguab às", + "account_edit.image_delete_modal.title": "A bheil thu airson an dealbh a sguabadh às?", + "account_edit.image_edit.add_button": "Cuir dealbh ris", + "account_edit.image_edit.alt_add_button": "Cuir roghainn teacsa ris", + "account_edit.image_edit.alt_edit_button": "Deasaich an roghainn teacsa", + "account_edit.image_edit.remove_button": "Thoir air falbh an dealbh", + "account_edit.image_edit.replace_button": "Cuir dealbh ùr ’na àite", + "account_edit.item_list.delete": "Sguab às {name}", + "account_edit.item_list.edit": "Deasaich {name}", + "account_edit.name_modal.add_title": "Cuir ris ainm-taisbeanaidh", + "account_edit.name_modal.edit_title": "Deasaich an t-ainm-taisbeanaidh", + "account_edit.profile_tab.button_label": "Gnàthaich", + "account_edit.profile_tab.show_featured.title": "Seall an taba “’Ga bhrosnachadh”", + "account_edit.profile_tab.show_media.title": "Seall an taba “Meadhanan”", + "account_edit.profile_tab.show_media_replies.title": "Gabh a-staigh freagairtean air an taba “Meadhanan”", + "account_edit.profile_tab.subtitle": "Gnàthaich na tabaichean air a’ phròifil agad is na sheallas iad.", + "account_edit.profile_tab.title": "Roghainnean tabaichean na pròifile", + "account_edit.save": "Sàbhail", + "account_edit.upload_modal.back": "Air ais", + "account_edit.upload_modal.done": "Deiseil", + "account_edit.upload_modal.next": "Air adhart", + "account_edit.upload_modal.step_crop.zoom": "Sùm", + "account_edit.upload_modal.step_upload.button": "Rùraich na faidhlichean", + "account_edit.upload_modal.step_upload.dragging": "Leig às airson luchdadh suas", + "account_edit.upload_modal.step_upload.header": "Tagh dealbh", + "account_edit.upload_modal.step_upload.hint": "Fòrmat WEBP, PNG, GIF no JPG, suas ri {limit}MB.{br}Thèid an dealbh a sgèileadh gu {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Cuir dealbh ris a’ phròifil", + "account_edit.upload_modal.title_add.header": "Cuir dealbh còmhdachaidh ris", + "account_edit.upload_modal.title_replace.avatar": "Cuir dealbh ùr an àite dealbh na pròifil", + "account_edit.upload_modal.title_replace.header": "Cuir dealbh ùr an àite an deilbh chòmhdachaidh", + "account_edit.verified_modal.invisible_link.details": "Cuir an ceangal ris a’ bhann-chinn agad. ’S e rel=\"me\" a tha sa phàirt chudromach a bhacas riochd cuideigin eile air làraichean-lìn le susbaint air a gintinn o chleachdaiche. ’S urrainn dhut fiù taga link a chleachdadh ann am bann-cinn na duilleige seach {tag} ach feumaidh sinn an HTML ruigsinn gun a bhith a’ ruith JavaScript.", + "account_edit.verified_modal.invisible_link.summary": "Ciamar a dh’fhalaicheas mi an ceangal?", + "account_edit.verified_modal.step1.header": "Dèan lethbhreac dhen chòd HTML gu h-ìosal is cuir e ri bann-cinn na làraich-lìn agad", + "account_edit.verified_modal.step2.details": "Ma chuir thu an làrach-lìn agad mar raon ghnàthaichte ris cheana, feumaidh tu a sguabadh às ’s a chur ris a-rithist airson an dearbhadh a chur gu dol.", + "account_edit.verified_modal.step2.header": "Cuir an làrach-lìn agad ris na raon gnàthaichte", + "account_edit.verified_modal.title": "Mar a chuireas tu ceangal dearbhte ris", + "account_edit_tags.add_tag": "Cuir #{tagName} ris", + "account_edit_tags.column_title": "Deasaich na tagaichean", + "account_edit_tags.search_placeholder": "Cuir a-steach taga hais…", + "account_edit_tags.suggestions": "Molaidhean:", + "account_edit_tags.tag_status_count": "{count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}}", + "account_list.total": "{total, plural, one {# chunntas} two {# chunntas} few {# cunntasan} other {# cunntas}}", "account_note.placeholder": "Briog airson nòta a chur ris", "admin.dashboard.daily_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir latha", "admin.dashboard.monthly_retention": "Reat glèidheadh nan cleachdaichean às dèidh an clàradh a-rèir mìos", @@ -184,16 +324,74 @@ "bundle_modal_error.close": "Dùin", "bundle_modal_error.message": "Chaidh rudeigin ceàrr le luchdadh na sgrìn seo.", "bundle_modal_error.retry": "Feuch ris a-rithist", + "callout.dismiss": "Leig seachad", "carousel.current": "Sleamhnag {current, number} / {max, number}", "carousel.slide": "Sleamhnag {current, number} à {max, number}", + "character_counter.recommended": "{currentLength}/{maxLength} dhe na caractaran a mholamaid", + "character_counter.required": "{currentLength}/{maxLength} caractar(an)", "closed_registrations.other_server_instructions": "Air sgàth ’s gu bheil Mastodon sgaoilte, ’s urrainn dhut cunntas a chruthachadh air frithealaiche eile agus conaltradh ris an fhrithealaiche seo co-dhiù.", "closed_registrations_modal.description": "Cha ghabh cunntas a chruthachadh air {domain} aig an àm seo ach thoir an aire nach fheum thu cunntas air {domain} gu sònraichte airson Mastodon a chleachdadh.", "closed_registrations_modal.find_another_server": "Lorg frithealaiche eile", "closed_registrations_modal.preamble": "Tha Mastodon sgaoilte is mar sin dheth ge b’ e càit an cruthaich thu an cunntas agad, ’s urrainn dhut duine sam bith a leantainn air an fhrithealaiche seo is conaltradh leotha. ’S urrainn dhut fiù ’s frithealaiche agad fhèin òstadh!", "closed_registrations_modal.title": "Clàradh le Mastodon", + "collection.share_modal.share_link_label": "Ceangal co-roinnidh", + "collection.share_modal.share_via_post": "Postaich air Mastodon", + "collection.share_modal.share_via_system": "Co-roinn gu…", + "collection.share_modal.title": "Co-roinn an cruinneachadh", + "collection.share_modal.title_new": "Co-roinn an cruinneachadh ùr agad!", + "collection.share_template_other": "Thoir sùil air an deagh-chruinneachadh seo: {link}", + "collection.share_template_own": "Thoir sùil air a’ chruinneachadh ùr agam: {link}", + "collections.account_count": "{count, plural, one {# chunntas} two {# chunntas} few {# cunntasan} other {# cunntas}}", + "collections.accounts.empty_description": "Cuir ris suas ri {count} cunntas(an) a tha thu a’ leantainn", + "collections.accounts.empty_title": "Tha an an cruinneachadh seo falamh", + "collections.by_account": "le {account_handle}", + "collections.collection_description": "Tuairisgeul", + "collections.collection_language": "Cànan", + "collections.collection_language_none": "Chan eil gin", + "collections.collection_name": "Ainm", + "collections.collection_topic": "Cuspair", + "collections.confirm_account_removal": "A bheil thu cinnteach gu bheil thu airson an cunntas seo a thoirt air falbh on chruinneachadh seo?", + "collections.content_warning": "Rabhadh susbainte", + "collections.continue": "Lean air adhart", + "collections.create.basic_details_title": "Bun-fhiosrachadh", + "collections.create.steps": "Ceum {step}/{total}", + "collections.create_collection": "Cruthaich cruinneachadh", + "collections.delete_collection": "Sguab an cruinneachadh às", + "collections.description_length_hint": "Crìoch de 100 caractar", + "collections.detail.accept_inclusion": "Taghta", + "collections.detail.accounts_heading": "Cunntasan", + "collections.detail.author_added_you": "Chuir {author} ris a’ chruinneachadh seo thu", + "collections.detail.loading": "A’ luchdadh a’ chruinneachaidh…", + "collections.detail.other_accounts_in_collection": "Daoine eile sa chruinneachadh seo:", + "collections.detail.revoke_inclusion": "Thoir air falbh mi", + "collections.detail.share": "Co-roinn an cruinneachadh seo", + "collections.edit_details": "Deasaich am fiosrachadh", + "collections.error_loading_collections": "Thachair mearachd nuair a dh’fheuch sinn ris a’ chruinneachaidhean agad a luchdadh.", + "collections.hints.accounts_counter": "{count} / {max} cunntas(an)", + "collections.last_updated_at": "An tùrachadh mu dheireadh: {date}", + "collections.manage_accounts": "Stiùirich na cunntasan", + "collections.mark_as_sensitive": "Cuir comharra gu bheil e frionasach", + "collections.name_length_hint": "Crìoch de 40 caractar", + "collections.new_collection": "Cruinneachadh ùr", + "collections.no_collections_yet": "Chan eil cruinneachadh agad fhathast.", + "collections.old_last_post_note": "Tha am post mu dheireadh còrr is seachdain air ais", + "collections.remove_account": "Thoir air falbh an cunntas seo", + "collections.report_collection": "Dèan gearan mun chruinneachadh seo", + "collections.revoke_collection_inclusion": "Thoir mi fhìn air falbh on chruinneachadh seo", + "collections.revoke_inclusion.confirmation": "Chaidh do thoirt air falbh o “{collection}”", + "collections.revoke_inclusion.error": "Thachair mearachd. Feuch ris a-rithist an ceann greis.", + "collections.search_accounts_label": "Lorg cunntasan gus an cur ris…", + "collections.sensitive": "Frionasach", + "collections.view_collection": "Seall an cruinneachadh ", + "collections.view_other_collections_by_user": "Seall cruinneachaidhean eile aig a’ chleachdaiche seo", + "collections.visibility_public": "Poblach", + "collections.visibility_title": "Faicsinneachd", + "collections.visibility_unlisted": "Falaichte o liostaichean", + "collections.visibility_unlisted_hint": "Chì duine sam bith aig a bheil ceangal e. Thèid fhalach o thoraidhean luirg ’s na molaidhean.", "column.about": "Mu dhèidhinn", "column.blocks": "Cleachdaichean bacte", "column.bookmarks": "Comharran-lìn", + "column.collections": "Na cruinneachaidhean agam", "column.community": "Loidhne-ama ionadail", "column.create_list": "Cruthaich liosta", "column.direct": "Iomraidhean prìobhaideach", @@ -220,6 +418,11 @@ "column_header.show_settings": "Seall na roghainnean", "column_header.unpin": "Dì-phrìnich", "column_search.cancel": "Sguir dheth", + "combobox.close_results": "Dùin na toraidhean", + "combobox.loading": "’Ga luchdadh", + "combobox.no_results_found": "Cha deach toradh a lorg", + "combobox.open_results": "Fosgail na toraidhean", + "combobox.results_available": "Tha {count, plural, one {# mholadh} two {# mholadh} few {# molaidhean } other {# moladh}} ri fhaighinn. Cleachd an t-saighead suas no sìos airson gluasad mun cuairt. Brùth air Enter airson taghadh.", "community.column_settings.local_only": "Feadhainn ionadail a-mhàin", "community.column_settings.media_only": "Meadhanan a-mhàin", "community.column_settings.remote_only": "Feadhainn chèin a-mhàin", @@ -253,6 +456,9 @@ "confirmations.delete.confirm": "Sguab às", "confirmations.delete.message": "A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às?", "confirmations.delete.title": "A bheil thu airson am post a sguabadh às?", + "confirmations.delete_collection.confirm": "Sguab às", + "confirmations.delete_collection.message": "Cha ghabh seo a neo-dhèanamh.", + "confirmations.delete_collection.title": "A bheil thu airson “{name}” a sguabadh às?", "confirmations.delete_list.confirm": "Sguab às", "confirmations.delete_list.message": "A bheil thu cinnteach gu bheil thu airson an liosta seo a sguabadh às gu buan?", "confirmations.delete_list.title": "A bheil thu airson an liosta a sguabadh às?", @@ -265,6 +471,9 @@ "confirmations.discard_draft.post.title": "A bheil thu airson dreachd a’ phuist agad a thilgeil air falbh?", "confirmations.discard_edit_media.confirm": "Tilg air falbh", "confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?", + "confirmations.follow_to_collection.confirm": "Lean ’s cuir ri cruinneachadh", + "confirmations.follow_to_collection.message": "Feumaidh tu {name} a leantainn mus cuir thu ri cruinneachadh iad.", + "confirmations.follow_to_collection.title": "A bheil thu airson an cunntas a leantainn?", "confirmations.follow_to_list.confirm": "Lean ’s cuir ris an liosta", "confirmations.follow_to_list.message": "Feumaidh tu {name} a leantainn ron chur ri liosta.", "confirmations.follow_to_list.title": "A bheil thu airson an cleachdaiche a leantainn?", @@ -291,6 +500,8 @@ "confirmations.remove_from_followers.confirm": "Thoir an neach-leantainn air falbh", "confirmations.remove_from_followers.message": "Cha lean {name} thu tuilleadh. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.remove_from_followers.title": "A bheil thu airson an neach-leantainn a thoirt air falbh?", + "confirmations.revoke_collection_inclusion.confirm": "Thoir air falbh mi", + "confirmations.revoke_collection_inclusion.title": "A bheil tu airson do thoirt air falbh on chruinneachadh seo?", "confirmations.revoke_quote.confirm": "Thoir am post air falbh", "confirmations.revoke_quote.message": "Cha ghabh seo a neo-dhèanamh.", "confirmations.revoke_quote.title": "A bheil thu airson am post a thoirt air falbh?", @@ -308,6 +519,7 @@ "conversation.open": "Seall an còmhradh", "conversation.with": "Còmhla ri {names}", "copy_icon_button.copied": "Chaidh lethbhreac dheth a chur air an stòr-bhòrd", + "copy_icon_button.copy_this_text": "Cuir lethbhreac dhen cheangal air an stòr-bhòrd", "copypaste.copied": "Chaidh lethbhreac dheth a dhèanamh", "copypaste.copy_to_clipboard": "Cuir lethbhreac dheth air an stòr-bhòrd", "directory.federated": "On cho-shaoghal aithnichte", @@ -384,6 +596,7 @@ "empty_column.notification_requests": "Glan! Chan eil dad an-seo. Nuair a gheibh thu brathan ùra, nochdaidh iad an-seo a-rèir nan roghainnean agad.", "empty_column.notifications": "Cha d’ fhuair thu brath sam bith fhathast. Nuair a nì càch conaltradh leat, chì thu an-seo e.", "empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean càch o fhrithealaichean eile a làimh airson seo a lìonadh", + "empty_state.no_results": "Gun toradh", "error.no_hashtag_feed_access": "Cruthaich cunntas no clàraich a-steach airson an taga hais seo a shealltainn is leantainn.", "error.unexpected_crash.explanation": "Air sàilleibh buga sa chòd againn no duilgheadas co-chòrdalachd leis a’ bhrabhsair, chan urrainn dhuinn an duilleag seo a shealltainn mar bu chòir.", "error.unexpected_crash.explanation_addons": "Cha b’ urrainn dhuinn an duilleag seo a shealltainn mar bu chòir. Tha sinn an dùil gu do dh’adhbharaich tuilleadan a’ bhrabhsair no inneal eadar-theangachaidh fèin-obrachail a’ mhearachd.", @@ -399,6 +612,10 @@ "featured_carousel.current": "Post {current, number} / {max, number}", "featured_carousel.header": "{count, plural, one {Post prìnichte} two {Postaichean prìnichte} few {Postaichean prìnichte} other {Postaichean prìnichte}}", "featured_carousel.slide": "Post {current, number} à {max, number}", + "featured_tags.suggestions": "Sgrìobh thu mu {items} o chionn goirid. A bheil thu airson an cur ris ’nan tagaichean hais brosnaichte?", + "featured_tags.suggestions.add": "Cuir ris", + "featured_tags.suggestions.added": "Stiùirich na tagaichean hais brosnaichte agad uair sam bith aig Deasaich a’ phròifil > Tagaichean hais brosnaichte.", + "featured_tags.suggestions.dismiss": "Na cuir ris", "filter_modal.added.context_mismatch_explanation": "Chan eil an roinn-seòrsa criathraidh iom seo chaidh dhan cho-theacs san do dh’inntrig thu am post seo. Ma tha thu airson am post a chriathradh sa cho-theacs seo cuideachd, feumaidh tu a’ chriathrag a dheasachadh.", "filter_modal.added.context_mismatch_title": "Co-theacsa neo-iomchaidh!", "filter_modal.added.expired_explanation": "Dh’fhalbh an ùine air an roinn-seòrsa criathraidh seo agus feumaidh tu an ceann-là crìochnachaidh atharrachadh mus cuir thu an sàs i.", @@ -440,6 +657,8 @@ "follow_suggestions.view_all": "Seall na h-uile", "follow_suggestions.who_to_follow": "Molaidhean leantainn", "followed_tags": "Tagaichean hais ’gan leantainn", + "followers.title": "A’ leantainn {name}", + "following.title": "’Ga leantainn le {name}", "footer.about": "Mu dhèidhinn", "footer.about_mastodon": "Mu Mhastodon", "footer.about_server": "Mu {domain}", @@ -451,6 +670,8 @@ "footer.source_code": "Seall am bun-tùs", "footer.status": "Staid", "footer.terms_of_service": "Teirmichean na seirbheise", + "form_error.blank": "Chan fhaod an raon a bhith bàn.", + "form_field.optional": "(roghainneil)", "generic.saved": "Chaidh a shàbhaladh", "getting_started.heading": "Toiseach", "hashtag.admin_moderation": "Fosgail eadar-aghaidh na maorsainneachd dha #{name}", @@ -520,6 +741,7 @@ "keyboard_shortcuts.direct": "Fosgail colbh nan iomraidhean prìobhaideach", "keyboard_shortcuts.down": "Gluais sìos air an liosta", "keyboard_shortcuts.enter": "Fosgail post", + "keyboard_shortcuts.explore": "Fosgail na treandaichean", "keyboard_shortcuts.favourite": "Cuir am post ris na h-annsachdan", "keyboard_shortcuts.favourites": "Fosgail liosta nan annsachdan", "keyboard_shortcuts.federated": "Fosgail an loidhne-ama cho-naisgte", @@ -606,6 +828,7 @@ "navigation_bar.automated_deletion": "Sguabadh às phostaichean", "navigation_bar.blocks": "Cleachdaichean bacte", "navigation_bar.bookmarks": "Comharran-lìn", + "navigation_bar.collections": "Cruinneachaidhean", "navigation_bar.direct": "Iomraidhean prìobhaideach", "navigation_bar.domain_blocks": "Àrainnean bacte", "navigation_bar.favourites": "Annsachdan", @@ -753,12 +976,14 @@ "notifications_permission_banner.title": "Na caill dad gu bràth tuilleadh", "onboarding.follows.back": "Air ais", "onboarding.follows.empty": "Gu mì-fhortanach, chan urrainn dhuinn toradh a shealltainn an-dràsta. Feuch gleus an luirg no duilleag an rùrachaidh airson daoine ri leantainn a lorg no feuch ris a-rithist an ceann tamaill.", + "onboarding.follows.next": "Air adhart: Suidhich a’ phròifil agad", "onboarding.follows.search": "Lorg", "onboarding.follows.title": "Lean daoine airson tòiseachadh", "onboarding.profile.discoverable": "Bu mhath leam gun gabh a’ phròifil agam a rùrachadh", "onboarding.profile.discoverable_hint": "Ma chuir thu romhad gun gabh a’ phròifil agad a rùrachadh air Mastodon, faodaidh na postaichean agad nochdadh ann an toraidhean luirg agus treandaichean agus dh’fhaoidte gun dèid a’ phròifil agad a mholadh dhan fheadhainn aig a bheil ùidhean coltach ri d’ ùidhean-sa.", "onboarding.profile.display_name": "Ainm-taisbeanaidh", "onboarding.profile.display_name_hint": "D’ ainm slàn no spòrsail…", + "onboarding.profile.finish": "Crìochnaich", "onboarding.profile.note": "Cunntas-beatha", "onboarding.profile.note_hint": "’S urrainn dhut @iomradh a thoirt air càch no air #tagaicheanHais…", "onboarding.profile.title": "Suidheachadh na pròifile", @@ -784,6 +1009,7 @@ "privacy.private.short": "Luchd-leantainn", "privacy.public.long": "Duine sam bith taobh a-staigh no a-muigh Mhastodon", "privacy.public.short": "Poblach", + "privacy.quote.anyone": "{visibility}, luaidh ceadaichte", "privacy.quote.disabled": "{visibility}, luaidh à comas", "privacy.quote.limited": "{visibility}, luaidh cuingichte", "privacy.unlisted.additional": "Tha seo coltach ris an fhaicsinneachd phoblach ach cha nochd am post air loidhnichean-ama an t-saoghail phoblaich, nan tagaichean hais no an rùrachaidh no ann an toraidhean luirg Mhastodon fiù ’s ma thug thu ro-aonta airson sin seachad.", @@ -829,6 +1055,7 @@ "report.category.title_account": "phròifil", "report.category.title_status": "phost", "report.close": "Deiseil", + "report.collection_comment": "Carson a tha thu airson gearan a dhèanamh mun chruinneachadh seo?", "report.comment.title": "A bheil rud sam bith eile a bu toigh leat innse dhuinn?", "report.forward": "Sìn air adhart gu {target}", "report.forward_hint": "Chaidh an cunntas a chlàradh air frithealaiche eile. A bheil thu airson lethbhreac dhen ghearan a chur dha-san gun ainm cuideachd?", @@ -850,6 +1077,8 @@ "report.rules.title": "Dè na riaghailtean a tha ’gam briseadh?", "report.statuses.subtitle": "Tagh a h-uile gin a tha iomchaidh", "report.statuses.title": "A bheil postaichean sam bith ann a tha ’nam fianais dhan ghearan seo?", + "report.submission_error": "Cha b’ urrainn dhuinn an gearan a chur a-null", + "report.submission_error_details": "Thoir sùil air a’ cheangal ris an lìonra agad is feuch ris a-rithist an ceann greis.", "report.submit": "Cuir a-null", "report.target": "A’ gearan mu {target}", "report.thanks.take_action": "Seo na roghainnean a th’ agad airson stiùireadh na chì thu air Mastodon:", @@ -903,6 +1132,9 @@ "sign_in_banner.mastodon_is": "Is Mastodon an dòigh as fheàrr airson sùil a chumail air na tha a’ dol.", "sign_in_banner.sign_in": "Clàraich a-steach", "sign_in_banner.sso_redirect": "Clàraich a-steach no clàraich leinn", + "skip_links.hotkey": "Grad-iuchair {hotkey}", + "skip_links.skip_to_content": "Geàrr leum chun na prìomh-shusbainte", + "skip_links.skip_to_navigation": "Geàrr leum chun na prìomh-sheòladaireachd", "status.admin_account": "Fosgail eadar-aghaidh na maorsainneachd dha @{name}", "status.admin_domain": "Fosgail eadar-aghaidh na maorsainneachd dha {domain}", "status.admin_status": "Fosgail am post seo ann an eadar-aghaidh na maorsainneachd", @@ -1004,6 +1236,7 @@ "tabs_bar.notifications": "Brathan", "tabs_bar.publish": "Post ùr", "tabs_bar.search": "Lorg", + "tag.remove": "Thoir air falbh", "terms_of_service.effective_as_of": "Èifeachdach on {date}", "terms_of_service.title": "Teirmichean na seirbheise", "terms_of_service.upcoming_changes_on": "Tha atharraichean ri thighinn air {date}", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index c0bbf7f4ffa554..031a45819e211d 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -1,6 +1,7 @@ { "about.blocks": "Jerata servili", "about.contact": "Kontaktajo:", + "about.default_locale": "Predeterminita", "about.disclaimer": "Mastodon esas libera, publikfonta e komercmarko di Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Expliko nedisponebla", "about.domain_blocks.preamble": "Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo.", @@ -13,30 +14,55 @@ "about.powered_by": "Necentraligita sociala ret quo povigesas da {mastodon}", "about.rules": "Servilreguli", "account.account_note_header": "Personala noto", + "account.activity": "Ago", + "account.add_note": "Adjuntez personala noto", "account.add_or_remove_from_list": "Adjuntar o forigar de listi", + "account.badges.admin": "Administranto", + "account.badges.blocked": "Blokusita", "account.badges.bot": "Boto", + "account.badges.domain_blocked": "Blokusita domeno", "account.badges.group": "Grupo", + "account.badges.muted": "Silencigata", + "account.badges.muted_until": "Silencigita til {until}", "account.block": "Blokusar @{name}", "account.block_domain": "Blokusar {domain}", "account.block_short": "Blokusar", "account.blocked": "Blokusita", + "account.blocking": "Blokusas", "account.cancel_follow_request": "Desendez sequodemando", "account.copy": "Kopiez ligilo al profilo", "account.direct": "Private mencionez @{name}", "account.disable_notifications": "Cesez avizar me kande @{name} postas", + "account.domain_blocking": "Blokusas domeno", + "account.edit_note": "Redaktez personala noto", "account.edit_profile": "Redaktar profilo", + "account.edit_profile_short": "Redaktez", "account.enable_notifications": "Avizez me kande @{name} postas", "account.endorse": "Traito di profilo", + "account.featured": "Estalita", + "account.featured.accounts": "Profili", + "account.featured.collections": "Kolektaji", + "account.featured.hashtags": "Gretvorti", "account.featured_tags.last_status_at": "Antea posto ye {date}", "account.featured_tags.last_status_never": "Nula posti", + "account.filters.all": "Omna ago", + "account.filters.boosts_toggle": "Montrez diskonoci", + "account.filters.posts_boosts": "Afishi e diskonoci", + "account.filters.posts_only": "Afishi", + "account.filters.posts_replies": "Afishi e respondi", + "account.filters.replies_toggle": "Montrez respondi", "account.follow": "Sequar", "account.follow_back": "Anke sequez", + "account.follow_request_cancel": "Anulez demando", + "account.follow_request_cancel_short": "Anulez", + "account.follow_request_short": "Demandez", "account.followers": "Sequanti", "account.followers.empty": "Nulu sequas ca uzanto til nun.", "account.followers_counter": "{count, plural,one {{counter} sequanto} other {{counter} sequanti}}", "account.following": "Sequata", "account.following_counter": "{count, plural,one {{counter} sequato} other {{counter} sequati}}", "account.follows.empty": "Ca uzanto ne sequa irgu til nun.", + "account.follows_you": "Sequas vu", "account.go_to_profile": "Irez al profilo", "account.hide_reblogs": "Celez repeti de @{name}", "account.in_memoriam": "Memorige.", @@ -46,12 +72,29 @@ "account.locked_info": "La privatesostaco di ca konto fixesas quale lokata. Proprietato manue kontrolas personi qui povas sequar.", "account.media": "Audvidaji", "account.mention": "Mencionar @{name}", + "account.menu.add_to_list": "Adjuntez ad listo…", + "account.menu.block": "Blokusez konto", + "account.menu.block_domain": "Blokuez {domain}", + "account.menu.direct": "Private mencionez", + "account.menu.hide_reblogs": "Celez diskonoci en tempolineo", + "account.menu.mention": "Mencionez", + "account.menu.mute": "Silencigez konto", + "account.menu.open_original_page": "Videz che {domain}", + "account.menu.remove_follower": "Efacez sequanto", + "account.menu.report": "Efacez konto", "account.menu.share": "Kunhavigez…", + "account.menu.show_reblogs": "Montrez diskonoci en tempolineo", + "account.menu.unblock": "Retroblokusez konto", + "account.menu.unblock_domain": "Retroblokusez {domain}", + "account.menu.unmute": "Retrosilencigez konto", "account.moved_to": "{name} indikis ke lua nova konto es nune:", "account.mute": "Celar @{name}", "account.mute_notifications_short": "Silencigez avizi", "account.mute_short": "Silencigez", "account.muted": "Silencigata", + "account.muting": "Silencigas", + "account.name.help.footer": "Samkam vu povas sendar retposti ad personi per dessama retpostosoftwari, vu povas interagar kun personi che altra Mastodon-servili (ActivityPub-kodexaro).", + "account.name.help.header": "Nometo esas kam retpostadreso", "account.no_bio": "Deskriptajo ne provizesis.", "account.open_original_page": "Apertez originala pagino", "account.posts": "Mesaji", @@ -64,12 +107,38 @@ "account.unblock": "Desblokusar @{name}", "account.unblock_domain": "Desblokusar {domain}", "account.unblock_short": "Desblokusar", - "account.unendorse": "Ne publikigez che profilo", + "account.unendorse": "Ne estalez che profilo", "account.unfollow": "Ne plus sequar", "account.unmute": "Ne plus celar @{name}", "account.unmute_notifications_short": "Dessilencigez avizi", "account.unmute_short": "Desilencigez", "account_edit.custom_fields.placeholder": "Adjuntez vua pronomi, externa ligili o altra irgo quan vu volas kunhavigar.", + "account_edit.display_name.add_label": "Adjuntez nometo", + "account_edit.display_name.edit_label": "Redaktez nometo", + "account_edit.display_name.placeholder": "Vua nometo esas quale vua nomo aparas che vua profilo e en tempolinei.", + "account_edit.display_name.title": "Nometo", + "account_edit.featured_hashtags.edit_label": "Adjuntez gretvorti", + "account_edit.featured_hashtags.placeholder": "Helpez altru identifikar e havez rapida aceso por vua prizita topiki.", + "account_edit.featured_hashtags.title": "Estalita gretvorti", + "account_edit.field_edit_modal.length_warning": "Rekomendita literlimito esis ecesita.", + "account_edit.field_edit_modal.link_emoji_warning": "Ni desrekomendas uzar kustuma emoji kun url.", + "account_edit.field_edit_modal.url_warning": "Por adjuntar ligilo, inkluzez {protocol} che la komenco.", + "account_edit.name_modal.add_title": "Adjuntez nometo", + "account_edit.name_modal.edit_title": "Redaktez nometo", + "account_edit.profile_tab.button_label": "Kustumizez", + "account_edit.profile_tab.hint.description": "Ca preferaji kustumizas quon uzanti vidas che {server} per oficala softwari, me li forsan ne esas sama ad uzanti che altra servili e desoficala softwari.", + "account_edit.profile_tab.hint.title": "Vidi ankore esas chanjita", + "account_edit.profile_tab.show_featured.description": "'Estalita' esas nemusta langeto ube vu povas dismontrar altra konti.", + "account_edit.profile_tab.show_featured.title": "Montrez 'Estalita'-langeto", + "account_edit.profile_tab.show_media.description": "'Audvidajo' esas desmusta langeto qua montras vua posti qui kontenas imaji o videii.", + "account_edit.profile_tab.show_media.title": "Montrez 'Audvidajo'-langeto", + "account_edit.profile_tab.show_media_replies.description": "Kande aktivigita, audvidajlangeto montras ambe vua afishi e respondi ad afishi di altra personi.", + "account_edit.profile_tab.show_media_replies.title": "Inkluzas respondi che 'Audvidajo'-langeto", + "account_edit.profile_tab.subtitle": "Kustumizas la langeti che vua profilo e quon li montras.", + "account_edit.profile_tab.title": "Profillangetpreferaji", + "account_edit.verified_modal.invisible_link.details": "Adjuntez la ligilo ad vua kapimajo. Vu anke povas uzar ligiletiketo en la kapimajo di la pagino vice {tag}, ma la HTML mustas esar acesebla sen exekutar JavaScript.", + "account_edit_tags.help_text": "Estalita gretvorti helpas uzanti deskovrar e interagar kun vua profilo.", + "account_edit_tags.max_tags_reached": "Vu atingas la maxim quanto di estalita gretvorti.", "account_note.placeholder": "Klikez por adjuntar noto", "admin.dashboard.daily_retention": "Dia uzantoretenseso pos registro", "admin.dashboard.monthly_retention": "Monata uzantoreteneso pos registro", @@ -96,6 +165,12 @@ "annual_report.shared_page.donate": "Donacez", "annual_report.shared_page.footer": "Igita kun {heart} da la grupo di Mastodon", "annual_report.shared_page.footer_server_info": "{username} uzas {domain}, un de multa komunitati quin povizita da Mastodon.", + "annual_report.summary.archetype.booster.desc_public": "{name} dauras serchar afishi por diskonoci e pluigas altra kreanti.", + "annual_report.summary.archetype.booster.desc_self": "Vu dauras serchar afishi por diskonoci e pluigas altra kreanti.", + "annual_report.summary.archetype.booster.name": "La arkisto", + "annual_report.summary.archetype.lurker.desc_public": "Ni povas ke {name} esas ulaloke e juas Mastodon.", + "annual_report.summary.archetype.lurker.desc_self": "Ni savas ke vu esas ulaloke e juas Mastodon.", + "annual_report.summary.highlighted_post.boost_count": "Ca afisho esis diskonocita {count, plural,one {unfoye} other {# foye}}.", "annual_report.summary.most_used_app.most_used_app": "maxim uzita aplikajo", "annual_report.summary.most_used_hashtag.most_used_hashtag": "maxim uzita gretvorto", "annual_report.summary.new_posts.new_posts": "nova afishi", @@ -141,8 +216,11 @@ "collection.share_modal.title_new": "Kunhavigez vua nova kolektajo!", "collection.share_template_other": "Videz ca splendida kolektajo: {link}", "collection.share_template_own": "Videz mia nova kolektajo: {link}", + "collections.content_warning": "Kontenajaverto", + "collections.create.accounts_title": "Quan vu estalos en ca kolektajo?", "collections.create_a_collection_hint": "Kreez kolektajo por rekomendar o kunhavigez vua favoriza konti kun altri.", "collections.detail.share": "Kunhavigez ca kolektajo", + "collections.mark_as_sensitive_hint": "Celas deskripto di la kolektajo e konti dop kontenajaverto.", "column.about": "Pri co", "column.blocks": "Blokusita uzeri", "column.bookmarks": "Lektosigni", @@ -292,6 +370,9 @@ "emoji_button.search_results": "Trovuri", "emoji_button.symbols": "Simboli", "emoji_button.travel": "Vizito & Plasi", + "empty_column.account_featured.me": "Vu ne estalas irga ankore. Ka vu savas?", + "empty_column.account_featured.other": "{acct} ne estalas irga ankore. Ka vu savas?", + "empty_column.account_featured_other.unknown": "Ca konto ne estalas irga ankore.", "empty_column.account_hides_collections": "Ca uzanto selektis ne publikigar ca informo", "empty_column.account_suspended": "Konto restriktesis", "empty_column.account_timeline": "No toots here!", @@ -324,6 +405,14 @@ "explore.trending_links": "Novaji", "explore.trending_statuses": "Posti", "explore.trending_tags": "Hashtagi", + "featured_carousel.current": "Afisho {current, number} / {max, number}", + "featured_carousel.header": "{count, plural, one {Pinglizita Afisho} other {Pinglizita Afishi}}", + "featured_carousel.slide": "Afisho {current, number} ek {max, number}", + "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Recente vu afishigis pri {items}. Ka adjuntez ci kom estalita gretvorti?", + "featured_tags.suggestions.add": "Adjuntez", + "featured_tags.suggestions.added": "Aranjez vua estalita gretvorti irgatempe che Redaktez Profilo > Estalita gretvorti.", + "featured_tags.suggestions.dismiss": "Nedanki", "filter_modal.added.context_mismatch_explanation": "Ca filtrilgrupo ne uzesis ad informo di ca adirita afisho.", "filter_modal.added.context_mismatch_title": "Kontenajneparigeso!", "filter_modal.added.expired_explanation": "Ca filtrilgrupo expiris, vu bezonas chanjar expirtempo por apliko.", @@ -388,7 +477,9 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} partoprenanto} other {{counter} partoprenanti}}", "hashtag.counter_by_uses": "{count, plural, one {{counter} posto} other {{counter} posti}}", "hashtag.counter_by_uses_today": "{count, plural, one {{counter} posto} other {{counter} posti}} hodie", + "hashtag.feature": "Estalez che profilo", "hashtag.follow": "Sequar gretvorto", + "hashtag.unfeature": "Ne estalez che profilo", "hashtag.unfollow": "Dessequar gretvorto", "hashtags.and_other": "…e {count, plural, one {# plusa}other {# plusa}}", "hints.profiles.followers_may_be_missing": "Sequanti di ca profilo forsan ne esas hike.", @@ -511,8 +602,10 @@ "mute_modal.you_wont_see_mentions": "Vu ne vidos posti qua mencionas lu.", "mute_modal.you_wont_see_posts": "Lu ankore povas vidar vua posti, ma vu ne vidos lua.", "navigation_bar.about": "Pri co", + "navigation_bar.account_settings": "Pasvorto e sekureso", "navigation_bar.administration": "Administro", "navigation_bar.advanced_interface": "Apertez per retintervizajo", + "navigation_bar.automated_deletion": "Automata postoefaco", "navigation_bar.blocks": "Blokusita uzeri", "navigation_bar.bookmarks": "Lektosigni", "navigation_bar.direct": "Privata mencioni", @@ -522,12 +615,14 @@ "navigation_bar.follow_requests": "Demandi di sequado", "navigation_bar.followed_tags": "Hashtagi sequita", "navigation_bar.follows_and_followers": "Sequati e sequanti", + "navigation_bar.import_export": "Importaco e exportaco", "navigation_bar.lists": "Listi", "navigation_bar.logout": "Ekirar", "navigation_bar.moderation": "Jero", "navigation_bar.mutes": "Celita uzeri", "navigation_bar.opened_in_classic_interface": "Posti, konti e altra pagini specifika apertesas en la retovidilo klasika.", "navigation_bar.preferences": "Preferi", + "navigation_bar.privacy_and_reach": "Privateso e atingeso", "navigation_bar.search": "Serchez", "navigation_bar.search_trends": "Sercho / Tendenco", "not_signed_in_indicator.not_signed_in": "Vu mustas enirar por acesar ca moyeno.", @@ -806,7 +901,7 @@ "status.admin_account": "Apertez jerintervizajo por @{name}", "status.admin_domain": "Apertez jerintervizajo por {domain}", "status.admin_status": "Open this status in the moderation interface", - "status.all_disabled": "Dishavigi e citi esas desaktivigita", + "status.all_disabled": "Diskonocigi e citi esas desaktivigita", "status.block": "Restriktez @{name}", "status.bookmark": "Lektosigno", "status.cancel_reblog_private": "Desrepetez", @@ -861,10 +956,11 @@ "status.quotes_count": "{count, plural,one {{counter} cito} other {{counter} citi}}", "status.read_more": "Lektez plu", "status.reblog": "Repetez", - "status.reblog_or_quote": "Dishavigez o citez", + "status.reblog_or_quote": "Diskonocez o citez", "status.reblog_private": "Ankorfoye kunhavigez kun vua sequanti", "status.reblogged_by": "{name} repetis", "status.reblogs.empty": "Nulu ja repetis ca posto. Kande ulu facas lo, lu montresos hike.", + "status.reblogs_count": "{count, plural,one {{counter} diskonoco} other {{counter} diskonoci}}", "status.redraft": "Efacez e riskisigez", "status.remove_bookmark": "Forigar lektosigno", "status.remove_favourite": "Forigar de priziti", @@ -891,7 +987,10 @@ "subscribed_languages.save": "Sparez chanji", "subscribed_languages.target": "Chanjez abonita lingui por {target}", "tabs_bar.home": "Hemo", + "tabs_bar.menu": "Menuo", "tabs_bar.notifications": "Savigi", + "tabs_bar.publish": "Nova afisho", + "tabs_bar.search": "Serchez", "terms_of_service.title": "Servtermini", "time_remaining.days": "{number, plural, one {# dio} other {# dii}} restas", "time_remaining.hours": "{number, plural, one {# horo} other {# hori}} restas", @@ -929,9 +1028,12 @@ "visibility_modal.direct_quote_warning.text": "Se vu retenas la nuna preferaji, la enpozita cito esas chanjita ad ligilo.", "visibility_modal.direct_quote_warning.title": "Citi ne povas esar enpozita en privata mencioni", "visibility_modal.helper.direct_quoting": "Privata mencioni quan esas igita che Mastodon ne povas mencionita da altri.", + "visibility_modal.helper.privacy_editing": "Videbleso ne povas esar chanjita pos afisho esar publikigita.", "visibility_modal.helper.privacy_private_self_quote": "Suciti di privata afishi ne povas esar publikigita.", "visibility_modal.helper.private_quoting": "Nursequanta afishi quan igita che Mastodon ne povas esar citita da altri.", "visibility_modal.helper.unlisted_quoting": "Kande personi citas vu, anke lia afisho esar celitos de tendenca tempolinei.", + "visibility_modal.instructions": "Kontrolez qua povas interagar kun ca afisho. Vu povas irar ad Preferaji > Afishigpredeterminitaji.", + "visibility_modal.privacy_label": "Videbleso", "visibility_modal.quote_followers": "Nur sequanti", "visibility_modal.quote_label": "Qua povas citar", "visibility_modal.quote_nobody": "Nur me", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 4e225422c60533..9b2689f09d407f 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -125,6 +125,7 @@ "annual_report.summary.followers.new_followers": "{count, plural, other {新しいフォロワー}}", "annual_report.summary.highlighted_post.boost_count": "この投稿は {count, plural, other {# 回}}ブーストされました。", "annual_report.summary.highlighted_post.favourite_count": "この投稿は {count, plural, other {# 回}}お気に入りされました。", + "annual_report.summary.highlighted_post.reply_count": "この投稿には {count, plural, other {# 回}}返信がありました。", "annual_report.summary.highlighted_post.title": "最も人気のある投稿", "annual_report.summary.most_used_app.most_used_app": "最も使用されているアプリ", "annual_report.summary.most_used_hashtag.most_used_hashtag": "最も使用されたハッシュタグ", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 12c3363a984d79..1554f46cc708b1 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -1,6 +1,7 @@ { "about.blocks": "Модерациялана торган серверлар", "about.contact": "Бәйләнеш:", + "about.default_locale": "Килешү буенча", "about.disclaimer": "Mastodon-бушлай ачык чыганак программасы һәм Mastodon gmbh сәүдә маркасы.", "about.domain_blocks.no_reason_available": "Сәбәбе юк", "about.domain_blocks.preamble": "Mastodon гадәттә сезгә бүтән fediverse серверыннан эчтәлекне карарга һәм аның белән кулланучылар белән аралашырга мөмкинлек бирә. Бу конкрет серверда ясалган искәрмәләр.", @@ -12,17 +13,28 @@ "about.not_available": "Бу серверда бу мәгълүмат юк иде.", "about.powered_by": "{mastodon} нигезендә үзәкчелеге бетерелгән социаль челтәр нигезендә", "about.rules": "Сервер кагыйдәләре", + "account.account_note_header": "Шәхси искәрмәләр", "account.activity": "Активлык", + "account.add_note": "Шәхси искәрмә өстәү", "account.add_or_remove_from_list": "Исемлеккә кушу яки бетерү", + "account.badges.admin": "Админ", + "account.badges.blocked": "Блокланган", "account.badges.bot": "Бот", + "account.badges.domain_blocked": "Блокланган доменнар", "account.badges.group": "Төркем", + "account.badges.muted": "Тавышсыз", + "account.badges.muted_until": "{until}-га кадәр игнорлау", "account.block": "@{name} кулланучыны блоклау", "account.block_domain": "{domain} доменын блоклау", "account.block_short": "Блокла", "account.blocked": "Блокланган", + "account.blocking": "Блокланган", "account.cancel_follow_request": "Киләсе сорау", "account.copy": "Профиль сылтамасын күчереп ал", + "account.direct": "{name}-ны шәхсән икә алу", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", + "account.domain_blocking": "Блокланган домен", + "account.edit_note": "Шәхси искәрмәне төзәтү", "account.edit_profile": "Профильне үзгәртү", "account.edit_profile_short": "Үзгәрт", "account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 03ca0e77b06a45..b106d92362fedb 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1071,7 +1071,7 @@ "remove_quote_hint.button_label": "Đã hiểu", "remove_quote_hint.message": "Bạn cũng có thể làm trong menu tùy chọn {icon}", "remove_quote_hint.title": "Gỡ tút mà bạn đã trích dẫn?", - "reply_indicator.attachments": "{count, plural, other {# tập tin đính kèm}}", + "reply_indicator.attachments": "{count, plural, other {# đính kèm}}", "reply_indicator.cancel": "Hủy bỏ", "reply_indicator.poll": "Vốt", "report.block": "Chặn", @@ -1283,14 +1283,14 @@ "units.short.thousand": "{count}K", "upload_area.title": "Kéo và thả để tải lên", "upload_button.label": "Thêm media (JPEG, PNG, GIF, WebM, MP4, MOV)", - "upload_error.limit": "Tập tin tải lên vượt quá giới hạn cho phép.", - "upload_error.poll": "Không cho phép đính kèm tập tin.", - "upload_error.quote": "Không cho phép đính kèm tập tin với trích dẫn.", - "upload_form.drag_and_drop.instructions": "Để chọn tập tin đính kèm, hãy nhấn phím cách hoặc phím Enter. Trong khi kéo, sử dụng các phím mũi tên để di chuyển tập tin đính kèm theo bất kỳ hướng nào. Nhấn phím cách hoặc phím Enter một lần nữa để thả tập tin đính kèm vào vị trí mới hoặc nhấn phím thoát để hủy.", - "upload_form.drag_and_drop.on_drag_cancel": "Kéo thả đã bị hủy bỏ. Tập tin đính kèm {item} bị bỏ qua.", - "upload_form.drag_and_drop.on_drag_end": "Tập tin đính kèm {item} bị bỏ qua.", - "upload_form.drag_and_drop.on_drag_over": "Tập tin đính kèm {item} đã bị dời.", - "upload_form.drag_and_drop.on_drag_start": "Đã chọn tập tin đính kèm {item}.", + "upload_error.limit": "Tệp tải lên vượt quá giới hạn cho phép.", + "upload_error.poll": "Không cho phép đính kèm tệp.", + "upload_error.quote": "Không cho phép đính kèm tệp với trích dẫn.", + "upload_form.drag_and_drop.instructions": "Để chọn tệp đính kèm, hãy nhấn phím cách hoặc phím Enter. Trong khi kéo, sử dụng các phím mũi tên để di chuyển tệp đính kèm theo bất kỳ hướng nào. Nhấn phím cách hoặc phím Enter một lần nữa để thả tệp đính kèm vào vị trí mới hoặc nhấn phím thoát để hủy.", + "upload_form.drag_and_drop.on_drag_cancel": "Kéo thả đã bị hủy bỏ. Tệp đính kèm {item} bị bỏ qua.", + "upload_form.drag_and_drop.on_drag_end": "Tệp đính kèm {item} bị bỏ qua.", + "upload_form.drag_and_drop.on_drag_over": "Tệp đính kèm {item} bị di chuyển.", + "upload_form.drag_and_drop.on_drag_start": "Đã chọn tệp đính kèm {item}.", "upload_form.edit": "Biên tập", "upload_progress.label": "Đang tải lên...", "upload_progress.processing": "Đang tải lên…", diff --git a/config/locales/be.yml b/config/locales/be.yml index d7035d5c2669ed..9c3c944c34bae9 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -2242,7 +2242,7 @@ be: details: 'Вось падрабязнасці ўваходу:' explanation: Мы заўважылі ўваход у ваш уліковы запіс з новага IP-адрасу. further_actions_html: Калі гэта былі не вы, раім вам неадкладна %{action}, а таксама ўключыць двухфактарную аўтэнтыфікацыю, каб захаваць бяспеку вашага ўліковага запісу. - subject: У вас уліковы запіс зайшлі з новага IP-адрасу + subject: У Ваш уліковы запіс зайшлі з новага IP-адрасу title: Новы ўваход terms_of_service_changed: agreement: Працягваючы карыстацца %{domain}, Вы пагаджаецеся з гэтымі ўмовамі. Калі Вы не згодныя з абноўленымі ўмовамі, то можаце ў любы момант адмовіцца ад пагаднення з %{domain}, выдаліўшы свой профіль. diff --git a/config/locales/doorkeeper.gd.yml b/config/locales/doorkeeper.gd.yml index 6487669c283ded..2696672e65ad55 100644 --- a/config/locales/doorkeeper.gd.yml +++ b/config/locales/doorkeeper.gd.yml @@ -83,6 +83,10 @@ gd: access_denied: Dhiùlt sealbhadair a’ ghoireis no am frithealaiche ùghdarrachaidh an t-iarrtas. credential_flow_not_configured: Dh’fhàillig le sruth cruthachadh teisteas facail-fhaire do shealbhadair a’ ghoireis ri linn Doorkeeper.configure.resource_owner_from_credentials gun rèiteachadh. invalid_client: Dh’fhàillig le dearbhadh a’ chliant ri linn cliant nach aithne dhuinn, dearbhadh cliant nach deach gabhail a-staigh no dòigh dearbhaidh ris nach cuirear taic. + invalid_code_challenge_method: + one: Feumaidh an code_challenge_method a bhith ’na %{challenge_methods}. + other: Feumaidh an code_challenge_method a bhith aon de %{challenge_methods}. + zero: Cha chuir frithealaiche an ùghdarrachaidh taic ri PKCE air sgàth ’s nach eil luach code_challenge_method ann ris an gabhar. invalid_grant: Chan eil an t-ùghdarrachadh a chaidh a thoirt seachad dligheach, dh’fhalbh an ùine air, chaidh a chùl-ghairm no chan eil e a-rèir URI an ath-stiùiridh a chaidh a chleachdadh san iarrtas ùghdarrachaidh no chaidh fhoillseachadh le cliant eile. invalid_redirect_uri: Chan eil an URI ath-stiùiridh a chaidh a ghabhail a-staigh dligheach. invalid_request: diff --git a/config/locales/doorkeeper.vi.yml b/config/locales/doorkeeper.vi.yml index af609bfa71ae84..5f980c85911703 100644 --- a/config/locales/doorkeeper.vi.yml +++ b/config/locales/doorkeeper.vi.yml @@ -136,7 +136,7 @@ vi: follow: Theo dõi, Phớt lờ và Chặn follows: Đang theo dõi lists: Danh sách - media: Tập tin đính kèm + media: Tệp đính kèm mutes: Đã phớt lờ notifications: Thông báo profile: Hồ sơ Mastodon của bạn @@ -194,7 +194,7 @@ vi: write:filters: tạo bộ lọc write:follows: theo dõi ai đó write:lists: tạo danh sách - write:media: tải lên tập tin + write:media: tải lên tệp write:mutes: phớt lờ tài khoản và thảo luận write:notifications: xóa thông báo write:reports: báo cáo diff --git a/config/locales/el.yml b/config/locales/el.yml index df67698672c41e..41fa094dfafee4 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1218,7 +1218,7 @@ el: created_msg: Δημιουργήθηκε νέο ψευδώνυμο. Τώρα μπορείς να ξεκινήσεις τη μεταφορά από τον παλιό λογαριασμό. deleted_msg: Αφαιρέθηκε το ψευδώνυμο. Η μεταφορά από εκείνον τον λογαριασμό σε αυτόν εδώ δε θα είναι πλέον δυνατή. empty: Δεν έχεις ψευδώνυμα. - hint_html: Αν θέλεις να μετακινηθείς από έναν άλλο λογαριασμό σε αυτόν εδώ, εδώ μπορείς να δημιουργήσεις ένα ψευδώνυμο, πράγμα που απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη.Η μετακόμιση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό. + hint_html: Αν θέλεις να μετακινηθείς από έναν άλλο λογαριασμό σε αυτόν εδώ, εδώ μπορείς να δημιουργήσεις ένα ψευδώνυμο, το οποίο απαιτείται πριν προχωρήσεις για να μεταφέρεις τους ακολούθους σου από τον παλιό λογαριασμό σε αυτόν εδώ. Η ενέργεια αυτή είναι ακίνδυνη και αναστρέψιμη. Η μετακίνηση του λογαριασμού ξεκινάει από τον παλιό λογαριασμό. remove: Αποσύνδεση ψευδώνυμου appearance: advanced_settings: Προχωρημένες ρυθμίσεις @@ -1263,7 +1263,7 @@ el: welcome_title: Καλώς ήρθες, %{name}! wrong_email_hint: Εάν αυτή η διεύθυνση email δεν είναι σωστή, μπορείς να την αλλάξεις στις ρυθμίσεις λογαριασμού. delete_account: Διαγραφή λογαριασμού - delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. + delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να προχωρήσεις εδώ. Θα σου ζητηθεί επιβεβαίωση. description: prefix_invited_by_user: Ο/Η @%{name} σε προσκαλεί να γίνεις μέλος αυτού του διακομιστή του Mastodon! prefix_sign_up: Κάνε εγγραφή στο Mastodon σήμερα! @@ -1278,7 +1278,7 @@ el: login: Σύνδεση logout: Αποσύνδεση migrate_account: Μεταφορά σε διαφορετικό λογαριασμό - migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτό τον λογαριασμό σε έναν διαφορετικό, μπορείς να το διαμορφώσεις εδώ. + migrate_account_html: Αν θέλεις να ανακατευθύνεις αυτόν το λογαριασμό σε έναν διαφορετικό, μπορείς να το διαμορφώσεις εδώ. or_log_in_with: Ή συνδέσου με progress: confirm: Επιβεβαίωση email @@ -1372,18 +1372,18 @@ el: x_seconds: "%{count}δ" deletes: challenge_not_passed: Οι πληροφορίες που εισήγαγες δεν ήταν σωστές - confirm_password: Γράψε το τρέχον συνθηματικό σου για να πιστοποιήσεις την ταυτότητά σου + confirm_password: Γράψε το τρέχον συνθηματικό σου για να επαληθεύσεις την ταυτότητά σου confirm_username: Γράψε το όνομα χρήστη σου για επιβεβαίωση proceed: Διαγραφή λογαριασμού success_msg: Ο λογαριασμός σου διαγράφηκε με επιτυχία warning: - before: 'Πριν συνεχίσεις, παρακαλούμε να διαβάσεις τις παρακάτω σημειώσεις προσεκτικά:' + before: 'Πριν συνεχίσεις, παρακαλούμε διάβασε αυτές τις σημειώσεις προσεκτικά:' caches: Περιεχόμενο που έχει αποθηκευτεί προσωρινά σε άλλους διακομιστές ίσως παραμείνει data_removal: Οι αναρτήσεις σου και άλλα δεδομένα θα διαγραφούν οριστικά email_change_html: Μπορείς να αλλάξεις τη διεύθυνση email σου χωρίς να διαγράψεις το λογαριασμό σου - email_contact_html: Αν και πάλι δεν εμφανιστεί, μπορείς να στείλεις email στο %{email} για βοήθεια - email_reconfirmation_html: Αν δεν έχεις λάβει το email επιβεβαίωσης, μπορείς να το ζητήσεις ξανά - irreversible: Δεν θα μπορείς να ανακτήσεις ή ενεργοποιήσεις ξανά το λογαριασμό σου + email_contact_html: Αν και πάλι δεν φτάσει, μπορείς να στείλεις email στο %{email} για βοήθεια + email_reconfirmation_html: Αν δεν λαμβάνεις το email επιβεβαίωσης, μπορείς να το ζητήσεις ξανά + irreversible: Δεν θα μπορείς να επαναφέρεις ή ενεργοποιήσεις ξανά το λογαριασμό σου more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου. username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο username_unavailable: Το όνομα χρήστη σου θα παραμείνει μη διαθέσιμο @@ -1482,7 +1482,7 @@ el: archive_takeout: date: Ημερομηνία download: Κατέβασε το αρχείο σου - hint_html: Μπορείς να αιτηθείς ένα αρχείο των αναρτήσεων και των ανεβασμένων πολυμέσων σου. Τα δεδομένα θα είναι σε μορφή ActivityPub, προσπελάσιμα από οποιοδήποτε συμβατό πρόγραμμα. Μπορείς να αιτηθείς ένα αρχείο κάθε 7 μέρες. + hint_html: Μπορείς να αιτηθείς ένα αρχείο των αναρτήσεων και ανεβασμένων πολυμέσων σου. Τα δεδομένα θα είναι σε μορφή ActivityPub, προσπελάσιμα από οποιοδήποτε συμβατό πρόγραμμα. Μπορείς να αιτηθείς ένα αρχείο κάθε 7 μέρες. in_progress: Συγκεντρώνουμε το αρχείο σου... request: Αιτήσου το αρχείο σου size: Μέγεθος @@ -1668,7 +1668,7 @@ el: table: expires_at: Λήγει uses: Χρήσεις - title: Προσκάλεσε κόσμο + title: Προσκάλεσε άτομα link_preview: author_html: Από %{name} potentially_sensitive_content: @@ -1706,26 +1706,26 @@ el: missing_also_known_as: δεν είναι ψευδώνυμο αυτού του λογαριασμού move_to_self: δεν μπορεί να είναι ο τρέχων λογαριασμός not_found: δεν βρέθηκε - on_cooldown: Είσαι σε περίοδο ηρεμίας + on_cooldown: Είσαι σε περίοδο αναμονής followers_count: Ακόλουθοι τη στιγμή της μεταφοράς incoming_migrations: Μεταφορά από διαφορετικό λογαριασμό - incoming_migrations_html: Για να μετακομίσεις από έναν άλλο λογαριασμό σε αυτόν εδώ, πρώτα πρέπει να δημιουργήσεις ένα ψευδώνυμο λογαριασμού. - moved_msg: Ο λογαριασμός σου πλέον ανακατευθύνεται στον %{acct} και οι ακόλουθοί σου μεταφέρονται εκεί. + incoming_migrations_html: Για να μεταφερθείς από έναν άλλο λογαριασμό σε αυτόν εδώ, πρώτα πρέπει να δημιουργήσεις ένα ψευδώνυμο λογαριασμού. + moved_msg: Ο λογαριασμός σου τώρα ανακατευθύνεται στο %{acct} και οι ακόλουθοί σου μεταφέρονται εκεί. not_redirecting: Ο λογαριασμός σου δεν ανακατευθύνεται σε κανέναν άλλο προς το παρόν. - on_cooldown: Έχεις μετακομίσει το λογαριασμό σου πρόσφατα. Η δυνατότητα αυτή θα γίνει πάλι διαθέσιμη σε %{count} μέρες. + on_cooldown: Έχεις μετακινήσει τον λογαριασμό σου πρόσφατα. Η δυνατότητα αυτή θα γίνει πάλι διαθέσιμη σε %{count} μέρες. past_migrations: Προηγούμενες μετακινήσεις - proceed_with_move: Μετακίνηση ακολούθων - redirected_msg: Ο λογαριασμός σου ανακατευθύνεται στον %{acct}. - redirecting_to: Ο λογαριασμός σου ανακατευθύνεται στον %{acct}. + proceed_with_move: Μεταφορά ακολούθων + redirected_msg: Ο λογαριασμός σου τώρα ανακατευθύνεται στο %{acct}. + redirecting_to: Ο λογαριασμός σου ανακατευθύνεται στο %{acct}. set_redirect: Όρισε ανακατεύθυνση warning: backreference_required: Θα πρέπει πρώτα να ρυθμιστεί μια παραπομπή από τον νέο λογαριασμό προς αυτόν before: 'Πριν συνεχίσεις, παρακαλούμε διάβασε αυτές τις σημειώσεις προσεκτικά:' cooldown: Μετά τη μετακίνηση υπάρχει μια περίοδος αναμονής κατά τη διάρκεια της οποίας δεν θα είσαι σε θέση να μετακινηθείς ξανά - disabled_account: Ο τρέχων λογαριασμός σου δε θα είναι πλήρως ενεργός μετά. Πάντως θα έχεις πρόσβαση στην εξαγωγή δεδομένων καθώς και στην επανενεργοποίηση. + disabled_account: Ο τρέχων λογαριασμός σου δε θα είναι πλήρως χρησιμοποιήσιμος μετά. Πάντως, θα έχεις πρόσβαση στην εξαγωγή δεδομένων καθώς και στην επανενεργοποίηση. followers: Αυτή η ενέργεια θα μεταφέρει όλους τους ακόλουθούς σου από τον τρέχοντα λογαριασμό στον νέο λογαριασμό only_redirect_html: Εναλλακτικά, μπορείς απλά να προσθέσεις μια ανακατατεύθυνση στο προφίλ σου. - other_data: Δεν θα μετακινηθούν αυτόματα άλλα δεδομένα (συμπεριλαμβανομένου των αναρτήσεων σας και της λίστας των λογαριασμών που ακολουθείτε) + other_data: Δεν θα μετακινηθούν αυτόματα άλλα δεδομένα (συμπεριλαμβανομένου των αναρτήσεων σου και της λίστας των λογαριασμών που ακολουθείς) redirect: Το προφίλ του τρέχοντος λογαριασμού σου θα ενημερωθεί με μια σημείωση ανακατεύθυνσης και θα εξαιρεθεί από τα αποτελέσματα αναζητήσεων moderation: title: Συντονισμός @@ -1944,7 +1944,7 @@ el: featured_tags: Αναδεδειγμένες ετικέτες import: Εισαγωγή import_and_export: Εισαγωγή και εξαγωγή - migrate: Μετακόμιση λογαριασμού + migrate: Μετακίνηση λογαριασμού notifications: Ειδοποιήσεις μέσω email preferences: Προτιμήσεις profile: Προφίλ @@ -2238,7 +2238,7 @@ el: signed_in_as: 'Έχεις συνδεθεί ως:' verification: extra_instructions_html: Συμβουλή: Ο σύνδεσμος στην ιστοσελίδα σου μπορεί να είναι αόρατος. Το σημαντικό μέρος είναι το rel="me" που αποτρέπει την μίμηση σε ιστοσελίδες με περιεχόμενο παραγόμενο από χρήστες. Μπορείς ακόμα να χρησιμοποιήσεις μια ετικέτα link στην κεφαλίδα της σελίδας αντί για a, αλλά η HTML πρέπει να είναι προσβάσιμη χωρίς την εκτέλεση JavaScript. - here_is_how: Δείτε πώς + here_is_how: Ορίστε πώς hint_html: Η επαλήθευση της ταυτότητας στο Mastodon είναι για όλους. Βασισμένο σε ανοιχτά πρότυπα ιστού, τώρα και για πάντα δωρεάν. Το μόνο που χρειάζεσαι είναι μια προσωπική ιστοσελίδα που ο κόσμος να σε αναγνωρίζει από αυτή. Όταν βάζεις σύνδεσμο προς αυτήν την ιστοσελίδα από το προφίλ σου, θα ελέγξουμε ότι η ιστοσελίδα συνδέει πίσω στο προφίλ σου και θα δείξουμε μια οπτική ένδειξη σε αυτό. instructions_html: Αντέγραψε και επικόλλησε τον παρακάτω κώδικα στην HTML της ιστοσελίδας σου. Στη συνέχεια, πρόσθεσε τη διεύθυνση της ιστοσελίδας σου σε ένα από τα επιπλέον πεδία στο προφίλ σου από την καρτέλα "Επεξεργασία προφίλ" και αποθήκευσε τις αλλαγές. verification: Επαλήθευση diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 7eaf6a9852399c..9c363fb18564c5 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -14,6 +14,11 @@ gd: one: Neach-leantainn other: Luchd-leantainn two: Luchd-leantainn + following: + few: "’Gan leantainn" + one: "’Ga leantainn" + other: "’Gan leantainn" + two: "’Gan leantainn" instance_actor_flash: "’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a chur à rèim." last_active: an gnìomh mu dheireadh link_verified_on: Chaidh dearbhadh cò leis a tha an ceangal seo %{date} @@ -57,6 +62,7 @@ gd: label: Atharraich an dreuchd no_role: Gun dreuchd title: Atharraich an dreuchd aig %{username} + collections: Cruinneachaidhean confirm: Dearbh confirmed: Chaidh a dhearbhachadh confirming: "’Ga dhearbhadh" @@ -269,6 +275,7 @@ gd: demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target} destroy_announcement_html: Sguab %{name} às am brath-fios %{target} destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target} + destroy_collection_html: Thug %{name} cruinneachadh aig %{target} air falbh destroy_custom_emoji_html: Sguab %{name} às an Emoji %{target} destroy_domain_allow_html: Dì-cheadaich %{name} co-nasgadh leis an àrainn %{target} destroy_domain_block_html: Dì-bhac %{name} an àrainn %{target} @@ -308,6 +315,7 @@ gd: unsilence_account_html: Dì-chuingich %{name} an cunntas aig %{target} unsuspend_account_html: Chuir %{name} an cunntas aig %{target} ann an rèim a-rithist update_announcement_html: Dh’ùraich %{name} am brath-fios %{target} + update_collection_html: Dh’ùraich %{name} cruinneachadh le %{target} update_custom_emoji_html: Dh’ùraich %{name} an Emoji %{target} update_domain_block_html: Dh’ùraich %{name} bacadh na h-àrainne %{target} update_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target} @@ -343,6 +351,17 @@ gd: unpublish: Neo-fhoillsich unpublished_msg: Chaidh am brath-fios a dhì-fhoillseachadh! updated_msg: Chaidh am brath-fios ùrachadh! + collections: + accounts: Cunntasan + collection_title: Cruinneachadh le %{name} + contents: Susbaint + number_of_accounts: + few: "%{count} cunntasan" + one: "%{count} chunntas" + other: "%{count} cunntas" + two: "%{count} chunntas" + open: Fosgail + view_publicly: Seall gu poblach critical_update_pending: Ùrachadh èiginneach ri dhèiligeadh custom_emojis: assign_category: Iomruin roinn-seòrsa dha @@ -700,6 +719,7 @@ gd: cancel: Sguir dheth category: Roinn-seòrsa category_description_html: Thèid iomradh a thoirt air adhbhar a’ ghearain mun chunntas/susbaint seo sa chonaltradh leis a’ chunntas mun a chaidh an gearan a thogail + collections: Cruinneachaidhean (%{count}) comment: none: Chan eil gin comment_description_html: 'Airson barrachd fiosrachaidh a sholar, sgrìobh %{name}:' @@ -729,11 +749,13 @@ gd: report: 'Gearan air #%{id}' reported_account: Cunntas mun a chaidh a ghearan reported_by: Chaidh gearan a dhèanamh le + reported_content: Susbaint a’ ghearain reported_with_application: Chaidh an gearan a dhèanamh le aplacaid resolved: Air fhuasgladh resolved_msg: Chaidh an gearan fhuasgladh! skip_to_actions: Geàrr leum dha na gnìomhan status: Staid + statuses: Postaichean (%{count}) statuses_description_html: Thèid iomradh a thoirt air an t-susbaint oilbheumach sa chonaltradh leis a’ chunntas mun a chaidh an gearan a thogail summary: action_preambles: @@ -770,6 +792,7 @@ gd: categories: administration: Rianachd devops: DevOps + email: Post-d invites: Cuiridhean moderation: Maorsainneachd special: Sònraichte @@ -788,6 +811,7 @@ gd: administrator_description: Chan eil cuingeachadh sam bith air na cleachdaichean aig bheil an cead seo delete_user_data: Sguabadh às dàta cleachdaiche delete_user_data_description: Leigidh seo le cleachdaichean dàta chleachdaichean eile a sguabadh às gun dàil + invite_bypass_approval: Thoir cuireadh do chleachdaichean gun lèirmheas invite_users: Thoir cuireadh do chleachdaichean invite_users_description: Leigidh seo le cleachdaichean cuireadh dhan fhrithealaiche a chur gu daoine eile manage_announcements: Stiùireadh nam brathan-fios @@ -798,6 +822,8 @@ gd: manage_blocks_description: Leigidh seo le cleachdaichean solaraichean puist-d is seòlaidhean IP a bhacadh manage_custom_emojis: Stiùireadh nan Emojis gnàthaichte manage_custom_emojis_description: Leigidh seo le cleachdaichean Emojis gnàthaichte a stiùireadh air an fhrithealaiche + manage_email_subscriptions: Stiùireadh fo-sgrìobhaidhean puist-d + manage_email_subscriptions_description: Leigidh seo le cleachdaichean fo-sgrìobhadh air a’ phost-d a dhèanamh air na cleachdaichean aig a bheil an cead seo manage_federation: Stiùireadh a’ cho-nasgaidh manage_federation_description: Leigidh seo le cleachdaichean an co-nasgadh le àrainnean eile a bhacadh no a cheadachadh agus stiùireadh dè ghabhas lìbhrigeadh manage_invites: Stiùireadh nan cuiridhean @@ -826,6 +852,7 @@ gd: view_devops_description: Leigidh seo le cleachdaichean na deas-bhùird aig Sidekiq is pgHero inntrigeadh view_feeds: Seall loidhnichean-ama beòtha ’s nan cuspairean view_feeds_description: Leigidh seo le cleachdaichean loidhnichean-ama beòtha ’s nan cuspairean inntrigeadh ge b’ e dè roghainnean an fhrithealaiche + requires_2fa: Feumaidh seo dearbhadh dà-cheumnach title: Dreuchdan rules: add_new: Cuir riaghailt ris @@ -1297,6 +1324,7 @@ gd: progress: confirm: Dearbh am post-d details: Am fiosrachadh agad + list: Adhartas a’ chlàraidh review: An lèirmheas againn rules: Gabh ris na riaghailtean providers: @@ -1312,6 +1340,7 @@ gd: invited_by: "’S urrainn dhut ballrachd fhaighinn air %{domain} leis a’ chuireadh a fhuair thu o:" preamble: Tha iad ’gan stèidheachadh is a chur an gnìomh leis na maoir aig %{domain}. preamble_invited: Mus lean thu air adhart, thoir an aire air na riaghailtean a shuidhich na maoir aig %{domain}. + read_more: Leugh an còrr title: Riaghailtean bunasach. title_invited: Fhuair thu cuireadh. security: Tèarainteachd @@ -1433,6 +1462,27 @@ gd: basic_information: Fiosrachadh bunasach hint_html: "Gnàthaich na chithear air a’ phròifil phoblach agad is ri taobh nam postaichean agad. Bidh càch nas buailtiche do leantainn agus conaltradh leat nuair a bhios tu air a’ phròifil agad a lìonadh agus dealbh rithe." other: Eile + redesign_body: "’S urrainn dhut a’ phròifil agad a dheasachadh air duilleag na pròifile fhèin." + redesign_button: Tadhail air + email_subscription_mailer: + confirmation: + action: Dearbh an seòladh puist-d + instructions_to_confirm: Dearbh gum bu mhiann leat puist-d fhaighinn o %{name} (@%{acct}) nuair a dh’fhoillsicheas iad postaichean ùra. + instructions_to_ignore: Mur eil thu cinnteach carson a fhuair thu am post-d seo, ’s urrainn dhut a sguabadh às. Cha dèid d’ fho-sgrìobhadh mura bhriog thu air a’ cheangal gu h-àrd. + subject: Dearbh an seòladh puist-d agad + title: A bheil thu airson naidheachdan %{name} fhaighinn air a’ phost-d? + notification: + create_account: Cruthaich cunntas Mastodon + email_subscriptions: + active: Gnìomhach + confirmations: + show: + changed_your_mind: Na chuir thu romhad a chaochladh? + title: Tha thu air clàradh + unsubscribe: Cuir crìoch air an fho-sgrìobhadh + inactive: Neo-ghnìomhach + status: Staid + subscribers: Fo-sgrìobhaichean emoji_styles: auto: Fèin-obrachail native: Tùsail @@ -1844,6 +1894,7 @@ gd: posting_defaults: Bun-roghainnean a’ phostaidh public_timelines: Loidhnichean-ama poblach privacy: + email_subscriptions: Cuir postaichean air a’ phost-d hint_html: "Gnàthaich an dòigh air an dèid a’ phròifil ’s na postaichean agad a lorg. Tha grunn ghleusan aig Mastodon a chuidicheas ach an ruig thu èisteachd nas fharsainge nuair a bhios iad an comas. Thoir sùil air na roghainnean seo a dhèanamh cinnteach gum freagair iad ri d’ fheumalachdan." privacy: Prìobhaideachd privacy_hint_html: Stiùirich na tha thu airson foillseachadh do chàch. Gheibh daoine lorg air pròifilean inntinneach is deagh aplacaidean a’ brabhsadh cò tha daoine eile a’ leantainn ’s a’ faicinn nan aplacaidean a chleachdas iad airson postadh ach dh’fhaoidte gum b’ fheàrr leat seo a chumail falaichte. @@ -2110,7 +2161,30 @@ gd: recovery_codes: Còdan aiseig ’nan lethbhreac-glèidhidh recovery_codes_regenerated: Chaidh na còdan aiseig ath-ghintinn recovery_instructions_html: Ma chailleas tu an t-inntrigeadh dhan fhòn agad, ’s urrainn dhut fear dhe na còdan aisig gu h-ìosal a chleachdadh airson faighinn a-steach dhan chunntas agad a-rithist. Cùm na còdan aisig sàbhailte. Mar eisimpleir, ’s urrainn dhut an clò-bhualadh ’s a chumail far a bheil thu a’ cumail na sgrìobhainnean cudromach eile agad. + resume_app_authorization: Lean air ùghdarrachadh na h-aplacaid webauthn: Iuchraichean tèarainteachd + unsubscriptions: + create: + action: Tadhail air duilleag-dhachaigh an fhrithealaiche + email_subscription: + confirmation_html: Chan fhaigh thu post-d o %{name} tuilleadh. + title: Chaidh crìoch a chur air an fho-sgrìobhadh agad + user: + confirmation_html: Chan fhaigh thu %{type} o Mhastodon air %{domain} tuilleadh. + notification_emails: + favourite: puist-d le brathan mu annsachdan + follow: puist-d le brathan mu leantainn + follow_request: puist-d le brathan mu iarrtasan leantainn + mention: puist-d le brathan mu iomraidhean + reblog: puist-d le brathan mu bhrosnachaidhean + show: + action: Cuir crìoch air an fho-sgrìobhadh + email_subscription: + confirmation_html: Chan fhaigh thu post-d tuilleadh nuair a dh’fhoillsicheas an cunntas seo postaichean ùra. + title: A bheil thu airson crìoch a chur air an fho-sgrìobhadh agad air %{name}? + user: + confirmation_html: Chan fhaigh thu %{type} o Mhastodon air %{domain} tuilleadh. + title: A bheil thu airson crìoch a chur air an fho-sgrìobhadh agad air %{type}? user_mailer: announcement_published: description: 'Tha na rianairean aig %{domain} a’ dèanamh brath-fios:' diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index 7a7e929ae1196f..9f369ab86dc3e4 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -39,7 +39,7 @@ el: appeal: text: Μπορείς να κάνετε έφεση σε ένα παράπτωμα μόνο μία φορά defaults: - autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα + autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθήσουν αυτόματα avatar: WEBP, PNG, GIF ή JPG. Το πολύ %{size}. Θα υποβαθμιστεί σε %{dimensions}px bot: Υποδεικνύει σε άλλους χρήστες ότι ο λογαριασμός αυτός εκτελεί κυρίως αυτοματοποιημένες ενέργειες και ίσως να μην παρακολουθείται context: Ένα ή περισσότερα πλαίσια στα οποία μπορεί να εφαρμόζεται αυτό το φίλτρο @@ -212,7 +212,7 @@ el: appeal: text: Εξηγήστε γιατί αυτή η απόφαση πρέπει να αντιστραφεί defaults: - autofollow: Προσκάλεσε για να ακολουθήσουν το λογαριασμό σου + autofollow: Προσκάλεσε να ακολουθήσουν τον λογαριασμό σου avatar: Εικόνα προφίλ bot: Αυτός είναι ένας αυτοματοποιημένος λογαριασμός (bot) chosen_languages: Φιλτράρισμα γλωσσών diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index edbd86c9d79a3c..85cca6346e22ea 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -225,6 +225,7 @@ gd: email: Seòladh puist-d expires_in: Falbhaidh an ùine air às dèidh fields: Raointean a bharrachd + filter_action: Gnìomh na criathraige header: Dealbh a’ bhanna-chinn honeypot: "%{label} (na lìon seo)" inbox_url: URL bogsa a-steach an ath-sheachadain @@ -241,6 +242,7 @@ gd: setting_always_send_emails: Cuir brathan puist-d an-còmhnaidh setting_auto_play_gif: Cluich GIFs beòthaichte gu fèin-obrachail setting_boost_modal: Smachd air faicsinneachd nam brosnachaidhean + setting_color_scheme: Sgeama dhathan setting_contrast: Iomsgaradh setting_default_language: Cànan postaidh setting_default_privacy: Faicsinneachd nam post @@ -355,6 +357,7 @@ gd: hint: Barrachd fiosrachaidh text: Riaghailt settings: + email_subscriptions: Cuir clàraidhean puist-d an comas indexable: Gabh a-staigh duilleag na pròifil sna h-einnseanan-luirg show_application: Seall dè an aplacaid a chuir thu post leatha tag: @@ -388,6 +391,7 @@ gd: name: Ainm permissions_as_keys: Ceadan position: Prìomhachas + require_2fa: Iarr dearbhadh dà-cheumnach username_block: allow_with_approval: Ceadaich clàradh le aontachadh comparison: Dòigh a’ choimheis diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 1c83415babb1cd..db912b94c78a5e 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -480,7 +480,7 @@ vi: export_domain_allows: new: title: Nhập tên miền cho phép - no_file: Không có tập tin nào được chọn + no_file: Không có tệp nào được chọn export_domain_blocks: import: description_html: Bạn sắp nhập danh sách các tên miền chặn. Vui lòng xem lại danh sách này thật cẩn thận, đặc biệt nếu bạn không phải là tác giả của danh sách này. @@ -491,7 +491,7 @@ vi: invalid_domain_block: 'Một hoặc nhiều tên miền đã bị bỏ qua do (các) lỗi sau: %{error}' new: title: Nhập máy chủ chặn - no_file: Không có tập tin nào được chọn + no_file: Không có tệp nào được chọn fasp: debug: callbacks: @@ -886,8 +886,8 @@ vi: federation_authentication: Thực thi xác thực liên hợp title: Cài đặt máy chủ site_uploads: - delete: Xóa tập tin đã tải lên - destroyed_msg: Đã xóa tập tin tải lên thành công! + delete: Xóa tệp đã tải lên + destroyed_msg: Đã xóa tệp tải lên thành công! software_updates: critical_update: Quan trọng — vui lòng cập nhật sớm description: Bạn nên cập nhật Mastodon phiên bản mới nhất để được hưởng lợi từ các bản sửa lỗi và thêm tính năng mới. Nhất là để tránh các vấn đề bảo mật. Vì những lý do này, Mastodon sẽ kiểm tra các bản cập nhật 30 phút một lần và sẽ thông báo cho bạn theo tùy chọn thông báo qua email của bạn. @@ -1468,7 +1468,7 @@ vi: domain_blocks: Máy chủ đã chặn lists: Danh sách mutes: Tài khoản đã phớt lờ - storage: Tập tin + storage: Tệp featured_tags: add_new: Thêm mới errors: @@ -1537,9 +1537,9 @@ vi: errors: empty: File CSV trống incompatible_type: Không tương thích với loại nhập đã chọn - invalid_csv_file: 'Tập tin CSV không hợp lệ. Lỗi: %{error}' + invalid_csv_file: 'Tệp CSV không hợp lệ. Lỗi: %{error}' over_rows_processing_limit: chứa nhiều hơn %{count} hàng - too_large: Tập tin quá lớn + too_large: Tệp quá lớn failures: Thất bại imported: Đã nhập mismatched_types_warning: Có vẻ như bạn đã chọn sai loại cho lần nhập này, vui lòng kiểm tra lại. @@ -1650,7 +1650,7 @@ vi: validations: images_and_video: Không thể đính kèm video vào tút đã chứa hình ảnh not_found: Không tìm thấy %{ids} hoặc nó đã bị đính kèm với tút khác - not_ready: Tập tin này vẫn chưa xử lý xong. Hãy thử lại sau! + not_ready: Tệp này vẫn chưa xử lý xong. Hãy thử lại sau! too_many: Không thể đính kèm hơn 4 tệp migrations: acct: Chuyển sang From 14544dc4dd054f807be5dd1b797d04e09f866e56 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Apr 2026 10:32:47 +0200 Subject: [PATCH 077/335] Fix subject of email subscription notification e-mail being difficult to localize (#38507) --- app/mailers/email_subscription_mailer.rb | 2 +- app/views/email_subscription_mailer/notification.text.erb | 2 +- config/locales/en.yml | 8 ++++---- spec/mailers/email_subscription_mailer_spec.rb | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/mailers/email_subscription_mailer.rb b/app/mailers/email_subscription_mailer.rb index 35bd6da2f99834..318aec10d89716 100644 --- a/app/mailers/email_subscription_mailer.rb +++ b/app/mailers/email_subscription_mailer.rb @@ -30,7 +30,7 @@ def notification(statuses) @statuses = statuses I18n.with_locale(locale) do - mail subject: default_i18n_subject(count: @statuses.size, name: @subscription.account.display_name, excerpt: @statuses.first.text.truncate(17)) + mail subject: I18n.t(@statuses.size == 1 ? 'singular' : 'plural', scope: 'email_subscription_mailer.notification.subject', name: @subscription.account.display_name, excerpt: @statuses.first.text.truncate(17)) end end diff --git a/app/views/email_subscription_mailer/notification.text.erb b/app/views/email_subscription_mailer/notification.text.erb index 7da5261b6446bc..9e657b93f92066 100644 --- a/app/views/email_subscription_mailer/notification.text.erb +++ b/app/views/email_subscription_mailer/notification.text.erb @@ -1,4 +1,4 @@ -<%= t '.title', count: @statuses.size, name: display_name(@subscription.account), excerpt: truncate(@statuses.first.text, length: 17) %> +<%= t @statuses.size == 1 ? 'singular' : 'plural', scope: 'email_subscription_mailer.notification.title', name: display_name(@subscription.account), excerpt: truncate(@statuses.first.text, length: 17) %> === diff --git a/config/locales/en.yml b/config/locales/en.yml index 76b25667dfb85b..883bf18e7a4967 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1440,11 +1440,11 @@ en: one: Interact with this post and discover more like it. other: Interact with these posts and discover more. subject: - one: 'New post: "%{excerpt}"' - other: New posts from %{name} + plural: New posts from %{name} + singular: 'New post: "%{excerpt}"' title: - one: 'New post: "%{excerpt}"' - other: New posts from %{name} + plural: New posts from %{name} + singular: 'New post: "%{excerpt}"' email_subscriptions: active: Active confirmations: diff --git a/spec/mailers/email_subscription_mailer_spec.rb b/spec/mailers/email_subscription_mailer_spec.rb index 0d8ec6e66b3fd1..4782291145baea 100644 --- a/spec/mailers/email_subscription_mailer_spec.rb +++ b/spec/mailers/email_subscription_mailer_spec.rb @@ -30,7 +30,7 @@ .to send_email( to: email_subscription.email, from: 'notifications@localhost', - subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: statuses.first.text.truncate(17)) + subject: I18n.t('email_subscription_mailer.notification.subject.singular', name: email_subscription.account.display_name, excerpt: statuses.first.text.truncate(17)) ) end end @@ -43,7 +43,7 @@ .to send_email( to: email_subscription.email, from: 'notifications@localhost', - subject: I18n.t('email_subscription_mailer.notification.subject', count: statuses.size, name: email_subscription.account.display_name, excerpt: ActionController::Base.helpers.truncate(statuses.first.text, length: 17)) + subject: I18n.t('email_subscription_mailer.notification.subject.plural', name: email_subscription.account.display_name, excerpt: ActionController::Base.helpers.truncate(statuses.first.text, length: 17)) ) end end From 62479b7b0af6d56ca58a241e26614ab0c7436891 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 1 Apr 2026 10:55:41 +0200 Subject: [PATCH 078/335] Remove `collections_federation` feature flag (#38508) --- app/lib/activitypub/activity/accept.rb | 2 +- app/lib/activitypub/activity/add.rb | 4 ++-- app/lib/activitypub/activity/delete.rb | 2 +- .../activitypub/activity/feature_request.rb | 2 +- app/lib/activitypub/activity/update.rb | 2 +- app/models/account.rb | 1 - .../activitypub/process_account_service.rb | 2 +- .../add_account_to_collection_service.rb | 6 ++--- app/services/create_collection_service.rb | 6 ++--- .../delete_collection_item_service.rb | 2 +- app/services/delete_collection_service.rb | 2 +- .../revoke_collection_item_service.rb | 2 +- app/services/update_collection_service.rb | 2 +- spec/lib/activitypub/activity/accept_spec.rb | 2 +- spec/lib/activitypub/activity/add_spec.rb | 4 ++-- spec/lib/activitypub/activity/delete_spec.rb | 2 +- .../activity/feature_request_spec.rb | 2 +- spec/lib/activitypub/activity/update_spec.rb | 2 +- spec/models/account_spec.rb | 22 +++++++------------ .../process_account_service_spec.rb | 2 +- .../add_account_to_collection_service_spec.rb | 4 ++-- .../create_collection_service_spec.rb | 4 ++-- .../delete_collection_item_service_spec.rb | 4 ++-- .../delete_collection_service_spec.rb | 2 +- .../revoke_collection_item_service_spec.rb | 2 +- .../update_collection_service_spec.rb | 4 ++-- 26 files changed, 40 insertions(+), 51 deletions(-) diff --git a/app/lib/activitypub/activity/accept.rb b/app/lib/activitypub/activity/accept.rb index 91610d68cfe1d9..4dc6977b8ef9f5 100644 --- a/app/lib/activitypub/activity/accept.rb +++ b/app/lib/activitypub/activity/accept.rb @@ -5,7 +5,7 @@ def perform return accept_follow_for_relay if relay_follow? return accept_follow!(follow_request_from_object) unless follow_request_from_object.nil? return accept_quote!(quote_request_from_object) unless quote_request_from_object.nil? - return accept_feature_request! if Mastodon::Feature.collections_federation_enabled? && feature_request_from_object.present? + return accept_feature_request! if Mastodon::Feature.collections_enabled? && feature_request_from_object.present? case @object['type'] when 'Follow' diff --git a/app/lib/activitypub/activity/add.rb b/app/lib/activitypub/activity/add.rb index cfaf29a3be9477..0d22910a9a51b2 100644 --- a/app/lib/activitypub/activity/add.rb +++ b/app/lib/activitypub/activity/add.rb @@ -13,12 +13,12 @@ def perform add_featured end when @account.collections_url - return unless Mastodon::Feature.collections_federation_enabled? + return unless Mastodon::Feature.collections_enabled? add_collection else @collection = @account.collections.find_by(uri: value_or_id(@json['target'])) - add_collection_item if @collection && Mastodon::Feature.collections_federation_enabled? + add_collection_item if @collection && Mastodon::Feature.collections_enabled? end end diff --git a/app/lib/activitypub/activity/delete.rb b/app/lib/activitypub/activity/delete.rb index 62c298a6389538..1239462a11fd98 100644 --- a/app/lib/activitypub/activity/delete.rb +++ b/app/lib/activitypub/activity/delete.rb @@ -3,7 +3,7 @@ class ActivityPub::Activity::Delete < ActivityPub::Activity def perform return delete_person if @account.uri == object_uri - return delete_feature_authorization! unless !Mastodon::Feature.collections_federation_enabled? || feature_authorization_from_object.nil? + return delete_feature_authorization! unless !Mastodon::Feature.collections_enabled? || feature_authorization_from_object.nil? delete_object end diff --git a/app/lib/activitypub/activity/feature_request.rb b/app/lib/activitypub/activity/feature_request.rb index 67355f6bdaa639..5e319734a477ed 100644 --- a/app/lib/activitypub/activity/feature_request.rb +++ b/app/lib/activitypub/activity/feature_request.rb @@ -4,7 +4,7 @@ class ActivityPub::Activity::FeatureRequest < ActivityPub::Activity include Payloadable def perform - return unless Mastodon::Feature.collections_federation_enabled? + return unless Mastodon::Feature.collections_enabled? return if non_matching_uri_hosts?(@account.uri, @json['id']) @collection = find_or_fetch_collection diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb index b40e8f381b7bd1..8eb2427a84fe9c 100644 --- a/app/lib/activitypub/activity/update.rb +++ b/app/lib/activitypub/activity/update.rb @@ -13,7 +13,7 @@ def perform update_account elsif supported_object_type? || converted_object_type? update_status - elsif equals_or_includes_any?(@object['type'], ['FeaturedCollection']) && Mastodon::Feature.collections_federation_enabled? + elsif equals_or_includes_any?(@object['type'], ['FeaturedCollection']) && Mastodon::Feature.collections_enabled? update_collection end end diff --git a/app/models/account.rb b/app/models/account.rb index 8c44db813abf31..141a9fb7e6da37 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -474,7 +474,6 @@ def ensure_keys! def featureable_by?(other_account) return discoverable? if local? - return false unless Mastodon::Feature.collections_federation_enabled? feature_policy_for_account(other_account).in?(%i(automatic manual)) end diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 4a5597f2fe8c92..65b1d03897e4e0 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -65,7 +65,7 @@ def call(username, domain, json, options = {}) unless @options[:only_key] || @account.suspended? check_featured_collection! if @json['featured'].present? check_featured_tags_collection! if @json['featuredTags'].present? - check_featured_collections_collection! if @json['featuredCollections'].present? && Mastodon::Feature.collections_federation_enabled? + check_featured_collections_collection! if @json['featuredCollections'].present? && Mastodon::Feature.collections_enabled? check_links! if @account.fields.any?(&:requires_verification?) end diff --git a/app/services/add_account_to_collection_service.rb b/app/services/add_account_to_collection_service.rb index c5a4697e79722a..0cca1a31ff58bb 100644 --- a/app/services/add_account_to_collection_service.rb +++ b/app/services/add_account_to_collection_service.rb @@ -11,10 +11,8 @@ def call(collection, account) @collection_item = create_collection_item - if Mastodon::Feature.collections_federation_enabled? - distribute_add_activity if @account.local? - distribute_feature_request_activity if @account.remote? - end + distribute_add_activity if @account.local? + distribute_feature_request_activity if @account.remote? @collection_item end diff --git a/app/services/create_collection_service.rb b/app/services/create_collection_service.rb index 979794224ac39c..e38bddebbae1bc 100644 --- a/app/services/create_collection_service.rb +++ b/app/services/create_collection_service.rb @@ -9,10 +9,8 @@ def call(params, account) @collection.save! - if Mastodon::Feature.collections_federation_enabled? - distribute_add_activity - distribute_feature_request_activities - end + distribute_add_activity + distribute_feature_request_activities @collection end diff --git a/app/services/delete_collection_item_service.rb b/app/services/delete_collection_item_service.rb index 168eb9ba0a924f..3f91ea0c3b1e96 100644 --- a/app/services/delete_collection_item_service.rb +++ b/app/services/delete_collection_item_service.rb @@ -7,7 +7,7 @@ def call(collection_item, revoke: false) if collection_item.local? revoke ? @collection_item.revoke! : @collection_item.destroy! - distribute_remove_activity if Mastodon::Feature.collections_federation_enabled? + distribute_remove_activity else collection_item.destroy! end diff --git a/app/services/delete_collection_service.rb b/app/services/delete_collection_service.rb index 78b9261fd1d86e..c2cc6ebd6c32d5 100644 --- a/app/services/delete_collection_service.rb +++ b/app/services/delete_collection_service.rb @@ -5,7 +5,7 @@ def call(collection) @collection = collection @collection.destroy! - distribute_remove_activity if Mastodon::Feature.collections_federation_enabled? + distribute_remove_activity end private diff --git a/app/services/revoke_collection_item_service.rb b/app/services/revoke_collection_item_service.rb index 9b5c53f70c293c..0b3c2c709e1c09 100644 --- a/app/services/revoke_collection_item_service.rb +++ b/app/services/revoke_collection_item_service.rb @@ -10,7 +10,7 @@ def call(collection_item) @collection_item.revoke! - distribute_stamp_deletion! if Mastodon::Feature.collections_federation_enabled? && @collection_item.remote? + distribute_stamp_deletion! if @collection_item.remote? end private diff --git a/app/services/update_collection_service.rb b/app/services/update_collection_service.rb index 9dffac9e2bb82f..f097a8cfb8fbdf 100644 --- a/app/services/update_collection_service.rb +++ b/app/services/update_collection_service.rb @@ -7,7 +7,7 @@ def call(collection, params) @collection = collection @collection.update!(params) - distribute_update_activity if Mastodon::Feature.collections_federation_enabled? + distribute_update_activity end private diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb index f7c1e1d6175d48..732f01cc6db7eb 100644 --- a/spec/lib/activitypub/activity/accept_spec.rb +++ b/spec/lib/activitypub/activity/accept_spec.rb @@ -172,7 +172,7 @@ end end - context 'with a FeatureRequest', feature: :collections_federation do + context 'with a FeatureRequest', feature: :collections do let(:collection) { Fabricate(:collection, account: recipient) } let(:collection_item) { Fabricate(:collection_item, collection:, account: sender, state: :pending) } let(:object) { collection_item.activity_uri } diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb index d0bdfbe2185979..b444f38a3d0058 100644 --- a/spec/lib/activitypub/activity/add_spec.rb +++ b/spec/lib/activitypub/activity/add_spec.rb @@ -80,7 +80,7 @@ end end - context 'when the target is the `featuredCollections` collection', feature: :collections_federation do + context 'when the target is the `featuredCollections` collection', feature: :collections do subject { described_class.new(activity_json, account) } let(:account) { Fabricate(:remote_account, collections_url: 'https://example.com/actor/1/featured_collections') } @@ -122,7 +122,7 @@ end end - context 'when the target is a collection', feature: :collections_federation do + context 'when the target is a collection', feature: :collections do subject { described_class.new(activity_json, collection.account) } let(:collection) { Fabricate(:remote_collection) } diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb index c2b3a63431da6e..c6d74b4b5b9a56 100644 --- a/spec/lib/activitypub/activity/delete_spec.rb +++ b/spec/lib/activitypub/activity/delete_spec.rb @@ -120,7 +120,7 @@ end end - context 'with a FeatureAuthorization', feature: :collections_federation do + context 'with a FeatureAuthorization', feature: :collections do let(:recipient) { Fabricate(:account) } let(:approval_uri) { 'https://example.com/authorizations/1' } let(:collection) { Fabricate(:collection, account: recipient) } diff --git a/spec/lib/activitypub/activity/feature_request_spec.rb b/spec/lib/activitypub/activity/feature_request_spec.rb index cd199a806a4486..a7fc14e32599c8 100644 --- a/spec/lib/activitypub/activity/feature_request_spec.rb +++ b/spec/lib/activitypub/activity/feature_request_spec.rb @@ -20,7 +20,7 @@ } end - describe '#perform', feature: :collections_federation do + describe '#perform', feature: :collections do subject { described_class.new(json, sender) } context 'when recipient is discoverable' do diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb index ba69c4afc26112..78678bde817f7c 100644 --- a/spec/lib/activitypub/activity/update_spec.rb +++ b/spec/lib/activitypub/activity/update_spec.rb @@ -257,7 +257,7 @@ end end - context 'with a `FeaturedCollection` object', feature: :collections_federation do + context 'with a `FeaturedCollection` object', feature: :collections do let(:collection) { Fabricate(:remote_collection, account: sender, name: 'old name', discoverable: false) } let(:featured_collection_json) do { diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 8786760125330c..a128a9b2f8734f 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -802,23 +802,17 @@ def account_note_over_limit let(:discoverable) { true } let(:feature_approval_policy) { (0b10 << 16) | 0 } - it 'returns `false`' do - expect(subject.featureable_by?(local_account)).to be false - end - - context 'when collections federation is enabled', feature: :collections_federation do - context 'when the policy allows it' do - it 'returns `true`' do - expect(subject.featureable_by?(local_account)).to be true - end + context 'when the policy allows it' do + it 'returns `true`' do + expect(subject.featureable_by?(local_account)).to be true end + end - context 'when the policy forbids it' do - let(:feature_approval_policy) { 0 } + context 'when the policy forbids it' do + let(:feature_approval_policy) { 0 } - it 'returns `false`' do - expect(subject.featureable_by?(local_account)).to be false - end + it 'returns `false`' do + expect(subject.featureable_by?(local_account)).to be false end end end diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 99bcbba9fea951..96923a816e926e 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -63,7 +63,7 @@ end end - context 'with collection URIs', feature: :collections_federation do + context 'with collection URIs', feature: :collections do let(:payload) do { 'id' => 'https://foo.test', diff --git a/spec/services/add_account_to_collection_service_spec.rb b/spec/services/add_account_to_collection_service_spec.rb index c1e3ab45c8f5a1..4f87a2e1b96e35 100644 --- a/spec/services/add_account_to_collection_service_spec.rb +++ b/spec/services/add_account_to_collection_service_spec.rb @@ -22,14 +22,14 @@ end context 'when the account is local' do - it 'federates an `Add` activity', feature: :collections_federation do + it 'federates an `Add` activity' do subject.call(collection, account) expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job end end - context 'when the account is remote', feature: :collections_federation do + context 'when the account is remote' do let(:account) { Fabricate(:remote_account, feature_approval_policy: (0b10 << 16)) } it 'marks the item as `pending` and federates a `FeatureRequest` activity' do diff --git a/spec/services/create_collection_service_spec.rb b/spec/services/create_collection_service_spec.rb index 976782679f86d2..ded9d4d567faaa 100644 --- a/spec/services/create_collection_service_spec.rb +++ b/spec/services/create_collection_service_spec.rb @@ -29,7 +29,7 @@ expect(collection).to be_local end - it 'federates an `Add` activity', feature: :collections_federation do + it 'federates an `Add` activity' do subject.call(base_params, author) expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job @@ -65,7 +65,7 @@ context 'when some accounts are remote' do let(:accounts) { Fabricate.times(2, :remote_account, feature_approval_policy: (0b10 << 16)) } - it 'marks the new items as `pending` and federates `FeatureRequest` activities', feature: :collections_federation do + it 'marks the new items as `pending` and federates `FeatureRequest` activities' do subject.call(params, author) new_collection = author.collections.last diff --git a/spec/services/delete_collection_item_service_spec.rb b/spec/services/delete_collection_item_service_spec.rb index d7bfb97f674639..f9a235b902e827 100644 --- a/spec/services/delete_collection_item_service_spec.rb +++ b/spec/services/delete_collection_item_service_spec.rb @@ -14,7 +14,7 @@ end context 'when the collection is local' do - it 'federates a `Remove` activity', feature: :collections_federation do + it 'federates a `Remove` activity' do subject.call(collection_item) expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job @@ -33,7 +33,7 @@ let(:collection) { Fabricate(:remote_collection) } let!(:collection_item) { Fabricate(:collection_item, collection:, state: :accepted) } - it 'destroys the collection withouth federating anything', feature: :collections_federation do + it 'destroys the collection withouth federating anything' do expect { subject.call(collection_item, revoke: true) }.to change(collection.collection_items, :count).by(-1) expect(ActivityPub::AccountRawDistributionWorker).to_not have_enqueued_sidekiq_job diff --git a/spec/services/delete_collection_service_spec.rb b/spec/services/delete_collection_service_spec.rb index bd4ed5fef6faf2..06ed82b21dbfa3 100644 --- a/spec/services/delete_collection_service_spec.rb +++ b/spec/services/delete_collection_service_spec.rb @@ -12,7 +12,7 @@ expect { subject.call(collection) }.to change(Collection, :count).by(-1) end - it 'federates a `Remove` activity', feature: :collections_federation do + it 'federates a `Remove` activity' do subject.call(collection) expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job diff --git a/spec/services/revoke_collection_item_service_spec.rb b/spec/services/revoke_collection_item_service_spec.rb index b4cba82056efda..18357f53ddf73b 100644 --- a/spec/services/revoke_collection_item_service_spec.rb +++ b/spec/services/revoke_collection_item_service_spec.rb @@ -12,7 +12,7 @@ .to change { collection_item.reload.state }.from('accepted').to('revoked') end - context 'when the collection is remote', feature: :collections_federation do + context 'when the collection is remote' do let(:account) { Fabricate(:remote_account, inbox_url: 'https://example.com/actor/1/inbox') } let(:collection) { Fabricate(:remote_collection, account:) } let(:collection_item) { Fabricate(:collection_item, collection:, uri: 'https://example.com') } diff --git a/spec/services/update_collection_service_spec.rb b/spec/services/update_collection_service_spec.rb index b7b9547dbb9e60..32dd88216cbf16 100644 --- a/spec/services/update_collection_service_spec.rb +++ b/spec/services/update_collection_service_spec.rb @@ -16,7 +16,7 @@ end context 'when something actually changed' do - it 'federates an `Update` activity', feature: :collections_federation do + it 'federates an `Update` activity' do subject.call(collection, { name: 'updated' }) expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job @@ -24,7 +24,7 @@ end context 'when nothing changed' do - it 'does not federate an activity', feature: :collections_federation do + it 'does not federate an activity' do subject.call(collection, { name: collection.name }) expect(ActivityPub::AccountRawDistributionWorker).to_not have_enqueued_sidekiq_job From 13e21fb1f22c9d30227a18a3273509b942086ed4 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 1 Apr 2026 05:08:15 -0400 Subject: [PATCH 079/335] Improve resilience of `tootctl maintenance fix-duplicates` command (#38501) Co-authored-by: Claire --- lib/mastodon/cli/maintenance.rb | 79 +++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/lib/mastodon/cli/maintenance.rb b/lib/mastodon/cli/maintenance.rb index e5db9d6ed23aca..c575c45c1f995e 100644 --- a/lib/mastodon/cli/maintenance.rb +++ b/lib/mastodon/cli/maintenance.rb @@ -282,8 +282,9 @@ def deduplicate_accounts! deduplicate_remote_accounts!(accounts) end end - + ensure say 'Restoring index_accounts_on_username_and_domain_lower…' + if migrator_version < 2020_06_20_164023 database_connection.add_index :accounts, 'lower (username), lower(domain)', name: 'index_accounts_on_username_and_domain_lower', unique: true else @@ -309,8 +310,9 @@ def deduplicate_users! deduplicate_users_process_confirmation_token deduplicate_users_process_remember_token deduplicate_users_process_password_token - + ensure say 'Restoring users indexes…' + database_connection.add_index :users, ['confirmation_token'], name: 'index_users_on_confirmation_token', unique: true database_connection.add_index :users, ['email'], name: 'index_users_on_email', unique: true database_connection.add_index :users, ['remember_token'], name: 'index_users_on_remember_token', unique: true if migrator_version < 2022_01_18_183010 @@ -380,8 +382,9 @@ def deduplicate_account_domain_blocks! duplicate_record_ids(:account_domain_blocks, 'account_id, domain').each do |row| AccountDomainBlock.where(id: row['ids'].split(',').drop(1)).delete_all end - + ensure say 'Restoring account domain blocks indexes…' + database_connection.add_index :account_domain_blocks, %w(account_id domain), name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true end @@ -394,9 +397,11 @@ def deduplicate_account_identity_proofs! duplicate_record_ids(:account_identity_proofs, 'account_id, provider, provider_username').each do |row| AccountIdentityProof.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - - say 'Restoring account identity proofs indexes…' - database_connection.add_index :account_identity_proofs, %w(account_id provider provider_username), name: 'index_account_proofs_on_account_and_provider_and_username', unique: true + ensure + if db_table_exists?(:account_identity_proofs) + say 'Restoring account identity proofs indexes…' + database_connection.add_index :account_identity_proofs, %w(account_id provider provider_username), name: 'index_account_proofs_on_account_and_provider_and_username', unique: true + end end def deduplicate_announcement_reactions! @@ -408,9 +413,11 @@ def deduplicate_announcement_reactions! duplicate_record_ids(:announcement_reactions, 'account_id, announcement_id, name').each do |row| AnnouncementReaction.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - - say 'Restoring announcement_reactions indexes…' - database_connection.add_index :announcement_reactions, %w(account_id announcement_id name), name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true + ensure + if db_table_exists?(:announcement_reactions) + say 'Restoring announcement_reactions indexes…' + database_connection.add_index :announcement_reactions, %w(account_id announcement_id name), name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true + end end def deduplicate_conversations! @@ -427,8 +434,9 @@ def deduplicate_conversations! other.destroy end end - + ensure say 'Restoring conversations indexes…' + if migrator_version < 2022_03_07_083603 database_connection.add_index :conversations, ['uri'], name: 'index_conversations_on_uri', unique: true else @@ -450,8 +458,9 @@ def deduplicate_custom_emojis! other.destroy end end - + ensure say 'Restoring custom_emojis indexes…' + database_connection.add_index :custom_emojis, %w(shortcode domain), name: 'index_custom_emojis_on_shortcode_and_domain', unique: true end @@ -469,8 +478,9 @@ def deduplicate_custom_emoji_categories! other.destroy end end - + ensure say 'Restoring custom_emoji_categories indexes…' + database_connection.add_index :custom_emoji_categories, ['name'], name: 'index_custom_emoji_categories_on_name', unique: true end @@ -481,8 +491,9 @@ def deduplicate_domain_allows! duplicate_record_ids(:domain_allows, 'domain').each do |row| DomainAllow.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - + ensure say 'Restoring domain_allows indexes…' + database_connection.add_index :domain_allows, ['domain'], name: 'index_domain_allows_on_domain', unique: true end @@ -505,8 +516,9 @@ def deduplicate_domain_blocks! domain_blocks.each(&:destroy) end - + ensure say 'Restoring domain_blocks indexes…' + database_connection.add_index :domain_blocks, ['domain'], name: 'index_domain_blocks_on_domain', unique: true end @@ -519,9 +531,11 @@ def deduplicate_unavailable_domains! duplicate_record_ids(:unavailable_domains, 'domain').each do |row| UnavailableDomain.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - - say 'Restoring unavailable_domains indexes…' - database_connection.add_index :unavailable_domains, ['domain'], name: 'index_unavailable_domains_on_domain', unique: true + ensure + if db_table_exists?(:unavailable_domains) + say 'Restoring unavailable_domains indexes…' + database_connection.add_index :unavailable_domains, ['domain'], name: 'index_unavailable_domains_on_domain', unique: true + end end def deduplicate_email_domain_blocks! @@ -532,8 +546,9 @@ def deduplicate_email_domain_blocks! domain_blocks = EmailDomainBlock.where(id: row['ids'].split(',')).order(EmailDomainBlock.arel_table[:parent_id].asc.nulls_first).to_a domain_blocks.drop(1).each(&:destroy) end - + ensure say 'Restoring email_domain_blocks indexes…' + database_connection.add_index :email_domain_blocks, ['domain'], name: 'index_email_domain_blocks_on_domain', unique: true end @@ -544,8 +559,9 @@ def deduplicate_media_attachments! duplicate_record_ids_without_nulls(:media_attachments, 'shortcode').each do |row| MediaAttachment.where(id: row['ids'].split(',').drop(1)).update_all(shortcode: nil) end - + ensure say 'Restoring media_attachments indexes…' + if migrator_version < 2022_03_10_060626 database_connection.add_index :media_attachments, ['shortcode'], name: 'index_media_attachments_on_shortcode', unique: true else @@ -560,8 +576,9 @@ def deduplicate_preview_cards! duplicate_record_ids(:preview_cards, 'url').each do |row| PreviewCard.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - + ensure say 'Restoring preview_cards indexes…' + database_connection.add_index :preview_cards, ['url'], name: 'index_preview_cards_on_url', unique: true end @@ -577,8 +594,9 @@ def deduplicate_statuses! status.destroy end end - + ensure say 'Restoring statuses indexes…' + if migrator_version < 2022_03_10_060706 database_connection.add_index :statuses, ['uri'], name: 'index_statuses_on_uri', unique: true else @@ -599,8 +617,9 @@ def deduplicate_tags! tag.destroy end end - + ensure say 'Restoring tags indexes…' + if migrator_version < 2021_04_21_121431 database_connection.add_index :tags, 'lower((name)::text)', name: 'index_tags_on_name_lower', unique: true else @@ -617,9 +636,11 @@ def deduplicate_webauthn_credentials! duplicate_record_ids(:webauthn_credentials, 'external_id').each do |row| WebauthnCredential.where(id: row['ids'].split(',')).order(id: :desc).to_a.drop(1).each(&:destroy) end - - say 'Restoring webauthn_credentials indexes…' - database_connection.add_index :webauthn_credentials, ['external_id'], name: 'index_webauthn_credentials_on_external_id', unique: true + ensure + if db_table_exists?(:webauthn_credentials) + say 'Restoring webauthn_credentials indexes…' + database_connection.add_index :webauthn_credentials, ['external_id'], name: 'index_webauthn_credentials_on_external_id', unique: true + end end def deduplicate_webhooks! @@ -631,9 +652,11 @@ def deduplicate_webhooks! duplicate_record_ids(:webhooks, 'url').each do |row| Webhook.where(id: row['ids'].split(',')).order(id: :desc).drop(1).each(&:destroy) end - - say 'Restoring webhooks indexes…' - database_connection.add_index :webhooks, ['url'], name: 'index_webhooks_on_url', unique: true + ensure + if db_table_exists?(:webhooks) + say 'Restoring webhooks indexes…' + database_connection.add_index :webhooks, ['url'], name: 'index_webhooks_on_url', unique: true + end end def deduplicate_software_updates! From eda0f62f89fd06450a70da4df19f2cd8d22ff98e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 11:16:06 +0200 Subject: [PATCH 080/335] New Crowdin Translations (automated) (#38505) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/gd.json | 32 ++++++++++++++++++++++++- config/locales/activerecord.ja.yml | 6 +++++ config/locales/devise.ja.yml | 1 + config/locales/doorkeeper.ja.yml | 4 ++++ config/locales/gd.yml | 15 ++++++++++++ config/locales/simple_form.gd.yml | 2 ++ 6 files changed, 59 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 9fc37b55e06cd4..597476735f9a89 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -153,6 +153,7 @@ "account_edit.custom_fields.edit_label": "Deasaich an raon", "account_edit.custom_fields.placeholder": "Cuir ris do riochdairean, ceanglaichean dhan taobh a-muigh no rud sam bith eile a bu mhiann leat co-roinneadh.", "account_edit.custom_fields.reorder_button": "Atharraich òrdugh nan raointean", + "account_edit.custom_fields.tip_content": "Cuir ri teistealachd do chunntais Mhastodon gun duilgheadas le dearbhadh cheanglaichean gu duilleag-lìn sam bith a tha leatsa.", "account_edit.custom_fields.tip_title": "Gliocas: Cuir ceangalaichean dearbhte ris", "account_edit.custom_fields.title": "Raointean gnàthaichte", "account_edit.custom_fields.verified_hint": "Ciamar a chuireas mi ceangal dearbhte ris?", @@ -161,6 +162,7 @@ "account_edit.display_name.placeholder": "’S e mar a nochdas d’ ainm air a’ phròifil agad agus air loidhnichean-ama a tha san ainm-taisbeanaidh agad.", "account_edit.display_name.title": "Ainm-taisbeanaidh", "account_edit.featured_hashtags.edit_label": "Cuir tagaichean hais ris", + "account_edit.featured_hashtags.placeholder": "Cuidich càch ach an aithnich iad na cuspairean as fheàrr leat ’s gum faigh iad grèim orra gu sgiobalta.", "account_edit.featured_hashtags.title": "Tagaichean hais brosnaichte", "account_edit.field_actions.delete": "Sguab às an raon", "account_edit.field_actions.edit": "Deasaich an raon", @@ -171,6 +173,8 @@ "account_edit.field_edit_modal.discard_confirm": "Tilg air falbh", "account_edit.field_edit_modal.discard_message": "Tha atharraichean gun sàbhaladh agad. A bheil thu cinnteach gu bheil airson an tilgeil air falbh?", "account_edit.field_edit_modal.edit_title": "Deasaich an raoin gnàthaichte", + "account_edit.field_edit_modal.length_warning": "Chaidh thu thar crìoch nan caractaran a mholamaid. Dh’fhaoidte nach fhaicear an raon agad gu lèir air mobile.", + "account_edit.field_edit_modal.link_emoji_warning": "Mholamaid nach cleachd thu emojis gnàthaichte le URLaichean. Thèid raointean gnàthaichte sa bheil an dà chuid còmhla a shealltainn ’nan teacsa a-mhàin seach ’nan ceangal ach nach cuireamaid an luchd-cleachdaidh tro chèile.", "account_edit.field_edit_modal.name_hint": "Can “Làrach-lìn phearsanta”", "account_edit.field_edit_modal.name_label": "Leubail", "account_edit.field_edit_modal.url_warning": "Airson ceangal a chur ris, gabh a-staigh {protocol} aig a thoiseach.", @@ -178,14 +182,17 @@ "account_edit.field_edit_modal.value_label": "Luach", "account_edit.field_reorder_modal.drag_cancel": "Chaidh sgur dhen t-slaodadh. Chaidh an raon “{item}” a leigeil às.", "account_edit.field_reorder_modal.drag_end": "Chaidh an raon “{item}” a leigeil às.", + "account_edit.field_reorder_modal.drag_instructions": "Airson òrdugh nan raointean gnàthaichte atharrachadh, brùth air space no enter. Fhad ’s a bhios tu ri slaodadh, cleachd na h-iuchraichean saighde a ghluasad an raoin suas no sìos. Brùth air space no enter a-rithist a leigeil às an raoin air an ionad ùr aige no brùth air escape airson sgur dheth.", "account_edit.field_reorder_modal.drag_move": "Chaidh an raon “{item}” a ghluasad.", "account_edit.field_reorder_modal.drag_over": "Chaidh an raon “{item}” a ghluasad thar “{over}”.", "account_edit.field_reorder_modal.drag_start": "Chaidh an raon “{item}” a thogail.", "account_edit.field_reorder_modal.handle_label": "Slaod an raon “{item}”", "account_edit.field_reorder_modal.title": "Cuir òrdugh ùr air na raointean", "account_edit.image_alt_modal.add_title": "Cuir roghainn teacsa ris", + "account_edit.image_alt_modal.details_content": "MHOLAMAID:
    • Gun doir thu dealbh ort
    • Gun cleachd thu cainnt treas pearsa (can “Ailig” seach “mise”)
    • Nach cleachd thu ach beagan fhaclan
    SEACHAINN:
    • Tòiseachadh le “Dealbh-camara de” – bhiodh sin anabarrach do leughadairean-sgrìn
    BALL-EISIMPLEIR:
    • “Ailig a’ caitheamh lèine ghorm agus speuclairean”
    ", "account_edit.image_alt_modal.details_title": "Gliocasan: Roghainn teacsa air dealbhan pròifile", "account_edit.image_alt_modal.edit_title": "Deasaich an roghainn teacsa", + "account_edit.image_alt_modal.text_hint": "Cuidichidh roghainn teacsa ach an tuigeadh ann fheadhainn a chleachdas leughadair-sgrìn do shusbaint.", "account_edit.image_alt_modal.text_label": "Roghainn teacsa", "account_edit.image_delete_modal.confirm": "A bheil thu cinnteach gu bheil thu airson an dealbh seo a sguabadh às? Cha ghabh seo a neo-dhèanamh.", "account_edit.image_delete_modal.delete_button": "Sguab às", @@ -200,8 +207,13 @@ "account_edit.name_modal.add_title": "Cuir ris ainm-taisbeanaidh", "account_edit.name_modal.edit_title": "Deasaich an t-ainm-taisbeanaidh", "account_edit.profile_tab.button_label": "Gnàthaich", + "account_edit.profile_tab.hint.description": "Gnàthaichidh na roghainnean seo na chì an luchd-cleachdaidh air {server} sna h-aplacaidean oifigeil ach dh’fhaoidte nach bi iad an sàs dhan luchd-cleachdaidh air frithealaichean eile is aplacaidean treas-phàrtaidh.", + "account_edit.profile_tab.hint.title": "Bidh na chithear fhathast eadar-dhealaichte", + "account_edit.profile_tab.show_featured.description": "’S e taba roghainneil a th’ ann an “’Ga bhrosnachadh” far an urrainn dhut cunntasan eile a nochdadh.", "account_edit.profile_tab.show_featured.title": "Seall an taba “’Ga bhrosnachadh”", + "account_edit.profile_tab.show_media.description": "’S e taba roghainneil a th’ ann am “Meadhanan” a sheallas na postaichean agad ris a bheil dealbh no video.", "account_edit.profile_tab.show_media.title": "Seall an taba “Meadhanan”", + "account_edit.profile_tab.show_media_replies.description": "Nuair a bhios seo an comas, seallaidh an taba “Meadhanan” an dà chuid na postaichean agad agus na freagairtean a rinn thu do phostaichean càich.", "account_edit.profile_tab.show_media_replies.title": "Gabh a-staigh freagairtean air an taba “Meadhanan”", "account_edit.profile_tab.subtitle": "Gnàthaich na tabaichean air a’ phròifil agad is na sheallas iad.", "account_edit.profile_tab.title": "Roghainnean tabaichean na pròifile", @@ -218,6 +230,7 @@ "account_edit.upload_modal.title_add.header": "Cuir dealbh còmhdachaidh ris", "account_edit.upload_modal.title_replace.avatar": "Cuir dealbh ùr an àite dealbh na pròifil", "account_edit.upload_modal.title_replace.header": "Cuir dealbh ùr an àite an deilbh chòmhdachaidh", + "account_edit.verified_modal.details": "Cuir ri teistealachd do chunntais Mhastodon le dearbhadh cheanglaichean gu duilleagan-lìn parsanta. Seo mar a nì thu e:", "account_edit.verified_modal.invisible_link.details": "Cuir an ceangal ris a’ bhann-chinn agad. ’S e rel=\"me\" a tha sa phàirt chudromach a bhacas riochd cuideigin eile air làraichean-lìn le susbaint air a gintinn o chleachdaiche. ’S urrainn dhut fiù taga link a chleachdadh ann am bann-cinn na duilleige seach {tag} ach feumaidh sinn an HTML ruigsinn gun a bhith a’ ruith JavaScript.", "account_edit.verified_modal.invisible_link.summary": "Ciamar a dh’fhalaicheas mi an ceangal?", "account_edit.verified_modal.step1.header": "Dèan lethbhreac dhen chòd HTML gu h-ìosal is cuir e ri bann-cinn na làraich-lìn agad", @@ -226,6 +239,8 @@ "account_edit.verified_modal.title": "Mar a chuireas tu ceangal dearbhte ris", "account_edit_tags.add_tag": "Cuir #{tagName} ris", "account_edit_tags.column_title": "Deasaich na tagaichean", + "account_edit_tags.help_text": "Cuidichidh na tagaichean hais brosnaichte gun lorg an luchd-cleachdaidh a’ phròifil agad ’s ach an dèan iad conaltradh ris. Nochdaidh iad ’nan criathragan air sealladh “Gnìomhachd” duilleag na pròifil agad.", + "account_edit_tags.max_tags_reached": "Ràinig thu na tha ceadaichte dhut de thagaichean hais brosnaichte.", "account_edit_tags.search_placeholder": "Cuir a-steach taga hais…", "account_edit_tags.suggestions": "Molaidhean:", "account_edit_tags.tag_status_count": "{count, plural, one {# phost} two {# phost} few {# postaichean} other {# post}}", @@ -353,17 +368,23 @@ "collections.confirm_account_removal": "A bheil thu cinnteach gu bheil thu airson an cunntas seo a thoirt air falbh on chruinneachadh seo?", "collections.content_warning": "Rabhadh susbainte", "collections.continue": "Lean air adhart", + "collections.create.accounts_subtitle": "Chan urrainn dhut cur ris ach cunntasan a leanas tu ’s a ghabh ri rùrachadh.", + "collections.create.accounts_title": "Cò bhrosnaicheas tu sa chruinneachadh seo?", "collections.create.basic_details_title": "Bun-fhiosrachadh", "collections.create.steps": "Ceum {step}/{total}", + "collections.create_a_collection_hint": "Cruthaich cruinneachadh airson na cunntasan as fheàrr leat a mholadh no a cho-roinneadh le càch.", "collections.create_collection": "Cruthaich cruinneachadh", "collections.delete_collection": "Sguab an cruinneachadh às", "collections.description_length_hint": "Crìoch de 100 caractar", "collections.detail.accept_inclusion": "Taghta", "collections.detail.accounts_heading": "Cunntasan", "collections.detail.author_added_you": "Chuir {author} ris a’ chruinneachadh seo thu", + "collections.detail.curated_by_author": "’Ga thasgadh le {author}", + "collections.detail.curated_by_you": "’Ga thasgadh leatsa ", "collections.detail.loading": "A’ luchdadh a’ chruinneachaidh…", "collections.detail.other_accounts_in_collection": "Daoine eile sa chruinneachadh seo:", "collections.detail.revoke_inclusion": "Thoir air falbh mi", + "collections.detail.sensitive_note": "Tha cunntasan is susbaint sa chruinneachadh seo a dh’fhaodadh a bhith frionasach do chuid.", "collections.detail.share": "Co-roinn an cruinneachadh seo", "collections.edit_details": "Deasaich am fiosrachadh", "collections.error_loading_collections": "Thachair mearachd nuair a dh’fheuch sinn ris a’ chruinneachaidhean agad a luchdadh.", @@ -371,6 +392,7 @@ "collections.last_updated_at": "An tùrachadh mu dheireadh: {date}", "collections.manage_accounts": "Stiùirich na cunntasan", "collections.mark_as_sensitive": "Cuir comharra gu bheil e frionasach", + "collections.mark_as_sensitive_hint": "Falaichidh seo tuairisgeul is cunntasan a’ chruinneachaidh air cùlaibh rabhadh susbainte. Chithear ainm a’ chruinneachaidh fhathast.", "collections.name_length_hint": "Crìoch de 40 caractar", "collections.new_collection": "Cruinneachadh ùr", "collections.no_collections_yet": "Chan eil cruinneachadh agad fhathast.", @@ -381,10 +403,14 @@ "collections.revoke_inclusion.confirmation": "Chaidh do thoirt air falbh o “{collection}”", "collections.revoke_inclusion.error": "Thachair mearachd. Feuch ris a-rithist an ceann greis.", "collections.search_accounts_label": "Lorg cunntasan gus an cur ris…", + "collections.search_accounts_max_reached": "Chuir thu na tha ceadaichte de chunntasan ris", "collections.sensitive": "Frionasach", + "collections.topic_hint": "Cuir taga hais ris a chuidicheas càch le tuigse prìomh-chuspair a’ chruinneachaidh seo.", + "collections.topic_special_chars_hint": "Thèid caractaran sònraichte a thoirt air falbh nuair a thèid a shàbhaladh", "collections.view_collection": "Seall an cruinneachadh ", "collections.view_other_collections_by_user": "Seall cruinneachaidhean eile aig a’ chleachdaiche seo", "collections.visibility_public": "Poblach", + "collections.visibility_public_hint": "Gabhaidh a rùrachadh ann an toraidhean luirg agus air àitichean eile far a nochdas molaidhean.", "collections.visibility_title": "Faicsinneachd", "collections.visibility_unlisted": "Falaichte o liostaichean", "collections.visibility_unlisted_hint": "Chì duine sam bith aig a bheil ceangal e. Thèid fhalach o thoraidhean luirg ’s na molaidhean.", @@ -501,6 +527,7 @@ "confirmations.remove_from_followers.message": "Cha lean {name} thu tuilleadh. A bheil thu cinnteach gu bheil thu airson leantainn air adhart?", "confirmations.remove_from_followers.title": "A bheil thu airson an neach-leantainn a thoirt air falbh?", "confirmations.revoke_collection_inclusion.confirm": "Thoir air falbh mi", + "confirmations.revoke_collection_inclusion.message": "Tha an gnìomh seo buan agus chan urrainn dhan neach-tasgaidh do chur ris a’ chruinneachadh a-rithist an uair sin.", "confirmations.revoke_collection_inclusion.title": "A bheil tu airson do thoirt air falbh on chruinneachadh seo?", "confirmations.revoke_quote.confirm": "Thoir am post air falbh", "confirmations.revoke_quote.message": "Cha ghabh seo a neo-dhèanamh.", @@ -612,6 +639,7 @@ "featured_carousel.current": "Post {current, number} / {max, number}", "featured_carousel.header": "{count, plural, one {Post prìnichte} two {Postaichean prìnichte} few {Postaichean prìnichte} other {Postaichean prìnichte}}", "featured_carousel.slide": "Post {current, number} à {max, number}", + "featured_tags.more_items": "+{count}", "featured_tags.suggestions": "Sgrìobh thu mu {items} o chionn goirid. A bheil thu airson an cur ris ’nan tagaichean hais brosnaichte?", "featured_tags.suggestions.add": "Cuir ris", "featured_tags.suggestions.added": "Stiùirich na tagaichean hais brosnaichte agad uair sam bith aig Deasaich a’ phròifil > Tagaichean hais brosnaichte.", @@ -657,7 +685,9 @@ "follow_suggestions.view_all": "Seall na h-uile", "follow_suggestions.who_to_follow": "Molaidhean leantainn", "followed_tags": "Tagaichean hais ’gan leantainn", + "followers.hide_other_followers": "Chuir an cleachdaiche seo roimhe nach fhaicear an luchd-leantainn eile aca", "followers.title": "A’ leantainn {name}", + "following.hide_other_following": "Chuir an cleachdaiche seo roimhe nach fhaicear cò eile a leanas iad", "following.title": "’Ga leantainn le {name}", "footer.about": "Mu dhèidhinn", "footer.about_mastodon": "Mu Mhastodon", @@ -989,7 +1019,7 @@ "onboarding.profile.title": "Suidheachadh na pròifile", "onboarding.profile.upload_avatar": "Luchdaich suas dealbh na pròifil", "onboarding.profile.upload_header": "Luchdaich suas bann-cinn na pròifil", - "password_confirmation.exceeds_maxlength": "Tha dearbhadh an fhacail-fhaire nas fhaide na tha ceadaichte do dh’faclan-faire", + "password_confirmation.exceeds_maxlength": "Tha dearbhadh an fhacail-fhaire nas fhaide na tha ceadaichte do dh’fhaclan-faire", "password_confirmation.mismatching": "Chan eil an dearbhadh co-ionnan ris an fhacal-fhaire", "picture_in_picture.restore": "Thoir air ais e", "poll.closed": "Dùinte", diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml index 156e537ddbcf0a..6f3387a72c4de8 100644 --- a/config/locales/activerecord.ja.yml +++ b/config/locales/activerecord.ja.yml @@ -32,6 +32,12 @@ ja: attributes: url: invalid: は無効なURLです + collection: + attributes: + collection_items: + too_many: は多すぎます。 %{count} 以下にしてください + tag: + unusable: は使用できません doorkeeper/application: attributes: website: diff --git a/config/locales/devise.ja.yml b/config/locales/devise.ja.yml index 686299837c9379..067886de8ea8b3 100644 --- a/config/locales/devise.ja.yml +++ b/config/locales/devise.ja.yml @@ -7,6 +7,7 @@ ja: send_paranoid_instructions: もしあなたのメールアドレスが登録されていれば、まもなくメールアドレスの確認の方法が記載されたメールが送信されます。 failure: already_authenticated: 既にログイン済みです。 + closed_registrations: アカウントの登録はネットワークポリシーによりブロックされました。これが誤りだと思われる場合は %{email} まで連絡してください。 inactive: あなたのアカウントはまだ有効化されていません。 invalid: "%{authentication_keys}かパスワードが誤っています。" last_attempt: あと1回失敗するとアカウントがロックされます。 diff --git a/config/locales/doorkeeper.ja.yml b/config/locales/doorkeeper.ja.yml index a788b5bf422fdc..08f4112c7e8f62 100644 --- a/config/locales/doorkeeper.ja.yml +++ b/config/locales/doorkeeper.ja.yml @@ -83,6 +83,10 @@ ja: access_denied: リソースの所有者または認証サーバーが要求を拒否しました。 credential_flow_not_configured: リソース所有者のパスワード Doorkeeper.configure.resource_owner_from_credentials が設定されていないためクレデンシャルフローに失敗しました。 invalid_client: 不明なクライアントであるか、クライアント情報が含まれていない、またはサポートされていない認証方法のため、クライアントの認証に失敗しました。 + invalid_code_challenge_method: + one: code_challenge_methodは %{challenge_methods} でなければなりません。 + other: code_challenge_methodは %{challenge_methods} のいずれかでなければなりません。 + zero: 認証サーバーが受け入れる code_challenge_method 値がないため、PKCE をサポートしません。 invalid_grant: 指定された認証許可は無効であるか、期限切れ、取り消されている、リダイレクトURIの不一致、または別のクライアントに発行されています。 invalid_redirect_uri: 無効なリダイレクトURIが含まれています。 invalid_request: diff --git a/config/locales/gd.yml b/config/locales/gd.yml index 9c363fb18564c5..f5223b25fde7e0 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -812,6 +812,7 @@ gd: delete_user_data: Sguabadh às dàta cleachdaiche delete_user_data_description: Leigidh seo le cleachdaichean dàta chleachdaichean eile a sguabadh às gun dàil invite_bypass_approval: Thoir cuireadh do chleachdaichean gun lèirmheas + invite_bypass_approval_description: Leigidh seo leis an fheadhainn a fhuair cuireadh dhan fhrithealaiche leis na cleachdaichean seo dearbhadh na maorsainneachd a leigeil seachad invite_users: Thoir cuireadh do chleachdaichean invite_users_description: Leigidh seo le cleachdaichean cuireadh dhan fhrithealaiche a chur gu daoine eile manage_announcements: Stiùireadh nam brathan-fios @@ -1464,6 +1465,7 @@ gd: other: Eile redesign_body: "’S urrainn dhut a’ phròifil agad a dheasachadh air duilleag na pròifile fhèin." redesign_button: Tadhail air + redesign_title: Tha dòigh ùr air deasachadh na pròifil againn email_subscription_mailer: confirmation: action: Dearbh an seòladh puist-d @@ -1473,11 +1475,20 @@ gd: title: A bheil thu airson naidheachdan %{name} fhaighinn air a’ phost-d? notification: create_account: Cruthaich cunntas Mastodon + footer: + privacy_html: Thèid puist-d a chur o %{domain}, seo frithealaiche le cumhachd Mhastodon. Airson tuigsinn mar a nì am frithealaiche seo pròiseasadh air an dàta phearsanta agad, faic am poileasaidh prìobhaideachd. + reason_for_email_html: Fhuair thu am post-d seo on a chuir thu romhad naidheachdan %{name} fhaighinn air a’ phost-d. Nach eil thu airson na puist-d seo fhaighinn? Cuir crìoch air an fho-sgrìobhadh + interact_with_this_post: + few: Dèan conaltradh leis na puist seo is lorg barrachd coltach riutha. + one: Dèan conaltradh leis a’ phost seo is lorg barrachd coltach ris. + other: Dèan conaltradh leis na puist seo is lorg barrachd coltach riutha. + two: Dèan conaltradh leis na puist seo is lorg barrachd coltach riutha. email_subscriptions: active: Gnìomhach confirmations: show: changed_your_mind: Na chuir thu romhad a chaochladh? + success_html: Gheibh thu puist-d a-nis nuair a dh’fhoillsicheas %{name} postaichean ùra. Cuir %{sender} ris an luchd-aithne agad ach nach dèid na postaichean seo a chur do phasgan an spama agad. title: Tha thu air clàradh unsubscribe: Cuir crìoch air an fho-sgrìobhadh inactive: Neo-ghnìomhach @@ -1895,6 +1906,7 @@ gd: public_timelines: Loidhnichean-ama poblach privacy: email_subscriptions: Cuir postaichean air a’ phost-d + email_subscriptions_hint_html: Cuir foirm clàradh puist-d ris a’ phròifil agad a nochdas do chleachdaichean nach do rinn clàradh a-steach. Nuair a chuireas aoighean an seòladh puist-d aca a-steach is ma ghabhas iad ris, cuiridh Mastodon naidheachdan mu na postaichean poblach agad thuca air a’ phost-d. hint_html: "Gnàthaich an dòigh air an dèid a’ phròifil ’s na postaichean agad a lorg. Tha grunn ghleusan aig Mastodon a chuidicheas ach an ruig thu èisteachd nas fharsainge nuair a bhios iad an comas. Thoir sùil air na roghainnean seo a dhèanamh cinnteach gum freagair iad ri d’ fheumalachdan." privacy: Prìobhaideachd privacy_hint_html: Stiùirich na tha thu airson foillseachadh do chàch. Gheibh daoine lorg air pròifilean inntinneach is deagh aplacaidean a’ brabhsadh cò tha daoine eile a’ leantainn ’s a’ faicinn nan aplacaidean a chleachdas iad airson postadh ach dh’fhaoidte gum b’ fheàrr leat seo a chumail falaichte. @@ -2137,6 +2149,8 @@ gd: past_preamble_html: Dh’atharraich sinn teirmichean na seirbheise againn on turas mu dheireadh a thadhail thu oirnn. Mholamaid gun dèan thu lèirmheas air na teirmichean ùra. review_link: Dèan lèirmheas air teirmichean na seirbheise title: Tha teirmichean na seirbheise aig %{domain} gu bhith atharrachadh + themes: + default: Mastodon time: formats: default: "%d %b %Y, %H:%M" @@ -2162,6 +2176,7 @@ gd: recovery_codes_regenerated: Chaidh na còdan aiseig ath-ghintinn recovery_instructions_html: Ma chailleas tu an t-inntrigeadh dhan fhòn agad, ’s urrainn dhut fear dhe na còdan aisig gu h-ìosal a chleachdadh airson faighinn a-steach dhan chunntas agad a-rithist. Cùm na còdan aisig sàbhailte. Mar eisimpleir, ’s urrainn dhut an clò-bhualadh ’s a chumail far a bheil thu a’ cumail na sgrìobhainnean cudromach eile agad. resume_app_authorization: Lean air ùghdarrachadh na h-aplacaid + role_requirement: Tha %{domain} ag iarraidh gun suidhich thu dearbhadh dà-cheumnach mus cleachd thu Mastodon. webauthn: Iuchraichean tèarainteachd unsubscriptions: create: diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 85cca6346e22ea..d5093491c3b4d9 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -134,6 +134,7 @@ gd: otp: 'Cuir a-steach an còd dà-cheumnach a ghin aplacaid an fhòn agad no cleachd fear dhe na còdan aisig agad:' webauthn: Mas e iuchair USB a th’ ann, dèan cinnteach gun cuir thu a-steach e is gun doir thu gnogag air ma bhios feum air sin. settings: + email_subscriptions: Ma chuireas tu seo à comas, cumaidh tu an luchd fo-sgrìobhaidh làithreach agad ach cha dèid puist-d a chur tuilleadh. indexable: Dh’fhaoidte gun nochd duilleag na pròifil agad am measg nan toraidhean luirg air Google, Bing is eile. show_application: Gidheadh, chì thu dè an aplacaid a dh’fhoillsich am post agad an-còmhnaidh. tag: @@ -166,6 +167,7 @@ gd: name: Ainm poblach na dreuchd ma chaidh a suidheachadh gun nochd i na baidse permissions_as_keys: Gheibh na cleachdaichean aig a bheil an dreuchd seo inntrigeadh dha… position: Ma tha còmhstri ann, buannaichidh an dreuchd as àirde ann an cuid a shuidheachaidhean. Tha gnìomhan sònraichte ann nach urrainn ach dreuchdan le prìomhachas ìosail a ghabhail + require_2fa: Feumaidh cleachdaichean aig a bheil an dreachd seo dearbhadh dà-cheumnach a shuidheachadh airson Mastodon a chleachdadh username_block: allow_with_approval: An àite bacadh clàraidh gu tur, bidh clàraidhean a mhaidsicheas feumach air d’ aonta comparison: Thoir an aire air an Scunthorpe Problem nuair a bhacas tu maidsichean pàirteach From 0742a01571649e7ca6dde43040959d6288d86c89 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Apr 2026 12:04:59 +0200 Subject: [PATCH 081/335] Add MX record validation to e-mail subscriptions, refactor validator (#38502) --- app/models/email_subscription.rb | 1 + app/models/user.rb | 2 +- app/validators/email_mx_validator.rb | 16 +-- spec/validators/email_mx_validator_spec.rb | 144 ++++++++++----------- 4 files changed, 78 insertions(+), 85 deletions(-) diff --git a/app/models/email_subscription.rb b/app/models/email_subscription.rb index a965f06e31f4b8..fc3a0f125d10fd 100644 --- a/app/models/email_subscription.rb +++ b/app/models/email_subscription.rb @@ -20,6 +20,7 @@ class EmailSubscription < ApplicationRecord normalizes :email, with: ->(str) { str.squish.downcase } validates :email, presence: true, email_address: true, uniqueness: { scope: :account_id } + validates :email, email_mx: true, if: -> { email_changed? && !Rails.env.local? } scope :confirmed, -> { where.not(confirmed_at: nil) } scope :unconfirmed, -> { where(confirmed_at: nil) } diff --git a/app/models/user.rb b/app/models/user.rb index b4b9f9a9bf11fd..ac33324ddda924 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -93,9 +93,9 @@ class User < ApplicationRecord validates :invite_request, presence: true, on: :create, if: :invite_text_required? validates :email, presence: true, email_address: true + validates :email, email_mx: { attempt_ip: :sign_up_ip }, if: :validate_email_dns? validates_with UserEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? } - validates_with EmailMxValidator, if: :validate_email_dns? validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create # Honeypot/anti-spam fields diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb index f78b98d7dd71b2..d24b101a6e37d0 100644 --- a/app/validators/email_mx_validator.rb +++ b/app/validators/email_mx_validator.rb @@ -2,21 +2,21 @@ require 'resolv' -class EmailMxValidator < ActiveModel::Validator - def validate(user) - return if user.email.blank? +class EmailMxValidator < ActiveModel::EachValidator + def validate_each(record, attribute, value) + return if value.blank? - domain = get_domain(user.email) + domain = get_domain(value) if domain.blank? || domain.include?('..') - user.errors.add(:email, :invalid) + record.errors.add(attribute, :invalid) elsif !on_allowlist?(domain) resolved_ips, resolved_domains = resolve_mx(domain) if resolved_ips.empty? - user.errors.add(:email, :unreachable) - elsif email_domain_blocked?(resolved_domains, user.sign_up_ip) - user.errors.add(:email, :blocked) + record.errors.add(attribute, :unreachable) + elsif email_domain_blocked?([domain, *resolved_domains], options[:attempt_ip].is_a?(Symbol) ? record.public_send(options[:attempt_ip]) : nil) + record.errors.add(attribute, :blocked) end end end diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb index 0ffbf7fb8bca54..e71794b80834f1 100644 --- a/spec/validators/email_mx_validator_spec.rb +++ b/spec/validators/email_mx_validator_spec.rb @@ -3,109 +3,101 @@ require 'rails_helper' RSpec.describe EmailMxValidator do - let(:user) { Fabricate.build :user, email: } - let(:email) { 'foo@example.com' } - let(:resolv_dns_double) { instance_double(Resolv::DNS) } - - context 'with an e-mail domain that is explicitly allowed' do - around do |example| - original = Rails.configuration.x.email_domains_allowlist - Rails.configuration.x.email_domains_allowlist = 'example.com' - example.run - Rails.configuration.x.email_domains_allowlist = original - end + subject { record_class.new } - context 'when there are not DNS records' do - before { configure_resolver('example.com') } + context 'with no options' do + let(:record_class) do + Class.new do + include ActiveModel::Validations + + def self.name = 'Record' - it 'does not add errors to record' do - subject.validate(user) - expect(user.errors).to be_empty + attr_accessor :email + + validates :email, email_mx: true end end - end - context 'when there are DNS records for the domain' do - before { configure_resolver('example.com', a: resolv_double_a('192.0.2.42')) } + let(:user) { Fabricate.build :user, email: } + let(:email) { 'foo@example.com' } + let(:resolv_dns_double) { instance_double(Resolv::DNS) } + + context 'with an e-mail domain that is explicitly allowed' do + around do |example| + original = Rails.configuration.x.email_domains_allowlist + Rails.configuration.x.email_domains_allowlist = 'example.com' + example.run + Rails.configuration.x.email_domains_allowlist = original + end + + context 'when there are not DNS records' do + before { configure_resolver('example.com') } - it 'does not add errors to record' do - subject.validate(user) - expect(user.errors).to be_empty + it { is_expected.to allow_value(email).for(:email) } + end end - end - context 'when the TagManager fails to normalize the domain' do - before do - allow(TagManager).to receive(:instance).and_return(tag_manage_double) - allow(tag_manage_double).to receive(:normalize_domain).with('example.com').and_raise(Addressable::URI::InvalidURIError) + context 'when there are DNS records for the domain' do + before { configure_resolver('example.com', a: resolv_double_a('192.0.2.42')) } + + it { is_expected.to allow_value(email).for(:email) } end - let(:tag_manage_double) { instance_double(TagManager) } + context 'when the TagManager fails to normalize the domain' do + before do + allow(TagManager).to receive(:instance).and_return(tag_manage_double) + allow(tag_manage_double).to receive(:normalize_domain).with('example.com').and_raise(Addressable::URI::InvalidURIError) + end - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + let(:tag_manage_double) { instance_double(TagManager) } + + it { is_expected.to_not allow_value(email).for(:email) } end - end - context 'when the email portion is blank' do - let(:email) { 'foo@' } + context 'when the email portion is blank' do + let(:email) { 'foo@' } - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + it { is_expected.to_not allow_value(email).for(:email) } end - end - context 'when the email domain contains empty labels' do - let(:email) { 'foo@example..com' } + context 'when the email domain contains empty labels' do + let(:email) { 'foo@example..com' } - before { configure_resolver('example..com', a: resolv_double_a('192.0.2.42')) } + before { configure_resolver('example..com', a: resolv_double_a('192.0.2.42')) } - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + it { is_expected.to_not allow_value(email).for(:email) } end - end - context 'when there are no DNS records for the email domain' do - before { configure_resolver('example.com') } + context 'when there are no DNS records for the email domain' do + before { configure_resolver('example.com') } - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + it { is_expected.to_not allow_value(email).for(:email) } end - end - context 'when MX record does not lead to an IP' do - before do - configure_resolver('example.com', mx: resolv_double_mx('mail.example.com')) - configure_resolver('mail.example.com') - end + context 'when MX record does not lead to an IP' do + before do + configure_resolver('example.com', mx: resolv_double_mx('mail.example.com')) + configure_resolver('mail.example.com') + end - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + it { is_expected.to_not allow_value(email).for(:email) } end - end - context 'when the MX record has an email domain block' do - before do - Fabricate :email_domain_block, domain: 'mail.example.com' - configure_resolver( - 'example.com', - mx: resolv_double_mx('mail.example.com') - ) - configure_resolver( - 'mail.example.com', - a: instance_double(Resolv::DNS::Resource::IN::A, address: '2.3.4.5'), - aaaa: instance_double(Resolv::DNS::Resource::IN::AAAA, address: 'fd00::2') - ) - end + context 'when the MX record has an email domain block' do + before do + Fabricate :email_domain_block, domain: 'mail.example.com' + configure_resolver( + 'example.com', + mx: resolv_double_mx('mail.example.com') + ) + configure_resolver( + 'mail.example.com', + a: instance_double(Resolv::DNS::Resource::IN::A, address: '2.3.4.5'), + aaaa: instance_double(Resolv::DNS::Resource::IN::AAAA, address: 'fd00::2') + ) + end - it 'adds errors to record' do - subject.validate(user) - expect(user.errors).to be_present + it { is_expected.to_not allow_value(email).for(:email) } end end From 0d20f2367ae48c5eb49b547c28afcc7e4d1349cd Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 1 Apr 2026 12:40:02 +0200 Subject: [PATCH 082/335] Profile redesign: Remove extra underline from number fields (#38509) --- .../mastodon/components/number_fields/styles.module.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/components/number_fields/styles.module.scss b/app/javascript/mastodon/components/number_fields/styles.module.scss index 085bd5051dd7a6..e61ace82350bd3 100644 --- a/app/javascript/mastodon/components/number_fields/styles.module.scss +++ b/app/javascript/mastodon/components/number_fields/styles.module.scss @@ -23,6 +23,7 @@ a { padding: 0; + text-decoration: none; &:hover, &:focus { From 8733d09dc49ef0642599f5590fb3615390112ab5 Mon Sep 17 00:00:00 2001 From: MitarashiDango Date: Wed, 1 Apr 2026 19:40:54 +0900 Subject: [PATCH 083/335] Improve relative time display when post time is in the future (#38488) --- app/javascript/mastodon/components/status/header.tsx | 5 ++++- .../mastodon/features/account_timeline/v2/status_header.tsx | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/status/header.tsx b/app/javascript/mastodon/components/status/header.tsx index 65790bb493216f..9b1445e9c1cb3d 100644 --- a/app/javascript/mastodon/components/status/header.tsx +++ b/app/javascript/mastodon/components/status/header.tsx @@ -56,7 +56,10 @@ export const StatusHeader: FC = ({ className='status__relative-time' > - + {editedAt && } diff --git a/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx b/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx index 5f0ff886857866..9958a47d965425 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx @@ -36,7 +36,10 @@ export const AccountStatusHeader: FC = ({ className='status__relative-time' > - + {editedAt && } From e9a051fcef90b2b03fb2f6e6f52f2abe3aa1f8a0 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 1 Apr 2026 14:59:34 +0200 Subject: [PATCH 084/335] Fix FetchRemoteKeyService possibly returning incorrect keys (#38511) --- .../activitypub/fetch_remote_key_service.rb | 21 ++++++++++++++----- .../fetch_remote_key_service_spec.rb | 4 ++++ 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb index 7226f767379fac..e6f691b288069e 100644 --- a/app/services/activitypub/fetch_remote_key_service.rb +++ b/app/services/activitypub/fetch_remote_key_service.rb @@ -9,12 +9,14 @@ class Error < StandardError; end def call(uri, suppress_errors: true) raise Error, 'No key URI given' if uri.blank? + @suppress_errors = suppress_errors + @uri = uri @json = fetch_resource(uri, false) raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil? raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?(@json) || (supported_security_context?(@json) && @json['owner'].present? && !actor_type?) raise Error, "Unexpected object type for key #{uri}" unless expected_type? - return Keypair.from_legacy_account(find_actor(@json['id'], @json, suppress_errors), uri: uri) if actor_type? + return keypair_from_actor_json(@json['id'], @json) if actor_type? @owner = fetch_resource(owner_uri, true) @@ -23,8 +25,7 @@ def call(uri, suppress_errors: true) raise Error, "Unexpected object type for actor #{owner_uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_owner_type? raise Error, "publicKey id for #{owner_uri} does not correspond to #{@json['id']}" unless confirmed_owner? - # TODO: change to fetch and persist key - Keypair.from_legacy_account(find_actor(owner_uri, @owner, suppress_errors), uri: uri) + keypair_from_actor_json(owner_uri, @owner) rescue Error => e Rails.logger.debug { "Fetching key #{uri} failed: #{e.message}" } raise unless suppress_errors @@ -32,9 +33,19 @@ def call(uri, suppress_errors: true) private - def find_actor(uri, prefetched_body, suppress_errors) + def keypair_from_actor_json(actor_uri, actor_json) + actor = find_actor(actor_uri, actor_json) + return if actor.nil? + + keypair = actor.keypairs.find_by(uri: @uri) + return keypair if keypair.present? + + Keypair.from_legacy_account(actor, uri: @uri) if actor.public_key.present? + end + + def find_actor(uri, prefetched_body) actor = ActivityPub::TagManager.instance.uri_to_actor(uri) - actor ||= ActivityPub::FetchRemoteActorService.new.call(uri, prefetched_body: prefetched_body, suppress_errors: suppress_errors) + actor ||= ActivityPub::FetchRemoteActorService.new.call(uri, prefetched_body: prefetched_body, suppress_errors: @suppress_errors) actor end diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb index cd61ebee221f6b..fc7dfb3c422aa2 100644 --- a/spec/services/activitypub/fetch_remote_key_service_spec.rb +++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb @@ -64,6 +64,8 @@ it 'returns the expected account' do expect(keypair.account.uri).to eq 'https://example.com/alice' + expect(keypair.uri).to eq public_key_id + expect(keypair.public_key).to eq public_key_pem end end @@ -76,6 +78,8 @@ it 'returns the expected account' do expect(keypair.account.uri).to eq 'https://example.com/alice' + expect(keypair.uri).to eq public_key_id + expect(keypair.public_key).to eq public_key_pem end end From 1f7d6cde5e7d2e8ebb9a2882db0ce52a4853b407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nicole=20miko=C5=82ajczyk?= Date: Wed, 1 Apr 2026 15:22:19 +0200 Subject: [PATCH 085/335] Don't end account dropdown menu with a separator (#38481) --- .../features/account_timeline/components/menu.tsx | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/menu.tsx b/app/javascript/mastodon/features/account_timeline/components/menu.tsx index cd1ec82e4fa429..6ef03757029470 100644 --- a/app/javascript/mastodon/features/account_timeline/components/menu.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/menu.tsx @@ -212,13 +212,14 @@ function currentMenuItems({ } if (isRemote) { - items.push( - { - text: intl.formatMessage(messages.openOriginalPage), - href: account.url, - }, - null, - ); + items.push({ + text: intl.formatMessage(messages.openOriginalPage), + href: account.url, + }); + + if (signedIn) { + items.push(null); + } } if (!signedIn) { From c2aafda610d352574491539bfff2ee500507f7c7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 15:22:46 +0200 Subject: [PATCH 086/335] Update dependency vite-plugin-svgr to v5 (#38480) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 4fb0a44a062a84..e5fb60017b5daf 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,7 @@ "vite": "^8.0.0", "vite-plugin-manifest-sri": "^0.2.0", "vite-plugin-pwa": "^1.2.0", - "vite-plugin-svgr": "^4.5.0", + "vite-plugin-svgr": "^5.0.0", "wicg-inert": "^3.1.2", "workbox-expiration": "^7.3.0", "workbox-routing": "^7.3.0", diff --git a/yarn.lock b/yarn.lock index 13e611512a4dc5..02367d8ce240eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2963,7 +2963,7 @@ __metadata: vite: "npm:^8.0.0" vite-plugin-manifest-sri: "npm:^0.2.0" vite-plugin-pwa: "npm:^1.2.0" - vite-plugin-svgr: "npm:^4.5.0" + vite-plugin-svgr: "npm:^5.0.0" vitest: "npm:^4.1.0" wicg-inert: "npm:^3.1.2" workbox-expiration: "npm:^7.3.0" @@ -14719,16 +14719,16 @@ __metadata: languageName: node linkType: hard -"vite-plugin-svgr@npm:^4.5.0": - version: 4.5.0 - resolution: "vite-plugin-svgr@npm:4.5.0" +"vite-plugin-svgr@npm:^5.0.0": + version: 5.0.0 + resolution: "vite-plugin-svgr@npm:5.0.0" dependencies: "@rollup/pluginutils": "npm:^5.2.0" "@svgr/core": "npm:^8.1.0" "@svgr/plugin-jsx": "npm:^8.1.0" peerDependencies: - vite: ">=2.6.0" - checksum: 10c0/3e1959fec626bb4f5a8ec13ff15bc40ffbc1c0ff38149bebe3f37dc2d67ed1f276f129ff7983e06946cf712e19996affd9d6868aa7d20d8921d1fe4449109b55 + vite: ">=3.0.0" + checksum: 10c0/8ebb90055589ee6a8a4cb7d78a10a92bef10732fbbe1528c2edf970e2f116cddd957456c9e560a0c004d24ce1111568f4f2498ed9d3cf37d49f696253ba9b4b2 languageName: node linkType: hard From 5a572f9c897686912e1197005485d3bd47d203a2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 15:24:06 +0200 Subject: [PATCH 087/335] Update dependency axios to v1.14.0 (#38466) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index 02367d8ce240eb..6af5f5e0d4d62f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5802,13 +5802,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.13.6 - resolution: "axios@npm:1.13.6" + version: 1.14.0 + resolution: "axios@npm:1.14.0" dependencies: follow-redirects: "npm:^1.15.11" form-data: "npm:^4.0.5" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/51fb5af055c3b85662fa97df17d986ae2c37d13bf86d50b6bb36b6b3a2dec6966a1d3a14ab3774b71707b155ae3597ed9b7babdf1a1a863d1a31840cb8e7ec71 + proxy-from-env: "npm:^2.1.0" + checksum: 10c0/2541f4aa215a7d1842429dad006fc682d82bc0e74bd14500823f7d8cce3bbae0e0a8c328c8538946718f366ab8ce5a4c12e9ad40e5a0f3482ff8bff0cd115d45 languageName: node linkType: hard @@ -11838,10 +11838,10 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b +"proxy-from-env@npm:^2.1.0": + version: 2.1.0 + resolution: "proxy-from-env@npm:2.1.0" + checksum: 10c0/ed01729fd4d094eab619cd7e17ce3698b3413b31eb102c4904f9875e677cd207392795d5b4adee9cec359dfd31c44d5ad7595a3a3ad51c40250e141512281c58 languageName: node linkType: hard From 9b6354802a5e060c2a624d75858c3a7876f27277 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 1 Apr 2026 15:45:10 +0200 Subject: [PATCH 088/335] Fix linting dev directories (#38514) --- stylelint.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/stylelint.config.js b/stylelint.config.js index 1db58de646d4cd..94a1829f6fc6f5 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -5,8 +5,7 @@ module.exports = { 'coverage/**/*', 'node_modules/**/*', 'public/assets/**/*', - 'public/packs/**/*', - 'public/packs-test/**/*', + 'public/packs*/**/*', 'vendor/**/*', ], reportDescriptionlessDisables: true, From e8f4896b08ca5f67911eb62f801afc976b4c2183 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 1 Apr 2026 16:01:22 +0200 Subject: [PATCH 089/335] Profile redesign: Profile fields overflow (#38510) --- .../mastodon/features/account_edit/modals/fields_modals.tsx | 2 +- .../mastodon/features/account_edit/styles.module.scss | 5 +++++ .../features/account_timeline/modals/field_modal.tsx | 1 + .../features/account_timeline/modals/styles.module.css | 5 +++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx index 0a4c64d9c4a258..d0f67ddc62c460 100644 --- a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx @@ -210,7 +210,7 @@ export const EditFieldModal = forwardRef< const labelStatus = checkField(newLabel); const valueStatus = checkField(newValue); - if (labelStatus || valueStatus) { + if (labelStatus?.variant === 'error' || valueStatus?.variant === 'error') { setFieldStatuses({ label: labelStatus ?? undefined, value: valueStatus ?? undefined, diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index cd3d34f31b712e..1ca1e4646c3ee0 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -182,6 +182,11 @@ // Field component +.fieldName, +.fieldValue { + word-break: break-all; +} + .fieldName { color: var(--color-text-secondary); font-size: 13px; diff --git a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx index c778e08fa26a5b..9c09be8e2bf36f 100644 --- a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx +++ b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx @@ -28,6 +28,7 @@ export const AccountFieldModal: FC<{ as='h2' htmlString={field.name_emojified} onElement={handleLabelElement} + className={classes.fieldName} /> Date: Wed, 1 Apr 2026 16:02:00 +0200 Subject: [PATCH 090/335] Fix jump when loading more media gallery items (#38512) --- app/javascript/mastodon/features/account_gallery/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 2a69342a4672d4..0a6eb1c1f1e76d 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -225,7 +225,7 @@ export const AccountGallery: React.FC<{ alwaysPrepend append={accountId && } scrollKey='account_gallery' - showLoading={isLoading} + isLoading={isLoading} hasMore={!forceEmptyState && hasMore} onLoadMore={handleLoadMore} emptyMessage={emptyMessage} From db704180b2eaeaefef61f6b232ba4c6f57aa3300 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 1 Apr 2026 16:14:53 +0200 Subject: [PATCH 091/335] Fix signature verification when the key ID is an `acct:` URI (#38516) --- .../concerns/signature_verification.rb | 11 ++++++++- spec/requests/signature_verification_spec.rb | 24 ++++++++++++++++++- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index f752e5cd93c01e..49b72872390584 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -101,7 +101,7 @@ def keypair_from_key_id end if key_id.start_with?('acct:') - stoplight_wrapper.run { ResolveAccountService.new.call(key_id.delete_prefix('acct:'), suppress_errors: false) } + stoplight_wrapper.run { fetch_key_from_acct(key_id.delete_prefix('acct:')) } elsif !ActivityPub::TagManager.instance.local_uri?(key_id) keypair = Keypair.from_keyid(key_id) return keypair if keypair.present? @@ -114,6 +114,15 @@ def keypair_from_key_id raise Mastodon::SignatureVerificationError, e.message end + def fetch_key_from_acct(acct) + # This is legacy and can't let us pick a specific key, so pick the first + + account = ResolveAccountService.new.call(acct, suppress_errors: false) + return if account.nil? + + account.keypairs.first || Keypair.from_legacy_account(account) + end + def stoplight_wrapper Stoplight( "source:#{request.remote_ip}", diff --git a/spec/requests/signature_verification_spec.rb b/spec/requests/signature_verification_spec.rb index 3119138a0a01d4..1391aeb7504659 100644 --- a/spec/requests/signature_verification_spec.rb +++ b/spec/requests/signature_verification_spec.rb @@ -71,7 +71,29 @@ context 'with an HTTP Signature (draft version)' do context 'with a known account' do - let!(:actor) { Fabricate(:account, domain: 'remote.domain', uri: 'https://remote.domain/users/bob', private_key: nil, public_key: actor_keypair.public_key.to_pem) } + let!(:actor) { Fabricate(:account, username: 'bob', domain: 'remote.domain', uri: 'https://remote.domain/users/bob', private_key: nil, public_key: actor_keypair.public_key.to_pem) } + + context 'with an acct key ID' do + let(:signature_header) do + 'keyId="acct:bob@remote.domain",algorithm="rsa-sha256",headers="date host (request-target)",signature="Z8ilar3J7bOwqZkMp7sL8sRs4B1FT+UorbmvWoE+A5UeoOJ3KBcUmbsh+k3wQwbP5gMNUrra9rEWabpasZGphLsbDxfbsWL3Cf0PllAc7c1c7AFEwnewtExI83/qqgEkfWc2z7UDutXc2NfgAx89Ox8DXU/fA2GG0jILjB6UpFyNugkY9rg6oI31UnvfVi3R7sr3/x8Ea3I9thPvqI2byF6cojknSpDAwYzeKdngX3TAQEGzFHz3SDWwyp3jeMWfwvVVbM38FxhvAnSumw7YwWW4L7M7h4M68isLimoT3yfCn2ucBVL5Dz8koBpYf/40w7QidClAwCafZQFC29yDOg=="' # rubocop:disable Layout/LineLength + end + + it 'successfuly verifies signature', :aggregate_failures do + expect(signature_header).to eq build_signature_string(actor_keypair, 'acct:bob@remote.domain', 'get /activitypub/success', { 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT', 'Host' => 'www.example.com' }) + + get '/activitypub/success', headers: { + 'Host' => 'www.example.com', + 'Date' => 'Wed, 20 Dec 2023 10:00:00 GMT', + 'Signature' => signature_header, + } + + expect(response).to have_http_status(200) + expect(response.parsed_body).to match( + signed_request: true, + signature_actor_id: actor.id.to_s + ) + end + end context 'with a valid signature on a GET request' do let(:signature_header) do From 93dcca7f12456f446f1e946602ec931fc0c3e48f Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 1 Apr 2026 16:24:28 +0200 Subject: [PATCH 092/335] Add email subscriptions to profiles in web UI (#38487) --- .../email_subscriptions_controller.rb | 2 + app/javascript/mastodon/api/accounts.ts | 3 + app/javascript/mastodon/api_types/accounts.ts | 1 + app/javascript/mastodon/api_types/errors.ts | 22 ++ .../components/account_header.tsx | 6 + .../components/account_subscription_form.tsx | 207 ++++++++++++++++++ .../components/redesign.module.scss | 62 ++++++ app/javascript/mastodon/locales/en.json | 9 + app/javascript/mastodon/models/account.ts | 1 + stylelint.config.js | 7 + 10 files changed, 320 insertions(+) create mode 100644 app/javascript/mastodon/api_types/errors.ts create mode 100644 app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx diff --git a/app/controllers/api/v1/accounts/email_subscriptions_controller.rb b/app/controllers/api/v1/accounts/email_subscriptions_controller.rb index dcdd41f6db9840..4e773f902bce83 100644 --- a/app/controllers/api/v1/accounts/email_subscriptions_controller.rb +++ b/app/controllers/api/v1/accounts/email_subscriptions_controller.rb @@ -8,6 +8,8 @@ class Api::V1::Accounts::EmailSubscriptionsController < Api::BaseController def create @account.email_subscriptions.create!(email: params[:email], locale: I18n.locale) render_empty + rescue ActiveRecord::RecordInvalid => e + render json: ValidationErrorFormatter.new(e).as_json, status: 422 end private diff --git a/app/javascript/mastodon/api/accounts.ts b/app/javascript/mastodon/api/accounts.ts index fc6e38fbc8d47a..2229d17c56026a 100644 --- a/app/javascript/mastodon/api/accounts.ts +++ b/app/javascript/mastodon/api/accounts.ts @@ -75,3 +75,6 @@ export const apiDeleteProfileAvatar = () => export const apiDeleteProfileHeader = () => apiRequestDelete('v1/profile/header'); + +export const apiSubscribeByEmail = (id: string, email: string) => + apiRequestPost(`v1/accounts/${id}/email_subscriptions`, { email }); diff --git a/app/javascript/mastodon/api_types/accounts.ts b/app/javascript/mastodon/api_types/accounts.ts index 351f3245cc648a..0a5e847e8ea2bf 100644 --- a/app/javascript/mastodon/api_types/accounts.ts +++ b/app/javascript/mastodon/api_types/accounts.ts @@ -68,6 +68,7 @@ export interface BaseApiAccountJSON { limited?: boolean; memorial?: boolean; hide_collections: boolean; + email_subscriptions?: boolean; } // See app/serializers/rest/muted_account_serializer.rb diff --git a/app/javascript/mastodon/api_types/errors.ts b/app/javascript/mastodon/api_types/errors.ts new file mode 100644 index 00000000000000..46f8e0b8cdaa08 --- /dev/null +++ b/app/javascript/mastodon/api_types/errors.ts @@ -0,0 +1,22 @@ +export type ErrorToken = + | 'ERR_TAKEN' + | 'ERR_INVALID' + | 'ERR_BLOCKED' + | 'ERR_RESERVED' + | 'ERR_TOO_MANY' + | 'ERR_MALFORMED' + | 'ERR_UNUSABLE' + | 'ERR_TOO_SOON' + | 'ERR_BELOW_LIMIT' + | 'ERR_UNREACHABLE' + | 'ERR_ELEVATED'; + +export interface ValidationError { + error: ErrorToken; + description: string; +} + +export interface ValidationErrorResponse { + error: string; + details: Record; +} diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 6a9d51f737c30f..4f4c1663e8577e 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -23,6 +23,7 @@ import { useAppSelector, useAppDispatch } from '@/mastodon/store'; import { isRedesignEnabled } from '../common'; import { AccountName } from './account_name'; +import { AccountSubscriptionForm } from './account_subscription_form'; import { AccountBadges } from './badges'; import { AccountButtons } from './buttons'; import { FamiliarFollowers } from './familiar_followers'; @@ -218,9 +219,14 @@ export const AccountHeader: React.FC<{ isRedesign && redesignClasses.bio, )} /> + + {!me && account.email_subscriptions && ( + + )} + )} diff --git a/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx b/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx new file mode 100644 index 00000000000000..d183aa1cb30769 --- /dev/null +++ b/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx @@ -0,0 +1,207 @@ +import { useState, useCallback, useId } from 'react'; + +import { FormattedMessage, useIntl, defineMessages } from 'react-intl'; +import type { IntlShape } from 'react-intl'; + +import { Link } from 'react-router-dom'; + +import { AxiosError } from 'axios'; + +import { apiSubscribeByEmail } from 'mastodon/api/accounts'; +import type { + ValidationErrorResponse, + ValidationError, +} from 'mastodon/api_types/errors'; +import { A11yLiveRegion } from 'mastodon/components/a11y_live_region'; +import { Button } from 'mastodon/components/button'; +import { CalloutInline } from 'mastodon/components/callout_inline'; +import { DisplayName } from 'mastodon/components/display_name'; +import type { FieldStatus } from 'mastodon/components/form_fields'; +import formFieldClasses from 'mastodon/components/form_fields/form_field_wrapper.module.scss'; +import { TextInput } from 'mastodon/components/form_fields/text_input_field'; +import { useAppSelector } from 'mastodon/store'; + +import classes from './redesign.module.scss'; + +const messages = defineMessages({ + emailInvalid: { + id: 'email_subscriptions.validation.email.invalid', + defaultMessage: 'Invalid email address', + }, + emailBlocked: { + id: 'email_subscriptions.validation.email.blocked', + defaultMessage: 'Blocked email provider', + }, + email: { + id: 'email_subscriptions.email', + defaultMessage: 'Email address', + }, +}); + +const isValidationErrorResponse = ( + data: unknown, +): data is ValidationErrorResponse => + typeof data === 'object' && + data !== null && + 'error' in data && + 'details' in data; + +const fieldStatusFromErrors = ( + intl: IntlShape, + errors: ValidationError[], +): FieldStatus | undefined => { + const error = errors[0]; + + if (!error) { + return undefined; + } + + let message: string; + + switch (error.error) { + case 'ERR_BLOCKED': + message = intl.formatMessage(messages.emailBlocked); + break; + case 'ERR_INVALID': + default: + message = intl.formatMessage(messages.emailInvalid); + break; + } + + return { variant: 'error', message }; +}; + +export const AccountSubscriptionForm: React.FC<{ accountId: string }> = ({ + accountId, +}) => { + const account = useAppSelector((state) => state.accounts.get(accountId)); + const intl = useIntl(); + const accessibilityId = useId(); + + const [email, setEmail] = useState(''); + const [submitting, setSubmitting] = useState(false); + const [submitted, setSubmitted] = useState(false); + const [errors, setErrors] = useState>({}); + + const handleChange = useCallback>( + (e) => { + setEmail(e.target.value); + setErrors({}); + }, + [], + ); + + const handleSubmit = useCallback( + (e) => { + e.preventDefault(); + + if (email.length === 0) { + return; + } + + setSubmitting(true); + + apiSubscribeByEmail(accountId, email) + .then(() => { + setSubmitting(false); + setSubmitted(true); + + return ''; + }) + .catch((err: unknown) => { + setSubmitting(false); + + if (err instanceof AxiosError && err.response) { + const data: unknown = err.response.data; + + if (isValidationErrorResponse(data)) { + if (data.details.email?.some((k) => k.error === 'ERR_TAKEN')) { + setSubmitted(true); + return; + } + + setErrors(data.details); + } + } + }); + }, + [accountId, email], + ); + + if (submitted) { + return ( +
    +
    +

    + +

    + +
    +
    + ); + } + + return ( +
    +
    +

    + , + }} + /> +

    + +
    + +
    +
    + + + + {errors.email && ( + + )} + +
    + + +
    + +
    + {str} }} + /> +
    +
    + ); +}; diff --git a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss index 391a6ac7fe71d0..11446104a35a1f 100644 --- a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss @@ -391,3 +391,65 @@ svg.badgeIcon { padding-bottom: 14px; } } + +.bannerBase { + box-sizing: border-box; + padding: 16px; + border-radius: 12px; + background: var(--color-bg-secondary); + display: flex; + flex-direction: column; + gap: 12px; + justify-content: center; + align-items: flex-start; + margin: 16px 0; +} + +.bannerTextAndActions { + display: flex; + flex-direction: column; + gap: 4px; + font-size: 13px; + font-weight: 400; + color: var(--color-text-primary); + + h2 { + font-size: 17px; + font-weight: 600; + } +} + +.bannerDisclaimer { + color: var(--color-text-secondary); + font-size: 11px; + + a { + color: inherit; + } +} + +.bannerBaseCentered { + composes: bannerBase; + min-height: 146px; + align-items: center; + + .bannerTextAndActions { + text-align: center; + } +} + +.bannerInputButton { + display: flex; + gap: 8px; + align-self: stretch; + align-items: flex-start; + + & > div { + flex-grow: 1; + } + + input[type='email'] { + padding: 7px 8px; // To align size with button + background: var(--color-bg-primary); + } +} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index a7520348300ce1..19fc3c3efedf87 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -581,6 +581,15 @@ "domain_pill.your_server": "Your digital home, where all of your posts live. Don’t like this one? Transfer servers at any time and bring your followers, too.", "domain_pill.your_username": "Your unique identifier on this server. It’s possible to find users with the same username on different servers.", "dropdown.empty": "Select an option", + "email_subscriptions.email": "Email address", + "email_subscriptions.form.action": "Subscribe", + "email_subscriptions.form.disclaimer": "You can unsubscribe at any time. For more information, refer to the Privacy Policy.", + "email_subscriptions.form.lead": "Get posts in your inbox without creating a Mastodon account.", + "email_subscriptions.form.title": "Sign up for email updates from {name}", + "email_subscriptions.submitted.lead": "Check your inbox for an email to finish signing up for email updates.", + "email_subscriptions.submitted.title": "One more step", + "email_subscriptions.validation.email.blocked": "Blocked email provider", + "email_subscriptions.validation.email.invalid": "Invalid email address", "embed.instructions": "Embed this post on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", diff --git a/app/javascript/mastodon/models/account.ts b/app/javascript/mastodon/models/account.ts index 6248d8e97b6771..f13d1c68312b09 100644 --- a/app/javascript/mastodon/models/account.ts +++ b/app/javascript/mastodon/models/account.ts @@ -101,6 +101,7 @@ export const accountDefaultValues: AccountShape = { limited: false, moved: null, hide_collections: false, + email_subscriptions: false, // This comes from `ApiMutedAccountJSON`, but we should eventually // store that in a different object. mute_expires_at: null, diff --git a/stylelint.config.js b/stylelint.config.js index 94a1829f6fc6f5..10a2f1cd555694 100644 --- a/stylelint.config.js +++ b/stylelint.config.js @@ -50,6 +50,13 @@ module.exports = { true, { ignorePseudoClasses: ['global'] }, ], + + 'property-no-unknown': [ + true, + { + ignoreProperties: ['composes'], + }, + ], }, }, ], From 159d710bc196dbfb4c75cb18de5b5eab95f90268 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 16:44:43 +0200 Subject: [PATCH 093/335] Update dependency use-debounce to v10.1.1 (#38484) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 6af5f5e0d4d62f..147390ffaf9dcf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14608,11 +14608,11 @@ __metadata: linkType: hard "use-debounce@npm:^10.0.0": - version: 10.1.0 - resolution: "use-debounce@npm:10.1.0" + version: 10.1.1 + resolution: "use-debounce@npm:10.1.1" peerDependencies: react: "*" - checksum: 10c0/1d2c9ab71be283f7ea9f9c78f3574aeb6ff6fbcb18a9c5daf7f633521a8978f14d190016d39fd773227e40e9929e223677bb311343dadf33ee0763ef24bff510 + checksum: 10c0/0d1b2ff16447651c92ef444be3b7e29608e229c169a90e7cbd1ef13775475734b0910eaf01f2f64dc9f2b1d5dd8cf03042c5a09e230c9bb2ee148a18b5bba074 languageName: node linkType: hard From ca5c0a144ade4bff7bd10446a39d86116879884e Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 1 Apr 2026 17:03:43 +0200 Subject: [PATCH 094/335] Profile redesign: Remove feature flag (#38513) --- .../mastodon/components/follow_button.tsx | 18 +- .../features/account_featured/index.tsx | 10 +- .../features/account_gallery/index.tsx | 7 +- .../features/account_timeline/common.ts | 5 - .../components/account_header.tsx | 81 ++--- .../components/account_name.tsx | 31 -- .../account_timeline/components/badges.tsx | 25 +- .../account_timeline/components/buttons.tsx | 3 - .../account_timeline/components/fields.tsx | 61 +--- .../account_timeline/components/menu.tsx | 280 +----------------- .../components/number_fields.tsx | 62 +--- .../account_timeline/components/tabs.tsx | 29 +- .../features/account_timeline/v2/filters.tsx | 2 +- .../account_timeline/v2/pinned_statuses.tsx | 5 - app/javascript/mastodon/features/ui/index.jsx | 18 +- .../features/ui/util/async-components.js | 7 +- app/javascript/mastodon/locales/en.json | 1 - app/javascript/mastodon/utils/environment.ts | 2 +- spec/system/account_notes_spec.rb | 48 --- 19 files changed, 67 insertions(+), 628 deletions(-) delete mode 100644 spec/system/account_notes_spec.rb diff --git a/app/javascript/mastodon/components/follow_button.tsx b/app/javascript/mastodon/components/follow_button.tsx index 14f2d62d9aa0fb..4f8b1b0bea225f 100644 --- a/app/javascript/mastodon/components/follow_button.tsx +++ b/app/javascript/mastodon/components/follow_button.tsx @@ -6,7 +6,6 @@ import classNames from 'classnames'; import { Link } from 'react-router-dom'; import { useIdentity } from '@/mastodon/identity_context'; -import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; import { fetchRelationships, followAccount, @@ -171,23 +170,10 @@ export const FollowButton: React.FC<{ 'button--compact': compact, }); - if (isServerFeatureEnabled('profile_redesign')) { - return ( - - {label} - - ); - } - return ( - + {label} - + ); } diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 0d9adfe3146d8b..937a200e1ccce0 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -7,7 +7,6 @@ import { useHistory } from 'react-router'; import { List as ImmutableList } from 'immutable'; import { useAccount } from '@/mastodon/hooks/useAccount'; -import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; import { fetchEndorsedAccounts } from 'mastodon/actions/accounts'; import { fetchFeaturedTags } from 'mastodon/actions/featured_tags'; import { Account } from 'mastodon/components/account'; @@ -49,11 +48,7 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ const history = useHistory(); useEffect(() => { - if ( - account && - !account.show_featured && - isServerFeatureEnabled('profile_redesign') - ) { + if (account && !account.show_featured) { history.push(`/@${account.acct}`); } }, [account, history]); @@ -111,8 +106,7 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ ); } - const noTags = - featuredTags.isEmpty() || isServerFeatureEnabled('profile_redesign'); + const noTags = featuredTags.isEmpty(); if ( noTags && diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 0a6eb1c1f1e76d..069f1242f701a3 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -4,7 +4,6 @@ import { FormattedMessage } from 'react-intl'; import { List as ImmutableList, isList } from 'immutable'; -import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; import { openModal } from 'mastodon/actions/modal'; import { expandAccountMediaTimeline } from 'mastodon/actions/timelines'; import { ColumnBackButton } from 'mastodon/components/column_back_button'; @@ -27,8 +26,6 @@ import { MediaItem } from './components/media_item'; const emptyList = ImmutableList(); -const redesignEnabled = isServerFeatureEnabled('profile_redesign'); - const selectGalleryTimeline = createAppSelector( [ (_state, accountId?: string | null) => accountId, @@ -58,7 +55,7 @@ const selectGalleryTimeline = createAppSelector( const { show_media, show_media_replies } = account; // If the account disabled showing media, don't display anything. - if (!show_media && redesignEnabled) { + if (!show_media) { return { items, hasMore: false, @@ -67,7 +64,7 @@ const selectGalleryTimeline = createAppSelector( }; } - const withReplies = show_media_replies && redesignEnabled; + const withReplies = show_media_replies; const timeline = timelines.get( `account:${accountId}:media${withReplies ? ':with_replies' : ''}`, ); diff --git a/app/javascript/mastodon/features/account_timeline/common.ts b/app/javascript/mastodon/features/account_timeline/common.ts index 7a939bbec9d393..b036530e14dd72 100644 --- a/app/javascript/mastodon/features/account_timeline/common.ts +++ b/app/javascript/mastodon/features/account_timeline/common.ts @@ -1,9 +1,4 @@ import type { AccountFieldShape } from '@/mastodon/models/account'; -import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; - -export function isRedesignEnabled() { - return isServerFeatureEnabled('profile_redesign'); -} export interface AccountField extends AccountFieldShape { nameHasEmojis: boolean; diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 4f4c1663e8577e..90b0127e15d044 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -7,7 +7,6 @@ import { openModal } from '@/mastodon/actions/modal'; import { AccountBio } from '@/mastodon/components/account_bio'; import { Avatar } from '@/mastodon/components/avatar'; import { AnimateEmojiProvider } from '@/mastodon/components/emoji/context'; -import { AccountNote } from '@/mastodon/features/account/components/account_note'; import FollowRequestNoteContainer from '@/mastodon/features/account/containers/follow_request_note_container'; import { useLayout } from '@/mastodon/hooks/useLayout'; import { useVisibility } from '@/mastodon/hooks/useVisibility'; @@ -20,15 +19,12 @@ import type { Account } from '@/mastodon/models/account'; import { getAccountHidden } from '@/mastodon/selectors/accounts'; import { useAppSelector, useAppDispatch } from '@/mastodon/store'; -import { isRedesignEnabled } from '../common'; - import { AccountName } from './account_name'; import { AccountSubscriptionForm } from './account_subscription_form'; import { AccountBadges } from './badges'; import { AccountButtons } from './buttons'; import { FamiliarFollowers } from './familiar_followers'; import { AccountHeaderFields } from './fields'; -import { AccountInfo } from './info'; import { MemorialNote } from './memorial_note'; import { MovedNote } from './moved_note'; import { AccountNote as AccountNoteRedesign } from './note'; @@ -52,8 +48,6 @@ export const AccountHeader: React.FC<{ accountId: string; hideTabs?: boolean; }> = ({ accountId, hideTabs }) => { - const isRedesign = isRedesignEnabled(); - const dispatch = useAppDispatch(); const account = useAppSelector((state) => state.accounts.get(accountId)); const relationship = useAppSelector((state) => @@ -120,13 +114,9 @@ export const AccountHeader: React.FC<{
    - {me !== account.id && relationship && !isRedesign && ( - - )} - {!suspendedOrHidden && (
    - - {!isRedesign && ( - - )}
    - {isRedesign && ( - - )} +
    @@ -192,31 +173,19 @@ export const AccountHeader: React.FC<{ )} - {!isRedesign && ( - - )} - {!suspendedOrHidden && (
    - {me && - account.id !== me && - (isRedesign ? ( - - ) : ( - - ))} + {me && account.id !== me && ( + + )} @@ -231,20 +200,18 @@ export const AccountHeader: React.FC<{
    )} - {isRedesign && ( - - )} +
    - {!hideTabs && !hidden && } + {!hideTabs && !hidden && }
    diff --git a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx b/app/javascript/mastodon/features/account_timeline/components/account_name.tsx index ac6ab2735e2950..3fd9e30c286824 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_name.tsx @@ -14,10 +14,6 @@ import { useAppSelector } from '@/mastodon/store'; import AtIcon from '@/material-icons/400-24px/alternate_email.svg?react'; import HelpIcon from '@/material-icons/400-24px/help.svg?react'; import DomainIcon from '@/material-icons/400-24px/language.svg?react'; -import LockIcon from '@/material-icons/400-24px/lock.svg?react'; - -import { DomainPill } from '../../account/components/domain_pill'; -import { isRedesignEnabled } from '../common'; import classes from './redesign.module.scss'; @@ -34,7 +30,6 @@ const messages = defineMessages({ }); export const AccountName: FC<{ accountId: string }> = ({ accountId }) => { - const intl = useIntl(); const account = useAccount(accountId); const me = useAppSelector((state) => state.meta.get('me') as string); const localDomain = useAppSelector( @@ -47,32 +42,6 @@ export const AccountName: FC<{ accountId: string }> = ({ accountId }) => { const [username = '', domain = localDomain] = account.acct.split('@'); - if (!isRedesignEnabled()) { - return ( -

    - - - - @{username} - @{domain} - - - {account.locked && ( - - )} - -

    - ); - } - return (

    diff --git a/app/javascript/mastodon/features/account_timeline/components/badges.tsx b/app/javascript/mastodon/features/account_timeline/components/badges.tsx index 9bfc3b5da53008..75e0c31a183947 100644 --- a/app/javascript/mastodon/features/account_timeline/components/badges.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/badges.tsx @@ -20,8 +20,6 @@ import { useAccount } from '@/mastodon/hooks/useAccount'; import type { AccountRole } from '@/mastodon/models/account'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; -import { isRedesignEnabled } from '../common'; - import classes from './redesign.module.scss'; export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { @@ -46,9 +44,6 @@ export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { return null; } - const isRedesign = isRedesignEnabled(); - const className = isRedesign ? classes.badge : ''; - const domain = account.acct.includes('@') ? account.acct.split('@')[1] : localDomain; @@ -58,7 +53,7 @@ export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { , @@ -68,8 +63,8 @@ export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { , ); @@ -77,17 +72,17 @@ export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { }); if (account.bot) { - badges.push(); + badges.push(); } if (account.group) { - badges.push(); + badges.push(); } - if (isRedesign && relationship) { + if (relationship) { if (relationship.blocking) { badges.push( , ); } @@ -95,7 +90,7 @@ export const AccountBadges: FC<{ accountId: string }> = ({ accountId }) => { badges.push( = ({ accountId }) => { badges.push( , ); @@ -136,5 +131,5 @@ export const PinnedBadge: FC = () => ( function isAdminBadge(role: AccountRole) { const name = role.name.toLowerCase(); - return isRedesignEnabled() && (name === 'admin' || name === 'owner'); + return name === 'admin' || name === 'owner'; } diff --git a/app/javascript/mastodon/features/account_timeline/components/buttons.tsx b/app/javascript/mastodon/features/account_timeline/components/buttons.tsx index fe0bbbfbd620e3..0c24207b6abfc1 100644 --- a/app/javascript/mastodon/features/account_timeline/components/buttons.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/buttons.tsx @@ -16,8 +16,6 @@ import NotificationsIcon from '@/material-icons/400-24px/notifications.svg?react import NotificationsActiveIcon from '@/material-icons/400-24px/notifications_active-fill.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; -import { isRedesignEnabled } from '../common'; - import { AccountMenu } from './menu'; const messages = defineMessages({ @@ -97,7 +95,6 @@ const AccountButtonsOther: FC< accountId={accountId} className='account__header__follow-button' labelLength='long' - withUnmute={!isRedesignEnabled()} /> )} {isFollowing && ( diff --git a/app/javascript/mastodon/features/account_timeline/components/fields.tsx b/app/javascript/mastodon/features/account_timeline/components/fields.tsx index 5bad90aaaebb95..80d6cc7f679846 100644 --- a/app/javascript/mastodon/features/account_timeline/components/fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/fields.tsx @@ -1,68 +1,30 @@ import { useCallback, useMemo, useRef, useState } from 'react'; import type { FC } from 'react'; -import { defineMessage, FormattedMessage, useIntl } from 'react-intl'; +import { defineMessage, useIntl } from 'react-intl'; import classNames from 'classnames'; import IconVerified from '@/images/icons/icon_verified.svg?react'; import { openModal } from '@/mastodon/actions/modal'; -import { AccountFields } from '@/mastodon/components/account_fields'; import { CustomEmojiProvider } from '@/mastodon/components/emoji/context'; import type { EmojiHTMLProps } from '@/mastodon/components/emoji/html'; import { EmojiHTML } from '@/mastodon/components/emoji/html'; -import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; import { Icon } from '@/mastodon/components/icon'; import { IconButton } from '@/mastodon/components/icon_button'; import { MiniCard } from '@/mastodon/components/mini_card'; import { useElementHandledLink } from '@/mastodon/components/status/handled_link'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useResizeObserver } from '@/mastodon/hooks/useObserver'; -import type { Account } from '@/mastodon/models/account'; import { useAppDispatch } from '@/mastodon/store'; import MoreIcon from '@/material-icons/400-24px/more_horiz.svg?react'; import { cleanExtraEmojis } from '../../emoji/normalize'; import type { AccountField } from '../common'; -import { isRedesignEnabled } from '../common'; import { useFieldHtml } from '../hooks/useFieldHtml'; import classes from './redesign.module.scss'; -export const AccountHeaderFields: FC<{ accountId: string }> = ({ - accountId, -}) => { - const account = useAccount(accountId); - - if (!account) { - return null; - } - - if (isRedesignEnabled()) { - return ; - } - - return ( -
    -
    -
    - -
    -
    - -
    -
    - - -
    - ); -}; - const verifyMessage = defineMessage({ id: 'account.link_verified_on', defaultMessage: 'Ownership of this link was checked on {date}', @@ -75,13 +37,22 @@ const dateFormatOptions: Intl.DateTimeFormatOptions = { minute: '2-digit', }; -const RedesignAccountHeaderFields: FC<{ account: Account }> = ({ account }) => { +export const AccountHeaderFields: FC<{ accountId: string }> = ({ + accountId, +}) => { + const account = useAccount(accountId); + const emojis = useMemo( - () => cleanExtraEmojis(account.emojis), - [account.emojis], + () => cleanExtraEmojis(account?.emojis), + [account?.emojis], ); + const accountFields = account?.fields; const fields: AccountField[] = useMemo(() => { - const fields = account.fields.toJS(); + const fields = accountFields?.toJS(); + if (!fields) { + return []; + } + if (!emojis) { return fields.map((field) => ({ ...field, @@ -102,10 +73,10 @@ const RedesignAccountHeaderFields: FC<{ account: Account }> = ({ account }) => { field.value_plain?.includes(`:${code}:`), ), })); - }, [account.fields, emojis]); + }, [accountFields, emojis]); const htmlHandlers = useElementHandledLink({ - hashtagAccountId: account.id, + hashtagAccountId: account?.id, }); const { wrapperRef } = useColumnWrap(); diff --git a/app/javascript/mastodon/features/account_timeline/components/menu.tsx b/app/javascript/mastodon/features/account_timeline/components/menu.tsx index 6ef03757029470..24ef09129767a7 100644 --- a/app/javascript/mastodon/features/account_timeline/components/menu.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/menu.tsx @@ -40,8 +40,6 @@ import PersonRemoveIcon from '@/material-icons/400-24px/person_remove.svg?react' import ReportIcon from '@/material-icons/400-24px/report.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; -import { isRedesignEnabled } from '../common'; - import classes from './redesign.module.scss'; export const AccountMenu: FC<{ accountId: string }> = ({ accountId }) => { @@ -63,19 +61,9 @@ export const AccountMenu: FC<{ accountId: string }> = ({ accountId }) => { return []; } - if (isRedesignEnabled()) { - return redesignMenuItems({ - account, - signedIn: !isMe && signedIn, - permissions, - intl, - relationship, - dispatch, - }); - } - return currentMenuItems({ + return redesignMenuItems({ account, - signedIn, + signedIn: !isMe && signedIn, permissions, intl, relationship, @@ -178,270 +166,6 @@ const messages = defineMessages({ }, }); -function currentMenuItems({ - account, - signedIn, - permissions, - intl, - relationship, - dispatch, -}: MenuItemsParams): MenuItem[] { - const items: MenuItem[] = []; - const isRemote = account.acct !== account.username; - - if (signedIn && !account.suspended) { - items.push( - { - text: intl.formatMessage(messages.mention, { - name: account.username, - }), - action: () => { - dispatch(mentionCompose(account)); - }, - }, - { - text: intl.formatMessage(messages.direct, { - name: account.username, - }), - action: () => { - dispatch(directCompose(account)); - }, - }, - null, - ); - } - - if (isRemote) { - items.push({ - text: intl.formatMessage(messages.openOriginalPage), - href: account.url, - }); - - if (signedIn) { - items.push(null); - } - } - - if (!signedIn) { - return items; - } - - if (relationship?.following) { - // Timeline options - if (!relationship.muting) { - if (relationship.showing_reblogs) { - items.push({ - text: intl.formatMessage(messages.hideReblogs, { - name: account.username, - }), - action: () => { - dispatch(followAccount(account.id, { reblogs: false })); - }, - }); - } else { - items.push({ - text: intl.formatMessage(messages.showReblogs, { - name: account.username, - }), - action: () => { - dispatch(followAccount(account.id, { reblogs: true })); - }, - }); - } - - items.push( - { - text: intl.formatMessage(messages.languages), - action: () => { - dispatch( - openModal({ - modalType: 'SUBSCRIBED_LANGUAGES', - modalProps: { - accountId: account.id, - }, - }), - ); - }, - }, - null, - ); - } - - items.push( - { - text: intl.formatMessage( - relationship.endorsed ? messages.unendorse : messages.endorse, - ), - action: () => { - if (relationship.endorsed) { - dispatch(unpinAccount(account.id)); - } else { - dispatch(pinAccount(account.id)); - } - }, - }, - { - text: intl.formatMessage(messages.add_or_remove_from_list), - action: () => { - dispatch( - openModal({ - modalType: 'LIST_ADDER', - modalProps: { - accountId: account.id, - }, - }), - ); - }, - }, - null, - ); - } - - if (relationship?.followed_by) { - const handleRemoveFromFollowers = () => { - dispatch( - openModal({ - modalType: 'CONFIRM', - modalProps: { - title: intl.formatMessage(messages.confirmRemoveFromFollowersTitle), - message: intl.formatMessage( - messages.confirmRemoveFromFollowersMessage, - { name: {account.acct} }, - ), - confirm: intl.formatMessage( - messages.confirmRemoveFromFollowersButton, - ), - onConfirm: () => { - void dispatch( - removeAccountFromFollowers({ accountId: account.id }), - ); - }, - }, - }), - ); - }; - - items.push({ - text: intl.formatMessage(messages.removeFromFollowers, { - name: account.username, - }), - action: handleRemoveFromFollowers, - dangerous: true, - }); - } - - if (relationship?.muting) { - items.push({ - text: intl.formatMessage(messages.unmute, { - name: account.username, - }), - action: () => { - dispatch(unmuteAccount(account.id)); - }, - }); - } else { - items.push({ - text: intl.formatMessage(messages.mute, { - name: account.username, - }), - action: () => { - dispatch(initMuteModal(account)); - }, - dangerous: true, - }); - } - - if (relationship?.blocking) { - items.push({ - text: intl.formatMessage(messages.unblock, { - name: account.username, - }), - action: () => { - dispatch(unblockAccount(account.id)); - }, - }); - } else { - items.push({ - text: intl.formatMessage(messages.block, { - name: account.username, - }), - action: () => { - dispatch(blockAccount(account.id)); - }, - dangerous: true, - }); - } - - if (!account.suspended) { - items.push({ - text: intl.formatMessage(messages.report, { - name: account.username, - }), - action: () => { - dispatch(initReport(account)); - }, - dangerous: true, - }); - } - - const remoteDomain = isRemote ? account.acct.split('@')[1] : null; - if (remoteDomain) { - items.push(null); - - if (relationship?.domain_blocking) { - items.push({ - text: intl.formatMessage(messages.unblockDomain, { - domain: remoteDomain, - }), - action: () => { - dispatch(unblockDomain(remoteDomain)); - }, - }); - } else { - items.push({ - text: intl.formatMessage(messages.blockDomain, { - domain: remoteDomain, - }), - action: () => { - dispatch(initDomainBlockModal(account)); - }, - dangerous: true, - }); - } - } - - if ( - (permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS || - (isRemote && - (permissions & PERMISSION_MANAGE_FEDERATION) === - PERMISSION_MANAGE_FEDERATION) - ) { - items.push(null); - if ((permissions & PERMISSION_MANAGE_USERS) === PERMISSION_MANAGE_USERS) { - items.push({ - text: intl.formatMessage(messages.admin_account, { - name: account.username, - }), - href: `/admin/accounts/${account.id}`, - }); - } - if ( - isRemote && - (permissions & PERMISSION_MANAGE_FEDERATION) === - PERMISSION_MANAGE_FEDERATION - ) { - items.push({ - text: intl.formatMessage(messages.admin_domain, { - domain: remoteDomain, - }), - href: `/admin/instances/${remoteDomain}`, - }); - } - } - - return items; -} - const redesignMessages = defineMessages({ share: { id: 'account.menu.share', defaultMessage: 'Share…' }, copy: { id: 'account.menu.copy', defaultMessage: 'Copy link' }, diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx index 0fa805ac6ba355..385ba2d28abe27 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx @@ -3,13 +3,6 @@ import type { FC } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; -import { NavLink } from 'react-router-dom'; - -import { - FollowersCounter, - FollowingCounter, - StatusesCounter, -} from '@/mastodon/components/counters'; import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; import { NumberFields, @@ -18,54 +11,9 @@ import { import { ShortNumber } from '@/mastodon/components/short_number'; import { useAccount } from '@/mastodon/hooks/useAccount'; -import { isRedesignEnabled } from '../common'; - -const LegacyNumberFields: FC<{ accountId: string }> = ({ accountId }) => { - const intl = useIntl(); - const account = useAccount(accountId); - - if (!account) { - return null; - } - - return ( -
    - - - - - - - - - - - -
    - ); -}; - -const RedesignNumberFields: FC<{ accountId: string }> = ({ accountId }) => { +export const AccountNumberFields: FC<{ accountId: string }> = ({ + accountId, +}) => { const intl = useIntl(); const account = useAccount(accountId); const createdThisYear = useMemo( @@ -125,7 +73,3 @@ const RedesignNumberFields: FC<{ accountId: string }> = ({ accountId }) => { ); }; - -export const AccountNumberFields = isRedesignEnabled() - ? RedesignNumberFields - : LegacyNumberFields; diff --git a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx index 5febb8eaf8c564..021005d7449fdf 100644 --- a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx @@ -8,40 +8,13 @@ import { NavLink } from 'react-router-dom'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useAccountId } from '@/mastodon/hooks/useAccountId'; -import { isRedesignEnabled } from '../common'; - import classes from './redesign.module.scss'; -export const AccountTabs: FC<{ acct: string }> = ({ acct }) => { - if (isRedesignEnabled()) { - return ; - } - return ( -
    - - - - - - - - - - - - -
    - ); -}; - const isActive: Required['isActive'] = (match, location) => match?.url === location.pathname || (!!match?.url && location.pathname.startsWith(`${match.url}/tagged/`)); -const RedesignTabs: FC = () => { +export const AccountTabs: FC = () => { const accountId = useAccountId(); const account = useAccount(accountId); diff --git a/app/javascript/mastodon/features/account_timeline/v2/filters.tsx b/app/javascript/mastodon/features/account_timeline/v2/filters.tsx index 28dcb5f5c47731..2dc8254a201024 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/filters.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/filters.tsx @@ -23,7 +23,7 @@ export const AccountFilters: FC = () => { } return ( <> - +
    diff --git a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx b/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx index 694c107f3afbea..88503389c96029 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx @@ -18,7 +18,6 @@ import type { StatusHeaderRenderFn } from '@/mastodon/components/status/header'; import { selectTimelineByKey } from '@/mastodon/selectors/timelines'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; -import { isRedesignEnabled } from '../common'; import { PinnedBadge } from '../components/badges'; import { useAccountContext } from './context'; @@ -88,10 +87,6 @@ export const renderPinnedStatusHeader: StatusHeaderRenderFn = ({ export const PinnedShowAllButton: FC = () => { const { onShowAllPinned } = useAccountContext(); - if (!isRedesignEnabled()) { - return null; - } - return (

    Date: Thu, 2 Apr 2026 15:32:05 +0200 Subject: [PATCH 108/335] Update collection account list design (#38534) --- .../collections/detail/accounts_list.tsx | 250 +++++++----------- .../features/collections/detail/index.tsx | 48 +++- .../revoke_collection_inclusion_modal.tsx | 21 ++ .../collections/detail/styles.module.scss | 47 ++-- app/javascript/mastodon/locales/en.json | 6 +- 5 files changed, 186 insertions(+), 186 deletions(-) diff --git a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx index 9e9f1c2fb96cd6..4bc9a1fb853115 100644 --- a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx +++ b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx @@ -2,26 +2,26 @@ import { useCallback, useRef, useState } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; -import { Callout } from '@/mastodon/components/callout'; -import { FollowButton } from '@/mastodon/components/follow_button'; -import { openModal } from 'mastodon/actions/modal'; -import type { - ApiCollectionJSON, - CollectionAccountItem, -} from 'mastodon/api_types/collections'; +import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import { Account } from 'mastodon/components/account'; import { Button } from 'mastodon/components/button'; -import { DisplayName } from 'mastodon/components/display_name'; +import { Callout } from 'mastodon/components/callout'; +import { FollowButton } from 'mastodon/components/follow_button'; +import { + NumberFields, + NumberFieldsItem, +} from 'mastodon/components/number_fields'; +import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; import { Article, ItemList, } from 'mastodon/components/scrollable_list/components'; +import { ShortNumber } from 'mastodon/components/short_number'; import { useAccount } from 'mastodon/hooks/useAccount'; -import { useDismissible } from 'mastodon/hooks/useDismissible'; import { useRelationship } from 'mastodon/hooks/useRelationship'; import { me } from 'mastodon/initial_state'; -import { useAppDispatch } from 'mastodon/store'; +import { useConfirmRevoke } from './revoke_collection_inclusion_modal'; import classes from './styles.module.scss'; const messages = defineMessages({ @@ -31,28 +31,33 @@ const messages = defineMessages({ }, }); -const SimpleAuthorName: React.FC<{ id: string }> = ({ id }) => { - const account = useAccount(id); - return ; -}; - const AccountItem: React.FC<{ accountId: string | undefined; collectionOwnerId: string; + onRevoke: () => void; withBio?: boolean; withBorder?: boolean; -}> = ({ accountId, withBio = true, withBorder = true, collectionOwnerId }) => { +}> = ({ + accountId, + collectionOwnerId, + onRevoke, + withBio = true, + withBorder = true, +}) => { + const intl = useIntl(); + const account = useAccount(accountId); const relationship = useRelationship(accountId); - if (!accountId) { + if (!accountId || !account) { return null; } // When viewing your own collection, only show the Follow button // for accounts you're not following (anymore). // Otherwise, always show the follow button in its various states. + const isOwnAccount = accountId === me; const withoutButton = - accountId === me || + isOwnAccount || !relationship || (collectionOwnerId === me && (relationship.following || relationship.requested)); @@ -66,52 +71,55 @@ const AccountItem: React.FC<{ withBorder={false} withMenu={false} className={classes.accountItem} + extraAccountInfo={ + + + } + hint={intl.formatNumber(account.followers_count)} + > + + + + + } + hint={intl.formatNumber(account.statuses_count)} + > + + + + + } + > + + + + } /> {!withoutButton && } -
    - ); -}; - -const RevokeControls: React.FC<{ - collectionId: string; - collectionItem: CollectionAccountItem; -}> = ({ collectionId, collectionItem }) => { - const dispatch = useAppDispatch(); - - const confirmRevoke = useCallback(() => { - void dispatch( - openModal({ - modalType: 'REVOKE_COLLECTION_INCLUSION', - modalProps: { - collectionId, - collectionItemId: collectionItem.id, - }, - }), - ); - }, [collectionId, collectionItem.id, dispatch]); - - const { wasDismissed, dismiss } = useDismissible( - `collection-revoke-hint-${collectionItem.id}`, - ); - - if (wasDismissed) { - return null; - } - - return ( -
    - - + {isOwnAccount && ( + + )}
    ); }; @@ -159,46 +167,16 @@ const SensitiveScreen: React.FC<{ ); }; -/** - * Returns the collection's account items. If the current user's account - * is part of the collection, it will be returned separately. - */ -function getCollectionItems(collection: ApiCollectionJSON | undefined) { - if (!collection) - return { - currentUserInCollection: null, - items: [], - }; - - const { account_id, items } = collection; - - const isOwnCollection = account_id === me; - const currentUserIndex = items.findIndex( - (account) => account.account_id === me, - ); - - if (isOwnCollection || currentUserIndex === -1) { - return { - currentUserInCollection: null, - items, - }; - } else { - return { - currentUserInCollection: items.at(currentUserIndex) ?? null, - items: items.toSpliced(currentUserIndex, 1), - }; - } -} - export const CollectionAccountsList: React.FC<{ collection?: ApiCollectionJSON; isLoading: boolean; }> = ({ collection, isLoading }) => { const intl = useIntl(); + const confirmRevoke = useConfirmRevoke(collection); const listHeadingRef = useRef(null); const isOwnCollection = collection?.account_id === me; - const { items, currentUserInCollection } = getCollectionItems(collection); + const { items = [] } = collection ?? {}; return ( - {collection && currentUserInCollection ? ( - <> -

    - , - }} - /> -

    -
    - - -
    -

    - -

    - - ) : ( -

    - {collection ? ( - - ) : ( - - )} -

    - )} +

    + {collection ? ( + + ) : ( + + )} +

    {collection && ( - {items.map(({ account_id }, index, items) => ( + {items.map(({ account_id }, index) => (
    ))} diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index e9337eaed8f34a..683b6e1178bfc8 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -11,17 +11,20 @@ import { useAccountHandle } from '@/mastodon/components/display_name/default'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; +import { Callout } from 'mastodon/components/callout'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; +import { DisplayName } from 'mastodon/components/display_name'; import { IconButton } from 'mastodon/components/icon_button'; import { Scrollable } from 'mastodon/components/scrollable_list/components'; import { useAccount } from 'mastodon/hooks/useAccount'; -import { domain } from 'mastodon/initial_state'; +import { domain, me } from 'mastodon/initial_state'; import { fetchCollection } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; import { CollectionAccountsList } from './accounts_list'; import { CollectionMenu } from './collection_menu'; +import { useConfirmRevoke } from './revoke_collection_inclusion_modal'; import classes from './styles.module.scss'; const messages = defineMessages({ @@ -62,14 +65,54 @@ export const AuthorNote: React.FC<{ id: string }> = ({ id }) => { ); }; +export const RevokeControls: React.FC<{ + collection: ApiCollectionJSON; +}> = ({ collection }) => { + const authorAccount = useAccount(collection.account_id); + const confirmRevoke = useConfirmRevoke(collection); + + return ( + + } + primaryLabel={ + + } + onPrimary={confirmRevoke} + > + , + date: '{date}', // TODO: Data not yet provided by API + }} + /> + + ); +}; + const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({ collection, }) => { const intl = useIntl(); - const { name, description, tag, account_id } = collection; + const { name, description, tag, account_id, items } = collection; const dispatch = useAppDispatch(); const history = useHistory(); + const isOwnCollection = account_id === me; + const currentUserIndex = items.findIndex( + (account) => account.account_id === me, + ); + const isCurrentUserInCollection = !isOwnCollection && currentUserIndex > -1; + const handleShare = useCallback(() => { dispatch( openModal({ @@ -115,6 +158,7 @@ const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({
    {description &&

    {description}

    } + {isCurrentUserInCollection && } ); }; diff --git a/app/javascript/mastodon/features/collections/detail/revoke_collection_inclusion_modal.tsx b/app/javascript/mastodon/features/collections/detail/revoke_collection_inclusion_modal.tsx index c2c2bafe9dd2a5..a5fc887ff60db9 100644 --- a/app/javascript/mastodon/features/collections/detail/revoke_collection_inclusion_modal.tsx +++ b/app/javascript/mastodon/features/collections/detail/revoke_collection_inclusion_modal.tsx @@ -3,8 +3,11 @@ import { useCallback } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { showAlert } from 'mastodon/actions/alerts'; +import { openModal } from 'mastodon/actions/modal'; +import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import type { BaseConfirmationModalProps } from 'mastodon/features/ui/components/confirmation_modals/confirmation_modal'; import { ConfirmationModal } from 'mastodon/features/ui/components/confirmation_modals/confirmation_modal'; +import { me } from 'mastodon/initial_state'; import { revokeCollectionInclusion } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; @@ -24,6 +27,24 @@ const messages = defineMessages({ }, }); +export function useConfirmRevoke(collection?: ApiCollectionJSON) { + const dispatch = useAppDispatch(); + const { id, items = [] } = collection ?? {}; + const ownCollectionItemId = items.find((item) => item.account_id === me)?.id; + + return useCallback(() => { + void dispatch( + openModal({ + modalType: 'REVOKE_COLLECTION_INCLUSION', + modalProps: { + collectionId: id, + collectionItemId: ownCollectionItemId, + }, + }), + ); + }, [dispatch, id, ownCollectionItemId]); +} + export const RevokeCollectionInclusionModal: React.FC< { collectionId: string; diff --git a/app/javascript/mastodon/features/collections/detail/styles.module.scss b/app/javascript/mastodon/features/collections/detail/styles.module.scss index 62e2285294ae8b..54d421e037b2f0 100644 --- a/app/javascript/mastodon/features/collections/detail/styles.module.scss +++ b/app/javascript/mastodon/features/collections/detail/styles.module.scss @@ -1,4 +1,7 @@ .header { + display: flex; + flex-direction: column; + gap: 12px; padding: 24px; } @@ -49,7 +52,6 @@ .description { font-size: 15px; - margin-top: 12px; } .headerButtonWrapper { @@ -59,8 +61,14 @@ .iconButton { box-sizing: content-box; - padding: 5px; + padding: 7px; border-radius: 4px; + border: 1px solid var(--color-border-primary); + + svg { + width: 20px; + height: 20px; + } } .itemList { @@ -81,6 +89,18 @@ &[data-with-border='true'] { border-bottom: 1px solid var(--color-border-primary); } + + :global(.account__note) { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 3; + line-clamp: 3; + } + + // Hide 'No description provided' message added by `Account` component + :global(.account__note--missing) { + display: none; + } } .accountItem { @@ -93,26 +113,3 @@ flex-grow: 1; } - -.youWereAddedWrapper { - padding-bottom: 16px; -} - -.revokeControlWrapper { - display: flex; - flex-wrap: wrap; - align-items: center; - gap: 10px; - margin-bottom: 8px; - - :global(.button) { - min-width: 30%; - white-space: normal; - } - - --avatar-width: 46px; - - @container (width < 360px) { - --avatar-width: 35px; - } -} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index c0b5b53ed8ce6b..c77ffc6a91bdd3 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -72,6 +72,7 @@ "account.in_memoriam": "In Memoriam.", "account.joined_short": "Joined", "account.languages": "Change subscribed languages", + "account.last_active": "Last active", "account.link_verified_on": "Ownership of this link was checked on {date}", "account.locked_info": "This account privacy status is set to locked. The owner manually reviews who can follow them.", "account.media": "Media", @@ -372,15 +373,14 @@ "collections.create_collection": "Create collection", "collections.delete_collection": "Delete collection", "collections.description_length_hint": "100 characters limit", - "collections.detail.accept_inclusion": "Okay", "collections.detail.accounts_heading": "Accounts", + "collections.detail.author_added_you_on_date": "{author} added you on {date}", "collections.detail.loading": "Loading collection…", - "collections.detail.other_accounts_count": "{count, plural, one {# other account} other {# other accounts}}", "collections.detail.revoke_inclusion": "Remove me", "collections.detail.sensitive_content": "Sensitive content", "collections.detail.sensitive_note": "This collection contains accounts and content that may be sensitive to some users.", "collections.detail.share": "Share this collection", - "collections.detail.you_were_added_to_this_collection": "You were added to this collection", + "collections.detail.you_are_in_this_collection": "You're featured in this collection", "collections.edit_details": "Edit details", "collections.error_loading_collections": "There was an error when trying to load your collections.", "collections.hints.accounts_counter": "{count} / {max} accounts", From caf7c214537e5bd3a13a08a6f47efdfa93938ef5 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 2 Apr 2026 15:32:53 +0200 Subject: [PATCH 109/335] Make description optional in collection editor (#38536) --- app/javascript/mastodon/api_types/collections.ts | 2 +- app/javascript/mastodon/features/collections/editor/details.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/api_types/collections.ts b/app/javascript/mastodon/api_types/collections.ts index fae95875d1e3b3..3edaa64c95fcce 100644 --- a/app/javascript/mastodon/api_types/collections.ts +++ b/app/javascript/mastodon/api_types/collections.ts @@ -16,7 +16,7 @@ export interface ApiCollectionJSON { item_count: number; name: string; - description: string; + description: string | null; tag: ApiTagJSON | null; language: string | null; sensitive: boolean; diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index ce0019353d5c49..04a6ad1428b24c 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -182,7 +182,7 @@ export const CollectionDetails: React.FC = () => { /> Date: Thu, 2 Apr 2026 15:44:34 +0200 Subject: [PATCH 110/335] Profile redesign: Move and rearrange number fields (#38535) --- .../account_timeline/components/account_header.tsx | 4 ++-- .../account_timeline/components/number_fields.tsx | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index 90b0127e15d044..cdafd5a55ba1ce 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -169,6 +169,8 @@ export const AccountHeader: React.FC<{ + + {!isMe && !suspendedOrHidden && ( )} @@ -195,8 +197,6 @@ export const AccountHeader: React.FC<{ {!me && account.email_subscriptions && ( )} - - )} diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx index 385ba2d28abe27..414fd313a48da4 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx @@ -27,13 +27,6 @@ export const AccountNumberFields: FC<{ accountId: string }> = ({ return ( - } - hint={intl.formatNumber(account.statuses_count)} - > - - - @@ -54,6 +47,13 @@ export const AccountNumberFields: FC<{ accountId: string }> = ({ + } + hint={intl.formatNumber(account.statuses_count)} + > + + + From 954cc92a6d8e34c78200b8791efaaf603d6a881a Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 2 Apr 2026 15:47:22 +0200 Subject: [PATCH 111/335] Fix being unable to disable sound for quote update notification (#38537) --- app/javascript/mastodon/actions/notifications.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 558390b9cffac0..da0c5f110251a0 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -26,8 +26,10 @@ defineMessages({ export function updateNotifications(notification, intlMessages, intlLocale) { return (dispatch, getState) => { - const showAlert = getState().getIn(['settings', 'notifications', 'alerts', notification.type], true); - const playSound = getState().getIn(['settings', 'notifications', 'sounds', notification.type], true); + const filterType = notification.type === 'quoted_update' ? 'update' : notification.type; + + const showAlert = getState().getIn(['settings', 'notifications', 'alerts', filterType], true); + const playSound = getState().getIn(['settings', 'notifications', 'sounds', filterType], true); let filtered = false; From f90f1e3b75f5bb53716bf264a5957eab9e85f1d0 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 2 Apr 2026 15:53:47 +0200 Subject: [PATCH 112/335] Remove collections client-side feature flag (#38540) --- app/javascript/mastodon/features/collections/utils.ts | 10 ++-------- app/javascript/mastodon/utils/environment.ts | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/features/collections/utils.ts b/app/javascript/mastodon/features/collections/utils.ts index 616d0297a7441b..60eb5133cb240f 100644 --- a/app/javascript/mastodon/features/collections/utils.ts +++ b/app/javascript/mastodon/features/collections/utils.ts @@ -1,11 +1,5 @@ -import { - isClientFeatureEnabled, - isServerFeatureEnabled, -} from '@/mastodon/utils/environment'; +import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; export function areCollectionsEnabled() { - return ( - isClientFeatureEnabled('collections') && - isServerFeatureEnabled('collections') - ); + return isServerFeatureEnabled('collections'); } diff --git a/app/javascript/mastodon/utils/environment.ts b/app/javascript/mastodon/utils/environment.ts index ded0fe05bbeb3e..cdcb88d68b9e78 100644 --- a/app/javascript/mastodon/utils/environment.ts +++ b/app/javascript/mastodon/utils/environment.ts @@ -18,7 +18,7 @@ export function isServerFeatureEnabled(feature: ServerFeatures) { return initialState?.features.includes(feature) ?? false; } -type ClientFeatures = 'collections'; +type ClientFeatures = never; export function isClientFeatureEnabled(feature: ClientFeatures) { try { From 59299c69ffce78bd4f2207ed3a7eb9484bd042a8 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 2 Apr 2026 16:47:11 +0200 Subject: [PATCH 113/335] Profile redesign: Add alt to avatar and header (#38532) --- app/javascript/mastodon/api_types/accounts.ts | 2 ++ app/javascript/mastodon/components/avatar.tsx | 4 +++- .../features/account_timeline/components/account_header.tsx | 5 +++-- app/javascript/mastodon/models/account.ts | 2 ++ app/javascript/testing/factories.ts | 2 ++ 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/api_types/accounts.ts b/app/javascript/mastodon/api_types/accounts.ts index 0a5e847e8ea2bf..1c340c387a7788 100644 --- a/app/javascript/mastodon/api_types/accounts.ts +++ b/app/javascript/mastodon/api_types/accounts.ts @@ -37,6 +37,7 @@ export interface BaseApiAccountJSON { acct: string; avatar: string; avatar_static: string; + avatar_description: string; bot: boolean; created_at: string; discoverable?: boolean; @@ -50,6 +51,7 @@ export interface BaseApiAccountJSON { group: boolean; header: string; header_static: string; + header_description: string; id: string; last_status_at: string; locked: boolean; diff --git a/app/javascript/mastodon/components/avatar.tsx b/app/javascript/mastodon/components/avatar.tsx index ced733b5d717f0..e2da16703e0af3 100644 --- a/app/javascript/mastodon/components/avatar.tsx +++ b/app/javascript/mastodon/components/avatar.tsx @@ -13,6 +13,7 @@ interface Props { account: | Pick | undefined; // FIXME: remove `undefined` once we know for sure its always there + alt?: string; size?: number; style?: React.CSSProperties; inline?: boolean; @@ -25,6 +26,7 @@ interface Props { export const Avatar: React.FC = ({ account, + alt = '', animate = autoPlayGif, size = 20, inline = false, @@ -65,7 +67,7 @@ export const Avatar: React.FC = ({ style={style} > {src && !error && ( - + {alt} )} {counter && ( diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx index cdafd5a55ba1ce..e717a20c805fdd 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_header.tsx @@ -72,7 +72,7 @@ export const AccountHeader: React.FC<{ modalType: 'IMAGE', modalProps: { src: account.avatar, - alt: '', + alt: account.avatar_description, }, }), ); @@ -120,7 +120,7 @@ export const AccountHeader: React.FC<{ {!suspendedOrHidden && ( )} @@ -147,6 +147,7 @@ export const AccountHeader: React.FC<{ > diff --git a/app/javascript/mastodon/models/account.ts b/app/javascript/mastodon/models/account.ts index f13d1c68312b09..f2523cf3344bd1 100644 --- a/app/javascript/mastodon/models/account.ts +++ b/app/javascript/mastodon/models/account.ts @@ -62,6 +62,7 @@ export const accountDefaultValues: AccountShape = { acct: '', avatar: '', avatar_static: '', + avatar_description: '', bot: false, created_at: '', discoverable: false, @@ -78,6 +79,7 @@ export const accountDefaultValues: AccountShape = { group: false, header: '', header_static: '', + header_description: '', id: '', last_status_at: '', locked: false, diff --git a/app/javascript/testing/factories.ts b/app/javascript/testing/factories.ts index e345e08351a98c..8ac03ec2ad16d1 100644 --- a/app/javascript/testing/factories.ts +++ b/app/javascript/testing/factories.ts @@ -25,6 +25,7 @@ export const accountFactory: FactoryFunction = ({ acct: 'testuser', avatar: '/avatars/original/missing.png', avatar_static: '/avatars/original/missing.png', + avatar_description: '', username: 'testuser', display_name: 'Test User', bot: false, @@ -42,6 +43,7 @@ export const accountFactory: FactoryFunction = ({ group: false, header: '/header.png', header_static: '/header_static.png', + header_description: '', indexable: true, last_status_at: '2023-01-01', locked: false, From 7e6813e95c8e49a8f5ddc88af5a8c2be5dd5f06c Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 2 Apr 2026 16:56:03 +0200 Subject: [PATCH 114/335] Use compact buttons in collection account list (#38543) --- .../mastodon/features/collections/detail/accounts_list.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx index 4bc9a1fb853115..4a30f99dd6acd6 100644 --- a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx +++ b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx @@ -111,9 +111,9 @@ const AccountItem: React.FC<{ } /> - {!withoutButton && } + {!withoutButton && } {isOwnAccount && ( - )} diff --git a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss index 84f102cf060c00..0a4c5ebea8596b 100644 --- a/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/redesign.module.scss @@ -43,30 +43,22 @@ color: var(--color-text-secondary); } -.username { +.handleHelpButton { display: flex; - font-size: 13px; - color: var(--color-text-secondary); - align-items: center; - user-select: all; + gap: 2px; + padding: 0; margin-top: 4px; -} - -.handleHelpButton { + align-items: center; appearance: none; - border: none; background: none; - padding: 0; - color: inherit; - font-size: 1em; - margin-left: 2px; - width: 16px; - height: 16px; + border: none; + color: var(--color-text-secondary); + font-size: 13px; transition: color 0.2s ease-in-out; > svg { - width: 100%; - height: 100%; + width: 16px; + height: 16px; } &:hover, @@ -84,6 +76,10 @@ max-width: 400px; box-sizing: border-box; + [data-color-scheme='dark'] & { + border: 1px solid var(--color-border-primary); + } + > h3 { font-size: 17px; font-weight: 600; @@ -101,15 +97,15 @@ &:first-child { margin-bottom: 12px; } - } - svg { - background: var(--color-bg-brand-softest); - width: 28px; - height: 28px; - padding: 5px; - border-radius: 9999px; - box-sizing: border-box; + > svg { + background: var(--color-bg-brand-softest); + width: 28px; + height: 28px; + padding: 5px; + border-radius: 9999px; + box-sizing: border-box; + } } strong { @@ -132,6 +128,26 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; } } +.handleCopy { + border: 1px solid var(--color-border-primary); + border-radius: 8px; + box-sizing: border-box; + padding: 4px 8px; + background-color: var(--color-bg-primary); + color: var(--color-text-primary); + font-size: 13px; + transition: + color 0.2s ease-in-out, + background-color 0.2s ease-in-out; + margin-top: 12px; + + &:active, + &:focus, + &:hover { + background-color: var(--color-bg-brand-softest); + } +} + .buttonsMobile { position: sticky; bottom: var(--mobile-bottom-nav-height); @@ -336,7 +352,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; .tabs { display: flex; - gap: 12px; + gap: 16px; padding: 0 16px; @container (width < 500px) { @@ -350,7 +366,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; display: block; font-size: 15px; font-weight: 500; - padding: 18px 4px; + padding: 18px 0; text-decoration: none; color: var(--color-text-primary); border-radius: 0; diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index c77ffc6a91bdd3..7299b4dfb7a4ad 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -102,6 +102,7 @@ "account.muted": "Muted", "account.muting": "Muting", "account.mutual": "You follow each other", + "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", "account.name.help.footer": "Just like you can send emails to people using different email clients, you can interact with people on other Mastodon servers – and with anyone on other social apps powered by the same set of rules as Mastodon uses (the ActivityPub protocol).", From 85fb9218a79955cc3d17229329a6b3ff9f6608ac Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 7 Apr 2026 14:05:06 +0200 Subject: [PATCH 131/335] Profile editing: Fix regression with adding tags (#38580) --- .../account_edit/components/tag_search.tsx | 2 +- .../account_timeline/v2/tags_suggestions.tsx | 15 +++++++++++---- app/javascript/mastodon/hooks/useSearchTags.ts | 4 ++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/components/tag_search.tsx b/app/javascript/mastodon/features/account_edit/components/tag_search.tsx index 3b423c0735613e..2dd17c2a7284cf 100644 --- a/app/javascript/mastodon/features/account_edit/components/tag_search.tsx +++ b/app/javascript/mastodon/features/account_edit/components/tag_search.tsx @@ -65,7 +65,7 @@ export const AccountEditTagSearch: FC = () => { value={query} onChange={handleSearchChange} placeholder={inputLabel} - items={suggestedTags as TagSearchResult[]} + items={suggestedTags} isLoading={isLoading} renderItem={renderItem} onSelectItem={handleSelect} diff --git a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx b/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx index e7f2d19cbedc78..f3ac52ca3bca61 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx +++ b/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx @@ -14,20 +14,27 @@ import { fetchSuggestedTags, addFeaturedTags, } from '@/mastodon/reducers/slices/profile_edit'; -import { useAppSelector, useAppDispatch } from '@/mastodon/store'; +import { + useAppSelector, + useAppDispatch, + createAppSelector, +} from '@/mastodon/store'; import classes from './styles.module.scss'; const MAX_SUGGESTED_TAGS = 3; +const selectSuggestedTags = createAppSelector( + [(state) => state.profileEdit.tagSuggestions], + (tagSuggestions) => tagSuggestions?.slice(0, MAX_SUGGESTED_TAGS), +); + export const TagSuggestions: FC = () => { const { dismiss, wasDismissed } = useDismissible( 'profile/featured_tag_suggestions', ); - const suggestedTags = useAppSelector((state) => - state.profileEdit.tagSuggestions?.slice(0, MAX_SUGGESTED_TAGS), - ); + const suggestedTags = useAppSelector(selectSuggestedTags); const existingTagCount = useAppSelector( (state) => state.profileEdit.profile?.featuredTags.length, ); diff --git a/app/javascript/mastodon/hooks/useSearchTags.ts b/app/javascript/mastodon/hooks/useSearchTags.ts index 2f029b07e836ca..78fc85ed511d21 100644 --- a/app/javascript/mastodon/hooks/useSearchTags.ts +++ b/app/javascript/mastodon/hooks/useSearchTags.ts @@ -91,8 +91,8 @@ export function useSearchTags({ // Add dedicated item for adding the current query const tags = useMemo(() => { const trimmedQuery = query ? trimHashFromStart(query.trim()) : ''; - if (!trimmedQuery || !fetchedTags.length) { - return fetchedTags; + if (!trimmedQuery) { + return fetchedTags as TagSearchResult[]; } const results: TagSearchResult[] = [...fetchedTags]; // Make array mutable From 31d2885d959fc5eb8e45e0d6e6bfd9485615d05e Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 7 Apr 2026 14:14:50 +0200 Subject: [PATCH 132/335] Profile editing: Adds bot toggle (#38581) --- .../mastodon/features/account_edit/index.tsx | 36 +++++++++++++++++-- app/javascript/mastodon/locales/en.json | 3 ++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/index.tsx b/app/javascript/mastodon/features/account_edit/index.tsx index 2e56a1b8785a7a..a119e8e61da216 100644 --- a/app/javascript/mastodon/features/account_edit/index.tsx +++ b/app/javascript/mastodon/features/account_edit/index.tsx @@ -13,11 +13,15 @@ import { Button } from '@/mastodon/components/button'; import { DismissibleCallout } from '@/mastodon/components/callout/dismissible'; import { CustomEmojiProvider } from '@/mastodon/components/emoji/context'; import { EmojiHTML } from '@/mastodon/components/emoji/html'; +import { ToggleField } from '@/mastodon/components/form_fields'; import { useElementHandledLink } from '@/mastodon/components/status/handled_link'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; import { autoPlayGif } from '@/mastodon/initial_state'; -import { fetchProfile } from '@/mastodon/reducers/slices/profile_edit'; +import { + fetchProfile, + patchProfile, +} from '@/mastodon/reducers/slices/profile_edit'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; import { AccountEditColumn, AccountEditEmptyColumn } from './components/column'; @@ -108,6 +112,10 @@ export const messages = defineMessages({ id: 'account_edit.profile_tab.subtitle', defaultMessage: 'Customize the tabs on your profile and what they display.', }, + advancedSettingsTitle: { + id: 'account_edit.advanced_settings.title', + defaultMessage: 'Advanced settings', + }, }); export const AccountEdit: FC = () => { @@ -117,7 +125,7 @@ export const AccountEdit: FC = () => { const dispatch = useAppDispatch(); - const { profile } = useAppSelector((state) => state.profileEdit); + const { profile, isPending } = useAppSelector((state) => state.profileEdit); useEffect(() => { void dispatch(fetchProfile()); }, [dispatch]); @@ -162,6 +170,10 @@ export const AccountEdit: FC = () => { history.push('/profile/featured_tags'); }, [history]); + const handleBotToggle = useCallback(() => { + void dispatch(patchProfile({ bot: !profile?.bot })); + }, [dispatch, profile?.bot]); + // Normally we would use the account emoji, but we want all custom emojis to be available to render after editing. const emojis = useAppSelector((state) => state.custom_emojis); const htmlHandlers = useElementHandledLink({ @@ -327,6 +339,26 @@ export const AccountEdit: FC = () => { } /> + + + + } + hint={ + + } + /> + ); diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 7299b4dfb7a4ad..018364174d8399 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -139,6 +139,9 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications_short": "Unmute notifications", "account.unmute_short": "Unmute", + "account_edit.advanced_settings.bot_hint": "Signal to others that the account mainly performs automated actions and might not be monitored", + "account_edit.advanced_settings.bot_label": "Automated account", + "account_edit.advanced_settings.title": "Advanced settings", "account_edit.bio.add_label": "Add bio", "account_edit.bio.edit_label": "Edit bio", "account_edit.bio.placeholder": "Add a short introduction to help others identify you.", From 8e212fca5910a199166fac7ffb2bcbecc42ab22e Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 7 Apr 2026 15:17:07 +0200 Subject: [PATCH 133/335] Fix importing emoji loader statically inside worker (#38541) --- app/javascript/mastodon/features/emoji/database.ts | 3 ++- app/javascript/mastodon/features/emoji/worker.ts | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/emoji/database.ts b/app/javascript/mastodon/features/emoji/database.ts index 8dbd22c71bacbd..79845b02e7ee9d 100644 --- a/app/javascript/mastodon/features/emoji/database.ts +++ b/app/javascript/mastodon/features/emoji/database.ts @@ -302,7 +302,8 @@ async function toLoadedLocale(localeString: string) { } if (!loadedLocales.has(locale)) { log('Locale %s not loaded, importing...', locale); - const { importEmojiData } = await import('./loader'); + // Ignore the INEFFECTIVE_DYNAMIC_IMPORT Vite warning, since the static import location is inside an inlined web worker. + const { importEmojiData } = await import(/* @vite-ignore */ './loader'); await importEmojiData(locale); return locale; } diff --git a/app/javascript/mastodon/features/emoji/worker.ts b/app/javascript/mastodon/features/emoji/worker.ts index ce8eea09abd776..5602577dbe9ace 100644 --- a/app/javascript/mastodon/features/emoji/worker.ts +++ b/app/javascript/mastodon/features/emoji/worker.ts @@ -1,4 +1,9 @@ import { EMOJI_DB_NAME_SHORTCODES, EMOJI_TYPE_CUSTOM } from './constants'; +import { + importCustomEmojiData, + importEmojiData, + importLegacyShortcodes, +} from './loader'; addEventListener('message', handleMessage); self.postMessage('ready'); // After the worker is ready, notify the main thread @@ -11,8 +16,6 @@ function handleMessage(event: MessageEvent<{ locale: string }>) { } async function loadData(locale: string) { - const { importCustomEmojiData, importEmojiData, importLegacyShortcodes } = - await import('./loader'); let importCount: number | undefined; if (locale === EMOJI_TYPE_CUSTOM) { importCount = (await importCustomEmojiData())?.length; From 927c7d747f82fa10988f2675568567ca4c38a2bf Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 7 Apr 2026 15:31:59 +0200 Subject: [PATCH 134/335] Change design of e-mail subscription form (#38582) Co-authored-by: diondiondion --- .../components/account_subscription_form.tsx | 45 ++++++------------- .../components/redesign.module.scss | 11 +++-- app/javascript/mastodon/locales/en.json | 5 +-- 3 files changed, 24 insertions(+), 37 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx b/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx index d183aa1cb30769..0013a4bc142c5a 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx @@ -12,13 +12,10 @@ import type { ValidationErrorResponse, ValidationError, } from 'mastodon/api_types/errors'; -import { A11yLiveRegion } from 'mastodon/components/a11y_live_region'; import { Button } from 'mastodon/components/button'; -import { CalloutInline } from 'mastodon/components/callout_inline'; import { DisplayName } from 'mastodon/components/display_name'; import type { FieldStatus } from 'mastodon/components/form_fields'; -import formFieldClasses from 'mastodon/components/form_fields/form_field_wrapper.module.scss'; -import { TextInput } from 'mastodon/components/form_fields/text_input_field'; +import { TextInputField } from 'mastodon/components/form_fields/text_input_field'; import { useAppSelector } from 'mastodon/store'; import classes from './redesign.module.scss'; @@ -34,7 +31,7 @@ const messages = defineMessages({ }, email: { id: 'email_subscriptions.email', - defaultMessage: 'Email address', + defaultMessage: 'Email', }, }); @@ -159,33 +156,19 @@ export const AccountSubscriptionForm: React.FC<{ accountId: string }> = ({ }} /> -
    -
    - - - - {errors.email && ( - - )} - -
    + - )} -
    - ); -}; - const SensitiveScreen: React.FC<{ sensitive: boolean | undefined; focusTargetRef: React.RefObject; @@ -158,6 +60,7 @@ const SensitiveScreen: React.FC<{ /> } onPrimary={showAnyway} + className={classes.sensitiveScreen} > (null); const isOwnCollection = collection?.account_id === me; - const { items = [] } = collection ?? {}; + const { items = [], account_id: collectionOwnerId } = collection ?? {}; + + const renderAccountItemButton = useCallback( + ({ relationship, accountId }: RenderButtonOptions) => { + // When viewing your own collection, only show the Follow button + // for accounts you're not following anymore. + const withoutButton = + !relationship || + (collectionOwnerId === me && + (relationship.following || relationship.requested)); + + if (withoutButton) return null; + + if (accountId === me) { + return ( + + ); + } + + return ; + }, + [collectionOwnerId, confirmRevoke], + ); return ( - + <>

    - {items.map(({ account_id }, index) => ( -
    - -
    - ))} + + {items.map(({ account_id }, index) => ( +
    + +
    + ))} +
    )} - + ); }; diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index 683b6e1178bfc8..70422f911464ea 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -11,6 +11,7 @@ import { useAccountHandle } from '@/mastodon/components/display_name/default'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; +import { Badge } from 'mastodon/components/badge'; import { Callout } from 'mastodon/components/callout'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; @@ -138,7 +139,7 @@ const CollectionHeader: React.FC<{ collection: ApiCollectionJSON }> = ({
    - {tag && #{tag.name}} + {tag && }

    {name}

    diff --git a/app/javascript/mastodon/features/collections/detail/styles.module.scss b/app/javascript/mastodon/features/collections/detail/styles.module.scss index 54d421e037b2f0..da972334ff1b89 100644 --- a/app/javascript/mastodon/features/collections/detail/styles.module.scss +++ b/app/javascript/mastodon/features/collections/detail/styles.module.scss @@ -2,7 +2,8 @@ display: flex; flex-direction: column; gap: 12px; - padding: 24px; + padding: 16px; + padding-bottom: 24px; } .titleWithMenu { @@ -20,15 +21,6 @@ min-width: 0; } -.tag { - display: inline-block; - padding: 4px; - font-size: 13px; - font-weight: 500; - color: var(--color-text-secondary); - background: var(--color-bg-secondary); -} - .name { font-size: 22px; font-weight: 500; @@ -71,45 +63,12 @@ } } -.itemList { - padding-inline: 24px; +.sensitiveScreen { + margin: 16px; } .columnSubheading { - padding-bottom: 12px; + padding-inline: 16px; font-size: 15px; font-weight: 500; } - -.accountItemWrapper { - display: flex; - align-items: start; - padding-block: 16px; - - &[data-with-border='true'] { - border-bottom: 1px solid var(--color-border-primary); - } - - :global(.account__note) { - display: -webkit-box; - -webkit-box-orient: vertical; - -webkit-line-clamp: 3; - line-clamp: 3; - } - - // Hide 'No description provided' message added by `Account` component - :global(.account__note--missing) { - display: none; - } -} - -.accountItem { - --account-name-size: 15px; - --account-handle-color: var(--color-text-secondary); - --account-handle-size: 13px; - --account-bio-color: var(--color-text-primary); - --account-bio-size: 13px; - --account-outer-spacing: 0; - - flex-grow: 1; -} diff --git a/app/javascript/mastodon/features/followers/components/list.tsx b/app/javascript/mastodon/features/followers/components/list.tsx index 8134a96ece7e48..734bfeac0e154a 100644 --- a/app/javascript/mastodon/features/followers/components/list.tsx +++ b/app/javascript/mastodon/features/followers/components/list.tsx @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import type { FC, ReactNode } from 'react'; -import { Account } from '@/mastodon/components/account'; +import { AccountListItem } from '@/mastodon/components/account_list_item'; import { Column } from '@/mastodon/components/column'; import { ColumnBackButton } from '@/mastodon/components/column_back_button'; import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; @@ -53,12 +53,12 @@ export const AccountList: FC = ({ } const children = list?.items.map((followerId) => ( - + )) ?? []; if (prependAccountId) { children.unshift( - , + , ); } return children; diff --git a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx index eb61183834f0d8..d7c463c5cc3cd8 100644 --- a/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx +++ b/app/javascript/mastodon/features/home_timeline/components/inline_follow_suggestions.tsx @@ -16,12 +16,12 @@ import { } from 'mastodon/actions/suggestions'; import type { ApiSuggestionSourceJSON } from 'mastodon/api_types/suggestions'; import { Avatar } from 'mastodon/components/avatar'; +import { Badge, VerifiedBadge } from 'mastodon/components/badge'; import { DisplayName } from 'mastodon/components/display_name'; import { FollowButton } from 'mastodon/components/follow_button'; import { Icon } from 'mastodon/components/icon'; import { IconButton } from 'mastodon/components/icon_button'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; -import { VerifiedBadge } from 'mastodon/components/verified_badge'; import { domain } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; @@ -110,13 +110,12 @@ const Source: React.FC<{ id: ApiSuggestionSourceJSON }> = ({ id }) => { } return ( -
    - - {label} -
    + label={label} + icon={} + /> ); }; diff --git a/app/javascript/mastodon/features/lists/members.tsx b/app/javascript/mastodon/features/lists/members.tsx index 5aa8279c052e1b..dd4cf3171da6de 100644 --- a/app/javascript/mastodon/features/lists/members.tsx +++ b/app/javascript/mastodon/features/lists/members.tsx @@ -19,6 +19,7 @@ import { apiRemoveAccountFromList, } from 'mastodon/api/lists'; import { Avatar } from 'mastodon/components/avatar'; +import { VerifiedBadge } from 'mastodon/components/badge'; import { Button } from 'mastodon/components/button'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; @@ -27,7 +28,6 @@ import { FollowersCounter } from 'mastodon/components/counters'; import { DisplayName } from 'mastodon/components/display_name'; import ScrollableList from 'mastodon/components/scrollable_list'; import { ShortNumber } from 'mastodon/components/short_number'; -import { VerifiedBadge } from 'mastodon/components/verified_badge'; import { useSearchAccounts } from 'mastodon/hooks/useSearchAccounts'; import { me } from 'mastodon/initial_state'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index c84ec96ac7c813..cad0dafef81f38 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -8688,20 +8688,6 @@ noscript { } } } - - &__familiar-followers { - display: flex; - align-items: center; - gap: 10px; - margin-block: 16px; - color: var(--color-text-secondary); - - a:any-link { - font-weight: 500; - text-decoration: none; - color: var(--color-text-primary); - } - } } .account__contents { @@ -8711,6 +8697,7 @@ noscript { .account__details { display: flex; flex-wrap: wrap; + align-items: center; column-gap: 1em; } @@ -10679,11 +10666,6 @@ noscript { } &__source { - display: inline-flex; - align-items: center; - max-width: 100%; - color: var(--color-text-tertiary); - gap: 4px; overflow: hidden; white-space: nowrap; cursor: help; @@ -10692,11 +10674,6 @@ noscript { overflow: hidden; text-overflow: ellipsis; } - - .icon { - width: 16px; - height: 16px; - } } } @@ -10722,11 +10699,6 @@ noscript { } } - .verified-badge { - font-size: 14px; - max-width: 100%; - } - .button { display: block; width: 100%; From 28b04ec24e3f7325c02010ac4c322791b62772ec Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 8 Apr 2026 10:46:37 -0400 Subject: [PATCH 151/335] Update sidekiq to version 8.1.2 (#38134) --- Gemfile.lock | 12 ++++++------ spec/rails_helper.rb | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cafdda01913b92..15a40835ffe76a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -816,12 +816,12 @@ GEM securerandom (0.4.1) shoulda-matchers (7.0.1) activesupport (>= 7.1) - sidekiq (8.0.10) - connection_pool (>= 2.5.0) - json (>= 2.9.0) - logger (>= 1.6.2) - rack (>= 3.1.0) - redis-client (>= 0.23.2) + sidekiq (8.1.2) + connection_pool (>= 3.0.0) + json (>= 2.16.0) + logger (>= 1.7.0) + rack (>= 3.2.0) + redis-client (>= 0.26.0) sidekiq-bulk (0.2.0) sidekiq sidekiq-scheduler (6.0.1) diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 31487cc3ef2ede..3e11cc6dfc085f 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -131,9 +131,9 @@ def sign_in(resource, _deprecated = nil, scope: nil) config.around do |example| if example.metadata[:inline_jobs] == true - Sidekiq::Testing.inline! + Sidekiq.testing!(:inline) else - Sidekiq::Testing.fake! + Sidekiq.testing!(:fake) end example.run end From ba9eabccbfeb4be9168ef6a5c17670deabab6ffd Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 8 Apr 2026 18:01:37 +0200 Subject: [PATCH 152/335] Fix no notification being created when account is added to collection on creation (#38611) --- app/models/collection_item.rb | 4 ++++ app/services/create_collection_service.rb | 7 +++++++ spec/services/create_collection_service_spec.rb | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/app/models/collection_item.rb b/app/models/collection_item.rb index f7067fb2fcf35c..8877f3f8da2709 100644 --- a/app/models/collection_item.rb +++ b/app/models/collection_item.rb @@ -47,6 +47,10 @@ def revoke! update!(state: :revoked) end + def with_local_account? + account&.local? + end + def local_item_with_remote_account? local? && account&.remote? end diff --git a/app/services/create_collection_service.rb b/app/services/create_collection_service.rb index e38bddebbae1bc..1b94e41f44e7b6 100644 --- a/app/services/create_collection_service.rb +++ b/app/services/create_collection_service.rb @@ -9,6 +9,7 @@ def call(params, account) @collection.save! + notify_local_users distribute_add_activity distribute_feature_request_activities @@ -39,6 +40,12 @@ def build_items end end + def notify_local_users + @collection.collection_items.select(&:with_local_account?).each do |collection_item| + LocalNotificationWorker.perform_async(@account.id, collection_item.id, collection_item.class.name, 'added_to_collection') + end + end + def activity_json ActiveModelSerializers::SerializableResource.new(@collection, serializer: ActivityPub::AddFeaturedCollectionSerializer, adapter: ActivityPub::Adapter).to_json end diff --git a/spec/services/create_collection_service_spec.rb b/spec/services/create_collection_service_spec.rb index ded9d4d567faaa..1cca49764f393e 100644 --- a/spec/services/create_collection_service_spec.rb +++ b/spec/services/create_collection_service_spec.rb @@ -62,6 +62,16 @@ end end + context 'when some accounts are local' do + it 'schedules notifications' do + subject.call(params, author) + + expect(LocalNotificationWorker) + .to have_enqueued_sidekiq_job + .with(author.id, anything, 'CollectionItem', 'added_to_collection') + end + end + context 'when some accounts are remote' do let(:accounts) { Fabricate.times(2, :remote_account, feature_approval_policy: (0b10 << 16)) } From 97ba08113d4877fb2cfe38561fc41b057d07fb21 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 8 Apr 2026 18:03:24 +0200 Subject: [PATCH 153/335] Fix being able to quote someone you blocked (#38608) --- app/policies/status_policy.rb | 3 +- spec/requests/api/v1/statuses_spec.rb | 50 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb index 8cd011042f49de..0ec4a03a355048 100644 --- a/app/policies/status_policy.rb +++ b/app/policies/status_policy.rb @@ -13,9 +13,8 @@ def show? end end - # This is about requesting a quote post, not validating it def quote? - show? && record.quote_policy_for_account(current_account) != :denied + show? && !blocking_author? && record.quote_policy_for_account(current_account) != :denied end def reblog? diff --git a/spec/requests/api/v1/statuses_spec.rb b/spec/requests/api/v1/statuses_spec.rb index f9845ada7e3df1..82ad845185b774 100644 --- a/spec/requests/api/v1/statuses_spec.rb +++ b/spec/requests/api/v1/statuses_spec.rb @@ -317,6 +317,56 @@ end end + context 'with a quote in an unlisted message' do + let!(:quoted_status) { Fabricate(:status, quote_approval_policy: InteractionPolicy::POLICY_FLAGS[:public] << 16) } + let(:params) do + { + status: 'Hello, this is a quote', + quoted_status_id: quoted_status.id, + visibility: 'unlisted', + } + end + + it 'returns a quote post, as well as rate limit headers', :aggregate_failures do + expect { subject }.to change(user.account.statuses, :count).by(1) + + expect(response).to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + expect(response.parsed_body[:quote]).to be_present + expect(response.headers['X-RateLimit-Limit']).to eq RateLimiter::FAMILIES[:statuses][:limit].to_s + expect(response.headers['X-RateLimit-Remaining']).to eq (RateLimiter::FAMILIES[:statuses][:limit] - 1).to_s + end + + context 'when the quoter is blocked by the quotee' do + before do + quoted_status.account.block!(user.account) + end + + it 'returns an error and does not create a post', :aggregate_failures do + expect { subject }.to_not change(user.account.statuses, :count) + + expect(response).to have_http_status(404) + expect(response.content_type) + .to start_with('application/json') + end + end + + context 'when the quotee is blocked by the quoter' do + before do + user.account.block!(quoted_status.account) + end + + it 'returns an error and does not create a post', :aggregate_failures do + expect { subject }.to_not change(user.account.statuses, :count) + + expect(response).to have_http_status(404) + expect(response.content_type) + .to start_with('application/json') + end + end + end + context 'with a quote of a reblog' do let(:quoted_status) { Fabricate(:status, quote_approval_policy: InteractionPolicy::POLICY_FLAGS[:public] << 16) } let(:reblog) { Fabricate(:status, reblog: quoted_status) } From 4ad54b279d3b6f4a212e0f79ef7fff83aabaa3e8 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 8 Apr 2026 18:03:35 +0200 Subject: [PATCH 154/335] Add ability to search for a collection by URL (#38588) --- app/models/search.rb | 2 +- app/serializers/rest/search_serializer.rb | 1 + ...etch_remote_featured_collection_service.rb | 8 +++- app/services/fetch_resource_service.rb | 2 +- app/services/resolve_url_service.rb | 16 +++++++ app/services/search_service.rb | 2 +- spec/services/resolve_url_service_spec.rb | 43 +++++++++++++++++++ spec/services/search_service_spec.rb | 2 +- 8 files changed, 70 insertions(+), 6 deletions(-) diff --git a/app/models/search.rb b/app/models/search.rb index 676c2a7f8e881f..66c9173e028056 100644 --- a/app/models/search.rb +++ b/app/models/search.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true class Search < ActiveModelSerializers::Model - attributes :accounts, :statuses, :hashtags + attributes :accounts, :statuses, :hashtags, :collections end diff --git a/app/serializers/rest/search_serializer.rb b/app/serializers/rest/search_serializer.rb index ee9b421eb223da..8141a4c69ce4b2 100644 --- a/app/serializers/rest/search_serializer.rb +++ b/app/serializers/rest/search_serializer.rb @@ -4,4 +4,5 @@ class REST::SearchSerializer < ActiveModel::Serializer has_many :accounts, serializer: REST::AccountSerializer has_many :statuses, serializer: REST::StatusSerializer has_many :hashtags, serializer: REST::TagSerializer + has_many :collections, serializer: REST::CollectionSerializer end diff --git a/app/services/activitypub/fetch_remote_featured_collection_service.rb b/app/services/activitypub/fetch_remote_featured_collection_service.rb index babad143e1751a..968dc6811eceb0 100644 --- a/app/services/activitypub/fetch_remote_featured_collection_service.rb +++ b/app/services/activitypub/fetch_remote_featured_collection_service.rb @@ -3,8 +3,12 @@ class ActivityPub::FetchRemoteFeaturedCollectionService < BaseService include JsonLdHelper - def call(uri, request_id: nil, on_behalf_of: nil) - json = fetch_resource(uri, true, on_behalf_of) + def call(uri, request_id: nil, prefetched_body: nil, on_behalf_of: nil) + json = if prefetched_body.nil? + fetch_resource(uri, true, on_behalf_of) + else + body_to_json(prefetched_body, compare_id: uri) + end return unless supported_context?(json) return unless json['type'] == 'FeaturedCollection' diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb index 514c838d6483c1..eb3d000a1d2bb8 100644 --- a/app/services/fetch_resource_service.rb +++ b/app/services/fetch_resource_service.rb @@ -63,7 +63,7 @@ def process_response(response, terminal: false) end def expected_type?(json) - equals_or_includes_any?(json['type'], ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES) + equals_or_includes_any?(json['type'], ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES + %w(FeaturedCollection)) end def process_html(response) diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb index 899f586b819aa0..9a136439b085a3 100644 --- a/app/services/resolve_url_service.rb +++ b/app/services/resolve_url_service.rb @@ -28,6 +28,10 @@ def process_url status = FetchRemoteStatusService.new.call(resource_url, prefetched_body: body) authorize_with @on_behalf_of, status, :show? unless status.nil? status + elsif type == 'FeaturedCollection' && Mastodon::Feature.collections_enabled? + collection = ActivityPub::FetchRemoteFeaturedCollectionService.new.call(resource_url, prefetched_body: body) + authorize_with @on_behalf_of, collection, :show? unless collection.nil? + collection end end @@ -111,9 +115,21 @@ def process_local_url Account.find_remote(username, domain) end + when 'collections' + return unless recognized_params[:action] == 'show' + + check_collection(Collection.find_by(id: recognized_params[:id])) end end + def check_collection(collection) + return if collection.nil? + + authorize_with @on_behalf_of, collection, :show? + rescue Mastodon::NotPermittedError + nil + end + def check_local_status(status) return if status.nil? diff --git a/app/services/search_service.rb b/app/services/search_service.rb index ffe380c2e0d04f..fd5a186cd3b530 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -64,7 +64,7 @@ def perform_hashtags_search! end def default_results - { accounts: [], hashtags: [], statuses: [] } + { accounts: [], hashtags: [], statuses: [], collections: [] } end def url_query? diff --git a/spec/services/resolve_url_service_spec.rb b/spec/services/resolve_url_service_spec.rb index eaf00c1ed84cd2..6174d8cac9b0aa 100644 --- a/spec/services/resolve_url_service_spec.rb +++ b/spec/services/resolve_url_service_spec.rb @@ -30,6 +30,49 @@ expect(subject.call(url)).to eq known_account end + context 'when searching for a remote collection', feature: :collections do + let(:account) { Fabricate(:account) } + let(:collection_account) { Fabricate(:account, domain: 'example.com', protocol: :activitypub) } + + let(:uri) { 'https://example.com/featured_collections/1' } + + let(:payload) do + { + '@context' => 'https://www.w3.org/ns/activitystreams', + 'id' => uri, + 'type' => 'FeaturedCollection', + 'name' => 'Incredible people', + 'summary' => 'These are really amazing', + 'attributedTo' => collection_account.uri, + 'sensitive' => false, + 'discoverable' => true, + 'totalItems' => 0, + } + end + + before do + stub_request(:get, uri).to_return(status: 200, body: payload.to_json, headers: { 'Content-Type': 'application/activity+json' }) + end + + it 'returns the collection' do + expect(subject.call(uri, on_behalf_of: account)) + .to be_a(Collection) + .and have_attributes( + uri: uri + ) + end + end + + context 'when searching for a local collection', feature: :collections do + let(:account) { Fabricate(:account) } + let(:collection) { Fabricate(:collection) } + + it 'returns the collection' do + expect(subject.call(ActivityPub::TagManager.instance.uri_for(collection), on_behalf_of: account)) + .to eq(collection) + end + end + context 'when searching for a remote private status' do let(:account) { Fabricate(:account) } let(:poster) { Fabricate(:account, domain: 'example.com') } diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 3260addb319e99..07aa06151869ec 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -86,6 +86,6 @@ end def empty_results - { accounts: [], hashtags: [], statuses: [] } + { accounts: [], hashtags: [], statuses: [], collections: [] } end end From 66fdd3ae65e13349fbc0b2818d4b91a389075553 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 8 Apr 2026 18:40:51 +0200 Subject: [PATCH 155/335] Fix serialization of `added_to_collection` notifications (#38612) --- app/models/notification.rb | 9 +++++++++ app/models/notification_group.rb | 1 + app/serializers/rest/notification_group_serializer.rb | 2 +- app/serializers/rest/notification_serializer.rb | 2 +- 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/notification.rb b/app/models/notification.rb index 19b057108ed2a4..a78db0281cf0e4 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -147,6 +147,15 @@ def target_status end end + def target_collection + case type + when :added_to_collection + collection_item&.collection + when :collection_update + collection + end + end + class << self def browserable(types: [], exclude_types: [], from_account_id: nil, include_filtered: false) requested_types = if types.empty? diff --git a/app/models/notification_group.rb b/app/models/notification_group.rb index bf790bf7cd0ef2..1d4353644362dd 100644 --- a/app/models/notification_group.rb +++ b/app/models/notification_group.rb @@ -48,6 +48,7 @@ def self.from_notifications(notifications, pagination_range: nil, grouped_types: delegate :type, :target_status, + :target_collection, :report, :account_relationship_severance_event, :account_warning, diff --git a/app/serializers/rest/notification_group_serializer.rb b/app/serializers/rest/notification_group_serializer.rb index 6089a2446ac450..3f95d78fc42840 100644 --- a/app/serializers/rest/notification_group_serializer.rb +++ b/app/serializers/rest/notification_group_serializer.rb @@ -14,7 +14,7 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer belongs_to :generated_annual_report, key: :annual_report, if: :annual_report_event?, serializer: REST::AnnualReportEventSerializer - belongs_to :collection, if: :collection_type?, serializer: REST::CollectionSerializer + belongs_to :target_collection, key: :collection, if: :collection_type?, serializer: REST::CollectionSerializer def sample_account_ids object.sample_accounts.pluck(:id).map(&:to_s) diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb index ab1626cf3b1a51..f337aab943ae2a 100644 --- a/app/serializers/rest/notification_serializer.rb +++ b/app/serializers/rest/notification_serializer.rb @@ -11,7 +11,7 @@ class REST::NotificationSerializer < ActiveModel::Serializer belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer belongs_to :account_relationship_severance_event, key: :event, if: :relationship_severance_event?, serializer: REST::AccountRelationshipSeveranceEventSerializer belongs_to :account_warning, key: :moderation_warning, if: :moderation_warning_event?, serializer: REST::AccountWarningSerializer - belongs_to :collection, if: :collection_type?, serializer: REST::CollectionSerializer + belongs_to :target_collection, key: :collection, if: :collection_type?, serializer: REST::CollectionSerializer def id object.id.to_s From b6f09b9a2bd15d5858395e5f944420557578a0bf Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 9 Apr 2026 10:40:06 +0200 Subject: [PATCH 156/335] Use more neutral background color on Share page (#38621) --- app/javascript/styles/mastodon/modal.scss | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/styles/mastodon/modal.scss b/app/javascript/styles/mastodon/modal.scss index 4ffbd1d7bbc10e..203f68f895e937 100644 --- a/app/javascript/styles/mastodon/modal.scss +++ b/app/javascript/styles/mastodon/modal.scss @@ -1,7 +1,7 @@ @use 'variables' as *; .modal-layout { - background: var(--color-bg-brand-softest); + background: var(--color-bg-primary); display: flex; flex-direction: column; height: 100vh; @@ -37,6 +37,8 @@ } .with-zig-zag-decoration { + isolation: isolate; + &::after { content: ''; position: absolute; From 4e60a6f163e60d669ec417e290b88e9ec4a4b087 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 9 Apr 2026 11:00:09 +0200 Subject: [PATCH 157/335] Hide bio & familiar followers from Followers/Following lists (#38622) --- .../mastodon/components/account_list_item/index.tsx | 8 ++++---- .../features/collections/detail/accounts_list.tsx | 1 - .../mastodon/features/followers/components/list.tsx | 12 ++++++++++-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/components/account_list_item/index.tsx b/app/javascript/mastodon/components/account_list_item/index.tsx index 26e9631992f5c5..e05216fc3aafe6 100644 --- a/app/javascript/mastodon/components/account_list_item/index.tsx +++ b/app/javascript/mastodon/components/account_list_item/index.tsx @@ -11,7 +11,6 @@ import { useRelationship } from 'mastodon/hooks/useRelationship'; import type { Relationship } from 'mastodon/models/relationship'; import { EmojiHTML } from '../emoji/html'; -import { FamiliarFollowers } from '../familiar_followers'; import { FollowButton } from '../follow_button'; import { FormattedDateWrapper } from '../formatted_date'; import { NumberFields, NumberFieldsItem } from '../number_fields'; @@ -31,10 +30,11 @@ interface Props { accountId: string | undefined; stats?: Stat[]; renderButton?: (options: RenderButtonOptions) => React.ReactNode; + withBio?: boolean; withBorder?: boolean; } -const DEFAULT_STATS: Stat[] = ['followers', 'following', 'joined']; +const DEFAULT_STATS: Stat[] = ['followers', 'posts', 'last-active']; /** * Extended account list item with bio, verified link badge, @@ -46,6 +46,7 @@ const DEFAULT_STATS: Stat[] = ['followers', 'following', 'joined']; export const AccountListItem: React.FC = ({ accountId, stats = DEFAULT_STATS, + withBio = true, withBorder = true, renderButton = defaultRenderButton, }) => { @@ -161,8 +162,7 @@ export const AccountListItem: React.FC = ({ /> )} - - {account.note.length > 0 && ( + {withBio && account.note.length > 0 && (

    diff --git a/app/javascript/mastodon/features/followers/components/list.tsx b/app/javascript/mastodon/features/followers/components/list.tsx index 734bfeac0e154a..734409ee55a20d 100644 --- a/app/javascript/mastodon/features/followers/components/list.tsx +++ b/app/javascript/mastodon/features/followers/components/list.tsx @@ -53,12 +53,20 @@ export const AccountList: FC = ({ } const children = list?.items.map((followerId) => ( - + )) ?? []; if (prependAccountId) { children.unshift( - , + , ); } return children; From c2fafce9956d3dd8f17db00b72a0a4a5203b7aa1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 11:08:01 +0200 Subject: [PATCH 158/335] Update dependency strong_migrations to v2.6.0 (#38598) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 15a40835ffe76a..5464be12fa6fdf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM mime-types-data (3.2026.0317) mini_mime (1.1.5) mini_portile2 (2.8.9) - minitest (6.0.2) + minitest (6.0.3) drb (~> 2.0) prism (~> 1.5) msgpack (1.8.0) @@ -851,8 +851,8 @@ GEM concurrent-ruby zeitwerk stringio (3.2.0) - strong_migrations (2.5.2) - activerecord (>= 7.1) + strong_migrations (2.6.0) + activerecord (>= 7.2) swd (2.0.3) activesupport (>= 3) attr_required (>= 0.0.5) From 34514f00dacd329e46aa9d820d1093dec8341f61 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 11:08:27 +0200 Subject: [PATCH 159/335] Update opentelemetry-ruby (non-major) (#38599) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile | 4 ++-- Gemfile.lock | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index 44b2b3d102595d..23c0a90002108c 100644 --- a/Gemfile +++ b/Gemfile @@ -102,10 +102,10 @@ gem 'rdf-normalize', '~> 0.5' gem 'prometheus_exporter', '~> 2.2', require: false -gem 'opentelemetry-api', '~> 1.8.0' +gem 'opentelemetry-api', '~> 1.9.0' group :opentelemetry do - gem 'opentelemetry-exporter-otlp', '~> 0.32.0', require: false + gem 'opentelemetry-exporter-otlp', '~> 0.33.0', require: false gem 'opentelemetry-instrumentation-active_job', '~> 0.10.0', require: false gem 'opentelemetry-instrumentation-active_model_serializers', '~> 0.24.0', require: false gem 'opentelemetry-instrumentation-concurrent_ruby', '~> 0.24.0', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 5464be12fa6fdf..f2d72273f930cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -278,7 +278,7 @@ GEM raabro (~> 1.4) globalid (1.3.0) activesupport (>= 6.1) - google-protobuf (4.34.0) + google-protobuf (4.34.1) bigdecimal rake (~> 13.3) googleapis-common-protos-types (1.22.0) @@ -509,11 +509,11 @@ GEM openssl (4.0.1) openssl-signature_algorithm (1.3.0) openssl (> 2.0) - opentelemetry-api (1.8.0) + opentelemetry-api (1.9.0) logger - opentelemetry-common (0.23.0) + opentelemetry-common (0.24.0) opentelemetry-api (~> 1.0) - opentelemetry-exporter-otlp (0.32.0) + opentelemetry-exporter-otlp (0.33.0) google-protobuf (>= 3.18) googleapis-common-protos-types (~> 1.3) opentelemetry-api (~> 1.1) @@ -576,14 +576,15 @@ GEM opentelemetry-instrumentation-base (~> 0.25) opentelemetry-instrumentation-sidekiq (0.28.1) opentelemetry-instrumentation-base (~> 0.25) - opentelemetry-registry (0.4.0) + opentelemetry-registry (0.5.0) opentelemetry-api (~> 1.1) - opentelemetry-sdk (1.10.0) + opentelemetry-sdk (1.11.0) + logger opentelemetry-api (~> 1.1) opentelemetry-common (~> 0.20) opentelemetry-registry (~> 0.2) opentelemetry-semantic_conventions - opentelemetry-semantic_conventions (1.36.0) + opentelemetry-semantic_conventions (1.37.0) opentelemetry-api (~> 1.0) orm_adapter (0.5.0) ostruct (0.6.3) @@ -1020,8 +1021,8 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 2.0) omniauth-saml (~> 2.0) omniauth_openid_connect (~> 0.8.0) - opentelemetry-api (~> 1.8.0) - opentelemetry-exporter-otlp (~> 0.32.0) + opentelemetry-api (~> 1.9.0) + opentelemetry-exporter-otlp (~> 0.33.0) opentelemetry-instrumentation-active_job (~> 0.10.0) opentelemetry-instrumentation-active_model_serializers (~> 0.24.0) opentelemetry-instrumentation-concurrent_ruby (~> 0.24.0) From 05bed6f3d8fc57edfa699e3aac614d2989ef1f73 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 9 Apr 2026 11:15:05 +0200 Subject: [PATCH 160/335] Update Profile Featured tab to latest designs (#38616) --- .../empty_state/empty_state.module.scss | 13 +++- .../components/empty_message.tsx | 66 +++++++------------ .../components/subheading.module.scss | 37 +++++++++++ .../components/subheading.tsx | 42 ++++++++++++ .../features/account_featured/index.tsx | 64 ++++++++++-------- .../account_timeline/components/tabs.tsx | 11 +--- .../collection_list_item.module.scss | 3 +- .../collection_list_item.tsx | 2 +- .../collection_menu.tsx | 0 .../share_modal.module.scss | 0 .../{detail => components}/share_modal.tsx | 3 +- .../features/collections/detail/index.tsx | 5 +- .../mastodon/features/collections/index.tsx | 2 +- .../ui/components/column_subheading.jsx | 15 ----- .../features/ui/components/modal_root.jsx | 2 +- app/javascript/mastodon/locales/en-GB.json | 2 +- app/javascript/mastodon/locales/en.json | 11 ++-- .../styles/mastodon/components.scss | 9 --- 18 files changed, 165 insertions(+), 122 deletions(-) create mode 100644 app/javascript/mastodon/features/account_featured/components/subheading.module.scss create mode 100644 app/javascript/mastodon/features/account_featured/components/subheading.tsx rename app/javascript/mastodon/features/collections/{detail => components}/collection_list_item.module.scss (96%) rename app/javascript/mastodon/features/collections/{detail => components}/collection_list_item.tsx (97%) rename app/javascript/mastodon/features/collections/{detail => components}/collection_menu.tsx (100%) rename app/javascript/mastodon/features/collections/{detail => components}/share_modal.module.scss (100%) rename app/javascript/mastodon/features/collections/{detail => components}/share_modal.tsx (99%) delete mode 100644 app/javascript/mastodon/features/ui/components/column_subheading.jsx diff --git a/app/javascript/mastodon/components/empty_state/empty_state.module.scss b/app/javascript/mastodon/components/empty_state/empty_state.module.scss index bdab2f2732ce77..9d1d5a115c6371 100644 --- a/app/javascript/mastodon/components/empty_state/empty_state.module.scss +++ b/app/javascript/mastodon/components/empty_state/empty_state.module.scss @@ -3,16 +3,20 @@ flex-direction: column; align-items: center; max-width: 600px; - padding: 20px; + padding: 24px; gap: 16px; text-align: center; color: var(--color-text-primary); } .content { + max-width: 300px; + svg, img { - width: 240px; + width: 200px; + aspect-ratio: 1; + object-fit: contain; max-width: 100%; margin-bottom: 16px; } @@ -20,11 +24,14 @@ h3 { font-size: 17px; font-weight: 500; + text-wrap: balance; + line-height: 1.2; } p { - font-size: 15px; margin-top: 8px; + font-size: 15px; color: var(--color-text-secondary); + text-wrap: pretty; } } diff --git a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx index a5bb5878c90edd..fa16f7dbe2195b 100644 --- a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx +++ b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx @@ -49,8 +49,14 @@ export const EmptyMessage: React.FC = ({ image={image} title={ + } + message={ + } > @@ -72,7 +78,7 @@ export const EmptyMessage: React.FC = ({ message = ( ); } @@ -93,47 +99,21 @@ export const EmptyMessage: React.FC = ({ /> ); } else { - // Standard other account empty state. - title = ( - - ); - if (hasCollections) { - if (acct) { - message = ( - - ); - } else { - message = ( - - ); - } + if (acct) { + title = ( + + ); } else { - if (acct) { - message = ( - - ); - } else { - message = ( - - ); - } + title = ( + + ); } } diff --git a/app/javascript/mastodon/features/account_featured/components/subheading.module.scss b/app/javascript/mastodon/features/account_featured/components/subheading.module.scss new file mode 100644 index 00000000000000..aee5d65af268f5 --- /dev/null +++ b/app/javascript/mastodon/features/account_featured/components/subheading.module.scss @@ -0,0 +1,37 @@ +.subheading { + box-sizing: border-box; + display: flex; + align-items: center; + justify-content: space-between; + min-height: 52px; + padding: 12px 16px; + font-size: 13px; + font-weight: 500; + text-transform: uppercase; + color: var(--color-text-primary); + background: var(--color-bg-secondary); +} + +.link { + display: flex; + padding-block: 4px; + font-size: 13px; + font-weight: 500; + text-transform: none; + text-decoration: none; + color: inherit; + + &:hover { + text-decoration: underline; + } + + &:focus-visible { + outline: var(--outline-focus-default); + outline-offset: 2px; + } + + :global(.icon) { + width: 18px; + height: 18px; + } +} diff --git a/app/javascript/mastodon/features/account_featured/components/subheading.tsx b/app/javascript/mastodon/features/account_featured/components/subheading.tsx new file mode 100644 index 00000000000000..361253b26027bd --- /dev/null +++ b/app/javascript/mastodon/features/account_featured/components/subheading.tsx @@ -0,0 +1,42 @@ +import type { ComponentPropsWithoutRef } from 'react'; + +import classNames from 'classnames'; +import { Link } from 'react-router-dom'; + +import type { IconProp } from '@/mastodon/components/icon'; +import { Icon } from '@/mastodon/components/icon'; +import { polymorphicForwardRef } from '@/types/polymorphic'; + +import classes from './subheading.module.scss'; + +export const Subheading = polymorphicForwardRef<'h2'>( + ({ as: Component = 'h2', children, className, ...props }, ref) => { + return ( + + {children} + + ); + }, +); + +interface SubheadingLinkProps extends ComponentPropsWithoutRef { + icon: IconProp; +} + +export const SubheadingLink: React.FC = ({ + icon, + children, + className, + ...props +}) => { + return ( + + + {children} + + ); +}; diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 244302f209c586..b8964ec1d34dfa 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -6,9 +6,10 @@ import { useHistory } from 'react-router'; import { List as ImmutableList } from 'immutable'; +import { AccountListItem } from '@/mastodon/components/account_list_item'; import { useAccount } from '@/mastodon/hooks/useAccount'; +import AddIcon from '@/material-icons/400-24px/add.svg?react'; import { fetchEndorsedAccounts } from 'mastodon/actions/accounts'; -import { Account } from 'mastodon/components/account'; import { ColumnBackButton } from 'mastodon/components/column_back_button'; import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import { RemoteHint } from 'mastodon/components/remote_hint'; @@ -28,10 +29,11 @@ import { } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; -import { CollectionListItem } from '../collections/detail/collection_list_item'; +import { CollectionListItem } from '../collections/components/collection_list_item'; import { areCollectionsEnabled } from '../collections/utils'; import { EmptyMessage } from './components/empty_message'; +import { Subheading, SubheadingLink } from './components/subheading'; const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ multiColumn, @@ -114,36 +116,14 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ {accountId && ( )} - {listedCollections.length > 0 && status === 'idle' && ( - <> -

    - -

    - - {listedCollections.map((item, index) => ( - - ))} - - - )} {!featuredAccountIds.isEmpty() && ( <> -

    + -

    + {featuredAccountIds.map((featuredAccountId, index) => (
    = ({ aria-posinset={index + 1} aria-setsize={featuredAccountIds.size} > - +
    ))}
    )} + {listedCollections.length > 0 && status === 'idle' && ( + <> + +

    + +

    + + + +
    + + {listedCollections.map((item, index) => ( + + ))} + + + )} diff --git a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx index fc66c398318979..b2970412df421d 100644 --- a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx @@ -8,8 +8,6 @@ import { NavLink } from 'react-router-dom'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useAccountId } from '@/mastodon/hooks/useAccountId'; -import { areCollectionsEnabled } from '../../collections/utils'; - import classes from './styles.module.scss'; const isActive: Required['isActive'] = (match, location) => @@ -41,14 +39,7 @@ export const AccountTabs: FC = () => { )} {show_featured && ( - {areCollectionsEnabled() ? ( - - ) : ( - - )} + )} diff --git a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss b/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss similarity index 96% rename from app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss rename to app/javascript/mastodon/features/collections/components/collection_list_item.module.scss index 7fb3d21bbccb18..eaee216e6a4ede 100644 --- a/app/javascript/mastodon/features/collections/detail/collection_list_item.module.scss +++ b/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss @@ -1,8 +1,7 @@ .wrapper { display: flex; align-items: start; - margin-inline: 24px; - padding-block: 12px; + padding: 12px 16px; gap: 16px; &:not(.wrapperWithoutBorder) { diff --git a/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx b/app/javascript/mastodon/features/collections/components/collection_list_item.tsx similarity index 97% rename from app/javascript/mastodon/features/collections/detail/collection_list_item.tsx rename to app/javascript/mastodon/features/collections/components/collection_list_item.tsx index 08c04f030ae6ae..c680b7924ce56b 100644 --- a/app/javascript/mastodon/features/collections/detail/collection_list_item.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_list_item.tsx @@ -5,6 +5,7 @@ import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import { Link } from 'react-router-dom'; +import { CollectionMenu } from '@/mastodon/features/collections/components/collection_menu'; import WarningIcon from '@/material-icons/400-24px/warning.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import { AvatarById } from 'mastodon/components/avatar'; @@ -15,7 +16,6 @@ import { useAccount } from 'mastodon/hooks/useAccount'; import { domain } from 'mastodon/initial_state'; import classes from './collection_list_item.module.scss'; -import { CollectionMenu } from './collection_menu'; export const AvatarGrid: React.FC<{ accountIds: (string | undefined)[]; diff --git a/app/javascript/mastodon/features/collections/detail/collection_menu.tsx b/app/javascript/mastodon/features/collections/components/collection_menu.tsx similarity index 100% rename from app/javascript/mastodon/features/collections/detail/collection_menu.tsx rename to app/javascript/mastodon/features/collections/components/collection_menu.tsx diff --git a/app/javascript/mastodon/features/collections/detail/share_modal.module.scss b/app/javascript/mastodon/features/collections/components/share_modal.module.scss similarity index 100% rename from app/javascript/mastodon/features/collections/detail/share_modal.module.scss rename to app/javascript/mastodon/features/collections/components/share_modal.module.scss diff --git a/app/javascript/mastodon/features/collections/detail/share_modal.tsx b/app/javascript/mastodon/features/collections/components/share_modal.tsx similarity index 99% rename from app/javascript/mastodon/features/collections/detail/share_modal.tsx rename to app/javascript/mastodon/features/collections/components/share_modal.tsx index 1b7f4dcf1c6da0..6ae198b0a69b81 100644 --- a/app/javascript/mastodon/features/collections/detail/share_modal.tsx +++ b/app/javascript/mastodon/features/collections/components/share_modal.tsx @@ -20,7 +20,8 @@ import { } from 'mastodon/components/modal_shell'; import { useAppDispatch } from 'mastodon/store'; -import { AuthorNote } from '.'; +import { AuthorNote } from '../detail'; + import classes from './share_modal.module.scss'; const messages = defineMessages({ diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index 70422f911464ea..404cd8a07414f4 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -23,8 +23,9 @@ import { domain, me } from 'mastodon/initial_state'; import { fetchCollection } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { CollectionMenu } from '../components/collection_menu'; + import { CollectionAccountsList } from './accounts_list'; -import { CollectionMenu } from './collection_menu'; import { useConfirmRevoke } from './revoke_collection_inclusion_modal'; import classes from './styles.module.scss'; @@ -66,7 +67,7 @@ export const AuthorNote: React.FC<{ id: string }> = ({ id }) => { ); }; -export const RevokeControls: React.FC<{ +const RevokeControls: React.FC<{ collection: ApiCollectionJSON; }> = ({ collection }) => { const authorAccount = useAccount(collection.account_id); diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index 82653a22c15527..57258d6ff4e7b6 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -21,7 +21,7 @@ import { } from 'mastodon/reducers/slices/collections'; import { useAppSelector, useAppDispatch } from 'mastodon/store'; -import { CollectionListItem } from './detail/collection_list_item'; +import { CollectionListItem } from './components/collection_list_item'; import { messages as editorMessages } from './editor'; const messages = defineMessages({ diff --git a/app/javascript/mastodon/features/ui/components/column_subheading.jsx b/app/javascript/mastodon/features/ui/components/column_subheading.jsx deleted file mode 100644 index e970a0bfdd0e1e..00000000000000 --- a/app/javascript/mastodon/features/ui/components/column_subheading.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import PropTypes from 'prop-types'; - -const ColumnSubheading = ({ text }) => { - return ( -
    - {text} -
    - ); -}; - -ColumnSubheading.propTypes = { - text: PropTypes.string.isRequired, -}; - -export default ColumnSubheading; diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index 2f3f5ee7c84ff8..0000acb009ea2a 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -79,7 +79,7 @@ export const MODAL_COMPONENTS = { 'DOMAIN_BLOCK': DomainBlockModal, 'REPORT': ReportModal, 'REPORT_COLLECTION': ReportCollectionModal, - 'SHARE_COLLECTION': () => import('@/mastodon/features/collections/detail/share_modal').then(module => ({ default: module.CollectionShareModal })), + 'SHARE_COLLECTION': () => import('@/mastodon/features/collections/components/share_modal').then(module => ({ default: module.CollectionShareModal })), 'REVOKE_COLLECTION_INCLUSION': () => import('@/mastodon/features/collections/detail/revoke_collection_inclusion_modal').then(module => ({ default: module.RevokeCollectionInclusionModal })), 'ACTIONS': () => Promise.resolve({ default: ActionsModal }), 'EMBED': EmbedModal, diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index c87e517625295f..55141b0bf86c7f 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -592,7 +592,7 @@ "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", - "empty_column.account_featured.other": "{acct} has not featured anything yet. Did you know that you can feature your hashtags you use the most, and even your friend’s accounts on your profile?", + "empty_column.account_featured.other": "{acct} has not featured anything yet.", "empty_column.account_hides_collections": "This user has chosen not to make this information available", "empty_column.account_suspended": "Account suspended", "empty_column.account_timeline": "No posts here!", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index bb643d8e32a355..c8095b1f5cb92f 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -45,6 +45,7 @@ "account.featured": "Featured", "account.featured.accounts": "Profiles", "account.featured.collections": "Collections", + "account.featured.new_collection": "New collection", "account.field_overflow": "Show full content", "account.filters.all": "All activity", "account.filters.boosts_toggle": "Show boosts", @@ -606,14 +607,12 @@ "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", - "empty_column.account_featured.other": "{acct} has not featured anything yet. Did you know that you can feature your hashtags you use the most, and even your friend’s accounts on your profile?", - "empty_column.account_featured_other.no_collections_desc": "{acct} hasn’t created any collections yet.", - "empty_column.account_featured_other.title": "Nothing to see here", - "empty_column.account_featured_self.no_collections": "No collections yet", + "empty_column.account_featured.other": "{acct} has not featured anything yet.", "empty_column.account_featured_self.no_collections_button": "Create a collection", "empty_column.account_featured_self.pre_collections": "Stay tuned for Collections", - "empty_column.account_featured_self.pre_collections_desc": "Collections (coming in Mastodon 4.6) allows you to create your own curated lists of accounts to recommend to others.", - "empty_column.account_featured_unknown.no_collections_desc": "This account hasn’t created any collections yet.", + "empty_column.account_featured_self.pre_collections_desc": "Collections (coming in Mastodon 4.6) allow you to create your own curated lists of accounts to recommend to others.", + "empty_column.account_featured_self.showcase_accounts": "Showcase your favorite accounts", + "empty_column.account_featured_self.showcase_accounts_desc": "Collections are curated lists of accounts to help others discover more of the Fediverse.", "empty_column.account_featured_unknown.other": "This account hasn’t featured anything yet.", "empty_column.account_hides_collections": "This user has chosen to not make this information available", "empty_column.account_suspended": "Account suspended", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index cad0dafef81f38..e172591ba6f572 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4105,15 +4105,6 @@ a.account__display-name { margin: -6px 10px; } -.column-subheading { - background: var(--color-bg-secondary); - color: var(--color-text-secondary); - padding: 12px 24px; - font-size: 13px; - font-weight: 500; - text-transform: uppercase; -} - .getting-started__wrapper { flex: 0 0 auto; } From cec3e82b218d7ce2b5d3cd01c028e2dbd292f96b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 11:23:10 +0200 Subject: [PATCH 161/335] Update dependency vite-plugin-svgr to v5.2.0 (#38547) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/yarn.lock b/yarn.lock index dc997e78a86e9c..c9a77bf8f4e881 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3932,9 +3932,9 @@ __metadata: languageName: node linkType: hard -"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0, @rollup/pluginutils@npm:^5.2.0": - version: 5.2.0 - resolution: "@rollup/pluginutils@npm:5.2.0" +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.0.2, @rollup/pluginutils@npm:^5.1.0, @rollup/pluginutils@npm:^5.3.0": + version: 5.3.0 + resolution: "@rollup/pluginutils@npm:5.3.0" dependencies: "@types/estree": "npm:^1.0.0" estree-walker: "npm:^2.0.2" @@ -3944,7 +3944,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 10c0/794890d512751451bcc06aa112366ef47ea8f9125dac49b1abf72ff8b079518b09359de9c60a013b33266541634e765ae61839c749fae0edb59a463418665c55 + checksum: 10c0/001834bf62d7cf5bac424d2617c113f7f7d3b2bf3c1778cbcccb72cdc957b68989f8e7747c782c2b911f1dde8257f56f8ac1e779e29e74e638e3f1e2cac2bcd0 languageName: node linkType: hard @@ -14699,15 +14699,15 @@ __metadata: linkType: hard "vite-plugin-svgr@npm:^5.0.0": - version: 5.0.0 - resolution: "vite-plugin-svgr@npm:5.0.0" + version: 5.2.0 + resolution: "vite-plugin-svgr@npm:5.2.0" dependencies: - "@rollup/pluginutils": "npm:^5.2.0" + "@rollup/pluginutils": "npm:^5.3.0" "@svgr/core": "npm:^8.1.0" "@svgr/plugin-jsx": "npm:^8.1.0" peerDependencies: vite: ">=3.0.0" - checksum: 10c0/8ebb90055589ee6a8a4cb7d78a10a92bef10732fbbe1528c2edf970e2f116cddd957456c9e560a0c004d24ce1111568f4f2498ed9d3cf37d49f696253ba9b4b2 + checksum: 10c0/818ddea9a25839f9a5e3903f55e738b3de2f76c374148a637e61e31e6a3ada815a061d3e8010306a9f2701827d2f34d8fbc5db47bf1e74059050ad7a57c0f601 languageName: node linkType: hard From 519b00f25b0fa776dc012e7c60bc6d3f4d3fb2c9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 09:23:49 +0000 Subject: [PATCH 162/335] Update dependency aws-sdk-s3 to v1.219.0 (#38499) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f2d72273f930cc..9d95dd111fdd96 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM ast (2.4.3) attr_required (1.0.2) aws-eventstream (1.4.0) - aws-partitions (1.1227.0) + aws-partitions (1.1236.0) aws-sdk-core (3.244.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -111,7 +111,7 @@ GEM aws-sdk-kms (1.123.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.217.0) + aws-sdk-s3 (1.219.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) From 79505180a5f20c903aea12ec20081585a6fc70d6 Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Thu, 9 Apr 2026 04:46:57 -0500 Subject: [PATCH 163/335] Optimize ffmpeg and libvips Dockerfile builds (#37401) Signed-off-by: Michael Stanclift --- Dockerfile | 202 ++++++++++++++++++++++++++++------------------------- 1 file changed, 108 insertions(+), 94 deletions(-) diff --git a/Dockerfile b/Dockerfile index 53b069ae015ce9..fa9d302bced638 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,8 +25,8 @@ FROM ${BASE_REGISTRY}/node:${NODE_MAJOR_VERSION}-${DEBIAN_VERSION}-slim AS node FROM ${BASE_REGISTRY}/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} AS ruby # Resulting version string is vX.X.X-MASTODON_VERSION_PRERELEASE+MASTODON_VERSION_METADATA -# Example: v4.3.0-nightly.2023.11.09+pr-123456 -# Overwrite existence of 'alpha.X' in version.rb [--build-arg MASTODON_VERSION_PRERELEASE="nightly.2023.11.09"] +# Example: v4.3.0-nightly.2023-11-09+pr-123456 +# Overwrite existence of 'alpha.X' in version.rb [--build-arg MASTODON_VERSION_PRERELEASE="nightly.2023-11-09"] ARG MASTODON_VERSION_PRERELEASE="" # Append build metadata or fork information to version.rb [--build-arg MASTODON_VERSION_METADATA="pr-123456"] ARG MASTODON_VERSION_METADATA="" @@ -48,29 +48,27 @@ ARG GID="991" # Apply Mastodon build options based on options above ENV \ - # Apply Mastodon version information MASTODON_VERSION_PRERELEASE="${MASTODON_VERSION_PRERELEASE}" \ MASTODON_VERSION_METADATA="${MASTODON_VERSION_METADATA}" \ SOURCE_COMMIT="${SOURCE_COMMIT}" \ - # Apply Mastodon static files and YJIT options - RAILS_SERVE_STATIC_FILES=${RAILS_SERVE_STATIC_FILES} \ - RUBY_YJIT_ENABLE=${RUBY_YJIT_ENABLE} \ - # Apply timezone - TZ=${TZ} - + RAILS_SERVE_STATIC_FILES="${RAILS_SERVE_STATIC_FILES}" \ + RUBY_YJIT_ENABLE="${RUBY_YJIT_ENABLE}" \ + TZ="${TZ}" + +# Configure runtime environment +# BIND: IP to bind Mastodon to when serving traffic +# NODE_ENV/RAILS_ENV: production settings for Node.js and Ruby on Rails +# DEBIAN_FRONTEND: suppress interactive prompts +# PATH: add Ruby and Mastodon installation directories +# MALLOC_CONF: optimize jemalloc 5.x performance +# MASTODON_SIDEKIQ_READY_FILENAME: Sidekiq readiness check filename for Kubernetes ENV \ - # Configure the IP to bind Mastodon to when serving traffic BIND="0.0.0.0" \ - # Use production settings for Yarn, Node.js and related tools NODE_ENV="production" \ - # Use production settings for Ruby on Rails RAILS_ENV="production" \ - # Add Ruby and Mastodon installation to the PATH DEBIAN_FRONTEND="noninteractive" \ PATH="${PATH}:/opt/ruby/bin:/opt/mastodon/bin" \ - # Optimize jemalloc 5.x performance MALLOC_CONF="narenas:2,background_thread:true,thp:never,dirty_decay_ms:1000,muzzy_decay_ms:0" \ - # Sidekiq will touch tmp/sidekiq_process_has_started_and_will_begin_processing_jobs to indicate it is ready. This can be used for a readiness check in Kubernetes MASTODON_SIDEKIQ_READY_FILENAME=sidekiq_process_has_started_and_will_begin_processing_jobs # Set default shell used for running commands @@ -99,10 +97,10 @@ RUN \ # Mount Apt cache and lib directories from Docker buildx caches --mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \ --mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \ - # Apt update & upgrade to check for security updates to Debian image + # Update package list and upgrade system packages apt-get update; \ apt-get dist-upgrade -yq; \ - # Install jemalloc, curl and other necessary components + # Install jemalloc and other necessary components apt-get install -y --no-install-recommends \ curl \ file \ @@ -112,6 +110,42 @@ RUN \ tini \ tzdata \ wget \ + # Mastodon components + libexpat1 \ + libglib2.0-0t64 \ + libicu76 \ + libidn12 \ + libpq5 \ + libreadline8t64 \ + libssl3t64 \ + libyaml-0-2 \ + # libvips components + libcgif0 \ + libexif12 \ + libheif1 \ + libhwy1t64 \ + libimagequant0 \ + libjpeg62-turbo \ + liblcms2-2 \ + libspng0 \ + libtiff6 \ + libwebp7 \ + libwebpdemux2 \ + libwebpmux3 \ + # ffmpeg components + libdav1d7 \ + libmp3lame0 \ + libopencore-amrnb0 \ + libopencore-amrwb0 \ + libopus0 \ + libsnappy1v5 \ + libtheora0 \ + libvorbis0a \ + libvorbisenc2 \ + libvorbisfile3 \ + libvpx9 \ + libx264-164 \ + libx265-215 \ ; \ # Patch Ruby to use jemalloc patchelf --add-needed libjemalloc.so.2 /usr/local/bin/ruby; \ @@ -120,42 +154,37 @@ RUN \ patchelf \ ; -# Create temporary build layer from base image -FROM ruby AS build +# Build stage for media libraries (libvips, ffmpeg) +FROM ${BASE_REGISTRY}/ruby:${RUBY_VERSION}-slim-${DEBIAN_VERSION} AS media-build ARG TARGETPLATFORM +# Set default shell used for running commands +SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"] + # hadolint ignore=DL3008 RUN \ - # Mount Apt cache and lib directories from Docker buildx caches - --mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \ - --mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \ - # Install build tools and bundler dependencies from APT + --mount=type=cache,id=apt-native-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \ + --mount=type=cache,id=apt-native-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \ + # Remove automatic apt cache Docker cleanup scripts + rm -f /etc/apt/apt.conf.d/docker-clean; \ + # Install build tools for native libraries + apt-get update; \ apt-get install -y --no-install-recommends \ autoconf \ automake \ build-essential \ - cmake \ - git \ - libgdbm-dev \ - libglib2.0-dev \ - libgmp-dev \ - libicu-dev \ - libidn-dev \ - libpq-dev \ - libssl-dev \ libtool \ - libyaml-dev \ meson \ nasm \ pkg-config \ - shared-mime-info \ xz-utils \ # libvips components libcgif-dev \ libexif-dev \ libexpat1-dev \ libgirepository1.0-dev \ + libglib2.0-dev \ libheif-dev \ libhwy-dev \ libimagequant-dev \ @@ -176,8 +205,8 @@ RUN \ libx265-dev \ ; -# Create temporary libvips specific build layer from build layer -FROM build AS libvips +# Create temporary libvips specific build layer +FROM media-build AS libvips # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips @@ -192,15 +221,16 @@ RUN tar xf vips-${VIPS_VERSION}.tar.xz; WORKDIR /usr/local/libvips/src/vips-${VIPS_VERSION} -# Configure and compile libvips -RUN \ - meson setup build --prefix /usr/local/libvips --libdir=lib -Ddeprecated=false -Dintrospection=disabled -Dmodules=disabled -Dexamples=false; \ - cd build; \ - ninja; \ - ninja install; +# Configure libvips +RUN meson setup build --prefix /usr/local/libvips --libdir=lib -Ddeprecated=false -Dintrospection=disabled -Dmodules=disabled -Dexamples=false + +WORKDIR /usr/local/libvips/src/vips-${VIPS_VERSION}/build -# Create temporary ffmpeg specific build layer from build layer -FROM build AS ffmpeg +# Compile and install libvips +RUN ninja && ninja install + +# Create temporary ffmpeg specific build layer +FROM media-build AS ffmpeg # ffmpeg version to compile, change with [--build-arg FFMPEG_VERSION="7.0.x"] # renovate: datasource=repology depName=ffmpeg packageName=openpkg_current/ffmpeg @@ -241,17 +271,48 @@ RUN \ --enable-shared \ --enable-version3 \ ; \ - make -j$(nproc); \ + make -j"$(nproc)"; \ make install; +# Create temporary build layer from base image for Ruby dependencies +FROM ruby AS ruby-build + +ARG TARGETPLATFORM + +# hadolint ignore=DL3008 +RUN \ + # Mount Apt cache and lib directories from Docker buildx caches + --mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \ + --mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \ + # Install build tools and bundler dependencies from APT + apt-get install -y --no-install-recommends \ + build-essential \ + git \ + libgdbm-dev \ + libgmp-dev \ + libicu-dev \ + libidn-dev \ + libpq-dev \ + libssl-dev \ + libyaml-dev \ + shared-mime-info \ + zlib1g-dev \ + ; + # Create temporary bundler specific build layer from build layer -FROM build AS bundler +FROM ruby-build AS bundler ARG TARGETPLATFORM # Copy Gemfile config into working directory COPY Gemfile* /opt/mastodon/ +# Copy libvips for gems that need it during install +COPY --from=libvips /usr/local/libvips/lib /usr/local/lib +COPY --from=libvips /usr/local/libvips/include /usr/local/include + +RUN ldconfig + RUN \ # Mount Ruby Gem caches --mount=type=cache,id=gem-cache-${TARGETPLATFORM},target=/usr/local/bundle/cache/,sharing=locked \ @@ -267,7 +328,7 @@ RUN \ bundle install -j"$(nproc)"; # Create temporary assets build layer from build layer -FROM build AS precompiler +FROM ruby-build AS precompiler ARG TARGETPLATFORM @@ -311,53 +372,6 @@ FROM ruby AS mastodon ARG TARGETPLATFORM -# hadolint ignore=DL3008 -RUN \ - # Mount Apt cache and lib directories from Docker buildx caches - --mount=type=cache,id=apt-cache-${TARGETPLATFORM},target=/var/cache/apt,sharing=locked \ - --mount=type=cache,id=apt-lib-${TARGETPLATFORM},target=/var/lib/apt,sharing=locked \ - # Mount Corepack and Yarn caches from Docker buildx caches - --mount=type=cache,id=corepack-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/corepack,sharing=locked \ - --mount=type=cache,id=yarn-cache-${TARGETPLATFORM},target=/usr/local/share/.cache/yarn,sharing=locked \ - # Apt update install non-dev versions of necessary components - apt-get install -y --no-install-recommends \ - libexpat1 \ - libglib2.0-0t64 \ - libicu76 \ - libidn12 \ - libpq5 \ - libreadline8t64 \ - libssl3t64 \ - libyaml-0-2 \ - # libvips components - libcgif0 \ - libexif12 \ - libheif1 \ - libhwy1t64 \ - libimagequant0 \ - libjpeg62-turbo \ - liblcms2-2 \ - libspng0 \ - libtiff6 \ - libwebp7 \ - libwebpdemux2 \ - libwebpmux3 \ - # ffmpeg components - libdav1d7 \ - libmp3lame0 \ - libopencore-amrnb0 \ - libopencore-amrwb0 \ - libopus0 \ - libsnappy1v5 \ - libtheora0 \ - libvorbis0a \ - libvorbisenc2 \ - libvorbisfile3 \ - libvpx9 \ - libx264-164 \ - libx265-215 \ - ; - # Copy Mastodon sources into final layer COPY . /opt/mastodon/ From 875cd3015008082803ebd717cd94e58a262984ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 12:50:03 +0200 Subject: [PATCH 164/335] New Crowdin Translations (automated) (#38620) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 42 ++++++++++++- app/javascript/mastodon/locales/be.json | 6 -- app/javascript/mastodon/locales/ca.json | 1 - app/javascript/mastodon/locales/cs.json | 1 - app/javascript/mastodon/locales/cy.json | 1 - app/javascript/mastodon/locales/da.json | 6 -- app/javascript/mastodon/locales/de.json | 9 ++- app/javascript/mastodon/locales/el.json | 6 -- app/javascript/mastodon/locales/en-GB.json | 25 +++++++- app/javascript/mastodon/locales/es-AR.json | 11 ++-- app/javascript/mastodon/locales/es-MX.json | 10 ++- app/javascript/mastodon/locales/es.json | 10 ++- app/javascript/mastodon/locales/et.json | 1 - app/javascript/mastodon/locales/eu.json | 1 - app/javascript/mastodon/locales/fa.json | 1 - app/javascript/mastodon/locales/fi.json | 6 -- app/javascript/mastodon/locales/fo.json | 1 - app/javascript/mastodon/locales/fr-CA.json | 6 -- app/javascript/mastodon/locales/fr.json | 6 -- app/javascript/mastodon/locales/fy.json | 1 - app/javascript/mastodon/locales/ga.json | 8 +-- app/javascript/mastodon/locales/gd.json | 5 -- app/javascript/mastodon/locales/gl.json | 6 -- app/javascript/mastodon/locales/he.json | 12 ++-- app/javascript/mastodon/locales/hu.json | 6 -- app/javascript/mastodon/locales/ia.json | 1 - app/javascript/mastodon/locales/io.json | 1 - app/javascript/mastodon/locales/is.json | 9 ++- app/javascript/mastodon/locales/it.json | 6 -- app/javascript/mastodon/locales/ja.json | 1 - app/javascript/mastodon/locales/kab.json | 69 +++++++++++++++++++++ app/javascript/mastodon/locales/ko.json | 1 - app/javascript/mastodon/locales/lt.json | 1 - app/javascript/mastodon/locales/nan-TW.json | 6 -- app/javascript/mastodon/locales/nl.json | 1 - app/javascript/mastodon/locales/nn.json | 6 -- app/javascript/mastodon/locales/no.json | 1 - app/javascript/mastodon/locales/pl.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 1 - app/javascript/mastodon/locales/pt-PT.json | 1 - app/javascript/mastodon/locales/ru.json | 5 +- app/javascript/mastodon/locales/sq.json | 6 -- app/javascript/mastodon/locales/sv.json | 62 +++++++++++++++++- app/javascript/mastodon/locales/tr.json | 11 ++-- app/javascript/mastodon/locales/vi.json | 12 ++-- app/javascript/mastodon/locales/zh-CN.json | 9 ++- app/javascript/mastodon/locales/zh-TW.json | 9 ++- config/locales/ar.yml | 14 +++++ config/locales/de.yml | 2 +- config/locales/en-GB.yml | 66 ++++++++++++++++++++ config/locales/ja.yml | 14 ++++- config/locales/kab.yml | 43 +++++++++++++ config/locales/simple_form.ar.yml | 5 ++ config/locales/simple_form.en-GB.yml | 3 + config/locales/simple_form.ja.yml | 5 +- config/locales/simple_form.kab.yml | 4 ++ config/locales/simple_form.sv.yml | 3 + config/locales/sv.yml | 41 ++++++++++++ 58 files changed, 442 insertions(+), 166 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 937422547d4d4d..6f9a51cd853341 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -31,6 +31,7 @@ "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocking": "نطاق محظور", "account.edit_profile": "تعديل الملف الشخصي", + "account.edit_profile_short": "تعديل", "account.enable_notifications": "أشعرني عندما ينشر @{name}", "account.endorse": "أوصِ به على صفحتك الشخصية", "account.familiar_followers_many": "يتبعه {name1}، {name2} و{othersCount, plural, one {شخص آخر تعرفه} other {# أشخاص آخرون تعرفهم}}", @@ -97,6 +98,27 @@ "account.unmute": "إلغاء الكَتم عن @{name}", "account.unmute_notifications_short": "إلغاء كَتم الإشعارات", "account.unmute_short": "إلغاء الكتم", + "account_edit.bio.add_label": "إضافة سيرة ذاتية", + "account_edit.bio_modal.add_title": "إضافة سيرة ذاتية", + "account_edit.custom_fields.add_label": "إضافة حقل", + "account_edit.field_actions.edit": "تعديل الحقل", + "account_edit.field_delete_modal.delete_button": "حذف", + "account_edit.field_edit_modal.value_label": "قيمة", + "account_edit.image_alt_modal.text_label": "نص بديل", + "account_edit.image_delete_modal.delete_button": "حذف", + "account_edit.image_edit.add_button": "إضافة صورة", + "account_edit.image_edit.alt_add_button": "إضافة نص بديل", + "account_edit.save": "حفظ", + "account_edit.upload_modal.back": "العودة", + "account_edit.upload_modal.done": "تمّ", + "account_edit.upload_modal.next": "التالي", + "account_edit.upload_modal.step_upload.dragging": "إسقاط للتحميل", + "account_edit.upload_modal.step_upload.header": "اختيار صورة", + "account_edit.upload_modal.title_add.avatar": "إضافة صورة الملف الشخصي", + "account_edit.upload_modal.title_add.header": "إضافة صورة الغلاف", + "account_edit.upload_modal.title_replace.avatar": "استبدال صورة الملف الشخصي", + "account_edit.upload_modal.title_replace.header": "استبدال صورة الغلاف", + "account_edit_tags.add_tag": "إضافة #{tagName}", "account_note.placeholder": "اضغط لإضافة مُلاحظة", "admin.dashboard.daily_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالأيام", "admin.dashboard.monthly_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالشهور", @@ -120,6 +142,9 @@ "alt_text_modal.describe_for_people_with_visual_impairments": "قم بوصفها للأشخاص ذوي الإعاقة البصرية…", "alt_text_modal.done": "تمّ", "announcement.announcement": "إعلان", + "annual_report.announcement.action_dismiss": "لا شكراً", + "annual_report.nav_item.badge": "جديد", + "annual_report.shared_page.donate": "تبرع", "annual_report.summary.archetype.replier.name": "الفراشة", "annual_report.summary.close": "اغلق", "annual_report.summary.copy_link": "نسخ الرابط", @@ -162,11 +187,15 @@ "closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!", "closed_registrations_modal.title": "إنشاء حساب على ماستدون", "collections.collection_description": "الوصف", + "collections.collection_language": "اللغة", "collections.collection_name": "الاسم", "collections.collection_topic": "الموضوع", "collections.content_warning": "تحذير عن المحتوى", "collections.continue": "مواصلة", "collections.create.steps": "الخطوة {step}/{total}", + "collections.detail.accounts_heading": "الحسابات", + "collections.detail.sensitive_content": "محتوى حساس", + "collections.edit_details": "تعديل التفاصيل", "collections.manage_accounts": "إدارة الحسابات", "column.about": "عن", "column.blocks": "المُستَخدِمون المَحظورون", @@ -195,6 +224,9 @@ "column_header.show_settings": "إظهار الإعدادات", "column_header.unpin": "إلغاء التَّثبيت", "column_search.cancel": "إلغاء", + "combobox.close_results": "إغلاق النتائج", + "combobox.loading": "جاري التحميل", + "combobox.open_results": "فتح النتائج", "community.column_settings.local_only": "المحلي فقط", "community.column_settings.media_only": "الوسائط فقط", "community.column_settings.remote_only": "عن بُعد فقط", @@ -268,11 +300,13 @@ "content_warning.hide": "إخفاء المنشور", "content_warning.show": "إظهار على أي حال", "content_warning.show_more": "إظهار المزيد", + "content_warning.show_short": "إظهار", "conversation.delete": "احذف المحادثة", "conversation.mark_as_read": "اعتبرها كمقروءة", "conversation.open": "اعرض المحادثة", "conversation.with": "مع {names}", "copy_icon_button.copied": "نُسِخ إلى الحافظة", + "copy_icon_button.copy_this_text": "نسخ الرابط إلى الحافظة", "copypaste.copied": "تم نسخه", "copypaste.copy_to_clipboard": "نسخ إلى الحافظة", "directory.federated": "مِن الفديفرس المعروف", @@ -307,6 +341,8 @@ "domain_pill.your_server": "موطِنك الرقمي، حيث توجد فيه كافة منشوراتك. ألا يعجبك المكان؟ يمكنك الانتقال بين الخوادم في أي وقت واصطحاب متابعيك أيضاً.", "domain_pill.your_username": "معرفك الفريد على هذا الخادم. من الممكن العثور على مستخدمين بنفس إسم المستخدم على خوادم مختلفة.", "dropdown.empty": "حدد خيارا", + "email_subscriptions.email": "البريد الإلكتروني", + "email_subscriptions.form.action": "اشترك", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "إليك ما سيبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -324,7 +360,6 @@ "emoji_button.search_results": "نتائج البحث", "emoji_button.symbols": "رموز", "emoji_button.travel": "الأماكن والسفر", - "empty_column.account_featured.other": "{acct} لم يعرض أي شيء حتى الآن. هل تعلم أنه يمكنك عرض الهاشتاقات التي تستخدمها، وحتى حسابات أصدقاءك على ملفك الشخصي؟", "empty_column.account_hides_collections": "اختار هذا المستخدم عدم إتاحة هذه المعلومات للعامة", "empty_column.account_suspended": "حساب معلق", "empty_column.account_timeline": "لا توجد منشورات هنا!", @@ -346,6 +381,7 @@ "empty_column.notification_requests": "لا يوجد شيء هنا. عندما تتلقى إشعارات جديدة، سوف تظهر هنا وفقًا لإعداداتك.", "empty_column.notifications": "لم تتلق أي إشعار بعدُ. تفاعل مع المستخدمين الآخرين لإنشاء محادثة.", "empty_column.public": "لا يوجد أي شيء هنا! قم بنشر شيء ما للعامة، أو اتبع المستخدمين الآخرين المتواجدين على الخوادم الأخرى لملء خيط المحادثات", + "empty_state.no_results": "لا توجد نتائج", "error.unexpected_crash.explanation": "نظرا لوجود خطأ في التعليمات البرمجية أو مشكلة توافق مع المتصفّح، تعذر عرض هذه الصفحة بشكل صحيح.", "error.unexpected_crash.explanation_addons": "لا يمكن عرض هذه الصفحة بشكل صحيح. من المحتمل أن يكون هذا الخطأ بسبب إضافة متصفح أو أدوات ترجمة تلقائية.", "error.unexpected_crash.next_steps": "حاول إعادة إنعاش الصفحة. إن لم تُحلّ المشكلة، يمكنك دائمًا استخدام ماستدون عبر متصفّح آخر أو تطبيق أصلي.", @@ -358,6 +394,8 @@ "explore.trending_statuses": "المنشورات", "explore.trending_tags": "وُسُوم", "featured_carousel.header": "{count, plural, zero {}one {منشور معروض} two {منشور معروضَين} few {منشورات معروضة} many {منشورات معروضة} other {منشورات معروضة}}", + "featured_tags.suggestions.add": "إضافة", + "featured_tags.suggestions.dismiss": "لا شكراً", "filter_modal.added.context_mismatch_explanation": "فئة عامل التصفية هذه لا تنطبق على السياق الذي وصلت فيه إلى هذه المشاركة. إذا كنت ترغب في تصفية المنشور في هذا السياق أيضا، فسيتعين عليك تعديل عامل التصفية.", "filter_modal.added.context_mismatch_title": "عدم تطابق السياق!", "filter_modal.added.expired_explanation": "انتهت صلاحية فئة عامل التصفية هذه، سوف تحتاج إلى تغيير تاريخ انتهاء الصلاحية لتطبيقها.", @@ -867,6 +905,8 @@ "status.cancel_reblog_private": "إلغاء إعادة النشر", "status.cannot_quote": "غير مصرح لك باقتباس هذا المنشور", "status.cannot_reblog": "لا يمكن إعادة نشر هذا المنشور", + "status.context.retry": "حاول مجددًا", + "status.context.show": "إظهار", "status.continued_thread": "تكملة للخيط", "status.copy": "انسخ رابط الرسالة", "status.delete": "احذف", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 61ca40d8dbe8a2..46c536e429f471 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Вынікі пошуку", "emoji_button.symbols": "Сімвалы", "emoji_button.travel": "Падарожжы і месцы", - "empty_column.account_featured.other": "{acct} яшчэ нічога не адабраў для паказу. Ці ведалі Вы, што ў сваім профілі Вы можаце паказаць свае хэштэгі, якімі найбольш карыстаецеся, і нават профілі сваіх сяброў?", - "empty_column.account_featured_other.no_collections_desc": "{acct} пакуль не стварыў(-ла) аніводнай калекцыі.", - "empty_column.account_featured_other.title": "Тут нічога няма", - "empty_column.account_featured_self.no_collections": "Пакуль няма калекцый", "empty_column.account_featured_self.no_collections_button": "Стварыць калекцыю", "empty_column.account_featured_self.pre_collections": "Рыхтуйцеся да Калекцый", - "empty_column.account_featured_self.pre_collections_desc": "Калекцыі (новая функцыя Mastodon 4.6) дазволяць Вам ствараць свае ўласныя спісы ўліковых запісаў, каб раіць іх іншым.", - "empty_column.account_featured_unknown.no_collections_desc": "Гэты ўліковы запіс пакуль не стварыў аніводнай калекцыі.", "empty_column.account_featured_unknown.other": "Гэты ўліковы запіс пакуль нічога не адабраў для паказу.", "empty_column.account_hides_collections": "Гэты карыстальнік вырашыў схаваць гэтую інфармацыю", "empty_column.account_suspended": "Уліковы запіс прыпынены", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 506be6c9a3c09c..0253e35386a616 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -388,7 +388,6 @@ "emoji_button.search_results": "Resultats de la cerca", "emoji_button.symbols": "Símbols", "emoji_button.travel": "Viatges i llocs", - "empty_column.account_featured.other": "{acct} encara no ha destacat res. Sabeu que podeu destacar les etiquetes que més feu servir i fins i tot els comptes dels vostres amics al vostre perfil?", "empty_column.account_hides_collections": "Aquest usuari ha decidit no mostrar aquesta informació", "empty_column.account_suspended": "Compte suspès", "empty_column.account_timeline": "No hi ha tuts aquí!", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index b595af7f1d621e..d61c051c9c0279 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -439,7 +439,6 @@ "emoji_button.search_results": "Výsledky hledání", "emoji_button.symbols": "Symboly", "emoji_button.travel": "Cestování a místa", - "empty_column.account_featured.other": "{acct} zatím nic nezvýraznili. Věděli jste, že na svém profilu můžete zvýraznit hashtagy, které používáte nejvíce, a dokonce účty vašich přátel?", "empty_column.account_hides_collections": "Tento uživatel se rozhodl tuto informaci nezveřejňovat", "empty_column.account_suspended": "Účet je pozastaven", "empty_column.account_timeline": "Nejsou tu žádné příspěvky!", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 9923fe83e27077..f59cbeb886fe73 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -564,7 +564,6 @@ "emoji_button.search_results": "Canlyniadau chwilio", "emoji_button.symbols": "Symbolau", "emoji_button.travel": "Teithio a Llefydd", - "empty_column.account_featured.other": "Dyw {acct} heb gynnwys unrhyw beth eto. Oeddech chi'n gwybod y gallwch chi gynnwys yr hashnodau rydych chi'n eu defnyddio fwyaf, a hyd yn oed cyfrifon eich ffrindiau ar eich proffil?", "empty_column.account_hides_collections": "Mae'r defnyddiwr wedi dewis i beidio rhannu'r wybodaeth yma", "empty_column.account_suspended": "Cyfrif wedi'i atal", "empty_column.account_timeline": "Dim postiadau yma!", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 41cbdd6f2f25eb..2be81d3fbf27bc 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Søgeresultater", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Rejser og steder", - "empty_column.account_featured.other": "{acct} har ikke fremhævet noget endnu. Vidste du, at du kan fremhæve dine mest brugte hashtags og endda din vens konti på din profil?", - "empty_column.account_featured_other.no_collections_desc": "{acct} har endnu ikke oprettet nogen samlinger.", - "empty_column.account_featured_other.title": "Intet at se her", - "empty_column.account_featured_self.no_collections": "Ingen samlinger endnu", "empty_column.account_featured_self.no_collections_button": "Opret en samling", "empty_column.account_featured_self.pre_collections": "Hold udkig efter Samlinger", - "empty_column.account_featured_self.pre_collections_desc": "Med samlinger (kommer i Mastodon 4.6) kan du oprette dine egne kuraterede lister over konti, som du kan anbefale til andre.", - "empty_column.account_featured_unknown.no_collections_desc": "Denne konto har endnu ikke oprettet nogen samlinger.", "empty_column.account_featured_unknown.other": "Denne konto har ikke fremhævet noget endnu.", "empty_column.account_hides_collections": "Brugeren har valgt ikke at gøre denne information tilgængelig", "empty_column.account_suspended": "Konto suspenderet", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 8557f843d38e35..1ea940816f6030 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -45,6 +45,7 @@ "account.featured": "Vorgestellt", "account.featured.accounts": "Profile", "account.featured.collections": "Sammlungen", + "account.featured.new_collection": "Neue Sammlung", "account.field_overflow": "Vollständigen Inhalt anzeigen", "account.filters.all": "Alle Aktivitäten", "account.filters.boosts_toggle": "Geteilte Beiträge anzeigen", @@ -606,14 +607,12 @@ "emoji_button.search_results": "Suchergebnisse", "emoji_button.symbols": "Symbole", "emoji_button.travel": "Reisen & Orte", - "empty_column.account_featured.other": "{acct} hat bisher noch nichts vorgestellt. Wusstest du, dass du deine häufig verwendeten Hashtags und sogar Profile von Freund*innen vorstellen kannst?", - "empty_column.account_featured_other.no_collections_desc": "{acct} hat noch keine Sammlungen erstellt.", - "empty_column.account_featured_other.title": "Hier gibt es nichts zu sehen", - "empty_column.account_featured_self.no_collections": "Noch keine Sammlungen", + "empty_column.account_featured.other": "{acct} hat noch nichts vorgestellt.", "empty_column.account_featured_self.no_collections_button": "Sammlung erstellen", "empty_column.account_featured_self.pre_collections": "Sammlungen sind bald verfügbar", "empty_column.account_featured_self.pre_collections_desc": "Mit Sammlungen (neue Funktion in Mastodon 4.6) kannst du deine eigenen kuratierten Listen erstellen, um ausgewählte Konten zu empfehlen.", - "empty_column.account_featured_unknown.no_collections_desc": "Dieser Account hat noch keine Sammlungen erstellt.", + "empty_column.account_featured_self.showcase_accounts": "Präsentiere deine liebsten Konten", + "empty_column.account_featured_self.showcase_accounts_desc": "Sammlungen sind kuratierte Listen, die anderen helfen, mehr Konten im Fediverse zu entdecken.", "empty_column.account_featured_unknown.other": "Dieser Account hat noch nichts vorgestellt.", "empty_column.account_hides_collections": "Das Profil hat sich entschieden, diese Information nicht zu veröffentlichen", "empty_column.account_suspended": "Konto dauerhaft gesperrt", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index d28c118f7f7856..05e6d8ddb21f47 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Αποτελέσματα αναζήτησης", "emoji_button.symbols": "Σύμβολα", "emoji_button.travel": "Ταξίδια & Τοποθεσίες", - "empty_column.account_featured.other": "Ο/Η {acct} δεν έχει αναδείξει τίποτα ακόμη. Γνώριζες ότι μπορείς να αναδείξεις τις ετικέτες που χρησιμοποιείς περισσότερο, ακόμη και τους λογαριασμούς των φίλων σου στο προφίλ σου;", - "empty_column.account_featured_other.no_collections_desc": "Ο χρήστης {acct} δεν έχει δημιουργήσει ακόμη καμία συλλογή.", - "empty_column.account_featured_other.title": "Δεν υπάρχει τίποτα να δείτε εδώ", - "empty_column.account_featured_self.no_collections": "Καμία συλλογή ακόμη", "empty_column.account_featured_self.no_collections_button": "Δημιουργήστε μια συλλογή", "empty_column.account_featured_self.pre_collections": "Μείνετε συντονισμένοι για τις Συλλογές", - "empty_column.account_featured_self.pre_collections_desc": "Οι Συλλογές (που έρχονται στο Mastodon 4.6) σας επιτρέπουν να δημιουργήσετε τις δικές σας επιμελημένες λίστες λογαριασμών για να συστήσετε σε άλλους.", - "empty_column.account_featured_unknown.no_collections_desc": "Αυτός ο λογαριασμός δεν έχει δημιουργήσει ακόμη καμία συλλογή.", "empty_column.account_featured_unknown.other": "Αυτός ο λογαριασμός δεν έχει αναδείξει τίποτα ακόμη.", "empty_column.account_hides_collections": "Αυτός ο χρήστης έχει επιλέξει να μην καταστήσει αυτές τις πληροφορίες διαθέσιμες", "empty_column.account_suspended": "Λογαριασμός σε αναστολή", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 55141b0bf86c7f..433f01696e4e09 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -102,6 +102,7 @@ "account.muted": "Muted", "account.muting": "Muting", "account.mutual": "You follow each other", + "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", "account.name.help.footer": "Just like you can send emails to people using different email clients, you can interact with people on other Mastodon servers – and with anyone on other social apps powered by the same set of rules as Mastodon uses (the ActivityPub protocol).", @@ -138,6 +139,9 @@ "account.unmute": "Unmute @{name}", "account.unmute_notifications_short": "Unmute notifications", "account.unmute_short": "Unmute", + "account_edit.advanced_settings.bot_hint": "Signal to others that the account mainly performs automated actions and might not be monitored", + "account_edit.advanced_settings.bot_label": "Automated account", + "account_edit.advanced_settings.title": "Advanced settings", "account_edit.bio.add_label": "", "account_edit.bio.edit_label": "Edit bio", "account_edit.bio.placeholder": "Add a short introduction to help others identify you.", @@ -380,6 +384,7 @@ "collections.detail.sensitive_content": "Sensitive content", "collections.detail.sensitive_note": "This collection contains accounts and content that may be sensitive to some users.", "collections.detail.share": "Share this collection", + "collections.detail.you_are_in_this_collection": "You're featured in this collection", "collections.edit_details": "Edit details", "collections.error_loading_collections": "There was an error when trying to load your collections.", "collections.hints.accounts_counter": "{count} / {max} accounts", @@ -535,6 +540,7 @@ "content_warning.hide": "Hide post", "content_warning.show": "Show anyway", "content_warning.show_more": "Show more", + "content_warning.show_short": "Show", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", @@ -575,6 +581,14 @@ "domain_pill.your_server": "Your digital home, where all of your posts live. Don’t like this one? Transfer servers at any time and bring your followers too.", "domain_pill.your_username": "Your unique identifier on this server. It’s possible to find users with the same username on different servers.", "dropdown.empty": "Select an option", + "email_subscriptions.email": "Email", + "email_subscriptions.form.action": "Subscribe", + "email_subscriptions.form.bottom": "Get posts in your inbox without creating a Mastodon account. Unsubscribe at any time. For more information, refer to the
    Privacy Policy.", + "email_subscriptions.form.title": "Sign up for email updates from {name}", + "email_subscriptions.submitted.lead": "Check your inbox for an email to finish signing up for email updates.", + "email_subscriptions.submitted.title": "One more step", + "email_subscriptions.validation.email.blocked": "Blocked email provider", + "email_subscriptions.validation.email.invalid": "Invalid email address", "embed.instructions": "Embed this post on your website by copying the code below.", "embed.preview": "Here is what it will look like:", "emoji_button.activity": "Activity", @@ -592,7 +606,9 @@ "emoji_button.search_results": "Search results", "emoji_button.symbols": "Symbols", "emoji_button.travel": "Travel & Places", - "empty_column.account_featured.other": "{acct} has not featured anything yet.", + "empty_column.account_featured_self.no_collections_button": "Create a collection", + "empty_column.account_featured_self.pre_collections": "Stay tuned for Collections", + "empty_column.account_featured_unknown.other": "This account hasn’t featured anything yet.", "empty_column.account_hides_collections": "This user has chosen not to make this information available", "empty_column.account_suspended": "Account suspended", "empty_column.account_timeline": "No posts here!", @@ -632,6 +648,10 @@ "featured_carousel.header": "{count, plural, one {Pinned Post} other {Pinned Posts}}", "featured_carousel.slide": "Post {current, number} of {max, number}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions": "Lately you’ve posted about {items}. Add these as featured hashtags?", + "featured_tags.suggestions.add": "Add", + "featured_tags.suggestions.added": "Manage your featured hashtags at any time under Edit Profile > Featured hashtags.", + "featured_tags.suggestions.dismiss": "No thanks", "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.", "filter_modal.added.context_mismatch_title": "Context mismatch!", "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.", @@ -674,7 +694,9 @@ "follow_suggestions.who_to_follow": "Who to follow", "followed_tags": "Followed hashtags", "followers.hide_other_followers": "This user has chosen not to make their other followers visible", + "followers.title": "Following {name}", "following.hide_other_following": "This user has chosen not to make the rest of who they follow visible", + "following.title": "Followed by {name}", "footer.about": "About", "footer.about_mastodon": "About Mastodon", "footer.about_server": "About {domain}", @@ -686,6 +708,7 @@ "footer.source_code": "View source code", "footer.status": "Status", "footer.terms_of_service": "Terms of service", + "form_error.blank": "Field cannot be blank.", "form_field.optional": "(optional)", "generic.saved": "Saved", "getting_started.heading": "Getting started", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 0f75ffd404edfc..68185e7f55df5a 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -45,6 +45,7 @@ "account.featured": "Destacados", "account.featured.accounts": "Perfiles", "account.featured.collections": "Colecciones", + "account.featured.new_collection": "Nueva colección", "account.field_overflow": "Mostrar contenido completo", "account.filters.all": "Toda la actividad", "account.filters.boosts_toggle": "Mostrar adhesiones", @@ -606,14 +607,12 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", - "empty_column.account_featured.other": "{acct} todavía no destacó nada. ¿Sabías que en tu perfil podés destacar tus etiquetas que más usás e incluso las cuentas de tus contactos?", - "empty_column.account_featured_other.no_collections_desc": "{acct} todavía no creó ninguna colección.", - "empty_column.account_featured_other.title": "No hay nada por acá", - "empty_column.account_featured_self.no_collections": "No hay colecciones aún", + "empty_column.account_featured.other": "{acct} todavía no destacó nada.", "empty_column.account_featured_self.no_collections_button": "Crear colección", "empty_column.account_featured_self.pre_collections": "Mantenete pendiente de las colecciones", - "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (que vendrán en Mastodon 4.6) te permite crear tus propias listas de cuentas seleccionadas para recomendar a otras personas.", - "empty_column.account_featured_unknown.no_collections_desc": "Esta cuenta todavía no creó ninguna colección.", + "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (que vendrán en Mastodon 4.6) te permiten crear tus propias listas de cuentas seleccionadas para recomendar a otras personas.", + "empty_column.account_featured_self.showcase_accounts": "Mostrá tus cuentas favoritas", + "empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas para ayudar a otras personas a descubrir más del Fediverso.", "empty_column.account_featured_unknown.other": "Esta cuenta todavía no destacó nada.", "empty_column.account_hides_collections": "Este usuario eligió no publicar esta información", "empty_column.account_suspended": "Cuenta suspendida", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d007725d2180be..adb67b4b5ec0be 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -45,6 +45,7 @@ "account.featured": "Destacado", "account.featured.accounts": "Perfiles", "account.featured.collections": "Colecciones", + "account.featured.new_collection": "Nueva colección", "account.field_overflow": "Mostrar contenido completo", "account.filters.all": "Toda la actividad", "account.filters.boosts_toggle": "Mostrar impulsos", @@ -606,14 +607,11 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", - "empty_column.account_featured.other": "{acct} no ha destacado nada todavía. ¿Sabías que puedes destacar las etiquetas que más usas e incluso las cuentas de tus amigos en tu perfil?", - "empty_column.account_featured_other.no_collections_desc": "{acct} aún no ha creado ninguna colección.", - "empty_column.account_featured_other.title": "Aquí no hay nada que ver", - "empty_column.account_featured_self.no_collections": "Aún no hay colecciones", "empty_column.account_featured_self.no_collections_button": "Crear una colección", "empty_column.account_featured_self.pre_collections": "No te pierdas las colecciones", - "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (disponibles en Mastodon 4.6) te permiten crear tus propias listas seleccionadas de cuentas para recomendarlas a otras personas.", - "empty_column.account_featured_unknown.no_collections_desc": "Esta cuenta aún no ha creado ninguna colección.", + "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (disponibles a partir de Mastodon 4.6) te permiten crear tu propia lista de cuentas seleccionadas que para recomendarlas a otros.", + "empty_column.account_featured_self.showcase_accounts": "Muestra tus cuentas favoritas", + "empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas para ayudar a otros a descubrir más del Fediverso.", "empty_column.account_featured_unknown.other": "Esta cuenta no ha destacado nada todavía.", "empty_column.account_hides_collections": "Este usuario ha elegido no hacer disponible esta información", "empty_column.account_suspended": "Cuenta suspendida", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 4969d28e52202c..5f5fa97e5b7a33 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -45,6 +45,7 @@ "account.featured": "Destacado", "account.featured.accounts": "Perfiles", "account.featured.collections": "Colecciones", + "account.featured.new_collection": "Nueva colección", "account.field_overflow": "Mostrar contenido completo", "account.filters.all": "Toda la actividad", "account.filters.boosts_toggle": "Mostrar impulsos", @@ -606,14 +607,11 @@ "emoji_button.search_results": "Resultados de búsqueda", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viajes y lugares", - "empty_column.account_featured.other": "{acct} aún no ha destacado nada. ¿Sabías que puedes destacar las etiquetas que más usas e incluso las cuentas de tus amigos en tu perfil?", - "empty_column.account_featured_other.no_collections_desc": "{acct} aún no ha creado ninguna colección.", - "empty_column.account_featured_other.title": "Nada que ver aquí", - "empty_column.account_featured_self.no_collections": "Aún no hay colecciones", "empty_column.account_featured_self.no_collections_button": "Crear una colección", "empty_column.account_featured_self.pre_collections": "No te pierdas las Colecciones", - "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (disponibles en Mastodon 4.6) te permiten crear tus propias listas seleccionadas de cuentas para recomendarlas a otras personas.", - "empty_column.account_featured_unknown.no_collections_desc": "Esta cuenta aún no ha creado ninguna colección.", + "empty_column.account_featured_self.pre_collections_desc": "Las colecciones (disponibles a partir de Mastodon 4.6) te permiten crear tu propia lista de cuentas seleccionadas que para recomendarlas a otros.", + "empty_column.account_featured_self.showcase_accounts": "Muestra tus cuentas favoritas", + "empty_column.account_featured_self.showcase_accounts_desc": "Las colecciones son listas de cuentas seleccionadas para ayudar a otros a descubrir más del Fediverso.", "empty_column.account_featured_unknown.other": "Esta cuenta no ha destacado nada todavía.", "empty_column.account_hides_collections": "Este usuario ha decidido no mostrar esta información", "empty_column.account_suspended": "Cuenta suspendida", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index f91fef4268c9e8..1056222f3732e7 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -560,7 +560,6 @@ "emoji_button.search_results": "Otsitulemused", "emoji_button.symbols": "Sümbolid", "emoji_button.travel": "Reisimine & kohad", - "empty_column.account_featured.other": "{acct} pole veel midagi esile tõstnud. Kas teadsid, et oma profiilis saad esile tõsta rohkem kasutatud teemaviiteid või sõbra kasutajakontot?", "empty_column.account_hides_collections": "See kasutaja otsustas mitte teha seda infot saadavaks", "empty_column.account_suspended": "Konto kustutatud", "empty_column.account_timeline": "Siin postitusi ei ole!", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 576297b5ee113b..16107dd9568a73 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -355,7 +355,6 @@ "emoji_button.search_results": "Bilaketaren emaitzak", "emoji_button.symbols": "Sinboloak", "emoji_button.travel": "Bidaiak eta tokiak", - "empty_column.account_featured.other": "{acct}-ek ez du ezer nabarmendu oraindik. Ba al zenekien gehien erabiltzen dituzun traolak eta baita zure lagunen kontuak ere zure profilean nabarmendu ditzakezula?", "empty_column.account_hides_collections": "Erabiltzaile honek informazio hau erabilgarri ez egotea aukeratu du.", "empty_column.account_suspended": "Kanporatutako kontua", "empty_column.account_timeline": "Ez dago bidalketarik hemen!", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index a4caa072f5997d..a6cd1c20a8252b 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -355,7 +355,6 @@ "emoji_button.search_results": "نتایج جست‌وجو", "emoji_button.symbols": "نمادها", "emoji_button.travel": "سفر و مکان", - "empty_column.account_featured.other": "{acct} هنوز هیچ چیزی را پیشنهاد نکرده است. آیا می‌دانستید که می‌توانید برچسب‌هایی را که بیشتر استفاده می‌کنید و حتی حساب‌های کاربری دوستانتان را در نمایه خود پیشنهاد کنید؟", "empty_column.account_hides_collections": "کاربر خواسته که این اطّلاعات در دسترس نباشند", "empty_column.account_suspended": "حساب معلق شد", "empty_column.account_timeline": "هیچ فرسته‌ای این‌جا نیست!", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 27ab83683fe32b..52b2c68f357e50 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Hakutulokset", "emoji_button.symbols": "Symbolit", "emoji_button.travel": "Matkailu ja paikat", - "empty_column.account_featured.other": "{acct} ei esittele vielä mitään. Tiesitkö, että voit esitellä profiilissasi eniten käyttämiäsi aihetunnisteita ja jopa ystäviesi tilejä?", - "empty_column.account_featured_other.no_collections_desc": "{acct} ei ole luonut vielä yhtään kokoelmaa.", - "empty_column.account_featured_other.title": "Täällä ei mitään nähtävää", - "empty_column.account_featured_self.no_collections": "Ei vielä kokoelmia", "empty_column.account_featured_self.no_collections_button": "Luo kokoelma", "empty_column.account_featured_self.pre_collections": "Ole valmiina kokoelmiin", - "empty_column.account_featured_self.pre_collections_desc": "Kokoelmien (tulossa Mastodon 4.6:ssa) avulla voit luoda valikoidun listan muille suosittelemiasi tilejä.", - "empty_column.account_featured_unknown.no_collections_desc": "Tämä tili ei ole luonut vielä yhtään kokoelmaa.", "empty_column.account_featured_unknown.other": "Tämä tili ei esittele vielä mitään.", "empty_column.account_hides_collections": "Käyttäjä on päättänyt pitää nämä tiedot yksityisinä", "empty_column.account_suspended": "Tili jäädytetty", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 98eca98c8041c0..0ce3fe9407c85a 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -504,7 +504,6 @@ "emoji_button.search_results": "Leitiúrslit", "emoji_button.symbols": "Ímyndir", "emoji_button.travel": "Ferðing og støð", - "empty_column.account_featured.other": "{acct} hevur ikki tikið nakað fram enn. Visti tú, at tú kanst taka fram tey frámerki, tú brúkar mest, og sjálvt kontur hjá vinum tínum á vangan hjá tær?", "empty_column.account_hides_collections": "Hesin brúkarin hevur valt, at hesar upplýsingarnar ikki skulu vera tøkar", "empty_column.account_suspended": "Kontan gjørd óvirkin", "empty_column.account_timeline": "Einki uppslag her!", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index a6cc8ba3511799..b6c24f13818726 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Résultats", "emoji_button.symbols": "Symboles", "emoji_button.travel": "Voyage et lieux", - "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?", - "empty_column.account_featured_other.no_collections_desc": "{acct} n'a pas encore créé de collection.", - "empty_column.account_featured_other.title": "Il n'y a rien à voir", - "empty_column.account_featured_self.no_collections": "Aucune collection pour le moment", "empty_column.account_featured_self.no_collections_button": "Créer une collection", "empty_column.account_featured_self.pre_collections": "Restez à l'écoute pour les collections", - "empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) vous permettent d'organiser vos propres listes de comptes à recommander aux autres.", - "empty_column.account_featured_unknown.no_collections_desc": "Ce compte n'a pas encore créé de collection.", "empty_column.account_featured_unknown.other": "Ce compte n'a mis aucun contenu en avant pour l'instant.", "empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations", "empty_column.account_suspended": "Compte suspendu", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 48cbdff5b85db2..82e64518ed4e7d 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Résultats de la recherche", "emoji_button.symbols": "Symboles", "emoji_button.travel": "Voyage et lieux", - "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant. Saviez-vous que vous pouviez mettre en avant les hashtags que vous utilisez le plus, et même les comptes de vos amis sur votre profil ?", - "empty_column.account_featured_other.no_collections_desc": "{acct} n'a pas encore créé de collection.", - "empty_column.account_featured_other.title": "Il n'y a rien à voir", - "empty_column.account_featured_self.no_collections": "Aucune collection pour le moment", "empty_column.account_featured_self.no_collections_button": "Créer une collection", "empty_column.account_featured_self.pre_collections": "Restez à l'écoute pour les collections", - "empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) vous permettent d'organiser vos propres listes de comptes à recommander aux autres.", - "empty_column.account_featured_unknown.no_collections_desc": "Ce compte n'a pas encore créé de collection.", "empty_column.account_featured_unknown.other": "Ce compte n'a mis aucun contenu en avant pour l'instant.", "empty_column.account_hides_collections": "Cet utilisateur·ice préfère ne pas rendre publiques ces informations", "empty_column.account_suspended": "Compte suspendu", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 49aa8c3db57c03..b998c1a826afde 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -285,7 +285,6 @@ "emoji_button.search_results": "Sykresultaten", "emoji_button.symbols": "Symboalen", "emoji_button.travel": "Reizgje en lokaasjes", - "empty_column.account_featured.other": "{acct} hat noch neat útljochte. Wisten jo dat jo jo hashtags dy’t jo it meast brûke, en sels de accounts fan dyn freonen fermelde kinne op jo profyl?", "empty_column.account_hides_collections": "Dizze brûker hat derfoar keazen dizze ynformaasje net beskikber te meitsjen", "empty_column.account_suspended": "Account beskoattele", "empty_column.account_timeline": "Hjir binne gjin berjochten!", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 5c9783bfc9ce2c..774f62a5c01dc3 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -581,7 +581,9 @@ "domain_pill.your_server": "Do theach digiteach, áit a bhfuil do phoist go léir ina gcónaí. Nach maith leat an ceann seo? Aistrigh freastalaithe am ar bith agus tabhair leat do leantóirí freisin.", "domain_pill.your_username": "D'aitheantóir uathúil ar an bhfreastalaí seo. Is féidir teacht ar úsáideoirí leis an ainm úsáideora céanna ar fhreastalaithe éagsúla.", "dropdown.empty": "Roghnaigh rogha", + "email_subscriptions.email": "Ríomhphost", "email_subscriptions.form.action": "Liostáil", + "email_subscriptions.form.bottom": "Faigh poist i do bhosca isteach gan cuntas Mastodon a chruthú. Díliostáil ag am ar bith. Le haghaidh tuilleadh eolais, féach ar an Polasaí Príobháideachta.", "email_subscriptions.form.title": "Cláraigh le haghaidh nuashonruithe ríomhphoist ó {name}", "email_subscriptions.submitted.lead": "Seiceáil do bhosca isteach le haghaidh ríomhphoist chun clárú le haghaidh nuashonruithe ríomhphoist a chríochnú.", "email_subscriptions.submitted.title": "Céim amháin eile", @@ -604,14 +606,8 @@ "emoji_button.search_results": "Torthaí cuardaigh", "emoji_button.symbols": "Comharthaí", "emoji_button.travel": "Taisteal ⁊ Áiteanna", - "empty_column.account_featured.other": "Níl aon rud feicthe ag {acct} go fóill. An raibh a fhios agat gur féidir leat na hashtags is mó a úsáideann tú, agus fiú cuntais do chairde, a chur ar do phróifíl?", - "empty_column.account_featured_other.no_collections_desc": "Níl aon bhailiúcháin cruthaithe ag {acct} go fóill.", - "empty_column.account_featured_other.title": "Níl aon rud le feiceáil anseo", - "empty_column.account_featured_self.no_collections": "Gan aon bhailiúcháin fós", "empty_column.account_featured_self.no_collections_button": "Cruthaigh bailiúchán", "empty_column.account_featured_self.pre_collections": "Fan tiúnta le haghaidh bailiúcháin", - "empty_column.account_featured_self.pre_collections_desc": "Le bailiúcháin (atá ag teacht i Mastodon 4.6) is féidir leat do liostaí cuntas féin a chruthú le moladh do dhaoine eile.", - "empty_column.account_featured_unknown.no_collections_desc": "Níl aon bhailiúcháin cruthaithe ag an gcuntas seo go fóill.", "empty_column.account_featured_unknown.other": "Níl aon rud le feiceáil ar an gcuntas seo go fóill.", "empty_column.account_hides_collections": "Roghnaigh an t-úsáideoir seo gan an fhaisnéis seo a chur ar fáil", "empty_column.account_suspended": "Cuntas ar fionraí", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 5e706643abb4a6..ca1f9bde0809ee 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -605,12 +605,7 @@ "emoji_button.search_results": "Toraidhean an luirg", "emoji_button.symbols": "Samhlaidhean", "emoji_button.travel": "Siubhal ⁊ àitichean", - "empty_column.account_featured.other": "Chan eil {acct} a’ brosnachadh dad fhathast. An robh fios agad gur urrainn dhut na tagaichean hais a chleachdas tu as trice agus fiù ’s cunntasan do charaidean a bhrosnachadh air a’ phròifil agad?", - "empty_column.account_featured_other.no_collections_desc": "Cha do chruthaich {acct} cruinneachadh sam bith fhathast.", - "empty_column.account_featured_other.title": "Chan eil dad ri fhaicinn an-seo", - "empty_column.account_featured_self.no_collections": "Chan eil cruinneachadh ann fhathast", "empty_column.account_featured_self.no_collections_button": "Cruthaich cruinneachadh", - "empty_column.account_featured_unknown.no_collections_desc": "Cha do chruthaich an cunntas seo cruinneachadh sam bith fhathast.", "empty_column.account_featured_unknown.other": "Chan eil an cunntas seo a’ brosnachadh dad fhathast.", "empty_column.account_hides_collections": "Chuir an cleachdaiche seo roimhe nach eil am fiosrachadh seo ri fhaighinn", "empty_column.account_suspended": "Chaidh an cunntas a chur à rèim", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index a62dd129c96af3..f1d3a12950c9bb 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -605,14 +605,8 @@ "emoji_button.search_results": "Resultados da procura", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viaxes e Lugares", - "empty_column.account_featured.other": "{acct} aínda non escolleu nada para destacar. Sabías que podes facer destacatar no teu perfil os cancelos que máis usas, incluso os perfís das túas amizades?", - "empty_column.account_featured_other.no_collections_desc": "{acct} aínda non creou ningunha colección.", - "empty_column.account_featured_other.title": "Non hai nada que ver aquí", - "empty_column.account_featured_self.no_collections": "Aínda non tes coleccións", "empty_column.account_featured_self.no_collections_button": "Crea unha colección", "empty_column.account_featured_self.pre_collections": "Van chegar as Coleccións", - "empty_column.account_featured_self.pre_collections_desc": "Coas Coleccións (a partir de Mastodon 4.6) podes crear as túas listas persoais de contas para recomendar a outras persoas.", - "empty_column.account_featured_unknown.no_collections_desc": "Esta conta aínda non creou ningunha colección.", "empty_column.account_featured_unknown.other": "Esta conta aínda non destacou nada.", "empty_column.account_hides_collections": "A usuaria decideu non facer pública esta información", "empty_column.account_suspended": "Conta suspendida", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 7b2549c1928805..b1de04270dfcc7 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -102,6 +102,7 @@ "account.muted": "מושתק", "account.muting": "רשימת החשבונות המושתקים", "account.mutual": "אתם עוקביםות הדדית", + "account.name.copy": "העתקת הכינוי", "account.name.help.domain": "{domain} הוא השרת שמארח את פרופיל המשתמש(ת) וההודעות שכתב(ה).", "account.name.help.domain_self": "{domain} הוא השרת שמארח את פרופיל המשתמש(ת) שלך ואת ההודעות שכתבת.", "account.name.help.footer": "בדיוק כמו שתוכלו לשלוח דואל לאנשים דרך תוכנות דואל שונות, ניתן להיות בקשר עם אנשים על שרתי מסטודון וכל אדם בשרתי פדיברס (המשתמשים בפרוטוכול אקטיביטיפאב ActivityPub).", @@ -138,6 +139,9 @@ "account.unmute": "הפסקת השתקת @{name}", "account.unmute_notifications_short": "הפעלת הודעות", "account.unmute_short": "ביטול השתקה", + "account_edit.advanced_settings.bot_hint": "איתות לאחרים שהחשבון מבצע בעיקר פעולות אוטומטיות ועשוי לא להיות מנוטר", + "account_edit.advanced_settings.bot_label": "חשבון ממוכן (בוט)", + "account_edit.advanced_settings.title": "הגדרות מתקדמות", "account_edit.bio.add_label": "הוסיפו ביוגרפיה", "account_edit.bio.edit_label": "עריכת ביוגרפיה", "account_edit.bio.placeholder": "הוסיפו הצגה קצרה כדי לעזור לאחרים לזהות אותך.", @@ -577,7 +581,9 @@ "domain_pill.your_server": "הבית המקוון שלך, היכן ששוכנות כל הודעותיך. לא מוצא חן בעיניך? ניתן לעבור שרתים בכל עת וגם לשמור על העוקבים.", "domain_pill.your_username": "המזהה הייחודי שלך על שרת זה. ניתן למצוא משתמשים עם שם משתמש זהה על שרתים שונים.", "dropdown.empty": "בחירת אפשרות", + "email_subscriptions.email": "דוא״ל", "email_subscriptions.form.action": "הרשמה", + "email_subscriptions.form.bottom": "קבלו הודעות לתיבת הדואל מבלי ליצור חשבון מסטודון. ניתן לבטל בכל עת. למידע נוסף, קראו במדיניות הפרטיות.", "email_subscriptions.form.title": "הרשמה לקבלת עידכוני דואל מאת {name}", "email_subscriptions.submitted.lead": "יש לחפש בתיבת הדואל הודעה לסיום ההרשמה לעידכונים בדואל.", "email_subscriptions.submitted.title": "עוד שלב אחד אחרון", @@ -600,14 +606,8 @@ "emoji_button.search_results": "תוצאות חיפוש", "emoji_button.symbols": "סמלים", "emoji_button.travel": "טיולים ואתרים", - "empty_column.account_featured.other": "{acct} עוד לא קידם תכנים. הידעת שניתן לקדם תגיות שבשימושך התדיר או אפילו את החשבונות של חבריםות בפרופיל שלך?", - "empty_column.account_featured_other.no_collections_desc": "{acct} עוד לא יצרו אוספים.", - "empty_column.account_featured_other.title": "אין כאן מה לראות", - "empty_column.account_featured_self.no_collections": "עוד אין אוספים", "empty_column.account_featured_self.no_collections_button": "יצירת אוסף", "empty_column.account_featured_self.pre_collections": "אוספים בקרוב על מסך זה", - "empty_column.account_featured_self.pre_collections_desc": "אוספים (מגיע במסטודון גרסא 4.6) יאפשרו לך לאצור רשימות חשבונות להמלצה לאחרים.", - "empty_column.account_featured_unknown.no_collections_desc": "בחשבון זה עוד לא יצרו אוספים.", "empty_column.account_featured_unknown.other": "חשבון זה עוד לא קידם תכנים.", "empty_column.account_hides_collections": "המשתמש.ת בחר.ה להסתיר מידע זה", "empty_column.account_suspended": "חשבון מושעה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 44e46fc11bd2e3..25ba76e6be35b5 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Keresési találatok", "emoji_button.symbols": "Szimbólumok", "emoji_button.travel": "Utazás és helyek", - "empty_column.account_featured.other": "{acct} még semmit sem emelt ki. Tudtad, hogy kiemelheted a profilodon a legtöbbet használt hashtageidet, és még a barátaid fiókját is?", - "empty_column.account_featured_other.no_collections_desc": "{acct} még nem hozott létre gyűjteményt.", - "empty_column.account_featured_other.title": "Nincs itt semmi látnivaló", - "empty_column.account_featured_self.no_collections": "Még nincsenek gyűjtemények", "empty_column.account_featured_self.no_collections_button": "Gyűjtemény létrehozása", "empty_column.account_featured_self.pre_collections": "Készülj fel a gyűjteményekre", - "empty_column.account_featured_self.pre_collections_desc": "A gyűjtemények (a Mastodon 4.6-ban érkezik) lehetővé teszik, hogy létrehozd a saját válogatott fióklistáidat, és ajánld másoknak.", - "empty_column.account_featured_unknown.no_collections_desc": "Ez a fiók még nem hozott létre gyűjteményt.", "empty_column.account_featured_unknown.other": "Ez a fiók még nem emelt ki semmit.", "empty_column.account_hides_collections": "Ez a felhasználó úgy döntött, hogy nem teszi elérhetővé ezt az információt.", "empty_column.account_suspended": "Fiók felfüggesztve", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index c1f4e610027d9d..96e5e2bbd2e6b9 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -314,7 +314,6 @@ "emoji_button.search_results": "Resultatos de recerca", "emoji_button.symbols": "Symbolos", "emoji_button.travel": "Viages e locos", - "empty_column.account_featured.other": "{acct} non ha ancora mittite alcun cosa in evidentia. Sapeva tu que tu pote mitter in evidentia sur tu profilo le hashtags que tu usa le plus e mesmo le contos de tu amicos?", "empty_column.account_hides_collections": "Le usator non ha rendite iste information disponibile", "empty_column.account_suspended": "Conto suspendite", "empty_column.account_timeline": "Nulle messages hic!", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index bf58808185f216..e9004a070c483a 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -366,7 +366,6 @@ "emoji_button.search_results": "Trovuri", "emoji_button.symbols": "Simboli", "emoji_button.travel": "Vizito & Plasi", - "empty_column.account_featured.other": "{acct} ne estalas irga ankore. Ka vu savas?", "empty_column.account_hides_collections": "Ca uzanto selektis ne publikigar ca informo", "empty_column.account_suspended": "Konto restriktesis", "empty_column.account_timeline": "No toots here!", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 323005aee3ad5e..721b5191dad50e 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -45,6 +45,7 @@ "account.featured": "Með aukið vægi", "account.featured.accounts": "Notendasnið", "account.featured.collections": "Söfn", + "account.featured.new_collection": "Nýtt safn", "account.field_overflow": "Birta allt efnið", "account.filters.all": "Öll virkni", "account.filters.boosts_toggle": "Sýna endurbirtingar", @@ -606,14 +607,12 @@ "emoji_button.search_results": "Leitarniðurstöður", "emoji_button.symbols": "Tákn", "emoji_button.travel": "Ferðalög og staðir", - "empty_column.account_featured.other": "{acct} hefur enn ekki sett neitt sem áberandi. Vissirðu að þú getur gefið meira vægi á notandasniðinu þínu ýmsum myllumerkjum sem þú notar oft og jafnvel aðgöngum vina þinna?", - "empty_column.account_featured_other.no_collections_desc": "{acct} hefur enn ekki útbúið nein söfn.", - "empty_column.account_featured_other.title": "Ekkert að sjá hér", - "empty_column.account_featured_self.no_collections": "Engin söfn ennþá", + "empty_column.account_featured.other": "{acct} hefur enn ekki gefið neinu aukið vægi.", "empty_column.account_featured_self.no_collections_button": "Búa til safn", "empty_column.account_featured_self.pre_collections": "Kynntu þér hvað séu söfn", "empty_column.account_featured_self.pre_collections_desc": "Söfn (sem koma fram í Mastodon 4.6) gera þér kleift að búa til þina eigin ritstýrðu lista yfir þá aðganga sem þú vilt mæla með við aðra.", - "empty_column.account_featured_unknown.no_collections_desc": "Þessi notandi hefur enn ekki útbúið nein söfn.", + "empty_column.account_featured_self.showcase_accounts": "Kynntu eftirlætisaðgangana þína", + "empty_column.account_featured_self.showcase_accounts_desc": "Söfn eru ritstýrðir listar yfir aðganga til að hjálpa öðrum að uppgötva fleira á samfélagsnetinu.", "empty_column.account_featured_unknown.other": "Þessi notandi hefur enn ekki sett neitt með meira vægi.", "empty_column.account_hides_collections": "Notandinn hefur valið að gera ekki tiltækar þessar upplýsingar", "empty_column.account_suspended": "Notandaaðgangur í frysti", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 4f4b70c6ce65ba..0fb937064dad9b 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Risultati della ricerca", "emoji_button.symbols": "Simboli", "emoji_button.travel": "Viaggi & Luoghi", - "empty_column.account_featured.other": "{acct} non ha ancora messo in evidenza nulla. Sapevi che puoi mettere in evidenza gli hashtag che usi più spesso e persino gli account dei tuoi amici sul tuo profilo?", - "empty_column.account_featured_other.no_collections_desc": "{acct} non ha ancora creato alcuna collezione.", - "empty_column.account_featured_other.title": "Niente da vedere qui", - "empty_column.account_featured_self.no_collections": "Nessuna collezione ancora", "empty_column.account_featured_self.no_collections_button": "Crea una collezione", "empty_column.account_featured_self.pre_collections": "Resta sintonizzato/a per le collezioni", - "empty_column.account_featured_self.pre_collections_desc": "Le collezioni (in arrivo su Mastodon 4.6) ti consentono di creare i tuoi elenchi curati di account da consigliare ad altri.", - "empty_column.account_featured_unknown.no_collections_desc": "Questo account non ha ancora creato alcuna collezione.", "empty_column.account_featured_unknown.other": "Questo account non ha ancora presentato nulla.", "empty_column.account_hides_collections": "Questo utente ha scelto di non rendere disponibili queste informazioni", "empty_column.account_suspended": "Profilo sospeso", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 89d60eae892e13..0cb45f62dda68f 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -341,7 +341,6 @@ "emoji_button.search_results": "検索結果", "emoji_button.symbols": "記号", "emoji_button.travel": "旅行と場所", - "empty_column.account_featured.other": "{acct}ではまだ何もフィーチャーされていません。最もよく使うハッシュタグや、更には友達のアカウントまでプロフィール上でフィーチャーできると知っていましたか?", "empty_column.account_hides_collections": "このユーザーはこの情報を開示しないことにしています。", "empty_column.account_suspended": "アカウントは停止されています", "empty_column.account_timeline": "投稿がありません!", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index b1711c7c6fc487..7afb4b33c4197c 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -36,6 +36,7 @@ "account.familiar_followers_one": "Yeṭṭafar-it {name1}", "account.familiar_followers_two": "Yeṭṭafar-it {name1} akked {name2}", "account.featured.accounts": "Imeɣna", + "account.featured.collections": "Tilkensa", "account.filters.posts_only": "Tisuffaɣ", "account.filters.posts_replies": "Tisuffaɣ d tririyin", "account.filters.replies_toggle": "Sken-d tiririyin", @@ -95,6 +96,7 @@ "account.share": "Bḍu amaɣnu n @{name}", "account.show_reblogs": "Ssken-d inebḍa n @{name}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", + "account.timeline.pinned": "Yettwasenṭeḍ", "account.unblock": "Serreḥ i @{name}", "account.unblock_domain": "Ssken-d {domain}", "account.unblock_domain_short": "Serreḥ", @@ -104,6 +106,34 @@ "account.unmute": "Kkes asgugem ɣef @{name}", "account.unmute_notifications_short": "Serreḥ i yilɣa", "account.unmute_short": "Kkes asgugem", + "account_edit.advanced_settings.bot_label": "Amiḍan awurman", + "account_edit.advanced_settings.title": "Iɣewwaren leqqayen", + "account_edit.bio.add_label": "Rnu tameddurt", + "account_edit.bio.edit_label": "Ẓreg tameddurt", + "account_edit.bio.title": "Tameddurt", + "account_edit.bio_modal.add_title": "Rnu tameddurt", + "account_edit.bio_modal.edit_title": "Ẓreg tameddurt", + "account_edit.column_button": "Immed", + "account_edit.column_title": "Ẓreg amaɣnu", + "account_edit.custom_fields.add_label": "Rnu urti", + "account_edit.field_actions.delete": "Kkes urti", + "account_edit.field_actions.edit": "Ẓreg urti", + "account_edit.field_delete_modal.delete_button": "Kkes", + "account_edit.field_edit_modal.value_hint": "Amedya “https://example.me”", + "account_edit.field_edit_modal.value_label": "Azal", + "account_edit.image_alt_modal.add_title": "Rnu aḍris amlellay", + "account_edit.image_alt_modal.edit_title": "Ẓreg aḍris amlellay", + "account_edit.image_alt_modal.text_label": "Aḍris amlellay", + "account_edit.image_delete_modal.delete_button": "Kkes", + "account_edit.image_edit.add_button": "Rnu tugna", + "account_edit.image_edit.alt_add_button": "Rnu aḍris amlellay", + "account_edit.image_edit.alt_edit_button": "Ẓreg aḍris amlellay", + "account_edit.image_edit.remove_button": "Kkes tugna", + "account_edit.image_edit.replace_button": "Semselsi tugna", + "account_edit.item_list.delete": "Kkes {name}", + "account_edit.item_list.edit": "Ẓreg {name}", + "account_edit.profile_tab.button_label": "Sagen", + "account_edit_tags.add_tag": "Rnu #{tagName}", "account_note.placeholder": "Ulac iwenniten", "admin.dashboard.retention.cohort_size": "Iseqdacen imaynuten", "alert.rate_limited.message": "Ma ulac aɣilif ɛreḍ tikelt-nniḍen akka {retry_time, time, medium}.", @@ -159,13 +189,43 @@ "closed_registrations_modal.description": "Asnulfu n umiḍan deg {domain} mačči d ayen izemren ad yili, maca ttxil-k·m, err deg lbal-ik·im belli ur teḥwaǧeḍ ara amiḍan s wudem ibanen ɣef {domain} akken ad tesqedceḍ Mastodon.", "closed_registrations_modal.find_another_server": "Aff-d aqeddac nniḍen", "closed_registrations_modal.title": "Ajerred deg Masṭudun", + "collection.share_modal.share_link_label": "Aseɣwen ara tezzureḍ", + "collection.share_modal.share_via_post": "Asuffeɣ deg Matodon", + "collection.share_modal.share_via_system": "Zuzer s…", + "collection.share_modal.title": "Bḍu talkensit", + "collection.share_modal.title_new": "Zuzer talkensit-ik·im tamaynut!", + "collections.accounts.empty_title": "Talkensit-a d tilemt", + "collections.by_account": "sɣur {account_handle}", "collections.collection_description": "Aglam", + "collections.collection_language": "Tutlayt", + "collections.collection_language_none": "Ula yiwet", "collections.collection_name": "Isem", + "collections.collection_topic": "Asentel", "collections.continue": "Kemmel", + "collections.create_collection": "Snulfu-d talkensit", + "collections.delete_collection": "Kkes talkensit", + "collections.detail.accounts_heading": "Imiḍanen", + "collections.detail.loading": "Aɛebbi n telkensit…", + "collections.detail.revoke_inclusion": "Kkes-iyi", + "collections.detail.sensitive_content": "Agbur amḥulfu", + "collections.detail.share": "Zuzer talkensit-a", + "collections.edit_details": "Ẓreg talqayt", + "collections.hints.accounts_counter": "{count} / {max} n yimiḍanen", "collections.manage_accounts": "Sefrek imiḍanen", + "collections.new_collection": "Talkensit tamaynut", + "collections.no_collections_yet": "Ur ɛad llant tilkensa.", + "collections.remove_account": "Kkes amiḍan-a", + "collections.report_collection": "Cetki ɣef telkensit-a", + "collections.revoke_collection_inclusion": "Kkes-iyi seg telkensit-a", + "collections.search_accounts_label": "Nadi ɣef imiḍanen ara ternuḍ…", + "collections.view_collection": "Wali talkensit", + "collections.view_other_collections_by_user": "Wali tilkensa nniḍen sɣur useqdac-a", + "collections.visibility_public": "Azayaz", + "collections.visibility_title": "Abani", "column.about": "Ɣef", "column.blocks": "Imiḍanen yettusḥebsen", "column.bookmarks": "Ticraḍ", + "column.collections": "Tilkensa-w", "column.community": "Tasuddemt tadigant", "column.create_list": "Snulfu-d tabdart", "column.direct": "Tabdarin tusligin", @@ -234,6 +294,7 @@ "confirmations.discard_draft.post.cancel": "Tuɣalin ar urewway", "confirmations.discard_draft.post.title": "Deggeṛ arewway n yizen?", "confirmations.discard_edit_media.confirm": "Sefsex", + "confirmations.follow_to_collection.confirm": "Ḍfeṛ-it sakin rnu-t ɣer telkensit", "confirmations.follow_to_list.confirm": "Ḍfeṛ-it sakin rnu-t ɣer tebdart", "confirmations.follow_to_list.title": "Ḍfer aseqdac?", "confirmations.logout.confirm": "Ffeɣ", @@ -249,6 +310,7 @@ "confirmations.redraft.confirm": "Kkes sakin ɛiwed tira", "confirmations.redraft.title": "Kkes sakin ɛiwed tira n tsuffeɣt?", "confirmations.remove_from_followers.confirm": "Kkes aneḍfar", + "confirmations.revoke_collection_inclusion.confirm": "Kkes-iyi", "confirmations.revoke_quote.confirm": "Kkes tasuffeɣt", "confirmations.revoke_quote.title": "Kkes tasuffeɣt?", "confirmations.unblock.confirm": "Serreḥ", @@ -259,6 +321,7 @@ "content_warning.hide": "Ffer tasuffeɣt", "content_warning.show": "Ssken-d akken tebɣu tili", "content_warning.show_more": "Sken-d ugar", + "content_warning.show_short": "Sken-d", "conversation.delete": "Kkes adiwenni", "conversation.mark_as_read": "Creḍ yettwaɣṛa", "conversation.open": "Ssken adiwenni", @@ -287,6 +350,7 @@ "domain_pill.your_handle": "Asulay-ik·im:", "domain_pill.your_server": "D axxam-inek·inem umḍin, anda i zedɣent akk tsuffaɣ-ik·im. Ur k·m-yeεǧib ara wa? Ssenfel-d iqeddacen melmi i ak·m-yehwa, awi-d daɣen ineḍfaren-ik·im yid-k·m.", "dropdown.empty": "Fren taxtiṛit", + "email_subscriptions.email": "Imayl", "embed.instructions": "Ẓẓu addad-agi deg usmel-inek·inem s wenɣal n tangalt yellan sdaw-agi.", "embed.preview": "Akka ara d-iban:", "emoji_button.activity": "Aqeddic", @@ -304,6 +368,7 @@ "emoji_button.search_results": "Igemmaḍ n unadi", "emoji_button.symbols": "Izamulen", "emoji_button.travel": "Imeḍqan d Yinigen", + "empty_column.account_featured_self.no_collections_button": "Snulfu-d talkensit", "empty_column.account_suspended": "Amiḍan yettwaḥbas", "empty_column.account_timeline": "Ulac tisuffaɣ da !", "empty_column.account_unavailable": "Ur nufi ara amaɣnu-ayi", @@ -330,6 +395,8 @@ "explore.trending_tags": "Ihacṭagen", "featured_carousel.header": "{count, plural, one {n tsuffeɣt tunṭiḍt} other {n tsuffaɣ tunṭiḍin}}", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions.add": "Rnu", + "featured_tags.suggestions.dismiss": "Uhu, tanemmirt", "filter_modal.added.review_and_configure_title": "Iɣewwaṛen n imzizdig", "filter_modal.added.settings_link": "asebter n yiɣewwaṛen", "filter_modal.added.short_explanation": "Tasuffeɣt-a tettwarna ɣer taggayt-a n yimsizdegen: {title}.", @@ -356,6 +423,7 @@ "follow_suggestions.view_all": "Wali-ten akk", "follow_suggestions.who_to_follow": "Ad tḍefreḍ?", "followed_tags": "Ihacṭagen yettwaḍfaren", + "followers.title": "Yeṭṭafaṛ {name}", "footer.about": "Ɣef", "footer.about_mastodon": "Ɣef Mastodon", "footer.about_server": "Ɣef {domain}", @@ -490,6 +558,7 @@ "navigation_bar.automated_deletion": "Tukksa tawurmant n tsuffaɣ", "navigation_bar.blocks": "Iseqdacen yettusḥebsen", "navigation_bar.bookmarks": "Ticraḍ", + "navigation_bar.collections": "Tilkensa", "navigation_bar.direct": "Tibdarin tusligin", "navigation_bar.domain_blocks": "Tiɣula yeffren", "navigation_bar.favourites": "Imenyafen", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 72b44614e07e38..e77e324fb270d4 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -397,7 +397,6 @@ "emoji_button.search_results": "검색 결과", "emoji_button.symbols": "기호", "emoji_button.travel": "여행과 장소", - "empty_column.account_featured.other": "{acct} 님은 아직 아무 것도 추천하지 않았습니다. 자주 사용하는 해시태그, 친구의 계정까지 내 계정에서 추천할 수 있다는 것을 알고 계셨나요?", "empty_column.account_hides_collections": "이 사용자는 이 정보를 사용할 수 없도록 설정했습니다", "empty_column.account_suspended": "계정 정지됨", "empty_column.account_timeline": "이곳에는 게시물이 없습니다!", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 57804915c63728..f0ff45f35254b1 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -350,7 +350,6 @@ "emoji_button.search_results": "Paieškos rezultatai", "emoji_button.symbols": "Simboliai", "emoji_button.travel": "Kelionės ir vietos", - "empty_column.account_featured.other": "{acct} dar nieko neparyškino. Ar žinojote, kad savo profilyje galite pateikti dažniausiai naudojamus grotžymes ir netgi savo draugų paskyras?", "empty_column.account_hides_collections": "Šis (-i) naudotojas (-a) pasirinko nepadaryti šią informaciją prieinamą.", "empty_column.account_suspended": "Paskyra pristabdyta.", "empty_column.account_timeline": "Nėra čia įrašų.", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index c7d976b4209f24..5ebd4d8427a6f9 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -600,14 +600,8 @@ "emoji_button.search_results": "Tshiau-tshuē ê結果", "emoji_button.symbols": "符號", "emoji_button.travel": "旅行kap地點", - "empty_column.account_featured.other": "{acct} iáu無任何ê特色內容。Lí kám知影lí ē當kā lí tsia̍p-tsia̍p用ê hashtag,甚至是朋友ê口座揀做特色ê內容,khǹg佇lí ê個人資料內底?", - "empty_column.account_featured_other.no_collections_desc": "{acct} iáu bē建立任何收藏。", - "empty_column.account_featured_other.title": "無半項通看", - "empty_column.account_featured_self.no_collections": "Iáu無收藏", "empty_column.account_featured_self.no_collections_button": "建立收藏", "empty_column.account_featured_self.pre_collections": "請期待收藏", - "empty_column.account_featured_self.pre_collections_desc": "收藏(佇 Mastodon 4.6 推出)允准lí建立家kī斟酌揀ê口座列單,推薦予別lâng。", - "empty_column.account_featured_unknown.no_collections_desc": "Tsit ê口座 iáu bē建立任何收藏。", "empty_column.account_featured_unknown.other": "Tsit ê口座iáu無收藏siánn物。", "empty_column.account_hides_collections": "Tsit位用者選擇無愛公開tsit ê資訊", "empty_column.account_suspended": "口座已經受停止", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 5690133488e87f..d204fcdc378975 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -597,7 +597,6 @@ "emoji_button.search_results": "Zoekresultaten", "emoji_button.symbols": "Symbolen", "emoji_button.travel": "Reizen en locaties", - "empty_column.account_featured.other": "{acct} heeft nog niets uitgelicht. Wist je dat je een aantal van jouw berichten, jouw meest gebruikte hashtags en zelfs accounts van je vrienden op je profiel kunt uitlichten?", "empty_column.account_hides_collections": "Deze gebruiker heeft ervoor gekozen deze informatie niet beschikbaar te maken", "empty_column.account_suspended": "Account opgeschort", "empty_column.account_timeline": "Hier zijn geen berichten!", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index e64c5782349b21..0537f86e1f2099 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -606,14 +606,8 @@ "emoji_button.search_results": "Søkeresultat", "emoji_button.symbols": "Symbol", "emoji_button.travel": "Reise & stader", - "empty_column.account_featured.other": "{acct} har ikkje valt ut noko enno. Visste du at du kan velja ut emneknaggar du bruker mykje, og til og med venekontoar på profilen din?", - "empty_column.account_featured_other.no_collections_desc": "{acct} har ikkje laga nokon samlingar enno.", - "empty_column.account_featured_other.title": "Ingenting å sjå her", - "empty_column.account_featured_self.no_collections": "Ingen samlingar enno", "empty_column.account_featured_self.no_collections_button": "Lag ei samling", "empty_column.account_featured_self.pre_collections": "Fylg med for å sjå samlingar", - "empty_column.account_featured_self.pre_collections_desc": "Samlingar (kjem i Mastodon 4.6) gjer det mogleg å laga dine eigne lister med kontoar du kan tilrå til andre.", - "empty_column.account_featured_unknown.no_collections_desc": "Denne kontoen har ikkje laga nokon samlingar enno.", "empty_column.account_featured_unknown.other": "Denne kontoen har ikkje valt ut noko enno.", "empty_column.account_hides_collections": "Denne brukaren har valt å ikkje gjere denne informasjonen tilgjengeleg", "empty_column.account_suspended": "Kontoen er utestengd", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 46a15cc7428279..8c35801de15a16 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -372,7 +372,6 @@ "emoji_button.search_results": "Søkeresultat", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Reise & steder", - "empty_column.account_featured.other": "{acct} har ikke fremhevet noe ennå. Visste du at du kan fremheve emneknaggene du bruker mest, eller til og med dine venners profilsider?", "empty_column.account_hides_collections": "Denne brukeren har valgt å ikke gjøre denne informasjonen tilgjengelig", "empty_column.account_suspended": "Kontoen er suspendert", "empty_column.account_timeline": "Ingen innlegg her!", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 2faffed2f83ab8..57a2d98275801b 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -434,7 +434,6 @@ "emoji_button.search_results": "Wyniki wyszukiwania", "emoji_button.symbols": "Symbole", "emoji_button.travel": "Podróże i miejsca", - "empty_column.account_featured.other": "Konto {acct} nie wyróżniło jeszcze żadnych treści. Czy wiesz, że możesz wyróżnić najczęściej używane hashtagi, a nawet konta znajomych w swoim profilu?", "empty_column.account_hides_collections": "Ta osoba postanowiła nie udostępniać tych informacji", "empty_column.account_suspended": "Konto zawieszone", "empty_column.account_timeline": "Brak wpisów!", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 8a7956cdad8b11..bdec01d6cb858a 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -589,7 +589,6 @@ "emoji_button.search_results": "Resultado da pesquisa", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viagem e Lugares", - "empty_column.account_featured.other": "{acct} Ainda não destacou nada. Você sabia que pode destacar suas publicações, hashtags que você mais usa e até mesmo contas de seus amigos no seu perfil?", "empty_column.account_hides_collections": "A pessoa optou por não disponibilizar esta informação", "empty_column.account_suspended": "Conta suspensa", "empty_column.account_timeline": "Nada aqui.", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 261ebe6b726e44..2cd513881edc1c 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -567,7 +567,6 @@ "emoji_button.search_results": "Resultados da pesquisa", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viagens e lugares", - "empty_column.account_featured.other": "{acct} ainda não colocou nada em destaque. Sabia que pode destacar as etiquetas que mais utiliza e até as contas dos seus amigos no seu perfil?", "empty_column.account_hides_collections": "Este utilizador escolheu não disponibilizar esta informação", "empty_column.account_suspended": "Conta suspensa", "empty_column.account_timeline": "Sem publicações por aqui!", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 02b697059e6a9a..aee8ab0ebb879b 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -138,6 +138,7 @@ "account.unmute": "Не игнорировать @{name}", "account.unmute_notifications_short": "Показать уведомления", "account.unmute_short": "Не игнорировать", + "account_edit.advanced_settings.title": "Расширенные настройки", "account_edit.bio.add_label": "Добавить описание профиля", "account_edit.bio.edit_label": "Редактировать описание профиля", "account_edit.bio.placeholder": "Добавьте немного информации о себе, чтобы другие люди могли легче узнать вас.", @@ -536,6 +537,7 @@ "domain_pill.your_server": "Ваш цифровой дом, где находятся все ваши посты. Если вам не нравится этот сервер, вы можете в любое время перенести свою учётную запись на другой сервер, не теряя подписчиков.", "domain_pill.your_username": "Ваш уникальный идентификатор на этом сервере. На разных серверах могут встречаться люди с тем же именем пользователя.", "dropdown.empty": "Выберите вариант", + "email_subscriptions.email": "Адрес электронной почты", "email_subscriptions.form.action": "Подписаться", "email_subscriptions.form.title": "Оформите email-подписку на этого пользователя", "email_subscriptions.submitted.title": "Ещё один шаг", @@ -558,8 +560,6 @@ "emoji_button.search_results": "Результаты поиска", "emoji_button.symbols": "Символы", "emoji_button.travel": "Путешествия и места", - "empty_column.account_featured.other": "{acct} ещё ничего не рекомендовал(а) в своём профиле. Знаете ли вы, что вы можете рекомендовать в своём профиле часто используемые вами хештеги и даже профили друзей?", - "empty_column.account_featured_other.title": "Здесь ничего нет", "empty_column.account_hides_collections": "Пользователь предпочёл не раскрывать эту информацию", "empty_column.account_suspended": "Учётная запись заблокирована", "empty_column.account_timeline": "Здесь нет постов!", @@ -1114,6 +1114,7 @@ "sign_in_banner.mastodon_is": "Mastodon — лучший способ быть в курсе всего происходящего.", "sign_in_banner.sign_in": "Войти", "sign_in_banner.sso_redirect": "Вход/Регистрация", + "skip_links.skip_to_content": "Перейти к основному содержимому", "status.admin_account": "Открыть интерфейс модератора для @{name}", "status.admin_domain": "Открыть интерфейс модератора для {domain}", "status.admin_status": "Открыть этот пост в интерфейсе модератора", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 2dd979dc886c5f..7036e5c83a14c4 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -601,14 +601,8 @@ "emoji_button.search_results": "Përfundime kërkimi", "emoji_button.symbols": "Simbole", "emoji_button.travel": "Udhëtime & Vende", - "empty_column.account_featured.other": "{acct} s’ka të zgjedhur ende ndonjë gjë. E dini se në profilin tuaj mund të shfaqni si të zgjedhura hashtag-ët që përdorni më tepër dhe madje edhe llogaritë e shokëve tuaj?", - "empty_column.account_featured_other.no_collections_desc": "{acct} s’ka krijuar ende ndonjë koleksion.", - "empty_column.account_featured_other.title": "S’ka ç’shihet këtu", - "empty_column.account_featured_self.no_collections": "Ende pa koleksione", "empty_column.account_featured_self.no_collections_button": "Krijoni një koleksion", "empty_column.account_featured_self.pre_collections": "Ndiqeni për Koleksione", - "empty_column.account_featured_self.pre_collections_desc": "Koleksionet (që vijnë me Mastodon 4.6) ju lejojnë të krijoni lista tuajat llogarish për t’ua rekomanduar të tjerëve.", - "empty_column.account_featured_unknown.no_collections_desc": "Kjo llogari s’ka krijuar ende ndonjë koleksion.", "empty_column.account_featured_unknown.other": "Kjo llogari s’ka zgjedhur gjë ende.", "empty_column.account_hides_collections": "Ky përdorues ka zgjedhur të mos e japë këtë informacion", "empty_column.account_suspended": "Llogaria u pezullua", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 5a23678b50aa87..ab4f41d63abc97 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -102,6 +102,7 @@ "account.muted": "Tystad", "account.muting": "Stänger av ljud", "account.mutual": "Ni följer varandra", + "account.name.copy": "Kopiera handtag", "account.name.help.domain": "{domain} är servern som är värd för användarens profil och inlägg.", "account.name.help.domain_self": "{domain} är din server som är värd för användarens profil och inlägg.", "account.name.help.footer": "Precis som du kan skicka e-post till personer med olika e-postklienter, du kan interagera med personer på andra Mastodon-servrar – och med vem som helst på andra sociala appar som drivs av samma uppsättning regler som Mastodon använder (ActivityPub-protokollet).", @@ -138,6 +139,8 @@ "account.unmute": "Sluta tysta @{name}", "account.unmute_notifications_short": "Aktivera aviseringsljud", "account.unmute_short": "Avtysta", + "account_edit.advanced_settings.bot_hint": "Signalera till andra att kontot huvudsakligen utför automatiserade åtgärder och kanske inte övervakas", + "account_edit.advanced_settings.bot_label": "Automatiserat konto", "account_edit.advanced_settings.title": "Avancerade inställningar", "account_edit.bio.add_label": "Lägg till biografi", "account_edit.bio.edit_label": "Redigera biografi", @@ -172,19 +175,71 @@ "account_edit.field_edit_modal.discard_message": "Du har osparade ändringar. Är du säker på att du vill ta bort dem?", "account_edit.field_edit_modal.edit_title": "Redigera tilläggsfält", "account_edit.field_edit_modal.length_warning": "Rekommenderad teckengräns överskrids. Mobilanvändare kanske inte ser ditt fält i sin helhet.", + "account_edit.field_edit_modal.link_emoji_warning": "Vi rekommenderar att anpassade emoji inte används i kombination med webbadresser. Anpassade fält som innehåller båda kommer endast att visas som text i stället för som en länk för att förhindra förvirring bland användare.", "account_edit.field_edit_modal.name_hint": "T.ex. “Personlig webbplats”", "account_edit.field_edit_modal.name_label": "Etikett", "account_edit.field_edit_modal.url_warning": "För att lägga till en länk, vänligen inkludera {protocol} i början.", "account_edit.field_edit_modal.value_hint": "T.ex. \"https://example.me”", "account_edit.field_edit_modal.value_label": "Värde", "account_edit.field_reorder_modal.drag_cancel": "Flytten avbröts. Fältet \"{item}\" släpptes.", + "account_edit.field_reorder_modal.drag_end": "Fältet \"{item}\" har tagits bort.", + "account_edit.field_reorder_modal.drag_instructions": "För att organisera om anpassade fält, tryck på mellanslag eller retur. Använd piltangenterna för att flytta fältet upp eller ner. Tryck på mellanslag eller retur igen för att släppa fältet i sin nya position, eller tryck Esc för att avbryta.", + "account_edit.field_reorder_modal.drag_move": "Fältet \"{item}\" har flyttats.", + "account_edit.field_reorder_modal.drag_over": "Fältet \"{item}\" flyttades över \"{over}\".", + "account_edit.field_reorder_modal.drag_start": "Plockade upp fält \"{item}\".", + "account_edit.field_reorder_modal.handle_label": "Dra fält \"{item}\"", + "account_edit.field_reorder_modal.title": "Organisera om fält", "account_edit.image_alt_modal.add_title": "Lägg till alternativ text", + "account_edit.image_alt_modal.details_title": "Tips: Alternativ text för profilbilder", + "account_edit.image_alt_modal.edit_title": "Redigera alternativ text", + "account_edit.image_alt_modal.text_hint": "Alternativ text hjälper användare av skärmläsare att förstå ditt innehåll.", + "account_edit.image_alt_modal.text_label": "Alternativ text", + "account_edit.image_delete_modal.confirm": "Är du säker du vill ta bort denna bild? Denna åtgärd kan inte ångras.", + "account_edit.image_delete_modal.delete_button": "Radera", + "account_edit.image_delete_modal.title": "Radera bild?", "account_edit.image_edit.add_button": "Lägg till bild", "account_edit.image_edit.alt_add_button": "Lägg till alternativtext", "account_edit.image_edit.alt_edit_button": "Redigera alternativtext", "account_edit.image_edit.remove_button": "Ta bort bild", "account_edit.image_edit.replace_button": "Ersätt bild", + "account_edit.item_list.delete": "Radera {name}", + "account_edit.item_list.edit": "Redigera {name}", + "account_edit.name_modal.add_title": "Lägg till visningsnamn", + "account_edit.name_modal.edit_title": "Redigera visningsnamn", "account_edit.profile_tab.button_label": "Anpassa", + "account_edit.profile_tab.hint.description": "Dessa inställningar anpassar vad användare ser på {server} i de officiella apparna, men de kanske inte gäller för användare på andra servrar och tredjepartsappar.", + "account_edit.profile_tab.hint.title": "Hur detta visas varierar fortfarande", + "account_edit.profile_tab.show_featured.description": "‘Utvalda’ är en valfri flik där du kan visa upp andra konton.", + "account_edit.profile_tab.show_featured.title": "Visa fliken 'Utvalda'", + "account_edit.profile_tab.show_media.description": "‘Media’ är en valfri flik som visar dina inlägg som innehåller bilder eller videor.", + "account_edit.profile_tab.show_media.title": "Visa fliken ‘Media’", + "account_edit.profile_tab.show_media_replies.description": "När den är aktiverad visar fliken Media både dina inlägg och svar på andras inlägg.", + "account_edit.profile_tab.show_media_replies.title": "Inkludera svar på fliken Media", + "account_edit.profile_tab.subtitle": "Anpassa flikarna på din profil och vad de visar.", + "account_edit.profile_tab.title": "Inställningar för profil-fliken", + "account_edit.save": "Spara", + "account_edit.upload_modal.back": "Tillbaka", + "account_edit.upload_modal.done": "Färdig", + "account_edit.upload_modal.next": "Nästa", + "account_edit.upload_modal.step_crop.zoom": "Zooma", + "account_edit.upload_modal.step_upload.button": "Bläddra bland filer", + "account_edit.upload_modal.step_upload.dragging": "Släpp för att ladda upp", + "account_edit.upload_modal.step_upload.header": "Välj en bild", + "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF eller JPG-format, upp till {limit}MB.{br}Bild kommer att skalas till {width}x{height}px.", + "account_edit.upload_modal.title_add.avatar": "Lägg till profilbild", + "account_edit.upload_modal.title_add.header": "Lägg till omslagsbild", + "account_edit.upload_modal.title_replace.avatar": "Ersätt profilbild", + "account_edit.upload_modal.title_replace.header": "Ersätt omslagsbild", + "account_edit.verified_modal.details": "Öka trovärdigheten för din Mastodon-profil genom att verifiera länkar till personliga webbplatser. Så här fungerar det:", + "account_edit.verified_modal.invisible_link.summary": "Hur gör jag länken osynlig?", + "account_edit.verified_modal.step1.header": "Kopiera HTML-koden nedan och klistra in i överskriften för din webbplats", + "account_edit_tags.add_tag": "Lägg till #{tagName}", + "account_edit_tags.column_title": "Redigera taggar", + "account_edit_tags.help_text": "Utvalda hashtaggar hjälper användare att upptäcka och interagera med din profil. De visas som filter på din profilsidas aktivitetsvy.", + "account_edit_tags.max_tags_reached": "Du har nått det maximala antalet utvalda hashtaggar.", + "account_edit_tags.search_placeholder": "Ange en hashtagg…", + "account_edit_tags.suggestions": "Förslag:", + "account_edit_tags.tag_status_count": "{count, plural, one {# inlägg} other {# inlägg}}", "account_list.total": "{total, plural, one {# konto} other {# konton}}", "account_note.placeholder": "Klicka för att lägga till anteckning", "admin.dashboard.daily_retention": "Användarlojalitet per dag efter registrering", @@ -290,6 +345,10 @@ "closed_registrations_modal.find_another_server": "Hitta en annan server", "closed_registrations_modal.preamble": "Mastodon är decentraliserat så oavsett var du skapar ditt konto kommer du att kunna följa och interagera med någon på denna server. Du kan också köra din egen server!", "closed_registrations_modal.title": "Registrera sig på Mastodon", + "collection.share_modal.share_via_post": "Publicera på Mastodon", + "collection.share_modal.share_via_system": "Dela med…", + "collection.share_modal.title": "Dela samling", + "collection.share_modal.title_new": "Dela din nya samling!", "collections.accounts.empty_description": "Lägg till upp till {count} konton som du följer", "collections.by_account": "av {account_handle}", "collections.collection_language": "Språk", @@ -457,7 +516,7 @@ "domain_pill.username": "Användarnamn", "domain_pill.whats_in_a_handle": "Vad finns i ett handtag?", "domain_pill.who_they_are": "Eftersom handtag säger vem någon är och var de är, kan du interagera med människor på det sociala nätet av .", - "domain_pill.who_you_are": "Eftersom handtag säger vem någon är och var de är, kan människor interagera med dig på det sociala nätet av .", + "domain_pill.who_you_are": "Eftersom ditt handtag säger vem du är och var du är kan människor interagera med dig på det sociala nätet på .", "domain_pill.your_handle": "Ditt handtag:", "domain_pill.your_server": "Ditt digitala hem, där alla dina inlägg bor. Gillar du inte just denna? Byt server när som helst och ta med dina anhängare också.", "domain_pill.your_username": "Din unika identifierare på denna server. Det är möjligt att hitta användare med samma användarnamn på olika servrar.", @@ -483,7 +542,6 @@ "emoji_button.search_results": "Sökresultat", "emoji_button.symbols": "Symboler", "emoji_button.travel": "Resor & platser", - "empty_column.account_featured.other": "{acct} har inte presenterat något ännu. Visste du att du kan markera de fyrkantstaggar som du använder mest och även din väns konton på din profil?", "empty_column.account_hides_collections": "Användaren har valt att inte göra denna information tillgänglig", "empty_column.account_suspended": "Kontot är avstängt", "empty_column.account_timeline": "Inga inlägg här!", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index c66565166d67a2..981add8cabe45d 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -45,6 +45,7 @@ "account.featured": "Öne çıkan", "account.featured.accounts": "Profiller", "account.featured.collections": "Koleksiyonlar", + "account.featured.new_collection": "Yeni koleksiyon", "account.field_overflow": "Tüm içeriği göster", "account.filters.all": "Tüm aktiviteler", "account.filters.boosts_toggle": "Yeniden paylaşımları göster", @@ -606,14 +607,12 @@ "emoji_button.search_results": "Arama sonuçları", "emoji_button.symbols": "Semboller", "emoji_button.travel": "Seyahat ve Yerler", - "empty_column.account_featured.other": "{acct} henüz hiçbir şeyi öne çıkarmadı. En çok kullandığınız etiketleri ve hatta arkadaşlarınızın hesaplarını profilinizde öne çıkarabileceğinizi biliyor muydunuz?", - "empty_column.account_featured_other.no_collections_desc": "{acct} henüz bir koleksiyon oluşturmadı.", - "empty_column.account_featured_other.title": "Burada görülecek bir şey yok", - "empty_column.account_featured_self.no_collections": "Henüz hiçbir koleksiyon yok", + "empty_column.account_featured.other": "{acct} henüz hiçbir şeyi öne çıkarmadı.", "empty_column.account_featured_self.no_collections_button": "Bir koleksiyon oluştur", "empty_column.account_featured_self.pre_collections": "Koleksiyonlar için beklemede kalın", "empty_column.account_featured_self.pre_collections_desc": "“Koleksiyonlar” (Mastodon 4.6 sürümünde kullanıma sunulacak) özelliği başkalarına önermek üzere kendi seçtiğiniz hesap listelerini oluşturmanıza olanak tanır.", - "empty_column.account_featured_unknown.no_collections_desc": "Bu hesap henüz bir koleksiyon oluşturmadı.", + "empty_column.account_featured_self.showcase_accounts": "Sevdiğiniz hesapları öne çıkarın", + "empty_column.account_featured_self.showcase_accounts_desc": "Koleksiyonlar başkalarının Fediverse'i daha iyi keşfetmesine yardımcı olmak amacıyla derlenmiş hesap listeleridir.", "empty_column.account_featured_unknown.other": "Bu hesap henüz hiçbir şeyi öne çıkarmadı.", "empty_column.account_hides_collections": "Bu kullanıcı bu bilgiyi sağlamayı tercih etmemiştir", "empty_column.account_suspended": "Hesap askıya alındı", @@ -1329,7 +1328,7 @@ "visibility_modal.header": "Görünürlük ve etkileşim", "visibility_modal.helper.direct_quoting": "Mastodon'da özel değiniler başkaları tarafından alıntılanamaz.", "visibility_modal.helper.privacy_editing": "Gönderi yayınlandıktan sonra görünürlük değiştirilemez.", - "visibility_modal.helper.privacy_private_self_quote": "Özel gönderilerin kendi alıntıları herkese açık hale getirilemez.", + "visibility_modal.helper.privacy_private_self_quote": "Özel mesajların kendi kendine alıntılanması herkese açık hale getirilemez.", "visibility_modal.helper.private_quoting": "Mastodon'da sadece takipçilere yönelik gönderiler başkaları tarafından alıntılanamaz.", "visibility_modal.helper.unlisted_quoting": "İnsanlar sizden alıntı yaptığında, onların gönderileri de trend zaman tünellerinden gizlenecektir.", "visibility_modal.instructions": "Bu gönderiyle kimlerin etkileşime girebileceğini kontrol edin. Ayrıca, Tercihler > Gönderme varsayılanları bölümüne giderek tüm gelecek gönderiler için ayarlayabilirsiniz.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 0641925a0352e8..a60b77d7cdfcf9 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -102,6 +102,7 @@ "account.muted": "Đã phớt lờ", "account.muting": "Đang ẩn", "account.mutual": "Theo dõi nhau", + "account.name.copy": "Sao chép địa chỉ", "account.name.help.domain": "{domain} là máy chủ lưu trữ hồ sơ và tút của tài khoản.", "account.name.help.domain_self": "{domain} là máy chủ lưu trữ hồ sơ và tút của bạn.", "account.name.help.footer": "Giống như bạn có thể gửi email cho mọi người trên các dịch vụ email khác nhau, bạn có thể tương tác với mọi người trên các máy chủ Mastodon khác – và trên các ứng dụng xã hội khác sử dụng cùng giao thức mà Mastodon sử dụng (ActivityPub).", @@ -138,6 +139,9 @@ "account.unmute": "Bỏ phớt lờ @{name}", "account.unmute_notifications_short": "Bỏ phớt lờ thông báo", "account.unmute_short": "Bỏ phớt lờ", + "account_edit.advanced_settings.bot_hint": "Tài khoản này tự động thực hiện các hành động và không cần thiết theo dõi", + "account_edit.advanced_settings.bot_label": "Tài khoản tự động", + "account_edit.advanced_settings.title": "Thiết lập nâng cao", "account_edit.bio.add_label": "Thêm giới thiệu", "account_edit.bio.edit_label": "Sửa giới thiệu", "account_edit.bio.placeholder": "Giúp mọi người nhận ra bạn là ai.", @@ -577,7 +581,9 @@ "domain_pill.your_server": "Nơi lưu trữ tút của bạn. Không thích ở đây? Chuyển sang máy chủ khác và giữ nguyên người theo dõi của bạn.", "domain_pill.your_username": "Chỉ riêng bạn trên máy chủ này. Những máy chủ khác có thể cũng có tên người dùng giống vậy.", "dropdown.empty": "Chọn một lựa chọn", + "email_subscriptions.email": "Email", "email_subscriptions.form.action": "Đăng ký", + "email_subscriptions.form.bottom": "Nhận tút được gửi đến hộp thư đến mà không cần tài khoản Mastodon. Hủy nhận bất cứ lúc nào. Xem thêm chi tiết tại Chính sách bảo mật.", "email_subscriptions.form.title": "Đăng ký nhận cập nhật qua email từ {name}", "email_subscriptions.submitted.lead": "Kiểm tra hộp thư đến của bạn để tìm email hoàn tất đăng ký nhận thông báo qua email.", "email_subscriptions.submitted.title": "Một bước nữa", @@ -600,14 +606,8 @@ "emoji_button.search_results": "Kết quả tìm kiếm", "emoji_button.symbols": "Biểu tượng", "emoji_button.travel": "Du lịch", - "empty_column.account_featured.other": "{acct} chưa nêu bật gì. Bạn có biết rằng, bạn có thể giới thiệu hashtag thường dùng và hồ sơ của bạn bè trên trang cá nhân của mình không?", - "empty_column.account_featured_other.no_collections_desc": "{acct} chưa tạo gói khởi đầu nào.", - "empty_column.account_featured_other.title": "Không có gì để xem ở đây", - "empty_column.account_featured_self.no_collections": "Chưa có gói khởi đầu", "empty_column.account_featured_self.no_collections_button": "Tạo một gói khởi đầu", "empty_column.account_featured_self.pre_collections": "Hãy đón chờ Gói khởi đầu", - "empty_column.account_featured_self.pre_collections_desc": "Gói khởi đầu (sẽ có trong Mastodon 4.6) cho phép bạn tạo danh sách các tài khoản được tuyển chọn để giới thiệu cho người khác.", - "empty_column.account_featured_unknown.no_collections_desc": "Tài khoản này chưa tạo gói khởi đầu nào.", "empty_column.account_featured_unknown.other": "Tài khoản này chưa nêu bật gì.", "empty_column.account_hides_collections": "Tài khoản này đã chọn ẩn thông tin", "empty_column.account_suspended": "Tài khoản vô hiệu hóa", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index a55fd4b974483e..e3261ea1fe6a2a 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -45,6 +45,7 @@ "account.featured": "精选", "account.featured.accounts": "个人资料", "account.featured.collections": "收藏列表", + "account.featured.new_collection": "新建收藏列表", "account.field_overflow": "显示完整内容", "account.filters.all": "全部活动", "account.filters.boosts_toggle": "显示转嘟", @@ -606,14 +607,12 @@ "emoji_button.search_results": "搜索结果", "emoji_button.symbols": "符号", "emoji_button.travel": "旅行与地点", - "empty_column.account_featured.other": "{acct} 尚未设置任何精选。你知道吗?你可以将自己最常使用的话题标签,甚至是好友的账号,在你的个人主页上设为精选。", - "empty_column.account_featured_other.no_collections_desc": "{acct} 尚未创建任何收藏列表。", - "empty_column.account_featured_other.title": "这里还没有内容", - "empty_column.account_featured_self.no_collections": "尚无收藏列表", + "empty_column.account_featured.other": "{acct} 尚未设置任何精选。", "empty_column.account_featured_self.no_collections_button": "创建收藏列表", "empty_column.account_featured_self.pre_collections": "敬请期待收藏列表", "empty_column.account_featured_self.pre_collections_desc": "收藏列表(将于 Mastodon 4.6 版本上线)允许你创建自己的精选账号列表,方便你将这些账号推荐给其他人。", - "empty_column.account_featured_unknown.no_collections_desc": "此账号尚未创建任何收藏列表。", + "empty_column.account_featured_self.showcase_accounts": "展示你最喜欢的账号", + "empty_column.account_featured_self.showcase_accounts_desc": "收藏列表包含一些作者精选的账号,可以帮助他人探索更多联邦宇宙的内容。", "empty_column.account_featured_unknown.other": "此账号尚未设置任何精选。", "empty_column.account_hides_collections": "该用户选择不公开此信息", "empty_column.account_suspended": "账号已被停用", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index fdcef8b6d48526..6ec21288dec430 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -45,6 +45,7 @@ "account.featured": "精選內容", "account.featured.accounts": "個人檔案", "account.featured.collections": "收藏名單", + "account.featured.new_collection": "新收藏名單", "account.field_overflow": "顯示完整內容", "account.filters.all": "所有活動", "account.filters.boosts_toggle": "顯示轉嘟", @@ -606,14 +607,12 @@ "emoji_button.search_results": "搜尋結果", "emoji_button.symbols": "符號", "emoji_button.travel": "旅遊與地點", - "empty_column.account_featured.other": "{acct} 尚未有任何精選內容。您知道您可以將您的常用主題標籤、甚至您朋友們的帳號作為您個人檔案上之精選內容嗎?", - "empty_column.account_featured_other.no_collections_desc": "{acct} 尚未建立任何收藏名單。", - "empty_column.account_featured_other.title": "此地一無所有", - "empty_column.account_featured_self.no_collections": "尚無蒐藏名單", + "empty_column.account_featured.other": "{acct} 尚未有任何精選內容。", "empty_column.account_featured_self.no_collections_button": "建立收藏名單", "empty_column.account_featured_self.pre_collections": "敬請期待收藏名單", "empty_column.account_featured_self.pre_collections_desc": "收藏名單功能(將於 Mastodon 4.6 上線)允許您建立自己的精選帳號名單並推薦予其他人。", - "empty_column.account_featured_unknown.no_collections_desc": "此帳號尚未建立任何收藏名單。", + "empty_column.account_featured_self.showcase_accounts": "展示您最喜歡的帳號", + "empty_column.account_featured_self.showcase_accounts_desc": "收藏名單為幫助其他人探索 Fediverse 之精選帳號名單。", "empty_column.account_featured_unknown.other": "此帳號尚未有任何精選內容。", "empty_column.account_hides_collections": "這位使用者選擇不提供此資訊", "empty_column.account_suspended": "帳號已被停權", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 16247b43854721..0f3bc7d763658f 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -343,6 +343,10 @@ ar: unpublish: إلغاء النشر unpublished_msg: تم إلغاء نشر الإعلان بنجاح! updated_msg: تم تحديث الإعلان بنجاح! + collections: + accounts: الحسابات + contents: المحتوى + open: فتح critical_update_pending: تحديث حَرِج قيد الانتظار custom_emojis: assign_category: اسند فئة @@ -790,6 +794,7 @@ ar: categories: administration: الإدارة devops: DevOps + email: البريد الإلكتروني invites: الدعوات moderation: الإشراف special: مميز @@ -1331,6 +1336,7 @@ ar: invited_by: 'يمكنك الانضمام إلى %{domain} بفضل الدعوة التي تلقيتها من:' preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}. preamble_invited: قبل المتابعة، يرجى قراءة القواعد الأساسية التي وضعها مشرفو %{domain}. + read_more: اقرأ المزيد title: بعض القواعد الأساسية. title_invited: لقد تمت دعوتك. security: الأمان @@ -1449,6 +1455,11 @@ ar: your_appeal_rejected: تم رفض طعنك edit_profile: other: أخرى + email_subscription_mailer: + confirmation: + subject: تأكيد عنوان بريدك الإلكتروني + notification: + create_account: إنشاء حساب ماستدون emoji_styles: auto: تلقائي native: محلي @@ -1741,6 +1752,7 @@ ar: uses: عدد الاستخدامات title: دعوة أشخاص link_preview: + author_html: مِن %{name} potentially_sensitive_content: hide_button: إخفاء lists: @@ -2126,6 +2138,8 @@ ar: past_preamble_html: لقد غيرنا شروط خدمتنا منذ زيارتكم الأخيرة. نشجعكم على مراجعة الشروط المحدثة. review_link: مراجعة شروط الخدمة title: شروط خدمة النطاق %{domain} ستتغير + themes: + default: ماستدون time: formats: default: "%b %d, %Y, %H:%M" diff --git a/config/locales/de.yml b/config/locales/de.yml index 8ab731356e4a66..fdb9194b41a723 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -2210,7 +2210,7 @@ de: extra_instructions_html: Hinweis: Der Link auf deiner Website kann unsichtbar sein. Der wichtige Teil ist rel="me". Du kannst auch den Tag link im head (statt a im body) verwenden, jedoch muss die Internetseite ohne JavaScript abrufbar sein. here_is_how: So funktioniert’s hint_html: "Alle können ihre Identität auf Mastodon verifizieren. Basierend auf offenen Standards – jetzt und für immer kostenlos. Alles, was du brauchst, ist eine eigene Website. Wenn du von deinem Profil auf diese Website verlinkst, überprüfen wir, ob die Website zu deinem Profil zurückverlinkt, und zeigen einen visuellen Hinweis an." - instructions_html: Kopiere den unten stehenden Code und füge ihn in den HTML-Code deiner Website ein. Trage anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil ein und speichere die Änderungen. Die Zusatzfelder befinden sich im Reiter „Profil bearbeiten“. + instructions_html: Kopiere den unten stehenden Code und füge ihn in den HTML-Code deiner Website ein. Trage anschließend die Adresse deiner Website in ein Zusatzfeld auf deinem Profil ein und speichere die Änderungen. Die Zusatzfelder können „Profil bearbeiten“ verwaltet werden. verification: Verifizierung verified_links: Deine verifizierten Links website_verification: Verifizierung einer Website diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml index d85a2a2f28c5a2..f9638d926446d4 100644 --- a/config/locales/en-GB.yml +++ b/config/locales/en-GB.yml @@ -762,6 +762,7 @@ en-GB: categories: administration: Administration devops: DevOps + email: Email invites: Invites moderation: Moderation special: Special @@ -778,6 +779,8 @@ en-GB: administrator_description: Users with this permission will bypass every permission delete_user_data: Delete User Data delete_user_data_description: Allows users to delete other users' data without delay + invite_bypass_approval: Invite Users without review + invite_bypass_approval_description: Allows people invited to the server by these users to bypass moderation approval invite_users: Invite Users invite_users_description: Allows users to invite new people to the server manage_announcements: Manage Announcements @@ -788,6 +791,8 @@ en-GB: manage_blocks_description: Allows users to block email providers and IP addresses manage_custom_emojis: Manage Custom Emojis manage_custom_emojis_description: Allows users to manage custom emojis on the server + manage_email_subscriptions: Manage Email Subscriptions + manage_email_subscriptions_description: Allow users to subscribe to users with this permission by email manage_federation: Manage Federation manage_federation_description: Allows users to block or allow federation with other domains, and control deliverability manage_invites: Manage Invites @@ -1278,6 +1283,7 @@ en-GB: progress: confirm: Confirm email details: Your details + list: Sign up progress review: Our review rules: Accept rules providers: @@ -1293,6 +1299,7 @@ en-GB: invited_by: 'You can join %{domain} thanks to the invitation you have received from:' preamble: These are set and enforced by the %{domain} moderators. preamble_invited: Before you proceed, please consider the ground rules set by the moderators of %{domain}. + read_more: Read more title: Some ground rules. title_invited: You've been invited. security: Security @@ -1412,6 +1419,41 @@ en-GB: your_appeal_rejected: Your appeal has been rejected edit_profile: other: Other + redesign_body: Profile editing can now be accessed directly from the profile page. + redesign_button: Go there + redesign_title: There’s a new profile editing experience + email_subscription_mailer: + confirmation: + action: Confirm email address + instructions_to_confirm: Confirm you'd like to receive emails from %{name} (@%{acct}) when they publish new posts. + instructions_to_ignore: If you're not sure why you received this email, you can delete it. You will not be subscribed if you don't click on the link above. + subject: Confirm your email address + title: Get email updates from %{name}? + notification: + create_account: Create a Mastodon account + footer: + privacy_html: Emails are sent from %{domain}, a server powered by Mastodon. To understand how this server processes your personal data, refer to the Privacy Policy. + reason_for_email_html: You're receiving this email because you opted into email updates from %{name}. Don't want to receive these emails? Unsubscribe + interact_with_this_post: + one: Interact with this post and discover more like it. + other: Interact with these posts and discover more. + subject: + plural: New posts from %{name} + singular: 'New post: "%{excerpt}"' + title: + plural: New posts from %{name} + singular: 'New post: "%{excerpt}"' + email_subscriptions: + active: Active + confirmations: + show: + changed_your_mind: Changed your mind? + success_html: You'll now start receiving emails when %{name} publishes new posts. Add %{sender} to your contacts so these posts don't end up in your Spam folder. + title: You're signed up + unsubscribe: Unsubscribe + inactive: Inactive + status: Status + subscribers: Subscribers emoji_styles: auto: Auto native: Native @@ -1781,6 +1823,8 @@ en-GB: posting_defaults: Posting defaults public_timelines: Public timelines privacy: + email_subscriptions: Send posts via email + email_subscriptions_hint_html: Add an email sign-up form to your profile that appears for logged-out users. When visitors enter their email address and opt in, Mastodon will send email updates for your public posts. hint_html: "Customise how you want your profile and your posts to be found. A variety of features in Mastodon can help you reach a wider audience when enabled. Take a moment to review these settings to make sure they fit your use case." privacy: Privacy privacy_hint_html: Control how much you want to disclose for the benefit of others. People discover interesting profiles and cool apps by browsing other people's follows and seeing from which apps they post, but you may prefer to keep it hidden. @@ -2044,6 +2088,28 @@ en-GB: resume_app_authorization: Resume application authorisation role_requirement: "%{domain} requires you to set up Two-Factor Authentication before you can use Mastodon." webauthn: Security keys + unsubscriptions: + create: + action: Go to server homepage + email_subscription: + confirmation_html: You'll no longer receive emails from %{name}. + title: You are unsubscribed + user: + confirmation_html: You'll no longer receive %{type} from Mastodon on %{domain}. + notification_emails: + favourite: favourite notification emails + follow: follow notification emails + follow_request: follow request emails + mention: mention notification emails + reblog: boost notification emails + show: + action: Unsubscribe + email_subscription: + confirmation_html: You'll stop receiving emails when this account publishes new posts. + title: Unsubscribe from %{name}? + user: + confirmation_html: You'll stop receiving %{type} from Mastodon on %{domain}. + title: Unsubscribe from %{type}? user_mailer: announcement_published: description: 'The administrators of %{domain} are making an announcement:' diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 049a7dd53e338e..2003e40243ab13 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1281,6 +1281,13 @@ ja: hint_html: 以後1時間はパスワードの再入力を求めません invalid_password: パスワードが間違っています prompt: 続行するにはパスワードを入力してください + color_scheme: + auto: 自動 + dark: ダーク + light: ライト + contrast: + auto: 自動 + high: 高 crypto: errors: invalid_key: 有効なEd25519またはCurve25519キーではありません @@ -1352,7 +1359,7 @@ ja: edit_profile: other: その他 emoji_styles: - auto: オート + auto: 自動 native: ネイティブ twemoji: Twemoji errors: @@ -1853,13 +1860,18 @@ ja: direct: 非公開の返信 private: フォロワーのみ public: 公開 + public_long: すべての人 (Mastodon以外も含む) + unlisted: 非表示 + unlisted_long: Mastodonの検索結果、トレンド、公開タイムラインに表示しない statuses_cleanup: enabled: 古い投稿を自動的に削除する enabled_hint: 設定した期間を過ぎた投稿は、以下の例外に該当しない限り、自動的に削除されます exceptions: 例外 + explanation: 自動削除は低い優先度で行われます。保持する期間を越えてから実際に削除されるまで遅延があるかもしれません。 ignore_favs: 設定しない ignore_reblogs: 設定しない interaction_exceptions: インタラクションに基づく例外 + interaction_exceptions_explanation: お気に入りやブーストの数が一度でも基準値に逹っした投稿は、その後数が減っても削除されません。 keep_direct: ダイレクトメッセージを保持 keep_direct_hint: ダイレクトメッセージを削除せずに残します keep_media: メディア付きの投稿を保持 diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 2a2c6868842ca2..2e95b089485869 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -38,6 +38,7 @@ kab: label: Snifel tamlilt no_role: War tamlilt title: Snifel tamlilt n %{username} + collections: Tilkensa confirm: Sentem confirmed: Yettwasentem confirming: Asentem @@ -209,6 +210,10 @@ kab: scheduled_for: Yettusɣiwsen i %{time} scheduled_msg: Tamselɣut tettusɣiwes i usufeɣ! title: Ilɣa + collections: + accounts: Imiḍanen + contents: Agbur + open: Ldi custom_emojis: assign_category: Efk taggayt by_domain: Taɣult @@ -297,6 +302,7 @@ kab: confirm: Sentem save: Sekles sign_in: Qqen + status: Addad title: FASP follow_recommendations: language: I tutlayt @@ -377,6 +383,7 @@ kab: are_you_sure: Tetḥaq-eḍ? cancel: Sefsex category: Taggayt + collections: Tilkensa (%{count}) comment: none: Ula yiwen confirm: Sentem @@ -407,8 +414,10 @@ kab: other: "%{count} n iseqdacen" categories: administration: Tadbelt + email: Imayl invites: Iɛeṛṛuḍen moderation: Aseɣyed + special: Imeẓli delete: Kkes everyone: Tisirag timezwura privileges: @@ -425,6 +434,8 @@ kab: delete: Kkes edit: Ẓreg alugen empty: Mazal ur ttwasbadun ara yilugan n uqeddac. + move_down: Sekḥer d akessar + move_up: Sekḥer d asawen title: Ilugan n uqeddac translation: Tasuqilt translations: Tisuqilin @@ -442,6 +453,9 @@ kab: all: I medden akk disabled: Ɣef ula yiwen users: Ɣef yimseqdacen idiganen i yeqqnen + feed_access: + modes: + public: Yal yiwen landing_page: values: about: Ɣef @@ -474,6 +488,7 @@ kab: metadata: Iɣefisefka open: Ldi tasuffeɣt quotes: Tinebdurin + reblogs: Izuzar status_title: Tasuffeɣt sɣur @%{name} title: Tisuffaɣ n umiḍan - @%{name} trending: Inezzaɣ @@ -493,6 +508,8 @@ kab: software_version_patch_check: action: Wali ileqqman yellan tags: + moderation: + title: Addad name: Isem newest: Amaynut oldest: Aqbur @@ -616,6 +633,7 @@ kab: invited_by: 'Tzemreḍ ad tkecmeḍ ɣer %{domain} s tanemmirt i tinnubga i d-teṭṭfeḍ sɣur :' preamble: Tiyi ttwasemmant-d yerna ttwaḍemnent sɣur imḍebbren n %{domain}. preamble_invited: Uqbel ad tkemmleḍ, ttxil-k·m ẓer ilugan i d-sbedden yimkariyen n %{domain}. + read_more: Ɣeṛ ugar title: Kra n yilugan igejdanen. title_invited: Tettwaɛerḍeḍ. security: Taɣellist @@ -642,6 +660,10 @@ kab: confirm: Kemmel invalid_password: Yir awal uffir prompt: Sentem awal uffir send ad tkemleḍ + color_scheme: + auto: Awurman + contrast: + auto: Awurman crypto: errors: invalid_key: maci d tasarut tameɣtut n Ed25519 neɣ Curve25519 @@ -678,11 +700,26 @@ kab: none: Ɣur-wat edit_profile: other: Ayen nniḍen + email_subscription_mailer: + confirmation: + action: Sentem tansa imayl + subject: Sentem tansa-k·m imayl + notification: + create_account: Snulfu-d amiḍan Mastodon + subject: + plural: Tisuffaɣ timaynutin sɣur %{name} + title: + plural: Tisuffaɣ timaynutin sɣur %{name} + email_subscriptions: + inactive: D arurmid + status: Addad emoji_styles: auto: Awurman + native: Amlal twemoji: Twemoji errors: '404': Asebter i tettnadiḍ ulac-it da. + '429': Aṭas n tuttriwin '500': title: Asebter-ayi d arameɣtu existing_username_validator: @@ -802,6 +839,7 @@ kab: action: Err body: 'Yuder-ik·ikem-id %{name} deg:' subject: Yuder-ik·ikem-id %{name} + title: Abadar amaynut quote: title: Tabdert tamaynut reblog: @@ -816,6 +854,7 @@ kab: units: billion: AṬ million: A + quadrillion: K thousand: GM trillion: Am otp_authentication: @@ -826,6 +865,9 @@ kab: next: Ɣer zdat older: Aqbuṛ prev: Win iɛeddan + truncate: "…" + polls: + vote: Dɣer preferences: other: Wiyaḍ posting_defaults: Iɣewwaṛen n usuffeɣ imezwura @@ -1030,3 +1072,4 @@ kab: create: success: Tasarut-ik·im n tɣellist tettwarna akken iwata. delete: Kkes + nickname: Meffer isem diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 30dfea21526586..4bdc82a8260e07 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -220,6 +220,8 @@ ar: setting_aggregate_reblogs: جمّع المنشورات المعاد نشرها في الخيوط الزمنية setting_always_send_emails: ارسل إشعارات البريد الإلكتروني دائماً setting_auto_play_gif: تشغيل تلقائي لِوَسائط جيف المتحركة + setting_color_scheme: نظام الألوان + setting_contrast: تباين setting_default_language: لغة النشر setting_default_privacy: مدى ظهور المنشور setting_default_quote_policy: من يستطيع الاقتباس @@ -286,6 +288,7 @@ ar: thumbnail: الصورة المصغرة للخادم trendable_by_default: السماح للوسوم بالظهور على المتداوَلة دون مراجعة مسبقة trends: تمكين المتداوَلة + wrapstodon: تمكين Wrapstodon interactions: must_be_follower: حظر الإشعارات القادمة من حسابات لا تتبعك must_be_following: حظر الإشعارات القادمة من الحسابات التي لا تتابعها @@ -346,7 +349,9 @@ ar: jurisdiction: الاختصاص القانوني min_age: الحد الإدنى للعمر user: + date_of_birth_1i: السنة date_of_birth_2i: شهر + date_of_birth_3i: اليوم role: الدور time_zone: النطاق الزمني user_role: diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index b94aaf209f2a49..2a8dd0c4226abe 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -134,6 +134,7 @@ en-GB: otp: 'Enter the two-factor code generated by your phone app or use one of your recovery codes:' webauthn: If it's a USB key be sure to insert it and, if necessary, tap it. settings: + email_subscriptions: Disabling retains existing subscribers but stops sending emails. indexable: Your profile page may appear in search results on Google, Bing, and others. show_application: You will always be able to see which app published your post regardless. tag: @@ -153,6 +154,7 @@ en-GB: jurisdiction: List the country where whoever pays the bills lives. If it’s a company or other entity, list the country where it’s incorporated, and the city, region, territory, or state as appropriate. min_age: Should not be below the minimum age required by the laws of your jurisdiction. user: + chosen_languages: When checked, only posts in selected languages will be displayed in public timelines. This setting does not affect your Home timeline and lists. date_of_birth: one: We have to make sure you're at least %{count} to use %{domain}. We won't store this. other: We have to make sure you're at least %{count} to use %{domain}. We won't store this. @@ -355,6 +357,7 @@ en-GB: hint: Additional information text: Rule settings: + email_subscriptions: Enable email sign-ups indexable: Include profile page in search engines show_application: Display from which app you sent a post tag: diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml index 8b116e5f0231a4..3d6a3dbbb4aa5a 100644 --- a/config/locales/simple_form.ja.yml +++ b/config/locales/simple_form.ja.yml @@ -64,7 +64,7 @@ ja: setting_display_media_default: 閲覧注意としてマークされたメディアは隠す setting_display_media_hide_all: メディアを常に隠す setting_display_media_show_all: メディアを常に表示する - setting_emoji_style: 絵文字の表示方法。「オート」の場合、可能ならネイティブの絵文字を使用し、レガシーなブラウザではTwemojiで代替します。 + setting_emoji_style: 絵文字の表示方法。「自動」の場合、可能ならネイティブの絵文字を使用し、レガシーなブラウザではTwemojiで代替します。 setting_quick_boosting_html: 有効にすると、%{boost_icon} ブーストアイコンのクリックで即座にブーストされます。ブースト/引用ドロップダウンは開きません。引用アクションは %{options_icon} (オプション) メニューに移されます。 setting_system_scrollbars_ui: Safari/Chromeベースのデスクトップブラウザーでのみ有効です setting_use_blurhash: ぼかしはメディアの色を元に生成されますが、細部は見えにくくなっています @@ -152,6 +152,7 @@ ja: jurisdiction: 運営責任者が居住する国を記載します。企業や他の団体である場合は、その組織の所在国に加えて、市・区・州などの地域を記載します。 min_age: お住まいの国や地域の法律によって定められている最低年齢を下回ってはなりません。 user: + chosen_languages: いずれかを選択すると、選択した言語の投稿のみが公開タイムラインに表示されます。この設定はホームタイムラインとリストには影響しません。 role: そのロールは、ユーザーが持つ権限を制御します。 user_role: color: UI 全体でロールの表示に使用される色(16進数RGB形式) @@ -231,6 +232,8 @@ ja: setting_always_send_emails: 常にメール通知を送信する setting_auto_play_gif: アニメーションGIFを自動再生する setting_boost_modal: ブーストの公開範囲の設定 + setting_color_scheme: カラースキーム + setting_contrast: コントラスト setting_default_language: 投稿する言語 setting_default_privacy: 投稿の公開範囲 setting_default_quote_policy: 引用できるユーザー diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml index 0dc638678f6948..aeb64bffa588f4 100644 --- a/config/locales/simple_form.kab.yml +++ b/config/locales/simple_form.kab.yml @@ -102,6 +102,7 @@ kab: setting_display_media_default: Akk-a kan setting_display_media_hide_all: Ffer-iten akk setting_display_media_show_all: Sken-iten-id akk + setting_emoji_style: Aɣanib n yimujiten setting_hide_network: Ffer azetta-k·m inmetti setting_theme: Asental n wesmel setting_trends: Sken-d inezzaɣ n wass-a @@ -119,6 +120,7 @@ kab: custom_css: CSS udmawan profile_directory: Rmed akaram n imaγnuten site_contact_email: Imayl n unermas + site_contact_username: Asulay n unermas site_short_description: Aglam n uqeddac site_terms: Tasertit tabaḍnit site_title: Isem n uqeddac @@ -159,7 +161,9 @@ kab: terms_of_service_generator: domain: Taɣult user: + date_of_birth_1i: Aseggas date_of_birth_2i: Ayyur + date_of_birth_3i: Ass role: Tamlilt time_zone: Tamnaḍt tasragant user_role: diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 9199ed62dfc203..626db98a6e27b0 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -134,6 +134,7 @@ sv: otp: 'Ange tvåfaktorskoden som genererades av din telefonapp, eller använd någon av dina återställningskoder:' webauthn: Om det är en USB-nyckel se till att sätta in den och, om nödvändigt, tryck på den. settings: + email_subscriptions: Om detta inaktiveras behålls befintliga prenumeranter men slutar skicka e-post. indexable: Din profilsida kan visas i sökresultat på Google, Bing och andra sökmotorer. show_application: Du kommer alltid att kunna se vilken app som publicerat ditt inlägg oavsett. tag: @@ -153,6 +154,7 @@ sv: jurisdiction: Lista det land där vem som än betalar räkningarna bor. Om det är ett företag eller annan enhet, lista landet där det är inkorporerat, och staden, regionen, territoriet eller staten på lämpligt sätt. min_age: Bör inte vara lägre än den minimiålder som krävs enligt lagarna i din jurisdiktion. user: + chosen_languages: När detta markeras kommer endast inlägg på valda språk att visas i offentliga tidslinjer. Den här inställningen påverkar inte din hemtidslinje och dina listor. date_of_birth: one: Vi måste se till att du är minst %{count} för att använda %{domain}. Vi sparar inte denna information. other: Vi måste se till att du är minst %{count} för att använda %{domain}. Vi lagrar inte denna information. @@ -355,6 +357,7 @@ sv: hint: Ytterligare information text: Regel settings: + email_subscriptions: Aktivera e-postregistreringar indexable: Inkludera profilsidan i sökmotorer show_application: Visa från vilket program du skickade ett inlägg tag: diff --git a/config/locales/sv.yml b/config/locales/sv.yml index a3becf58bdc91e..8a7262b0961aa6 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1431,12 +1431,29 @@ sv: title: Få e-postuppdateringar från %{name}? notification: create_account: Skapa ett Mastodon-konto + footer: + privacy_html: E-postmeddelanden skickas från %{domain}, en server som drivs av Mastodon. För att förstå hur denna server behandlar dina personuppgifter, se sekretesspolicy:n. + reason_for_email_html: Du får detta e-postmeddelande eftersom du valt att ta emot e-postuppdateringar från %{name}. Vill du inte ta emot dessa e-postmeddelanden? Avprenumerera + interact_with_this_post: + one: Interagera med detta inlägg och upptäck mer som det. + other: Interagera med dessa inlägg och upptäck mer. subject: plural: Nya inlägg från %{name} singular: 'Nytt inlägg: "%{excerpt}"' title: plural: Nya inlägg från %{name} singular: 'Nytt inlägg: "%{excerpt}"' + email_subscriptions: + active: Aktiv + confirmations: + show: + changed_your_mind: Ändrade du dig? + success_html: Du kommer nu att börja få e-postmeddelanden när %{name} publicerar nya inlägg. Lägg till %{sender} till dina kontakter så att dessa inlägg inte hamnar i din skräppostmapp. + title: Du är registrerad + unsubscribe: Avprenumerera + inactive: Inaktiv + status: Status + subscribers: Prenumeranter emoji_styles: auto: Automatiskt native: Ursprunglig @@ -1806,6 +1823,8 @@ sv: posting_defaults: Standardinställningar för inlägg public_timelines: Publika tidslinjer privacy: + email_subscriptions: Skicka inlägg via e-post + email_subscriptions_hint_html: Lägg till ett e-postregistreringsformulär till din profil som visas för utloggade användare. När en besökare anger sin e-postadress och väljer det kommer Mastodon att skicka e-postuppdateringar för dina offentliga inlägg. hint_html: "Anpassa hur du vill att din profil och dina inlägg ska hittas. En mängd funktioner i Mastodon kan hjälpa dig att nå en bredare publik när den är aktiverad. Ta en stund att granska dessa inställningar för att se att de passar ditt användningsfall." privacy: Integritet privacy_hint_html: Kontrollera hur mycket du vill avslöja till förmån för andra. Andra upptäcker intressanta profiler och coola appar genom att bläddra bland vad andra följer och se vilka appar de lägger upp från, men du kanske föredrar att hålla det dolt. @@ -2069,6 +2088,28 @@ sv: resume_app_authorization: Fortsätt app-autentisering role_requirement: "%{domain} kräver att du ställer in tvåfaktorsautentisering innan du kan använda Mastodon." webauthn: Säkerhetsnycklar + unsubscriptions: + create: + action: Gå till serverns hemsida + email_subscription: + confirmation_html: Du kommer inte längre att få e-post från %{name}. + title: Du har avprenumererat + user: + confirmation_html: Du får inte längre %{type} från Mastodon på %{domain}. + notification_emails: + favourite: aviseringsmejl för favoriserade inlägg + follow: aviseringsmejl för följda inlägg + follow_request: aviseringsmejl för följdförfrågningar + mention: aviseringsmejl för inlägg där du nämns + reblog: aviseringsmejl för förhöjda inlägg + show: + action: Avprenumerera + email_subscription: + confirmation_html: Du kommer att sluta ta emot e-post när detta konto publicerar nya inlägg. + title: Avprenumerera från %{name}? + user: + confirmation_html: Du kommer sluta ta emot %{type} från Mastodon på %{domain}. + title: Avprenumerera från %{type}? user_mailer: announcement_published: description: 'Administratörerna på %{domain} gör ett tillkännagivande:' From 245c03664a6822e6c137ada75ba1259e05ba6fbd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 9 Apr 2026 10:50:03 +0000 Subject: [PATCH 165/335] New Crowdin Translations (automated) (#38620) Co-authored-by: GitHub Actions From 19ef4e5c40818278156f9be9a4fd76d18cd44822 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 9 Apr 2026 12:59:11 +0200 Subject: [PATCH 166/335] Allow hiding featured tab from empty state (#38625) --- .../components/empty_message.tsx | 26 ++++++- .../features/account_featured/index.tsx | 56 +++++++++----- .../confirmation_modals/hide_featured_tab.tsx | 73 +++++++++++++++++++ .../features/ui/components/modal_root.jsx | 1 + app/javascript/mastodon/locales/en.json | 5 ++ 5 files changed, 142 insertions(+), 19 deletions(-) create mode 100644 app/javascript/mastodon/features/ui/components/confirmation_modals/hide_featured_tab.tsx diff --git a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx index fa16f7dbe2195b..c7c4b209563481 100644 --- a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx +++ b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx @@ -1,3 +1,5 @@ +import { useCallback } from 'react'; + import { FormattedMessage } from 'react-intl'; import { useParams } from 'react-router'; @@ -5,17 +7,21 @@ import { Link } from 'react-router-dom'; import ElephantDarkImage from '@/images/elephant_ui_dark.svg?react'; import ElephantLightImage from '@/images/elephant_ui_light.svg?react'; +import { openModal } from '@/mastodon/actions/modal'; +import { Button } from '@/mastodon/components/button'; import { EmptyState } from '@/mastodon/components/empty_state'; import { LimitedAccountHint } from '@/mastodon/features/account_timeline/components/limited_account_hint'; import { areCollectionsEnabled } from '@/mastodon/features/collections/utils'; import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; import { useTheme } from '@/mastodon/hooks/useTheme'; +import { useAppDispatch } from '@/mastodon/store'; interface EmptyMessageProps { suspended: boolean; hidden: boolean; blockedBy: boolean; accountId?: string; + withImage?: boolean; } export const EmptyMessage: React.FC = ({ @@ -23,6 +29,7 @@ export const EmptyMessage: React.FC = ({ suspended, hidden, blockedBy, + withImage = true, }) => { const { acct } = useParams<{ acct?: string }>(); const me = useCurrentAccountId(); @@ -30,6 +37,17 @@ export const EmptyMessage: React.FC = ({ const ElephantImage = theme === 'dark' ? ElephantDarkImage : ElephantLightImage; + const dispatch = useAppDispatch(); + + const confirmHideFeaturedTab = useCallback(() => { + void dispatch( + openModal({ + modalType: 'ACCOUNT_HIDE_FEATURED_TAB', + modalProps: {}, + }), + ); + }, [dispatch]); + if (!accountId) { return null; } @@ -39,7 +57,7 @@ export const EmptyMessage: React.FC = ({ const hasCollections = areCollectionsEnabled(); - const image = ; + const image = withImage && ; if (me === accountId) { if (hasCollections) { @@ -66,6 +84,12 @@ export const EmptyMessage: React.FC = ({ defaultMessage='Create a collection' /> + ); } else { diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index b8964ec1d34dfa..c27f56f8d2f4b3 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -35,6 +35,8 @@ import { areCollectionsEnabled } from '../collections/utils'; import { EmptyMessage } from './components/empty_message'; import { Subheading, SubheadingLink } from './components/subheading'; +const collectionsEnabled = areCollectionsEnabled(); + const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ multiColumn, }) => { @@ -56,13 +58,12 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ if (accountId) { void dispatch(fetchEndorsedAccounts({ accountId })); - if (areCollectionsEnabled()) { + if (collectionsEnabled) { void dispatch(fetchAccountCollections({ accountId })); } } }, [accountId, dispatch]); - const isLoading = !accountId; const featuredAccountIds = useAppSelector( (state) => state.user_lists.getIn( @@ -70,8 +71,8 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ ImmutableList(), ) as ImmutableList, ); - const { collections, status } = useAppSelector((state) => - selectAccountCollections(state, accountId ?? null), + const { collections, status: collectionsLoadStatus } = useAppSelector( + (state) => selectAccountCollections(state, accountId ?? null), ); const listedCollections = collections.filter( // Hide unlisted and empty collections to avoid confusion @@ -80,6 +81,15 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ (item) => item.discoverable && !!item.item_count, ); + const hasCollections = + collectionsEnabled && + collectionsLoadStatus === 'idle' && + listedCollections.length > 0; + + const hasFeaturedAccounts = !featuredAccountIds.isEmpty(); + + const isLoading = !accountId || collectionsLoadStatus !== 'idle'; + if (accountId === null) { return ; } @@ -94,7 +104,7 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ ); } - if (featuredAccountIds.isEmpty() && listedCollections.length === 0) { + if (!hasFeaturedAccounts && !hasCollections) { return ( = ({ )} - {listedCollections.length > 0 && status === 'idle' && ( + {collectionsEnabled && ( <>

    @@ -154,18 +164,28 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ /> - - {listedCollections.map((item, index) => ( - - ))} - + {hasCollections ? ( + + {listedCollections.map((item, index) => ( + + ))} + + ) : ( +

    + {subtitle &&
    {subtitle}
    } + + ); +}; diff --git a/app/javascript/mastodon/components/list_item/list_item.stories.tsx b/app/javascript/mastodon/components/list_item/list_item.stories.tsx new file mode 100644 index 00000000000000..d46102c1c317dd --- /dev/null +++ b/app/javascript/mastodon/components/list_item/list_item.stories.tsx @@ -0,0 +1,44 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react'; +import KeyboardArrowDownIcon from '@/material-icons/400-24px/keyboard_arrow_down.svg?react'; +import VisibilityIcon from '@/material-icons/400-24px/visibility.svg?react'; +import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; + +import { Icon } from '../icon'; + +import { ListItemWrapper, ListItemButton, ListItemLink } from './index'; + +const meta = { + title: 'Components/ListItem', + component: ListItemWrapper, + subcomponents: { ListItemButton, ListItemLink }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const WithButton: Story = { + render: () => ( + } + iconEnd={} + > + + 3 hidden accounts + + + ), +}; + +export const WithLink: Story = { + render: () => ( + } + iconEnd={} + > + View more + + ), +}; diff --git a/app/javascript/mastodon/components/list_item/styles.module.scss b/app/javascript/mastodon/components/list_item/styles.module.scss new file mode 100644 index 00000000000000..42542d5a229e6b --- /dev/null +++ b/app/javascript/mastodon/components/list_item/styles.module.scss @@ -0,0 +1,44 @@ +.wrapper { + box-sizing: border-box; + position: relative; + display: flex; + align-items: center; + width: 100%; + gap: 12px; + padding: 16px; + font-size: 15px; + color: var(--color-text-primary); +} + +.title { + font-weight: 500; + + :any-link, + button { + padding: 0; + border: none; + color: inherit; + background: none; + font: inherit; + text-decoration: none; + + &:hover { + text-decoration: underline; + } + + &::before { + content: ''; + position: absolute; + inset: 0; + } + } +} + +.subtitle { + font-size: 13px; + color: var(--color-text-secondary); +} + +.iconEnd { + margin-inline-start: auto; +} diff --git a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx index fa56c6a3ff4062..affbd9ad030380 100644 --- a/app/javascript/mastodon/features/collections/detail/accounts_list.tsx +++ b/app/javascript/mastodon/features/collections/detail/accounts_list.tsx @@ -1,7 +1,15 @@ -import { useCallback, useRef, useState } from 'react'; +import { useCallback, useMemo, useRef, useState } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; +import { + ListItemButton, + ListItemWrapper, +} from '@/mastodon/components/list_item'; +import { createAppSelector, useAppSelector } from '@/mastodon/store'; +import KeyboardArrowDownIcon from '@/material-icons/400-24px/keyboard_arrow_down.svg?react'; +import KeyboardArrowUpIcon from '@/material-icons/400-24px/keyboard_arrow_up.svg?react'; +import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import type { RenderButtonOptions } from 'mastodon/components/account_list_item'; import { @@ -10,11 +18,13 @@ import { } from 'mastodon/components/account_list_item'; import { Button } from 'mastodon/components/button'; import { Callout } from 'mastodon/components/callout'; +import { Icon } from 'mastodon/components/icon'; import { Article, ItemList, } from 'mastodon/components/scrollable_list/components'; import { me } from 'mastodon/initial_state'; +import type { Account } from 'mastodon/models/account'; import { useConfirmRevoke } from './revoke_collection_inclusion_modal'; import classes from './styles.module.scss'; @@ -70,6 +80,18 @@ const SensitiveScreen: React.FC<{ ); }; +const getCollectionAccounts = createAppSelector( + [ + (state) => state.accounts, + (state, collectionId?: string) => + state.collections.collections[collectionId ?? '']?.items, + ], + (accounts, collectionAccountItems) => + (collectionAccountItems ?? []).map(({ account_id }) => + account_id ? accounts.get(account_id) : null, + ), +); + export const CollectionAccountsList: React.FC<{ collection?: ApiCollectionJSON; isLoading: boolean; @@ -77,9 +99,44 @@ export const CollectionAccountsList: React.FC<{ const intl = useIntl(); const confirmRevoke = useConfirmRevoke(collection); const listHeadingRef = useRef(null); + const [canShowHiddenAccounts, setCanShowHiddenAccounts] = useState(false); + const toggleHiddenAccounts = useCallback(() => { + setCanShowHiddenAccounts((prev) => !prev); + }, []); const isOwnCollection = collection?.account_id === me; - const { items = [], account_id: collectionOwnerId } = collection ?? {}; + const { items = [], account_id: collectionOwnerId, id } = collection ?? {}; + + const relationships = useAppSelector((state) => state.relationships); + const collectionAccounts = useAppSelector((state) => + getCollectionAccounts(state, id), + ); + + const { visibleAccounts, hiddenAccounts } = useMemo(() => { + const visibleAccounts: Account[] = []; + const hiddenAccounts: Account[] = []; + + collectionAccounts.forEach((item) => { + if (!item) { + // We currently simply hide unavailable accounts, this includes + // accounts that are pending inclusion; at least for the collection + // owner we should display an indication of pending users + return; + } + + const relationship = relationships.get(item.id); + if (relationship?.blocking || relationship?.muting) { + hiddenAccounts.push(item); + } else { + visibleAccounts.push(item); + } + }); + + return { visibleAccounts, hiddenAccounts }; + }, [collectionAccounts, relationships]); + + const hasHiddenAccounts = hiddenAccounts.length > 0; + const initialListSize = visibleAccounts.length + (hasHiddenAccounts ? 1 : 0); const renderAccountItemButton = useCallback( ({ relationship, accountId }: RenderButtonOptions) => { @@ -137,19 +194,71 @@ export const CollectionAccountsList: React.FC<{ isLoading={isLoading} emptyMessage={intl.formatMessage(messages.empty)} > - {items.map(({ account_id }, index) => ( + {visibleAccounts.map(({ id }, index) => (
    ))} + {hasHiddenAccounts && ( +
    + } + iconEnd={ + + } + > + + } + > + + + +
    + )} + {canShowHiddenAccounts && + hiddenAccounts.map(({ id }, index) => ( +
    + +
    + ))} )} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index fb8c39bb42c68a..b67304cbb462cd 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "You're featured in this collection", "collections.edit_details": "Edit details", "collections.error_loading_collections": "There was an error when trying to load your collections.", + "collections.hidden_accounts_description": "You’ve blocked or muted {count, plural, one {this user} other {these users}}", + "collections.hidden_accounts_link": "{count, plural, one {# hidden account} other {# hidden accounts}}", "collections.hints.accounts_counter": "{count} / {max} accounts", "collections.last_updated_at": "Last updated: {date}", "collections.manage_accounts": "Manage accounts", From 63a244fe1a5d3220702a048afa976addde4f4645 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 13 Apr 2026 19:28:28 +0200 Subject: [PATCH 191/335] Add `/api/v1_alpha/accounts/:id/in_collections` to list collections you are in (#38657) --- .../api/v1_alpha/in_collections_controller.rb | 63 +++++++++++++++++ app/models/concerns/account/associations.rb | 1 + app/policies/account_policy.rb | 4 ++ config/routes/api.rb | 1 + .../api/v1_alpha/in_collections_spec.rb | 69 +++++++++++++++++++ 5 files changed, 138 insertions(+) create mode 100644 app/controllers/api/v1_alpha/in_collections_controller.rb create mode 100644 spec/requests/api/v1_alpha/in_collections_spec.rb diff --git a/app/controllers/api/v1_alpha/in_collections_controller.rb b/app/controllers/api/v1_alpha/in_collections_controller.rb new file mode 100644 index 00000000000000..087464989ef0e5 --- /dev/null +++ b/app/controllers/api/v1_alpha/in_collections_controller.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +class Api::V1Alpha::InCollectionsController < Api::BaseController + include Authorization + + DEFAULT_COLLECTIONS_LIMIT = 40 + + before_action :check_feature_enabled + + before_action -> { authorize_if_got_token! :read, :'read:collections' }, only: [:index] + + before_action :require_user! + before_action :set_account, only: [:index] + before_action :set_collections, only: [:index] + + after_action :insert_pagination_headers, only: [:index] + + after_action :verify_authorized + + def index + cache_if_unauthenticated! + authorize @account, :index_featured_in_collections? + + render json: @collections, each_serializer: REST::CollectionSerializer, adapter: :json + end + + private + + def set_account + @account = Account.find(params[:account_id]) + end + + def set_collections + @collections = @account.featured_in_collections + .with_tag + .offset(offset_param) + .limit(limit_param(DEFAULT_COLLECTIONS_LIMIT)) + end + + def check_feature_enabled + raise ActionController::RoutingError unless Mastodon::Feature.collections_enabled? + end + + def next_path + return unless records_continue? + + api_v1_alpha_account_in_collections_url(@account, pagination_params(offset: offset_param + limit_param(DEFAULT_COLLECTIONS_LIMIT))) + end + + def prev_path + return if offset_param.zero? + + api_v1_alpha_account_in_collections_url(@account, pagination_params(offset: offset_param - limit_param(DEFAULT_COLLECTIONS_LIMIT))) + end + + def records_continue? + ((offset_param * limit_param(DEFAULT_COLLECTIONS_LIMIT)) + @collections.size) < @account.featured_in_collections.size + end + + def offset_param + params[:offset].to_i + end +end diff --git a/app/models/concerns/account/associations.rb b/app/models/concerns/account/associations.rb index db2e996d0fb3fd..8c26a4da648a1c 100644 --- a/app/models/concerns/account/associations.rb +++ b/app/models/concerns/account/associations.rb @@ -18,6 +18,7 @@ module Account::Associations has_many :collections has_many :collection_items has_many :curated_collection_items, through: :collections, class_name: 'CollectionItem', source: :collection_items + has_many :featured_in_collections, through: :collection_items, class_name: 'Collection', source: :collection has_many :conversations, class_name: 'AccountConversation' has_many :custom_filters has_many :favourites diff --git a/app/policies/account_policy.rb b/app/policies/account_policy.rb index c46eb080348e78..43c1b8c2a38b4b 100644 --- a/app/policies/account_policy.rb +++ b/app/policies/account_policy.rb @@ -72,4 +72,8 @@ def feature? def index_collections? current_account.nil? || !record.blocking_or_domain_blocking?(current_account) end + + def index_featured_in_collections? + current_account.id == record.id + end end diff --git a/config/routes/api.rb b/config/routes/api.rb index e1419bebcb5041..2d2cc80fc8ed27 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -8,6 +8,7 @@ namespace :v1_alpha do resources :accounts, only: [] do resources :collections, only: [:index] + resources :in_collections, only: [:index] end resources :async_refreshes, only: :show diff --git a/spec/requests/api/v1_alpha/in_collections_spec.rb b/spec/requests/api/v1_alpha/in_collections_spec.rb new file mode 100644 index 00000000000000..a4bd3110bed523 --- /dev/null +++ b/spec/requests/api/v1_alpha/in_collections_spec.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe 'Api::V1Alpha::InCollections', feature: :collections do + include_context 'with API authentication', oauth_scopes: 'read:collections write:collections' + + describe 'GET /api/v1_alpha/in_collections' do + subject do + get "/api/v1_alpha/accounts/#{account.id}/in_collections", headers: headers, params: params + end + + let(:params) { {} } + let(:account) { user.account } + + before { Fabricate.times(3, :collection_item, account: account) } + + it 'returns all collections for the given account and http success' do + subject + + expect(response).to have_http_status(200) + expect(response.parsed_body[:collections].size).to eq 3 + end + + context 'with limit param' do + let(:params) { { limit: '1' } } + + it 'returns only a single result' do + subject + + expect(response).to have_http_status(200) + expect(response.parsed_body[:collections].size).to eq 1 + + expect(response) + .to include_pagination_headers( + next: api_v1_alpha_account_in_collections_url(account, limit: 1, offset: 1) + ) + end + end + + context 'with limit and offset params' do + let(:params) { { limit: '1', offset: '1' } } + + it 'returns the correct result and headers' do + subject + + expect(response).to have_http_status(200) + expect(response.parsed_body[:collections].size).to eq 1 + + expect(response) + .to include_pagination_headers( + prev: api_v1_alpha_account_in_collections_url(account, limit: 1, offset: 0), + next: api_v1_alpha_account_in_collections_url(account, limit: 1, offset: 2) + ) + end + end + + context 'when requested account is different from current account' do + let(:account) { Fabricate(:account) } + + it 'returns http forbidden' do + subject + + expect(response) + .to have_http_status(403) + end + end + end +end From 6142c7b003430b92f9c10f66fd48aa646c722e4a Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 14 Apr 2026 11:21:06 +0200 Subject: [PATCH 192/335] Profile redesign: Allow animated and transparent avatars (#38663) --- .../account_edit/modals/image_upload.tsx | 100 +++++++++++++----- 1 file changed, 76 insertions(+), 24 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/modals/image_upload.tsx b/app/javascript/mastodon/features/account_edit/modals/image_upload.tsx index 23636083de7ba1..fa8b9df4dfed06 100644 --- a/app/javascript/mastodon/features/account_edit/modals/image_upload.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/image_upload.tsx @@ -64,15 +64,21 @@ export const ImageUploadModal: FC< const [imageBlob, setImageBlob] = useState(null); const handleFile = useCallback((file: File) => { - const reader = new FileReader(); - reader.addEventListener('load', () => { - const result = reader.result; - if (typeof result === 'string' && result.length > 0) { - setImageSrc(result); - setStep('crop'); - } - }); - reader.readAsDataURL(file); + try { + parseImageFile(file, (result, isAnimated) => { + if (isAnimated) { + // If the image is animated, skip cropping and go straight to alt text. + setImageBlob(file); + setStep('alt'); + } else { + setImageSrc(result); + setStep('crop'); + } + }); + } catch (error) { + console.warn('Error with image parsing:', error); + setStep('select'); + } }, []); const handleCrop = useCallback( @@ -104,19 +110,20 @@ export const ImageUploadModal: FC< ); const handleCancel = useCallback(() => { - switch (step) { - case 'crop': - setImageSrc(null); - setStep('select'); - break; - case 'alt': - setImageBlob(null); + if (step === 'crop') { + setImageSrc(null); + setStep('select'); + } else if (step === 'alt') { + setImageBlob(null); + if (imageSrc) { setStep('crop'); - break; - default: - onClose(); + } else { + setStep('select'); + } + } else { + onClose(); } - }, [onClose, step]); + }, [imageSrc, onClose, step]); return ( void, +): void { + const reader = new FileReader(); + reader.onload = () => { + const buffer = reader.result; + if (!(buffer instanceof ArrayBuffer)) { + throw new Error('Expected an ArrayBuffer'); + } + + // Convert the ArrayBuffer to a base64 data URI. + const bytes = new Uint8Array(buffer); + const base64 = btoa(String.fromCharCode(...bytes)); + const dataUri = `data:${file.type};base64,${base64}`; + + // If the file type is not a GIF, then it's not animated as we don't support animated WebP or PNG. + if (file.type !== 'image/gif') { + cb(dataUri, false); + } + + const view = new DataView(buffer, 10); // Start from the last 4 bytes of the Logical Screen Descriptor. + let offset = 3; + + // Check the first bit for the global color table flag. + const globalColorTable = view.getInt8(0); + if (globalColorTable & 0x08) { + // Grab last three bits to calculate the global color table size, and skip it. + offset += 3 * Math.pow(2, (globalColorTable & 0x7) + 1); + } + + // Check Graphics Control Extension and Graphics Control Label to access animated data. + let delayTime = 0; + if (view.getUint8(offset) & 0x21 && view.getUint8(offset + 1) & 0xf9) { + // Skip to the delay time, which is stored in the next two bytes. + delayTime = view.getUint16(offset + 4); + } + + // If there is a delay time, the GIF is animated. + cb(dataUri, delayTime > 0); + }; + reader.readAsArrayBuffer(file); +} + async function calculateCroppedImage( imageSrc: string, crop: Area, @@ -427,10 +482,7 @@ async function calculateCroppedImage( crop.height, ); - return canvas.convertToBlob({ - quality: 0.7, - type: 'image/jpeg', - }); + return canvas.convertToBlob(); } function dataUriToImage(dataUri: string) { From 4fcab304e37ca7575dcbb22e3d6232dcbc20beec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 14 Apr 2026 12:12:20 +0200 Subject: [PATCH 193/335] New Crowdin Translations (automated) (#38665) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 2 ++ app/javascript/mastodon/locales/da.json | 2 ++ app/javascript/mastodon/locales/de.json | 2 ++ app/javascript/mastodon/locales/el.json | 2 ++ app/javascript/mastodon/locales/es-AR.json | 2 ++ app/javascript/mastodon/locales/es-MX.json | 2 ++ app/javascript/mastodon/locales/es.json | 2 ++ app/javascript/mastodon/locales/fi.json | 2 ++ app/javascript/mastodon/locales/is.json | 2 ++ app/javascript/mastodon/locales/it.json | 2 ++ app/javascript/mastodon/locales/ja.json | 17 ++++++++++++++++- app/javascript/mastodon/locales/nan-TW.json | 14 ++++++++++++++ app/javascript/mastodon/locales/nl.json | 4 +++- app/javascript/mastodon/locales/sq.json | 2 ++ app/javascript/mastodon/locales/zh-CN.json | 2 ++ app/javascript/mastodon/locales/zh-TW.json | 2 ++ config/locales/simple_form.de.yml | 8 ++++---- config/locales/simple_form.es-AR.yml | 2 +- 18 files changed, 64 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index da7eb392a4540e..988fa26aab937c 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Вас уключылі ў гэтую калекцыю", "collections.edit_details": "Рэдагаваць падрабязнасці", "collections.error_loading_collections": "Адбылася памылка падчас загрузкі Вашых калекцый.", + "collections.hidden_accounts_description": "Вы заблакіравалі або ігнаруеце {count, plural, one {гэтага карыстальніка} other {гэтых карыстальнікаў}}", + "collections.hidden_accounts_link": "{count, plural, one {# схаваны ўліковы запіс} few {# схаваныя ўліковыя запісы} other {# схаваных уліковых запісаў}}", "collections.hints.accounts_counter": "{count} / {max} уліковых запісаў", "collections.last_updated_at": "Апошняе абнаўленне: {date}", "collections.manage_accounts": "Кіраванне ўліковымі запісамі", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 0161fe25987b15..cd31aab185a4d9 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Du er med i denne samling", "collections.edit_details": "Rediger detaljer", "collections.error_loading_collections": "Der opstod en fejl under indlæsning af dine samlinger.", + "collections.hidden_accounts_description": "Du har blokeret eller skjult {count, plural, one {denne bruger} other {disse brugere}}", + "collections.hidden_accounts_link": "{count, plural, one {# skjult konto} other {# skjulte konti}}", "collections.hints.accounts_counter": "{count} / {max} konti", "collections.last_updated_at": "Senest opdateret: {date}", "collections.manage_accounts": "Administrer konti", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 48372e32237875..b18bde4513ae2f 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Du bist ein Teil dieser Sammlung", "collections.edit_details": "Details bearbeiten", "collections.error_loading_collections": "Beim Laden deiner Sammlungen ist ein Fehler aufgetreten.", + "collections.hidden_accounts_description": "Du hast {count, plural, one {dieses Profil} other {diese Profile}} blockiert oder stummgeschaltet", + "collections.hidden_accounts_link": "{count, plural, one {# Konto ausgeblendet} other {# Konten ausgeblendet}}", "collections.hints.accounts_counter": "{count}/{max} Konten", "collections.last_updated_at": "Aktualisiert: {date}", "collections.manage_accounts": "Profile verwalten", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index b5f1b748f766e5..6ddda10020b6be 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Είστε αναδεδειγμένοι σε αυτήν τη συλλογή", "collections.edit_details": "Επεξεργασία λεπτομερειών", "collections.error_loading_collections": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια φόρτωσης των συλλογών σας.", + "collections.hidden_accounts_description": "Έχετε αποκλείσει ή κάνει σίγαση {count, plural, one {αυτόν τον χρήστη} other {αυτούς τους χρήστες}}", + "collections.hidden_accounts_link": "{count, plural, one {# κρυμμένος λογαριασμός} other {# κρυμμένοι λογαριασμοί}}", "collections.hints.accounts_counter": "{count} / {max} λογαριασμοί", "collections.last_updated_at": "Τελευταία ενημέρωση: {date}", "collections.manage_accounts": "Διαχείριση λογαριασμών", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 7e1b3f03b83a77..2e97fe1fce0f28 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Te destacaron en esta colección", "collections.edit_details": "Editar detalles", "collections.error_loading_collections": "Hubo un error al intentar cargar tus colecciones.", + "collections.hidden_accounts_description": "Bloqueaste o silenciaste a {count, plural, one {este usuario} other {estos usuarios}}", + "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count} / {max} cuentas", "collections.last_updated_at": "Última actualización: {date}", "collections.manage_accounts": "Administrar cuentas", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 0ad3aa2ce38e61..5b97ffa5e35099 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Apareces en esta colección", "collections.edit_details": "Editar detalles", "collections.error_loading_collections": "Se produjo un error al intentar cargar tus colecciones.", + "collections.hidden_accounts_description": "Has bloqueado o silenciado {count, plural, one {a este usuario} other {a estos usuarios}}", + "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count} / {max} cuentas", "collections.last_updated_at": "Última actualización: {date}", "collections.manage_accounts": "Administrar cuentas", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 7f891eac407ebe..d2f49929b77433 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Apareces en esta colección", "collections.edit_details": "Editar detalles", "collections.error_loading_collections": "Se ha producido un error al intentar cargar tus colecciones.", + "collections.hidden_accounts_description": "Has bloqueado o silenciado {count, plural,one {a este usuario}other {a estos usuarios}}", + "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count} / {max} cuentas", "collections.last_updated_at": "Última actualización: {date}", "collections.manage_accounts": "Administrar cuentas", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 0c1178aac4f35a..5e6dfd634659c7 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Esiinnyt tässä kokoelmassa", "collections.edit_details": "Muokkaa tietoja", "collections.error_loading_collections": "Kokoelmien latauksessa tapahtui virhe.", + "collections.hidden_accounts_description": "Olet estänyt tai mykistänyt {count, plural, one {tämän käyttäjän} other {nämä käyttäjät}}", + "collections.hidden_accounts_link": "{count, plural, one {# piilotettu tili} other {# piilotettua tiliä}}", "collections.hints.accounts_counter": "{count} / {max} tiliä", "collections.last_updated_at": "Päivitetty viimeksi {date}", "collections.manage_accounts": "Hallitse tilejä", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 0474ed275965b3..ca3e87d19d789b 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Þú kemur fyrir í þessu safni", "collections.edit_details": "Breyta ítarupplýsingum", "collections.error_loading_collections": "Villa kom upp þegar reynt var að hlaða inn söfnunum þínum.", + "collections.hidden_accounts_description": "Þú hefur lokað á eða þaggað niður í {count, plural, one {þessum notanda} other {þessum notendum}}", + "collections.hidden_accounts_link": "{count, plural, one {# falinn aðgangur} other {# faldir aðgangar}}", "collections.hints.accounts_counter": "{count} / {max} aðgangar", "collections.last_updated_at": "Síðast uppfært: {date}", "collections.manage_accounts": "Sýsla með notandaaðganga", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 0aabdbc51d7413..ea4147cb5773ac 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Sei presente in questa collezione", "collections.edit_details": "Modifica i dettagli", "collections.error_loading_collections": "Si è verificato un errore durante il tentativo di caricare le tue collezioni.", + "collections.hidden_accounts_description": "Hai bloccato o silenziato {count, plural, one {questo utente} other {questi utenti}}", + "collections.hidden_accounts_link": "{count, plural, one {# account nascosto} other {# account nascosti}}", "collections.hints.accounts_counter": "{count} / {max} account", "collections.last_updated_at": "Ultimo aggiornamento: {date}", "collections.manage_accounts": "Gestisci account", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 34e22531814cf4..ac638759045d30 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -194,27 +194,41 @@ "collections.accounts.empty_description": "フォローしている {count} アカウントまで追加できます", "collections.accounts.empty_title": "このコレクションは空です", "collections.by_account": "{account_handle} による", + "collections.collection_description": "詳細", "collections.collection_language": "言語", + "collections.collection_name": "名前", + "collections.collection_topic": "トピック", "collections.confirm_account_removal": "このコレクションからこのアカウントを削除してもよろしいですか?", + "collections.content_warning": "閲覧注意", "collections.continue": "次に進む", "collections.create.accounts_subtitle": "あなたがフォローしていてディスカバリー機能にオプトインしたアカウントのみを追加することができます。", "collections.create.accounts_title": "このコレクションで誰に注目しますか?", + "collections.create.basic_details_title": "基本情報", "collections.create.steps": "ステップ {step}/{total}", "collections.create_a_collection_hint": "お気に入りのアカウントを他の人に勧めたり共有するコレクションを作成しましょう。", "collections.create_collection": "コレクションを作成", "collections.delete_collection": "コレクションを削除", - "collections.description_length_hint": "100 文字制限", + "collections.description_length_hint": "100 文字まで", "collections.detail.accounts_heading": "アカウント", "collections.detail.author_added_you_on_date": "{author} があなたを {date} に追加しました", "collections.detail.loading": "コレクションを読み込み中…", "collections.detail.share": "コレクションを共有", "collections.detail.you_are_in_this_collection": "あなたはこのコレクションで紹介されています", "collections.hints.accounts_counter": "{count} / {max} アカウント", + "collections.mark_as_sensitive": "閲覧注意としてマーク", + "collections.mark_as_sensitive_hint": "コレクションの説明とアカウントを閲覧注意で隠します。コレクション名は表示されます。", + "collections.name_length_hint": "40 文字まで", "collections.new_collection": "新規のコレクション", "collections.no_collections_yet": "コレクションはまだありません。", "collections.remove_account": "このアカウントを削除する", "collections.report_collection": "このコレクションを通報する", "collections.search_accounts_label": "追加するアカウントを探す…", + "collections.topic_hint": "ハッシュタグを追加して、このコレクションの主なトピックを知ってもらいましょう。", + "collections.visibility_public": "公開", + "collections.visibility_public_hint": "検索結果やその他おすすめに表示されて、見つけてもらうことができます。", + "collections.visibility_title": "公開範囲", + "collections.visibility_unlisted": "ひかえめな公開", + "collections.visibility_unlisted_hint": "リンクを知っている人が見られます。検索結果やその他おすすめには表示さません。", "column.about": "概要", "column.blocks": "ブロックしたユーザー", "column.bookmarks": "ブックマーク", @@ -461,6 +475,7 @@ "footer.source_code": "ソースコードを表示", "footer.status": "ステータス", "footer.terms_of_service": "サービス利用規約", + "form_field.optional": "(省略可能)", "generic.saved": "保存しました", "getting_started.heading": "スタート", "hashtag.admin_moderation": "#{name}のモデレーション画面を開く", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index 4d4328da3f113b..76f25126be63d2 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -45,6 +45,7 @@ "account.featured": "精選ê", "account.featured.accounts": "個人資料", "account.featured.collections": "收藏", + "account.featured.new_collection": "新ê收藏", "account.field_overflow": "展示規篇內容", "account.filters.all": "逐ē活動", "account.filters.boosts_toggle": "顯示轉PO", @@ -102,6 +103,7 @@ "account.muted": "消音ah", "account.muting": "消音", "account.mutual": "Lín sio跟tuè", + "account.name.copy": "Khóo-pih口座ê名", "account.name.help.domain": "", "account.name.help.domain_self": "{domain} 是管理lí ê個人資料hām PO文ê服侍器。", "account.name.help.footer": "Tiō親像lí通用別款電子phue程式寄電子phue予別lâng,lí ē當佇別ê Mastodon服侍器hām別lâng交流,koh ē當hām用kap Mastodon kâng款規則(ActivityPub 協定)ê別款社里軟體ê lâng交流。", @@ -138,6 +140,9 @@ "account.unmute": "取消消音 @{name}", "account.unmute_notifications_short": "Kā通知取消消音", "account.unmute_short": "取消消音", + "account_edit.advanced_settings.bot_hint": "Kā別lâng講tsit ê口座主要行自動操作,可能無lâng監控", + "account_edit.advanced_settings.bot_label": "機器lâng ê口座", + "account_edit.advanced_settings.title": "進一步ê設定", "account_edit.bio.add_label": "加添個人紹介", "account_edit.bio.edit_label": "編個人紹介", "account_edit.bio.placeholder": "加一段短紹介,幫tsān別lâng認捌lí。", @@ -346,6 +351,7 @@ "closed_registrations_modal.find_another_server": "Tshuē別ê服侍器", "closed_registrations_modal.preamble": "因為Mastodon非中心化,所以bô論tī tá tsi̍t ê服侍器建立口座,lí lóng ē當跟tuè tsi̍t ê服侍器ê逐ê lâng,kap hām in交流。Lí iā ē當ka-tī起tsi̍t ê站!", "closed_registrations_modal.title": "註冊 Mastodon ê口座", + "collection.share_modal.share_link_label": "分享連結", "collection.share_modal.share_via_post": "PO佇Mastodon頂", "collection.share_modal.share_via_system": "分享kàu……", "collection.share_modal.title": "分享收藏", @@ -426,7 +432,9 @@ "column.list_members": "管理列單ê成員", "column.lists": "列單", "column.mutes": "消音ê用者", + "column.my_collections": "我ê收藏", "column.notifications": "通知", + "column.other_collections": "{name} ê收藏", "column.pins": "釘起來ê PO文", "column.public": "聯邦ê時間線", "column_back_button.label": "頂頁", @@ -496,6 +504,10 @@ "confirmations.follow_to_list.confirm": "跟tuè,加入kàu列單", "confirmations.follow_to_list.message": "Beh kā {name} 加添kàu列單,lí tio̍h先跟tuè伊。", "confirmations.follow_to_list.title": "Kám beh跟tuè tsit ê用者?", + "confirmations.hide_featured_tab.confirm": "Khàm掉分頁", + "confirmations.hide_featured_tab.intro": "Lí不管時ē當佇編輯個人資料→個人資料分頁設定下kha改tse。", + "confirmations.hide_featured_tab.message": "Tse ē kā佇 {serverName} kap別ê pháng上新版本ê Mastodon ê服侍器ê用者khàm掉分頁。其他界面ê顯示可能無kâng款。", + "confirmations.hide_featured_tab.title": "敢beh khàm掉「精選ê」分頁?", "confirmations.logout.confirm": "登出", "confirmations.logout.message": "Lí kám確定beh登出?", "confirmations.logout.title": "Lí kám beh登出?", @@ -575,7 +587,9 @@ "domain_pill.your_server": "Lí數位ê厝,內底有lí所有ê PO文。無kah意?Ē當轉kàu別ê服侍器,koh保有跟tuè lí êl âng。.", "domain_pill.your_username": "Lí 佇tsit ê服侍器獨一ê稱呼。佇無kâng ê服侍器有可能tshuē著kāng名ê用者。", "dropdown.empty": "揀選項", + "email_subscriptions.email": "電子phue箱", "email_subscriptions.form.action": "訂", + "email_subscriptions.form.bottom": "無開Mastodon ê口座,mā ē當佇收件箱收著PO文。不管時lóng ē當取消訂。其他資訊,請參考隱私權政策。", "email_subscriptions.form.title": "訂 {name} ê電子phue更新", "email_subscriptions.submitted.lead": "請檢查lí ê收件箱來完成訂電子批ê更新。", "email_subscriptions.submitted.title": "上尾步", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index a15674072deb50..bf048403c4d031 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -85,7 +85,7 @@ "account.menu.copy": "Link kopiëren", "account.menu.direct": "Privébericht", "account.menu.hide_reblogs": "Boosts op tijdlijn verbergen", - "account.menu.mention": "Vermelding", + "account.menu.mention": "Vermelden", "account.menu.mute": "Account negeren", "account.menu.note.description": "Alleen voor jou zichtbaar", "account.menu.open_original_page": "Op {domain} bekijken", @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Je wordt in deze verzameling uitgelicht", "collections.edit_details": "Gegevens bewerken", "collections.error_loading_collections": "Er is een fout opgetreden bij het laden van je verzamelingen.", + "collections.hidden_accounts_description": "Je hebt {count, plural, one {deze gebruiker} other {deze gebruikers}} geblokkeerd", + "collections.hidden_accounts_link": "{count, plural, one {# verborgen account} other {# verborgen accounts}}", "collections.hints.accounts_counter": "{count} / {max} accounts", "collections.last_updated_at": "Laatst bijgewerkt: {date}", "collections.manage_accounts": "Accounts beheren", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index bae6d22818ad25..2ec73d415a4999 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -383,6 +383,8 @@ "collections.detail.you_are_in_this_collection": "Shfaqeni te ky koleksion", "collections.edit_details": "Përpunoni hollësi", "collections.error_loading_collections": "Pati një gabim teksa provohej të ngarkoheshin koleksionet tuaj.", + "collections.hidden_accounts_description": "Bllokuat, ose heshtuat {count, plural, one {këtë përdorues} other {këta përdorues}}", + "collections.hidden_accounts_link": "{count, plural, one {# llogari e fshehur} other {# llogari të fshehura}}", "collections.hints.accounts_counter": "{count} / {max} llogari", "collections.last_updated_at": "Përditësuar së fundi më: {date}", "collections.manage_accounts": "Administroni llogari", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index c5e77649080efc..2e7b3f46c3a301 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "你被添加到了此收藏列表", "collections.edit_details": "编辑详情", "collections.error_loading_collections": "加载你的收藏列表时发生错误。", + "collections.hidden_accounts_description": "你已屏蔽或隐藏{count, plural, other {部分用户}}", + "collections.hidden_accounts_link": "{count, plural, other {# 个隐藏账号}}", "collections.hints.accounts_counter": "{count} / {max} 个账号", "collections.last_updated_at": "最后更新:{date}", "collections.manage_accounts": "管理账户", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 677b2fab7edc7c..f236c48f34aabf 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "您已被加入至此收藏名單", "collections.edit_details": "編輯詳細資料", "collections.error_loading_collections": "讀取您的收藏名單時發生錯誤。", + "collections.hidden_accounts_description": "您已封鎖或靜音{count, plural, other {這些使用者}}", + "collections.hidden_accounts_link": "{count, plural, other {# 個隱藏帳號}}", "collections.hints.accounts_counter": "{count} / {max} 個帳號", "collections.last_updated_at": "最後更新:{date}", "collections.manage_accounts": "管理帳號", diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index a6bcd6e3c3bc62..049ee60f7df709 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -337,13 +337,13 @@ de: notification_emails: appeal: Jemand hat Einspruch gegen eine Maßnahme erhoben digest: Zusammenfassung senden - favourite: wenn jemand meinen Beitrag favorisiert + favourite: Jemand favorisierte meinen Beitrag follow: Ein neues Profil folgt mir - follow_request: Ein Profil fragt an, mir zu folgen - mention: Ich wurde erwähnt + follow_request: Jemand möchte mir folgen + mention: Jemand erwähnte mich pending_account: Ein neues Konto muss überprüft werden quote: Jemand zitierte meinen Beitrag - reblog: wenn jemand meinen Beitrag teilt + reblog: Jemand teilte meinen Beitrag report: Eine neue Meldung wurde eingereicht software_updates: all: Über alle Updates informieren diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 6edfae699100fb..6c616ad2440eb6 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -4,7 +4,7 @@ es-AR: hints: account: attribution_domains: Uno por línea. Protege de falsas atribuciones. - discoverable: Puede que aparezcas en colecciones creadas por otros usuarios. También pueden sugerirse tu perfil y publicaciones públicas a otros usuarios en otras funciones de descubrimiento de Mastodon. + discoverable: Puede que aparezcas en colecciones creadas por otros usuarios. También pueden sugerirse tu perfil y publicaciones a otros usuarios en otras funciones de descubrimiento de Mastodon. display_name: Tu nombre completo o tu pseudónimo. fields: Tu sitio web, pronombres, edad, o lo que quieras. indexable: Tus mensajes públicos pueden aparecer en los resultados de la búsqueda en Mastodon. La gente que interactuó con tus mensajes puede ser capaz de buscarlos sin importar el momento. From ba0b9e8ea5d5f161cdecccb3a13caba0a888efc5 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 14 Apr 2026 13:28:15 +0200 Subject: [PATCH 194/335] Add publiccode.yml (#38659) --- publiccode.yml | 191 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 publiccode.yml diff --git a/publiccode.yml b/publiccode.yml new file mode 100644 index 00000000000000..079e1417a6d567 --- /dev/null +++ b/publiccode.yml @@ -0,0 +1,191 @@ +publiccodeYmlVersion: 0.5.0 +name: Mastodon +url: https://github.com/mastodon/mastodon +landingURL: https://joinmastodon.org +softwareVersion: v4.5.8 +releaseDate: 2026-03-24 +logo: app/javascript/images/logo.svg +platforms: + - linux + - windows + - web + - mac + - ios + - android +categories: + - communications + - marketing + - online-community + - social-media-management +organisation: + uri: https://joinmastodon.org + name: Mastodon GmbH +usedBy: + - European Commission + - German Federal Government + - Dutch Government +roadmap: https://joinmastodon.org/roadmap +developmentStatus: stable +softwareType: standalone/backend +intendedAudience: + countries: + - AT + - BE + - BG + - CY + - CZ + - DE + - DK + - EE + - ES + - FI + - FR + - GR + - HR + - HU + - IE + - IT + - LT + - LU + - LV + - MT + - NL + - PL + - PT + - RO + - SE + - SI + - SK + scope: + - society + - government + - education + - culture +description: + en: + localisedName: Mastodon + shortDescription: Connecting the world through thriving online communities + longDescription: + 'Mastodon is a free, open-source social network server based on + ActivityPub where users can follow friends and discover new ones. On + Mastodon, users can publish anything they want: links, pictures, text, and + video. All Mastodon servers are interoperable as a federated network + (users on one server can seamlessly communicate with users from another + one, including non-Mastodon software that implements ActivityPub!)' + documentation: https://docs.joinmastodon.org + features: + - Microblogging + - Multimedia (Images, Video, Audio) + - Polls + - Public profiles + - RSS feeds + - User roles and permissions + - Two factor authentication +legal: + license: AGPL-3.0-or-later +maintenance: + type: internal + contacts: + - name: Eugen Rochko + email: eugen@joinmastodon.org + affiliation: Mastodon GmbH +localisation: + localisationReady: true + availableLanguages: + - af + - an + - ar + - ast + - be + - bg + - bn + - br + - bs + - ca + - ckb + - co + - cs + - cy + - da + - de + - el + - en + - en-GB + - eo + - es + - es-AR + - es-MX + - et + - eu + - fa + - fi + - fo + - fr + - fr-CA + - fy + - ga + - gd + - gl + - he + - hi + - hr + - hu + - hy + - ia + - id + - ie + - ig + - io + - is + - it + - ja + - ka + - kab + - kk + - kn + - ko + - ku + - kw + - la + - lt + - lv + - mk + - ml + - mr + - ms + - my + - nan-TW + - nl + - nn + - 'no' + - oc + - pa + - pl + - pt-BR + - pt-PT + - ro + - ru + - sa + - sc + - sco + - si + - sk + - sl + - sq + - sr + - sr-Latn + - sv + - szl + - ta + - te + - th + - tr + - tt + - ug + - uk + - ur + - vi + - zgh + - zh-CN + - zh-HK + - zh-TW From d931e2f30d107899a8392744358a508962a7222b Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 14 Apr 2026 13:58:50 +0200 Subject: [PATCH 195/335] Prevents featured tags from flickering (#38667) --- .../mastodon/features/account_timeline/v2/styles.module.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss b/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss index f7dee496fb1be5..cd5cef3f29d966 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss +++ b/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss @@ -67,6 +67,10 @@ flex-wrap: nowrap; overflow: hidden; position: relative; + + > button { + flex-shrink: 0; + } } .tagsListShowAll { From 2b93d19d2ca18366b015e3dcde412e67625fe8f5 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 14 Apr 2026 15:15:59 +0200 Subject: [PATCH 196/335] Update handle explainer copy (#38646) Co-authored-by: nicolas --- .../features/account_timeline/components/account_name.tsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx b/app/javascript/mastodon/features/account_timeline/components/account_name.tsx index ff10d82ad717f8..a1d646ac8b4a23 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/account_name.tsx @@ -189,7 +189,7 @@ const AccountNameHelp: FC<{ diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index b67304cbb462cd..76bf0fba87e324 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -106,7 +106,7 @@ "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", - "account.name.help.footer": "Just like you can send emails to people using different email clients, you can interact with people on other Mastodon servers – and with anyone on other social apps powered by the same set of rules as Mastodon uses (the ActivityPub protocol).", + "account.name.help.footer": "Just like you can send emails to people using different email providers, you can interact with people on other Mastodon servers, and with anyone on other Mastodon-compatible social apps.", "account.name.help.header": "A handle is like an email address", "account.name.help.username": "{username} is this account’s username on their server. Someone on another server might have the same username.", "account.name.help.username_self": "{username} is your username on this server. Someone on another server might have the same username.", From 05c9ebf2ce49ad73272f2a15a6ee7df6320dc1ce Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2026 11:25:46 +0200 Subject: [PATCH 197/335] New Crowdin Translations (automated) (#38683) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 2 +- app/javascript/mastodon/locales/cs.json | 1 - app/javascript/mastodon/locales/cy.json | 1 - app/javascript/mastodon/locales/da.json | 2 +- app/javascript/mastodon/locales/de.json | 2 +- app/javascript/mastodon/locales/el.json | 2 +- app/javascript/mastodon/locales/en-GB.json | 1 - app/javascript/mastodon/locales/es-AR.json | 2 +- app/javascript/mastodon/locales/es-MX.json | 2 +- app/javascript/mastodon/locales/es.json | 2 +- app/javascript/mastodon/locales/et.json | 37 ++++++++++++++++++- app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fo.json | 1 - app/javascript/mastodon/locales/fr-CA.json | 3 +- app/javascript/mastodon/locales/fr.json | 3 +- app/javascript/mastodon/locales/ga.json | 3 +- app/javascript/mastodon/locales/gd.json | 1 - app/javascript/mastodon/locales/gl.json | 3 +- app/javascript/mastodon/locales/he.json | 4 +- app/javascript/mastodon/locales/hu.json | 3 +- app/javascript/mastodon/locales/io.json | 1 - app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/kab.json | 14 +++++++ app/javascript/mastodon/locales/nan-TW.json | 1 - app/javascript/mastodon/locales/nl.json | 2 +- app/javascript/mastodon/locales/nn.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 41 ++++++++++++++++++++- app/javascript/mastodon/locales/pt-PT.json | 1 - app/javascript/mastodon/locales/ru.json | 1 - app/javascript/mastodon/locales/sq.json | 2 +- app/javascript/mastodon/locales/sv.json | 1 - app/javascript/mastodon/locales/tr.json | 4 +- app/javascript/mastodon/locales/vi.json | 4 +- app/javascript/mastodon/locales/zh-CN.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 2 +- config/locales/et.yml | 4 ++ config/locales/kab.yml | 22 +++++++++++ config/locales/nl.yml | 2 +- config/locales/pt-BR.yml | 6 +++ config/locales/simple_form.kab.yml | 6 +++ config/locales/simple_form.pt-BR.yml | 3 ++ 42 files changed, 164 insertions(+), 37 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 988fa26aab937c..00a81da5b05137 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -106,7 +106,7 @@ "account.name.copy": "Скапір. ідэнтыфікатар", "account.name.help.domain": "{domain} — сервер, які ўтрымлівае профіль і допісы гэтага карыстальніка.", "account.name.help.domain_self": "{domain} — Ваш сервер, які ўтрымлівае Ваш профіль і допісы.", - "account.name.help.footer": "Гэтак жа, як Вы можаце адпраўляць электронныя лісты людзям праз розныя кліенты электроннай пошты, Вы таксама можаце ўзаемадзейнічаць з людзьмі з іншых сервераў Mastodon, а таксама з усімі, хто карыстаецца іншымі сацыяльнымі сеткамі, якія працуюць па тых жа правілах, што і Mastodon (пратакол ActivityPub).", + "account.name.help.footer": "Гэтак жа, як Вы можаце дасылаць электронныя лісты людзям, у якіх паштовыя скрыні ад іншых правайдараў, Вы можаце ўзаемадзейнічаць з людзьмі з іншых сервераў Mastodon і з усімі, хто карыстаецца сацыяльнымі платформамі, сумяшчальнымі з Mastodon.", "account.name.help.header": "Ідэнтыфікатар карыстальніка падобны да адраса электроннай пошты", "account.name.help.username": "{username} — імя карыстальніка гэтага ўліковага запісу на гэтым серверы. У некага на іншым серверы яно можа быць такім жа.", "account.name.help.username_self": "{username} — Вашае імя карыстальніка на гэтым серверы. У некага на іншым серверы яно можа быць такім жа.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index bea8739b4074da..1f0dddbf5a37b4 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -101,7 +101,6 @@ "account.mutual": "Sledujete se navzájem", "account.name.help.domain": "{domain} je server, který hostuje profily a příspěvky uživatelů.", "account.name.help.domain_self": "{domain} je váš server, který hostuje váš profil a příspěvky.", - "account.name.help.footer": "Stejně jako můžete posílat e-maily lidem, kteří používají různé e-mailové klienty, můžete komunikovat s lidmi na jiných Mastodon serverech – a s kýmkoli na jiných sociálních aplikacích poháněných stejným souborem pravidel, jako používá Mastodon (protokol ActivityPub).", "account.name.help.header": "Handle je jako e-mailová adresa", "account.name.help.username": "{username} je uživatelské jméno tohoto účtu na jeho serveru. Někdo na jiném serveru může mít stejné uživatelské jméno.", "account.name.help.username_self": "{username} je vaše uživatelské jméno na tomto serveru. Někdo na jiném serveru může mít stejné uživatelské jméno.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 0ce4743795ddb8..7b1fca1ca50deb 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -103,7 +103,6 @@ "account.mutual": "Rydych chi'n dilyn eich gilydd", "account.name.help.domain": "{domain} yw'r gweinydd sy'n cynnal proffil a phostiadau'r defnyddiwr.", "account.name.help.domain_self": "{domain} yw eich gweinydd sy'n cynnal eich proffil a'ch postiadau.", - "account.name.help.footer": "Yn union fel y gallwch anfon negeseuon e-bost at bobl gan ddefnyddio gwahanol raglenni e-bost, gallwch ryngweithio â phobl ar weinyddion Mastodon eraill – a chyda unrhyw un ar apiau cymdeithasol eraill sy'n cael eu pweru gan yr un set o reolau ag y mae Mastodon yn eu defnyddio (y protocol ActivityPub).", "account.name.help.header": "Mae dolen fel cyfeiriad e-bost", "account.name.help.username": "{username} yw enw defnyddiwr y cyfrif hwn ar eu gweinydd. Efallai bod gan rywun ar weinydd arall yr un enw defnyddiwr.", "account.name.help.username_self": "{username} yw eich enw defnyddiwr ar y gweinydd hwn. Efallai bod gan rywun ar weinydd arall yr un enw defnyddiwr.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index cd31aab185a4d9..9dbc85b0703529 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -106,7 +106,7 @@ "account.name.copy": "Kopiér handle", "account.name.help.domain": "{domain} er den server, der er vært for brugerens profil og indlæg.", "account.name.help.domain_self": "{domain} er din server, der er vært for din profil og indlæg.", - "account.name.help.footer": "Ligesom du kan sende e-mails til personer, der bruger forskellige e-mail-klienter, kan du interagere med personer på andre Mastodon-servere – og med alle på andre sociale apps, der bruger de samme regler som Mastodon (ActivityPub-protokollen).", + "account.name.help.footer": "Ligesom du kan sende e-mails til folk, der bruger forskellige e-mailudbydere, kan du kommunikere med folk på andre Mastodon-servere og med enhver, der bruger andre Mastodon-kompatible sociale apps.", "account.name.help.header": "Et handle svarer til en e-mailadresse", "account.name.help.username": "{username} er denne kontos brugernavn på deres server. En konto på en anden server kan have det samme brugernavn.", "account.name.help.username_self": "{username} er dit brugernavn på denne server. En konto på en anden server kan have det samme brugernavn.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index b18bde4513ae2f..1de89f237a4905 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -106,7 +106,7 @@ "account.name.copy": "Adresse kopieren", "account.name.help.domain": "{domain} ist der Server, auf dem das Profil registriert ist und die Beiträge verwaltet werden.", "account.name.help.domain_self": "{domain} ist der Server, auf dem du registriert bist und deine Beiträge verwaltet werden.", - "account.name.help.footer": "So wie du E-Mails an andere trotz unterschiedlicher E-Mail-Provider senden kannst, so kannst du auch mit anderen Profilen auf unterschiedlichen Mastodon-Servern interagieren. Wenn andere soziale Apps die gleichen Kommunikationsregeln (das ActivityPub-Protokoll) wie Mastodon verwenden, dann funktioniert die Kommunikation auch dort.", + "account.name.help.footer": "So wie du E-Mails an andere trotz unterschiedlicher E-Mail-Provider senden kannst, so kannst du auch mit anderen Profilen auf unterschiedlichen Mastodon-Servern interagieren. Wenn andere soziale Apps mit Mastodon kompatibel sind, dann funktioniert die Kommunikation auch dort.", "account.name.help.header": "Deine Adresse im Fediverse ist wie eine E-Mail-Adresse", "account.name.help.username": "{username} ist der Profilname auf deren Server. Es ist möglich, dass jemand auf einem anderen Server den gleichen Profilnamen hat.", "account.name.help.username_self": "{username} ist dein Profilname auf diesem Server. Es ist möglich, dass jemand auf einem anderen Server den gleichen Profilnamen hat.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 6ddda10020b6be..254f2b69dc0eea 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -106,7 +106,7 @@ "account.name.copy": "Αντιγραφή πλήρους ονόματος χρήστη", "account.name.help.domain": "Το {domain} είναι ο διακομιστής που φιλοξενεί το προφίλ και τις αναρτήσεις του χρήστη.", "account.name.help.domain_self": "Το {domain} είναι ο διακομιστής σας που φιλοξενεί το προφίλ και τις αναρτήσεις σας.", - "account.name.help.footer": "Ακριβώς όπως μπορείτε να στείλετε μηνύματα ηλεκτρονικού ταχυδρομείου σε άτομα χρησιμοποιώντας διαφορετικούς παρόχους email, μπορείτε να αλληλεπιδράσετε με άτομα σε άλλους διακομιστές Mastodon – και με οποιονδήποτε σε άλλες κοινωνικές εφαρμογές που τροφοδοτούνται από το ίδιο σύνολο κανόνων όπως χρησιμοποιεί το Mastodon (το πρωτόκολλο ActivityPub).", + "account.name.help.footer": "Ακριβώς όπως μπορείς να στείλεις email σε κόσμο χρησιμοποιώντας διαφορετικούς παρόχους ηλεκτρονικού ταχυδρομείου, μπορείς να αλληλεπιδράσεις με άτομα σε άλλους διακομιστές Mastodon, και με οποιονδήποτε σε άλλες κοινωνικές εφαρμογές συμβατές με Mastodon.", "account.name.help.header": "Ένα πλήρες όνομα χρήστη είναι σαν μια διεύθυνση email", "account.name.help.username": "Το {username} είναι το όνομα χρήστη αυτού του λογαριασμού στο διακομιστή τους. Κάποιος σε άλλο διακομιστή μπορεί να έχει το ίδιο όνομα χρήστη.", "account.name.help.username_self": "Το {username} είναι το όνομα χρήστη σας σε αυτόν το διακομιστή. Κάποιος σε άλλο διακομιστή μπορεί να έχει το ίδιο όνομα χρήστη.", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 79bbe82b6b0d0f..d048b6254da4d7 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -106,7 +106,6 @@ "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", - "account.name.help.footer": "Just like you can send emails to people using different email clients, you can interact with people on other Mastodon servers – and with anyone on other social apps powered by the same set of rules as Mastodon uses (the ActivityPub protocol).", "account.name.help.header": "A handle is like an email address", "account.name.help.username": "{username} is this account’s username on their server. Someone on another server might have the same username.", "account.name.help.username_self": "{username} is your username on this server. Someone on another server might have the same username.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 2e97fe1fce0f28..c74d77eb91f7f4 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -106,7 +106,7 @@ "account.name.copy": "Copiar alias", "account.name.help.domain": "«{domain}» es el servidor que hospeda el perfil y los mensajes del usuario.", "account.name.help.domain_self": "«{domain}» es tu servidor que hospeda tu perfil y tus mensajes.", - "account.name.help.footer": "Así como podés enviar correos electrónicos a personas usando diferentes clientes de email, del mismo modo podés interactuar con cuentas en otros servidores de Mastodon; y con cuentas en otras aplicaciones sociales que funcionen bajo las mismas normas que Mastodon (esto es, el protocolo ActivityPub).", + "account.name.help.footer": "Al igual que podés enviar correos electrónicos a personas usando diferentes proveedores de correo electrónico, del mismo modo podés interactuar con personas en otros servidores de Mastodon y en otras redes sociales compatibles con Mastodon.", "account.name.help.header": "Un alias es similar a una dirección de correo electrónico", "account.name.help.username": "«{username}» es el nombre de usuario de esta cuenta en su servidor. Alguien en otro servidor puede tener el mismo nombre de usuario.", "account.name.help.username_self": "«{username}» es tu nombre de usuario en este servidor. Alguien en otro servidor puede tener el mismo nombre de usuario.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 5b97ffa5e35099..8003419ad19ff5 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -106,7 +106,7 @@ "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} es el servidor que aloja el perfil y las publicaciones del usuario.", "account.name.help.domain_self": "{domain} es el servidor que aloja tu perfil y tus publicaciones.", - "account.name.help.footer": "Al igual que puedes enviar correos electrónicos a personas que utilizan diferentes clientes de correo electrónico, puedes interactuar con personas en otros servidores Mastodon, y con cualquier persona en otras aplicaciones sociales que funcionen con el mismo conjunto de reglas que utiliza Mastodon (el protocolo ActivityPub).", + "account.name.help.footer": "Al igual que puedes enviar correos electrónicos a personas que utilizan diferentes proveedores de correo electrónico, puedes interactuar con personas de otros servidores de Mastodon y con cualquier usuario de otras aplicaciones sociales compatibles con Mastodon.", "account.name.help.header": "Un identificador es como una dirección de correo electrónico", "account.name.help.username": "{username} es el nombre de usuario de esta cuenta en su servidor. Es posible que alguien en otro servidor tenga el mismo nombre de usuario.", "account.name.help.username_self": "{username} es tu nombre de usuario en este servidor. Es posible que alguien en otro servidor tenga el mismo nombre de usuario.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index d2f49929b77433..f8cb187f145a14 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -106,7 +106,7 @@ "account.name.copy": "Copiar alias", "account.name.help.domain": "{domain} es el servidor que alberga el perfil y las publicaciones del usuario.", "account.name.help.domain_self": "{domain} es tu servidor que aloja tu perfil y publicaciones.", - "account.name.help.footer": "Al igual que puedes enviar correos electrónicos a personas usando diferentes clientes de correo electrónico, puedes interactuar con personas en otros servidores de Mastodon – y con personas en otras aplicaciones sociales que hablen el mismo idioma que Mastodon (el protocolo ActivityPub).", + "account.name.help.footer": "De la misma manera que puedes enviar correos electrónicos a personas usando diferentes proveedores de correo electrónico, puedes interactuar con personas en otros servidores de Mastodon, y con cualquiera en otras aplicaciones sociales compatibles con Mastodon.", "account.name.help.header": "Un alias es como una dirección de correo electrónico", "account.name.help.username": "{username} es el nombre de usuario de esta cuenta en su servidor. Alguien en otro servidor puede tener el mismo nombre de usuario.", "account.name.help.username_self": "{username} es tu nombre de usuario en este servidor. Alguien en otro servidor puede tener el mismo nombre de usuario.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 5384c867b43fe4..6f060f28dfc0ce 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -106,7 +106,7 @@ "account.name.copy": "Kopeeri kasutajatunnus", "account.name.help.domain": "{domain} on server, kus antud konto koos profiiliga asub ning kust postitused saavad alguse.", "account.name.help.domain_self": "{domain} on server, kus sinu konto koos profiiliga asub ning kust sinu postitused saavad alguse.", - "account.name.help.footer": "Nii nagu võid saata teiste e-posti serverite kasutajatele e-kirju, saad ka suhelda teiste Mastodoni serverite kasutajatega - ja tegelikult ka muude sotsiaalvõrkude kasutajatega, kus on kasutusel sama lahendus, nagu Mastodon pruugib (ActivityPubi protokoll).", + "account.name.help.footer": "Nii nagu saad saata e-kirju inimestele, kes kasutavad erinevaid e-posti teenusepakkujaid, saad suhelda ka teiste Mastodoni serverite kasutajatega ning kõigi teiste kasutajatega, kelle sotsiaalrakendused ühilduvad Mastodoniga.", "account.name.help.header": "Kasutajatunnus on nagu e-posti aadress", "account.name.help.username": "{username} on selle konto kasutajanimi tema serveris. Kellelgi teisel mõnes muus serveris võib olla sama kasutajanimi.", "account.name.help.username_self": "{username} on sinu kasutajanimi selles serveris. Kellelgi teisel mõnes muus serveris võib olla sama kasutajanimi.", @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Sa oled selles kogumikus esile tõstetud", "collections.edit_details": "Muuda üksikasju", "collections.error_loading_collections": "Sinu kogumike laadimisel tekkis viga.", + "collections.hidden_accounts_description": "Oled blokeerinud või vaigistanud {count, plural, one {selle kasutaja} other {need kasutajad}}", + "collections.hidden_accounts_link": "{count, plural, one {# peidetud konto} other {# peidetud kontot}}", "collections.hints.accounts_counter": "{count} / {max} kontot", "collections.last_updated_at": "Viimati uuendatud: {date}", "collections.manage_accounts": "Halda kasutajakontosid", @@ -505,6 +507,9 @@ "confirmations.follow_to_list.message": "Pead jälgima kasutajat {name}, et lisada teda loetellu.", "confirmations.follow_to_list.title": "Jälgida kasutajat?", "confirmations.hide_featured_tab.confirm": "Peida taab", + "confirmations.hide_featured_tab.intro": "Saad seda igal ajal muuta menüüs Profiili muutmine > Profiili vahekaardi seaded.", + "confirmations.hide_featured_tab.message": "See peidab vahekaardi serveri {serverName} kasutajatel ja teistel serveritel, kus kasutatakse Mastodoni uusimat versiooni. Muudel serveritel võib kuvamine erineda.", + "confirmations.hide_featured_tab.title": "Peita taab Esiletõstetud?", "confirmations.logout.confirm": "Välju", "confirmations.logout.message": "Kas oled kindel, et soovid välja logida?", "confirmations.logout.title": "Logida välja?", @@ -528,6 +533,9 @@ "confirmations.remove_from_followers.confirm": "Eemalda jälgija", "confirmations.remove_from_followers.message": "{name} lõpetab sellega sinu jälgimise. Kas oled kindel, et soovid jätkata?", "confirmations.remove_from_followers.title": "Kas eemaldame jälgija?", + "confirmations.revoke_collection_inclusion.confirm": "Eemalda mind", + "confirmations.revoke_collection_inclusion.message": "See toiming on lõplik ja kuraator ei saa sind hiljem kogusse uuesti lisada.", + "confirmations.revoke_collection_inclusion.title": "Kas eemaldad ennast sellest kogust?", "confirmations.revoke_quote.confirm": "Eemalda postitus", "confirmations.revoke_quote.message": "Seda tegevust ei saa tagasi pöörata.", "confirmations.revoke_quote.title": "Kas eemaldame postituse?", @@ -540,11 +548,13 @@ "content_warning.hide": "Peida postitus", "content_warning.show": "Näita ikkagi", "content_warning.show_more": "Näita rohkem", + "content_warning.show_short": "Näita", "conversation.delete": "Kustuta vestlus", "conversation.mark_as_read": "Märgi loetuks", "conversation.open": "Vaata vestlust", "conversation.with": "Koos {names}", "copy_icon_button.copied": "Kopeeritud vahemällu", + "copy_icon_button.copy_this_text": "Kopeeri link lõikelauale", "copypaste.copied": "Kopeeritud", "copypaste.copy_to_clipboard": "Kopeeri vahemällu", "directory.federated": "Tuntud födiversumist", @@ -579,6 +589,14 @@ "domain_pill.your_server": "Sinu digitaalne kodu, kus on kõik sinu postitused. Sulle ei meeldi see? Vaheta mistahes ajal serverit ja võta jälgijad ka.", "domain_pill.your_username": "Sinu unikaalne identifikaator siin serveris. On võimalik, et leiad teistes serverites samasuguse kasutajanimega kasutajaid.", "dropdown.empty": "Vali üks variantidest", + "email_subscriptions.email": "E-post", + "email_subscriptions.form.action": "Telli", + "email_subscriptions.form.bottom": "Saad postitusi postkasti ilma Mastodoni kontot loomata. Tellimuse saab igal ajal tühistada. Lisateave privaatsuspoliitikast.", + "email_subscriptions.form.title": "Telli {name} e-postiuuendused", + "email_subscriptions.submitted.lead": "Vaata oma postkasti, kas oled saanud kirja, et lõpetada uudiskirja tellimine.", + "email_subscriptions.submitted.title": "Veel üks samm", + "email_subscriptions.validation.email.blocked": "Blokeeritud e-posti teenusepakkuja", + "email_subscriptions.validation.email.invalid": "Sobimatu e-postiaadress", "embed.instructions": "Lisa see postitus oma veebilehele, kopeerides alloleva koodi.", "embed.preview": "Nii näeb see välja:", "emoji_button.activity": "Tegevus", @@ -596,6 +614,14 @@ "emoji_button.search_results": "Otsitulemused", "emoji_button.symbols": "Sümbolid", "emoji_button.travel": "Reisimine & kohad", + "empty_column.account_featured.other": "{acct} pole veel midagi esile tõstnud.", + "empty_column.account_featured_self.no_collections_button": "Loo kogumik", + "empty_column.account_featured_self.no_collections_hide_tab": "Selle asemel peida see taab", + "empty_column.account_featured_self.pre_collections": "Jälgi kogusid", + "empty_column.account_featured_self.pre_collections_desc": "Kogud (lisanduvad Mastodon V4.6) võimaldavad sul luua enda koostatud kontode nimekirju, mida teistele soovitada.", + "empty_column.account_featured_self.showcase_accounts": "Näita oma lemmikkontosid", + "empty_column.account_featured_self.showcase_accounts_desc": "Kogud on hoolikalt koostatud kontode nimekirjad, mis aitavad teistel Fediverse'i paremini avastada.", + "empty_column.account_featured_unknown.other": "See konto pole veel midagi esile tõstnud.", "empty_column.account_hides_collections": "See kasutaja otsustas mitte teha seda infot saadavaks", "empty_column.account_suspended": "Konto kustutatud", "empty_column.account_timeline": "Siin postitusi ei ole!", @@ -636,7 +662,9 @@ "featured_carousel.slide": "Postitus {current, number} / {max, number}", "featured_tags.more_items": "+{count}", "featured_tags.suggestions": "Postitasid hiljuti {items} kohta. Kas lisada need esiletõstetud teemaviideteks?", + "featured_tags.suggestions.add": "Lisa", "featured_tags.suggestions.added": "Halda mistahes ajal oma esiletõstetud teemaviiteid kohas Muuda profiili > Esiletõstetud teemaviited.", + "featured_tags.suggestions.dismiss": "Ei, aitäh", "filter_modal.added.context_mismatch_explanation": "See filtrikategooria ei rakendu kontekstis, kuidas postituseni jõudsid. Kui tahad postitust ka selles kontekstis filtreerida, pead muutma filtrit.", "filter_modal.added.context_mismatch_title": "Konteksti mittesobivus!", "filter_modal.added.expired_explanation": "Selle filtri kategooria on aegunud. pead muutma aegumiskuupäeva, kui tahad, et filter kehtiks.", @@ -679,7 +707,9 @@ "follow_suggestions.who_to_follow": "Keda jälgida", "followed_tags": "Jälgitavad teemaviited", "followers.hide_other_followers": "See kasutaja eelistab mitte avaldada oma teisi jälgijaid", + "followers.title": "{name} jälgimine", "following.hide_other_following": "See kasutaja eelistab mitte avaldada oma teisi jälgitavaid", + "following.title": "Jälgitakse {name} poolt", "footer.about": "Teave", "footer.about_mastodon": "Mastodoni kohta", "footer.about_server": "{domain} kohta", @@ -691,6 +721,7 @@ "footer.source_code": "Lähtekood", "footer.status": "Olek", "footer.terms_of_service": "Kasutustingimused", + "form_error.blank": "Väli ei tohi olla tühi.", "form_field.optional": "(valikuline)", "generic.saved": "Salvestatud", "getting_started.heading": "Alustamine", @@ -761,6 +792,7 @@ "keyboard_shortcuts.direct": "Ava privaatsete mainimiste veerg", "keyboard_shortcuts.down": "Liigu loetelus alla", "keyboard_shortcuts.enter": "Ava postitus", + "keyboard_shortcuts.explore": "Ava trendikate ajajoon", "keyboard_shortcuts.favourite": "Lemmikpostitus", "keyboard_shortcuts.favourites": "Ava lemmikute loetelu", "keyboard_shortcuts.federated": "Ava föderatsiooni ajajoon", @@ -847,6 +879,7 @@ "navigation_bar.automated_deletion": "Postituste automaatne kustutamine", "navigation_bar.blocks": "Blokeeritud kasutajad", "navigation_bar.bookmarks": "Järjehoidjad", + "navigation_bar.collections": "Kogud", "navigation_bar.direct": "Privaatsed mainimised", "navigation_bar.domain_blocks": "Peidetud domeenid", "navigation_bar.favourites": "Lemmikud", @@ -872,6 +905,7 @@ "navigation_panel.expand_followed_tags": "Ava jälgitavate teemaviidete menüü", "navigation_panel.expand_lists": "Laienda loendimenüüd", "not_signed_in_indicator.not_signed_in": "Pead sisse logima, et saada ligipääsu sellele ressursile.", + "notification.added_to_collection": "{name} lisas sind kogusse", "notification.admin.report": "{name} saatis teavituse {target} kohta", "notification.admin.report_account": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target} kategooriast {category}", "notification.admin.report_account_other": "{name} raporteeris {count, plural, one {ühest postitusest} other {# postitusest}} kohast {target}", @@ -881,6 +915,7 @@ "notification.admin.sign_up.name_and_others": "{name} ja {count, plural, one {# veel} other {# teist}} liitus", "notification.annual_report.message": "Sinu {year} #Wrapstodon ootab! Avalda oma aasta tipphetked ja meeldejäävad hetked Mastodonis!", "notification.annual_report.view": "Vaata #Wrapstodon", + "notification.collection_update": "{name} muutis kogu, kuhu sa kuulud", "notification.favourite": "{name} märkis su postituse lemmikuks", "notification.favourite.name_and_others_with_link": "{name} ja {count, plural, one {# veel} other {# teist}} märkis su postituse lemmikuks", "notification.favourite_pm": "{name} märkis sinu privaatse mainimise lemmikuks", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 5e6dfd634659c7..4cfcccccc23daa 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -106,7 +106,7 @@ "account.name.copy": "Kopioi käyttäjätunnus", "account.name.help.domain": "{domain} on palvelin, jolla käyttäjän profiili ja julkaisut sijaitsevat.", "account.name.help.domain_self": "{domain} on palvelin, jolla profiilisi ja julkaisusi sijaitsevat.", - "account.name.help.footer": "Aivan kuten voit lähettää sähköpostia eri sähköpostiohjelmilla, voit olla yhteydessä muihin Mastodon-palvelimiin – ja kehen tahansa, joka käyttää sosiaalisen median sovelluksia, jotka toimivat samoilla säännöillä kuin Mastodon (hyödyntävät ActivityPub-protokollaa).", + "account.name.help.footer": "Aivan kuten voit lähettää sähköpostia eri sähköpostipalveluntarjoajien avulla, voit olla yhteydessä muihin Mastodon-palvelimiin ja kehen tahansa, joka käyttää Mastodonin kanssa yhteensopivia sosiaalisen median sovelluksia.", "account.name.help.header": "Käyttäjätunnus on kuin sähköpostiosoite", "account.name.help.username": "{username} on tämän tilin käyttäjänimi omalla palvelimellaan. Jollakin toisen palvelimen tilillä voi olla sama käyttäjänimi.", "account.name.help.username_self": "{username} on käyttäjänimesi tällä palvelimella. Jollakin toisen palvelimen tilillä voi olla sama käyttäjänimi.", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index c0f77421fd5265..f32a934a18b620 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -103,7 +103,6 @@ "account.mutual": "Tit fylgja hvønn annan", "account.name.help.domain": "{domain} er ambætarin, sum hýsir vangan og postarnar hjá brúkaranum.", "account.name.help.domain_self": "{domain} er tín ambætari, sum hýsir tín vanga og postar.", - "account.name.help.footer": "Eins og tú kanst senda teldubrøv til fólk, sum brúka ymiskar teldupostskipanir, so kanst tú samvirka við fólk á øðrum Mastodon ambætarum - og við ein og hvønn á øðrum sosialum appum, ið eru bygdar á sama sett av reglum, sum Mastodon brúkar (ActivityPub protokollin).", "account.name.help.header": "Eitt hald er sum ein teldupostbústaður", "account.name.help.username": "{username} er brúkaranavnið hjá hesari kontuni á teirra ambætara. Onkur á einum øðrum ambætara kann hava sama brúkaranavn.", "account.name.help.username_self": "{username} er brúkaranavnið hjá tær á hesum ambætaranum. Onkur á einum øðrum ambætara kann hava sama brúkaranavn.", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 1d917095662619..e474a9597d7a50 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -106,7 +106,6 @@ "account.name.copy": "Copier l’identifiant", "account.name.help.domain": "{domain} est le serveur qui héberge le profil et les messages du compte.", "account.name.help.domain_self": "{domain} est le serveur qui héberge votre profil et vos messages.", - "account.name.help.footer": "Tout comme vous pouvez envoyer des courriels à des personnes utilisant différents logiciels de messagerie, vous pouvez interagir avec des personnes sur d'autres serveurs Mastodon — et avec n'importe qui sur d'autres applications sociales propulsées par le même ensemble de règles que Mastodon utilise (le protocole ActivityPub).", "account.name.help.header": "Un identifiant est comme une adresse de courriel", "account.name.help.username": "{username} est le nom d'utilisateur·ice de ce compte sur son serveur. Quelqu'un sur un autre serveur peut avoir le même nom.", "account.name.help.username_self": "{username} est votre nom d'utilisateur·ice sur ce serveur. Quelqu'un sur un autre serveur peut avoir le même nom.", @@ -388,6 +387,8 @@ "collections.detail.you_are_in_this_collection": "Vous faites partie de cette collection", "collections.edit_details": "Modifier les détails", "collections.error_loading_collections": "Une erreur s'est produite durant le chargement de vos collections.", + "collections.hidden_accounts_description": "Vous avez bloqué ou masqué {count, plural, one {ce compte} other {ces comptes}}", + "collections.hidden_accounts_link": "{count, plural, one {# compte caché} other {# comptes cachés}}", "collections.hints.accounts_counter": "{count} / {max} comptes", "collections.last_updated_at": "Dernière mise à jour : {date}", "collections.manage_accounts": "Gérer les comptes", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 5630420f5851b7..7066d261a9767e 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -106,7 +106,6 @@ "account.name.copy": "Copier l’identifiant", "account.name.help.domain": "{domain} est le serveur qui héberge le profil et les messages du compte.", "account.name.help.domain_self": "{domain} est le serveur qui héberge votre profil et vos messages.", - "account.name.help.footer": "Tout comme vous pouvez envoyer des courriels à des personnes utilisant différents logiciels de messagerie, vous pouvez interagir avec des personnes sur d'autres serveurs Mastodon — et avec n'importe qui sur d'autres applications sociales propulsées par le même ensemble de règles que Mastodon utilise (le protocole ActivityPub).", "account.name.help.header": "Un identifiant est comme une adresse de courriel", "account.name.help.username": "{username} est le nom d'utilisateur·ice de ce compte sur son serveur. Quelqu'un sur un autre serveur peut avoir le même nom.", "account.name.help.username_self": "{username} est votre nom d'utilisateur·ice sur ce serveur. Quelqu'un sur un autre serveur peut avoir le même nom.", @@ -388,6 +387,8 @@ "collections.detail.you_are_in_this_collection": "Vous faites partie de cette collection", "collections.edit_details": "Modifier les détails", "collections.error_loading_collections": "Une erreur s'est produite durant le chargement de vos collections.", + "collections.hidden_accounts_description": "Vous avez bloqué ou masqué {count, plural, one {ce compte} other {ces comptes}}", + "collections.hidden_accounts_link": "{count, plural, one {# compte caché} other {# comptes cachés}}", "collections.hints.accounts_counter": "{count} / {max} comptes", "collections.last_updated_at": "Dernière mise à jour : {date}", "collections.manage_accounts": "Gérer les comptes", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 7a9205556cdd69..80e713bbfe06e8 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -106,7 +106,6 @@ "account.name.copy": "Láimhseáil chóipeála", "account.name.help.domain": "Is é {domain} an freastalaí a óstálann próifíl agus poist an úsáideora.", "account.name.help.domain_self": "Is é {domain} an freastalaí a óstálann do phróifíl agus do phoist.", - "account.name.help.footer": "Díreach mar is féidir leat ríomhphoist a sheoladh chuig daoine ag baint úsáide as cliaint ríomhphoist éagsúla, is féidir leat idirghníomhú le daoine ar fhreastalaithe Mastodon eile – agus le duine ar bith ar aipeanna sóisialta eile atá faoi thiomáint ag an tsraith rialacha chéanna a úsáideann Mastodon (an prótacal ActivityPub).", "account.name.help.header": "Is cosúil le seoladh ríomhphoist é láimhseáil", "account.name.help.username": "Is é {username} ainm úsáideora an chuntais seo ar a bhfreastalaí. D’fhéadfadh an t-ainm úsáideora céanna a bheith ag duine éigin ar fhreastalaí eile.", "account.name.help.username_self": "Is é {username} d'ainm úsáideora ar an bhfreastalaí seo. D'fhéadfadh an t-ainm úsáideora céanna a bheith ag duine éigin ar fhreastalaí eile.", @@ -388,6 +387,8 @@ "collections.detail.you_are_in_this_collection": "Tá tú le feiceáil sa bhailiúchán seo", "collections.edit_details": "Cuir sonraí in eagar", "collections.error_loading_collections": "Tharla earráid agus iarracht á déanamh do bhailiúcháin a luchtú.", + "collections.hidden_accounts_description": "Tá bac nó múchadh déanta agat ar {count, plural, one {an t-úsáideoir seo} two {na húsáideoirí seo} few {na húsáideoirí seo} many {na húsáideoirí seo} other {na húsáideoirí seo}}", + "collections.hidden_accounts_link": "{count, plural, one {# cuntas folaithe} two {# cuntais folaithe} few {# cuntais folaithe} many {# cuntais folaithe} other {# cuntais folaithe}}", "collections.hints.accounts_counter": "{count} / {max} cuntais", "collections.last_updated_at": "Nuashonraithe go deireanach: {date}", "collections.manage_accounts": "Bainistigh cuntais", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 686536c6770bcc..ffc0fc7d3f1cf2 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -105,7 +105,6 @@ "account.name.copy": "Dèan lethbhreac dhen aithnichear", "account.name.help.domain": "Is {domain} am frithealaiche a tha ag òstadh pròifil ’s postaichean a’ chleachdaiche.", "account.name.help.domain_self": "Is {domain} am frithealaiche agad-sa a tha ag òstadh pròifil ’s postaichean agad-sa.", - "account.name.help.footer": "Air an aon dòigh ’s a chuireas tu puist-d gu daoine le cliantan puist-d eadar-dhealaichte, ’s urrainn dhut conaltradh le daoine air frithealaichean Mastodon eile – agus le duine sam bith air aplacaidean sòisealta eile a chleachdas na h-aon riaghailtean ’s a chleachdas Mastodon (sin pròtacal ActivityPub).", "account.name.help.header": "Tha aithnichear coltach ri seòladh puist-d", "account.name.help.username": "Is {username} ainm-cleachdaiche a’ chunntais seo air an fhrithealaiche aca-san. Dh’fhaoidte gu bheil an t-aon ainm-cleachdaiche le cuideigin air frithealaiche eile.", "account.name.help.username_self": "Is {username} d’ ainm-cleachdaiche air an fhrithealaiche seo. Dh’fhaoidte gu bheil an t-aon ainm-cleachdaiche le cuideigin air frithealaiche eile.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index d3c945215a60d7..80550059b76a3a 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -106,7 +106,6 @@ "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} é o servidor que aloxa o perfil e as publicacións da usuaria.", "account.name.help.domain_self": "{domain} é o servidor que aloxa o teu perfil e publicacións.", - "account.name.help.footer": "Ao igual que envías correos electrónicos a persoas que usan diferentes provedores, podes interactuar con persoas en outros servidores Mastodon ― e con calquera outra que use aplicacións que sigan o mesmo sistema que usa Mastodon (o protocolo ActivityPub).", "account.name.help.header": "Un alcume é o como o enderezo de correo", "account.name.help.username": "{username} é o nome de usuaria da conta no seu servidor. Alguén noutro servidor podería ter o mesmo nome de usuaria.", "account.name.help.username_self": "{username} é o teu nome de usuaria nete servidor. Alguén noutro sevidor podería ter o mesmo nome de usuaria.", @@ -388,6 +387,8 @@ "collections.detail.you_are_in_this_collection": "Engadíronte a esta colección", "collections.edit_details": "Editar detalles", "collections.error_loading_collections": "Houbo un erro ao intentar cargar as túas coleccións.", + "collections.hidden_accounts_description": "Bloqueaches ou silenciaches {count, plural, one {esta conta} other {estas contas}}", + "collections.hidden_accounts_link": "{count, plural, one {# conta oculta} other {# contas ocultas}}", "collections.hints.accounts_counter": "{count} / {max} contas", "collections.last_updated_at": "Última actualización: {date}", "collections.manage_accounts": "Xestionar contas", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 25fb6f17aada52..d41324b495e8de 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -106,7 +106,7 @@ "account.name.copy": "העתקת הכינוי", "account.name.help.domain": "{domain} הוא השרת שמארח את פרופיל המשתמש(ת) וההודעות שכתב(ה).", "account.name.help.domain_self": "{domain} הוא השרת שמארח את פרופיל המשתמש(ת) שלך ואת ההודעות שכתבת.", - "account.name.help.footer": "בדיוק כמו שתוכלו לשלוח דואל לאנשים דרך תוכנות דואל שונות, ניתן להיות בקשר עם אנשים על שרתי מסטודון וכל אדם בשרתי פדיברס (המשתמשים בפרוטוכול אקטיביטיפאב ActivityPub).", + "account.name.help.footer": "באותו האופן שניתן לשלוח דואל לאנשים דרך ספקי דואל שונים, ניתן גם לעקוב ולהחליף מסרים עם אנשים בשרתי מסטודון אחרים, ומשתמשי יישומונים אחרים שתואמים למסטודון.", "account.name.help.header": "כינוי הוא כמו כתובת דואל", "account.name.help.username": "{username} הוא שם המשתמש של החשבון בשרת שלהם. מישהו משרת אחר יכול להחזיק באותו שם משתמש.", "account.name.help.username_self": "{username} הוא שם המשתמש של החשבון שלכם בשרת זה. מישהו משרת אחר יכול להחזיק באותו שם משתמש.", @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "אתם מופיעים באוסף זה", "collections.edit_details": "עריכת פרטים", "collections.error_loading_collections": "חלה שגיאה בנסיון לטעון את אוספיך.", + "collections.hidden_accounts_description": "חסמת או השתקת {count, plural,one {המשתמש.ת}other {המשתמשים}} האלו", + "collections.hidden_accounts_link": "{count, plural, one {חשבון מוסתר אחד} other {# חשבונות מוסתרים}}", "collections.hints.accounts_counter": "{count} \\ {max} חשבונות", "collections.last_updated_at": "עדכון אחרון: {date}", "collections.manage_accounts": "ניהול חשבונות", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 1e237a9dbbdb63..6b9926de7ae57b 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -106,7 +106,6 @@ "account.name.copy": "Fióknév másolása", "account.name.help.domain": "A(z) {domain} a kiszolgáló, amely a felhasználó profilját és bejegyzéseit szolgálja ki.", "account.name.help.domain_self": "A(z) {domain} a kiszolgáló, amely a profilodat és bejegyzéseidet szolgálja ki.", - "account.name.help.footer": "Ahogy több különböző szolgáltatónál lévő embernek lehet e-mailt küldeni, úgy más Mastodon-kiszolgálókon lévő emberrekel is kapcsolatba lehet lépni – és bárki mással is, akik ugyanazokat a szabályokat (az ActivityPub-protokollt) használó közösségimédia-alkalmazásokat használnak, mint a Mastodon.", "account.name.help.header": "A fióknév olyan, mint egy e-mail-cím", "account.name.help.username": "Ez a fiók felhasználóneve a kiszolgálóján: {username}. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.", "account.name.help.username_self": "Ez a felhasználóneved ezen a kiszolgálón: {username}. Lehet, hogy másnak egy másik kiszolgálón ugyanez a felhasználóneve.", @@ -388,6 +387,8 @@ "collections.detail.you_are_in_this_collection": "Kiemeltek téged ebben a gyűjteményhez", "collections.edit_details": "Részletek szerkesztése", "collections.error_loading_collections": "Hiba történt a gyűjtemények betöltése során.", + "collections.hidden_accounts_description": "Blokkoltad vagy letiltottad {count, plural, one {ezt a felhasználót} other {ezeket a felhasználókat}}", + "collections.hidden_accounts_link": "{count, plural, one {# rejtett fiók} other {# rejtett fiók}}", "collections.hints.accounts_counter": "{count} / {max} fiók", "collections.last_updated_at": "Utoljára frissítve: {date}", "collections.manage_accounts": "Fiókok kezelése", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 86e727f2615319..49ebfea7ddea55 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -90,7 +90,6 @@ "account.mute_short": "Silencigez", "account.muted": "Silencigata", "account.muting": "Silencigas", - "account.name.help.footer": "Samkam vu povas sendar retposti ad personi per dessama retpostosoftwari, vu povas interagar kun personi che altra Mastodon-servili (ActivityPub-kodexaro).", "account.name.help.header": "Nometo esas kam retpostadreso", "account.no_bio": "Deskriptajo ne provizesis.", "account.open_original_page": "Apertez originala pagino", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index ca3e87d19d789b..f3007fc25f152c 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -106,7 +106,7 @@ "account.name.copy": "Afrita kennislóð", "account.name.help.domain": "{domain} er netþjónninn sem hýsir upplýsingasnið um notandann og færslurnar hans.", "account.name.help.domain_self": "{domain} er netþjónninn þinn sem hýsir upplýsingasniðið þitt og færslurnar þínar.", - "account.name.help.footer": "Rétt eins og að þú getur sent tölvupóst á fólk í gegnum mismunandi þjónustur og forrit, þá getur þú átt í samskiptum við fólk á öðrum Mastodon-netþjónum – og reyndar við hverja þá sem eru á öðrum þeim samfélagsmiðlum sem nota sömu samskiptareglur og Mastodon notar (sem er ActivityPub-samskiptamátinn).", + "account.name.help.footer": "Rétt eins og þú getur sent tölvupóst til fólks sem notar aðrar póstþjónustur, þá geturðu átt í samskiptum við fólk á öðrum Mastodon-þjónum, auk annarra Mastodon-samhæfðra samfélagsmiðla.", "account.name.help.header": "Kennislóð (handle) líkist tölvupóstfangi", "account.name.help.username": "{username} er notandanafn þessa aðgangs á netþjóni viðkomandi. Einhver annar á öðrum netþjóni getur verið með sama notandanafnið.", "account.name.help.username_self": "{username} er notandanafnið þitt á þessum netþjóni. Einhver annar á öðrum netþjóni getur verið með sama notandanafnið.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index ea4147cb5773ac..5801715ac34d99 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -106,7 +106,7 @@ "account.name.copy": "Copia il nome univoco", "account.name.help.domain": "{domain} è il server che ospita il profilo e i post dell'utente.", "account.name.help.domain_self": "{domain} è il tuo server che ospita il tuo profilo e i post.", - "account.name.help.footer": "Proprio come puoi inviare email a persone che usano diversi client di posta elettronica, così puoi interagire con le persone su altri server Mastodon — e con chiunque utilizzi altre app social basate sulle stesse regole che Mastodon usa (il protocollo ActivityPub).", + "account.name.help.footer": "Così come è possibile inviare email a persone che utilizzano diversi provider di posta elettronica, è altrettanto possibile interagire con persone su altri server Mastodon e con chiunque utilizzi altre app social compatibili con Mastodon.", "account.name.help.header": "Un nome univoco è come un indirizzo email", "account.name.help.username": "{username} è il nome utente di questo account sul suo server. Qualcuno su un altro server potrebbe avere lo stesso nome utente.", "account.name.help.username_self": "{username} è il tuo nome utente su questo server. Qualcuno su un altro server potrebbe avere lo stesso nome utente.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 38ffcfef20067f..74e957bf2aceeb 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -19,6 +19,7 @@ "account.badges.blocked": "Yettusewḥel", "account.badges.bot": "Aṛubut", "account.badges.group": "Agraw", + "account.badges.muted": "Yettwasgugem", "account.block": "Seḥbes @{name}", "account.block_domain": "Ffer kra i d-yekkan seg {domain}", "account.block_short": "Sewḥel", @@ -71,6 +72,7 @@ "account.menu.add_to_list": "Rnu ɣer tebdart…", "account.menu.block": "Sewḥel amiḍan", "account.menu.block_domain": "Sewḥel {domain}", + "account.menu.copied": "Aseɣwen n umiḍan yettwanɣel ɣer tecwafit", "account.menu.copy": "Nɣel aseɣwen", "account.menu.mention": "Bder-d", "account.menu.mute": "Sgugem amiḍan", @@ -85,6 +87,8 @@ "account.mute_short": "Sgugem", "account.muted": "Yettwasgugem", "account.mutual": "Temmeḍfaṛem", + "account.name.copy": "Nɣel asulay", + "account.name.help.header": "Asulay am tansa imayl", "account.name_info": "D acu i d lmeεna-s?", "account.no_bio": "Ulac aglam i d-yettunefken.", "account.node_modal.edit_title": "Ẓreg tazmilt tudmawant", @@ -103,6 +107,7 @@ "account.show_reblogs": "Sken-d izuzar n @{name}", "account.statuses_counter": "{count, plural, one {{counter} n tsuffeɣt} other {{counter} n tsuffaɣ}}", "account.timeline.pinned": "Yettwasenṭeḍ", + "account.timeline.pinned.view_all": "Wali akk tisuffaɣ tunṭiḍin", "account.unblock": "Serreḥ i @{name}", "account.unblock_domain": "Ssken-d {domain}", "account.unblock_domain_short": "Serreḥ", @@ -125,6 +130,7 @@ "account_edit.custom_fields.edit_label": "Ẓreg urti", "account_edit.custom_fields.reorder_button": "Amizzwer n urtiyen", "account_edit.custom_fields.title": "Urtiyen udmawanen", + "account_edit.custom_fields.verified_hint": "Amek ara rnuɣ aseɣwen yettuselknen?", "account_edit.display_name.add_label": "Rnu isem ara d-yettwaskanen", "account_edit.display_name.edit_label": "Ẓreg isem ara d-yettwaskanen", "account_edit.display_name.title": "Isem ara d-yettwaskanen", @@ -137,6 +143,7 @@ "account_edit.field_edit_modal.discard_confirm": "Eǧǧ-it", "account_edit.field_edit_modal.edit_title": "Ẓreg urti udmawan", "account_edit.field_edit_modal.name_hint": "Amedya “Asmel-iw Web”", + "account_edit.field_edit_modal.name_label": "Tabzimt", "account_edit.field_edit_modal.value_hint": "Amedya “https://example.me”", "account_edit.field_edit_modal.value_label": "Azal", "account_edit.image_alt_modal.add_title": "Rnu aḍris amlellay", @@ -154,6 +161,7 @@ "account_edit.name_modal.add_title": "Rnu isem ara d-yettwaskanen", "account_edit.name_modal.edit_title": "Ẓreg isem ara d-yettwaskanen", "account_edit.profile_tab.button_label": "Sagen", + "account_edit.profile_tab.title": "Iɣewwaren n yiccer n umaɣnu", "account_edit.save": "Sekles", "account_edit.upload_modal.back": "Uɣal", "account_edit.upload_modal.done": "Dayen", @@ -165,9 +173,11 @@ "account_edit.upload_modal.title_add.avatar": "Rnu tawlaft n umaɣnu", "account_edit.upload_modal.title_add.header": "Rnu tawlaft n tduli", "account_edit.upload_modal.title_replace.avatar": "Semselsi tawlaft n umaɣnu", + "account_edit.upload_modal.title_replace.header": "Semselsi tawlaft n tduli", "account_edit_tags.add_tag": "Rnu #{tagName}", "account_edit_tags.column_title": "Asiẓreg n yihacṭagen", "account_edit_tags.search_placeholder": "Sekcem-d ahacṭag…", + "account_edit_tags.suggestions": "Isumren:", "account_edit_tags.tag_status_count": "{count, plural, one {# n yizen} other {# n yiznan}}", "account_note.placeholder": "Ulac iwenniten", "admin.dashboard.retention.cohort_size": "Iseqdacen imaynuten", @@ -241,7 +251,9 @@ "collections.create.steps": "Asurif wis {step}/{total}", "collections.create_collection": "Snulfu-d talkensit", "collections.delete_collection": "Kkes talkensit", + "collections.description_length_hint": "talast n 100 n yisekkilen", "collections.detail.accounts_heading": "Imiḍanen", + "collections.detail.author_added_you_on_date": "{author} yerna-k·em ass n {date}", "collections.detail.loading": "Aɛebbi n telkensit…", "collections.detail.revoke_inclusion": "Kkes-iyi", "collections.detail.sensitive_content": "Agbur amḥulfu", @@ -371,6 +383,7 @@ "conversation.open": "Ssken adiwenni", "conversation.with": "Akked {names}", "copy_icon_button.copied": "Yettwanɣel ɣer ufus", + "copy_icon_button.copy_this_text": "Nɣel aseɣwen ɣer tecwafit", "copypaste.copied": "Yettwanɣel", "copypaste.copy_to_clipboard": "Nɣel ɣer afus", "directory.federated": "Deg fedivers yettwasnen", @@ -464,6 +477,7 @@ "follow_suggestions.friends_of_friends_longer": "D aɣeṛfan ar wid i teṭṭafareḍ", "follow_suggestions.hints.featured": "Amaɣnu-a ifren-it-id wegraw n {domain} s ufus.", "follow_suggestions.hints.friends_of_friends": "Amaɣnu-a d aɣeṛfan ɣer wid i teṭṭafaṛeḍ.", + "follow_suggestions.personalized_suggestion": "Asumer udmawan", "follow_suggestions.popular_suggestion": "Asumer aɣeṛfan", "follow_suggestions.popular_suggestion_longer": "D aɣeṛfan deg {domain}", "follow_suggestions.view_all": "Wali-ten akk", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index 76f25126be63d2..1406d80f90d906 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -106,7 +106,6 @@ "account.name.copy": "Khóo-pih口座ê名", "account.name.help.domain": "", "account.name.help.domain_self": "{domain} 是管理lí ê個人資料hām PO文ê服侍器。", - "account.name.help.footer": "Tiō親像lí通用別款電子phue程式寄電子phue予別lâng,lí ē當佇別ê Mastodon服侍器hām別lâng交流,koh ē當hām用kap Mastodon kâng款規則(ActivityPub 協定)ê別款社里軟體ê lâng交流。", "account.name.help.header": "@handle 親像電子批地址", "account.name.help.username": "{username} 是tsit ê口座佇in ê服侍器ê用者名。佇別ê服侍器可能有kâng名ê別lâng。", "account.name.help.username_self": "{username} 是lí ê口座佇tsit ê服侍器ê用者名。佇別ê服侍器可能有kâng名ê別lâng。", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index bf048403c4d031..67256e2149d8cb 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -106,7 +106,7 @@ "account.name.copy": "Fediverse-adres kopiëren", "account.name.help.domain": "{domain} is de server waar zich het profiel en de berichten van de gebruiker bevinden.", "account.name.help.domain_self": "{domain} is jouw server waar zich jouw profiel en berichten bevinden.", - "account.name.help.footer": "Net zoals je e-mails kunt verzenden naar mensen met verschillende e-mailproviders, kun je interactie hebben met mensen op andere Mastodon-servers – en met iedereen op andere social apps, die met behulp van het ActivityPub-protocol met Mastodon kunnen communiceren.", + "account.name.help.footer": "Net zoals je e-mails kunt verzenden naar mensen met verschillende e-mailproviders, kun je interactie hebben met mensen op andere Mastodon-servers en met iedereen op andere sociale apps die met Mastodon compatibel zijn.", "account.name.help.header": "Een fediverse-adres valt te vergelijken met een e-mailadres", "account.name.help.username": "{username} is de gebruikersnaam van het account op hun server. Het is mogelijk dat iemand anders dezelfde gebruikersnaam op een andere server heeft.", "account.name.help.username_self": "{username} is jouw gebruikersnaam op deze server. Het is mogelijk dat iemand anders dezelfde gebruikersnaam op een andere server heeft.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index d652e71fe3ab79..3f0833efcbf663 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -105,7 +105,6 @@ "account.name.copy": "Kopier brukaradressa", "account.name.help.domain": "{domain} er tenaren som lagrar brukarprofilen og innlegga.", "account.name.help.domain_self": "{domain} er tenaren som lagrar brukarprofilen og innlegga dine.", - "account.name.help.footer": "På same måten som du kan senda epost til folk med ulike epostprogram og -kontoar, kan du kommunisera med folk på andre Mastodon-tenarar, og med folk på andre sosiale nettverk som samhandlar på same måte som Mastodon. Det er ActivityPub-protokollen.", "account.name.help.header": "Ei brukaradresse er som ei epostadresse", "account.name.help.username": "{username} er brukarnamnet til denne kontoen på tenaren deira. Folk på andre tenarar kan ha same brukarnamnet.", "account.name.help.username_self": "{username} er brukarnamnet ditt på denne tenaren. Folk på andre tenarar kan ha same brukarnamnet.", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index e3b36890458eda..1ca1ab1d2685f0 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -45,6 +45,7 @@ "account.featured": "Em destaque", "account.featured.accounts": "Perfis", "account.featured.collections": "Coleções", + "account.featured.new_collection": "Nova coleção", "account.field_overflow": "Mostrar todo conteúdo", "account.filters.all": "Todas atividades", "account.filters.boosts_toggle": "Mostrar impulsos", @@ -72,6 +73,7 @@ "account.in_memoriam": "In Memoriam.", "account.joined_short": "Entrou", "account.languages": "Mudar idiomas inscritos", + "account.last_active": "Última atividade", "account.link_verified_on": "A propriedade deste link foi verificada em {date}", "account.locked_info": "Trancado. Seguir requer aprovação manual do perfil.", "account.media": "Mídia", @@ -101,9 +103,10 @@ "account.muted": "Silenciado", "account.muting": "Silenciando", "account.mutual": "Vocês se seguem", + "account.name.copy": "Copiar usuário", "account.name.help.domain": "{domain} é o servidor que hospeda o perfil e publicações do usuário.", "account.name.help.domain_self": "{domain} é o seu servidor que hospeda seu perfil e publicações.", - "account.name.help.footer": "Assim como pode enviar mensagens eletrônicas de serviços diferentes, você pode interagir com pessoas de outros servidores Mastodon — e qualquer pessoa em um aplicativo alimentado com as regras utilizadas pelo Mastodon (protocolo ActivityPub).", + "account.name.help.footer": "Assim como você pode enviar emails para pessoas que usam diferentes provedores de email, você pode interagir com pessoas em outros servidores de Mastodon, e com qualquer um em outros aplicativos sociais compatíveis com Mastodon.", "account.name.help.header": "Um identificador é como um endereço de endereço eletrônico", "account.name.help.username": "{username} é o nome de usuário da conta neste servidor. Alguém em outro servidor pode ter o mesmo nome de usuário.", "account.name.help.username_self": "{username} é seu nome de usuário neste servidor. Alguém em outro servidor pode ter o mesmo nome de usuário.", @@ -137,6 +140,9 @@ "account.unmute": "Dessilenciar @{name}", "account.unmute_notifications_short": "Ativar som de notificações", "account.unmute_short": "Desativar silêncio", + "account_edit.advanced_settings.bot_hint": "Sinalizar a outros que a conta realiza principalmente ações automatizadas e pode não ser monitoriada", + "account_edit.advanced_settings.bot_label": "Conta automatizada", + "account_edit.advanced_settings.title": "Configurações avançadas", "account_edit.bio.add_label": "Adicionar biografia", "account_edit.bio.edit_label": "Editar Biografia", "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.", @@ -345,6 +351,7 @@ "closed_registrations_modal.find_another_server": "Encontrar outro servidor", "closed_registrations_modal.preamble": "O Mastodon é descentralizado, não importa onde você criou a sua conta, será possível seguir e interagir com qualquer pessoa neste servidor. Você pode até mesmo criar o seu próprio servidor!", "closed_registrations_modal.title": "Inscrevendo-se no Mastodon", + "collection.share_modal.share_link_label": "Compartilhar link", "collection.share_modal.share_via_post": "Postar no Mastodon", "collection.share_modal.share_via_system": "Enviar para...", "collection.share_modal.title": "Compartilhar coleção", @@ -372,12 +379,17 @@ "collections.delete_collection": "Eliminar coleção", "collections.description_length_hint": "Limite de 100 caracteres", "collections.detail.accounts_heading": "Contas", + "collections.detail.author_added_you_on_date": "{author} te adicionou em {date}", "collections.detail.loading": "Carregando coleção…", "collections.detail.revoke_inclusion": "Remover-me", + "collections.detail.sensitive_content": "Conteúdo sensível", "collections.detail.sensitive_note": "Esta coleção contém contas e conteúdo que podem ser sensíveis a alguns usuários.", "collections.detail.share": "Compartilhar esta coleção", + "collections.detail.you_are_in_this_collection": "Você aparece nesta coleção", "collections.edit_details": "Editar detalhes", "collections.error_loading_collections": "Houve um erro ao tentar carregar suas coleções.", + "collections.hidden_accounts_description": "Você bloqueou ou silencilou {count, plural, one{este usuário} other {estes usuários}}", + "collections.hidden_accounts_link": "{count, plural, one {# conta oculta} other {# contas ocultas}}", "collections.hints.accounts_counter": "{count} / {max} contas", "collections.last_updated_at": "Atualizado pela última vez em {date}", "collections.manage_accounts": "Gerenciar contas", @@ -422,7 +434,9 @@ "column.list_members": "Gerenciar membros da lista", "column.lists": "Listas", "column.mutes": "Usuários silenciados", + "column.my_collections": "Minhas coleções", "column.notifications": "Notificações", + "column.other_collections": "Coleções de {name}", "column.pins": "Publicações fixadas", "column.public": "Linha global", "column_back_button.label": "Voltar", @@ -492,6 +506,10 @@ "confirmations.follow_to_list.confirm": "Seguir e adicionar à lista", "confirmations.follow_to_list.message": "Você precisa seguir {name} para adicioná-lo à lista.", "confirmations.follow_to_list.title": "Seguir usuário?", + "confirmations.hide_featured_tab.confirm": "Ocultar aba", + "confirmations.hide_featured_tab.intro": "Você pode alterar isto a qualquer momento em Editar Perfil > Configurações da aba de perfil.", + "confirmations.hide_featured_tab.message": "Isto ocultará a aba para usuários em {serverName} e outros servidores executando a versão mais recente do Mastodon. Outras exibições podem variar.", + "confirmations.hide_featured_tab.title": "Ocultar aba \"Em destaque\"?", "confirmations.logout.confirm": "Sair", "confirmations.logout.message": "Você tem certeza de que deseja sair?", "confirmations.logout.title": "Sair da sessão?", @@ -530,6 +548,7 @@ "content_warning.hide": "Ocultar publicação", "content_warning.show": "Mostrar mesmo assim", "content_warning.show_more": "Mostrar mais", + "content_warning.show_short": "Exibir", "conversation.delete": "Excluir conversa", "conversation.mark_as_read": "Marcar como lida", "conversation.open": "Ver conversa", @@ -570,6 +589,14 @@ "domain_pill.your_server": "Sua casa digital, onde ficam todas as suas postagens. Não gosta deste? Transfira servidores a qualquer momento e traga seus seguidores também.", "domain_pill.your_username": "Seu identificador exclusivo neste servidor. É possível encontrar usuários com o mesmo nome de usuário em servidores diferentes.", "dropdown.empty": "Escolha uma opção", + "email_subscriptions.email": "Email", + "email_subscriptions.form.action": "Inscrever-se", + "email_subscriptions.form.bottom": "Receba publicações em sua caixa de entrada sem criar uma conta do Mastodon. Desinscreva-se a qualquer momento. Para mais informações, consulte a Política de Privacidade.", + "email_subscriptions.form.title": "Inscrever-se para atualizações por email de {name}", + "email_subscriptions.submitted.lead": "Verifique sua caixa de entrada para finalizar sua inscrição para receber atualizações por email.", + "email_subscriptions.submitted.title": "Mais um passo", + "email_subscriptions.validation.email.blocked": "Provedor de email bloqueado", + "email_subscriptions.validation.email.invalid": "Endereço de email inválido", "embed.instructions": "Incorpore esta publicação no seu site ao copiar o código abaixo.", "embed.preview": "Aqui está como vai ficar:", "emoji_button.activity": "Atividade", @@ -587,6 +614,14 @@ "emoji_button.search_results": "Resultado da pesquisa", "emoji_button.symbols": "Símbolos", "emoji_button.travel": "Viagem e Lugares", + "empty_column.account_featured.other": "{acct} ainda não colocou nada em destaque.", + "empty_column.account_featured_self.no_collections_button": "Criar uma coleção", + "empty_column.account_featured_self.no_collections_hide_tab": "Ocultar esta aba em vez disso", + "empty_column.account_featured_self.pre_collections": "Acompanhe este espaço para Coleções", + "empty_column.account_featured_self.pre_collections_desc": "Coleções (chegando no mastodon 4.6) permitem que você crie sua própria lista curada de contas para recomendar aos outros.", + "empty_column.account_featured_self.showcase_accounts": "Exibir suas contas favoritas", + "empty_column.account_featured_self.showcase_accounts_desc": "Coleçòes são listas curadas de contas que ajudam os outros a descobrir mais do Fediverso.", + "empty_column.account_featured_unknown.other": "Esta conta ainda não pôs nada em destaque.", "empty_column.account_hides_collections": "A pessoa optou por não disponibilizar esta informação", "empty_column.account_suspended": "Conta suspensa", "empty_column.account_timeline": "Nada aqui.", @@ -603,7 +638,7 @@ "empty_column.follow_requests": "Nada aqui. Quando você tiver seguidores pendentes, eles aparecerão aqui.", "empty_column.followed_tags": "Você ainda não seguiu nenhuma hashtag. Quando seguir, elas serão exibidas aqui.", "empty_column.hashtag": "Nada aqui.", - "empty_column.home": "Sua página inicial está vazia! Siga mais pessoas para começar: {suggestions}", + "empty_column.home": "Sua página inicial está vazia! Siga mais pessoas para preenchê-la.", "empty_column.list": "Nada aqui. Quando membros da lista publicarem, elas aparecerão aqui.", "empty_column.mutes": "Nada aqui.", "empty_column.notification_requests": "Tudo limpo! Não há nada aqui. Quando você receber novas notificações, elas aparecerão aqui de acordo com suas configurações.", @@ -870,6 +905,7 @@ "navigation_panel.expand_followed_tags": "Expandir o menu de hashtags seguidas", "navigation_panel.expand_lists": "Expandir lista de menu", "not_signed_in_indicator.not_signed_in": "Você precisa se autenticar para acessar este recurso.", + "notification.added_to_collection": "{name} te adicionou a uma coleção", "notification.admin.report": "{name} denunciou {target}", "notification.admin.report_account": "{name} denunciou {count, plural, one {uma publicação} other {# publicações}} de {target} para {category}", "notification.admin.report_account_other": "{name} denunciou {count, plural, one {uma publicação} other {# publicações}} de {target}", @@ -879,6 +915,7 @@ "notification.admin.sign_up.name_and_others": "{name} e {count, plural, one {# outro} other {# outros}} se inscreveram", "notification.annual_report.message": "O seu #Wrapstodon de {year} está esperando! Desvende seus destaques do ano e momentos memoráveis no Mastodon!", "notification.annual_report.view": "Ver #Wrapstodon", + "notification.collection_update": "{name} editou uma coleção em que você está", "notification.favourite": "{name} favoritou sua publicação", "notification.favourite.name_and_others_with_link": "{name} e {count, plural, one {# outro} other {# others}} favoritaram a publicação", "notification.favourite_pm": "{name} favoritou sua menção privada", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 8386827e1108dc..bdb382860c1b7a 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -106,7 +106,6 @@ "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} é o servidor onde estão alojados o perfil e publicações do utilizador.", "account.name.help.domain_self": "{domain} é o servidor que hospeda o teu perfil e publicações.", - "account.name.help.footer": "Tal como podes enviar mensagens para pessoas que usam diferentes aplicações de correio eletrónico, podes interagir com as pessoas noutros servidores Mastodon — e com qualquer pessoa noutras aplicações sociais suportadas pelas mesmas regras usadas pelo Mastodon (o protocolo ActivityPub).", "account.name.help.header": "Um identificador é como um endereço de correio eletrónico", "account.name.help.username": "{username} é o nome de utilizador desta conta no seu servidor. Alguém pode ter o mesmo nome de utilizador noutro servidor.", "account.name.help.username_self": "{username} é o teu nome de utilizador neste servidor. Alguém pode ter o mesmo nome de utilizador noutro servidor.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index dfb11163052d1c..e9b7a0888dbd00 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -104,7 +104,6 @@ "account.mutual": "Вы подписаны друг на друга", "account.name.help.domain": "{domain} — это сервер, на котором размещены профиль и посты пользователя.", "account.name.help.domain_self": "{domain} — это ваш сервер, на котором размещены ваши профиль и посты.", - "account.name.help.footer": "Точно так же как вы отправляете сообщения пользователям разных почтовых сервисов, вы можете взаимодействовать с пользователями других серверов Mastodon, а также других платформ, которые совместимы с Mastodon благодаря использованию протокола ActivityPub.", "account.name.help.header": "Адрес пользователя напоминает адрес электронной почты", "account.name.help.username": "{username} — это имя пользователя на сервере. На разных серверах могут встречаться люди с тем же именем пользователя.", "account.name.help.username_self": "{username} — это ваше имя пользователя на этом сервере. На других серверах могут встречаться люди с тем же именем пользователя.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 2ec73d415a4999..33dfb83f46b3d8 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -105,7 +105,7 @@ "account.mutual": "Ndiqni njëri-tjetrin", "account.name.help.domain": "{domain} është shërbyesi që strehon profilin dhe postimet e përdoruesit.", "account.name.help.domain_self": "{domain} është shërbyesi juaj që strehon profilin dhe postimet tuaja.", - "account.name.help.footer": "Ashtu siç mund të dërgoni email-e për persona që përdorin shërbime të ndryshëm email, mund të ndërveproni me persona në shërbyes të tjerë Mastodon – dhe me këdo në aplikacione të tjerë shoqërorë të ngritur mbi të njëjtin grup rregullash që përdor Mastodon-i (protokollin ActivityPub).", + "account.name.help.footer": "Ashtu siç mund të dërgoni email-e te persona që përdorin shërbime të ndryshëm email-i, mund të ndërveproni me persona në shërbyes të tjerë Mastodon dhe me këdo në aplikacione të tjerë shoqërorë të përputhshëm me Mastodon-in.", "account.name.help.header": "Handle-i është i ngashëm me një adresë email", "account.name.help.username": "{username} është emri i përdoruesit të kësaj llogarie në shërbyesin e tij. Dikush në një tjetër shërbyes mund të ketë të njëjtin emër përdoruesi.", "account.name.help.username_self": "{username} është emri juaj i përdoruesit në këtë shërbyes. Dikush në një tjetër shërbyes mund të ketë të njëjtin emër përdoruesi.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index daf129bc885d8b..52a383a3a7cdce 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -106,7 +106,6 @@ "account.name.copy": "Kopiera handtag", "account.name.help.domain": "{domain} är servern som är värd för användarens profil och inlägg.", "account.name.help.domain_self": "{domain} är din server som är värd för användarens profil och inlägg.", - "account.name.help.footer": "Precis som du kan skicka e-post till personer med olika e-postklienter, du kan interagera med personer på andra Mastodon-servrar – och med vem som helst på andra sociala appar som drivs av samma uppsättning regler som Mastodon använder (ActivityPub-protokollet).", "account.name.help.header": "Ett handtag är som en e-postadress", "account.name.help.username": "{username} är kontots användarnamn på deras server. Någon på en annan server kan ha samma användarnamn.", "account.name.help.username_self": "{username} är ditt användarnamn på denna server. Någon på en annan server kan ha samma användarnamn.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index b3d97e2056706a..bba78d5d2b07b7 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -106,7 +106,7 @@ "account.name.copy": "İsmi Kopyala", "account.name.help.domain": "{domain} kullanıcının profilini ve gönderilerini barındıran sunucudur.", "account.name.help.domain_self": "{domain} profilinizi ve gönderilerinizi barındıran sunucunuzdur.", - "account.name.help.footer": "Farklı e-posta istemcileri kullanan kişilere e-posta gönderebileceğiniz gibi, diğer Mastodon sunucularındaki kişilerle ve Mastodon'un kullandığı kurallarla (ActivityPub protokolü) çalışan diğer sosyal uygulamalardaki herkesle etkileşim kurabilirsiniz.", + "account.name.help.footer": "Tıpkı farklı e-posta sağlayıcılarını kullanan kişilere e-posta gönderebileceğiniz gibi, diğer Mastodon sunucularındaki kullanıcılarla ve diğer Mastodon uyumlu sosyal uygulamalardaki herkesle etkileşim kurabilirsiniz.", "account.name.help.header": "Takma ad bir e-posta adresi gibidir", "account.name.help.username": "{username} bu hesabın sunucudaki kullanıcı adıdır. Başka bir sunucudaki başka bir kişi de aynı kullanıcı adına sahip olabilir.", "account.name.help.username_self": "{username} bu sunucudaki kullanıcı adınızdır. Başka bir sunucudaki başka bir kullanıcı da aynı kullanıcı adına sahip olabilir.", @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Bu koleksiyonda öne çıkanlardasınız", "collections.edit_details": "Ayrıntıları düzenle", "collections.error_loading_collections": "Koleksiyonlarınızı yüklemeye çalışırken bir hata oluştu.", + "collections.hidden_accounts_description": "Bu {count, plural, one {kullanıcıyı} other {kullanıcıları}} engellediniz veya sessize aldınız", + "collections.hidden_accounts_link": "{count, plural, one {# gizli hesap} other {# gizli hesap}}", "collections.hints.accounts_counter": "{count} / {max} hesap", "collections.last_updated_at": "Son güncelleme: {date}", "collections.manage_accounts": "Hesapları yönet", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 8e88e4fad14a95..38636f80da929e 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -106,7 +106,7 @@ "account.name.copy": "Sao chép địa chỉ", "account.name.help.domain": "{domain} là máy chủ lưu trữ hồ sơ và tút của tài khoản.", "account.name.help.domain_self": "{domain} là máy chủ lưu trữ hồ sơ và tút của bạn.", - "account.name.help.footer": "Giống như bạn có thể gửi email cho mọi người trên các dịch vụ email khác nhau, bạn có thể tương tác với mọi người trên các máy chủ Mastodon khác – và trên các ứng dụng xã hội khác sử dụng cùng giao thức mà Mastodon sử dụng (ActivityPub).", + "account.name.help.footer": "Giống như việc bạn có thể gửi email cho những người sử dụng các nhà cung cấp email khác nhau, bạn cũng có thể tương tác với những người trên các máy chủ Mastodon khác và với bất kỳ ai trên các ứng dụng mạng xã hội tương thích với Mastodon khác.", "account.name.help.header": "Một địa chỉ giống như địa chỉ email", "account.name.help.username": "{username} là tên người dùng duy nhất trên máy chủ này. Các máy chủ khác có thể cũng có tên người dùng giống vậy.", "account.name.help.username_self": "{username} là tên người dùng của bạn trên máy chủ này. Các máy chủ khác cũng có thể có tên người dùng giống bạn.", @@ -388,6 +388,8 @@ "collections.detail.you_are_in_this_collection": "Bạn đã được thêm vào gói khởi đầu này", "collections.edit_details": "Sửa chi tiết", "collections.error_loading_collections": "Đã xảy ra lỗi khi tải những gói khởi đầu của bạn.", + "collections.hidden_accounts_description": "Bạn vừa chặn hoặc phớt lờ {count, plural, other {tài khoản này}}", + "collections.hidden_accounts_link": "{count, plural, other {# tài khoản đã ẩn}}", "collections.hints.accounts_counter": "{count} / {max} tài khoản", "collections.last_updated_at": "Lần cuối cập nhật: {date}", "collections.manage_accounts": "Quản lý tài khoản", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 2e7b3f46c3a301..58a15ef752d4f9 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -106,7 +106,7 @@ "account.name.copy": "复制用户名", "account.name.help.domain": "{domain} 是托管该用户个人资料及嘟文的服务器。", "account.name.help.domain_self": "{domain} 是托管你的个人资料及嘟文的服务器。", - "account.name.help.footer": "就像你可以用不同的电子邮件客户端向其他人发送同样的电子邮件一般,你也可以和其他 Mastodon 服务器上的用户互动,甚至还能和与 Mastodon 采用相同规则(即 ActivityPub 协议)的其他社交软件上的任何人互动。", + "account.name.help.footer": "就像你可以用不同的电子邮箱向其他人发送同样的电子邮件一般,你也可以和其他 Mastodon 服务器上的用户互动,甚至还能和与 Mastodon 兼容的其他社交软件上的任何人互动。", "account.name.help.header": "用户名类似电子邮件地址", "account.name.help.username": "{username} 是此账号在其服务器上的用户名。另一个服务器上的其他人可能拥有相同的用户名。", "account.name.help.username_self": "{username} 是你在此服务器上的用户名。另一个服务器上的其他人可能拥有相同的用户名。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index f236c48f34aabf..128129af531450 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -106,7 +106,7 @@ "account.name.copy": "複製帳號", "account.name.help.domain": "{domain} 為託管此使用者個人檔案與嘟文之伺服器。", "account.name.help.domain_self": "{domain} 為託管您個人檔案與嘟文之伺服器。", - "account.name.help.footer": "就像是您的以不同 email 程式寄信給他人一樣,您能與其他 Mastodon 伺服器中的人們互動,並且能和使用與 Mastodon 一樣規則 (ActivityPub 協定) 的其他社群軟體上任何人互動。", + "account.name.help.footer": "就像是您能與使用不同電子郵件提供商的其他人互動一般,您能與其他 Mastodon 伺服器上的人們互動,也能與其他 Mastodon 相容社群軟體上的任何人互動。", "account.name.help.header": "@handle 就像是 email 地址一樣", "account.name.help.username": "{username} 為該使用者於他們伺服器上的帳號名稱。其他伺服器上的某個人可能擁有一樣的使用者名稱。", "account.name.help.username_self": "{username} 為您於此伺服器上的帳號名稱。其他伺服器上的某個人可能擁有一樣的使用者名稱。", diff --git a/config/locales/et.yml b/config/locales/et.yml index 7935f43ce6dca8..f8f0fd887e9072 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1397,6 +1397,10 @@ et: your_appeal_rejected: Vaidlustus on tagasi lükatud edit_profile: other: Muu + email_subscription_mailer: + notification: + subject: + plural: Uus postitus kasutajalt %{name} emoji_styles: auto: Automaatne native: Rakenduseomane diff --git a/config/locales/kab.yml b/config/locales/kab.yml index 6cecdb5d57dae2..897e17c222a3fa 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -142,6 +142,7 @@ kab: destroy_domain_allow: Kkes taɣult yettusirgen destroy_domain_block: Kkes asewḥel n taɣult destroy_ip_block: Kkes alugen n IP + destroy_relay: Kkes amedwel destroy_status: Kkes tasufeɣt destroy_unavailable_domain: Kkes taɣult ur nelli ara destroy_user_role: Senger tamlilt @@ -149,6 +150,7 @@ kab: disable_custom_emoji: Sens imujit udmawan disable_user: Sens aseqdac enable_custom_emoji: Rmed imujit udmawan + enable_relay: Rmed amedwel enable_user: Rmed aseqdac promote_user: Aseqdac anmeggag remove_avatar_user: Kkes avaṭar @@ -268,6 +270,7 @@ kab: create: Rnu-d iḥder severity: noop: Ula yiwen + silence: Talast suspend: Ḥbes di leεḍil title: Iḥder amaynut n taɣult private_comment: Awennit uslig @@ -315,6 +318,8 @@ kab: back_to_warning: Ɣur-wat by_domain: Taɣult content_policies: + policies: + silence: Talast policy: Tasertit dashboard: instance_languages_dimension: Tutlayin ifazen @@ -333,6 +338,7 @@ kab: title: Aseɣyed private_comment: Awennit uslig public_comment: Awennit azayez + purge: Sfeḍ title: Tamatut total_blocked_by_us: Ttwasḥebsen sɣur-neɣ total_followed_by_them: Ṭtafaṛen-t @@ -403,6 +409,7 @@ kab: reported_account: Amiḍan yettumlen resolved: Fran status: Addad + statuses: Iznan (%{count}) title: Ineqqisen unknown_action_msg: 'Tigawt tarussint: %{action}' unresolved: Ur yefra ara @@ -423,12 +430,15 @@ kab: everyone: Tisirag timezwura privileges: administrator: Anedbal + delete_user_data: Kkes isefka n useqddac manage_federation: Sefrek Tafidiralit + manage_invites: Sefrek ineɛruḍen manage_roles: Sefrek ilugan manage_rules: Sefrek ilugan manage_settings: Asefrek n iɣewwaṛen manage_users: Sefrek iqeddacen view_dashboard: Timẓriwt n tfelwit + title: Timlilin rules: add_new: Rnu alugen add_translation: Ad yernu tasuqilt @@ -444,12 +454,14 @@ kab: about: title: Ɣef appearance: + preamble: Sagen agrudem web n Mastodon. title: Udem discovery: privacy: Tabaḍnit profile_directory: Akaram n imaɣnuten title: Asnirem trends: Ayen mucaɛen + wrapstodon: Wrapstodon domain_blocks: all: I medden akk disabled: Ɣef ula yiwen @@ -514,6 +526,7 @@ kab: name: Isem newest: Amaynut oldest: Aqbur + reset: Wennez search: Anadi title: Ihacṭagen terms_of_service: @@ -521,6 +534,7 @@ kab: create: Sqedcet ayla-nwen current: Amiran draft: Arewway + generate: Seqdec tamudemt generates: action: Sirew title: Tawila n tewtilin n useqdec @@ -543,6 +557,8 @@ kab: tags: dashboard: tag_languages_dimension: Tutlayin ifazen + listable: Yezmer ad yettwasumer + not_listable: Ur-d yettwasumer ara title: Ihacṭagen inezzaɣ trending_rank: 'Anezzuɣ #%{rank}' trending: Inezzaɣ @@ -611,6 +627,7 @@ kab: didnt_get_confirmation: Ur d-teṭṭifeḍ ara aseɣwen n usentem ? dont_have_your_security_key: Ulac ɣur-k·m tasarut-ik·im n tɣellist? forgot_password: Tettud awal-ik uffir? + link_to_webauth: Seqdec ibenk-ik·im n tsarut taɣellsant log_in_with: Qqen s login: Qqen logout: Ffeɣ @@ -663,6 +680,8 @@ kab: prompt: Sentem awal uffir send ad tkemleḍ color_scheme: auto: Awurman + dark: Ubrik + light: Aceɛlal contrast: auto: Awurman crypto: @@ -714,6 +733,7 @@ kab: plural: Tisuffaɣ timaynutin sɣur %{name} singular: 'Izen amaynut: "%{excerpt}"' email_subscriptions: + active: D urmid confirmations: show: changed_your_mind: Tbeddleḍ ṛṛay-ik·im? @@ -1079,3 +1099,5 @@ kab: success: Tasarut-ik·im n tɣellist tettwarna akken iwata. delete: Kkes nickname: Meffer isem + wrapstodon: + title: Wrapstodon %{year} i %{name} diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 066571151680fc..02bbc49a08cc45 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1421,7 +1421,7 @@ nl: other: Overige redesign_body: Het bewerken van je profiel is nu toegankelijk vanaf de profielpagina. redesign_button: Ga erheen - redesign_title: Er is een nieuwe profielbewerkingservaring + redesign_title: Er is een nieuwe manier om je profiel te bewerken email_subscription_mailer: confirmation: action: E-mailadres bevestigen diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index f6cc614a458355..a003e1da0557e9 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1437,6 +1437,12 @@ pt-BR: interact_with_this_post: one: Interaja com essa publicação e descubra mais como essa. other: Interaja com essas publicações e descubra mais. + subject: + plural: Novas publicações de %{name} + singular: 'Nova publicação: "%{excerpt}"' + title: + plural: Novas publicações de %{name} + singular: 'Nova publicação: "%{excerpt}"' email_subscriptions: active: Ativo confirmations: diff --git a/config/locales/simple_form.kab.yml b/config/locales/simple_form.kab.yml index 3987aca3d2685b..2fb9ad385cc64e 100644 --- a/config/locales/simple_form.kab.yml +++ b/config/locales/simple_form.kab.yml @@ -96,6 +96,7 @@ kab: phrase: Awal n tsarut neɣ tafyirt setting_advanced_layout: Rmed agrudem n web leqqayen setting_always_send_emails: Dima ttazen-d ilɣa s yimayl + setting_color_scheme: Azenziɣ n yiniten setting_default_language: Tutlayt n usuffeɣ setting_default_quote_policy: Anwa i izemren ad d-yebder setting_display_media: Askanay n imidyaten @@ -115,6 +116,9 @@ kab: whole_word: Awal akk featured_tag: name: Ahacṭag + filters: + actions: + hide: Ffer-it akk form_admin_settings: app_icon: Tignit n usnas custom_css: CSS udmawan @@ -128,6 +132,7 @@ kab: theme: Asentel amezwer thumbnail: Tanfult n uqeddac trends: Rmed inezzaɣ + wrapstodon: Sermed Wrapstodon interactions: must_be_follower: Ssewḥel ilɣa sɣur wid akk d tid ur yellin ara d imeḍfaren-ik·im must_be_following: Ssewḥel ilɣa sɣur wid akked tid ur tettḍafareḍ ara @@ -169,6 +174,7 @@ kab: role: Tamlilt time_zone: Tamnaḍt tasragant user_role: + color: Ini n tsakezt name: Isem permissions_as_keys: Tisirag webhook: diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index ed58c700e679ba..b7f9245a7cdb93 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -4,6 +4,7 @@ pt-BR: hints: account: attribution_domains: Um por linha. Protege contra atribuições falsas. + discoverable: Você pode aparecer em coleções criadas por outros usuários. Você e suas publicações abertas podem também ser sugeridas a outros usuários em outras experiências de descoberta no Mastodon. display_name: Seu nome completo ou apelido. fields: Sua página inicial, pronomes, idade ou qualquer coisa que quiser. indexable: Suas publicações abertas podem aparecer nos resultados da busca em Mastodon. As pessoas que interagiram com suas publicações podem conseguir pesquisá-las independentemente disso. @@ -153,6 +154,7 @@ pt-BR: jurisdiction: Liste o país onde quem paga as contas reside. Se for uma empresa ou outra entidade, liste o país onde ela está incorporada, e a cidade, região, território ou estado, conforme apropriado. min_age: Não deve ter menos que a idade mínima exigida pelas suas leis locais. user: + chosen_languages: Quando marcada, somente publicações nas linguagens selecionadas serão exibidas nas linhas do tempo públicas. Esta configuração não afeta sua linha do tempo Principal e listas. date_of_birth: one: Precisamos ter certeza de que você tem, no mínimo, %{count} anos para usar o %{domain} Não armazenaremos essa informação. other: Temos que ter certeza de que você é pelo menos %{count} para usar o %{domain} Não vamos armazenar isso. @@ -175,6 +177,7 @@ pt-BR: labels: account: attribution_domains: Sites autorizados a creditar você. + discoverable: Coloque-me em destaque nas experiências de descoberta fields: name: Rótulo value: Conteúdo From 9439a2e944ea620a0ca976f86500a534d28f4148 Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Wed, 15 Apr 2026 04:26:50 -0500 Subject: [PATCH 198/335] Update FFmpeg renovate datasource to github-tags (#38676) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index fa9d302bced638..6812939291e93f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -233,7 +233,7 @@ RUN ninja && ninja install FROM media-build AS ffmpeg # ffmpeg version to compile, change with [--build-arg FFMPEG_VERSION="7.0.x"] -# renovate: datasource=repology depName=ffmpeg packageName=openpkg_current/ffmpeg +# renovate: datasource=github-tags depName=FFmpeg/FFmpeg extractVersion=^n(?\d+\.\d+(\.\d+)?)$ ARG FFMPEG_VERSION=8.1 # ffmpeg download URL, change with [--build-arg FFMPEG_URL="https://ffmpeg.org/releases"] ARG FFMPEG_URL=https://github.com/FFmpeg/FFmpeg/archive/refs/tags From 75bbf73737ae42d10b10ca10cf5319d80c9adb91 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 15 Apr 2026 05:29:21 -0400 Subject: [PATCH 199/335] Make fields build spec resilient to changed size constant (#38678) --- spec/models/account/fields_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spec/models/account/fields_spec.rb b/spec/models/account/fields_spec.rb index cca2d59e8b8dc9..1cf3b98dcc6ee4 100644 --- a/spec/models/account/fields_spec.rb +++ b/spec/models/account/fields_spec.rb @@ -13,7 +13,7 @@ it { is_expected.to_not allow_values(fields_over_limit, fields_empty_name).for(:fields) } def fields_empty_name_value - Array.new(4) { { 'name' => '', 'value' => '' } } + Array.new(described_class::DEFAULT_FIELDS_SIZE) { %w(name value).index_with('') } end def fields_over_limit @@ -151,6 +151,8 @@ def fields_empty_name describe '#build_fields' do let(:account) { Fabricate.build :account } + before { stub_const('Account::DEFAULT_FIELDS_SIZE', 4) } + context 'when fields already full' do before { account.fields = Array.new(Account::DEFAULT_FIELDS_SIZE) { |i| { name: "Name#{i}", value: 'Test' } } } From f6652caef4a388e71926c35ff8a4bceeb23cc2d0 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Apr 2026 11:54:38 +0200 Subject: [PATCH 200/335] Fix invalid arguments being passed to Redis in custom Chewy strategy (#38684) --- lib/chewy/strategy/mastodon.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/chewy/strategy/mastodon.rb b/lib/chewy/strategy/mastodon.rb index a4b655c506e0d1..7eba23a0c9a5a2 100644 --- a/lib/chewy/strategy/mastodon.rb +++ b/lib/chewy/strategy/mastodon.rb @@ -17,6 +17,9 @@ def leave RedisConnection.with do |redis| redis.pipelined do |pipeline| @stash.each do |type, ids| + ids = ids&.compact + next if ids.blank? + pipeline.sadd("chewy:queue:#{type.name}", ids) end end From e9af9c649f47385ad2be0311b7a917ea01ba431a Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 15 Apr 2026 12:17:47 +0200 Subject: [PATCH 201/335] Fix definition for `quote` in JSON-LD context (#38686) --- app/helpers/context_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/context_helper.rb b/app/helpers/context_helper.rb index ed8f4fbf0bc912..4fc9ca18f6d269 100644 --- a/app/helpers/context_helper.rb +++ b/app/helpers/context_helper.rb @@ -34,7 +34,7 @@ module ContextHelper }, quote_requests: { 'QuoteRequest' => 'https://w3id.org/fep/044f#QuoteRequest' }, quotes: { - 'quote' => 'https://w3id.org/fep/044f#quote', + 'quote' => { '@id' => 'https://w3id.org/fep/044f#quote', '@type' => '@id' }, 'quoteUri' => 'http://fedibird.com/ns#quoteUri', '_misskey_quote' => 'https://misskey-hub.net/ns#_misskey_quote', 'quoteAuthorization' => { '@id' => 'https://w3id.org/fep/044f#quoteAuthorization', '@type' => '@id' }, From d9ea631d5911ebfe090e0d1ea1b11441aa58c918 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 15 Apr 2026 12:21:22 +0200 Subject: [PATCH 202/335] Featured tab: Check if collections are enabled for loading status (#38688) --- app/javascript/mastodon/features/account_featured/index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 4453bfc317ece2..1b83b66dfd7041 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -88,7 +88,8 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ const hasFeaturedAccounts = !featuredAccountIds.isEmpty(); - const isLoading = !accountId || collectionsLoadStatus !== 'idle'; + const isLoading = + !accountId || (collectionsEnabled && collectionsLoadStatus !== 'idle'); if (accountId === null) { return ; From 32edf53ea946375914b42c0b8e71a48d01ffc3d8 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 15 Apr 2026 07:32:51 -0400 Subject: [PATCH 203/335] Fix hero image radius, bring into repo (#38679) Co-authored-by: Kiru --- README.md | 2 +- docs/hero-nodes.gif | Bin 0 -> 4792596 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/hero-nodes.gif diff --git a/README.md b/README.md index 0e7f4efd63a35d..0c5b5f7a57ff35 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

    - Mastodon hero image + Mastodon hero image

    diff --git a/docs/hero-nodes.gif b/docs/hero-nodes.gif new file mode 100644 index 0000000000000000000000000000000000000000..5692e2ef7cd851852a72d1ec36e67bde83c22631 GIT binary patch literal 4792596 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

    {M2&v8{==)yo*I)8}>-ps{ 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

    P_5)XOmG z#yR=4s=qeZlDr0eH`!620HB7_kuY2S*#PuCxZf9qfm*N==>R~pqdjsdkWmbz9tlgm z?+OH7Do(o}4XLXE=`XmssPA(uagTTNoYKy-(*aqXx^=sNtk*BZe*vnB=k8n+*fNnr zN32>@uomK^mN6(Zs}XVeJn?kCEZq{x4;|Sxow7x9NHxcj;d6yJUd4PA`Efo(fV3Ny z+KuN`QX>tHT#8)j=5VKIt4yM)CWYR!fKIax*FT#%Wqp`D;C^I9MvQ^ge;M?(iFym( z!*IqufP8J%lZh%T)h%L9-z+nE;e|w_n>p<(k!<95QUM^=PN#{#Fmcv-(VJmcm*y=a zYA(?{K1NTr|89deSUw)=9y(Q|$*7L06Ez3EyH|GwMoh+ZWCz)={MkN1N{PP0to-87 z9~LX5mj$v3+5c(aIUXxEJS;YIN{tG-;8#w6Mi2pc}_NnqhQN@|XUY z$&lZM$uEl%X@?RoT|A?WncQKYoX5uP=I1`hgH&Wj_AsF$3q^LuxKz0DuLkdzwL#tj z4`djnkRK$}@DjRE$}ASNDM`IfCL4uIp7{dNqYkfj2X}Q#H2;#)1T#72L1B2xUH(}L zLj#|-y~lw#2LIVBlht24RllVw_AjgM{~n;|Bv2#(APHy+Le{sNniTy~m|@NOvpX!} zaSz0Tzlt4m7i>CG*0>0dQQH?2xE)Ms_t7@|FQ+KGEmEkMn92G~*}+iqIG&s-u)UBn z|4_+d_Fpc?=3*MLJofU+ljcfeiT#leY2u0Otk;BJhW#ux{Jb2x9Q9vG69#^sjC$rJ z2BzfSlV-dB&)$Vqz_-E1b$C8`O9z!*g7TPgwe+ZztFD;yR4hfgsXIJK%*i-2?pA%4 znV*z7&<*Ag&NhRBiPxgUQtA0nojP7<6LUr!reV<`&*LD+NVskaiikXTh83m~AM#|F zVe)s9{?#YYv#&b`pr`>5!3o6R1*-ZrlQlFslKRC8&hiE$7$NN$(X;ge%R-JPB=c)h z)N|V7ji^TnWRzOxa$H7smD8@e)YbLQ#3aY!q`lD}h8p&$uQnY#ugMRMzrCn$S)@s2-#0NzY$PNa)fVjO z;B1_OqHYho{p61|(JjJHJ3N`IYeFs6wcp3=&@`yR} zk=nCI++N}AULThJ>mAa6h0*Uk@reLq@?5O(iQ5nf&7QQaV4ZLdJw*}bn%5Agy*;Y(|IvT2r| zsXk|my-LkCM64T%0V(m`uUfnT)@ZZN!}fVidW)$TX~P;V_8fziD0`9j%;M!1-@IeQ zlKv6mhecQu(yQ!@8U&tbs8rs+4TAI&!)kj(6jpe=tk! zf!TwiMn^5Ya;WR`NH#Zx&Chh^N2E$4m1cW78g-gkkM!WNvA9n3kSE+#Ytik{1y>Q@g+avq+ph$$QAo<*XvwP zl9Cb$AwW&|oTkRXQ{%S3sr`ZoUuTrR&Fo>m0=}7N@-b)=1WKmP`zIDF0d{q&~X2);)>J`lvdopO;y_>|xu<@cz6#u34$pveMREwqEKP0U3 zg;2RBTbG}@a}&)5`V$>2@oFyt!s?>m*16>Q z_RLd>N1t*;O8$PU+?zW865d_9Noqk8%70RixHJ1;+$0HrmvqgWE}1GLq-smgSv)6| z^;;f;Nqc*qF+3%8WH}la!)N?zS=EBicaw~c>S$4X`|Z66z-Lq4Y6t{m`O^50#(UH& zNXOCU7b5%N)n~TlXQQQrp_?@ZiiH%e^`oKT6so}BUnJt%{{>XiwmCoD%zn&eLjU-(5>hyu%*4%sbbcNQ4=>?hlh zv`vx|o2;gFTkztKAB)4TziBZv7QmrR%LMfYR_W_*`)H5*Va}z(y4gYGMN%6cbq=rP zqyy^wYW7Vh+tc?hos4DN^djW%hxjvmN%L1sTEB#NN6;wP;s#ekM)BDsW!ZE=u63PR zthK6xm^{#h?RhKTe=-mPFAUsmlRIg{-ao>Zs~#R0xW*58?CBLD{76CecH-o;LXHEE zC^89jLYTn1eySBfpzZgt9tBRv@2>?kOZLW#L|~K&kq!Voaz#QgTd?`<;%i2h+LsGz z0-P6kYjTq?cQcKo1!%Ihb+gRA5gHDTOIo2Zc*1}WAA2SJ?E8u_Ejd!dV{fZRLXIirkZ9 z^EOs6vko?^N6uX2)z|BgNl_WLu2CHwmcNb`c`7ElJ)gRndK^ zs@F$xl#7@jtJk~A!#qkKWM)GTNCr8J7)AgOzwA8QGmi&Yt86?G2<#T<9}i% zM6LWgrKV*3)6Dj!W`vw=&$qqL8)n|^P-l8nmppu~_<=Dxq|XQVd4s4VDMso?OEj{T zUM$~8lhG5}gMIpWn?;BFEn}jv&WG4PB9VYDq!k%Sqap#4i!S;Yo!_dmQS^;7hnS)O z`OBloo-j;CiEf$rTS8O)hQ-Jv#;yA-33%Y&D0vUH0OahuILRG-#9yf zufYL(69awD2d1H!3>lx>6ii&~X>4rnKey5G&F z|47Q?=TVKh(gce-$m){hq5#+?00asVWJKC+SYmaHl*67sI-(#-ov9>J4Nfz5MgNV;R-aa?zHBM(!T=XW+pcU61!G6%7 zs+58u7HLtg!^x=Q07?9lzq!e|9^G0%d(Qp@>R>J1eNC!6y4s|rO6V{nChgZ3Z2(mU zxpq^1eg>;a*^*SN3ZvcBISXC3xtWC+8MBVnz>zt{ttejVPM08tADym2yJPPj6cJ@C zKJ2ED{BSW$G?C^x!8W0$u)_=Ofe2l|v5>QP9te<3)`Id8g{l;l3_C0^MOmQ!wxCBw zwq6G!MzFAaam0{ys}KKYX!5x<)l$0`O0glz;JWW=t}g8H^a;-+yKXF<5t256mOek* zg+_yOL8pRpJbQGo%|z+dUHh=%U1L(A^4H3bg+NI(V*B<9G&dqruF0^0sNVgQEKV|h zjsh_(uD(&EypHx`3Kl0+j(2%NqsmFEZE?T#u5~%VMtsgrhCh0~$y~c=&cQtN@~GLA zf9&W^=$Pa855JC=zwb1)9>3kMZlyli1t*y)A9l$EEM3k=7k7ED)~Ke9j6t@@$j+mA zaG|8WOc#@L3{sk;RYO`Df5nC-@3e|nOA%w_iB1o`A0|)VZ(hy1%F;U<&^QmV!AUnt;`;HM2 z(c2bU*ON@RYK52vZ+A)R1ZLaVQNl3dP3LCtjf}r`ej_?m>^@bJ?Vt#?bkXO!dzVJ` zgGW@HnK@!kF6Ttdy`2Zj?y%khPh>m())J#Ei?dC4tOvWGLpN5lBo?hq^f;5L$Qi7PyU z7Le@4$mbIZ0o7m62$x}VS8#EiF&{^B4=*E!@wo9~{H>5Mq1m#k>{Lf46O zVzCm=mv1wW-*qP?$#?OVfm%g`UFDU~JFO16LcMSim@PRUNW0s@9hn@@Itd^V!T|-A zvuXKP7>NUJ1KOb|5bp*W425WNY6pIx6|?ob*E9MFDm@oZI}=?LB`KnBzFi~1vS}hFn1RK1GNly1d#J?>x(&(&X&TqnL-2ouKJx$R6Od(;bF0~An$LV4)i548TU$EF6ZY9Za3X?SG>IpK&H4P$ zHc#$Pg0O+hh$Xs*p66d z&WV{`^>CEZm1pwCgUhvJca4)G zXEM}7Gk>leIIJtrH;kV>t;m!gt*%>~DAj7ecium8P!|}JQ_}wD?(4Uo$DNxQIImED zg4En;*4z90;0D}Lf17!{zN6#AeBP2Dm%7HiijZ7M-k+|yeB)_dxGJ7@C1jT^#2oNz z*oFr+_l~jBR%Uen1{LsmiY4*VR#av~CW`5$;_6A6-1W$pm;YqH^sCvBM*7%)b@=JD zdU^bWD|+kGQvTbA|J;#Xze`4!E*)J@o5SzAF&oPSe4dRsS7hJxU2yPKi8saS-Mcv~h#6}T_wD8o`aEd-SMKPRW!-Dz% zO1@O7G2iqwP*AwOCiI7HneSIOX&ul{Ka7ZluEdFZ;44AE@sBu~p3DHSN+4-u)1@br zG{>Ce+4sBB77MajbfHamRZr=i{fHE%ggs7vfywCYX>F`C>FuTNKBu{|khIzpA^-du zGBQE-HlSfEg)F*RzEp~-ndZ2LjN-7 zrozv7xA}(Ni*^Az)~nV0MI;MGL&sh68b-$Rn=Tt}bBD)qibN&|?$!iW&U-&- zF&E05)bz)Qjz5%k(X5{3A#TvulO=>QsKAXT3{vcG*%T~P{BApOD1KRDkm48#(7}V> z-2v~T$k%i!=c~xC4v>eFWTkL0;P7M?@f4XciZnh0Pr2=#y2t5XSo_ePB7{37{wqEf z>-FE8wLC0t+Mi|!canzU*u=1P8{}ysRr=WJOB;czVH{_(p(|M4@mN}lh{c=4o&mbFnXsL@-FMT zQ9HwS10wK{rI4>AU2Gs7OEAoqf{%NeQMXCu?-X~pj4FQ?*XJ4Dn^RREgc=hagzZda zRfbRWj6_MAbRGerV@mF3PRCZnz<+t`4^9*n&k_>!^{993n6ClI%6Rn zv8VhxSb1k?$$Vvr=(EUR%ZU~k;Eo){Bh4X+@2(RqFEN&< zoXt5I?jG+IY1H0WsqN0F+;7r&Yt4Nw!!R}r@12FYFfghF+i0}d+_^M#Yv*chyZc7A z{@sP`Q;?}#s{$NmZai%|12g-cYic!ZpEFlDKg;xuTCUDQuGWv`kF~j#3}vk6y-GAy zN5k^UwguCr@V2-T@dnxG1NP-KK*(T9R7#nLAfB36Xe-OA8>_HuatW`%LUfgkztf*efez=jP?vAR2K4oWB>ASS$xEi&5OWkl8s@1!C^a-ae zVxa>B=TKS1Kq}ACr4 {apl#O>a8eRm4IBz=J;%vXB+Cur_3noNAF4r$_(arw)8=7Py-oNMXArl_Rr0>(27iULgeH zXyd_e`%RDDOfdI&g<7TUvS{f$MZcfgc&KNEZ!@L4u$(?PCEI#3=!QxgMQtfa{WX)? z>ZN9f^nLV&8{TGg$an4H0pi%S{omk#l)z9qp4DeLu*Zj4r0VO(QGxIs&1^@#s0Vwds>A=JhYk=9c!` z){1)<4_-@#2>A9tJXU zlGaJZGlt!p)j?K9&}R95Lqz_9WL`A8+-)~$4!7<9Vj~>JGx75YLO!wZ3u^3V)Jw_e zpoo|T*{hFV5_`j4z9{_7zw6-Ep=ti(&-2W@`Em z%PXde&e+2CT+_&uCl9n920PjY7pwkUx}v81Dj7^^H%#(9(jj~VwxdG>zGwC_t#ub`i=L_S( z!r}*Z?n;G8{Yu$$k=aFGvXT~ZR~YG1_zwD@+?8$8S7jI3>i+tCW)KN~Ux zW&CJ=A};gy?kNW?{s?%;S}lBD9kf&xsvHpV?q%%rmzXF-orHhV^BU1c8SU0!s;FAv zqu`9~ppvMdLe}7BJ0+u>kdo~}9ItjfrMB0vr=R1|G$T~+juc{TbZ7c0ndXpq06Dq2 zm7yp;TUz9M6Zx9gCkH_d?<9Az@1tN4f;?-@(jmg!n3GJeG_Jqf)~vqh*%vL( zI|jZ$J`qt$N=wS_pA?F2`PmH1X(F2t2h1MGpqB$>Y%zX4ZWW6py4Y-B~cgVe`C7 z#DJgAtl}m6hja>{^%QKCq^<@IHj!l&GuyFIO%k>+kl@5TH%$|L67Xzh66#&?%R|p< z946}hDAY%llV`&ZkmzicA!;r0=5ws=KmHvBByEdhAJgd`_<8+pN4a47*BEOHZ;&G9 z4=R#zot-g$YnGo8%f1D0)JW$5n?GOyIyg@fbDKkU@uOB0&-?9pmj-cwCq4S$-!5AQ zYDw1~cK?STI!d$jG&wS0pH82iNufxm#{AvazFU&!jqYTjr{qVWK2egl+_ddJq1Psg zkb$DdenRfnZ)OA2Ds4#+RlC~)^;~b9iLQ=G4E{;!wXMii z^mQr8UTm3_tM4im7`mkM0(4&#>|}6D4Asr=Ux!jE zw~CJtv6oifjsJF!!;rtmsBFp!6edF+Rnn+O2rQR}6 z$h2Wr1W_jbQ53`@(~dj-SSRZuv#XV4u|mME&L>-Bq&x2S4tT>pEhF*RFXeZ4V}`+U zRqnEoP>U}9s^&it^%aFlKHrs`>D#qdxz3hh;la4X87ZGY%> z?P33Bdma4n8|#0`J4NcheIyDIefQqh%iI-Hiw%E>$2XmX9dr_X-=0sB;QT(LhkTEb zQ^xl1bapGR(crwIZ%SWe>hp(tuHCaTvU7^nd(m%Utv~c8|9g8kJMk|6jatbc-0^zM zf<2b4w?(NAWhDt%Kh>Y4x_tT}RPKV7Afg{@zl~L@bR)5Yqsjkav*=&08Y0}5X5UFh zXUQx)ruKM3A1xG)+*{@4E|T(2-A;;IbkZ>3Os@YS;bBSOZRMxmx%P+2@#cREZ~ylD z&E@=7tN0&(|1Qw|cm)I{6a>NjzNCnB-V+Z+{l|^Rk3}gVf{aRQpNUmG7K#7C^wL_@ zL_E$LWJGapDl7Wb#;FVqnSk*AK+-)Iy-J}-#5;IhTA8>&VJWss z9WjE4%Vwlh4tHFMxK5*nH7v!WdYxOhG!%;*5ERjBNAb>oBL{>c0#(Y*tG-Cdr#0!0 zdB2BPLyeJu!f*g=!V#0fSZpu>^B(MIFb*3PgPf@OWER4%J&?;UcC?Vh7sAW(!fiQP zsg&WkqZewoRBK{JTifYryVc|O`X9Q1+u2%|N&kN=e)qRCJuVGeWWrq!XJeXN?Y%u- zuKO(kLjC!9T_^E`;_2V`+qeAv+_?~iUyh2p;+rP)($Aso`De|`ql6%Um zJJbjuVTr$zleFSwIvHeg&JjaeS5*KKzrk1|PgeI}2j>Q!CA{4siGf4@n9_*IIuwDbgIv1jtBuZkSqMwdo?0hXOV& zN}>pUI3pFppCB2>%h4K`=SNv)+tx>|W|&1!mS@?|$#5o23D6BhO%at7lFvL%Zo#w#`8bF=rR^arfQx4D1+E^+4$s5{kEwDn|6KlL(Otu zsICluV3eaRI!cyd%EL2O=7jH9Qo_W6XC}o59pmZ@y-1p9;SpRcMc|`cP=u*#;*a1` z^dOnFd2Iuw2#oygsN#3Eu;K9B9>@W0;?Yl#kxB@s-xa9^vQ7jwQA>n(G7sZiI_Fn);cu z8<{>@j>NCB7e;ZMpmRj2zk|$NG6H9{=T$EvscsUy+P(}D{QGc=(_~j(UnFS+Bx~eh z$|5*(*gFqjR?($1c~+4n)|nb5ky}kR^k`7EU~^x*HHnQn0%R~Lz1iEh-Tmglc;bri z*Kt35#aWFQn>y0FHrkMM4BUv?(oG4tEydxTHvFjj_J9W4X}XMU#{&pf+Rjt!Sv`%X zF!7nDiE0(n7mpQquRB+yl5jz z{+0ky#NOul#aF_Ig(GpvR*5DF2i3ParhnrP_k!37A43>!(GVN-RlJuYMxXGORZLMe z?R8ut#nXtymxF?^_8c7D{3NiR5$kcI22m|d9WGHe=r@fYxF9SOMd4U?j0xU%mP$Fa11 zzS}gT6fAF-NLMyu`!jGL*XNIs*PXf0>xCq)U-R*n;8`RFGwW~tI0+-)-gmSs8pf;V zWU1j#bi#lmj4vb~pum<3iM@C;29S+sPApWi62PE|!t4?KkjYST`eXw!asl7gMHc!} zMYE??37S84ZtM@+6Gqy@G=hy0s-<}tYULy5pp=Lq(gWO>$}B2M^{nN;WoPE6ir1>= zB3BHXW%;Wg9S>w|3ch6XP4idh1i9rHE7C1cn$8^$GE>tdf34@nZ-oKB(1)~qR7?Jn z`Z5Z{B<-5oLO=`>+8dD6NTPmwSyOEnS(X;*7~WnDW<_)S!btjJG_SGU>X>-t$%WvHRYKh5YpI<6#V zoK9hKovog{Ce{1oUuE}1gHMgI*P1SEcab)Y%yviqayW=*fbMm)g-X(QO8$Hv) zq{B|$Xuv8ZM_{2Bzwns!{RgRi84N<#oJb5CAuq=9DRXcpiky`{F!=_oeDhu7e(#l?mUWU$z@Ew(P12l2xbqa4|Y z^}o5VB|4@=em^GJp&wirf^~T<1yFSt^azZBcI)+UL8Vj=V#tVS5XY-4R#es)BMo=8 zp1j4zP@lDAWgQ|qVC_&cgA!c08|hb+LM{&fS+7sprlbYWS$%mfaclu*!RT&nX?@#e zcDZMS_tJ2JM)_`ar)Jcjonqvan^KfS49;nOjmuf`Ksuk#ZwPc(!D{&)IpI6H3>$t1 zt5jbb+mbro#_+`v7QtI1{>;`47rI|<(qWstb?-MO10o&9p}5uU%$b8uflCYV+%>FD z85(KOB8zSwv<*={%VCyL*g$bh_O~$Fk@Xp!$^s-a`HJ<$0)$o%YoS@SaqreP7XEU~ zAH<%YHuBD5Dufq&<}~WKG!7m#Ze2}p>ArIv&TKtvI(W!*j)m3(o8(}AWtS=5v+F!n zKChS2Yse0fx?{epFlaKKy*>?+a>tg`l~%iRLbuZaXxk#n(LMIsC+#ZT9zkGpQukBU z_kuXWLNj9M=a7@|I{gzK9u|Fb%G_3rZ_lIInVuUSFJ?6gVhA{i07QOr!*CMxl8U2K zO9ZaBww^F$ou%_zMc|(sg4^l?{aNo3tH;}UlEfPNJ}oCpGQWl4bKygz%j|hIe`Q|Y zCWYWu5mJi+-_`=rpFd>=K5a>AHCDpIlLtF^pc?Gnk^CBdCpemO=uPx z+GW8K&v`O^J=oKO7{0I&fzO&_d`(bA4TrZJZ`uny7e@?Ue~Z=uL3m=oOQ(JyH57=} zQq_XhPJ!v27(fUnrjtz|X}0XeC3eOna9C z)Z7F2+D+f26@l7;ZtdSP#Q`WVAZlT_U1m6mF#wkx^v>pkU`4pmN6fo?^N@`ILID9C zL`aDdeRNCveb!jLv()s3v#<8QKl)zB1S>mSPkD0+72Zl_0+ynt4ddvKU5b$QNS*A4`A9 zb^b{@hzJy*Y|MIE%<3u*VQLLk>@ZQ`Cn5BNs80xhs7#R~Jay=8^yr;A-%f0dCQOa_ zO}7c-(JD;eMNN1xfI|lWo*ani91iCUaP|f&-vOVsK{QYzn)hl0sNe73K&%`7R|p7c z&*9@hVh{v~GzkEyg3#oW0@ve`2mtD#=HF>7aOsRN>7%M5g^`e=NV9Co&Y+6CLB({@ zSrc3}rct@4(yUQ-7eITQ4(TFUrfCaomO-O)eBQ5PD!x3t;nd;@?)cW_F_CGh2>5dU z?pZvH{k~MlNleIj0Ap3e`D4_H={3Ks{Dv%5O029)tgkC<$(o%^#KDsEHmxKLW#c=_ z(z(Nl9IC!8xGUlo0&Ug-xUfK6C|uA6;5T8W&>m0*D>I4+5c(Dc_nMjcFEcZ4BO;P0 zD-$~l{wy=vCW+8S5C_pNx5CBtIO{)c>0RpV5}QaZ+-&m)mnz-tEZ6LuMI}$T6o)d` z?qnY7)0CN~6rFn`p(LYJHtwEhtQ~r%R2hcni0WLO^ zCXeu#+K~cKun*ZKvQEGz3|$RXx|1gyBPNwLbtDQ$$%y~a9`B+X|Hv1(#~%*ni^t;v zA{2%r4uIc{KeF=$&@6ycBpgUA5$gsR7L|#8LkXA!!*>=6Cl@^UA>3!XXI%P)F zWq96aE=k^&MC!~nw10PiWV9|I8iJP}hq6W#_GM4v^a z3W_7DeAdp4+{{G!LlePRj7=y)67}9ka%)?p@J6J9bTY&%a()zAm`%n}mBMuvg#(oN z;ZeP%={s&w&AbuS5Y1IcUsL%~9Y{?fqeo%6MDdYQ^bfAXBqd9W6{WYQpXMLJbq4t3 zF)Ew~IGO>gTLitY5fGXq9YqKLn*o4*Mw{~HTVOh2^CD2;@DlbU=Y7Oi@2VH>-j!jW zS%E%KL3|S^y9bORjsR2@1*}&Bsv5Q#E1!Q>e%xyScW34Ld?3!MqK&F5sHz&)f^Hl} z&fiz<;8lO{acPT|kyx#oFRMP1{D?*ZP0bX^iFTbr!0iwS_G8zQBu=fjE|q;@W|p;_ zTErKT6+c4=wNoSX8g&1L%Wt;|ULvBVEme#994hq%5>KJ9IvyH52-wT6f9|Y5mvuhT zD>&e5J*X}}+N_5y6xcn-`*c;n6=sm!RDk9SWntjR$x8IeN*S>t+?R%UB2XxDq^o{= z1Y^~g8ltd57zR^QvviYqcyUAxHtt(ZWLg(2L$K*rX`{nYb(twol70|(Rdv}^b-Q4v zut1{>S8$P#8}}NIL0h!+rbEh4_<|%E>NrP{=^Dz z>`S6JU7+Jvua^^Mz~p6QCuD`%Ae;#BdZ}<5%p|rg z`UnMhk^oaD+mjezu~|hR1`w`oVy9$pCa|Na%9h;jePvLRCZzn)$~D#N;|IhNVFZ=#p{+zgZUL z@|Fc+;k9B5sUc#E1V539!r#KJr_|DWMx2oR!e(Au`5$`92R#=_0)Iq$hD8v0pd{GP z124wIcem>PttXgCR7PWiK9U2hfTLeQKs5Fw1ct=tyU_@Wx*?MCTh8(cCiO?Z0Ur6z z*oo}@)Dp0P=Ig}(kaWDNSSv%uHK!t*QO?Esu^3o8UN~tGRLj_=%S5s6%Ir57l-l)h z82wbj{2J1n6UG-95+l4WmbEQrF=!ccZ>c30OU8pxux%N&4>685F|`pSBVe=48vgT} z#L0F1v`4vBWX|@9hn;y zo`ms9n&K5YB+Y8V-$)uM&l;^mXP1`D&=s;{UWIdQq1w`2CQCBo2#5n4MjSwgPjm>X z@_fFxsz!q`LLFjBcyJg;A-Ru);yQVxVHD~&aAn+l6%S=49s;k$Y?fXbKTmsZC&LzU zrd_LMq-yI8nJTU-!{G`8L3#kVLLlNEP;Om3kk3=&&KgN5(gp=EYu}g@85t&Ie@2>o zSk|#v%XMfkyool8M^dxFQ{$khEW^@Ca@rZ(({$-s%)XdIM3!0AFhzDV?n;HWj{&=X0gmO4>yw&9$(%0cS_6M=0Cju53*a);K} zsC812ezJfcVZC|^x#7gdUdZeK<%m5$ymUPL0yT3AAd_R1x zvI)(AckTefp^ zALD9I`=o&@lsdQ!6~3I>rQ#;r!hDvrj+P38`1G8PUz}NO_Z^6Ny4$;{d>3l{Z}HfB z_z`D^@{fkdu>{h4)4Lm|MeK<^Z32n&j^uwV%+_!~9EgdW0qB4Wj2pmcES>nM27lOb z4$IGKmZ%c>y;H?aov}S`vrm(0n-yAf33j$2wI_D@DY+NR*{58(v|GJOHSqCvJ#kxW zZ}I)a3puQ6-+BBF!i^lrgYk6+MLYP#fuVd_KY`5`&2v*!XzB3u20L+7J=LTO>k&=? z0mI}3M@_jiS9Rx~X3oXXGAiQF;TnjTuI8s3k4`fS7>5C!7=Z5hOEu5rBJ|71*Cf&2 z$TrVQ6ePp;yk!*@k;=L&I<_l@w`3;K75aX%HMIM@ny9X7w}q$ZM=*s+Ua6jmYCThI zoH?PUYPT{WKdR-FQ=`Z7xySt~b-_M|rMzbq>v@j&xt;9-N`WHww*}mSAII_q1PvQ? zS+_MJQCWFSuELOb0NtgvkJ{nqp2Wqa^Xr?;|X zC!TGgK{vun73hPCag_tCabP{{Vt9siDt z{uO%aC;mO=v`r@Ln}glc#Il7Gn$Xnc+U5N?F#_@vqKF|Cc2p)8O9-T*s*Ont{qw`M zY&vuI^A`_ID-)JdwtqiNx*n#gzJ^J#u4`dp0pU=vbmsTOgD5d@xRF2<5=iLioc=ls z2U4*_JdQ`+Nfc5M5C&Tf{#)aT7;MyHH1;NPFo45iiuq{#L@77$>2##?zWhxkN9^C; zq)m$TLasytg4AYem1?Dk3v1r_gVjonR^9b&Czq{yk!*ZoOtEwSg`7{nMVKJ!j;Aa39h#aXBFywW;+eI;RhHcW0_#RjG7Gq@( z24G@}MVX4TcwU`Q;Rjz3#zuqw#!_W4CRXq6G!DD0SWB`|mN z@%~z`Fuiz+cHloVl&TUO?&>O_ll*)I0=~QRV9`J_Dr+kz9(!d=u>6}dTi(+FDoYtV zv%*k;Ald>w*5kocLl10nZRcoMb@FvFG4loZyUGloX5~BNbh`7H6g!5`hq8NMQrg)YH6)RunWan`{*FW!H)40vjDtCeUiJ=2&=g$?YqzZ_eJP9GNON$)q`>|p(W6GIxDekTsg z_F|;eaxgc>f-(5|6iXC2{^McUV;TN?$Gy~)NQoL&M6L||nVjRmyGb8jCD=9$)d?xK>jdnaIGSGi*j$kBYs=hwS*RSYSe%0wtc6`*q z^r+?Cw(KX+azO1aTa|iNAobJfnH;|jB+GK357#H`IoE^?UOG63a~bqK9fyxlildkx5qxRPHcK5Uz|Q_a0LH*F~vVh zYPi-1nyJnrZbV$A6M_>MnOLm_PB+AX+_(#`cs`_jc)(4PKPR1KgeCa55Tlk60b5rj1sc!h6vyS)+6njmVZVhBZz&kyjM0 ze&A%Y;GS?*$SIi_ab*uITk@1uDcRfpj5^Gngv>JVxf3JBSfCxo9%b?|)!#bE$tk>y zlz(bpw#aWO#(#PGGxqHzr9iB!;%(bT8hqwp7;Lk)i$l-mi>)jl9BORAY`efMiW8rAwYT|BT zPHyT$?&N51<7goxC++U!Wbejm=Hviie*X+W4juwVyg%31HaFKcU_HwsQL|i;%Yh|> zB_lig>+4%$}; z8b)DL6SIMaY6vkcJ-ajotsvCPPe@FCZfY6}6OZ?k9vh#UubWG3XgHgI7N?Mw%x97F zn9R+d*-1+<@@e(x{OX-o4LdTA6mDc^PY&-zN;R2x_u>l!PGR%E5U{%`vW z27wUa5lwXD7Zw&Axv@u6o&O9%pT|<4`hug3M4oy*9|scOHxqLs!_n&Wzk8hJB)Q@h zKfVvnL#OSc0r`V7`?Ur6Lxeo|M9{SWn@9;fRbYPlYq=y#atoq_Qw_C;$Wp zr!xU78jirClFyZGEFO)4{2zs7iA)?A2@gxI2^s`O!lBoRatV?}U^kn}m1_osAfS;7 z!=l{El?u3t{)URRSSw{pQLsaAaBbj_REh}V zQUx>^W>Dy{xp~jCxE2@7Gm4d!xGmS(E!M`;4ZS?|x7u$H=BB&bf9(#0png6xOkzu5iW-~T@S5a{1C;{?`wK|l%o!C+L*0rC)(PxSktND{L9VK~x}6yd~<-X;-b zUyw{AapPr8!|B4UO`|dEA%iadG!?n-n7T4%ZhWhmCGkRn=2V`@Eaig;2f%ayBI^g5 zU7t*BRdGbJ35b|QDTO9LUD7bi;)@=^N?C?+BmGIHdAiL>mbn&DP>6Ng*-4J`7{kw8 z_j05|v5#<1W(j_G8zqtf{}G+WPX-xRCLwDe6j*ZL&jU&@cvZ!b2xWPRkj}EKc5OIC z9*;E(9#(MT48mLnRRVWju%DkyNit19Y^VQ*O}uCP^Jb5aQeFb zm)?ri{6 zzs6(4ToW$i==oVeU(f4FoTMM~bDO5S2+4%5WTdW6#&?HokweLgi^L)99s%P~z5q4-LZv)v@k z)UeaGWd}xf18`EkCM)7I8=sY-AiX&Q=TIt-c3LQ3n9s*CME^3bTZUXV9uiVw_)Mgz z)B7CT5u2}Xxw!rC*@pVWLlmC-2-V>)uL7_KLNg%j3-WP{Oovh5<2yq$cKgb&At!U) zzo-dP+cpdRsC{q8sdf*0fwInnbLh2*H19f&Gpt$7YD@1x4A!ap^c6BPpubX#!fVve z`#{Q@^It#uA}&=v-HAoed=>8beUT+<@+8E42}HmWFN>G#jrGU$m-|Dc(M1SMA>9L% zPm^U1jf+(G{0f#IE_~(gD0;S;4>>OW`tNC66eoQ?bYux>59cN*2j7{h#KsVg(HKf0 zVh6w>)hpo-D_8|ML{tamg}jkIw4h-(`q!h9;KXH$@b?v;SfmCCo7r6GUZ$b zdnIBQvxj}nRf7ydlFs3wG#^Y1F|?^T=y;}mn2B=H^iw%(X|PPXLsWom{Phn~=*r|r z#^msm;vC3u9RE3B|NVu9wD;-HqYq7>)Zb`SFE0ofC3){R7UR9Zc9#EGf(0%DZ|qJfs?VzZN&ey~J&HmGhue4c z)%!90lSxXvfg)+9DYYCQF)*T}F`Z1OqN-M8DS60wN4=h={nMl3pP6cHR5R5Ef~Oc{ zkHrTKoaGn|<77MBD_3cIc?1u-7`OpdZgy@IT0z(L{T=nReNq1#t&27Ikysz4=Q=PLk z_JKC;I-W{|>^qOFaEt(rNY=evP(8VKNOw8h+iE?wUZHc6z7ooKRR{6#ufWG{lm9$* zs7kkv)SfJWAn8!cwH14xJO&jceQO4-mb|b!K{Ejph}O(M=Xj4=lMlPA03uZ!;6s}s z7Xtq%fkn1YR{iOG5=`G@L;(5*xubit zyuRzD>bcRwsC!v{9a}ATuT5q=!}pKrS+0M!vD6X-TiZpfJYz0(Hb5NBa)BkqtJY<9 zokShZ;f=Yoc;$lKXLD`{p02O47U~7r%kJH3-`?QlJQ;m6Nz@LDh@im0#(5CPm@YeK ziZNVibj=gNE3X{w9D}5Lo8%K;mzsCO7?L0`S`I^u#nhU5YeseRjHJZR(hmOcWmMz- za%@DzF_`f0(l~8v*IM3g7*~(CnP;7#NU~a7uyl7?z-n!U;SX42X6k+%SHmccy>kX> zC+6GN`r)7G%47}x#jna^MYQA>>yzKbF( zW{Q|O>ss&Vp+C%zRl6!D{JW7J-HItzF#?pYmTsK-Gy2GD@>+C!or5N6-Kh<2=UQyM z5?(Er9Xl5ji8%7QCN(Z_Li`Ev1FyT{bH;`>Y*z=;{$F?U^*a0@8>lXS4>P)#0My9z z2r!o2_7YV+J2nP7wd&GNmR6^J`P-KJz zI2gId?K$*%tCJj#p$}@25E)GS-rXS+a6K68-$XHVN4ke4URk2rH7v-$f? zk&;(3TJAD(^e0vojQ$3PBS1^OLi6v|$jji^kC(-Q|2|i%{Lalz1Hq9qs3il;#=c>x zIW>G{U}(e%Xm?PO7P!igua(?A&7h-liESNm74sgbR-=i1;bWwuO$2i;y1#t5lM! z@#BhW5aX68HXeTV@b=b_WsUX<6G#gSPW~4793hw^};$c7C6(LB-v&BYjL$SWueIw{fQ*RGOLkd2g7#2W*QgLyb?-d zqO`6jqe^>>wL>mzd z5-p5%+@DE%H`6w8C2isKwvTIpOv{73+g{9JZ~T5e84nT>86m8{BC5r z)eYJEjj+eg%s(r6op7PxC@j`yL9r8y`3`1-V0;8IbCW0G2!bH<;zCqnx?3XK3IQFw zE?&%P;W!PEu23xGJs@#V+EW{#A&g6EGEo|w(E9w5o-yfKfQiZ0k;PY!ZIhG3S5(QD z3IztCBEmyG$TnaAka*=Qd8ffB?{u0F78V9;jMhQOEzHy($i@ zN1PIM0#+}0kt&jxD6eK3WUS>W%lH8Xn(+gZ8G*;v%oZnUOShEa@mg2 zT_(dXbfaAf&qRqCa(G0}vAA?@ReE*Vo8tfBmAl^6{8+F1@Kh&)Q%`T+fTU>&h_0tZ z!an1#8P2G(B&4IYrQPsVy4y^6crkg&rh0yndfMdsGbRChu>fagaPj5%6ti+xZtg> zc6UYf2$Z|ZRC9J?Vfs<^Gk|EwfwYOF$k?Ii*!;|XROC@bA6)UomJcDD`y0Mw&L990*`ZoZW6${Ks4kS&aBZt+!uB1V4!;tpK#Ci2O zO@guZKPW8#2H%S>rD0}r>E$vBj4>4FTh8b;R!Ry~|3Sc9Vqk7nF!zlZ?+u7=zUw~$ z)%6;QS(o@vLj4#PK(fR#IOKG*t^N*hsMM`)QoqZBzt!r2{wok(8r$$=Gg;L zzyN?!(2>F*c-x>Lv)eSL>~A}lAuj=~e$5qQ3zJ35(NK-$-7w?Y5NmCob`Cc44Tx=i zfF~BjY777u4kN-qjO>G-gx$2J-+@N0s(ji1sWmrM5F7b|Tk*GA(y9 zpLx>Bt|L0PGhMiYZm$<@dzAkMMArx~@dxnDg9Hb<=CY$nNG7{cr_yRVx`n4=YNlh* zW(F^(Glck#QGi5Z-m+E}ga+zbp+za^`aVJO1)&Y-;0w|6Ddvmc!&P%1WY)$ozq5 zV&QCi^d4>T+8)3(KX>yNMCUyAk5urmb_};j0U@uC{)0o~x%DAFu7p4tKVlPB03#p5 zXn^Fmm5VXrfCaAC6&MjVbKw*}*2;Mg2=xYl0hrd>nQOEMu&I7O$02igok3fW@H1Sy z+rZM-Pb6p@q=68>=M4o!W?zMtQ!JP9EYq8rX3A%#L-eOI{H7A8H&ZV*8{#(W>NZC& zJBPO?8Jkmt68^Y#So0rbw_|I~i3rRlc#hfN0q zaX>+q{);%D_O+xl{@w0JuIo&`dQmccoMnJ5`t2UO9=N0&FxIan_G0NO?r|9H!C${) z@zyctw^9BBpynTrEdoJ%hrIYlOaL&raGhPX@8@fmNc?=Nh_XX=t>TXj2@gJ#GiegB zVwyJ;g6i93<)e`$>VbgzQi8ZOpMT#|J^)yi_rR$4*3mhnKI0WkG| zj?542d6O=BEHGUW5U~)*#13W!fIm3*A?EFWu+#$5W)YAZiZAkM_?37n@{PJHKEHZJ zTQq}ij^_R(-pZEt(F(-W1xrH0n^)x*zMU1zZk5O5p>n$QrFa3LT7+SC-~?+zRB& z@8f%;UtfCw7=^gAAI>phzaUuqcoYvfK=6JIuq1wkeg5WD`1`;5pV}9PHP3RKU?E1Jl>qoL0yBS|FO zTXj-ert@E>4t}C5ITql#55ILSAUnx5`h_62F66ZGNpzjR@V9Ei*q45+oePl9w`m9c zRo9 zkmxB4DjAK&!BNCQ6T>ov;_#u7LSW>F(J@4b5O1{-1Po$i!x6}!c(7P70bEZgk@|^Z zIve8RNS3-KAYUZlKRDv$3iu+axI6z&PCzgK2Soo2ZTTq~B?H#59sqzs(a?GV>tKK& zcw`hj<}m(+U=Rudr`S9Sp+r!f2Zdxu4j(84iRk^jfP`PdxGn^J>x2Iq%%m^ogJ?LZ z?w$Em8Vj4FaHfTLUY=dx6X}b^NKmfSQV;Tr`_IT6!}|0rL7q4JygI|Bcm@)_i)|LK ztx$p2-*fAI-!9^_u*O|U1ytFsjE13LL`+iVJ)M6qAwYU|Zhv|Y)2Ibyl^!wiL-@}T zHdIfw-iHIA7euXrOwm2S#Lt<${^vQkibck&)}2HWN7}7mu4^#_Tn(&N1e-6mK+yA- z85m4fXS%l8T%A0qat_BB3Tmp3VeNicjA83XsVoG6P;P9Q@UfSe*hh({v6`m?;W%X} zXqu}h3L`l= z=elwHZ(v{`j<-{BzLpqf#G^dcjfkkv`98v*Q~iNYkT(RFBQP-)SN%JQ{BvPXfkdjU zLJ6#eTV3hf`66A=T-N|}u+OwG7@0Z|s*J_hY8y<{Z(GP(=UA&Sj)Yc7uF(Mz!*1x* zGEai_{ny0PNRc4LyD@{Xl}e|W6Q(t-91zW^XV=h+qwi3b%L`y1zI5s&MAH!yLR>U3 zo;^nx2!g-aZeF6p)~GBhB{cTd7Ji1yb5i=u$pm< z&>n@O8tBRLsDUBQj>=M+>?;q&SST(Gu0N94kT$;M)CA$=4%spp1^x4o(*Na}v`&gV z9dq&y@e*vZh_X*NiAX>|IjBgq6x1upk@nqmdKDRu>akFxDRO?395&^k9@QShk6JKUi#fY>%7Ege!BkNpmwHbUpe4{G`Z@&6TE zOl^IGs(94uTCk5&8;l_=%L9Zbs2o`T_)VF)xsLuKNoFD(5gF`lsX~LtKtR=p22RAeve@?ftW1T{D*@Lx7b8y#orsV((~sKDN^PGga?j zUXp)&>Jf{bXQs0zh$4uy`UwDI?_+a<3`aJYFc3j-RAbvXcTpG3~jzYiu@c0fpoPA#onYm+20 zhIeGjKs`@OylJEpw!&sxup*B|N~cJs*t6&H>NCFV2}k z)EQhW1?OW6M1zut;1!aW_{$rC7$rvEZ+;9M?|--vw~}J&KwV0Zx6}VaR%N_eqW3b8 ze=Hngtp0mO&sm(LZE7J4K$-u%L@f(kkYn;`v(~xBL;J3}RL8-_>z3$Gf z-0(R05sR}mjW|^h6K3jxwztr=U`(y}kPXLwlDe8%2=}un2-ScbjO;9i=-VoeeDczm zM7!)@W03+LYW;#|f6eg5k;b6IH>z2VJ#StLng;PA==$VYYn&>QtA~U&R}d&vr#GH! zQr!=X@2NLs6<^wM{L$PXKnAuS75_?C2jj{9w6&6FlD&HXsr8Y=`yY#y<}NmB9@xN( zAO!L9Wg=C2WKPr6QI|*bH?katLoKksn8b%H9a6 z2r`x!cC3CF!WN6mv6?tkG0CiD1*k{&t{IsNo ztvy659xkEV4CU=BRH925Aty7Il($4#UU;95u5vg(>rPRSfP*MN3yx40A5j*MBYO6h z8D3J?K+>!#W`Q@SvZkxw+++y<4M3#GY)qcCV)CuL27heR0&|wmG*T`Wk6r zHxY6Kr5P61evf3VbpQh89_b;79Q1PzAN(Nz=$h7@b>Y}PVYT8g2!K;4;B+$yLugUu z->OYp=c~#XO@o)@wxqJzlgvC;Gei-vf}t6MO$dUlkeM^!p1fKd0@WH1&N4}_bb}}E zxN3({XdJAP=Xb7=Wu==Ac6{*=&W7~R?lgD^kBqk!@P@F$$>C_&_~b#RL8Xsl)n782 zCd3sz+}@0wg)te#l-;YNYq%aAoPVZnt)eK8p7KLQ353mmei!ya`}O3rSaP~sbf<`!ncd<4Q;ia@2uV6p z97&#B?L6-|omH${_2t8ex;ovSz`P5xELO_7T8#3iR)V?i57vzPsSML`Qw6@!w}2L! z*?&};s;?0>jV+Dl5cy66t?Om$!%p^^kj@zgN4zG?Kz&m-ZiLld(zI~Y^JB)cE)Usq zPr~+78F~;-H~@}4MgxS-Fo>9o#AR@>z@-g?3qT?R+F3D=0O&A5}8)%9XpDf{%2sPFDhncmQU*a6?yemDaF!%(0Xu-L!!GkCpNNOJ6rO-~xovE7em89+R?EWgM7jm#4Fi(Nx${0!XKOD_Px6n)fm7t@gYY6 zc!2{S7EAJwqxKSjxU!*mZ9wch3*X&phD4K)N!gaz9mY5Kj@k2C45HilPF0)aGi?bH z9gtT@v8+=M8$9(i;a()@)G#t!urDE51Har>rcHKjLHBFCh$=#cX7%=24)NucOv}z?<*F^qkc{C!wBnddfUqQE8A$;j!lRQ- zRxh4%3Vvj2VqvnKv8|I2r&=YpUOR}*rnZPUKg7THfT4rN;SXhfDsG$>I4xS3oBZd@ z0XP1Yatw7*&W_$%=#bN96l=)dFbG&s?)p7l#Zbmtoa|}0Hec=9c=j-QKy7D5;d-#{ zY4;bm3`HXrM4xQoKY$5i7{b;&o16NCbuYV(FuUI#NRkh*M;mW#jTd%v?eU?m{Ax#m z-mYWbqG~2SKlcDKigvI{SG@7yq0wGyCnr1ieTRr-sI90Q72Cr|-j%uN4iuv3J?u4; zH7SGyRZ*Vf>E8rf@DtDV-Yzh0V9N6oe>?{LC&2FWTc?lQi^^C{%KX)A$-yd~5K@6P z_0-l>>AVs$k3Pj^o!`6P(f1^)|FkX}g-QxHi%u;m<^Ti?flb9g+@!aA@z4RU8&!~l zzO)P%q%2(TYtRU;YBIgC|4zMQrd18&qT|lsCCy25#(UN4Z`L|_nK2HN>i2$mRy{X1 z%$F_vY@Y5j^}4`2{0QzoPK(fWXKLR#Oj0GhD{FQkGqVrtMBtZNMG96v{XUNQ+j;2O z1H6xQaH9_ikQsbi)Td%+0d}(h3h>^A)^*m@vmGsrNt{ zKE1h!_YanSX}`H~?AqVCQ~5qB!L_y~`4*^qB|?lEmLue&Vc!U1ceg@Hj)I+e$@TmC zlD;Xh8}skakYL^nta8a+vZ}AYA#26WPrWnLLw@~?r^?tZn#DE2xv2wpThhZ8<4&=~ zd)uCvAdq5^>gUT81iAB*gDhI8H0k^j`=W17|LIBX?%mFbX+s3pT=Cg_p|L5uFU|nC z!$Q%bX65JeH-0ax|1=eDr?$jQs@%3n&X5glE7+}94ln~$eyXJTztftSqRt2k^-y&i zmfVYgyFoSj28EklvWkrJhaUQv^MWS4vYV5SB^)dOZ;bCTSXNaJtp5@7Qwbk8j9Yu$ zZ{xb}cro>x%1Q9xQhFbS|yEvKGcTQ!<^ znm%~`Zzyj*UPHRQt2MkGaYUvrbzZ<`Vp#pd(*@>L1?|=8_W5_mM&P1+V%UujM?y4avWc zprr8ZejpIdOL7_{ll0|&{OjXQ<=sOTXXNqV9ahe!M zxHCm`AN53SO&&oh%6fNFzHzF}xl|>L-NEmEFP}XFS8wK&ZvW-ff>FXZkBNXg`ggX+ zp|zJZ_y;Ttw0s7$6PGHC5F+}L$CKMRmPj$Bkdc_XcWYDj1<88+?#mXbkZ+y?6vF#e zWWaU#S4gd*S=T7IN)Opvz;GW2YW>Wj@sMynDG(Fl2o>x|VnalIGGJ*u-hc4?Jj$$g za}Zx|lVG;>Dclh+-C0s;4rzSY1!Q<^$Q4x2)&~O7Lv*uN-# zTz=KgSvIx);4F{Fo5HL+Mmw6qo_%BwEBqLErQ5T7#MmObB!i^Cf=g~tfb{2jf% zBrX>o{}x6X7pqm|&D*I~f=|uHD!W2qFWX2p`4)(?tETixB8!NFyAxzv=$ z!=Fihd#0)Dcz93>npkmRSlC#JEqmS5hF`WN_tt2+pLaO>Lnr=k)&-VqWWVO=;|F6m*s>Lq=a5I$?wd!O zwnuRZSP{7w%5{{em2u}8-c+i; z3F(Xf8Ty&*L>T>xlJOYesX{mFY~Z~R+&(pNCB=V91k?s8AZ6D+w z{MOavhWtcQ*77+_eb9;d?=Q3=N2ErC9jGXnr54)l?2cR>;2q&*JSs_6a=8gd+{<+@ zeL&^4v3&GRn+n!yXA4%bKmur;{4~GGf6O1l%vipn0|5YBtsNxJpn#7aJa{J9i=%@+ zat;wmAXGv-*CuWeZqUO& zADtn;pT?K(h`EkuY6Wq{k51BA?xAqB=%9#b5ZH>M-s)@w!L^BdgtAwEBO^nj?b zqU^N$BGd^F5}gGMr`A*>ER|~8oN=H;BPFwtPEql9N~5Fs9l0-ROT>*-9&T=|E5mwN z0O4T@N=*|ig2#hqw;eC%MAy~#=a(=BNQPIYe2r!{hVlfHYZBY55{lcvOne zM7u+(MkkD~at3K2s+;B1)zHaPZ+oo#%t9)rcdlt%?KxKJ>1rNz%PC@#3=Za?A1R`ZLTr zOOQ?i2%3xq#H!$c_LK6df@CozoDW2JWD+rOumyeirTBUPX-(((mMhO#eAuS)<|i)- zEqlc6h6cmu{i8(N;>{e06=j9Tg$agN0USS~qNClIG)!KXUZT%`;~`n^tCsYxwpZ%7 z#1B-jsXYN_xkPeR3o(odkcj>kwbgS(?Z%G>ZwoKFeocIuB9G$2 zw6k#VZjRjX_=%2NQ%wC9;)h;Ww&TDXM3TcftBH7{|2AIyI=j;Vu-6|wxcnbQ`{TLn z=%i_;i(WWiWzj1o7FZx53uMUR-1#?^E^3e?;K#vgi9Sg&Ud5o)uXiMDpxY$n~}q!b(oG2~>LX@oTSCYpE@3vB8b7$QH}fRS671yRiI zxV{pTSq1C2SXw2v+9)ZXJo=FMhKi{I)KITD@>-NV5$?gI>%5{a1{l!#yh`&8PUzRh zTDFHvK8(C_&b62L=HlsqIzYu_VmJ2b_Cu=i`kG7eWX@i2kz9~MtytOG#hRHR;tON$JB{GTY@=5X%43i$s9h8l zWz0#L+G3utSfg}QNCaW)59XDKKN2ckC*J2Q8?jB=&BX0qduoaG-$n!)ethl))_J=R zzFy^hLY+6Jpe4RFZq4-4gZPsi3E0Z)!^$<0oRHRT3e}29Dgi$ zs$n8K;CSO}8zC(ry^gQrT{}*BriYCP7zYHzWpxOXS9p49jQRroCJZ+eQA>3bt|unUDh^87u2IJ ztUpDB4MH1O$h;eHrg-WbJZuY(YQMod$6Ds8LXA-*(N*BPcz7Gdtt(ry@?7gfj}i&* ziq*4KqW^`$|4SP=pok>6WAo2$Gy}!dBrulM?7O)(xaaWf+#BwYy>Y2H9-FO~v%46d z5B^@>$uj=*YAnKs#-9J?EktVe2@98ocfv295sSqNaW*MGo}JxOwgS-soP5?NHe9;g z%WjMTkfU&K65-7J%@t2a=d%L(Wp))5z%2@In^0&GMSxNQzDzaw{@=k28)eFtNB~M< z#C83F{3~oUM(~`Fpm+im1``&{gUmleba^w8UE}AwD8T-~g_pL-L4444oK6P|)yc9< zCLkHb#tR(OdO5gEoKI;Xg+ISqZb>%aSs254ORlEyZrVuEO>mD5f3bw2z<=A#%a0)E z=qm@a57es7v@1jmtEE95{Hz+uuV~4T zASthyAGZ-A4+ z0xPXZjFRthG1v`|fIqa%BR8oDmnopSTDby=lfT}*YRcwmI(?&!BJ99e9H;*4q6o-Q zc^R?;i$bm?YzZZTl;6{KbzEj50j9<-ugKI87S^9}<7u}&|8f*Mfk&a1QSA#zjHu3+ z`o*q7-I7ztCcMU7Jknv=whj$%8biOdWUtU=?VcU|SM`u_#51oJly{CF1H=R!V1Ekv zI(gJpvr|J*0-p0L8vJY_9@i(U=f%U=#~&$R2B;_g)slH@{!H>V8>MZ>Ry_8vvh)=d z@qHh5ebJKl=5wFA$Znaai1Pri^N2Aj8U~Dl6ELQY3fKL{wSk9OE?!?scv|`Q)s<%I zsTV-EE1_@+pg803z~j+sHL@Mj+oDTr--yAVDX?Tefu6$N zVjGb;f}m+53IL4DTM|j8B8Y5ZB2|P)z|2vEad=n)kYA0QnM$2%I|Xl|4EhV&_DrG} zWJvGH%l$!ua)W)864>O;z9E)~DVrymdINXz;PWV|f`Zz5t73Eji<>X!4#NKaj0?qh zmtY7gnFO&FHf*0GPFq8VRDh%KO!r}14+|+Ap|p7|WR%L^6Mz|LkRSp39Ozv_NBCCQ z@ks#=n*ozEXDcHxVpdDWQh_20fo2hMH}^IKWIjaw3ovnVcVw|7VyNPNz&a0Von;Gp zj4i0A^s}9GV-COx6ZpO;*A!lTkslK6CmWY!X)?ZHomP-1*9_vY8E-!D!wSx-A?5yo zovs8pZVL3|q#-q^0%L56CIBYEQlRr$dx%mUi-jg-h6Gauq81uizB<>b@%X$z=F_Za zWo;PYyLsR?r4mvYZlTAPw;%gJGDpALC3>AguQ@mwy-z_THrcc034oo*Zja3`xg{}|v_2Wp5@`L?X@|hf?=v6- zH9C1%pon$ZRNTvI5Lx$>uZ_FK)bq01LG4{Vmv{AeR1?eX6s3-WN4zN@VJ21XvZfz! zMB0S(OPJhIjgZM#c51%aYS5SN%9mx^u$=@kY+&`jjcT)@lH6xJZtRVqu@fEL1sS5GX(l znF?V4(YS@41ETOiz7YUl49nSO2sW1i07oRIsYu^$;nfr0O@x{@f24jNf~~OG+qXrr z1pX*W+xI|+mD?}f@AvTZN zw96kB(v%<`sre&!kcyx9uiEvF0$Nc08>z^Q*}}qDTz&&#dNOjn8!+1c5PX zV~hQz+k&?yEa!Ubo~R7*vIJjiq|fTGgXS}uGCqvYf3({qhzFq|p}^3*n?I}nGiVvM z5w*BM-=a5r3Xn!;YU7%j2tRIkqsa#B1!Zc95AB9tWv2tG-T7?TSiw{9J41kBIWO>DW3RjT&U5V>%R6)u#~DLn;(3 zsLb@itz{BRb~LwG=R>7Tx}5FXKqV^KW!_o?D~u(ybr3E`1+g3{wE!fTcB{9O~SlbprBx7rFW}Rd`SZ@|b-nzQky$g)@hb4M zJxcb77EhfH|2p|AsNzJb!YLL`v3k3qnN+wdxkHuKi#)C|FE+^*%cBYmvNJFvAM4MEMG=s|Tz=rOVS-dA-xTL{sv~@-) z&ZImv(Ka;*D1ag;{+e_2T)(UQsxz8L?MpG5#BMHUaYu&=neCl_k?Ci@he%AA5;_q5 z&y1~d8GE`4?`1STvx0MBiFxj1tN#EaJL3rU8y;L|tUvmxT#6F&fFiN6{5I6GEF(q* z0YiMdzKKs4W{Ztoh+fvNxUqY@f7Z6=>)FJ4gAGqEneg4gmwABHLm2KbOK`WKhjBpw zOohw?24XYg^2+8ML(c_Y#F*m7?*b5Y0OG3QwUY*DK@z9A1g<6jNGvF=@_-^aN9ApE zs@p$mhtdkeL%F{WhSaLN4y#DOR#QXIJokA0;ukoe6DXATQ;0``VPpKD9Y65kC+VpX zZtmOQ(+9`PMGuGRec5DqP~;$@>xipP&B<*VB{?$fK2xz*`SOp%Pn-5E%7^kHpCJH` zjj@w;3#LrX>E;8zXQ(5-EQD8wnnmC%mj#7eem4azj;T_?EaTXo)9_A@787XbRqc19 zd;7}0EBn7_L!pQr{Pnuc%_NF|DX_Q$@cP0kR9^fL5T5<@4AztyFeig%nR+=1n)K!7 zJ_nm{>mW{id;jqEt3-UrgVr1S_vt@dXCp83#ckQ)d$1MX#mlGzRtNg?4UyHqQFuo} zS^T4cOO8SbY@t0051qY{xOwAr^3a_}Lpw*rynus_??fM1wRwX*VgGHjJ(^f`w0&EJLjdZLrd^Qvcn+1S_qj<4aO4aECawG?kq!Vc=1CEr4!pk^0 z&;Y^;}uj55qB|M&~Y5-#8 zKijo!dkopBIp4pb(YwR3zO(RcDfJ+}ZGW_2`u)n*Uj+H*o`2WFJLR4P<$u{zRH($7 z4ehX00XuNZnDwx0gvjfx#lK1o>=QuX;9REMnxRkngO46RrV`lEJMc0;58a{4-~s|S z+;ofC#=9W+D@6cZau;Sg2H1cxxk#+T6s}dmS*z5}PEr?%yqFWNM%|;QTCxbNpN`{)@&t-Zqlg!NQAuL+Pez() zV4f!gTjjIjN2{G#Y6d&!!YJqrj}?@ zNK2@F&$&HTiVa*QsO#W6VvLnH01JQVX8umMgLDKw6`duUDiUoald3g~mCFkbK60*m zrtWoimXI^P1tKi_8ApyW*^OF=3GPnXcinmT>nXMMiLsmQXvqAVo0tAs;6;Ix-lby9 z1BBb1J-yq0+D+`iy(4$A6)1mEF0{ZJlM9=ThHi#Z@9*8a`I|)Ym$ad}VDe6M6ak=$ ztT!2P!@3HTHt?E?-QQ`ULB3N~(3324@pg2+^)n0H?RTzuX`RA~PzuDjoob;rfRPRY zLIunQ1nHEzPQzy8xhC_470df3$<+`?e95VO7lp^q9ATbhwt%m152ly{)=r>Sc{!v+ zuCgE+OKm$4@G__ z-qj5Z)`V-_E>T&l>hm82a!F6|*=o9<(j=94o?M*;fzgjLS>}9E6!9Jw?MMFHWnXkk zHV=vW6hN|hZm2i%3jiLkmoIhEtx#|sAj>I|c`|%Nq?dvR9iz~MX#o98Uy2%!eGbl^ zmph>I`@V!K8p2=+Q6Tw>Tim%ePTa{%knZf~>^R+Ju^SHDCOz6H9~}HYfFe{Ec9`Z{ zCoD!o3!gmWK#hagmMbnt74>9p#{xuAz7(d4dL8(v1I>&WUn~w&AWN3{vY0!kuhdwX z7z%kzt(j|5Z9demCHnWH(GcOeDOlVj0O1Byi(wgBO zI)w+|w?Qudmx+5n)_UEm zo(PRsUmyrf0R`tM1uGpZXNmy5r^o#V(DW~*kN=Q0vl4?&>FSm(Dzg*QhHM>K1OA*z zh@Zkmq=kbmf43I5a$6do-`2pBAgy#oy-)6UAcLZ79NLL)GOrn$XLpwMh}jQ-F6ia{ zEqJnUR|4Iz-g$d~=4$t$;Xxlyg$C%@+pWQp2&N7S5b-voS+C zYjO3;xZk!uTl>Tlpp#_^wDl6L2J^1wDdk{e(q(jGp6^`vHf^`k80X(~PCo<(!RdH1 zQ9BX14+WzB$fzJ;Y&SYxmiWp&8a=poWs7E1LFJpsUJK<;mwAfnbkc+&w%LaMZu{~x zdGpi!q@gQO!Re=UL+d=Yio|)hc>9Rjf?!x4UC3+7AuU!#K(AAU8iQL|8dhXjeVI@g zPy@E=oJe%L6@BFk0IG3LD!^qD()>K$SO0M$wx5E6@fb|t5KB0C+3Gqf91Zn>t>LHFm~GoEu%3C#yGK6t?_eUQVsL`%x%!OK*OjHO)H%B^x2-?3 z%pf${>=oG)N|q^6wzV*NTQ44F{1Fd5Wal2f64sU!8R&w4voh$X!GO{^j}UdW24IFq z@LM~|lA3JTKma|Db)pIY^<#oPtPDw-UvxG<8MJ|U7?qiIs(vaLgCZf_TU<&tGMsTP zx6StwxqQFT!*srUhUPN~4QpoP&#F6%zF|M-NJ}Ai=<8c|S_T|U0f@sAWyuTxeX_f* z4DpVFygmg+HuRo#P$Ol+&gLF01X(o#zz_|^Xp_NuOG!6 zgwrtirX?WPJR1&?n364GS{ReL<8VPzSwYz0pu7fATi(t6;F%S3fPxK(L?K{U+)03o z#B91H17gtlo2&zo`m#ugR7knT7p$`%wyhxaG6KcFU#>Pd9ll`4k@xA~>K_Ij=g4)P zXFU4$xq=^ZiXX$(B)*s{dMdLdD)p!@3(_6P`~Dl#nT+(ifXoK)gk3;S37|m)gjAlQ ztOIvM7Aon9C#(MB!EHNH+eq=dcLf^@H2FtV#&bopkXk0{DttR!%^fD-La;Tz#QhWq zt5pfB2&vktL0Q!nFp&i~q^T~xgT<5dNlKamnz!D{{7lmz`NnCT$B*2nWC=c|5v<7E zWfWN|1*|kBtJz`1TnqZr%q6%}Id^zJ%}YuC56+^1ro^{5kbOA`8SEgov>`9(yv$_EwElVs#Dzw#QntR;ijk_!^T zp&dALKo>)L$RFR8d^<*r5=%XOTv`|7>7Y$OL*L0Cf4ybVs$-e4bHsK_)sC!FdONRo z8xj;g;Y-&2oBIYpH2d-rNDBw>Qs&5H{jVv9I@f9s5EP$oJpbaDjdOrQr*=>w0n=a+ zxqJLwyY>@bU?a^hQt2S9Z3>u{8wGY=KdSB zBeD;#x2`~*X*914VjpF&&+K+HH(=mUe&@|Zqk>miu!2HDSsz zEC_Emp2I=aF?qnm*MnVp3#wLS;Yye-hg%E(B;Z#>@?3B z(|xRzZ#o*Ciw_Po=PkF;cSzy=vjbJ+h9==dFBb%jfnQCZUsYFH-jdd5=tn@!FUq z#%HR}@~X*7ef?QLq zK!zP(NeS>f9zEv7H_buyGxPd!$xz@m&m$ko{h>cx%X~xnL;2 z;f1=1IepfJZ?NenM5%%S5D@(8LC^*I5O^m!kK7UVjmAUN)+O)Fq&VP9ATNL@Tn*hriQ!1U ziPM9xq>^w|-n{{4WZul{WzBEPPP3q4h7G0e^=}L+lZZ#Zjl$^rjD)<2h_5j)s(_JoFQl4H0n_$^hdQ|Z|DGYUvIG1D^M7p$*aF=Hq zSw}V#bXWI$QWk=*-Pxm^#kYopLEA&}kYd*~J$R$OaI2X>BFI-$f-*8!((d=xyJyt@ z@UQ!Ny8GSjB%i)^uKo6>z8|-RuR=E9`Lq*DL}DoGt0@C&$MpKH4Zo)KZTfr79`9q> zJ7A}=f-W%vH-;A#)8g+23E8)Bdsl~KbelWjx;q~yurhooj8IkZya{+jjy< zWEsC~{P^xgsG6+LcrVNh52y7oGRU_I@nFuI(#PG?Bc63fnruaH+VP2NA8wR1YYAA^oZ+Q$8!B{4mIsIPn_byTdnm3=3LJ`89Tr}nSA_)Iv4OI zZK*_);gAuzzaEma$#Kh-M_7H*TLJLu^mcan7WfB*{waNW>sxoqy{QWo71PP>mn9n> zq;MZlB%-hQR$nt!iWZA@b?5eYgCLGP%a}|NfBk0WJIw)lK8D=x^kM8o2QrM@vWQ1a zkX!NrifHf?R9}~}cf@s_hpl(A82E{eKlk+Nzr2c5@69=|N&dEV@D{z$4X^k2-( zV?3L18F&n#W&&CaEKqiT9e-?G_v~`|vA!^qe$6ZWS08=IQU%8i*lnj=Xt1-B zONf?zD#3LhuM_Cy|0YG6454{?#|FQ4SR1{UbnKVaU1W7j)&sO(M060-0c9PQRe9uK zCQf@L9o!&yW5;UZp&8dU?!S#>zw~|B6rSrnF;iW5l6sBvS8wt&3+YzMBj7UF3;6H! zHoP-(Pw79^5~bm+E5o(%ZjuseX788H&#cHR^azbta{)V~i!KuwiV^OSMxNGA3&yE{ zWbwpVqx+rO%%PM|wTFUf>i6}b-1e(~cdqI0UOs-m@Z8TCF6PQ$(NQs?=8exXuW58< zvEty{jP{bo=}%|YXJJub5ERhc>mV`o~Ss*jyF+I%Tz6+{K_SkXO`qE0)aE^pYTv!di+{t{Y1M7$| zvu$gHX2KT3Cm#yU5i^dFbDWA|GSG@eus=*KA3nMyC=VBcsdl0Zlo($|=(kKYIJL@R z+A*zDd@fu;XFO^KdGGqFyE$yvO%|G`zU>VUHGj${p%=8mTr}gB#;5%HvTCB_z*M}r zHv90?z^PHqcs-AowSk(_$D&nUQD3D(y~R}AP(?T@c)h_^2<9;P{p0DDW=~E3&&I8r zx0)Z@<>ZJPMBKT@AARd#(*4kdp73}7c;=hID9sQi3n-bI)vNC{-G1p|lDC*~Q#`>} zK6ziwzREBG&u0IG@CvhgQ4Rizr8jEHR6_NvSBSgW=Svb=((~fS{!sVet zA&ly1|Luk%m-Ek918^-?6o^j_wR=v)p#8gxr)m%Wb%1`;)}UW95CoG>-kmAsRhcH2 zd8_yhI-bwums!VA@GjRSjt;&I3KVeD5(^TBlEpHBa+5P2WXRq|6@h>c&cFqa@5_~oZ2xR~bCf!q#cO47zL z2jJ!JIeiP47Bm6$v)#a6|m`Ac-|MD#z+g*(g8UjbIIU zcrDU@d(138@)^-wJY{~RwcYyeE9^AAHylM6Qgoe70}B*9*Oz7Oqx zfbUtJ-BNp?KJP$-TP${`@R0f;U#XXtwzwYZ_fuYR%WakRTraTyQsm720uUaoTh4JJjeodeTgrwGG_sr>r&X2DJsQ&>eI@&=CA9AJL98Dge^ zVIzzwY@|b;u<2?rBul00-WoaO0Z)r2McWMFu%-WT5(kmp$hQ>JO*dF?k0`lI;3=)= zLbfY8*QkvDhZZno=X^{|Q7v4KTD3Uf+e6ZSx6EIc{b8yT(G)GunzzBH(=bi8;d*Yu zahdwJTdM6$N$WJAa1@2xkPM;gQ8q_XM`Q*#UcWjweWXf~>;yOs@<}5_g)CXdKHM4hPJ?8sNIlpw|Cg2r|dTusa23qUS6*&y7 z3#z6G+$Bq4n9|-x*Rn#AGhN;qa?9CJ5sI6E{5@I_$66n{Afv{ zgzb5iS4oyHvRln+S7MS>-&No)P7-Dng1L#k$>GMa%91?0LF%e)w?W*7_)9Jv1uiUE zH>1e@o#{{D>gT8VY7_!WNqJnO$G!mUgp?4WgD{8PsqD>Q<-mGzN+JnJpopq|qdeNp zX9UsJ)t+c@@&EyvC1MyP_oy;gni7lb&=lr>M@~5R0>{hbkae&tXnn@gPjW8d&-ye zJV4pJnvFaN74+pXRC%l<0d%}1(=0KO!LzVfB zTW7vrpZnb+-p|R2v}kes8gyrK8qzX5N<)(!W_Fx$P}L|3aBya(H)fkl61K)@k>yf! zQBQz=G((^-)Y=Rnu)t5(vOg+2yvWF z=8XOez1{}!;m-AmbkBLicVu3@cA2=McQevNV4Z;E;G18vWk(!bbx)47b15+$!wEh- z7|DY{X`TAC?2t8x!8!pHg_MC0DLj&{h`hvZ(zCnv^3@keY}1)+nLjlfXEb8$9IG#$ ztT#SsGM&N4+*7LJay^sB`=x}-7cW9KPw-N9cq6!{$aNUA;Zn3D!L`t~ypOZ;G=lOZ zg@}C;J$Q&@k5>5wD|0oj?KCFHu!cHXu|LH~fK{n9!ZbkuheTk46bq5lvc35yE+c=}!9m8-`A;tqc|Lr+Ag zv+8a{q0I|t!@ue6%<7xKe&0y(glJnY!n^=KD?Wv3t`$6=Fv1)0@f2^DoJ+5sdB9~Q zcDiGD+H3U+Gh1qeb#Z)%eA|ITK*y1RZKg_QKzw)`UGrRBsmDg+@YTle2L~~KUSH+J z#W)AXy5Em|L6w{YN+)9C9R10GrE#Cxp{h|LJciPS9FP*uR>B1aT+&k?1j&(sMlSj+ zb6nUraK&knDYjy2ckH|Z0JoCxqe~N%2Pk+Q#Save!X?%FUxKAyBJAT$f}kI2{SZ-l zpBtiJ+H`4Ifaa5wL;$_1F_O4WuLFhH%tZnzkbXM1dCBp*m8-QbLi^5O2@$W8WG-(s zmv*~OG#;wnXyDZ)Ipr#?p>-uCN=fCZNFYA&Dd?nzmYgM%TcArMx8dSOBS;f>a+DZ< zNms0P$;k~&u{@gG8!Pesdw5^*)pD#_#au?2q3W#$qk~k6-BleEB&Oi+$nxQ13f|4&d(87O)hWJ!Vg zUA#!qhNa;Hhb}r9O@gxdmCtd&c4P*lN90-qcThVddRH%$Eeu|=k->@8IO!eC8H(H& zZ`rc|C0y;>DFhnD0(vsyAeXvnMFT#WcV-n~2?wS;Zqi9HWCxr+ksJr#14P!G(4qiU zqKdV)gt@mh9tYuo9a$k3TwBplCmbX~+f-2~r`$P6GcOF0N5_-WUe9TEfz$5jfzB94 zxZTa&h3R!D()URi0UQW};s2ZBCm(dF?x;T}p)9E5eD&OEi76Rr0q}`oD~xv9ULz)_ z$k#qN#h#zrN(zLc!J0QxybB8W|8aB{UQNA!9A7a8BSw!N zFuJ>Oqq{qFq)17Z_;nlI9RlJ=0RabslDZ)vARsLz0)irlf+Dv3IKMyOo^#K=&$-XN z_x=97UTQ`T#ve-XW;Gv5qpLG&K4{hqc!Lc^GaNGU%R+K0CwS)qNEqf^Hoye<$@^k~ zLBug63<)1YfC*L*Lpw?3j;JT&Wj4=9;7C}SZO&;?%uIYtcnVmORNUC;pxW!h(~xgM z_B-A!zja$>Pa;M4BH$j$KlbC@+h_d^qk)kCKgYtpt)%Q^@a&E!WM9j7+vm^&`0v9& zIZnCMdo=+_z{^Jw7jbSFMdHp^)rc5=4*+cemByG%<9UHqQn-4_)u-t|ywb5Qxd?IWiT29|3bAK|RP#oi7iO}_HYP5y6VOlv%0UC3%lU$*f8Ds6iXRKRO1%z`l}kR<>lg}Klj zfIgKBxsklE{ z@g3RlG0k6(2Vi>!4VZ&by}2X>|U62Uk~6rvgbi_@n#gqi4}^D`RovjOB*^LelN7f*|mP|2xNOJ@HAuiBOr z=Xg3(E_Zj6GkZZT1h~<>)vW*$Ue{_tfnX5lJr?2M>psqk#}KVqInWO05Ue&x5+#^+ zzr2JyAQ2glZ9DyWMHUCRTj+uoWrqdR$Y_lyHw=W;Gab8WWVp|j!3enkrnuUu9; zumF1Hj5UGWQ0bOxtP#OWzI_GMyZWob8r$n;+DH7Y)TExKHlPuIU(YNYdYzLiU{dYG zTRf6P8%-gb9FwDr3;8td2(`4n{r6H?xf4kek21Lgcv&&?kf`th78?LsJJ77af&bLkwg_+h*mrBCYN($D+znP610@@)^4G38n%(a{p8z?) zd+ek^Y5?$|P&Nm~w4|GJV87>D-#ICLmgX1y(c};C9k3S7;1vji$>RmE7`a~C|8c~9 zo+!9fqjS(-Z-4Q`#Nyx}$aB$+#2a}NiPyv3`s2bXxm4!WWU`fJmFUvK(m=wiLaNBfn!g? zoR32J;QMUL9g-e=o%J!T_SNg|1u5mm9TD18vPr`wt!G4Oj(*ENZDhE~T**hHy3RRc zFI$KUhUTh*;I>gA`)zPg%!t`X8e@EQ6en%cyQ_tE5=0>Ma}Jc^#PSt9M8 zjHTU@RRe2h*VZ^xcsL-EuVhe=G$FH8{A?PTWFrF6N6 zZ{E2@p+yJZEc3C;4UJzaERz076Qi)2-VB~TeJcK<=P|$4(L7Br7^E3++3Bq6wkJ;Pa4|%69`a(bF=6y1MWAtk{*o#ATY*Vm$v+X3cV==!u`osRsH>I2P z*&oi?Lt>$w6LO2Spuij=(8uzpAIuIF=`y&TMB0udL2rzC{Tx)gl~lBO)llaPjoU1j zY`R@4evsk6F6&~NThn)A0bt85u&hPq`%&nlp}ws%#PIfCl2=_UbyfBjBt>USz61wFO6KT zC(X;CFpgiWTcwBWgDKDC&cCS0A2_qnkTq$nMOq7bC4GwEMsC}S23pvMA$fzCVVSGA{wfN*ETN`t1o#Q%lACK zdaeHN+2+hMZsAW+mfu^vKfzYS_XTb)q(E#Gewc=fpMU!NZ?nhRAX~9rV7*SjT@N_K zgSzQhTke<>MR?cXNx3v~ll2iuS0Ncqy8a6)tPx*=-Q-wv)#Ex{x~Aj|tG)hP@eB8P z*A>HkmXLkaOZH|ij3>Vz3-v>Rz=t1V7l<>7cj+0LC= zAwyRd4y_T6IhS^qr+K4^9Kk|{Hnzy{*+)kNTILNcSKGH{&W5J_Nk-CV(nUO~Mdnt& z3=ZI24yE()ECv`5U7?8d@y~~1#+6)(9%J!y#ED6uPZ7)(V#6yVpo2C=;6}#g%@YrhMf7+&X*bmeAYd^PNW#hfEZY)9Z!Q zR9ci(^`o=hjiKM4;&&OVRru5-Oc8bgfyWxY!7@}~`ckQ^4Ej#-nSFW|1A04KtN}u% z;i47@^UcMc&KfYO?*1@fVtTb@%f$RxL7z!)Utvd|&B>OKb}x|pEK}@LpzxUdryo9f zYRj;UW4j^B<;Tij(ee=>wr17zH5gDZx_P^$8Tx{)h3~k;yp7zY1eYaK=IQ0J&xh}4 z)4z*cB+&6Sld`)cbdRMTFeU7y>)w=UgL1L@W=XbqW&nZb@RejU5L??}2X$BP+X0Se%lzE2&&4k9OG(((hIiu9mt;Y|uS zUp>oIWW`&O{zHBK$iPx>z~gnRwX)WpShv_asb|TTZ;5h2vZQ`VdaabGKDZoLe-yfw z6WdG8R%tB&rLtSfqOk@{4HZ;_kXZthYZzsaP`x(QB0ui`$4#t3~_>zoWmSzxU zJC!qlTsS5l@MC98WOt>|h$pi5YYSgp;6+np4wVd3r-WC+B^R@VXprVePH&YM_hNKg zX#W&Wd5`a5*KELA%iM0*UDDVrGkyK-9yv0! zz0dP81o?>RZJHbi#^`ScEQx9aXE_J_WxlubDW`&p)qWr^-rPCUz4&j%*4T- z2{Vq@=YMw$5kUg!pe4hooB|NZ$o67829N(E3l)12U>23b+#nGoM=u5nJO<`f82M6|P^QVq0{Yv@%?0UOkD*E-wT$NbAaBkw&s^g9v^f%c2(RY7WSxflx)#FJkEByDBS-|B4_W= zob@EK83PQvel_hvtt2aAZl&Hhk>>pM_ ze%Lv8M`qd^-R@`I-(qm2=yPIJyPFp;ek-~Lt3}O(;Rpf{^8S87_)b zRVH(4-ByXT2Dyy{hnrS&wCn@eRpi2%Q?aJX>J<%(B$`9`Tb$)Ldq|RDQ+Hj9@gUDq zeIz75F$Dx-2M`a3UNxsN*w~(WjGF~~cv@sxb8DiQR(5ck(S023;vrIbZ-(W`pQDU; z`#P|sr4VCSGnLu?n8a6DEAR!KD^+SIrl?*Gq~h$sRGl0JpIM;HUR!oJBCgemaGu!rq~~wp z!8OA5S>Y~BBlgb>jT%k2S=?_%Z)Tt`24st-oAZDBB_xwDF@TyTXrR`8o!0ks&BqQZH4ze@F)}+#_+no2jlm z+h|pkoTGdZWS-avO2iP-(fd;jQbb!{~kooi8 z8QEF~p+!>7_|ZJM^Irf6tV=%$EAL zRvvjj3w~m<1pxinYiqFRS@F$EOk(b9YIUd(DM6bNPZZ>6LfqmXrXBnT_5_LUZ_zvS zV!1M)*GMcZYZ3QWIVltitpX}+nY|#Rl3U}R^l(ge`sLGl@tYs4en^v=}nVEJ9`gs?Ttl2bvG-!QYw{=Z|djfZU&5E6c z(gq0+Vy1*ylH%xozQ|Ym`U3s;z~v}VZZ=rP6rcETP1af>^UgR7<85}qeegk)3YY;O zizpWP6kfjp9Oi8sn3PUKl)@^rXme0pfk62JB8La22s;S>0={IMd?{Qw)V zI<}L)W}Z#LUKRobnw6*-y2bN@&O6FOnG#(;lx5lZhI-{p-2h-b5a|j;2A0s8su+^k zF#}mJy2>3X2J?qXT>BvY3T_S!j=yj5O}@JM2KXy%06`Szx5@Sk{)xaVS1qPM{hY1d zHaNLGVZ>FL&8)kp_*e@XMeY=7?MhZ%S|zv=!9oT1VOdCy2m<0j4aiPJj}xP`L5)IS zx0Gbf3``zfDZ(eKQDT%p=^WfqMEpc(ZegC&E2*MV=+2;Mg(=u^V(tnMhXGh@ZB}!)$ zvCje}a6nN!QNR?SRmd40t-(CTg(X<47B z@@%a>cu>5r`eA|*CZbKJJOGj=h`X|ES89{!gi`!QHOZpIg`*tFo!q{oO*!}3ZGn#$ z2;#^W;u%2xeKk-tK@$TK9tTAw--Z7K7Z3(z$p{P#q6vU_&_h^8WU7m^uJM(E+QwKB zz)#@kQGbkcw=_mh$FdK5%*{_;jz5_=A2;6G;^3UE$4zj+$#@nLUCp8yhn7uk$kV%j zTB|)@=91CZ>4@Tg=)8kp(p8lSR8+c2QF@EB_*^Y`Gm>Q_h=V?PG8se!JqJ{@RE`Yf zq~I?Y0E|dHJqH0{3qo#bliXf#X@jL#h>_Z0RS7$`X`&`#4rmV+Ava=SN>HifyvxprP%l#|&!uYHhWvA{kMNd}4j5a@Czxcdp_BoSo_KytlA z{R*%{AAEORzwF_3@mqKg%JlI{v+OXu+ZAa2lfYRZCqWP26On7Ec+O=?;8+34xN1vP zfTSddpC`bQc!B^7$gKr( zObk5j8f07}N@zIyGA6U;4$1~Dvv5P6?1HDV#z9lS6?h-7EFnX~GHTHBW+mGU!_ai} zy~z>F2&<{*GOwEcy}h(mhmTq(|fyI@4(X9a?;MoMu@}7OJuF?n`L!( z|G&v{k>&@#^+(JYYkRYtJf;Zq-2_bqqBMr+KGKw*tLOMf4cTn#b;s7LXZG?C8$0YV zdIcoB-^mfB$o3b3K|$h^yI6!$;)|Cr70e0MDX)Tg_{N z2Jr=lmH1rZ^uE#shJs$Z!m2Z4AUlaD0!Wq)oz_Hx-tU4GFs~&gK1j1W^mq^&G=BL#Z&!|+-xOPub!&j$08y(vlC+k|w1(M~}9N%#S z9mE|#GnNUa>bGs?)A{V1q+;;282>B*nL*I7bwUOca$A5LEEcHFi$zP|h$pg{dN9o_ zX@YrP&^;EnO%@q1z+#ePiyvbPk|9OOPrj|IGgPi5OLI;vyHT;Dxf>Z(8_!GM{QS1O zl=$k~YtK1@H!&PL&p*NhnW}!PYUD@&(Y?SqtK_7;1!3fU$qJ&h*L2Sdkb1Z^A)b#A zBCNEjuWvWb(Tq2U0>BDEq9iZu&${j}eXssJ2N&|1KU)yH#`-=7q~Ut`{p*Dr=el6t z6`)?Ui2xFWoCO(#X<-Io(W}&=z%ph)xypF5;{t;>OQu=r?!uv8t=3RI!>oK!rAXqq~5se`hF%Hrx5k<&~?4e*G7)NIcP?Tf~U&7O?t}}hY zG2(#$t@;qw94?ad&+P(6ELO~So5fA$>9=I{>M`yaV6+sF4cWu@$Z~AS^G9f==<;^v z+ifA|odx9`RG8s(>D7DoYsMdeoa3Omp;vR$KB?i>a_@YkRzPS3ku!tPLGsF=?=D)% zj#M%rHgxpu%jpxq8mu{)dcoqB_F_#rN9<#2h`Pv&mlVEB z8w4R7P{WkShA7j|Wgxpvmptq_--&~?Bf+&#z=FSH9I%7HTKzgHh9(Qa91@MU3 z!-27-p|eBJQ9PRlf#JWUdlIW>z~s@j$H8G;7$l3x;X5SsD(~oA{jwBBA6>8N|Krc@ zG?TgD%^*@tkG0O)45$ACeY^nvxzKpBF2zOapMc)vx9N_7LqB-5-Fc}S|oEG-TpwNo`1+HD5~nTzE<*NUc@v*65#rt zKd?Lo{Lu*jUjeFHgC)s?=>8C6$2T$895pf~ZbMp4!_c-Jj%R-k{!|;z<@L9IS#%Qc zpXYR67|Rg2&=M6Kty$Z8uqNwO979T#E<0b4T>wwUoER}4%$L@?{~iu?9MUrq7#rOi zGKeA?G6mem*GAj8&er3zx4FeC?*#(W$<&o=dr>q#lY>|Dnh%68A0#@zK{G|pG1&{o zZN#e`$Hxo{6adxnU``ZKXa!t)w9xa`p+aayM1#1;Pki9d!cWq*>La`t3rjU5AT2eN|v zeF;<$sseQRQ<*{qSeVi&oB?8(J!HB!OLuh4#C7(B>BN6Cn5B94f- zed|Q1*!lVs*UA4V?9DTWyC)abK>O>Fw(nVE>FFac#WjiTsG7ya2*$*|83CVLa%zMj z!;@E_ZyZ1uQ6y0VmaJO<5<-A90$DG%VRJCgqcx&#{8+Psf%>f|DW!|f5`exJpm{x; z4nw@@S;rAhCG#=ZxYzXwU7h?*-4elK=bH$$Ixf-wcCE-0?eExT9lbzGit2Hb5+eLU03iz*o zqNxB|=d0ZRY8jwhAm7HlGyqW)N7Pjy@&iCL7PhQ%AbAaf0P1Y${ozx+*rzsUj9f`@ zqxFDSAl~C8wx}-nJecV;IVn3S=|+SqU;{=}n~Gx*AYHb8wi;a$XCoh@+>&@dJ+bBA z>8#-2amdX!^&79$%~oEiENuc)J3%VfjnXqk(c#JeEQlx^0WFassR828;BJBqUaS`t z#AtRRo(3QFIQ+kydwB3U{_C>@0GM2I#M7Pqy10Om!!lwZ--=#U0wx@upn|z2rvZ|( zJzT!IDMe0L%@gG%1J`dI>0*eit!^4Y=udCac#SV&RszgW4haMa1sDdfBIS}`bKdwY zMp5@1*NC^HxqPaLQ>Kayra5TsqCXl+{$^zYcKspT4viDH6|O>$$tLE!GOVm9$7A5V z7gaKKNJ-x@(-H~$G6gr*-RUabgytuiJB{NkB3>ma_*$@WK9FZ74XJ=Kbng*TX^w%b zcX;$)UrpNwz8&R5NB#r+tAEbyt%qk2c~_stEXeB>h{>x?9^0LicgGYSAHTC?W(yuW z{c}6eXs+I@>RiuCr6;Jm%_GiwLR00%s@#uY;|3$_1rVag^N&Z9>Cm zPr;4~NJ(K0>F5IA6#y#DP#A!keu}SA0{PgOg^y3AzJNS8#%p?id(p$Z_fB*}aD${7 zYjKw*H}5qpgz%gNi#jHNF3B41h6?Q!8ghq7d^1Mc?E;rr0?SUuSgv)k81V-30lnA- zje+L|FkE{~8Hs1m=#_g6f6%g5oEwD`q%egYxsv=-2#=PXdypvl)hgHWZx?Kn;ULCI8-J71_+KUCT znWMd*F<}%6M-j{3;yW2TrLHMVHX6s6-owr~K;nn?_ceV?Q;&y*eyygz5u#^BUQ8bS z!(GR#u2fxbQSDWrW$-Hy8g;%(0gNEjG9*SLrTJKdGetXGPXtWKD9;>b-4x#nbS~bA z*ZyNC753nQ)@K4E@y(Z@kNUgXhX0w%bf~;#|7tArCdA*=XbWh96+o-_y%5NBJ}0v4 zXVjK(+lbGJ!TmM7zAao1x%iSXL8Yd1>BBnjAZzcYZ(ijKtuE{Sn=Yboj58sXOhaFygLA8;m^3SMszu~0qXV+}<6%W2M| zL$~^@&~7!X@0#8&_U#X(vi~|T;vb3%cNO3gP7fthQa%mbCDU-SMi$;VcF0IK;?Zv- zcl7S0WnaF*H5f-pfa@p-GI(v2-#kl2fl&Bgo9lv1Z_+%e z-DM*9()r3N(z0%RjJOz=AAt#}Bvu=N6hJ8wXp8tQRv1qPMZsvoUuyk)bvIG9$$O%W zNd4kAqhZp>_^UNpO~fnL{F#Wzj}%{+LgiKAjBZ&3H7MYCn5CnDom;P+*)U_6MamB% zzeSKV+%jiAnN2&wx5K?qRg6$R-`tZc4i*Tc#4AL{&HXpY^J4H(&t=ZNa2Ij za)|KNGFwSMt8^!U?6B_~vn=!xmIVbVgL&!=RTCdfyZTt(ov3!a@C`jf7V8Dc#iaP% zF@g4t7Y82ak5s;9OhX8-I|1p;C8$h95(JIH8k$g+IgAZ;cI>E78--V2cA^0LX3V-@ zBk({RnaDvx(R?0emhW+q=c|y%P}$%8pwL?K;U{6sSTO5(lMzv@3`b`GU|}H_@cpq9 zVwCOzvL?-HK!Tt^(Nk9dKC(;qqRD(o*gZD@Qc{x|E~a%q<3P$sgez>0f%n^;H^}PXFEg}=eY8at@2K4-&nxGaeLKma=Anw#&T9iz!0ZY9( z=f$-5`2H46*8OK(`++79y{-Zw$vc9;4=iT(1qH+@sgI8)O&)|n+F%^g`{Tc`J@XG; zoyqS+jUcqruG`uMTXZZn4~1Bqu!cfDz%NjRbKTR1Y~A;oF0w8NFc+m8o=y>vfBQ}D z)6euPf2G8Jq-pB$ETZzB18bgDHx7tWC~=N~;CQh|b;9GHp*-sq8meDK^D!MN!fcha zOc@2Wy`@5sAwG9$kjpLeur_MxbhuqP)o=#Vhc?3)Im6S7Zs$byV<+eakD<8%C5)Fz z?#8N>9R6WK^o}ggcqPo|1%}Jv9$+wXJUmr6T&VH*Xp(y^94ZW`fO+7BSh`c7cj=oL z?N;1@bE#HU24h9525q~aZY z7~%ym#RANp(FmULec{=(MI(oNLmy2h%27yN-}^qY{YeIW4lPTn)@`b`Q=pZoC%|8M z%UZtOw;E`=Gs6!Qg1GVT@E+5`5yey zmrdrW3F-6lEV)O3wKF|hL*M2mPpU$*U9Oexv+fGah4*~>Vy-gFeq(Eq(>A6Rr=5J! zka$@!r6KAW^F52kedE?L^t_HdeBy5O*BSY{VoYr=ZZZSJ$6N66zem9aoDHapCOh`F z#oc zGdH7?#_;$)shwh93$vL8!Ceb(^G`jBP@xCqR{kdv^$y6STRRsj*y5Fx|7-KPS3@M0 zKZsq>{;(-+UY~uE61z|pWdnQ0^L+L!S8b2+gTMCD{D647-vINCgZ<9jzn68s@gJLD z!2I+!M?UwrVYhyQ`MW_O_cFgjEmweiZN{ptvZC}KtRKhS_UR%j6^&{_2MQhe?AY=* zN6mzLAwU1VwS2#R`up7Y=2Nq$iK|f^u2>AnEA*<1bT9BfPcqYQOgF7O1pwxKg+C?d z?9tfbI^oTG{(A7|)3LRPvLkm6GOFjojF`$+!vPGtb5E7k zEduiq!p&L&JJ0-6{Tay28Bbsj&*0hs)beG4bp-jcvdfn+a2<}Pft*v@l(UxAZ$Hw1 zq%IFBWGHew{A{5h{IHBHIqV^X4AkoJ#>+n+@el?67a45fu5|$lUJIdP{E~=r6h?m* zCgknCa&3EsAIIUo%|VZI&wLFoGH&gpv}!K0*_(lGn^kM9FqTr08RcB@K-2BlM*f$P zA-VKjBu1W^?j=$;e+}cXOOI6*&lZ6PN#GeIs49(e`gzd#)NpI$a_0aw&V&=b?I5SH z{nG>v6-M3^>YoBUBnO#!r)Hmsg^(sqw$y5;2eIeb#%1hNq~A9tf7Y2+%7EN^7VVVS5odNvSKI!#XU2P zMh<;{$43RAQ$!hrKufk=3x%-a9q;&2H%dviJzVQv9t(I8TD@HEhH@6q`W@M~^ww4M z%X^+YHD1Q`j6wCc60&Xy841SME?WWzg>r7xO2c>X z4nU!78Kwz9Vbz&_XCrX=RZMdU{m+I5JO&!ox^Zif0$-%E{VD&v`-**c!qo?ezPvE| z4WmIrD`vemuj&PPM2!ihoI7nDmiR2+5tf>q`V8g}eChac_lHbB@XF}`66 z17Zh{WF!2+F!{ZaYvGpbyB+yoLp5-LxferkS<2|y5`}5V@WWP=6%E?~b%X)1QwK3A z9`Uu}q{K9R#S*Za58J!<(qkiyp^ye6ck#-AqP6;fRsl)jYx}Dn*$Ef{b}VlLHV1&R zh5_JiSO-IFc3NX{`vfO$u_xgoLc)#|0y71$J9B&6na!O{hspx?)90x+E!2lnQ2r1? z+&Ah1Y2UpJ>tMG?eBCU!a{#Rb3Y?nJO$qKF`5K+R1qpn(S1C2fSkm7ioliJuG2V8h zmmH`G1{^OiF%UQ`7fQ!oj+hck?W=jpym>XS3>Wu*jDHe@yA1^7n6&y$)p|Z5ahpA{ z7+Sezp>}TwzYL$kuq9#HRH%GEB+K0iB1~6UT!FPbQk)cDW(g^=vxU0VD{q^#KuAM@ zKrC+?+uTS{)=OsZ;c#fL&SP4wB3rvn>Z4R~yul*BKSTiVgFoOLb zTO?%y**3wb>FO{-$er}J;i&Rr4Q4VI+0pe~W4+I#a(}xA=(#ED*)hQ@k(w;pcx zMu`8W;T$dsVe7^Z^H9c8N8y;XI~{(b`f2Cz-WO+@Q1i(RlP)y9p*YJX_Ch2y@gHG= zm0C(q^<=zq;yo`qbeHoKAXbUjxx7=SDP@Sc^X!O<{j+@EOs-JxQ&D7?QFTe50J~Q0 z`-!RgSrB?}_h&=13EYay!@XiN*slM{d}YlPe|tml)^PRZl- z8CkG8S#YtPXBUMd0UZEU+@9+j903Yn*0Nh)?d4K6tpmANuv~x%eO$-DX4R0f^@oP= zxhIEnPporgL$S_b@bmS2DB!6(bszK*@rMIP*ZG?t$in)We}l@fA|$seL}{qT2-iKjWt#Z&%W z!wOX7(9X)c^@v9dU2W=uG}N;3%Gj2}F#eSbzrsd@q`wG1_-svnwW@09e542t`osyP zK!3cqZuoqC8WIyRMx)>ZQw~%}!{#Pp8QiS+LIhaXsl-&QXHlSySK#)wz=!s{um7cb z>Pho^?x&g`b1|mTLq#0oaqJSQ@vC<_%BbB^O?#?N{3H0WB(u3)Maj!Sf&(c{?;BgWcKPzZ{}azl)%t=77?F3KU^l^ug|hT#g^#Ii45d`yZC|C7w0ijqyhm zqmH;gCgQ1%6W7Lk)m-*D$~+C;3m9J}j5mE6*Y7rbNxe9p1d~D+n3`!_0UNzhm9$Xo#%+XY~3K3&Es+8afzXld4k4&cSWz0v~+_cM_ zRLT@a;&kq_q+t2j!}%|G(o6i(6Cd1E>;^X^C8HhmY$iz6x)BZ)6gb5F#AmJb5up6HtJvJ&X?#B1HWc7G1Ag}FcS#Q>o55(?Xirw{32Y}pGow!Rt zBX3iPo(o!aV-B7g%1(Whm3b%sNhAc*s>7r#ZO*Qry<<)H9Y^$ zpQONRgoPgL5Vfol=VA_)sr(Xz?`IOl#*dn{NPH|x@59%}w%6-0GmHLlIdIsu0 zoWV&}4*2d=`{)YJi!eGD8>&s^;!4oXk2PFZo~V3uO&c5XlEQx)7y33TP+Id^^2xX` zcK_4axe5!G_t-DfmVsrwtj>+6Lgr4L6rP4e2B2fku{N4Lk5!+3{%^83D}6*rJ2K{L z!rkwh3E)H${1=HiG3IO8Fa6NpX`dO3$EuiftzVuxRc_KuJ?8EeVcb&xZvn$jij)tF z@lEU1y%muva#HBqcX3XJFV#xVzqj7#92brV6;T9Sk58HZ2J{t3I6_R=m+~u=XwcyU zo7JaAj?LNZEuP1{tNT$cA{!+-K+lGPA40pzA#10U>{AM(ubt0zLxae@znFulp3fK@8(QhQU;K!>N~EWhNIA>SVmPQhal@>hJ2)yk7!lbP`ln zZw7VKxI4rn~w7N(;bzC zHW}UE$ot$3lBoPXX^8j{qN6plln}{y|J3ekX)bJpm*ER7i9e6`LjGa%?=l|Jt9O1l z@ZaH6(~kx=%z;2>nZ}%-F~KRlQtz(A#BZx*3V!#S($sw zEg7CgA$(0S%15!HQ5XcJ5d@@nh1!x(_!NNlS8`zSSTgNxQ0ym$gWCP+YNOj~vRRAQ z76I7mC(-7PLC)=lH?pW~5Grkhc}$Q${nAJ4R^WU_f{18t3X582k=5_hj`OuvyUur3 z7TqubIF`ty%Uja&`i^LZpQLY^6_Q6Q(6YnQz^F(me>$XdrD1}i4Zfqphn(vkUSv25 z5pWpGD1V_Svw-;G_mF%1GUis_Ga>|53HtR*RiNi%#GZAreB6_VKcn8yHOk++?A7;L zJZz?#TYuNGNaKwG@w@4!FRzAk9Yg2*@0tBMm;qPy6|x@n_Yam&@2?BiYCd7pr&ZVK z5@tfrD7+l{s--0Y7b>yM6fH;e(gDj{i_Ac6B=dSk&M(Kfy>&wT)Sx;r5^UaV2y`KTF`W!vn`i_OXbiHLda!dvM zNFg9_Cl76Ey457^;rGdoBR^-c*G%%;i+PK$TK3PI{NnX#h1$q0Ik!Tfe@ zd)3_dz5n3aJ=b0!6b;dd&5(OnQJ-y}ittzzDmx0yOE%XF?df$YuKFbJo?-BjyShSX z$@fZ(K?XX-)FXqpB>q)XCE4C}lM#Xhrl5#{U^tx`p3AfGtB?Eso!OXBVl`Kig>O(+Ldmp9mZ$>|9dib$t6LQZ&P*uh`{D4>otD zPH9U%nfvW)4Luw6I|zV1Lo%|R9z=sscIT+Q@Q=j9^J0m z(6lm_&E5X*HtjSxi(#V;T#a%sHe5jh%N%4cN+*H8Ob?(w4q%1c9Z5C6Eq!OHa=tIo zzg^PKcjdtHJ^P~fkzFkuzi4ct&!i*?Fw!9Ivfe8eu$-20TVt56bE(Rj!`TL84BtK# z>G}z54huRE)c@4LyV5Q+e@(qdHdwNW3Tbw%eJI@ z+c#EGqEu;@{5#RR&;FHgn*`7`_z=XJLa!}fOzfHk zfAZd&&Z!jXy)q2!=nt2HO>aZzg6<}$Db<#C?}~CCAZT5`OagGVjP5WHECp?|OpP)U zvl2J&*|9e7e3*ShVM0KSJn7tJe>v99m9B(LBaF*oy!>PSw1#^`){uJlxdU3CvGqQ2 z!z@6iO29wRAejgMFw2gzNvlWFohm%H&Z`=zL^}MinDaNfZMxP-d+9NsN2O@HwVAKo zvPL)O9SrQXB6C|T0z!kr(aHcClAhqwH4!R>^!^9-x3!*HbY;QJVEO~y_!JpGZ;{fC zdltAlwi^CgSVq0sV72}OJ~{`fs3i;9YngW*4|DVcaYzT>aI<*Wp>VVFwHZ%?Z6Av# zlk8??`A`WdSt4+PfhAGQKO9e-G^9d(vxr=6_;GYyQ|IHLVZJd^m+no;cwB#wh6raW zCmMM5o#Th^d2i**Yl<7)66BNC2j)MnG)Q>JOd1=PV#o!HUab36I(x+UT!~o0fPIKB z_qyprQ6W0XxdMg~+wGEqEyB6VoS79ah0S=v5Qu8s*jo&?uXw~BeW=@+m+WoPzGP z951EwP zTw-5D*#=0(ve@(d=*H2cX;(YBA|a7{}8wXVQp{~#}j`nTX| zk%8|Jx8>o~LAmC0p#LvFr=Yhu`06GRIXp{~7uG8i5t6r4GAF5}Fop9p2y(gL!s|}2y@h|md$Zl_(w}YBiOeI= z7QrVE=J6#`vD)Ea`5QE3di+|adBhGu*A#0mavbkEHyMrIaLVm-vO_Ny*aC==#m^Jx_t?;@nV@7@^eb?Lmb&n|nSrjl5?i%AQv9|8MKl0P=td}ujz zfKVAS<(EY0kKxB7+wAfVNq({6!|n|)7n_-vW|%jZKWUEVZ|KSX>X3ikb^T9@B(ucx zNC}BAAWCX^$6Jg!B<5Z#$aBB%lX%z4)|Q?8u##5P0clmCiTQX7Mh3v= zQ5Ny%FW@+N2FEekfR{9>7zocN(c#eF`&PiCT;TH=U?Uhb{dq&8AV=mHST%c;=+_qZ zkzjp)F}e<-hNp2x(ZKTlRY=hs=U>phwwFIA7x;L$&dOw&$!Q>d6=lL-JovrRn!9E6 z`qAv6{R{fHOn;|xD>i6Ez;6FQUN0XX)zO-Kh{ zXf*0P3HR5WBm*JsK>!g_%+r4KOj-{{yX3(S-|nMnMy0QAYr3PGP3y`4@ByhL-gR;s@aI z=(^n1yk{9A7DqgRfyHy|9TaSKp~VWyFBO1aHNxzqN_-$1*TG@)8i^MK7DeeBc=b4v zdc6@i5hLHD1S8jp%AzFu(j;XaXvdmpPzx<%UoP$p^c{w_h5~g3&=W5pu()|Ni92*$ z{Z_I1Hx}tmd-=oBVzmxc_*Yez1@ZM_)i-Q0DVsuYV>c0wHG#5C=V1MlfcFY3#yTwFVNVm2gbQYCIj`Orw(cK~9bsM7d<=-!8;2!GR6@S@Z zu)1LEhNOs1GI~*>HRl}|wnrgn(Kfe15pC?Y?T+Rq6wnWLt!QDDOM!;oATzt@%lpD6 zu|8usKlwdn)r5Jo*UEZc%2vvy4n4&GQFIo5O}%(t-kxP(e`#k}5b55D*ZQ5)o+?QNjLMynFwJ=kwgpbDwj*=ell^+k&o@O5Va* zAA;l~%AvPs%}%1^=iS{%M?H_addgmfH&e>9%{<@O&95j+J-_ba6zyW7EE*$1D*Wbs zi1g`;@Tn0wemN;&jRK9_ovI(UYnVT-@8R|r$Pymppb)|ry3>>oKEw2L#xz$Bd6wR zXq^;nrS}1Y4v#+wkFT<^3kf}u=j~J;_JY?f%F~E|4t~X>7%wN78Y8$h=P^|o`CL2t zu3SV)d-Sd3=&6n9y3jMMHS;Uz=)1{k!)TAXrk(-4*zv09`R>>k$+53IW7hTjQd|MX zq$oj4O=ITCi;bZf@i9>zr(Wtk+;G?O+X$t1BWmOd_S{Xxf1JL9CodlAo!Lx2qoyB! zH&^df);w$B%{pIa4V9!j|2gji>)EG!J*edo66vcYBvECfxe*3gdZg zX$?M*Y;s~cGD~lIFG(}8kyDIjqAs3k*H3<#;&*jJD(hnM@vm1M^|ivjJbOUX&1p(~ zq0jSIKSW2Qd3B9HWXe2Q`|O1+OY_A$&ypMm7teX1D6hSeRSW>`9y`~O^J;pJJCsn)n`+Vw@-#f_r#%DuwX+p^^Imo)qeAhS!!b{L z(vxN(DT1dxG=csLjQc-RFaM11GUbJ*{wTzx6G^8RJ?iy@d5ykO_^aGcR?#0W74*#) zaf{<~=-Kf!)lZleLyk)pYBb zuta6WQ?&Xj;(quuD#xP@)3mAcrI$0lQx?@s*Y!KNrcuK#? zBh2(*>9&|>29iLxN~bAWgQ9UtG_fk^;;j=$)sjh2|HCz?+%EVCuC1mjnIM>a_gCce zMvY<2wlTTrOL}`=ddurdo@EOEz|b94b2DSLyQtq@B7JalrQ^-ejG4*SguBO5F#6B$ zvP^DT8kujv#Jlx>*IRjVS~O5!04$kpx_gzC)hPA6x>D*z{TqeOFBgB%(r;NEqxAp2 zU$?oHti^Bb=A&g%Xt9u20Ao;ry?G(hoagwKCB zG%BF3YfyhCG=vQyl_^Vz({K@`c}b8*fgk7 z+e2|KmV8~q4l9PK%N&#Wv(*0@`u{v3KA5R#Vi7U9{w%wB)KS%2pn zYWkY24`t_L?anFbr<`WN%=>{ak`=xg^t}5+H-DvPxWYo#aN@#t9)Pjjd{{-Dfzhv~ zW{hBBZIV-0k(LEhu5=FONa8X^ zMOjj!wl^L*|Mj^lKRH6V_wqr&NdJ<<@#-2{md9_!SfiKQ;sS--Z0mFNruUTxlDT$X zt;R?%#!SDdAqnP_E~E#T34B_!shL?6J?=w-shah|Lu}Ts& zUFLPh>YIxsE)Gw-g;Xm%4Pww(T!+V9xfiyvV(*@2vXc&Az67pi!Px;Lpfd@kDAR$J z{33f!(e=+WbI7Hl)%VZq3~&FDdVcQyr%L?Pzde^#ti`G$!y4PTwPO?frdI!<72Ll)8Cdu!X&UU*}82L66}s>-?Vspnt2-ajn}N zW)6n?^BQDl4f^00*ctP+)PEz005xJlI^cV5CYH08c1}pFpN3%a9|R|G{9XtiYh`By zfk4SY$lKOhw>MgFqqV{rx$&VEIWlJXQZ^mUa!wmsM=o+_fY+*<3!o+Nt6?WE#ipInOKWXdJn} zF;=d2UCg+rR8Gor%>UHqR2ykkN4^=#`Y1{ozpp18YqDX7woWE*+a~9f7~74NX=Fg- z{&xLn-xI&T#a$o`S0TRP}EUfi@n2t;j_YGPZr z%5aq!gk&mbg)5e?h`nWPal9GAqaKOzPBhkYZ{q3C6Txy<_m zD+?ii|5DHTjNQBina{6Cj|9;0T!fQ=VM}czN_#>%VXmG0s2R^@4e{u;QA~NH2WA?0 zwVG#4d34$U5MHfJOFEA#8_yM`QtLbfKRbnH!*w>y-<$RX<|)`@um>$=IULeK_=8`+ zoU11EVsLk-Eid~^#66g`k{F#}$R}OUdn-f|JV1b95*5yGk|n%%!GTAp!+WS;P6n6% zFb#9CoJrcI%KDP_pD5MuY6~s;C(S2$1)fuRp<$)o0Qq2pZ<(F3GYk!t1$6U6?tCw)ENmUW z>7R6@!5kZ4O@wBKy0}2a(!bwS5+@-v4SY|1AZ7`q72>x8_&#~4_0oiPzArevw+^$> zGp54jvKWD5Z?YnJBzP3B)u;1nw6)3crPa=Y_%(-F=ygm4ll>0CCra@#%G4&rv1ZOiNC(q7BpLq`Z zm?r4I6D$F_YBh`#ImpFpuS)WqDPf55+nDhYmY!W3fO0$q@9eI?_z+;^S2jqde0C|<_O(klt(i4J%-(zTsY<_p^5|#m zt=93Fkh|sege|4lW{sNVsF48VK?G4!0?sfu5BE_#`_knK`Uw|9dU)*u#@cOP;_3sC zNDHKfHk7{qm?6!K;Pt@|32k{lKGR5~{Mq#q`ICB_8xt0g#0|h+FO#=Cl1+OQ48-xq z=h`}czEb(1`G)gat8>1hg$!+oXuL0{*3N>H@o-b&jkZ7-g@=HmN9QSlIoFx6G#Y)q?0iIAz=l>VkCun`LzJHXIB+IV5T)$-q?iF!+b14bynY-LxdwXQ2jolN6fN||0A=8L0OJx71%D*B{){QR z`-KB%ftu$O+)Q%M+W-*Qz++{w#$UD%k!&mQQYeuEqx8gdRGzdW4Wpd(X;kq!YFR2h z%y00R5nu5~#N}EbKSAEK>Tf)u#lHLyg0a>0F zjjQ{X3o72G(xs^Uc3W&d$&hM@tfGO~%wTf2=|Fo?9Qb{!aP+kouNy#G0D^SBSvrd@ z4H@j=^g&P64Ec3bufePV*A4mrk30Q?d0eX>@pmI3l8Nj6c(p;2^$NmbqC5%^UQLl5 zqKPL0VP)=vqI-B7k;%0uDl@>;!~Ym1eAqo9wOzp{g6d9pYXN4<2#; z-tHza!F_3lA>6#i8$<@(b(?{HI!ApG)N9u1vCpuU*`VdFRXjGfri;ezfIn~DbYmgj zVEA;NiAZzfUsGD=!0s%{bnB_Ru-!s@5y+7z@Um<0-idMfX?qsw*2JAAK~& zti8H7S%&1@a6J4iqwyLjkos`3c&`$${C1I-_I>z8f1dE~NFIb2Ts?p`n@>0^x-SqT z3Nr7lV`Qo4nhITWhK|x3_#>?Ub2)E<{yzEZlxc4VlEzsjg+x0)-~_N{HBWY#jlvwA zjJmr%Fy_uv%^aCG9ecR9afOHj9a^i=aw|KIf+2ssq*|OFZWi zyE&V57<65uACxJqeR|}KI&UY=rAqhrXy)H!+S#huF|0RakxP$?GMW|r`TaEb2f~^O z*2n0f7SAf}bF6)cizuP}h4}JK1iS>Wx&<=>z)W^RO%`D07>EnY;|K=*a?Z_oKPIdc zVmxCaWpTnzFY#1FB-u++iA{-po9OT(?$6h_n)bk(ZsM}6cu6JH1FxVTif)QjuG1J; zj)lU$Ub=aTlV%I;&nRvAC>{|-@ZkY7pe`@)Otq;7%l9ly#C_(}r)~|a$ZU~z#L%MID^z-RYBu0vc7AncVKr?I z>pd-+`)!9hk%GJhbU-)y+H#Pr`uW3Dz@IVTF+hT&f#a^1Y~kZna|GAPuMit&%km+R zF&k{l1l!I?F1wo9mlY2gAdiv3HjALRu|!!Pu8nyoWfB*r!c=n&^w+B>!yv*XJ`a1K zvv7pg;+{K9Exndf{1#rQQC)6LGa-{;I?87c!jYU>H-ilHA%g5$0nQ|8A1u(s86+72 zy5}YqEOJIzM8sh(#F*vpSpwxWWUVmJI8qe{EU1QnsOyQUlR<|x8idC%4P%8lcrH}z zozBS4hI>jLBNXbam16%Z{fDF8l2>gBJ!L`y6^a8iS}**tKvI-*Gb783M#_s?%8l~M zcMMEQQ;jQ>9jf5vK>URwx;p4twdONSW;?j6+XIIOwNg)|2ZzvtMXxSZne1C&*jcuC zPX8QY%{&qoP6CyL`VxaiDU%DaqQg${x#3+o;G-p=^K%gwTCWUjA*?7|M_ttADVLtPHF6nTQH^Xa zZkNK(OPGoWF9hE#TQQ%cdL)h~a`qRAJ<9W?$xiz~6xL;AmUYo#?#hk~YnYY(nx0C|fhA$jp zrh1e8z1FO7c(Jpdmsi7}Um79KEI&I0`f&E7-({k5axl;YbN#OfCN5jZa1&v#2#~Wi zw^j8+QX6UG*+C15j0s9I1#%?11wR8lLB6ebBOKk+WPHQUYCrQw%@x7*mh+W%%;nRc z)9ySftq;LCHgMDJTyY+kZa6gq(5zA)0@QQ+su>=_|H}i~0X~AMHO9AvP__Kq{q*q= z1!lv!arTdy0X&fUAk=Uun>A9O<`C-rX2?3iA=w)`1S-HLSc zA<^K8M_~nWH!^SBDZSbuS$gO75n;h_jf3c#2`r0)s<$FTEZ9|EJ|TdPBohkcU4%yg z7uP9_2v>sW?HY)>b6VsuG&tvV=dsdQKv+B(NS`kr(ai!#W}05$ZN}7cjrioC7cWu#`0!v-OYGwVfCX} zm=ypDC+El_{M;mHo;o#sr2t=*c3VJOP$xL51QN-zqPRi)FyLc&drEt$6G18F{?$o^ zS|<$TX;qv9XGp+=1kK6W{Y1#$mr(GtR=U~Q@LOp7;Ns*CM1#<)bquWO+dHEN-b#Y2 z5p0hdahYNAP7}K1t(z@uga$#u5Fj*L&b#=M)GJ<qxD8or}*l~nKfh7Q%j+( zSC8rXrHm3A04eJRCTp1pbng3ikHb2l76h3849o=pGQmK7NFG0dLq{K64R=rbfUPCY z*aK*y>fI1q#G@4agbf9&&xEMsb#)(rr}9O)niNg^M{y%XiG1QzyB4R(?5Ty}xJa&2 zT+>c|_+e)g=)@(-=zW-zU9iOisl}hoW2nx$2@S>6(rUMEL~sZU^v{JkX*Y?Z$z90w89H@pd@Og9Wwv@3IXO>_55} zH`EHms+7CV3>iZ7*+V8dqV2VhkSvsv$m2NCsl%+{7wK_!e{MafP1M?-)lxHR`~p!a zlhd66nPZ@R#4hiQ_`8|qM@mgD=1-1pI8PK_f7a9q^_Mh$^;{7vfAu%ay5`1{%yJ*Z zxYs<)4*@+K1afnL#$?#%Sc6Ce)Q2+f#k7iYfdq0mo?_5|8F2NVGcGJ>EPmRBwQ%T! zQMPS>h6N}^K+vRiurpbFQslh4=e3i*ASrgm`LlBgQbZ#&q^&Vn?p7jpYBtWgMF(T# z<_~WQmeWE&)#Ij*a{ikgQ}<`5PMBOGNc&uoULJK367%5X&Mt6attDPPhO@=}oX>cW z{il^6W(0`m%uJlH)g}byG6Sy;aL*-C|o$6 z@1-{fSlc!4g@KMwoeQcP^RVL_W6tA*Jt~5!6mO77#%D<|mlD`YBFKdVQA=tK;o!M3 zpx{DIhlUa|J0(|_Cs6|=wu3wtT9=H(KLiUC$ z6C{|WBi>B4%eKb5{6e!~ebgl`SISN$N;sx?Rq*(dir>y0 zD<$=<&sbSw!0P!{D7zc9Glh5~U6?8(9A3MIUtc}wUpn+V{yGSAJNRFmlQURvnW#)s zJ{SM~U-t0*e+XHEhE8#7NmN9$hEG%72e!6QZ2%(i4-ugR%!ui8B=d}-_Ylo-D_abNzb-@}b_3NNQW zbQ8Zo&{CROcB8Je=~Kf<7TA>pbpse^pITwKb#b`a8pZFD%(;>}VO9jLKbjS15l}K^ z{21cZBUjW}z`Mn>`@9!+&8PR3NMPF%h-=*U!$HX}X0-=7LLU+XkuhSg9ZI$z@a+}d zN>65jf8(0S+csJl(ZW1i)rX(w*AcHjzIYS$WqJCizLU^gh=$$V`MV7}ghBC-i?H(v z&`Sa^`zv3yPkoAE!dwqw(d1tXA+Y(6P-{|}Jqc>c{uZFMpeOJ>_)fRxMJ^K#>^}&y zX9)?|zYy!D%+NPaDt<2}$VO@Zuzeg$n|Px7>)`g{j|R7qhEgzw4#bf#yF2R58LdNK zg|%!h6~F$ueS!opMDby7p-&(c@I9X-V6`V4T`s`N&q1OQ@6MEbYQFL-WQGecYsIWN zZrKPSb>Pq3Qzq$LEC?)8z>Oyicdto1$!87<(~ z&zAD}95$gZ`-UpN!!K#wf~dq@u|{s4UK!P5X}adwN|) z=A~Kw>s139_`WdaX~%?IMyxr?$y|E`=@!;*A)28&1b@BErZM=1tD`KwW=_cG>9vqF z^o$lT^log-W|4qyYUn0TXEgOQPJ4*Z*rd?CM9baT?cIdE!(VcgSG)oK!Xxj#{LyBu z-ao29rF3jF;+pv8os@OHboqxr)f!BQa2pK98`IDM0>X~~1f{08vqy)@Mexu9n|D4K| zGx+&rvF0q)D01W+`d(yH!I3tI`tnR+kvxLH)NEYmiRMB-U^fNo3>(;Brse>@`H7Ao zKYrrq>aUl|zxOw$HW}3o#R<>rnz&MRKz9RnOYZ(yO@F7cxw^I_99ke(l`02^5R|n@ zR3-VJ8uU_AgF_0^h-3iE4JxV5mYV+cC+puI`i;B`;6JCc0sqPWb?xBU+sJ_gI5&WK zS3YCHeSc7zZ1h&G= zqJWQ?8`>7qAR&nA49duZF40VZ;+Uv!nQ{Y{Fa$iD#s1!_2vsLz!XMwT`Ak+A+4h)K zM2;QG6jLlM)O<^GO@Irhb(^5;X>8CDv!;4ma<;}#MPEnSm8DgtqRyD0|F>V4iK!%^ zqRHU%fBk^6gBALq5D47cnzZ(IL{TU5ao|a7QyChb>%f~rYgm_?hjm}~eU}SW3R++0Xzh91u6uKq2&eiV8*DaLnURadF`x3xjqNwsST)CD} zI7jM%Qoj~mFu_oCtxl`HY-k?Q$7_EirVJpHx^C~6aYg#QbxC|ZPQmHMrr3k|9OYgI z`Cq?7UomwQOTJRL>Vc-Fnjwl1#r?o{iOArd?fQgL*PRm>@e*! z@KPv3Rs=QcPpbJM)wyIx;Q^_x(h#5_y!;sv-!e!#S+)ZMbPFd~uSU zeTrM4__NOSg?kbj>SrP6?I}tZcR9U+tuObbUjUJfl*`JogK!$2hVW)H^e`n3+){7k z9wD-lx(53L5mW#H4+@ccl3uIMBj~;la@oLeDYp=Oaw#_M_`|C;LXe}$+~?s@8*zpL~=t#ouyuf-^ry_`)K~fS~d%|J^Ut?u`}-L7x7K&wU>vQv%4i>XYaSV&#zXv~P^? z6qe)_y34;$U!2`bx)c3Z(pV~ZoCiSc2nv7M!yxr#+)pz^g}1?7x4c!Iun2U7FbCy{pivU%NVaJeHRcR+0mYME`%7k?*I0(z0;7* z*WV3?5Tzlf$*FUXj~WXDA>43NM0KRRM)!BcG{TS=Qz2Q)n+i8Gc!U@}!B8(b!TaXK zLy@`j|FFtLUeWc<_+5EM1q;i!b2vI?k-U~AKl1_;!#Z{X05LTHX^q`5d3h5eN5hX@ zmxfandVyN0;2-xWilKa4&v7F|w?+yO;;9D6vO1x3s*rq*q-ocr8l%un<>_Yc%yS;c z=YnpMC6c?KXGVx)1{_dH_tF<`;6B9|ulcDDfO*jWH4ThL)C-Y}gX9OcvG*De`W4*; zH_N;H`^2v_mh!c>W0bG8H02?!>6!=weK8OkPRmrq6_*s_2jPE0X`LK(B%H2CRzt(- z@~L<6&OIq8!f^nDSOTUqZ<}x2g-EEsrBK_V^Z4-wVLI0~dGnRq_@I=5Ieqf&9D(J4pnNMd!JTJ?34YBPYUr!*CK$*N4k% z|B}W@0Tp5kq)i{gP5=p4!*em-mk;ZakGIQHR|e@e7h@3+!x^xlx7P7JvlA6yVs($P z9UHO?+Qe%OkE@>L1tJmGYFK@j-3mn_flvRdl}cqvESbAEu}moz#XJqI)>Jf^)`sc7 zt~@dwQ&H}&a+5``mMHL6*JyVxI8av9oRpSrHUW5m`*kZq>BZmtVk*nXqj`5&uxKE?1N80tkZO^7|D(GyDDJ`)}Wq@Ngjv2cmwIRh!cb#Z`0gC1RW zMJm1fn1HmwgFWlXv}K^0Gd-2F#KBKEF$W&RnX?C*EO)_J3SIjN7`t@oZzq+v0V6Qh zs_UvdZq7GhjBZgA6n|SQRiX=x7qiC}XtFOzu*RMeft^2r^TXBiUwH}!UFJ&1rP9X> zjzOeWs4m=;_0mfKQtf?Z+UsU*J&e^0kN-kd)2s?V=Q>X!)}Nl4v@&+;Tg&f3ft zT9jdH$Q9HV$K1F9riy3Luh)2$rKeFoZhDp1RBySeEAXkZX>tI%3I|vl>4>06T%%7n zRZsKCJ%6w3)*5DQkDL{v;aE?*%rx~P zF}&({K3eVAKKrR|!P6R#=`Ei^Qy1vL^bF&gJGOx+ZS6q1i>>efU_neov#mq1!<{f94T z-2HY6y^l_aLGJm12|vw_vhN?Q?jhpLb<^Nyj(~6dE>c{-R5Nw7_L0|?I^U)WP%PI2 zy8fa*iS@eQ+IPf!tYfys&jD>Ta={P#%#NyLz);E^@tvqJT%#TsxT!|c4VO#gDfBvR zL4njG>@m;PT|a+Azjso6M=)SK2CPdiQmdvJryfqf&Gbs`^6T&SO20bV|0+nunqh(o{~ z$b1j2VkJ`idgNu&omoE41;d9Z|N4G_+6QjX^Y(kr05f7iL*@MXw-@!&3TuDurAQ-N zaW=&tc0fN4nl!^?l|~mF57kO8|n*>6hF94Fj57YNdi&TUCb9%6}RF0g|Xq z5Ltxhds5KPqSq?q>7+Qzl%i3d8_ZXijf@vU-w$u5&cE(AaowI>RP4N@i~+q)eSWKL zLFIsEB{OF&;|~6c=6VG(vWJT=k$xj-x(0{(y#*k-3)JumnI$)8i4K;E*>(UEXEdrbW8kfY3 z7uJBqoK2S70(pj10t2<9D=3!^C=K?Z!akd$1bTvH#Lu{*H5cWU_y}(Do7Ac|Y1bmM zhBh;byIR}we2CQ(Q8K$ijm(hSbjj&hjn_?)Qu6nB#gug;)2eRi(D2UQSTgwAUD_9U zn#$!4b!YE%HK~*kYFfdPg#`VtE1)y3_? z|0l&?r^wUd!sx6CuQE`w#k$b^Fk09Fn^&qX%wdH0&ch5H3hiB>@eUD|eNK7F)MZ>FYlU_UrAtCKAP0 zIx7=*Y2T?lm3}gwt~3VHuU5lW-!v$Rdr|y2wUDm74;qvM5lz@fdcz)YM;U`_Ez-*z ziys#EQqxcn2oyqR$5EB-&9kB+QQ)%)^!#%m_1T`6mXkc4k zHuLtLApfUfZ*@K^8H>x@Jg(HXBf41S7&E{bGcw(P48E&)2FpgOk-=IB5V44!YJ9@n zkz0QjuDldB0J^Je08AzVx~1Ip*=5n?9|!Jh>b1!0oK`Y3pz8t7sJ-P-KhGS4S293C z8n>CepDM@GjCgiIVivoF%lXp@pkvM_N;`bpNhU~Ngp8bm8)s7}aJ3?H$16Ip&~V(q z09;&u6P$KP1D`;{wFO0$_@8`_K@BEIT9vx};Pwbg8uzAq<$Oy#7o^S%8q*U*=R^ot zgH>B-YWw@2Bgy_&0KwM1v2*dEq7ylwXfJ5oQGU*TKCt~yUGBdF%n3S1pJ6zL{JQzQ zNU_s!jApeeq53fQjc4Am2edX9ZgnBxQORcMu@H;_NF;Fmy_}LxO4;8;lsx;po&o** z1(2=n`%lyD_bC#eTX-9XLK{3=0B@-XYpP4*?%fuuN7(7_XwauI8V=uXX9p|}>A!Fu zXsM4CCR6{cetK$Wqp0Zltd&QJ6!ONJREW|I(T|h$E`jw4C**n~PhH6%7Uk;wCveucYOnXAoLJuJ&uDW+Y7dHO9C`B0 zGl?Ob5|<|U?89U;Qo>QL&)-4w)F7c_Ha~-&=OIZ{@!VOd67}jUR82syMCKP9^S5DY zs~PF9ojd|3W)Yx~HhxB-sv^;&qT!-a-9Jp?Hxy0j6HUEz6^Efd3OwkWiXE59@K^aw z=f3pjQ~7Yo-0l_k=Ad5*mho**fBC%uXx#d>!1^_moqn4u!jVWFvS=0o}rf ztr{#4QRBTS9`c*(%)26RR^81d#ryZT;A%c?=Hp1ENl7j9YCLcV_f$$RJbz6kG~QlT zCsgmdAu{}lxH8{GJoZ0UkwrncXUC*>_Q@*cQ!A-2HWYcR<+GDNs_QE8l{yl8LE2=xT!K8v87oZ&n@Tc~wPsWpy9M zWLJn47dOPJRE~wf+@!T3n^k+Ge}A7}?oIh}YWeq%Q?J-Lej)-M0%r_k%I**kH>LP% zvZ=?UFd%bXHQP!VHPyWE96`rXsdUY=rvhDF?S^|^&`-RnZ&w1IPb9;-vm5Lrb z^9J!iODK~9)wEc1$D6y1iDwHxvk=Yd9mHg1OChbWPD}AQzEa7_InoJmtgkS^LI@`5 zle#{G)L2G9C9Q;Ah9$LS4o1baia1D8nK&W?O=OJ?3#s%Emx*h(4|9N}x{<@;o|7)Q zB7C1a-9(*)kvWm-6|6y*e}5w|H9b?K6_9Nxg)N{rNqEGo*^3bOje0dJ<_8+*0P|9@ z9T%@;n*1E%%@$8yYRL0Rt_dqKyjIgxc~(gLq|SJo)urvYhJ1v@)N~>*vQNXSY%1Hj`z4sSJQQ+P&LpLQ|L zqB6PaQ`V?d3mGZ*lsd>>8Yw#Npv%+r(oXBO@Z@iUUavEMefza~oAc$>>USQDCUPq! z&XTa6$yD=)5#I0C99>SmHIGP|;{ec3R7OIDTv89Rg2)eAU;lrY%a}#z6`nOf$$I>go=03U5<(Oh`NlVy{aO;`t+mbQs5{5TPd$& z-y6L;ekl`;#}Vqz2N&?TFM)-^4`;H}tvNcRwINQ?kR{j25$jmf z{GVm#o@jN5Q?my0L=t*>rL#|w-Q;-SN9pLbxR_`ae~}1+@-c5>j?pAGiqD0iX5YZ$ zUQOe@PRXj~WLfo>h#<=>0GdFByt;Rx`m>nYwXqvspHzdn!3b-j=gE?c&V1~Dsh7=< zXO$Lh70EXsZESqA605?d-_4NK-<7a^m>rIS-J4P?+r<_4`~u$BpH%&}Qkr^4Cs3`g z@%HZriYKOGE@f1_sYeAqW%TbAo%*VP|D>&~1$sZkp9z5C5&^0p>q7d}TTa<(*R=?Gks|G&=(QM~bR7(`>?`o*9x-t00ZgY?m_Xt*5Qh z61^0SxCW7`M`|L;pG&yZor#q-lhj@WBWo{eaPCBmEx)%S^+AyJ_333|}-f7`F{$MTp z(z~#TW5i)p6`O{F_wcUjn2UPPI6)~2rtIzOCj@`buiAU5N+|;eVo7up1K}dKB~Xg8 zk&85~0p2UQg1R=RWgbi9@y;DO{$)tiycYn?i6Zj4GHHMBVW28wr(b#-iJ6Nla_MDB z(h~4FN+pX0tJ*Z-fuAEs9I1txg{H`|m*Cyzby%7K9TCg2{ed`=IDhq&meU_ekvl*2 zL!@uEmvq7U&pk5|b_no$#Uovh#xmsFVtN2-c96GSJYH)zF91?h`HNC-up9_batT&$tyS zpcz!FIrZ?R>|~&x<5Csyr1F!oNtvaW^#Sj=%RTHxQvvkw@4PkAOaa2dne4NUMGQM2 zH6$a!5Dlj`tb8~nG?5CGtHtJsDV$DxP!ddt%HwtRMF<_x7~*exc+=k5VJVUW|Bzx_ zT33nuYvHj{I3cbCHpr>}x!b2T7Joc5QY1fr)TA?5Qyn0}O`||!w+DFwqc3>bwt1_e za$bE9_$HsSopa(rZ{oGh=DX%L3p>pMMt`#fR0F&?eS+?>jiVi@g`hCcRS#Alu1$mA zZewIfQhy=iP(nxcn0e8O@7zSvplBi)^x<nLnkz&L?cf>ARmWv_j43J+@WP;W@EH9`*Od-P?1OS)p;&q0bKncF zyX%Ct*ZKoqzI0qw86M;pR=goTo110G1{9k_qLANbg0Z+;X&>^6qJ6tWbdxxJ8}8x0d8h}=4RBIo<``VZx+n~M)epRJ+i*F``BzZH4A-9HdTGssc0DxwQ% zU+(qp9yUC@-0IdJQO66w{wjLEmr;17l z4N5r=esZWt5T;5*x-hI?p~ZZ}ngPs7QRbE}>*`wI9F*bx3N?)3d0-))s7P z@xHHKW{fCSR^0DGl%Wg?kz5N~8x&^)Q#j5cizgNiyj}bA9}fZ_5o?~mMV_0<`Euxx z^|c`oBf#|y%M5H0UHHHjFeU;V$MOGpZZJ^)G-m7`2=X?+{#C@Vseo{e0eDvceC#XJ ztqf)z>eRY9J#ztT>?~|dycD;ra2vo2AXbrr9^%$QU$CY4Di(qpYI^gdF;w9#pcH~A zQS(Z;b5Le&*l~VZ$XYV3OX!M0UV`%=T6mVHc#bMOi$D*5Kqn;&8nu9!|x0_8zCDEhTVtui3nigh8IP

    Zq&FYG9ITUKCwBp#a5(^fCC*r+lb3L*4%%~ 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�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

    cvH2ulEZl+D^no=5Wi+uL}>lX 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 z zUQo+Ee0)#hNtEFRyYDeOyOZjbn_bbLR5U<IT)&sbL5o^@c!mY zTQ9825A+RZd(8x-5Cn|mtUbmOLhE3(O@yXtur3m6j7qQ!E2K(gm8yeK1c})*S;5M8 zRDgNBUf?OU?CJ7s>ocOY8dzKoDo%FEC4m%i;Mwbna*D{wPQwUm|2L{Cj>0k} z2yP}XFbon~7yt1L8B(72soW+mF6~!(Uea3JXQw>CuUyI~N7~T<@+JUAI7pM50e@J( ztraH~$pStwfRd@~{LS`O~pW6<s@$^paIW$T<*q0g(N z$u2#Ux?0pAxWWOa!1>7M|vJ+RUsrXzA;m z79CI|#aeb4a6NW!b3w-Wk*+(pgz|h~%J+^u z7A{lFD21$*?zYr^Ld5!;-2Cl$-$A0x(v~KmNX>Ofo^l0VKl5rGB#Df%K#68Rp;@d&*v$L$ zh+4aZB9(hp!y8p&CJkfp*>^~w1uBGbiQ@WJEoHTE+LBr^X>v+Q*5sqMQ92hT`GWveRuqxA>*;3 zVW_5qUa#aHq}ghW=g<0(!?uxDziEjM>(+8*=k~+%E}C$vtJq79F4ZTq>X}5hOAzCV z{AEaT`Q6JWBX7yWZ+a3;!D59XcaHR~9Lo}S0>HnqhjOi{n@7$ zli#g5d>is32P;zgM!BQpca2PNchT?eP!szDPG)jz=?1jPBVJ4AJsbF0v|WqCqPHYG z6ItHu0VHQ|iNkjIVe*cWi#^W4UiR{$ei#}c4^DmYMAn;|cQO&m2k5(!FLoX8H8%_9 z6GDYBVGP5uH;4O56YtaT_eTx4#3qtzTC*4Wy|cIB5-4-AV~LhUHbwu=N17Hc{hg<4 zZFFPMv+FQ_Dz*7yrg4qIWtYLVPu-Hi1NxPNLJNZlPPIUEO!71og#!kHI`X*(<;}=1 z2#LT_Mv5e;1i=q6#$HBrQ8^$X26$k9R!p@RgwGeGmCwRKV$nMWyJ3+te|lfcj#v*1 zu=`-I)YWj1Ma)_`iF=K7YGYNygK|4}B3v)4(davFm^~J%6qIca_t_ox&fS(!A~mSx zgKYb?BAOD11a4eO9D3v2_%oI2ZR*`JZnC)Keef+t*e!B!MU#{!IcWnKE;W57%J@An zG!&aIXx0=gFC4#_!?HsT1}V|IAVrW+^Dq-m)0(h&= zW$Chk4YVNDxt@SD0p{;q{as?aQ#s&|Nf?;%vZCWopbfCD#r7Cv{<+9z9;A3oq-dX4 z*{g-fuYzR&l4?Id+T`jxEC3eHrv^SV>%P8810_dm-2n4x(C4RbUo*zHPw)1&#h4HN z_wxx;i2axNR6YQ(qisl?(c-^9kG-!v`TS?7ObW>Ior`-9=s-ey6hO_wyr#m3K~KT5 z2wv~Hf{GYXiU6!K5R};j3=Bs;xFyeBoNnG|2Yg!pF8ifE%w8X!ja>&#TvWXfol}&6 z+9F#q{!^DAuvxyXCN)?bH7;A|@Xvat)4b%^kul!0%nvz~Lo;R*(^RKcan>WZ%R_25cOkAAMbSxEL1=QFRqJ?@$sk~Rfiw)Eb z6LlyM)skcV;|+rF0}{s`BqSqKIqu~Z<^<2ZaKAAbF~BT>>bJ%ALx)FW+K3N&y(Rnl zU9w$eJ;57m&hLFjm3NqTL9%51&&zAnBLjF2gH7=U(|X{od^3O`3hV!={DIHdzPRlByJs)}h?hny3w#5Aca@pW*wUAUuaw z8rjU<_tfEui5zgXbLg11ztLh$G5BrupUuOO&CuZWu)}S;`(%nAx!Wa)5fa~oRcCyo z%`7VLkfko%0tMsC7t;b%L}2*}k|9B!mEomGEhJQ%42!Sl&6$H}V*|BG5X?Z;ontC* z6a?RD$1d$BRv06aSr66o?|t!zFXyFoaxjd)-+cY8C{M8>a%zG$O6IA{O!hms8Bkxu zwC*=H2RbUJoVJ;k6^7^URp*{wZ5+f9b zZMgz8CP8Rdt*<3QO|g1E!l{Ce!9+tKk_b((YZGJ_(ng)h-1Sc1T2Bdas90OPV5uc+j{QD zpKX}8KgKpz72}LYcmA|3U;Jr{c$|)Sxk>xqX2eVA?Esi#{tA91rs^-dw;15Ds{(J> zh{*yFi2{A62kLJ_f^ZOFs&Q@<#Pb;Hj?$wx&?|X4k~1euZ!cHUl$qI7!|@a19dcZh{goFUZOqK`6LIs8by*D2K`zCs)9%9)yJG%|pZoAxC9fV=650^0kU^GC8LZKg+JHOYS@&RSyE=qBAucX&JUQ#S# zZLW>|tNF4nb1`AXvc~_P--8eFC?ITH>`Q-EJ3q*E9^=9P%;-{B7v{MPi*&8~$`%ca zKvG?D-aA%acf6tDB!~yDf_)FG>j@1)!+h&t9we&px}f8sAOUhF0Jx7}!9x&C@+bHd zW)bad2;+G2gdvdGA_^I9O)&)I@@U^a6$9>J3WdR8aurOCm=bB-dL?l*`YJPe9D`5< z`*YN4C#A;YBR{^ntLCp1af)dX#3%)All3N2Xc-j*!;mCvVY56%_uF5@n6IY`1wJRo zH%t*>jEug|KR4qWFpnbLS9#9+WZvf8vj4pgR}*n6;ehiQSF42rsPR6J>0E6{zJ*1S zlDvT&->;LR-xiDel+wUyInZb_%2uBUzcwgQiu!)FK*K5Db1ca>gHh15{sIfWo?Wdt zHSH81xrbrjHF=q>?vr9(Dd-TV#i@p!t33={>@i7BHRlu2g>h-!IYuxF971)@=M6JL z`JE&q(iQHeNk@IRksQSps);qqda3?ykX1LE6%`F z{)ic18jHe#=OqONX;B`(ZgbK(v`3AT$<+c&_bixdO82sV8K;?=6-u7#q{Vn zdI1MGOXxSsAor*ptxvyukl&CcfIKA7qo+CkqgCHj3ucfZX?}%C<~DcIsV!m+a_G7) z|7`rE*7#~`iQqZ_r(PyPgLo&y2ymH%0sV%_&B+k749y7ZeQwabV<^=f>P&q&_Z)KK zeznss#o$V6z!;2KA7>6wwu)#m5&)AN+5rOtySelNxXZAihX83h#bd0bGOP5GWS69? zM8uR-=>1=Eq8*Tk7vkbz$+x#ZcBp#BaekU@&?4jBw=0up3_x_xH3TyH#E_0S`s~IZ zlFAQB7M6y?^9FR<`Q;OtJD>BD=`~+sbLn;WjvLgBmIjt-MA0d`nL5uqPT;b*ZKVTC zqp6K0>$_+7(!>NnyVhd2o$$H?trueNCqt&@T-HEY!F9r6(D)bpJ{eNcNRmr)B_s2d&V&XHT}!W4bcoR-TWqA%e%~`Yd%u9?LvM zQ{D-Nvb0}5emhyeCKw`jjw|4&TID^93Ugv0TANoBw-2ndM7XGVtJ62(Y;b}Ld=)d# zF29MGaFHKHxIXFRCjRJML%jH}1$vd^S=bkvlBvt%c`}F@P1ZqTu9>`5C2@t^*2Km|j|Y==M3mGR#4wD&5mzVpV?Ps3Q_br2!I7o&?{iVViFeq> z<1`+rdrlmMW484QtnEZVUd+zx>pi_4%N4>(AN7kW1-3C_`}@gvCu|P%)rUAsyHX2I zefQAna@Jji#rKtV#3$-2fxbWne;`9cE{>QHhIZpwuk?OvM^qcRmu|dQb9YaUs(|Me zLqVJf>p9v;a@8CWKpbb!1aQ&(4ngE?)+WvkXe-fA(&^9ZYZTN$<<#ym7@pyo=N_}Hzj8qNu-`qVLNHH+Hh>(gAUGb7%}=Bqi6rzrV?*`;V;avTM4$}$T9poJ{m+$GSz z0P)JecU&`;)^>lc3_NR@ckc+{H@yazbE*xCto~jn;jYF}vUpk|txe1BG~F%hX9M`H z^z1jtlOQPvqzgquYMAbutFQCZd8iqD`<$<}UvZD%-&y|(0%&D+8j}h`6Iol2(@@#+ z+W+nFs^80}k`@BeIk+Wru98xDTy_u^01(4b+$&9irrLZd1kDAa57)PS8@FeoN0nG~ zPYx(f;|`+N7b0_%qXB%)S;)S^aaMbxplW+#*?ezlA4I%Kvi(rPO2d?Cclo|m=3by< zmZ{^S%6--78>7CQ0BNj*S1H88g*U)u&gq7V30a?AXO#l|cy<^UqekF8J2pQw7VvUX zHi(htp!(#OMwfV8&o#-FuIn3K?Q3YoMWsLX`Q?wS*KWxXwPDF($7lemZpNdZ_-X=B z((PHmdKI!IIl&|hwRMv6epSjsr(J)ekgkBn6A40+#L)V0w){uC7u*QfmAH!+-`iwt zQr@oiN%p$k3_P=8ob4+T?Gw+o&*J249WdE?&L3u5R@ytlp(5f1W`3IwRe#2hca>nBy3k&^ijwwP|W=`)V>`9XF(Wo@M&~H*s*s^w<}C}8%P~q z>@rNB>{WJLCikyI9wQ@w<9khpX`=Dec6IA_DRXt?lv*qi#+540!f}uK4K|gxGMRt7 z4r(C>gx;oZ@bu_V=J;XBxe4Iq`G&Rd2tUEtYAz-GTM<(3llPBl3*w92FH)?L?+Bjd zbeiT;d~kuzo!y^OfR{-lybJN>VGw2PiDp15SSjVBo345H=7M2OaraRQL)Z#+P`Q37 zo6s3ZqC?aZ3TS;jl|bs*c>0T!XnwfR&^ZSizB?gl3wnmQ`K#>2JG z0B~=guZgna@2+k93JFvoaJQpjkURJ>N!}9VC}1p$wMs8h8BEO+M@qGG-AX0Jvp1t} zveaz${CitKUV70DM42%a0!}4Qt7+oPcwRtt|8RWYnjBd@f9b6C$1WKgr6Mbz6Uq1e zO{_wgE*&79Ij)2+PiQ7kW@3vO7X9_|<8tT?T4gRx3Mj%O);N8bn~-qnqC3=ntd$G% zRWV{HJZ+d$?C`z}rGF_EtVzNBEk1ku3;binL+KEwV}Qroj!ZS+Uu03Y#Epzq0*MVs zd?hli3VAh7>V5!`{vMvz{L=c3hb4inL2729a~UlLx&!f7sW% zv>S>P-K)kn8%Eg-v)PGyQUzmICVM;Nfm&Gbm-jkq<;hCrV5JEe$>)zdW@YZmGgxjU zcXB^LI{~}Dbwz>|triF|Sx@?l+Rh~vMZ&G7msQkW@;fRGQLzm}ZzQH7+@mtywC2{XsEcR8W01$0-N(Sug23-0}~g z1cf&f65swlIsA+=nY%t&d@za4W@O9mg$RtgX5jdoG!B^!&X$H;dZt{7DlVUgPMN@+ z->1+AV19J}_qd{kFy3yi?lbO*fy_41Ng3g7po|ki7Nv3R2te7++5RrK@?|LH_k&mZZ zIK+!?DT~g&UGJSw2e%Mrd|S_MB%9A}jHO2pH8NNjB%N{EwmXc0?xwGnbI*kl4zV0& zfy1toI&N+zG?idkEa7uJL0C@rdoUsFw}K3oV15Yx7Dk{)!jbTapIxm3iq8iWlglAs z<#oy>mWl_$s8OZMvCUc_y$i_Y?8-WLY(1=__zvEWxDU@(m;lmV@8S z)T?5R2Lvaa4I#29RRQ0=iu6*N?uMID8GKkgI}R9Ojt1HQMGo#7Bv^8*nKhJOy^AB? z%|~~uPY&+AG+qaDo&lMWpn!W1TJ*-qQkc~9X~WUl0TnIB=o8^@5`tPkl188#35Ec5cBiGl!# z=Gj~z69he*ITcgK$Z)NOXA_SX2eFT?mg->lwCAWs1M|7xq31SDl0-ktuK0zEH zt0)ILHq#YV1L@R(?{b3C@CEv$XTP{jMYA=}vSekq@qBV1u`tTj%RpOEPcRb-=vy?m zvzHxxLd_O{@5s(H3c?c?r(v#Dy&G3CBp^;86IQGR)|{QJd|8Voed!@zJpf~z2)Y0e zZJpu6<2>1^1;F8A(D{?VsaKPAT!D1sDLtKk%$ICjmRbWdt}c`z!HR!VEMB(fppgWHg+xx1UJ-#=go7j89Z$xo~@36x2vyU;Xwydl;P~GuK)^ zNnUGKcGMFrDwiyykZgVqdP@es-OiDgBS>Rid;bzTd0cyLfMf=EE3S|P%G)kG*hbQ# zyd;o1-1=@OI7OIffQ4x1=PJ!C`}scAu4xlQfj=HDi>8C3?UPkG0Cd|uAF>Q~vkL*` z00s>3l6;)X%4A=+{5OW|rBv|pYAgOnhUr42GMD@Yjnd7 z_;mj#z$#o$fA<+~GCXVUhIw99#-&%xiSsP3@jR%WWjzB&T^V4*;MoFzXy3&<3fu-; z8CPN4^=LU7YwE5GaMSuU^Gk{(gbA?2go&zGYXhF(|QpRO+$;Dig(rIHG&(i1ch zUl>pTsiIYdQSZ;See^DMW70L{>prq^Parpp&2KzXXy&y#FaAPDCp!S-MceM-YuVLKqJ)s>?&Pgm39EpC7Q(A z)Lc-=Mv*F)SN0w^^!_D&$f@9wyW~}{?Uj4Hv(mip`jBH=i*e7kmp*f8rkROfGLQ16n(-rK7a+x1^@|r5(JvBN0qiI!PhVKT}m(SM{%yzYOv`K!Xq{} zWf;*kWqojQnWYz%Yt*3S1fuB*im#{nmTg`La4wqv_)u-?_6Ima9555?i%#`idUHVM z48r@200@~cY{~UxKFogzliQz7KOoXSAXr}R8GC}vbpo!QB_}lDAb5nSlHcjH1{)nw|}2HnBB6Yt>bASdn|Hq^vv)Nng@zfGHHpKiC0RWd9)ipcE&s; zkQ(xJo$%4-nYssiv|dEkbuh!a;Q;nkwaSe*rC%7wM>jpPr`wrYgu@w`i`wcA*PYne z<+V|;r8|fZMgN{iGak(aW{X`GaYlT=&kI!3Yv-o65V}1ean+zNzXL}RI(W0 zzX)zPD!>jM;3QjqEnLL^_^m~x_52HSx1n!@XyVbG(TA5yH!^A~N%DT&)BO)>GU$&1 zMk?;~^wVgOgUMNRkx`ho(gyfWfN@a(><*sl!Dl2r*aJai+ujgfe`ESFfcC`FzlBEO zoU%XC>A`cYkXN>*q>r8X%xfe3&?)z@Z5zja_mJaSQPxHQN5+0JGP(@(Kbo{2?IHU?5OzeV z+t0whk_WOEJD$TmlNSK&t8yp@Dt4E?^QvD$L(WUhd+>8!=PQ)cLaO*+p7ZH^3XXmq zEQ0#^tD&OliNvS2wb+%12a%d24bb)n{Ao#y+A-lBuju0v@a3<_g!9u8V4^|kdr+p1 zWYAE-aIx$Fh)J#Y_nhGG|J>Ydcf~G!=yk%a(5=T-c&dkL=$ClB%yAL40HEN^QBELv zh0WZ)z?s_Au7i91On>|%NQ)6)#I*liKpH!NxVM28$+S${v*Kg>`K5k;U?U!U(O#?n z1Cl^(zxCEHdX**#na4)km-*ZW7dH3+IpG4{zx`{hH&>5wnl{gwDE@l;;Z)pDlAiro zf_;|=`EqsrkKlnOm=rJBuywB@G7v8-h=VvVaw8Xibe7n;YBN&tfLJ`y`U9t;0sjLl z@a{d4%|wt?FBnjE+f26S|AcY-=mUr}a0I3)a>Yak0RjRrZ0PWzLkSQkQmhz&gT;&w z6*A-~KmrF2JHC)4xy9rcC4FGfXz7Aw%a%E2(!c=&2TmL89VC*qPoO|y;iZk4@ZsUWF+;oql4O7LwVCgk_#Z5SC}B zp=R1?p-JQsM}D4#5nYM0xhSI!t)@XkA7~_2qij+j01s49*G3wh3jbu^ipK3BYE>Yb zYDE!hG*?6)WbkK3c0{BX1a;N{C}4m~aPh=?>Om2O6^P6+2OxqRazuV=kY{Uv1R6*l z8E}w+V1f)Lx1tqlKsW#f6LN%?M2#ZqngnD48X60IOc9h7B$mX)A4@n=h*nxH(ZUck zur$+6G`N7nj5GL%gW^)92)H#M^JWIv}8-11)r<|pMeA;4&h16LD zhL-zL%u!1{HPun{vEm+9Oxr1bQQ%R?5sdV)N2(;LksN-d?*9>$71gbg9eYrGU1QERU1_;|8O;L23@hO-Nq>aM1QU&L#fT#=sGu(nHRzth5INM4!%a8{OccRE9%VdH zEfBop6oITO#S%=O#K;m;go;&GOi;lC1sz;e?rCW$I&xetX9V-;umLu6Mri(JzD4M# z&wcyd2qpV7yR4Vg%;`{H2ft7F^<_20tc8h-5_mGMl;m6=u(#ojm1ytyI?~e z6{$(ZtU?p~K@XN-IeIanZIpAJ2+{PbZ9`5_P7)Z+z2;LSQ@ zKm!ucV21t>ZUeI7TY7k~0TK`)35p{S6rW|EIBWrInafWa%3x+q8;vpP!wUeld(=d;YHI1}-dfnm&HoHmfNbAwLs>O+zt~8RY@fLgKXM zWds2M+Z3`q1=khfIsb8pgAufr21Kagh`e&bcam@iB&4AYNdV3e%aevT zFZT#MJ|Yy7Fhquq2c*@FLv{**In0$*bK#Ze3JcLs^2XGIXGCL?W#-0<#Pv@c;6V=# z#-k-EA(VPtjuJ2|rL8~$s#6N^#S~eSn&5=h2wt90e#BLyJU9$lcAiltyw>QEh!K0J zf+4TQ;ZwquAs%yO$e>07(}=9ucO`LK%9){Y0alm5G%-WqLhZjun{SE z4s>Ab8O9LV8rxWvnC)yG>Ht|BKL#_@G;%EOjm;xJJJSA+%|b2(gi$`3%2bYL7+2~= z^N#8dTE2B4{$PcZPQ?oQvHy<=EV`X+S*HzX7>Gl)pyxQxIfxBH0-c0tH|i3I3|7E{ zb_q>r)@E)Auvh(Ivq3rlD^NsO?fry9Io zr6zU7?Dc{g;G~f`$(IXWkd!LGTGqz{(ociBE>JdQIVPb(A7~(how(JopZ(Y?LFR1n zF}q}K3M|U7eNH!J2=M1L{Fv+~nR3Ip+>WOMGSt6D^{Y2=w`?HgtURL0Z+I$d70ra6N9p!OAp5QV@P|J1p(;y& zVN^Edg&^>XJ5T_@691;fP+OT{&d3$eo8hcDK7aK3aF_!b3^H4=VQ#!M-$M{05Z~Ds z;txRJ9va!ng7o(s+e3fNwmafR1v+p7QWpx3Tusv;PE3#sq*{XLVMb1PW=C-stgP zXndBwQDL)zgwzP0ZFHgjHN*|bOBh8-)ja}v@xTeR01wzeY*`uEB!?&2kXn5K3l#YA6j4e1H-}ff4Y;()q+5HrdlX)gClK69hsNL_scA z*=v14A^!l>79a;6WQ!5lP<5EW9A zZrw4qM61<=@5Dq)G*#v)!H%R|75o7S{?v+mK^ADi9(2_dY|oo01`oVRXYiCnpyNBf zCTvPgyw#%+`T-vZ;XU4_Zqg&={iBW12{J97=J6arDn>(k7H9}c=xHI}A&R4!Vw+SX zoBvE?%yG{{au5e`|w%~=5nEddaaqzCi>34DME(F-K(ffHoF4|sqF zuz*y_&JtXSN0iSmS(~xd5&jfGyybxsWSP?S#Fj0=7hFOAXh9#e019Mh?PU*EWZf@5 z!V1g)V#*8l1g0M?W@G}4jCdVO#7G~2!MPzp9H1SLxDFFkV;x{Y7T|$cNkKU(h5)bt z5c~i!alm1S2I9pgnU-l=03mML!EUZ89{@s|)+5i@&*e!#yg62I9@Dx-;S&;&WBtAD1l?exP$$(W>X^xPdgo+tP0fO?tgis`O2F9h`z!tbc7Gyyl7=grW=GfTW7F>ZGbOB=Z4;CCj z3g}B#ITcrgQAsx0sF9jg1|}~mAS5h-A|aSz=4%UV9q>R>93)n{jX_I!Dpb6IWFS@+ zU;&k80TVEc49?LHc%>5jKx$@5nD&yHW~|1}#pAK5ZK^3BgsjMp>}`H5AOE-*&~Sin z_Lv*&kDZEJWA!G{Y*uDOz%tG0jX6eW&|4HrA)pLubLwBAq?mMaTR53av{uCZIm8M~ zOufX;c3|WQY=;S$7Hb_EQ+|;eWD9|G92v~yscKw$^i&i$K~w05#kDHlupHj_Wa5|s zBGfA3Z0#FLA_R2DrBc)rTufhPg}VY+AvnSk>>QyOs$hiWqKxGOH3SKOfD<^>wPGt` zU4dlO!4cqr!d^jkU_s_7mJy-SWR85tKzz*!7 z0O;xqHDbXT(1GrDu43_w6`TQLCC3$H0TL*zX!1l45P=W~0TD#O7XR?T7HFghjDVrg zkuW)D(Sp-MEUjQAEk%r_nSif`9IdsHulY6vo06=XiYy?sulu^G$(9?+aoD$gfHBD! z%=(OE^(ke!o6f4zZ{{g0U4|p zS(9B1hbjaGAejfzg;`>R8JPeC@PHUN0k%eNq99@^ffyJ>{vv@I?5m6H>x$^X z7%;^WTt&Ue>tDKV>jGF`&dwt&fs3fX4xE88IaU|Yf$t(gAOGk<9dvLIECFIIEEY8E z60m?6hymbSK^|Pe9jrhU2tm2fQAjNDVt5ldL2v|La`#?{1CNRLo-c-s?EA8B`<8OZ z!f%@b0uYWtj}Z-G(WCw{R?7CToHP>v8>axX8=XjoGSy!JEsX)El8+^DH!X0#jgwen z^7?GATu?#kM(PUufam-G5ZGKMj?f6n6L)FOs1gW(Fi0OL0S|;NuQXrZ%xCjG0SG*C z){w#B_}NAk$P5z>YiVK=)YuJ#QC3h4z1Ap4W();D8qrE{L@0AcJfR5~fg($B!X|7W zUqK&8MtF(=6Li5H>*E=`ff{HJ6DYwEB!OZfmb~~PFaP@G8rNQqzAG=L8V&S;6Es#A zq+3k)PZnfL7BB)AKtT^Afx;^6wITr?j1(BuK^_!!9yoy*n1EPNz%wm`Sd2{Hou&FD z8MR?7K`%;Gix^eY3`B@>DVs7_yD2J%Y;E47LB?Zbz^MK*DrbjVedbQme?%`t)%B$_;p*IK!XfchjuA&W}~!8nt1Ia_u* zJ24e-?b^OD-cZXxv`amcSF+xm;6};cQe7AU!9RXWCuhhfw*`(d!9ru}6%=nzBbFA# zK{YzT6R?32?5{Bmw_**f>`+~RvGJ+BEA5r^yZ^Fu9~i+M-?1F10d>c;@E*Y)WPuUn zG!VQ&!Xkkb*8#Q~HBmFG6HEY8!%0YNMh9pUGAFJs&N}|sIo0>c1fBe!;r%8EEbQWc!zNDc^ZAAuABj--HB{s0JwfDk}{5OhxGVAMJ5 zFc)lgv~ZtM&alg2?UYR!^;V|$CCW+0 z6(C0=-(+wTH_SpF7RoyrM{=p;lK_g5z5->#;9KjJ_0UaR0 z6|f56hyfJb0C@YfcwZ}dM{!a2z!iW%jTHtZkLkvKI++GIAppXt4}z(adVr6t5XwP| zxmcQ>?5oSc5Hff^GPoU#0UZ!9Kt{%lZ887Ma=je}2mGmB+uP9Gj4+o)vV)JILaSdz z4Wl~5f|hiD^-({`3nNrXRv5>576BO?fq*UuPd*W@mb!3}%> zIDU69fSlaQp`lffInYLx(1%#~V@S!4`0iYMOx4h&ZT6y=ay4siS(;8v@o> zy{V77A;53@nrz6TX{--nK9U=)FF0Md8=a&Z65Q#F3ed_%xM6fao?u2W8;YlYp~^u0 z;O#v_a0nGhNop6iRZ<;>&C?OI0jEF_wE$6_u$*xripA>i2*Hte^omr`Qa1D(tN^c6 zD6uMmn_u*B+W`}tYw+j`?*Hh73ixP0<2mi*;!@qHBbW$*v4jh_P7A~f6Ht*wD;5)o z!FE(O74XazEbMp}bt6A=2bklYaF&)xJ^h0^AC&sl)5jpZuOSFR)^9yP3<5+5kU&0w z0P#_HFrh*}eC#abYQdhI%v zEZMMOw|)geh0!Coj37ON#0W0kw@j8WD#U0{8ozMTlz}tY3>qy+&?M241$YXoXo;iYOHP;wA%Hmr3e3@dMO&77Rta0LSJxf@!iOeNxQO}k=1LYU=aFprf?+k3 zB2lo+*>Z(X&Mq+d@O?oehYKA4X#fz1AzXN&g%(m!VTmQESYZW6mRMnl9a^XYg(dJ> zLWLAwsDXwdVDOIy8a&LQh%5Byq6?hPK;jE0ekf^+EwVV{4I|#TBa1BR$l?k-oKPZ& zkyJ84sw1UhE&%8PK=Q~Yp^UOC>9*T0JL{^f4g|24%(A*Gu>#XeuD0ZIx-q#DQ_8Fa z8N?7n1{tJHL;vO!q)t2Cv{Mj53~A^fi4;O8P(K$+2oQ=EstBTuI%4Ak4v73IB{sMi zLyk)?jS16CVH$%AHaH*&C6kgGswk9>I;n#RIFK}`Cy5dO)(B+14%O?NL{dp6bHz1E zHMOD=&9T6Q4lNUGSRuH#9)U})xZ2u-iAVPO!-^vS%eD>L)@TC>Es`LkHpeKN?J>yU zu%eI6KI<%y%%`P=bjgkbvn5HI^vkh$G%mg9;T~@KC@Z z1cU(xpZ^2Qfd&@}e8IpLj5fLkqKhUPL;(Y&A;cD>=;Mwq=uq)K74awnuOqZL4~rz2 z=%a{~w{Ri~7KGrzIRQAx_{g}eA}fNj?#8>iys6{6?<)P?+snYUBfRio4c{*CJNIOq z5JBFI6Hhwre7sMB1Zv1ogap-`bIv8Ah$D_XazoUVKoEk`m}EMGj@Mt8gASQCl|zd< zSj|`{sY*I3D!E-v$y8Dykb5erjzS*E94GWz&}2i1rG1rk_64QjAL6{Zk~ zK>tW#1-oHH6n;|(<20*T#M#63AmKd|JV!~>8_QXyxClW20+0j&-JkySxzAC{sdPXcxL$hUCUs>ljOD3dkis#^8bT1NG$vm|X; zxdPU|RcUBA#6eyfA(w$tVVTX+%Mvhi&zkmufMgKOI7j0ca*5M@lqpRgI-1*>N?{7H zX`f~E1qB{N;SZX5R|5Z_f)VB5waRRZBQivVf>v+|2j!r!6v`!r4hsSgrKA!ZZg*(MU9178gYT9pp<_u}lh&IxZ;-CgK0HP3oSfB#6Uqe#AO#VKlbh^vyVBLJ7eT^Hw#UKzeq$l$=ET}VU?R5 zUYfO_qMKjV&2e71XORM0&KkYUZG2vhbqUAxiaaf8Q4*qEJ0d2;)>)3OOB8VH(F~Vc zf#)o675;!}D_Fq`^YX1X%LUvusKEz060ji z=zIk+EbDc1E+*{BYbObQNkZK6%)1EqZYoLugUAGqg#Rl>m*qhV zMfiZihf?(>O$X1{ISF^1WEJ(dQN0|ej>okFaKOCyEv*pLj2U;sw*BFpOjf)|N|wj!*D>Z~uONP={zh1(a#=D5%lsf(qblVz|IB z(f|!|hXtvF&l=8yIxjG;AP-1D13+(g@QeeBfD3jc5Aa|Q{s8W9!_Ey0GXwCN@YHzk+>8&_nlJ^VhKRVU)|Q2WgaZ;9f!7LB0D3L*vfvHMpbh+j zCw$_(u7W2m#wX9qIZOZvjsPdua2~1d2R5unb_BQfzzFc*M&2L^%;O5;pa}Ylr)CEC zB2n<{tt0P83F(dZEOOp@Zwa+948WjeuniLTzzII_6AR%ZN^A+{%M`!B4SY%@+N%RV z;MtBRZpKdnC_o6#PY;pD7LS4!Z}1n%A{g^eAS2T;w*oRh$QQ*z85QBjj`5EKssDrw zu9#6zR_=11k&hO^kY)}738m%~3ICA{g#tMV3F<%u;0yv(M;&PgQ)1#JdJ_rSuq0IQ z%;d}{qAnj-f^JMg&#;cqBo8Y(NVIIJl^m`~>L#JGES<3TJ~Az}a0U*Kh;U%+Y|Ae0lM$G}2DJ0nmPAR=Kn>S0CVTA;l~WIU zM*@DQl@L=Z43v3DfCTyzEIwck)vyjD6c4F_R8B->vLFw@pbr+Ldl;k$wqObN0Br2T zWQ+g_a4YaA(JV2H-efcjN0K5l!wIn9CAy#vj;aOXt`AaR4~SGZc4WTtz(tKfNVHSf zn3D#n^Dxs-G1(6W+mAAVG5;%g5IQllOC8fPL#XS>Laoxut;!S`H`Cb0C(CkqiQn3dM6^lOY5}Q8?)g(&!x7AP+!rH#wzs*wIt+VDuo1IG^qwPYF4T zN3$ID=xzlcLu*oH5C(OHI-#UFqlA`x1z4UV2yWm9Oh5!y0tIx2h!)a5AM!02!4XXD zqb73jCUGn&@m6)U5_z@U%&iIxZ-=A?wy>w{Ach4bW=V=d1M=VsZc;##APMf^4(gB# z(lH&m-~$AJTR*^CzqMPxH3Y!*1ISfexqu6_;0mf036cN};8j3zk~U6H10IwEOGs_p zfJZ)*NSkRyyXV@(#{VWvM(r%oMh~_|D^W%Rp$|$1C$eA*_5i+8h6yYd4~~@D)NBe? zfG6OL0~fC9rq29&sX^6Gn5xuQxD-n(Q%gV2OU0CBvjR+gF?!0BO+k}P$uzA1VaV20 zXZw%HOzy{ojF9+f0FCw#o=kHBg-<(YHD9wEBLZ7TkII5>b{Gq>3Tq5rCzANG1MSf` z@$p;oARg5SI;O7SVsOU#@wAr2R;05QAy03Z#0FXb1%Mz3Jir5bpgVV_AstdL?CA(| zbyp7-K7I9Yr2uJabqZd9RRIJB`h(FJkMS~S2}IytQDWHuQC`PsTjsSkj8Y9pHw{YH zbOqEeP8SY9_y1hVpnX`Eb&WFE;6`_j1Omih5AYxlc-JbU@(rRgcrR;sSHubi51%IT zS0(X0d-ZTZqnY-FY_%#7dAXNa9DWZansG|H}v1F%o{TTBf zL+(pmHvV8XW@Xlw-uM323ut$iO$EVBN$&qVQ#1zu9E?6ysy@R|3>!fZO)a0;Wzv+FMsamv&+-y!v;~GH1)fNX zUx2%QCjWAS&@Ha#C6OirB1J1GWnTRP4cs+AZ<1REW1DCLxL$W#qBStK>2=e1jo)|; z6C(*e0u7=S35>)+zt?t!U<#9Fs6K+DPL05vS78&@dFQ7JtN{9+ z@)Ng!2~_M8nNnl-;08Z)w0lP+%bkx`}jVL}Xw;Rp4%2 zURIJC^iOHJY za$_R@0A-4lNGBE#K2b;N;0{tT3z)zOcmM+CF$Ix_Zm?5ITUmWM^&fY6esg&s<2SM0 z@30HI{T5*}Av>}q8yO$_7%Tf`%k*dc_m~BcP6A2Dnz6_j&;S__Ax0Y^Am66BfQN%ye-U@bGK8X157%(m78~#ySbg4 zxuKgmNZ{j`g9T&&!TQ-}{sRU^N^-Xw2VCGlTEGQTvS84Xl5Z5f)BA8|pr1p!1$-tY zT|l6(IKd9&asQ(QR=~GA2s)p2rPJW^YIiDN)5Yyd6AZ1c77vH$%Rp|aS?xWmjB2e`(}qM zXaxz7`fm_G`^$6I5Yj3%k=e^j+q9|K<*f0vO*;Vz#kDO$QMl0?BjT_u_;tp>4rIEw zd7A@ry93xD1Z;vPYQozJoy~Y6b>Ivriu<`6z0XN0Ig4k&@w0_RM=;?XxoN$!wRazq3$06J<>0z@E4j9^ASF%FghN1}4X zL9s^`1gUD2#SiwQ)V&h>04nhSuD_rUlpx;8Jud6;3f?jZcmQNiDgRaA`BQP_&Q{rE zU3st#?Uw0}v5~ytZQ04694of8;i(+RKGT@j3g!N<=fhSU?4YZ;IxdphpDk-EKzFKJC?h?b*KV z-5xW9RiF#{1>9u^Sil4H_Unhp*HHl2rClokF-I2s?@?O1?|Hg|{iG2eJG-RWVKD$I z=GvQ^3s&H4zQAjgzzL|}3+_EGcNYxKp3+hrSkXJy)f??|WB)|iEew`G#q7NZZp4$_ zpa^b22n2wP`tmOU6RNUqu<4gN46U(Qmf^V$u`Nd77aPha6DulyX!jT6)k@>Boa2ib zm^EAEwftwr+>cb=PNvc12Z=P1)=ubz&6!LPAkeiTu(qFBBJ7~b_<#=NfDPDSlI%Y> za{|xb-!}`j=Rd;H0U`i|fe<=ykPv}j!Gj4SM34Z11B4GC*o07M5Fvzz5Dy9n021WK z2q8m`6!~$*3lunTz`!x%hL8~^HmsN;C6JUVHDJ)7kppI!p!E5p(KRo%KcJb9{9TU z?Ioj!oK8KvVD5+mA5w%qJ^J(N)3a~C9=`hb?H4IJM1TIFMTYkK-{0RN{uv_3AcGKS zV1EGmC!iq)4gyGo5DLOagnU$JA%+=7$l-+@`oV`CeE4C97Ig>#fe=El!9^Ei&_Tx- zcANpDj5NxDBaShiF$NcIkkEk$3JsJIaTqbQQU6B*!d*P#l(6 z3LpRpjBzQRV~6d~Q&%{&z=8-Egdl+lC#WDrR5QE~lnW`Ordn%O>AB}>v7P1u3_0Wg z0}L+AV1oxyil>$fIk@nG3O__SWpNA%#AN_pf~o13g*6tYV25Ehm}AU=8h{BXs_2je zwPCi$5_>2ST4+%eQG^mpEY%dBeliu+RliylEK+}HRs?2L>``lITWr=DaZ_?IL6ujQ zr(BiR1*Yw`A$995NZ^KRC8?&CYc99V^`-8***?eax8c1z@44f;d#-%??#nNHi`b{$ zzyIR*uOR;wyq|yx8$9rW0ya1Z!2u2!G5>-G9s-Dg90KCu#vE%HAt4uH=pl%9*fB;I zLFQ2hk0R0`2g)+fOmmJrauMW^L?Zc6L`Q1$5EobsjRY5LNFXFZMJDOpfzuI0fr1M=tS~8<}AI*lgxDrvd2G!W91#9_Lm^a0&5sNS0hZVJghKCVR zECJj`Q$8f_xlY^bT$u5;j_>R32EN$r=;EF`y}b7hd+o{TelNE8-i}zq$}i7+^Uga@ z@FE897jX0pKWu%%+9xb9e%|xP;Qt{GivJ*o6ILil`Uj>D2>Tt5Tw#cO(18RJE{hnV z9dzJ-^8Wnm-@h1*p&}RgnUN$S5T$XTB0{U51GSKcR{6|0XW>XkB=8X~ZHiOaia-$R z_5w)Npa~)XfdC*NH4+HmO?kpo=7@r}KfMr!OqtUQTJQoJ#BGNf{1RG(pr}lxP&|z( z$y}TRp5!D^h15ABbFdT<3^E3aH~7NiIwLy9g~kb!gUzqZ)+ftV4mP4|R<3lV#n3F_ z2PDXnmY~KZ3}T6Pd6~UGfwrutW~*dEM(C_Z0as zM?w;k*<0lDuJ_1FMzUb)Bma;f+9wDHX-q-~B1HKtma#!B0)8Vi*@*05G7-6wM1F{+ z{9r_fGvLTXB|PB?6$rGBOs60$a-aiUR6hwygn}nbh_z05B`lGIh=Mc04{iX28#EyV zHR++$LehjC;ADp6EN4{$@fIMc^9Fg78{j}f0U>Y@CElE;J6(qu?}+N1-RWSqB2qX@ zNuY|Qs}&Qt-~`Vs?lX8;LKneUPKd51D}O+NXF>xSDnx+?D-azXKKh0wIDrRT8pxCe z!#WEJV2-=9oxBFw93i-rj(U8KOlR8CK3?ahIJKj7sKe8q0&=GTV5B7*iO5NA@~F|9 zWWp42$%9Exdx;c8QvWeoRYXn~> zFJ?8G5tIzbGz1o;1I4VLi&8d*F*wj@6409AE_lHVYAK3}-CL@Jpehsa(48hQ0Si{} zhhCX;vwms;6`a5V4@5Sy6qxKi2L}>;`o(XHQSEB^2^~_gHlKxo;twubx+3%dMK_28 z6E>rSJ#cooE*#1qb^rv?Mu7^oDgqU_kPsj&Ay-V;!wT*SMUS8`k2(eF9Tmez;Cc6_ z;|Z_v#ycLN!jw5d#bVY@B=5< z0JK8rz%NajT{&vYv2`3OdI3jh^M2Pk?G?|x3RzP|FFMQI6|YSv4U&EVY+sw^G<`eG zuc#hXde~bSRRw0%0QbkMUu9qV{@ck=u1|fdgph)gAH}=MqGTf!M``S!}!~`A$f(nX46^WV? zjJ;Vw6j<;9RS_FGr7i72oV?}Q_EE}LhHsTo8vrWHmY*z;%#l>(fe!HC11tc-4l=vu z7B)r58g0S`c))`%Y0Cr>_#X_%lIgQr0P8CgFNypr$rh<8T zFFo_)`MbL~4~bEiy20vBLb^}b}GUKYbR~bW;1nlBhhvS zWcOhMAxsV-C3*L49|1MTVRu{7B|ZdjMKndKa!m=90)LQruK|NGD1%cF2vy*MDgUqs zD)4wfZ~{%h1tY)#BESO?AOaLnd?8?bng?)VQhEV*dWGRcOc;8m_j!vEg;EG`0*89y z(sy$t0e~kE0ucd`#c)vo1U;|=Dxiiba6>m(1vB7+ssV>=xCB&?O&Rb33YT^dfdM2C zC0F8iH6{QeSa(`-7Ft3jTH<#r#~guIY1lV?+SeSeRdd`IbKaM8 zn+QDWLVoOLN$yuLrI<+OXCLWDYK(MrP?bpN0WkJQFb1Otc_&9MAz=5ClQM0tMFu*rZNQV2|-waQPUILEv#BfI*c7keN~?TSHC3BZ(|W ziBD#I;b&=?h)-3rQcAcOtj8E^G93U}SrI@j8{q*R>5(3A0`#a(Js6K2$q|ty0ufnS zi{T}M0fKy&h+DEH)dz~yM{`sde$m&EHK~b}ScNKgkjc?2tQrVR3@jY8bKKtc8>5+B&hhMjN9;sA}6XI2~21*X{b!g>Ef>n0)^D=Y= zBPWA^{!@)JLO)0#5gJGkFV-qzND|#9P$aQkZzPCb2!?*A znUBdOMkqBQpppV$nUz6w~YnyIOpsL7h4`I)TQnw%+{ zvniUj*_j!Hm?lUU#1{ajS({WMC6Otaq`8^EDVtFOo5)#nT(T(3iJQ)OnzV_Vi;|nv z8JwO8ozZEX(|McR`I@T|aSBjb#APzTI52DT)Z`Qtw!QcG_cY&bGN zY~YRG$TQcrS6Bj=dN-IXwNIhCCPPb(Y6mvMjTyKz!PGP(S{xEY5DozWeEF$X0!^PPO(a30 zr;2Zb_j!(JC6H)iKzXA{+LKy3rs)!4d%7thf5CU#hIFWu{DZesFqz0{=q@+ZuG;ifZ5bFX1Y#Pq#?- zCm^b1Jq5O>3Ua7}TA;EfsPuZ42MS@i=Ae&Cp%=zVAOf%=@*=`kZPu2le8mM6p-d6M zfp=G!f9D;6=n*#dg%cZPz}ltPnycB$tIUc=1{teZs-&Vwts(2IOW3hlx~#QINLGrZ zBs;4u3oa^aqv9v452>TY>PIjOr8yfIYkG96=%!EQt@Z(~NH?@+%B`(fu1I^Xbqar` zMpf*32&yD%3ImK*H+2M>ulI_tuU1wVgCP`hfUHzu0?V&xD|RR|Kp@a(LjsN+!6HKw zp$%&sCxuvDD6t|zV-;JD7wfk$2q0iN_kV$;z^-8o8j$xXb}+PYEAW=^m`Rl&~ASt!rOSnIDE~l~AW& z|K&ZQR3H~)U<$Gx_~B{?W?*PL2oB1&A)<^QqP!tujdl=?2>SuXgalfkY#E5R54)lf zYmTi4ktO&|h!MUTltJIgp6!X9$r+v3iN4v{zP1^g=^LHs3BU0xzsSj&-5J03%f9&Q zo%4IY0Gz+=%fA5ZzxzwT+PR(syubxKo(~+r`kR^u{J_vDpYB1QuN!Lcxxw*~!RztC z_wi{SOdnBcAM8h{CL$$L2O{vH z-&hA)fJ}acfx^)c!y!z}ba&)vm>63w)WmOwOH`%%v7ZaNp*yUj3$2#hZ(Q8PshhFY(#a=9}jSCWwo5p0k#%6qIog2qByT-;-rgQ41O`E21nzT-}w4*kzPMeBQy9nqi z$U_%@r|62am>#QmF#dtH3=>M>b5&EN2zQFZ`)Yt4(=p2U$qy=b$~F+l!Hy!pBq$bG zC)NeLWT^$=uu;SqCHjGU_qWeC#e)lx=V+{7{Ii^!qn?Y$d3>`w3A9pbx^isHbew&5 zOsmCg%*TwB$xM_q3&wLixf~m;V*f0r+9Iy3_{Zj&$nY1=?RT_ts>nq<$VAsjSi6e- z0ad!oRWqz=czS=uYrF}TmN|@|#)v);_CGQbK}9?e5C~X;mC#+lum(L5+gm{^s*%nY zMT-Tvy9~ajBE^IekzBgXZX5t`9L?FR&6itWq}dDDsC~fsa5pb)$2&-4)2xEE)XtgZGeG9&bsEC$He4BaQ)WoVt1!Y zZAaV}SkTHXj%_UgO#d>y5Iu+z9o^=bQg3vHAko*3vE8m(j=EW-G`(`9``9sk*_gf4 zXFRjZoY;!JkieYeFzw_y4dt0_&DOf3R<0dB{iZ-2$aIQSY}&_#JkE%`&P;u#WUl6Z z?5*uAK3mJKxX8l$*RH(?Agz`lUHerB0>c=SjPTm5t=24&_81l#box zDvjz_uIe_O(t*v)gYD%;3+7Rq)J)6AZEoi29Oh*{v}`Wy;(WC4x2IK$A5Isx_R8ne z{$JIemLnqEZvT)6|3jC!6hMnE+%vA+M{GrZa*zUtCEZR$9=>&emUMy;mDPV9rM z?1aqhzh2J4PRK(o)N4+3RNHCF^NRx_KB8pp2g+)o)M}r!yc(Leu#};5wV^oz%W93O z98d>bAXt7i25GH295^K&2=6CqEkC1|$rq{^6sqS-q+~irLQbZ)PT9GR*tKr(SkCWS z&a(~wvie@we|_Zsp5$T=>m!@+(2V4wjoJ@>+Myly3qJRBFX3`u+No{#wF}z#mG{w( zyRD61;Qy1S0(!}ZKnMT`Kgo+>wFK6WpP>{u0lqC97%`22CG_=!T_A>e6!gU0tK)U; zZAlM;UWh{CYfti$-~GMc5$yW+P2b@i`~D5zv|s!4{l4v;`?A0L_1*ivFTlJX{0xlW z#9#bUgTV-H;CYYt@?oFNulLOF;C+vu5kCD3ULUmR!cT4Tr6wS$W@@AMpH#h|`zp{g z4+xAZ2Xw$jUest&W5$gkLwXcha-$HDBtM!I$sr`jjx1%)q*-&LN0KmQs;r4} zr2j~rEM0EY$GvT4=q zoz+`Z-{ZC?h@ppW7(%+cySuwfTDrlZWa#dYk_KsMhLG-V0RagmMG-&3kMG~`p1$ka z*Ip<4Xs?rXt@YgZQ*K$9(?~Dt@|8<3D<^HMGx&z9AT;2kd7t}iPAq$F^X_2u{b8}2 z(e>VV0x>Dq_Qpr+0e9MQ#n4|1u<>lc`s42pcjdCRz(yJr6)5dG`~g`qJFexi(+T|3 z!atVsl8_aFLqW2LG|0H((c;qaOdkLIJPIv;Rbq}9y%^*Ow`^nx0;ShrBtwSA#Zu9) z$VOR;2gV*^p{2n}ZH8ho&V>E)_N3(#QJ_4?SP{&H+K-*(7_vEihbj&EHRV^;4Qv{& zwRKK*3ykQ&n9oy;7>TW3qZK?wUPDcK83|QTR>qsp#RFoxBSe#!oGlY5q4h1@=WG{E zgFYJWO#}4i8m-hg6<94WFl8&>rz8}OkBsXf(`t)TTiCpVL_i0qtc3Y!+T08QBw?xq1Z2b2 zwJ#-;g>p&J^QQcouMUqP;kVk@Ry?hdF-EPt86vk=s2d?> zh=CfDMH}L;(J?5!f`(+3tIXR+V{x$j0AX<5 zB5WLUFw`J@*JBLY21%z_vgHt-Lm5EsQZEl2a+>MCVuT|>V%8LpEhL|BM#XOK-lC-I zM%r!FX+}PTYd+>Yed%&xF@Mry+R>tSb;o@E<+Djl3SeLYl0W_~`6A-8kPlS*N=ZA*rA{du-^& z>2qoHab3m8T&g@xzQdPYb5V&)Gh7P2U)Za|Cm4`|8u72zTvvTR>Gy5UE^x|`!B2oB zKr|2)c7VJdf8TKqej#tdfO0m^;Z+B@ZzCR$t);_$zW_H8Pk-M&KLL+ZBmUl51OKAS z05QBGPy}qi-{O$JZc-z0D`9_OH8OuRo1-X+kf^U7q^1{-y`6$BFeu}MWn-@2FiO}S z;^xY|VAWpy0tdS`WFyFyg;>ED^%Eui=C|2Q0!^%h&{vrSYt3VV&G;yVdq)cIR+Y2@ z7NX|FkTeMg@qxX6aV8_GV^4PDbQdY{Q1a|+&S67hYqI%MW2ZHIT2}$9y)?gYpM9VS zCi9LD=?Dn@eP#{N?G-_u*`n()Q3>LQ(Q=gew$Ncm`|7M|!U{3N?ukmWj9yv>5y>l4 zxlfq_d>qc(jLfFPjiWnQsz3BHQb~Y}6M2ceKiROHSBTXEV(YUthClQRO!zT4GQZ|6;pE5g31od}^Z|Hl-IW4oFWYlSC)XD9~ zxhV->0mOaNZ|&$yW|uSDt%!oP{g1YkmX+TJH@CA5j`&U8Igd6Q2G$*C zxy7kYg|>=VUEN5`rjlQ$)yh4roVsB0Pz;RD%knd=a8-(J0ztJ}_p1Jx;T3s~W#~wM z)u+))!zG+34LHx}uo1u5VsTTCXRGHqS*IAQlDp7g`bKfUx{(6Lv#f4}+}xO$P-{kq zf8au7%Ju%;7;@OX`7|FcbsvN;aeF6KT%H=vGz|UsU$r#x5JqD|=b|mEbGneMhm-7- z*-|T~+j~hDXWtKc*bE=qJ;fVY8vSi;O||gT%z2N^ibRRq^1KCNypu@3*^wA)dGn3k zq!{iDe~wS{jU-(DCMK`x#>SuT&_ijUNU9ho$zkVHz!$t;P%W|V`Ti#6qu4h$^t5yi zF_q?(x$97ge|p?_7W*dogPE)%zOGXDn+6f(RW^F7acST97ZjnJ_;}~3(a|(IrRXZo z3X~y{2rYrXJP>IdzJjQPxzb9?o@VZ)1U1{UtV@IP-ZsRCJB|a>f8}edYu$$!6f!+Bbl0!4m$A?Oyh6)`thmb}inb z@0z#}5OFJa;j-50f4Agy&L?j{B(o^_rn6CZKLV;;^>1&o;A8}BiTn9<#I+O+m1E!J z;JN6=_8zM(K9`V+qX2GmeK5> zp}&G=^U;Nflwl^{XWxAHs=h5CoEgkaAsOZD&zt4N6RLP7%9piqIs_V&KIpQnCY@y5 zFltJwxp6e^;AR*eZ?`Iudn>E|=LJ``H~=#rGi$P`U|ob?WjX{6QRA8+-fl1wJ~yVA z{kZvBF2+{vTvN^zX}U^3U+61hbqGxUxt*I$lMO^6e#JzW4CU;PsqP*b}vughp5l z`DDGwUP0p+7F!Bd|MN7bZ#wJdVc&WI=~ORg_FdnzlNlHHW^UfJ;5ZAx;zJpqDQ`PZ z>sJaPdJ63C8C*YFxz0iLj-m8|>B;NeID2GZ;fd&dLaEyj>UB|Ov1@Sp4cTAJPr`>} zqIuOJ6wxpXq8mhogjzw&KJz`I0?d#qo`KMdZ;%2rcE*1SDj3XWmH@@l~hW*#4!2OGKP_xX4y3@_JUsg=Bu(je(dAgweZ^scN_ zrA+|6TtFpyOdYFKqhd@pbL@AplDj+1!-3ZGyAt?u?Ao?e(_YZnw}X;E5G#qw%&kKf zrNh#V&-9`&P(zuCK?GI<;3J5%xgm)gK*SQs+cgQ zr`gHy!d_KnFfEiRGz~L(9Cka{%dVE;+?4a}G)u1Qvfs55_AFKRo)^<%=l4ZTCQg!> zx(^i2^b{H3;UW~jZb*GAOZ`4c6FdUpLP?ao8%8e_x1{T8kdSz)AB<_6s@7<%IZFHR zUrp1|tc|XG&mT2I%;~hmzK){4t{p6_Fwu@M8MMBxf{mA#_JQYUrE$`EI^9jHZKie*p=AuJIt!aVC+fc7 zKn@~V7Z{pgXVcdDSVU2J-wFtN`xnS^I7trl%&vqiAa;mB^xIVCmh*FwRL}D!MHZ;CLlS($m25@gF&-e4`Fw?~#MUjHnJYVuxZt6QELm}x z9zk|?0|{mt4Q8<}{ZHo_$)fycwP3Dhaz^ZwBB1bTK0lbD7bUtOcv~mPe>MZNQd@9t z@Gk9_x~`6k*fViMzKU_O5h z!I1x2f@kQ$Q24@M3d$N2i7_`v$xRiVm1*e(_1X+gM-nY5RYrhRkt@8=r0#bLA8r*| zhc&o7?hhp=7~U^>&H}_6lp#nMbMZ4gQco;*!sK9!GpQX`_X7zY2Xj^0WE zs}oo8LaJ)zVt7)6>I*RPzkp=lOPk9#rma*K)$DV`XH9KmFB=RPE;jyW9u*D;H^b4K zZC;LOpRr8fK*);?06un#B&KyfiJ_iZLWm=`o#l(6kC;w&-8&dsB8 zz0N=~?Cvl+&Y}PJVZB3-T~w0Ia+ho`gNHhAJ413G^KiTM6}=EP1Bu;=$d+aw8$v_& zvRq}`*UWju==|S=VNvmyW?T*^5St8gD?@a6YIP+E{-&cNKm(REl=~S=bT5PW&AD=C zISi0tX=U#%Plvxd*Lmbju*p~wCN+ZdHZVrDSHY`GFR0A2RQ>Eo&azc099un z{W=oENSp>?LC6D4<^j_40D(}@#4!*z4}fv%fL{s-j{?vj90@J~MooBx2uF)C__JZ; z%GB)vV5P5RWoP-=g3jMIGxordzK)#cgo0`M2z!a%KM~oN&iF3lRSwb?tPNA@WN4D$ z#-ab2L{OM$cdj=SOZPh7V(2`f31N{phW&AD2PY^%jLQxz1dZ%^tp5$-vF1nB* z`{{2_4$E1(){PU=zVa%|J z$?fC7stxr}`Kz^3#kB{GJl+-smG5;de+f1KiaLH~LigIKeaST)^p^ml)6(VY<#JC{ zemI)>feewiqugC7Kb&v&0ft~98hj#4{TIA(&5QB)!Q$V)7usT9c*i-#$N`Ci(M!D{ zKac=4fuk7#=y?EOc+`g08A_TB3j(fx0-*77$s3@CKpp92j=wNP?Oi&Ql6V$BdE`1> z;x_GD?tQ@?G6`DQ=+iaLIW~ElRTiXSdUbi3`p+{B=gRo2r`g|*@s`aGIi|D+2V9nd z4`WE33tQ~}PC|KAW+zN({r-2z+Qu52H z54X#|wr!=}2I))1^n}sWBUZ;KecTEI=N%v7ZkQ?SCS$V9CVUkv_XmuEn ze?b66B2}&6=r9oNwKu&C0ILhWS8{yd>0(d zP>k)M{kKS|bTTJ+l8a^eW={)-dNPCR`#ozK!=bAEXUE`o?7d^GFO8ON36eX-cN_jy zn>hN#Sg*ZU`Nn&bq?omb@-7<6wRz68ccP8{V-!1kwf@aZ>`RS4SArNhfyS&XSWY~O&d-~TFOa&1!W7PwlRwZEI4o#P$HqE~e4 zJQcyUuoZmvS>_bwTJLf_B>A(K``_A?2T7i1j!X!*ou`wXqt!&n$K6oUrihl^{m-Ij zW@|c0^IP_2|0?;amxtW5#q^GFJnq5ZMxrPZ4ng+yrh0k;Wc{skSo zJd~s++Kv9^^OzP_=9YM82bJ*~0XC{nH?X$=Ywp|QfJ@fgW7fBzBdN>RpIq>r&+wTZ zD*|sh)^9TqlBgO7p4NdhsK4z#_Eq!O#jk&Ve2sI;o@D!wC%i9Lb-y0*=k?hs6&`%e^UufAU>jx- z^{F?5wRZtpNU_o*?!HU)yo*cq*$I=QzSV6htX84lyO@ojwBa zdF@6J`1C0I3v?h93@(N)2Nqcw0FVo;0vV!{(ZmpOyY1UtW}Yn<2&PA^6JTAgR8DB8s%1{3Djz88}|Ml65eR?HcHnR>2}`P`_eKK{j8 z6ESB`3m9huzetr zQHVeUED=Hg^Jsr1G7%YrO|KG-M!-@AgJbhSV6+hvaR^w#L>%?2a%Xy2L}gGpA^@Tg zN9`9hI-~+sfT5&_Ve+OcQu!M!Dw3Oy#!}Mzl`^Pv9@OY)VtOMZ9dy`YmaOZN0~|H* z?qdvHE8+obnu@C{IeJc>AB=R|%kD|^Y{NSYjok*~bBY5G^O+0PKbsO8f}uL3mQiLp zEFf@<%!US$%{$`vp@+3j2Kr^pC1F1zjccn~ID@RJ|Kj_c1?Q)*u|=1Z_e{X5v`EcE zi|K>*>TdnTE@~>L;@qnCZ{F=ypFYR3u?6KwLEbk5aeLW=T1XP>;D?PAjSa(G;@|7> zlxpfax2@DT+A6sozSAwuxz>l_CQQ>sVU%DZs&ksA&|xH)P!f@7=rYfT5wInAbq>$(Q zVF*PZz@GabalW4F7W1r!SkIb?uU1c1i8PqH{iTw|ET_=MQITYxz(5CXg(qPHUqO?A z!$DAuW(QYL8enaPHCfSbLxdR>*;plHUbod>g;`hIQ-JAKchb3j9#PE)q1g>8q@;>* z9_bIL4(bhW+Uj0932eQ3ZvC{^b;XC^idmrP`f?a-?p6zL8w;W9#5WqK{WL0-$oZ`; zn5(opIyK^<_Auk3HX5}lWFijb>F*U1@K?P25^(oKKf<#%gqkXM1OX|Mz8?y^BNHBM zNmtoJd`%WtC3loFL@Pbk#PaC;Fu^O>L9S(si<+e?{I`f?$q!dEpjdTtXJttXqj>P? zPa?InUJ&&@umB%JK4t+3v;nv%o|)z64D(C(e|!yIn#_;mP`F27Ap(2bJcfeplaUhL>QI*c+*s{^F;`~dqvaJqD+7Ll&`vH z{Fu{68O1V|BT#7OIa|%QU9^}$TDcoj7h;VeR!#?rAG95_}=A1A4y=hLJfLbkPYFrHIPtJHDlsRKYhx@@3lKOWCGmt~b2TnZ2VE91*{KC>=3B9(oZJmd0}l>xD(!Lb?l zVGx7T3Mo^8R;tGEQiTN6{*mGns%5cp?6klDdx*W2a{kz6GG8x4v8xzi!Qu`RU!uLn zYrAE^`IQszO4dTplDmRgB4*L<{5kswWue31YQaJNSzn5BD}vTyI&2{QTTm2~>O3t@ z>WEHu!tGg}A!9xM$vH0m_`r@|ESidqEslQ!SizToPs^{yz$k)k2Zcr@dyYv%y&SqYl2zNkq(ZYvudT2bqu#5E@V)0d|N70clP(TM zZTn-V5<7q63)c$c+tZUbQ>Js)6%|zKIBOrj^17c9P-?e4Rke(SaM<99Q;wf^c;DB~ zM?8UHTq!N`Q4@zfXa(YOI*3vtHIF!>?T^G5M+#;&@`}G$&`F1!D?+gumEvBV;}GiY|{}y?#hWtom5KSc}9V-&{vs*u6U|V-JbsJwF>s z-0ayDjqV|u%#;MEkAm#!LVvv%Xw zz!gX=J6H>It(_!CHj^|jY>!;)5etCT+hj_f;&osXbb#{JW2n5fFgm|OSW{obkZ#Qu z4OQZ-({RcxJvJ@aFMG3hwz{p0bvJrQ(B31PJx=?-wGNxO3*z%0f4*NGiL-{IEHvo} zDwjHNz~cN{vA+}dVz+%11`F$K9NXHSt?>;rKQ?ZM$~sXism6Hv8BMR0Tn89Pn{}L0 zZGc!7B1g$QrW6`gM+^31buU?}y~~WHh@F1lQmiIv1@I1M;=nob+5NgjWGf1ebx`Z# zysu~7v+QesjZ0i4r}0~JWjD%iixGzw=dH*R>!9riqB5=kjP142J)`8>XJY&O!iRNk zw4wy>J-dR7t+5$`?}y)~N@)ov-m5(6M2j4`hp4K^$<8si{W)_W3a0$TAxB2r`U5@o zM`vnVhdn*@mCJu&u-IjoE83pUn^JTPk-mOj^kM| zo~}nOFb>{*QPa*GbC&*HoQJ=DE;g+??;1fYa*(BUT;`(H5usmHh_3Zb@=EKY9Zk^( z+Un!&KYtwFSru2mmXz%H^B8h2_&dLU)}v%oL6L>}jHE7L;MD(Pwejv|e`ao{X$(D? zzvLrEXhhc=x9ubZV3vVD9%UjahO6e^->b_PFR;gs#+1TkMOkR>X%gY{-ER0?$e@c3 z!~7d*ZNtTQ8i@^9>cca7@}VfzSI(j$fuejB6OCqRbz|NNnq9D8vnC*fkrGh@C{;phB!gmlU>}XP@)^?K=Fc5Vr33C}$_$0jY{(boUq zeUL6O^2YiAXa7kD4ss$Mqt^QDVG>7YGO4%$S*5DhJRBD_nK*c!t!boUD4?oVAUpG0 zn2OzK3CB&{H6i20Pl?~?{ho*S;gG-*pPeL;H3yd?AcbwNobYU+2S&+uQqDoIJacb0 zN4!m+w>DU6MEODGGDd|;^MJ~`ED0t{okxUDq^$&tOfwi2vQi)~pi_ZDcUtlv4^aMY zj%ugH?;h+9teP4e#{+)Z>Iqnl7{=1geWg8Tkhry$x>b-wD@XpZ)?~4Js~Yt|@NiPs z3@4brG8tM!t`%)b->jI&6oARxxdsNplr4#$3;`0IQl466r| zx2lvEM6G_ArY@Gq`)+YR57TSkfxE7tIt?+H2DyHibNlz4f>imE{m-bo!+_dZw%eN_ zJ&ZvKJ6^b;kTOliH+?kAU3=0``@uo=;TlDwz2fiUm;WBVqWrUbV%>TAVLM-REOl8S z(UUve^F-{}RBess7syqq;gU}fE*@PV zkJMUAk4ul#>lhW$c6T+H5@i$TRxPwJi|crGe_$WLW7hC7%LqX4r3AOzcIVmYYCx}7Hkb62DtvPa1LT?HJm>JawUsPCkCQyUn1m6H#}9|BhxF&C^ij9voWB-`{w+i+Sw_7(V%Kx#pgE1r zSR*yXi~_vx|1U2R$s`TTYFl*T>(tflJk=g1Q5r(fTF#Jdka(30rR~>@aTrtZVf_AF zOnDwN(ku%(QUFg{nwF@_q%4^c*qM(_nx}lD&3R1|!90Rf$yWPX)+i2Km5rW2e60)1 zliD}6g?*27F;A{F{!Dxlxi3De?*Uk2wKKwKqOj9k!`nM^JgzN9BPmJ2bmS#jM6D}% zVtr3i_ugy`!c=GbgSCQSEr`RZ@q>dijeThIv-98!G6*F?P#MT|;3rP7D4MR^<+qb~PAvnn}i*o4$sUvlmSo zw|b6+@m~BDW#^ua375QR*Q;+oG443e?et{tyd?b;QUB?Zw3+6ji=@7*fc@p^MnmTG zuvbK|p66%V#=D@m)}m(62$UJ3?Xmawta=&jqwm3NlN}t7$DL}?Ur+9%^}vQ7(ee1) zM=~mh3mo!jzKJ1$fVo2XlYxSxf< z@bzlfIAH1Lio5Q!Qm+Vj)>Swr{j$weEB5i5emSKpp*XFuX^tBE3F$10H8#$jFQEZe z*nTW;kv7_Stm!qbYW-N-%Ux6Rh=}K0zBJx6`q5S1xPG|4)l|Pd;IZCxv6}K@XZXjC zQsd@aZZAki1^}S@g95|^yv$Fu%8s6nKDK_24lui5*c(rG7f(lJRVBYSZ`^&k?B93* zI9@&jz`(=6xR-freRF+%eSU6HD|L)FW=0UPq>}hKt#@N-V{dz7i!)|{_ubOVetm0w zZD(UEXJE@XW2CcxX?b&ZYW0vec5!EIHMMpyrE7Ize2gb%Zfk90Ykj?OXk-7yExWd| zwzl5aJ#w(M!x6J^xV7_bckkQL(b4+i+R934(ff*_t+my4VJUrDMnN`iX)9aDvZ^Lh zGDaAan4qMow~xP)ydpjUg`kuPm#|*ayLa4TMgkH>&Tj%)d6mDPo(^^QRg`^z2LyA9 z8vp+F8)3v%9B%qP(6l00Z=>9IDO71Y%^}oE)ka4?(AWR(|Hgm$X{p(X@n9er8x3uJ zVb)kn&O(TMq1gYfFXV9~=FjKUUxV-%EBX7rfUAM*Bx{-9eO@x0G-tk|H}jnZiiCid zdgtEao8`XyZkHQhp>0(j;4oD9gOybDArWnm;?t z&W5V)8brx)F@Lrhes6Y4S0K6lsQ0s3ksn6zRYCiD|~E~QW-i$6m$}v zJk_?U*+LQD^BLB*$ocm&(U{a~?KO)PDw%ASQ|)Jqs9F_j#cCaOtMw*rda&W6o4=g*ir`}@Ec2%1h+7SDmKc`hLSYv8>iK)BjB=JttzabDP$|xNyL@L5e$%j*AvLAwouyj z>1tG%a)n5v4X&BbPs(mR*VldbZJ|Q_y;lF@AsQ-)GhUsgQ|yo3-sfi=yzIU|cQ|wP zc<&?n|NgpMA4&ZfAr=1f_t)+DHxbe=Jm$aglF%am0 z2`CVKr8C2l+SYmZ%>=nIq0d`hnWA{&83nQgW?ZKIM4mC0uSo}rPPE=f$<@0WQi?|O z$uelHFJvo;%Tf9>vB(0NttQJsG@&TQhb(=$KZ|C#UJJ4)q&oXU=&=3H#T;6u09o`9 z)75ettcE|kfhuFH)oEVmCKbiLC$-;7!hY4h2CJnge#i!5tJRdn5hUQ3Q+JQ8RoM10 zvMLdMM=Os<;4d8K62*AABzSgiIwf!<^pq#Q89w_~*APHzQ{O!H%y!YB=<|+LC5f$| zzA3@8-R)zv7N&~{701y*H4}}D41~xl$W}uV|D-&yHfoBgqk=$~God2kybEIW0RvJBxai-T~txA2+-KELL{@+syUyVNSth&Q8>P~WypbsKZHQwAscT(D z-2~Id@k!yEfS)IuxBYHy9-YA+-=^WRPMo{#yMe;Hm3!30&*tmEwpUJq>ZZyLGW*tn zg>@TmoWwUaNOJ%E>SO#QYQ58L=h=Bus9kb9fI{pc@CA|~)pJI3V43qJQ;o_PIEJx~ z+{b%k6FO|-vmdg4V2JG4*e%#7J}Mb8`*VHnE!BNn!v7`g<{Q3W&UuZ#wdA>jX=-}2 zIi*r>Y_~p92hfQ6Z_ss}5N`hsOXlA{kD|lx-``y?UwxBtc6lrLYxB-J=LuJqY#+Cp zjv(d=PDqYCU?ZVND`FLDwYQ1i`b3kNei2BdK~oZj-fFx%>1J`UKPF?s;O(6fbX7)( zc|+Jn+?wXZ6?QOd$0A?6*!=DSU*+k)-_kU{7UKT7B?F$f=vzP*IBw8hh(;Bd8;$H+ zC?+Gu=XS-Lk9YIY;jy%C$V7&D2%+h>0x)D4}2S4Et@Yl()T&t6ebw8?qz=JA@&pU_L4~{&1a4BUp9lm_sqvIZvNAc`;<-KNoD2C}0bJ_e)HQOJ zi@xnZ9@ZvbvSKl5KgzfA)zS(9&6yfAeWfpVI?v1|C(hAxGkNI0Rfnm)XWrYQEZ_hu zhhaEb(yRZ?%ij^|#tZqW5cbbcv*c^}1^mpVH8kK+KT~E_0)RO29TeDBm5F$@vP~>@ z=*;64-wYtc*V#uet z(SEkHpgKcSkYEiBYQ4_q5d3u>3_1)9B)Sa$R4j`E@R~7x zFd&O$8mu0pW+)RohNgj4&%xk6=^(DO_1rYxl8Nf#InuKoN0kPz`ln*}N(E5mgJ>gt zuuLTTP5K>P7k{IsRUA?-I=rGHa?`@Kz;;b&MggR`nVTvOs|T+onfK{7zkI&uwq|%sDXT2c**=6~d>G z-X24=kc@dX9J*Qi1a#%5OR}lxVR6@GvxpXgegJ1btq<6>j6!m%KKEpE-k=*^E!MA{ z^*tZ1qEL#;`G{_}yKTBGHtLh3>E6Ph2?;s_r>FSlFm_Vw5d&79Ib<@m(;RZe))f{c zy`%198SWPsSk7e&!@QK&2IAFA6gM)rVDh66q(SIrB!Z$(V(xqO9~uz{p`^}Wjp*0H08ykD@a z+d4kCqMGBU2fyQ~|ND;&f`Hnt7w~BOJKu;_31lPy=?uXnY=}p!>M1!A< z`k165-K|;)S$AI%f03A?fBkAw(a}fVRq8Clum}0)a=Dgv=cjA$k7;zvpjD##jK;uz zli;UxyVxRw5C3}9==gr>|04dWV_W%m;H$=)KjB8Y??Y}w&F)jjtbXw*hn0^}X*B*& ztfhPmQbZ{X9smvA4aB)TFB#ANSgwdj{}y+3j=}x!tZm@mW%ZkT={da-gS}hWg8QQ9 zmw#W@yTLt7R6)ONiUak7#+j$%LNH7u-l03p8^2ooqzbwVso{T%=f%-6#A@|PZ(SJv zB^@-_=~k$PvgcMv6b7kb_X-xY{G&5f8{*EODC$3Ha>8;Q;MZ2el%G{@gM zS=p3oF?7s{P}7Lx;MwmH?mT1|rh;c+xSxxMzN`gr_ zshSZ`KQpF|%&eM>Smn3PoB`(-zBr9f$vY2;4NEWRO^U#2+*4+fj6xDxbXrX`&%KBs z8j^!_$W99q_F0*`X(e!wB`pA=HEg1V*`0P4l!AU{pE+zd-RYaK@wUz{l`9~<;+;e; zizrpT&Wm*A>LQ08xgt_Q+xeXs| z&1;2iC#8dHb2GE`03xYY@kSZ9KxCB>jK{)_JnTmqCv54Ru~KG>Lavc2yJ@X@_*t&y zB-A=yGV~8jRz%CSOKnfs5z7n62G_>X3G>cO-vlXTs^-63@aN{M=KqOfa7i2ZneWgN zX-oRrftiA{42pc`6h}z9Zjw$4wZJ2f_X?77=Zn80ENqR>4Am=au1@J0Ev)h_yyyxl zJPx9KmUY*$<*Yn=`{vfPTi)IOw>GL{=89=?!31;QrtRLJ;**-fv(e&&TL;$%%4wIJ z((J56jEGX7>}A&XccRQ2rmDZYrN?UCQ-6Lxg>V9SiL9n)T>6C?wlf$zq&vry8lJtz z!BoaO&+q<|X{T5w*KPXdCgl~eW-`LaIp?h#9l)Hy{u^rq%0w1=2z_xyX?8s0y^A&T zlr+bdfO0~m4Y4=fwZ`I#8;d_EB}#*|S_W)TDy0^7t(q+-R+%gqZK{%ClU=FYR{3hP z64#qU%8r+`G^XQgA@LzVaV-H=&Ewcd>SK4QwOFB&Uggi&Di?|}wgPjfDSUhMB9R_t z#b;)+*R3FLiUQ#Ed$X-PX)~MugfexB%fkzp;cRYOe@x=kc%shbE9&qovn;~!LDV)N z3YOZG@*FHB!V^{>)axp!X|0E;?dz3V1-2?9vbuEtx@WyQ8HEO7Sv5k^bZTZm>;!(o zre$BJgGV(RHWb*HV8%OSX?Lf`)t!}-z^dOZMIRFJ>Rf3oq=8i|kM>(TTz`JI# z0E|VWdt*l_-FmJ=XRj?1cJhcXQ#k@8sska6@6FtXd(1D@SkBIsu*6A79-xd)oP!6^ zGS1>V=*_vKdk6a1I#JofE;k7+A-_eVP{MSvgsl@1S~$X%03GN$$L}N z$R+wzBr-N%2W$|O+yKAV8*Ob55Z?}5iVwO02k+De|44gv7BJB1#&3Iz*Z594`_27Oqh4qM{*v8XAztWCX4%eks=xtz*Z1ZoChw=6Xct$LGq*UnI$ zlgDJ$)hl;#uG8E0yL$a%T&NtG`$5&<@CX&{UzU`d;e$7_!B(i#KoV(SzH1QOK9~>& zs$d)eaN5jLb$u}5Fk$N(6{EQv--pTjV;snhMw}(l2J9gga?WrBLIS zC6T-jT9+tZ=aT`;?ykR`1wWE8uNSvm!@$9o^L)=X+u^(Gtk)n}960y&^3#8liMOBnc3FOq zfj*B~CpF?Pb&*BklYJ5=A~*vm!~`2ucI;TdpK79b{J1$)c0=rU*Jt;FQNUueySt6+ z+@&BW94HqKJmOrb%?I)6Y+%{~kwUE4EkIhEzW(s7ZT^o*fyP;esS@<@8Dzy$Lmbw( zo~^R4sT_1Ha%=;FoeZc~g?}J9J(i`YhUBeQWj&8{l82~wSET2Tv?Pa=agP*nkF~9a zG_4kmxsLC8$39XYMDGI0bPm`68x&kCMAsmJv^}YmRfCcxecWRsk7G}+Z>oDEKYLb; z&PV0Gvusip5t+7peh~vgJDNUsDLt!9dx*sE$Zg5c}UJM!a{4OFh!^Ly*uj#u3E|3lmmX-nK`)}rC4Rh##Wi)}# zw;-Vfuq+S2mkQu-anqa4^9DFAP1L%4sNSkW;-LEP6M2^ny9)X6tVFfS6sY6Ft{Xj(9T9Ay3AKk(-x z_b~==?X{5ubKk0Eaa{zFT7!g|W|(QX*5!z;pFdgYmYF-3VoR%g0Z1z9v7YU9bGa>P;? zo*UFj#Tk7rFm%%|)kfb3)Z3$DQ9I5aZbW_sp23BwvDTqeJA*MEXDSeTPI>NUCLJqjR~x=JRC&g_?c_A7ps-hfiM~MWn(G0@-(7w^$?M$Gk_#IR6>=Y zg^^;Ew1u%hm(w4mR@Ztt#eh=#`;nB=fXFCF20KiYnKVcb29hh?2crM#X%qq##Q313 zG-F*cT*|S<)1@U{oc84p>$lAoXq2Bx(u7vt)%**2Y|)ZDEA-Wt&iBFOZv$ZKptnDB zu{3kiaMdJo_EM}Qa}UCbSeo(Vx-{a*taxN2i4E+NnF)PV%A$!3gUVKj^wa1XD0wc* z-o3Oi3Bd7)kb=gRfyW(s7H$`UCbogugdGyQSU%kJ$ri~fxGZT%I0$zOp~_6&RSG7Q zsF{uA2#neXfJ-?_CokqSxx{&u?LN(9E~(FJ27lw^?l*fwEo5yIKKseq?&{unBm6hc zhBXqvmA4*Ai2Gm@Lq6wki@5WDIEa5$VzQCI`Hsxq0+l+eL2lJGk&~E2v6&0Q2~xJK z{icWqKDaL)ZgV8^Z0z)a-V%zM?6=onb@k= z{>pQ;WS8n1iI?g+H+BSOB7}iP`|)1@5V8~o=0b}(Fn-U!9A-?e>kMGb(m%dk9&Ni^ z4Kxk0yDkCKa$)b!U;RGLOaJT3thT4EreYswujao6paDdW;%^#uaJWP<+Y*v(Ux8SAUUmU}y}$mS?6i%Gz+`Kl6{%aF6%>DbJwRQw1*x z3X6j5^kM#^Q4}&}gS$^JWu4rv`xf74uwA_G*HZ(PztOJm{QCXPI3f7);BT$({A@;~ zE($Mf*Fs|)mU}bfFHR1}^15atUnqt1+@;M^@spM*+VJ^d&|t;zNIY+fHV5>2fBAP# zG*~P1##A|K?I+qgW4|RFM01_&al|YNgv5!2$)^Mkqj#l9jK13)ir1J!rHK|mB9sLV zABjjm=Edm5NG5zaDiQfyypftx?(pcqYFQdgpOI;d*6dM$71pKf_voZ*Q5Ehua-hUXVdd&dh zRvxvgn95W-Th$5KIX$+(9$7pT z#Tvjt>034yax{A61j?+VW329OrP-$f9aPyMNiSI(7;!DeLfKRf4HxA}?E- zy~GSi@xX!U2E#G&4Mn7|_wPO?rMDG*bKg~H5$f=HN;F1ac3$DA6HF50s3bmiR`xa2 zvn>8;$7<+u5p*9l?U$0t5Lpj0*3 zfEl;>MAZgzZW-3qkzgnLLfQlZjlIb^E8;0?M9*2-GxtHJ*v&feq+Ux-wkD>r^L`ZN z{=PIlmde%##CZRYqH~XD>i^^THoKW!naf<~e!rE3q|GhlGMD6TF3CL=g;bmCT$@X| zRwINEg^+4<%e9c?R*evnFDgmJ&+pIk?>V1y9`E=2yxz}eh^VVEBB67;ACeQf(jrO`Z2`?3ubN}azF;5uA%8P$&8DPvwpJ(q#rJ1x*HX)- z=E57*Jgvtak6~vK%_OLHAQ|OA^;j5F00^;E?fsYu(*7*SF$Nu$yF#-cZmd>`R?+$b zqKEgcR|@Q~H^pl`{yF!&aJAG3shzp?WzQ5O8ZoBy+#UPX-V!|i?%Peo?(y%x!;bmQ z@4tq3KN;8=_)uB|2}_>bl!(WPBfOD2#fE(_1C5!WhoF>+`+G>oz;_U)Z|F{(4lgFn#UE|M2ld8G=-K)wK6qG zy;g#r)KU<}O5G-g5-*@cq7yEwQy28ikuRuC*q!h7u7B|GSFMU-JAk3b*H%xPYaBpk}H^X3?4bEArzP z(wgssr1V_uRhkQmo}3Z6B|6?Ya3ENp4d(aOd-)gg)g`|tziCefAWNm{Zd2*;?ZC%U zRC8Ui)8=v()KKsG@jEV#8s}qx^jZF}2#v6=yj3jcY4Aq6k%u?phH{Tz@TS-Cu!<`v zcj}&lr!fq0Z~S5oF4bK2%6pVud)tMqY?A?|I1Qj|jc#5Z_HxwK84tKvwR?9q?EJ%` z^}LYgQty95S-)rnhDjup+7FrGA5Yarkw8=+?Kvtet5UP|5?n(q!Rx%z{NVM=ujy^y zjnA3~^_%+<&AL}B=EhN(?_fm=watKUKRLU zZ!(0-+QsZi5s2Tv491B*&Bfq9YgY7HX-g~JDF;Rm+kZCSXR!c%v7o_@)$^t6fajr zzwM)ij!B!o2(&Gvv9wOyHGVnjcA}9~m-!cC_P>OsxRARAbgfd!h;{ybJgQAYHtQJ;_Hq0O)J3@ozNBsRTW(f5?bDRaV5+ zp*S8o6q)*z@5R=}QyQ=}!>7H{q&-X8Am@<54P5(;Q@sZ%)BwZYc*pj}H1nYD)>cG>01|bKSJrFsl!PYUEF23z*f`*qa@8^uvJd9^^L#y6`SgV8PQ z&$1&q&62Gd3Q9ml=8z(5XrSC$iAjeJ(C~e9;b@?!1>Nf~P_z$NyY|X*T>hW3~I+~_Q4?dTfDcv&xp7950&S_*S$wUzt z1%ZPOGj^yoy8-)3vCVW87Dc^q{0n{9wXE83w(MTFNtarl^QIcKjK0}q%|9tCBoaTM z#^Nh5dXv{}n)>D`x7Ov!o5C0^o;%W^Z(EF?^`q{T?a!u03osS~v%au~`wLIa8w$(% z9(Alm&Qk?$(H=1^c%KaoLX`Th6MFYkmCbeT^p+m$E4$j4pJovpYLS@XsPAdvALn?s z!;wL-S^a|%`d5*|+hH~PxGNDzxHE)h(0Q-MBjKR$q2tGcfnp3?1enEF)x79uuhIU- z!c~HGsXYMSdk)!}sMe|<_0}NC@g_p`G)m|LNi4NfQ2hsOhEdQQdwYd~1_6Momc{j> zef1aEDzn;3`maA183eYC1Vl~9j>-K{ex2Jl!sqXBoHyezkKCoPiTao_etEeeHO`w= z&S*RB_`pzPl)VH?B|C^{_S{-1kS;Q%M$mGaU$MVFRDGX-pT9t)cSt-q@K@$p>KYo| zB>lAXO8;pE;ih%Jd%X{Lr9? z1D)CZjT4AaD6V+}53GsxWEFkr|MJY9kVF^lYvYTq;dypuUYa?&)elOg5$~9om+Q(7 z3&{0khVe};h)w+|wdpE&Fwvk}`@CKhL9v&y6^^ChkC`c%)pC>{=Qm{ibW_V_On)w( zmgET1K}d9nI{yZpp!|@IpQJ;qfq{sk=`IPb$q;e&aVt>xfSF6laBeHS(V;wJ;0_&2ix+2rMEYpYj=N67k-V-qZ=F`Gx6lw- zR`7m&#(;0OG?ayKWf=zO?qdDY}Krq_>)27lLkF^Ni>kf(=5{pP0L3_6*w=x_=%+$wehsa z@M%=#yDt=)`v(!%4_r41A53`l^MccCE*IacB!HenC+iU|``{IP=st4-LUZC1KG+v? zlFoB3AAC|fXYefGn;+JqjCi~Sofu6giU8h3(+(eRKc3WU^g+o*{j?fX&Y7UGe(P0a z-RN=Aj(yu(N1!=CCCWH5nl3=ldi~DU>;j#0|A}e#C(vfy(Bi$<#1ojtc^^whhO49D z2PHM5)9MqV4oCWuorF?&UQcAh-TJvg+qZH*^wrzse++HP_J}erA0rlbp;0>Um4|oiXfn0ykzHZwDTWOK%NKKd!4iQbd>30a{~!yl zlJvn_@yaeM)EWkS#80x%BOv_crK|^4>n+twE9JD?!jZ-m@UxTGgdd-BhO`=7@_~1I z9qExo0f}^}Xdt0y)$`-(Xa=aGZg@rF6l78ov%zjs__Xodb*e=jA@4uv4b(_Xdo|=68Wyc z*I(ys_MGq6CO{$2na_k}WOQc8kyyc!Z2IRt%hm?q96CH4dh%1wRD^B#W)Dz^cKFGz zibnXte#={caKz7bU*|yy`m~US~bu7sgLRDJ*AAZ2ad9} z=QM}IqoHSt*9ZEa;HjVg*e=g}T-{L^3;s;F8!`Q{3bXnzch-D*szo{L_MQEbn6ESS z=gkErOMpRzNdV2=CBA#{`k3`O4Y%Vh_w|ejbK2=$cYrFbnU$o?(-J>~KNTgycUuKwGU{$N_EOQC+(7z5n_FA{BZby!IgH`|~WI{?qR$siJ%%d$hr<=mxgr^^dWc$TGd| zZ}wq#_uf1!MK8+1Rl9}YJAm*~i@WT>vzjjg_62s#-(=UHALwweEMFv4x4ZUqS8rUr z{ef305ZJW$>PE&-C+P$0?nQG!Kk4Q()ckl6M!G0=-2i%SlyEsWhAufm-$%tqOE45r z7aAU9e++ydbm5f*%hyVzpv5siEjnNAAU0!W;B5XFa5#i|H~NPl=!(+kwNdKf-{#+? zCuvf&_>xD9B`NX9&CQ*zXq7UXKLTRx9pKe#f&oGvoaeuu^jQmy{MxPjFY$Gl=a&3g zp>&kWxjBVsnJ(FmiIEwPu5NWt`@|>E>Q00BAMm`0%fFF& zULp*TTP3{&Lq}qB2%EqI65YRU49705J{Pf2N*86mABx;D%-Gn6E8d-wiIU=887z<5 z`a$o^lXxgR#$5*@tC~k~>y38S!y$aU)b}}uXC)6_sxG&$*RMD|3Ve2IfIkqVsui!w zj#nFrS8oM9KZ@+800vS%-d&nmC}#A%-VVE`D7Mc#8i?Wb50DAO!vQ#uRhBq~nz*w`14E=RBzQEJ%I(br zo2~jUe}7=iM@r$Bh}Bx?OCSnpNVEbUoP=lisnS48*vZqH zIyQgxE{=&xM6if-G6afLQsrW|sBh>}M%#FzI0v}Wf9j^@`8~yu$}c)K*W4@6(Hg<+sk_bW+km4~sLVDZ?O9Gx7#ZyNevG@w1mLyh5B;9cU8CHn%YW^LW zaD@i|Ob`?>&J?fwmul>BuKAXbyDgi)h!Lx?SRNo< zd?%2B?B!cWw-xUfze2Zrbqm=24NmS=Xe~A74`c%#Xnb9B>^W9=t`l=)hj^yuUF;4m zPA+Wx;h6mC2VdXDTh-y}9Ne!RnQ*-s`E$bc>c8gN{+M65iXeuxxhV2j+}nW@kZfZp zsWou|Kq1jV8R|vve4FhGu*O(xW@)czsFpT3LoM=Wd|q;Ov5Ds~Zi6evapm2 z0@BVLs*J*ts*Mqch5&NRYyBi18w^n}G})r$L$BaDnii+$*jL*k7G`H12$R|YmG{>XJ~WDeWUkB6YpOAFk*}~(!+9jW-&E+ft`DDdpjNX%wHt^TU>u@KeMR< z0KyU~?2;F5mQe&eH zZOXosGeAeSSG|jKnZVlJG<_pr41Ky1Ga0V6qti6XMA~mGxa4<7oiNb*iRdu4%w`HUP zh>%`c9^88@OtzDp&1dR?YMqZ4_aK2*bJ%0#Jtax&d-=u`ai_`|_PUXD~pRg<7c6;w@4f{#V^3p)U z*iu*5-;U#Pj`jXY4~a?BqD^;u!6q9_qnp)lfE@tni2~Yoy9&wG=ez8%Z|xE7ok6dq zsK+9oRWF#g9zq^r5DBdbguIQhV`X8LPu;yU|ZHqkVrr$+e#*@bNCPtRL}!sbWvHHF0$K$^5LR4}&`H5HvN(I++`>?X|z)Z<+Wi9ts*5w8yz-57uebTGI;-a{8sVr;n4jdcH(lBPfm0d znRi`_dd&J32i1}woJD(Q<4gztyrtkmaGDs%`uP&DwBh<||Cr<>x+!3S_kr>5F(=IT zqxF05zA`*J=8Zt=h)jHF3!WjwU#lXcMWovuNOc6i{;Kbn-a2bm;`<*rAEXOZ=cib> zUFviSW0OC$qr)uWtY!UFL9l zTe^f+wdQQl>|AX3#zdKfv;5nl`nL)p&8qIT`>uXM^}l2vx|oFepNHOhTp0>S(J7#_ z11;)&LnKt$h)ST*u_C>;09&fKKS8*#XW>P`pEzT>0A=oZnS9vQ9%`^tdg;5t#@F^x zFpom565_HcpPAO>#>`B}+4Gjr6H9$Oh5)Ne z4;{XJxclj;*_~oAlB9?0Y7;O zKw#g=uVw?aZm6Q7JNyuz0kFJZxBu{Db`2bOKkBT*mk#~MLHn=At2#Kr-c-C7LVfGG zoJ5obVRr#>SiLhC74ZA00$wCZkO_vH4uebR1f~#wN4~@zQR^^?=_PQGZ%Kg+kfJj&FB>4K|JzmrRCzXTIu{NjBMXd<`l}^7OE`8XBh92sk`bNdx zcE|J<8Sk(KwK(5*+!B5Rh5iC@G`bXvNTm896vzr6Jg98y^LNy_58Sy$Vq3qYzDnU> zM6tnk4nOF0Yt%mLMce(Oz~QDQ_h#;W{1OclJuMtiDx4;3OHEl-Pby-7FNlNJYk5WE z!Ju{ERp}D`H9BFI-0PWggTj_%kPj~Z@xGGeB?*|44YL6wm|JiQUkM(-LzytsHPXm;@!#*Yv2?qnxW@1jL57;o}ebw~MtAJ_ev1Oaz_Z z;?}HwfzB3P)J0Yos(|pNCjyK9XnPAnvGtsfTGuIyxBQg)NUBD-}v+Qv3^QbwUp1XwgM3VyAb)_XRF9{@` zV(gZ-i!^n$a_#&r`9v=R9>I1FhF^2KBg~bNyzRnUPTF>11N6Lk!DNAvakJ}*R|8*5 zi35Ya3B_FYw)yC9Qx7Ci*xH2*E(Vi< z4=8DmV(-S&f+zq;2}i=TFr|_XzDok>5iE>LQXk9W z`0xAg;Wt|E$h8GF`p8OkR}nK*+r|!b9^|9b574cE0u?(ww|y~Yd?nL-CD2y+*4WuY z(A+%e%FQiqZnDC2{_5wk0p!Wgd<~?_Z6pB_P%t7W-$)eYQZPm>T^+7Wl}Y?sK!Yo} z2}Xv#GA9!e1WRUWQukPa+Qaqi3BhQ3(t6O4(#dNbvlG`R?oXOU-TBi0ZehC-NJs=^k;zD`_3*bTJ7=7|L*9*n)#@x6D}5Zs-)wV{bkN%j zPmqWnW&}f=fOrvpfeh{Iw%H-UxdK>I^7mB9U2K~glSH(DxN!-b3z_dPS&&WZs!W0#iV7r>mM$KQT75)f z*O!)NYT*{uT4YBFrT~(Z`8PF+Xae;6%^L7$&D7+@nI}dM)rv&A$&Af@Yw}12 zZ%1Zu6aj{nC|C(4S|rjZNCLD%e1{F63+Mk)P**YzNq&VR|0+CZlS9Vq(J_TIKL2;3 zrB1_BB)-0LiW;f-&<(tv{cg4}Dv|{20ALE>*T+%LT7k$Z8U~C?(C8&b_hI}2r5Zqi zB6`876X=KXAAWHBNRa8Sugk~%_x9sO&BiOs7isVz+||~HplCKhjSN2&{&|=483D?) zs+aQM$bah@FIympYZf0mzqb3(FioSSem!WK>tV1$c(6{a-dt;0=eEeM`954rM%aVN zB8foZI3RJ5PJ|s2*a?UB-QKo1C7?q_{}l=CRUqstiT;VevgAU1duWlG2@$7T4t1+Z zLO>HTLBBr|Q0;`Nm_9DU1oti<5+b%!G$)f z1|%@ZHllU7)AUd?;JeCE*sGE=I+lW-*;KV;CFk*gyfYS-q=QFowTk7{>BYCwK!%+A zW|2()rY zyEaKd060T;Iehr9KNQt3$^b~#?f*Y>y*0k-lH0;#I>y->X_(h z1252>jzkK+QIfXMX>-t!Z>Nbfs16dqiYWe@$;vLxE*gas*#Cbn__MNaSLQDg@fD&RFdD`@_c*vpI=W-sl+{Z6oa%;NfOv$ zU!;kiNaE^` zBgO)K1-LB#Uh>8Qv}CV;8okcJxeU4;6jbV$&$N>GlrDpLijdua2R`Pjfl&Yd_VuoJ z0D>@q@CJw*NrHqi{n0FR{m197ByfYA84XX|h(t{kjEGCaPkT!QJr{;2uALkj?HSpY z`@@zk{hc+xEi3{wITpFFrz<_wRUU0?l3cu~q$SVpG zeluU8wbnBsr&J5Se!OBWU@DdWD+Y6@Quwi~>;yP6)`ld0W#nn-^cC_+1}5^sYh?TF7iw^i|w6BTakYd_nV}EPTwq#!myu|B_Ky4WhlQ&c^%Igf4#KEvF zeN{-jSdL&v;Q3ejZDTRgBF1eKWd82Jk90CV@&aEi!&kksKyu2@sy*ze!7164!gEIp zM0UmB{vFKU4SnbacP^fuap4BlIsw4P zHqi9J;R%6ql86qFm-c8ZQFAS^TcV?7LVf3xLduI9fR|$6*^_~?_CVxp{bX4=kDipk z0n3?k6Q*^w{mmZ$GP_^UehfW6pv?*1V?)mMdPS6Za+MUf_ItcC{sfG(9Xr`&-AbD-OTz zt4i)@?v~%Ukyg|+c<;mzCULKsR#ALqM3v4z`$Kp(oY#Y}3i{T_f`euqn`Kl|P?aNXf`G`` zqDKbist5}H-3_S%DK?(%msSSOUNn#6@ewW}T7}gUl znVCvem3FLthLR~Js%xVgbX&Fhh)Qw7NG~9dkDY?NNR3YxKLl9OWa`xb z;R0Fw2V(Egx0VJlNy-49eDZx|lsr>QgT5dR=PKUsO@z0UgLh~Nu<~3d`w#Iur8+2xnsZcdk;JX~eiI=8I#IRgx6Em^4z3`Y9cXBAMu>Jce)JWm&`g$+~6 zQ-q&i7KsD+OXU@=`5!3LZg6>|)Fw;$EEySSe>V8V?=WfeRD5By!%K|dhQsN%g_#9H zvJbRP1IHS@-%1*j#2mf_m%b&WvbIemprgTdA-?t=%mUFNT8L9O$7#S^S1~gz)Pupn zC^P^KU6lbkJ2>I2ALW|xe#mLs#2rJD*li}xSh3B@TQ|p0kFx@KNG4yx8y9QEvX4eG zc$fCKne@XHDiailn4o}Po>Uo4X~g+KNx8uHrBp!4!UCBX$+SgtfrJJQaX<^ADn7@I z0DM&S;T_cL;~)f<1?SaB2}0c@=uvDZQsi^NtAh}2E^bljei8^5=>TpvAq!GjOcfFb zmZ@WDcPKIswG&Z1>+f{*CiHbgkrH6uzYo!|kwdEB+?dFd?qn>R9ya43+?G3!Z>B=8 zq5II`RVIS3DIf(o4r=X!9o!_~P*UuMf1(mt+ITqyS5}I70S-V}ae-(Cz*us*lo1%s z7SllG9IlnaMF#gGE6Vl;LEMWg8+#NU9;tEsONXl$#&?zu9{?OsJWFp zUy&A=KaWLJh$f-jNE#P$@2ac=$q2S-?<{2i9I|C0iF^9$CX$mW)}R0z5$!dWyofrp zVLV)Rgw_=MU0R?~&U7vIefxERN7nc+IuH9T{c9F;g9&SZ8fJ=9K)gxeHFflBOJh+=BSO{V|=pif8LDg}9hj|NeDf zt3ugu|Jf787m;iiRjnKOeM)zplc1;9rqQj=YL8Mg)6Y7777f`*5Z9qYHTyUirII-b zO14Fi$7d<$OEzVFZ@i2+wu0fx6USrAeFkg4d0dl)7Ib&l)f`uF_x)}(&0v{*kMENU zSzbsX=?}D^I{6+uxO6?9Xt-D6iNK37dZyV3Q({-`y02zGEHj0si`G;w^77ISEs z-k2tMygP0fqOG@xF9RfC|B~E@L_U$D*prY5B24>Uzeplz$0J%fY8&J~wK(GAu? z@bzNbb5o-A-4qPXNc%+ zqna;P6rC4@$#ejrwv&t!vM)$!{2(FBpz|f4RugVzLmim$gJByWQKpFdZ88wgz7>zx zDdH{i55NWzgJ!JCEB#KKn;QN&a|^0JF0}tD8t_(QF6=5B?4g$^G(xk}!qefNe#ZDU zZlfwz8evYwTu1(J445LJu4A_waE#~c?Z4gVPWBV;V-t3#JrYD&*)`jHT@a-aI{E+? zsLuxSRk=*7Anxs$){zCBmGTh0X2vorF_QGx8>P7bZIWLvd-m3?jse`1)^| z>=r|Iq#XLUcBPUuG{8c7X<+xu&}%>H+;yoC2bPK#7cwqiKMDH!c>a}w`cu>Jioa=} z9W)o@eCzyu$N7g9Cym<K^p-tz#9iAq8eog+Mn8()8VgA6Adr-0Zf4A8|&8e@1E^SnVIA zDWnX9WBeXrF3BN$*$-&{b<%2@^fEq{`15uWVL5i7+ZY~W8Z?5qTlODsKCPxqZcK#- za+}XUk_{^&LWHvB^kfj709ggwzOnP;uWLLTl3{Pquq&rv=T-Wn%T#kL!39KU6&g{N zy5C~0?vQ|}A|m$@4M;d;2;_qW%`Fa4v6WnmXvme1G$1`igQ&%u13=(OH;u}`Pyjp- zP-Bi=n$?C%hOe6Y>6D*^1dQ}SPeCQB|1mpFj8hOE3sSN{pGC`<$z9)GuOf#?*`h0O zJO3xE%J=H2X#7pr1pwa?4$*!SQ(@l?#be)5_k9U;m%kc=_9-|FY!) zkL|$@x?r|svp*EZ2AhM{*je3d#-OMIyrfZrPs_T;2@LZA!%D61*@EjvSG>Lh+#QEX zY!6T2Z8>@13iPKc^rtKw0d?xAHw#{kR4k0Ftom#zU#pjWSiv+5+1bY|dy<`#BaO91 zHvy0?Vc}R)nAJfa&5|VmQ6FiTS*~197ovvNF)y$sM8`Q?lshs6kqJ)R`405}4B7&~ zY5?8(WXw&9F(iZhpO#XPisD(j*(w1{rUNG79eMwBnoD|fY8kwVzbm%=ZCdZ+(0Ee~ zyTeEs66CQ1#EGOTO@c&I1^#{eZN6pp)&gCx`EV8*1yX!hL$z@LARLH@GL}jW&EpV+ zvdZRD`NG^iNfkG}o|m`1bdz` zX||}gqYdB2VmZyv<}zZ*$;M9i7R7m}k}EoRR@*XTRpWNE1z>-DlM2i&xqeEkFlue< zTx;SGUk6cPS{axqC}TPgU$eZo%Z0eGAKZNeGl()Gy^D9cg>z^Qd4AdG>!p>y>@CDV zXYe~iHKKIz)_HK$89r@t_UYiP9QOQqm;DdAN^{$AVVzF3aaW!(V`CO%BUHO1z~ty@ z*!(vX%T(imvBl69CYl7&BK~IDfrtQ*10d8nQcgRAH?78^%rrMk2K}e9H#C7bFhAf% zS-nVvT&MC_uwk!BLg(TYphC3hcz6i&kx~7*!(l!+q3|-2ZJ9iHL*dkyM&9kb{UT~( zw~nZZuKx)kQSyY}$=iMvSNu(wqEDaNa+;t_;Zv4FYVEM2mdc1g>N$e(z{m5HkVF^M zE&HW&1|Z#kdEXJefOXq4)0UgkR$NFHkxwDHESL?6%nV;5?F7@{VBo<-3AIKIA&}#7 z(zt_9&$U$N5CG}}t89MIb$>5c0T&;Z-g*A%u*>f&a#zHIBE26Sr#qu^(|iPiAvQbfn->)N=69YWH;>% zB9L~zva6(Ce|o?Y5E&1R`79s&%U(i`$&=b2(U3)up_mkwNR(L?S||f9jJt*`mW^RZ@Gk)J1GI0Fy8SoA}^De)sSk?s@nd;lD`m;FHw5?-Slm#Qd}){a{Pe4 zV};vaXfH_7$JKB#{v;@ag~=Gc7x3-`(8(B{_al6Z^sOQ3OLTH~+xd6HC2w4lIj$+9 zS6wxAf-e%GjEazwBp3gsCt5=fIsxXH3-CO!)F-np8)@E|x@g%@Du7 zOW>a$s(Bxe7`w?vKmpJ^HoTjL-r(kaKXXH|?s`Pm{Xg2l^S=VE-P&V(-M6FM%{wa; zTX^e{2(+;+jeANgrla3oG{r63L@NMR>VeS1RI(u($=aKdI{e`y!LPtn7Q|~bDlnpE z6T4Sy5Utv;xQ%;xh@BS_PY4J2mxRgf z&+w02e-R&?bsWxO7Bf!lFp3NP2SDWj3eYAECs+aa1Cds1_?>4yS4v*x>s*KO_a)3q z$9k0eSnLtY`l31lXU+P*x%3qp_DAu?UIxJ6_Xo0Vi=HQ^#nRvz1D5qHcs+?XEs-~x z1kw1_tPS8P5~*TELm2?`cNXYQ8X5hk|A-v3!OtBZjV|Ceu2T8ZMqd8ZRpgnyB30(& zEWDN#>-FWTBu4{mMMUgzd5${!R|~(@pE#oJ`1aVHw-v#qZI;-dGRIx9MUR(vG|7AI{Okp{_)r;?OB}@ z9SI_(7zPn1u8E6_k=^W?<^}fLzt&AY*rN9{;__g93*9_vP%Bn1>KP@s1u48qr%^9VU6?Wr+W{6f&N zChSAsaaW&y+xI5tko6?{Kj;3*B=$*xjmYs z$GpEQTTbOHhNOk($65~F(?bTcs>YW1vWV#mT&OX1_?`Hrqno_8I zW^(ppkN#UevHg6Xs?++cJMA^ZpNNF-R-L|A{V0@-c(~}f_x0TM_c!wQfig5U9RWof z`X#@Cbv&Y|2qYhScb&GoT8PBjXy&YuWZkT%W` z@oXH6PeKaoMgFZWHK&xBUSnAF-|w@NF+EK9y~zV#71B43T%H__H&4aj)u9X}?OIv` zrnBgH`eo`=6R_9HV^DY9wKeF2ZC-l5n%A@7@4JE)`Rd;68~>m}h7C}=hiA@nm+5}J zS%f_KXH|4r>r8p?g}9ZW#lyn-hc&1)nsoCj-_d~ah_%?>Oi}9>iFBCOajWd>_)N9dXlQ={D04ZHK#hR>ptUr;}7bHwwFDgC88NW z0_R_d!zws}AS!in&<0Ba!AS*h}Xn5Bcz0>Q2M^GYxb*UkRqGb;6~! zv^(+AN9QQ-P{+6t2}s8UoVf`9ZE1*9tk#x;HG}jMFX|*eWsG)LrclVB5@pGVSi$7? zKC1Qo0UqHmemj?39Jc)8dHHeDxx3eTH|~k$R@RZ^Q1)ZBL<;i4jG? z)r|^bXOD)a@q{t2FBu~gShRQmrfO&2<+PK1xAYm(#gYrX>Q@+ilma3R6y6w!jSi?# z#@1ZeG+;jR0nP}ypYDKp$7zpaO$CPcb!R$>2^RL=G}!7gL}7@)h4`<$<$gz=?4tzoouG ze2yH`+FIMvOpB8uksp%f8NYRLHrz zb4vt1eO5qFu*wENmoM+Rt~=`9^*Lj_f+3gf9bU-f>CUon01MU0D1MdBOw?vW-%E!u zqmBLqVFme~osAjuxq$uRBE7G5L9_jc4hP)ywln`#3orCgJ$@!xY<;!vC7K%ldHYN+ z{wy+wg&($>N#xT8XOnpmBt-xml*qh$^?N@cftN>#)S3SA=W5wy3z#^Yovj(lgab__ zXuQf=Z+$XlC8_-vsJC_;q;@2xgpURb2VFEV*>wGnWQ-*X6k zp10v@r0he@i`Fnd(RXUm9Dg6JgwLP3k$JbtTT$plVSFj+I#E}`KTOfpac=K27xX?f z7+MsAFJAztx40sXXco+c$Ose?X6vA_jvwDF$Vg(xS$YYFUklbpl$e`t;%wl#7$_E? zLKz{-?+_QEIr{tGd|s#X&z0PX{@H-CR7EON4&o*e2I4wEgbzFs?`&QV3`;-TG$m z+aGF55(}@{07zg^4XEz?S2oJBe-`NaFVj2ui~SQi2Z_+mOO znzVEF-x33UEC}ZYSY|doNIA`-!A-GXf>UXvMl^lX6p$cX{`%&%p*IrWmhTlq`7dAY zzKQpEaPP!OdZb6-j(m^8+C^_YF zCmU;lh8%?i)(9qF)*Yl7)l#ku+<5R=6fEFt4zKK9Q|2q-;bY_D?`E@9AwWJ~wyW`l zfUSnb1)^^AN%P*l)Z&|-p^DA=t}p+x@2rYD@qG+Zx;zk}t5-Gr!MVodR5cM~T{Bea zcE9@8k}CA68-2@mF`sv&7pL#*-K(|@x(oL?q}@lyICGi2O3h}7!GO2Asn3^;or(MQ zN)kpqA#`8?5j+fv-(+1HlLAX4JH9*He7od$r%d>A&5XpYt-}lvCuuk(8Yr;5=$UIA z5&LYqyhGvlqd^U|ho=QCIEO6W87i}Z3bgzL$Oe$FoP{6;$)6XKPR$!(K@Dcc&kE5Q z?n{C=7tsOPxmX@yYx48jCm7+4nlmpz^N33$-iAKJNw{Qo(Yu8u#gigawO&V_WStIW zzMPtji2dGY;XJ6{b`T+&rzz(6@cXNL7i~!5gfiRzgUB$a#~XARb*@e)e2yi|&kq0v z|3}eT|26f#VSK&OW7O!8(u|a58!4cIbO;0KP()Nf)SYc~I3y%xga`;Y5D^e{Ba~7p z5d)<~tf8o&_~Fa)!v6PSjOLf4L+9Q{?Wkoez6!fZf>G^EcCi2wka^XZnG64k$P#HEbq z9_+ME4ArQ+dE0;4uU(jKyHu+DL*0$6dfk1OhO~7rH-8rb`lI?v{sOC`U^R#Fg6`AY zexdHGabn*!<8NcL=DHOZT|!e#)rKkOMhnXLYe&!BQ_1}b7k1@DA7lIVc!n>DJ|gll zT_Kkzd0^m7NZL{Th{B14?%W=tP$(CQ{9N`T^W5Dt*TP3(&M!M6Cr=^97vPnj-ttRg z2V}<=HnEXXj816trM>NK`TE}ngmk)33CI8Uqp~7+!$S?Y1b+M8=O~*c|5TCr;Nc{I ze%*Yz>B!k_#VXSR5bu?h;fwM+kU%5{K6JXeJ&1kRMNggICH~MbAy=goMG`h|*PEN_ zTl!aj4+XrOa<9dt;Zb0hKDnIdlyHf}-*ZoP*2W%wsahG-Nv`|$xTQD8;?G!#9HR08 zFQ-+pOXVYF)ND8*+~h|iM5EG1;E||60s(qCp}Cq^lvjSi9V=g&aqr7tRL5<7HQ8ZG zg!CLG;Yr{%K+W53-K&j&A@6`PaZNEzf={4dCRvH^Q+WOsOI&58Z{Ji9jP zvSkKUPa0Lq4={}2k;%@ z=j=~770+CH@;&<8l$|FTZns~^$$>ZEjrP?*lMJsM6blMxX8=tw8E`D+pM#Jw44^>y#Ehm?ln~2ZzbghJop_#*bu!3N* zKeULc-;h2|xP0kJ^43{uxcJ<8+v%{B#kor;w>+_K#O+8xXb~Lo9drc&;cxV?Ccqcm zq6EAkn;i#5SP47~(6@}su^&tJ`2(*^z&J)giP{;Rh?0fOlBV^%0!cZkS9qOx*!c9eVnbZ2Csd1k z!je@i!zhp%Iq?B;RayCzPv%v1$&@kmbj3qP$HmeKCD8R5lHMyLyl}Dj4Fzg86at zeOd4-9>o4Q>HZqlSFa5Bj=x%?EaIR>BEtpM898{-i}(tk9wT#{_v(ufFRF@i7b>0Y zokU?wy@aW-!|6kZ#BWq?Kd!9)9iYKubWx)U)pb)-y%Eef<~o}>f2h!TsY>54%rpLA zkgFLO4vUw6DJtzp0Z5&#oQ*pN(z(Y(xab*6r`n@Hs5HE`E@txio9>ii2bSOaI9i~4Q`y~-Zeu@2i?5rirg(_9LB&@Sw)fhhu6H)j=47iQdNed zhi7_DW@w<5Mk-Z!sv?O{ZBV=)O`m7u)UML$U|ds#!F401g)1IrfrjyLVU;OG|9MDu zo9(|{=X_WA8CR$-0|F&S3$=rVC?xXPJ-s$5=gViAmhp_MZnwO7Y(!ll;vfh)rj08u zj{QlLQXxb1THZI_d@T~=2)aB|+B%+{Cjz?k=Ddbn`9)=n_z8BliCOJzDNLdiRQRJ5 z8VtTVcZ>b!7SkkhS*qniMHeI(eCQ9{ZvyVa=s7-tJUWBi+CUJwUc!9FLm&JGJmX`f zScYyQ#=&rx+Vp-~I>2Nld!j~^Q70L&qF^y298`B-f&K`U$BQS8p7p|Z$eMRp%>p}* z4=7%Ul)vA8fn=o~)1WPV(Q{TL{Fkd?s9*K5CL1)&(i!T(g(;vBCb-jt84(>eWam3- zNC8u@fckF)=IIJG~VIe+y?wIUpMs=Tp3q-@kgEAeuxBoPu8W@8;?knJ~J89%8>3kt>5*+j~o_N zmPCXr;$?gm;MK2?M9QO&ldwx<Hd#gd< z{(XZ5i2ek`Tn|}Jgckocc%0Q9wB8rRx$4q&fT2_$6_7vS+~G*?bGCu%@>CyCD&+Y? z+Ecz$=w}99fGz(ug>qq%Y=|NA;h8gXo0^aQ;~6P%(c5wCtUbo;gY$U1!sLVX3~>i1 z?^%EHVCPOkpoBfRTX8eG@?y9i2fWsOf@fgJPf<=IPt51?J(oNSr#|AcY(`8yc!F}W z2k|s}Ow1?e+=Vt}nd}XXfoR1xiCj+XBJ>BRUfuBoed>le8|KYKQsYrx3y|Yl&z7~G z1?~>%F%jpu42ndEb%*mod;pKSEAN2JYDJ?Y<;+V5&Xu)^25LbDvHC7IXZGY16oAi2)~DO`0N@$Bt`j+<)BwpG+eaXp_sCxnfW* zNE5dQl392hJJu~Z)GfX{*0G;c4VQ2tAP+hr+tp@SNgjt(YT^p+8RjaUkFN#za)Jba zeUV)p)HO2g*w!+;j2(#89~gO?_o!vm+5qeYg87o4CO0w_0ss~0;}!7~zdCJa2ZdVEHYi$!htD&Qbc7DSMob^PVtXsTvO zg~%8^T6|#?4ZVasfHuT$ywpZMZC*cfo{bKRQ~hh_6yf_K;=&77--6%2VzDEf^_OIY ziMFbb@PLJ*e}5c3NPv0cM9EBqEeKIQ58EDv=-`mrddf~@_z??zUG!_7S4L4A?!PvX zNuU#?C8Rz3yaXaaWm9;^q%wTGK!q=TMEb2;phU)h5^;1-0HA>L_0BE%Kz>M--zO5HG`ZfQDSv5 zFoLIY&739T{NU}r*eWFa;@+2nd;h>I%GY=q9!imm{fZzh8BlzgrVMM(?qNXxh2x45 z?eC>#-iK|ym)VMFN>~hDgu0U9=P8Ke42bW!2(g1m?*(M~0wRfxJkEuuqL&LJ;128M zt$ZR{ZX#41%VlEOyC%dY(;eU<=j@d;naF4~qP~9vAEwdyu(d$$7hT$j0Xbv!;Rx=7E&(b`k=r&$ z%5Bd7{EITJdiNt|S_i$3F}Mp$opI6LM+DEf#My-_$~HV4pA5iWtXhz6dcd#Sakt2v2e7A>uBDcI)`7BQ&1XuTp zidH5nqDZw^_!}tlexS7&!tOdMk_>lYjjW!GZTlmlGXYytvf>k1`zv?gm*8Y9b#?1m zazd_Q^6lRabV*_+Q~Oh6#s|M|=1oDaP**O@hRwZl`Jo{N6#FA=ZS$cg+t#dgnsE4$ z3qi@E>Rkb|y4X$Z)tjL|cRI`o{(Xzm>nMqxIJ8)E*2=xU>c}qle_3iIB1&$<_lW8V z;zr@l%bPksEQ7j&lj~zH3={>L4&OF4iiaObftM;sM_($m(Lzx`sC}He*96Rqi*%;^ zG!WMR(}(hABlSd-yOmLkpMN6x2eBrkxnC6QJhjgu$#y@m>y6%*ImVVXFUY&*hI<}kp~Tl;L% z$NUuriJ#w|hCUG#H&5Cq1@1)VNd*<@{0pgfVjOU*vOO-G=D-U><70;?pn)`$ZuEFE zc%-1tG3tdqHMGk~%pqLCDEm!GdQPRy+0S#6N(jLRsbR291p+u*NE%wH)lIE&qUrie zbuu;;PEhkjNOGn-SnqnQe6bd>X6`O)b}T&#d~(SC?1S0O1Q=@=QG#sM8>3|ZSGcM6lV$H zR;SnC$Rp}Fiu-%4-osQE<+g3sVsfj%W+I_p7$#gqZ-YMPg(5IophYkomlIVxr(^pC zCt#iOQDxTeSk?`JxKE9PbhEAXflMbE;USt_`Ju)KsgP{@n(QU#n-%F5iwNkFGI#!OyyqbU$tMMuE535rJTC?ASqh`&xtH0 zL%}-kgdr@ClNRObQau_r9ZC~;PF2Na4g$CfjnA!-y#`0YzidTa`RxpbjcDknPYqsp zNq=d#4IcM!PdDL$vo$){{d{|-sedNZTcI&?uMD@WQ$&jWmj67ye&`)JZ;?n01C}iv^ zVjP+Y8jf;0>l(LOYKt%cUs5;bMAwu)YpfIZ>S~+b1>ESO;cve?s`TWmi*R`_EIR^Y zc4p+rka4sJ*y^nG9~Gi5)zKBc@38?9=k108pj;3K*g(+=AJZTYW2c{**=@SJN-uXl zOPV}#f%zKo9YE~qbgcLDtI~bW=0o`sSI~zZhfsMmyKzelrEQ-jA)`NpE9haR-zP1t z#`%N_{HtF?-7XJMt9wY`R)l2hHw>Q>CSsZvub8rA&a?0Ixo}&hnv+8F)uvXb6?2xf zcs>ajC?^Fy|IcW|?xx$F-pHg3A#z}L?!A|H0O@k!r`In5N z8gnQhpPnVroV0jRN-^nJXn}&-E4b>!QB&=bH@xl_9cP%T){27Vsoy0&f6PUy><6%3 z|3sg&yAsLhpPsxLZu|xx=UQy`w63T@ZS5mZ)Ro?uIn}$y7mJ7EPQ?iDrZw~@l~H)? zh9Oe5=yd7r!96&vd<>9kXF9+N5T4ruO8Mk86*^ex(Vr{(_0?L#J7A%gM4^-kHd3PR zrmAH&aea#>9|K?F`_Mxb3yr7Qi*mFw)`O{1gLG5FRdhllNsdW{3~<}1k8BFKmBg($u!deV!`^7wStyiI`E)We!cuyl(yGWn8P_Z4C}zPA zb$1ft;*DiRNAzvh$AvVsZHvlP-&ow}`*@cX`_7_*w-p4#Cn}&!M5%l}6sz98ujt@C zjR}QuJD6%bhc}5!!&NRnzhtJzoLtO5-^R@d@;io1EXFioky%F1%>w10>-h+nTdHlu( zI<_mp#St!=r8RuVlZb~?@S2FHHwc@yuE5tQn5oQ?DU}Viu5iEQXPF^{Ic~cr&mE!T zcNK!sZ*l~zBr^4jg3&?zgTk}Z)Tf>b$e+p+0Kyw?GONIMGJfDxF9U8+`2(D67+x1C zHM}Npr63hPsl*fJC>U}r>Ge>QGIFOtVyE+%0cS)|)OZG#(4ie%Yjd~psCLAN zKW|5GamxbRIiE4;FSpo%*!c#hs58qzHlmWDdZ`tKL;)u*Flx(C5>Il>&?^EB#TK?F zo{i-ujy}yMvj$bgPY1_jOAV&14+`pm`CFK2+MhX2k17=aQ*)iX@NuV8t|bc5VSXRB zi9*jeX|f<9UHSh^GglgJmk{Q=%24BfAarW;2U6wjMy}99;BVianTcYm0?%1Bi0}#} zZSBbHNlp_O<%m8|*OYkUpW@uPr?c~=|B3a@7vZXRRwEK1z2%g05gQ8%gt?X(Uh(D- zJ}Y72U(fhuOAGFvg{0@!kjh1J_Mps>9;enBT}UvN^~Dcyr^`g~)csHqL7&yS+I9A< z5yNjf_fYNF;E19!rEnHQEnup%q2O+EuK9pV-51ZHo12=-Jo83UBI@DJpX38f%s2V(i|XGL_nz=d?jFygGgBjrtfLu7ZFC0M0DcK500}x8-_$) zCtE5`+liD1zWQ<|S?sVS@nGSkM)^qDOu0cuRTCntOc!MS1=VQvGt6=C>LuY_ltL0e zSk~vpldh{98eFnYXck|~2miF+OO3jb8{qhZ65|Hf_f78%zZw%)>9)nD^RiZ1?P2^R z-fS*)IoNZY%D+|ZF6}p=bSyA zJ;b1<0^t1RsOH}^KJp%Z=eUJReSVHML%@2A<^>&{4pW%L( zS(V~k%lI%8j5H2Z)tOT~!c1$B|5uMRVjHUcd$LvQ-dlS|H#aM%vk@#c!Q1S9!?zz> zqJTea!_p|lJN@9P;^f?c@=G*=0TxIwiGpP3g@j1F*UKgGfg*3=qR#Z4%TgsmEjZ3S z_9PCv|5iVr?f|K8utHBFMoYFxg31LXwjtURRGV%2~kn9PI1~?gehmT2M(M(Xmp`ERB$_gT zW))9UnT8V9X;zd6mN^wngG1hgbkY>I?y3Dzf9G{QRTL;*UmlaS-#~II!JVXMyO~)`i#m*2__Fdk=(Zd^C~vc?QUXjId+fk(KHU{IOQ%rYI44-w#m!iDCem0<2?8EO*_rgcBzy1zDC`G_ z&lRLw+CV09D$GOSVCpTQi zMGt3+eK8N$b{kY4=f%u|@L*gcpfyZYtQD~G2yI&?@6 zd~%=qun`eubGt)|4 zV@A#S!ifA&r9z6WPZ*&>;kQ}E6>4Ni;w|uR+@K^#=aVL{((z{+{ykDSt93l#T@W z2~DG1*&dp0J>fk+9sJI5NY`0i~R%Yd%iqn zfuY9{mb0(Ej9AuAk~RSqA1WiKRLzzoiJC%vB1^KSI3vd>v4_`4H2vl`{l#KpT`o(* zOMn=p+wchJ3em( z{`@H^_B`4ekYiylDZ{<3zB7uV^v~`k^NHhfA)%t1l_^+x} zFIBAMXf4gud?|Bkg{Eyv9=>=Mdf*n#Y@wSI4B@%3UypM&JRDNb?ps93zYm})F=$#( z``6+H<5lTqILKE5-4;D}Fuu~3BJ%|WIW6|QCUZs{L@jh0RBH?I$ba8F6e03+PBVZ0 z(mSG-U?hN87gr_&=$dV+bDK=1Nb~Kd^|3zJ|&H!si;9T8BoJ+{R96X2HC8Y z+&MWEO_c(mGh=v}ARgwY{gDR8!c-7St$nDLjWpB#2R3Tj{f}w7+fdVmHDxx`$nnD- z>IiA#ql0S5Xv1f$BUl8zEO|Hj+1J?T|HV3(zYo&{_P-YiHEQ;Mv)YX{S_>wcJv`m< zuS$*wuDn=gg-|8Ay8O&nqHI6|$A)V@$GU#>^cd3Pk#`EGT9vjiNHnQTa8NXOMM`F7 z7NWElMU`*_*ZaP1jJnUB9{UD~+mt)?-B_Fg`TWm# z%6_GwXN_a2bob|R9nPuc2pTt{J3&tUI*Mxiro?YEJ#tg@@@bKmABNd?%EmX@{@_W( zD#qt3-e*~fO`UlL!B0@lN)`IzS9}4x_JrQnT}-oWnPXB8A2(Z&LP4!x^>Hqf0huf3 zl?vn!wFIy}p9X(~(lF;}S|)0WnN-W|ynROHKo3Nh^<#e_%a1?t^P=lJj`M>(ty4t# zMA8*GAOpAKd04t334T@9ctuClQW*SO9BTqe9kO0F%Uj&(j#zRGm$KGF4zGzDM-N#Q}~m> zD&5e;H?)~cI(Pz2F|!z_>J0gz_o^#S4 zCdBCS@AK~=it*=W8zQwc+muXb%y0-!4Y+Y}qT%p5rp3)i?i|fJi6EQACY6I2V!g%F zGN*6LG=Y^#F=0neJY*EV4z5;3K|Y65)z%YT<&$~H)EKLHjW3oKdz8bfKMo9+4IAhE z^t~eE|LvV&&E2sh(U^mr%Wd_6N5A`c zT2Kv)0YQ}XFr#(rr@o}DJ)>HY0Tpj7Oy*k2KRfNLk3XAa4;(UL4T64iR^rQU($4!28SlF%R{oyrkdIAky0AYBVAVDRT(3>YWnB% zDbx+!6xzu@lE}-mPoJ@uGck@})o!Zd4CIE|_fsmVco5C>9wgvzfx~`f5b zP(Kqcf%okobFSKriE9V8(4#_X=oz*4hh#jNiBTZ%k!s^S4NuAp$m@2<)8@09FWUki zQ3W*5X}#(Qe@;zvI@=1m5!v1q){LWE5xv|ulN|5fnf;?=p5NZ_R_xMU^``N7vPbGCMC_(Iq2Jl z)*UkA<&XqU64bDV4WdpD$$QHrO=BJCi!?WxA~Mm900KyEPL{6yeqMQ|Vr5=EDv+eP zr!U`ndW8Oz@y4y(D~5U{v%{+{e1EkUQ5~&r#DShJYYM1&zL@d;jEgTEChx~|bFbI^ zxhO#fUKH5MXRI;_p*esV0d=jwZ{tLs8$KFs)XDCTv-CL)k4{IEG!;68JBAh0@cRC( zcjp@v9At%WK^^qj1PFy=q;jBooAXl)>8p41MQ4!brwE^kz@aZ*F9VCUy%x@?v~~TC zT5Y{MbE!h?9-uEpc7trA=@^855)(LQIH{!S6&#u^5dh+l zcpl7wVQ6+KG()w@LrLJwxT|uz2|d?_pF|=-3$(fkw!(S%NeA%@Pqog7M<#6|A6<|E zh5$eOCQayoGMtV%Z%f=W?E44aAV8?$Ogcuga?{X1qc-bqjo(;V6XT? zLM~tIs*Sq!@9v$rQ~!+LhM!+O`*z*TC|%MiX>oPx@R^J9{0RiJCh20ol%}OiGUB9W z4~hn{x#;l8jYbC1xGXd`3}h$JHP3aBy);wqr;x@(h zM%+Jka)EZ0WKvi-_>6@SG@o&`5p(IoBl)!Y2sSX}@z1p+tz!hZ1Z_W%=XzDJY#&of z28NSngs<|{z>U`Tu*%WPb#lXOxc<7NOFjXn^_eK>gM$c{57KeyMM29Rh=~3IP2wSU zKekO1FJXX%@p-Ok+2z`;GQa+~Sie;u)`8z2vwE(Jot)-x7y8Dl&&W>2 z>vT%wK&|)(d%MjXNNrXdq_Pdj^x+CEw-)0sejHfRfg|(@L{O=)=c-{u z&zQ>*eFZcTRgR-c?JA(s@UYe+8ND-iAA3E}hq35Cdqd)sh3-NHJ$C698^LMG^(=1`}7PwH;)e(!Lxg3QjazXIuOYcdgguD&AVY$#GclG9O6mA5==*b*YE z={we}4bNQQGu$ncNKF>ep5gFXnvz5V88GcZm@0AG261`%yt?eC4zII3h5PG;-I5@p0bXhR7Qv{0<1c}1E?gLcL^Q7T0zHG-kH%U`@5CiCiS6Uw?e)Q+7KtqXapik2c z|CLp+JZO=xFBe0Tg4Os4pF;_e)erw+!O}fzP>#bdv88A|@jdO5_B_B1>A{A=&W+nM zwgZO4nZhmk;~o3gBlCz_x@LU|)5z{oc z410O_dcvo{0J96*0pqPsKEEn0*l8ZUQ41B4%?$&e&rR~$HA-R`?2LXwFFuHCLtewa z+k6P1K8M}TdRIZ+{(evI>e#7EaLKZfs^A$p)|gmnb9sZk{%lJ-O{%De_RR09l1^zq zE_wk-Pcb?#Z5QSp+M^SD_n7ANj)>M9F{g+N@PQD{ddJ>i%j(S3pt39F!87(Oe13%} zutef{#0t|{p&wfOFG0MInWo#fz|!VTVCbsq@kjFSg`o_y&^n*?<9eUpqeCMcbo{vo zMg|1}88n__pSWrsoQP8b)#CiNZ*bV)NKRgM?Hmcfe?QEVh#xowS7G9p!Nm$n#ekN$ed9`3k#a*d`8(@wtYwmwDW* z8N7B<(IQQKhN70x#=TR1@pC-!e!$2xr@NL>+n)Q2xomHty9OF|&1$%(G=1I&pVMv| z3=;+2dr94sZ1~qv1@O`Bez6d$@|I<0YSNyb4R+i6aLQ4Bh(snxC~$%%PA~>!zq=~y ze0oK7mfRV63C{abo@RyzqpY`y=u$5Hd=PQT`i@Cl9+z4l85nb(opRFLS3KlOsaA}h zVAqd;o5Z}dwLX!t`1bo$WaXmZAp)fQ%ia$)Q6itqejjp<*xNC*2~py6wfOdg^e$LV z`AEu7c+h9g;%BhbXE4gQYG#HbEW?q&gGEx0U}q><<%Q$KpPqo23^8Sqb4(07 zzr!1|4Jgt@B9dY6=U=x8^uLE+M^5m3T^IbL^6s0=B3Db!%kW(fwq`{^K~zIwRlQ<0 zSnii$(ONMGUC#i}kAXp6x>mp*ug7~C27BW;=jz})@r5Cvk02^4$$-Bik=bA4O8B}7 zVjdhN4^Dxs>mi2iqqxEEk}?XI96nK5>^ksAhJ#5Z%91$>Xt2aY;d76GA<5x=z?m=( zj$9BgB|pDRz79f7VprZ`ODCT{t(G`FDH7!-QsXQYH(52LsAcb#GFPiLTl*#nj+x-d zVx<=2_%5U7h45fWTov>`Knw?nn7ozCU-t&vSf{c9weLI);l%uLol(rl`8Y?MQ&lcGx{J3$Ho_lm>8zwP90gVJR zHs$yR3H+fGaeV}Vndf${u1`!LA`74^GSz~jwF>9x`!qbMV~&Sq?5#~}CD9z=&>%Z3 zN0nD#TZM2yJLBZP5IpAk?%A=jzJN-@Q19OAJ)y@t4aKZ~;WQuirmlpW4pwXO3J?UXAGwkNrN z*0K({uLNO|hzFWOyaboE9xnlFOPIVNvB}y$#ZM)AmPYL&HQSad$n%GUYyPMY>Ah14 zJf?(BS`iy0X6aXDErnsa$+C^apgypq8YgE|cnK6v?k_qhw`S}_4gx`NwpEtTs$xL> z(xM1S+iTcHurNVHaE9_;V1~-WiI$$%v_efJ(pqj{`A)bJ=n1=VowAQ?EBv^JrBl~(}*0DM*k1<%^f~g3HA49s;m_lLWkJ`2Mek9tO&ia8LhO2b) zn|kPs5pr?@EE~BlY5A_)H?6Vb@Q?Vk-s{cRZ#cYJKu&5DO!f~ssIw(Y!LlCS9*8$x zCUBlUz;7eEt%LJ2J+AFB`09oW@;gV`@tPEav$$(_3j6|UFDux|{gf0Y#F$nPGPv}lTIpb*=Fru@FH2CAR=_nK$MS^BOI zyQAeW{i|yS0Ubb)C$^mF%H*wQ3wUT9l?qB04-x8P?`3R9WpLRtl=RPB#}O&#cK&9; z_-muQtNuft{zg2)6R}UN2tRa&y43gU2L)an^WGC%|4LA!zFYD&iKKQ#r&+1_C4T$$ za7Z-kZJF%r(J+vtGN-L0tnH!N+@(0_POxO^H8BQ&ozT7d9f0Y4dLyXy_VpLG;*l#; z!tdn(vvW){Rj`~%l@tq*LaU!wSU~3j0Zw@mp)t{A9QnkUl_OxZtIn_Q$hC4V&xf+L z>sT}%*p38fZ(TTM4Yk={mA!~)5Bov02o!+;>s~RjWE>g&dd`d*x}z>Y$>+dzRfAs$ z4iZ`dz;dDTX{i!BwkRxx`HQpheD?D-t+YL)<2M-Ht>%W}l-Eb^_K@uo-R+cbQZcu6 zt`Eu1aKr{*Ro?L6UD3VWdn!xgqjU>#_c2&zkdyOp*<5k?zh*$JJ`N@ouO!Xd6J)`T zy$%g@k~h&*=mx*pI3>M6lwxV4w+V%ranhhV5wtzV^uF*px*e2o15q%Jn zoBtmOTF z*ST4CK(^&Zu`E#{R9=_5q@th&NdzyG~sk6v7hB2ruQpS?Tl7Eicta%$~ohKv$X zR-|C&U6yAHA(gT*zhKa;)AdvBiJuyqCzOzQ18gn7l`fQcf-kWuSC9T^?9D>H5P|q# z+YLTU)Lb@LngNz}t&?(Hj(tKrwYMEn@kQ9;(-mr`%1bweb+DzMs+`)hWY0At0bLrdp%YT0> z%$e%k@fkYJai_|=sZrqcAdhXuEU0$2^*hbu-NH9a{Mav~97WN^+ab^4K0BSHXG5Z8 zwJm3&7x>xckb{54AN%=rHas9^$t7eV^kwj}t!4{2EhXVTAXy=~;JGN7z?3gdm#dVx zQI&p0N9^M+T#f-q^?j2Y+dnl-CDpd(FzS&y%lgd#>?kXX)zN%eV@2V*sM&LjlS4Ht ztFyHS5UR!&>CJOA@$7kn^4F&PpAy8?h}L?m+dCAb;$|h^iAEDyKIaW z5uHj5mH}`v-*dj3Nc#{m%to8(`(l(-ToHI!h`JBH?i>S8xm^hJyRdl0yi*@@=p_(4 z{jcNT-w2@&F?#E?FIYG<8TQ1o-T$9dV|3her-RQw^+mmAf2~Mm?ujLTKk2Y-B^Zew`g$qqyT!25<>&4xeg~#D z&KrD$n+yq<2+!oB?T2o+-!XSjt2|8cc?V2eKS=+PKXWwF$MuU}_O{wLuRv`v`mwW}fKocYq+aaOpqtI(>|$&8QI`V68!lx; zcf=tc(MA`Xy1V0lJ0hwfPMWrv!=?!i+URj}; z3!FV@n^lR{q<(m=xTbSHRxfqisYL5|M=W^2WY|8N265w$l3cON#g0XOt=v>RBwZKh zB6&EWu82r8b8m^2+!}f=c{8;|t%4goZ{L?V`Q1E6T=&u4(%|nz3UXD>abeZ9ACiTX zfhixwbDU)jB2+C(nO=ZTPr?9F&Du+6zBBmA8STq~7O%~{c^iaJy#KG*0EcnC-S$fd z+3Tl3f%Qf|xA?tu?8<{}2<|AcV@l*xzS&mALhqj73U5E`J}*hZgznUMK)-Z*IZxR( z7S*iO!iuZQw}M37&DZGFQXVCbXFBAVOzSCMiL7@~U=C-F@)}hhTNcolB4r*BuiKN# zZZ;_o?a!{I;(VLk15+)7r+4Qp#tz?J*o`J3 zgi~EX_j`}AA7Lyasad+&?( zwZq24Nl*n%Cw`~V+Vqs=#inMBY#tl}6`Uo}hz8%bTKp#&c{^3Ge7*LQQF&{~fTkBk zq;_EmDQ~eIEU4O@lr^h_%`wc;%fv?2dmWdp_}meq!lig9uF&|3$lHDJv$bXd- z4R|T>F2{8Td>B)TUNu>NNkdwoI_Hv>ThTn2KVN>msq2yTTTfQ9J!+{ksCF<cdpMji*qyDewo2}3#6~-A)*O5Xdemqgy*EsN*$~w@r!PDF zW^K(Z+FAY__I)JZdQSH|{5j$sYz;tuKEuXFIlcn+UW zBX!=2s+ZFnPnMNZT#om0ODojz+gCE1|fsL z5@!?GUm^-+!Hl)&0+1f?fR8K9^ectuWT-IdNK#XKaI8TnUp>y;hV(&JNZ~S$RN{lk z5a}Tx^y7)#el|V5^a|<}i^!-&v|1~)USiTid`LTkd&kNXik2p8K@>J@z=ef!LD{_9 zdR(D5T!Rq#IP-JxS6|2GR4ki6d@CjD0db)Oj3F-C$Cg>>xONH@&n0L;x+S+hisNuFxBzNd=qjh8nRJj z>=KIh#1WYmBMRCl+p7Z&$^PTXqsb3f8@B4--w)p?DgW*fD8+jvP`s3?;Q{dJuI%IA zU%4o`u*&*JY$9=fmf2pNr30NCp6zB`g~NLZCB0FLC-WyrMe&@nU=USE%ascEdIGfx zEeDmZYN0zlPOr>px_sIZ)1Ba)8SGa@i|crYcBs&Ev&*V;M$yptiV4v}O(*rX0hAX(_3>A+dl6>NN6y^$ zez)d%+Xe%pINS; z!&PMNTFuqAmc^tpG(1|P)s)TaasHXBf(kmj`r^FT(bHyx3WO*40O*5c5mPtJ?)1$p zqv=z^eP$P^Do_^mc;LI9>C1>tg+1?{I$2W-2aO@H0?F_C)~vYSrvmL;zGnk-EvT>4 zlM?g!$69h0$!YoopqyhSa~~G|sP0A-Aj5cni4PSDM(uF);iAF?Eh|Xro)Oz4`b8Oi zc1$^x1+lH;%CdT=mVEM9M1R90mj&o=jxIHz5fJNlHJZ1L=dmY4B5kB6r;cnrtAC*3 zclHiU@X{dsu@NgNBn=kBlyFQyWEKVIBxXG z7w1}+VTD%%b2B>Pw~pt28TONW6f7WlZaw>neVNd?mROpyf82j2Zkm}j3j75sF~GG6 z>Aqj;Mmi84ZZ__Sf7zqNp1syW%eapbXOcPKzOIw=R{;}=8hqX;)Zj@B{o~iEXUVg7 zdhKGmSaRunAH+xaj-X%4&k)>_*^==Qom}!ekH~{_!*0F|ON>?c|6m(dy2{)Iq@QIk?mG~b+=iv|a zAII_A?##0{XYalDIqU2*lhu(u%1TJwKu74z5Or1|Nyv&iLPWB&(h;H|Nxyb}_ZNJ> zkI(n}eSF`a_vih3KEKr4+;7>!hZ!K1{oKSVsJL4%XGde(LCAHMFWvdPs#v?U+42Ma z#_!!%!&B4F10~wCcqx#Jl+JU#s7WRmYh>U1d;hbI1N8X&7Z*hB*_NV!nI{ZIe-wy! z7k$j3`oe6YQX`W}&0>!WPyY4osLAb0e?ITcIdU;|?8L6{(|s{>vup#l?LLlA4{#Z8 z{YL5lV{s!|{_zu(3o`9*X-}u#<6%0;efB_eoJuL{*?HdI%M*d!XB;D!4FDTr@hC{h zvmg$=vv;9KCi}7$f0F(UCOi!9|1=eD62a4xembN5TiB8+)SEHPdc!{JbJ$31=bgco zNLLyDHUm;q5Qsk^#u*5a3b(}H^5duNL0R>$Zq|}{)(@6W==;8$D(_($M?BX`1-QNx zx~gj4|Dt^U2-yzcKRiOs099u8H}W1Ipb#SO;%8*8LKvKY7G*pJo<-ZivA+z)!D7$-`Nzm^L0^xeABdrV<@H8P2I*G& z-z*z|DgnHqjCTQ?89+m%Ra8O9ULoAka&QDhi&cCYDL1pZo(oXZL@24vHK7ru04UYU zC_Sf9p9XQq7lEQUMriMX**gy+4nkg}`?OBuaqQ1#yu76^VIF+X{{-{?yiB#*TaH1j z&lnwJeu=pva%}+`u|G4kBA(X^io3B^o-4?|U(mXnok4?`qeSXytiFu1b~_beuW(h`&#d8F?hDQ{*gzY11)N`hzu;LqK}UwmY#qCvZ6 zvy8J}#T3^q%u&tjpd`ZIs(-vA`1GdO7gw-&TqJU}k<02abX$&r?Soip-y zR__e2{@JghZy4;;bhc6y2Z{Dh7TJP$N z1iu>XOB+ij8t-EuQ$;@AiK@*g*7svx*0waKtaxRS)B*4 zo;$WBp3n?)bvP(Ac$bIK&k{90KFeEh`x3s$@>2VPG5cFx5p|vpKV_9}%|oyZmI!76 zWW)cWQ~NpZXwwIoBPP+8c}W7;iGbaCZnohODWGUx3FBJa;yl3f=m3cMNoq}94&*V{ z6TS$L7cMgg$M)^!6d?Ja)P#!@txZ6T5DZ7r2r8ZJ;8RYTdz-_5_uIGAXs`{ekU3^I4luCswW( zy{zV*o_Z;Ly3EULgFo;Aukn3eb>q+eM-NYvB9il=)ieToA%pi70DCo25$^4dDCekx z$fXsMlP9bjzqKTNx()-{%+c^h%1eeViYn1kuw;&@XRI_D*Sibq+x${MPqWoURh)p1 zSGlFnk_tavjL3ivqqy>N*_~CL&c?Aup`6_a&bfRLZ#1CltRL5ONWq?Y*o6}$b^(M3 zw|U<8Us4GvS8e?->Jz_uS8}xQ2>XFm%nJ%@U2@c08>^UZMSU-hnQ)IYbBY83Rv1b| z2gMqK(5ZVEJ~{&p+U9Cygn)YNH~y1De3zR|I#;A^+McXB@LzP0w@Tm1e`;dirKG-x zmv$IAF@PB;C<%34UPg2@$-|chs{*iQ5PYWMRlHw?tdKavmG*(%a2MSWKn8%7gn|bW5V~Cm-D7CC z0sNe<2>*BB^L*B(QwH$@f6kpdANg6fzo*w71x;XP9tg1QQyK3J;EYq5xmWER(dqBH z_9+ID4V>!vobO@ns<)@_aHgn(gou)#RdT$6cob_O&EP46D+U$rSQh>&!Q(a!itRBt zgJRNY!F+h|a;c9z;X>{B8Lfu=z*lYEdKdTY)sG;mA`VR zgH_NF1c2WT6_Qg9Vcdb#El)KqgQGk}{+_z}g&LW>ESR~hasVL>)h#eLvBlG>2N0(w zC+=IHRUj+-!*x`yRO$q#$Y^`=kC3o|a54WiY9FasCe^ur%SEVm@ z2^yyoUXv1(I-&|-mGPb0YF~Zby;b+RZNUT(_JjaBsIaXCLn!C3^#nuVvJ&;nkkvaz z+IWCAp*(gag(skWus6D3PlQl1`hN`dD@Mx zpKfq*M~=%R$~c$aXg52zT+)ZR(ld4C8t83oYo6P_*kFT0uu&>X}Vm7_ZAQ z`BW_B1MtSz*l{2g8a7)?DP)5V7UrxQvP@E|Kl=s_LTH(-YKgb&eG=T`e5qShFmU9z zg48!B=M2o-f=O+*upsHc5N?J5$7jDyngG5ImT#ylC0Q>K@*Oo=+^}gP8FW z>iGFbJ&C5ORqGREm93ZxmEQj1!QkTNozZ)16u;`Nrr+Fp1qtdV#LgS1>iZvE`_?wn z+)#9>R?D}mWI(0dzvn^0bl>pwh4n8-rhxxUpI@GR2^3dt5L1Qy9as7N^rA`$SI6YU zKvAdZlo@VR>i1-$pQ=;;!}IA4wF5I!qO)e=18Qaq*EMHU9xc>gd&zIMSn_!x=udq7 z+JZ&E>{WkzUhyTBQ%hcd7YF~$7@0NOyjEd1)9O6E{D`!C^>Wp%_E#Lei^zV)Ben@dakz}CB8VxCYC$arMl^ZfA>*yA2lCuaEH>7}x@^$g;s`9bYQ zo8IFM;hUc)6cN**CdK;43+p@g9^3ylFDpIqv#juYQuF9e?eDo)Tl9&oo}Gq~H~S-_ zO+)vMk-RHIE7GNtN+oA}0M99gY?%R?fe(dm5x?BLJ^k-3OM=wEL< zi8T1=g7uA_ZzhsOcEZQ@PkKm~I=^=i=D~Nq&mLH&-xMBTS3C18q1t_1PXzv6>(!zB3jW)3tx`VLtsvjD$0|PfU#u}Q+!^n zgoC`e0alZMSmG3>Zy5xE#C=PeoNhr=Pj+>mAJ@*@1{$~7Tj{+JVG%(0^3m|%m;8`h zn3~AMkCqLPGFEFxPdY17AW0cp5f=*JOyp*rx@tfm6A}Lf%KDr-w8|HLB{4SP{pH0l zZgE%duAss;Nq|XRq)Y9t)bomq45%KG=@eFbQ9iX_!S5hv+tS&UY!SIx!k6p#9Zv_Z zY&c&055iey5Kn%RYrsiMK8(LTc7CHs?RMI@O1Qi%mff=xG<}mp{h65YH_Le-PSSI* zT`FQk_v_NmZ}FWUR}aNAANT$Fm-hU{1qI&7e_s0Q!O+V+L`;t90aaF!w~&$6D&(t_o?YLQxGEfPB=KPSFwQ&E>6 zZRT?(W!uYhBNJA8=Vq{I$QVD1+>39oFTyRAc1kh6N^++#B7JAl0iei=ETY!vP3r-U zxMJ57J=o2xKy%Mcbc@o@naYEm($fIX{a#y9i;z3w;nP2DWU1=^!Oq47gKXZ$=el<{ zWfc57-m^SgLCoUuoF!%nhr`=n-z;TKQi?08(u=Gu)6cFr2cKKG6&eJBZdGH)47rI( z!%V@ud@G^C+p_I=_d3tdD|d;ImB@`EV9ZXn;HjA++gNN$5s)ACF*WLZbK%4H*Y1fN ztA%c2^v?BJ)!aqiaX74?N1uEQi-^e@A7j09+O*H)RjmJ)V>&%C7qt_6NiNIX>7cNz z?JjGr&;9xsy2PXWvQ>%`DS8mT0hLtzQ_}}G>%bLobsyUuiIo_j;K`F@VFom7w^$t z3twyTAM`Sow##>TGQJ0&>A*}bx!lcFEL^)d{_8+|DaeM@fiLVdX^kylSL6F;pBV8 zuwRzl!V@G0iWcmBJHzQpQR1cYyj2nIMZxrz(Ix-nwbK`o1U}Lmw7b4Y9wo! z6l~fh7eYce(^^@5I>EbaS1o3@oc_EUm8p7<6DK|uLCdu~F$=K|EnWNy`3{Jb+R>L! zp>qY&vrquy39CGOn~O%z60Byn85wB)BD?Fu3{8sw)qv_SY|;K^LmHp&($&CkVBv8F z%%FnE9z`$i^P!(bsVsf_FMH&No|gURtFJ9T_SVWOT0#Vf;a1Jg_j7y5=%oz?NZx#kEt>~Hnbn(lhKd7X~sDkQ=2SY^gIBP1@v>E-5K;i z#A>wDbEr`F-npIY6$5w3LIVT{7ayI=k1?^a3Sc!yE`6x>y#8cEw!Kvr{?;7i9GM)J zvFoeYB5}isz5Gi(ri0dJPNWtrz%tu)L*o7UDYkgkSm6 z^o!L~ohITKfvz}+3SkL&?~=k02(JnKV{;?NF)rr!_ll4{Ze`7OpyFvHSf~^a6&<%^ zi=*|lMlE)mGbUDVI!vUQ=_*X{0_;NOVfuwF545-1?4et)KL>vw&~(-)h%}xOWkFp) z^}Pvx=qMnrbLE-#7ZlPRnJsT;S%aQY4ZFx{%2Zfz`YmJrMj`R#){3#Gw&tR==2y3+ zbvo{gvB`_p+1G6YDCh`MtbIF>rJW8Nd=ceMq`3a@ba`l)+?oqQ*|fkby{yY~^BvPe zbR}n=F%LdyMtO|fzUGX~Va|Z)@`yZDUzGEuRd6Hhna_?qi{toEapuV(nH>^@C>O_s zUBR#DglsMajO(=}-ph{HuSJ+I114`qs}ce1nj}lsNQntoohQj-05d#i3_VK+Eyb=q zvkdd0g}aUsdd&STeV+XybW~lyPUj@woLg`8xhWlwZ1fh zsKo#|6kSuFKVoES;rdul^n4?o>4MGs5Dl%6>vAiD44_f(94zuPa>Ji&_{NAuj!8i9 zX$Rw`@i4zpBAe-wtmlDG*m)agG>eHUF#15MS%FKnX0r9K#ciF}7R`nkt9kWA|O{_Rr$klmdM7GdIWQ<8_gL*v#Y z_a4(=i$KNB0>^3mh*Y*x-LL6&iPJDbZnHvSnD!xeR?otE`pM~a#KCB0xJ7j2ef6_! zj?{)+DGmV}gzd|lZ#Uw8gZO9!i2LD1k(hpT_30Y`91bcuv&!N|1-s#4jyOm--NT#- z{qp0k%Z2}0Y}jSL;>&oim+{Ib!lM+%QR;X0zjS*Fv9s%(j$72NB4OqXiWC)a zeGw?d%>8Ks!K#Pg#~ofe zGa!vPn9~f{5Cz_xmw)$G_~iNZb2dV1XToy=-=%Z&0|JpbXM6brzVNdtL_V{$1(s#| zV#R(7m?iWSxD5rr&~s*g8n=fLlfr>{W`OdC@vbw4d~uh+nu1aFfI6Z8cPPl23i`GK zM&qCfG>9)cw>t-#Pk{x{5+WEB#p|hkIZ(Yg7FiT%kXItfQV}VOG-OHY{K{)0n0Lz% znU}?{ylD)w1Un%SOirQtK3sL5iO@~b0i^3kmb|I=q8+P*;~-i%vL4Em&BImTx-VanrEL;6yA&lpjaXV)|oI%nT zU_u~|-evCaWuEY$n2I#820q2#Ee%pERCo${?aCPoD%d&>ewiAI*r((~vYewIpZdWSi>fU(qg?w&Yo}G)lXJ^lnDt?cLvuIz3-5TW%72e%jsb z^mzeG8N20kFUAuiBeHlO0OhG5Q>7CV)>9!Z!o_q;H{NIDGClNuJrHpiO#*b*9`IzxqhT@{rGxD z@R+>+Cf0S|l5q^S*ok+g0#VkG1RTpb8UgSgM)^r)TY)CdK!j-+0YI30af6$KimYuO zvBi_A`c7mNQ*pHdzO|Z>RfWIcvRHDREEtsscD@K6zH{l>J027|U#wX{v*kk3g&N20 zbGq&k!6~5cf&njoO3y}~^|$9X&lB_ByOZ>m*Qh1ZZO=HvyLxQDjPonXn0ib-hhbqybF=>#?$U7X(R3^pON0UWr1mZ@$b1C7v z06r}cE6in_=ge<7b(@!qIe}%&a;?4TszWW``zHQhwI&REz0?v+JD3SmU0fCBMW-pp z=hsCAH28{yE9TjV04~L4ytT=x_<8qUi{kzF=N~BFrRV89Ty1mv#vR%x&Z=N3^IPBG zLE*mrl~H4eIO@s{A0+)NP;|!lo0ft^eP*Q;7BvFdtpZLw_i$xcI-?=hagY=`^&A1Z znFbAt18Ma_5|I#|2%c|2iDG@GR$tr5toOHzgoL<3`kK(6&x;e0Rm}On;-9RDy3@6V zziN4wlG-Og+V~*+7iEDjTAur;TII$-Y|E@A)U&8#%&t1~LpAVvfuzYrDU}X!6{Vuz z7V~{5m3FPGWzwC#$Xp(fh9=DDA{Cm-HLN+?)xs9orX?Dugwx(vYj5yZM3^3L~+ z$&Mu|1R9$Mdo*_DA}e%979{2Xy~hiXX9!Z0xY?i6l4QEIx6{*xUAgsHi~xvh43ImO zrQW_)9S`0z@rq|F5%7gtG?Ux=dWMeb94hmXYo)v<^18)$wZ0nMazvty;|BJP*7x|- zZWzgZDB3x4)5q|Kp#vW+Tw#RsY5LvVRRV%(phmx&Cj5{SOL~7@h2T{i1x2D^;CpZw z62in;JD^y+XYA02z;I*8vIr)De$R&nO{ap)aS-uSE=J6c%8qU;HOSp>)4a+1RRn-T z!ih5=H6+{}2V*vI)ihbOG@&m3uu#H?2Lt3pXiA8FJfL?~9aX1A1<)A$d5wzi9g#dv^>P%QEnqc6w76X+0Ybjr7fr|ktHPLt4o-vCzB zN2OxW&Pj3hi@_MyVoqD6C4Iy>ee}u4$rJCX5v>1|2M${Q6U6@uu61Y+W=kJle!Tm& z*|M0M;HdNH&*LP2lx}g~4%CYBr*}rU0rTq#pn7~Oq0i3P~Cp*BO@#88(CTE!U<_@yOLmriA^c^<&i%!mqE`zHM&&!OWE^{CCq5tq`6@j0!UZ;v> zg5xgnTwLArFxJoJHe}KK79#m?-S~YHB;g(b4=7^wVMz|apsB!!mPZAG%g)+@8xsR} z?o6Il84+FPbu0r{ULLJ}v2t86a*aM(7#Cil455EF(%&jrX8~U;{5zK6<_4?y}>4Zfe}LN|nme zujpV%kLCHUdotr(noWEU3Rzmz7^^E<$`S-u&Om9Z-(tIiwspU>fQzNj z<7&ypwe0l5qzqnp0?0yh7KhwU&J`d+OhM|Z5Z>FDHi4&!+?vzC8_WFXVnNHlqE=h( z{a%^bY``d&0(&b!7RadMLctWoJ1gMG=TEMoiYw7YV3!!M7Vbk=;0GdYO7K10eSJ#J zr$h??73>DxT%9jHns<~~I6Nx`pEgz;;`!P6>GZ;kEUP2wm5hrA;wB{{F>l2+1O!`*pB_k&Wpgw^?VDqw)^H?%bNODFvaT7qd`Yd>bM>*^2 z-5ksb{jH0?$$llal21@@8?4DXBR21XH?(L3aYFIKHZi7(k$c#vOz;^aFBmCzJ6~^qTcFp;X#Kx=+?0)VLbO1*(Al z4P3wQoZ#15O|7i=?Vo+MZJx!e&hgAnx+CW^Z>=!dmrq;gT-iqplzVc2!E2Mi|L!qa z9YH^c>H2Bsta@L})YXg)DR~2p09uv=0ssQ$Gp)dF4g)w1HM4}=wnhNbih&Ig)DvdB zRzxcUBCK8etOzJi$=^fnIAjZ)4wkK?o}IX^XL(brGps;JP8y=9h{c^Hk?C(Q5iWb+O<6XtH(-Dn@W{#X2DB?RsagJQ8y_ovJNxXz}r;m z(7gNwA`Du^gYAw{(ux@=*Y>+8yy7HgM1m+49}23UW6VfdkFoJu%<}|P=yuFg%IeSD z^by%alMFA&yKM~_of$=Vt@7>jTxPNuUOl;@!C(Vk85K6?>{Ghf1bI8&efgs zd7G!jLz_kc^?MzfvqZ?_qqheH(bw(1Y15jsr8iHIz4*i!;Z#G&q8?XnuT zP;;wN1?(|r;fAwFidK2r!I~uouftTH=B$AxVx3oSkH3Xt3FK{VY(x_VZgGKLn=Oe& zDmUM4xZ6H?BHwX9`#I&;^f>!JtaO1sJ5#D?#id+|;(=&?khbrM$z6CJwpF_DuTFYz zw#wG)p|r=^yv7oBx;MB$KSf%%$yuBoJ?kqMmDDxmT~&Od`GmEDenoM6rtYfRW9?zM zB&O^AoiH8h2NsDdDZ$U;o_&+@SEy4QhG3uoOAMDoJKjq1n9)ub(Aj9QTCK4>^Q)sE%5tEz3N;g&&(Lk3Z(@`vSm{7|Db*(5`;E?cuAVv9wdbZ7~Y{?6kB z;1>H~57{$3#5Z^G@byJzL;kVLj0sDl``Bs;tS3Z z)jSx=zM{{VM2+>$kM~pWgL|cH%8=lFaG5$~2zK|a;Jek6hpG+FY@~hS)y{C4Pi|_3 zyiECBd}_mDrrH6Y@9%LNb4U{z9tSp97eq93a@bvsi7{XzZutl_P@v=i9#o*(J`T!P zA4nmy^7`bsotoBcQy^SbaiXyKSImG62j#g^0T_h*cfjzcP^kA?q$S`fu`z}Y;h4o+ zwwBgxdA;-==J5%EZ;{EB&CrSu>s6~EWbFlo7g(TJM%;A!2mM!#dOw_ zt2`_n*HyGyYZWZGgJ6?qC4y#Sypd8T72MabCV-u1;eMd1%UMhJ)i5u$6^wj|U1%UO z4x1~Z`qteWjT}PIL9*~AR(V|GARiH7jRLJYFu*zsT0dE8f+m8-7m+8nd4{mv8t;{auS$k}(Oo(Wsp-3^g8%q;%4ia>6?h3*! z&qE@@1qI@w(rQ1m4vU_&GhmvE%pkww5dUKuRyS#r>W6Po>YK}Qct6gPP>Z=nIR--G z<`8H=s4z?mF3&fl&Me(vE;we;snIH{p0=rot%;bP^9I^*xeE_>k=xsy!nJv|CKpIe zJc-V!v}GApc}PA&>VjfKz!eC=E)TDCb3ykO;CX%ar!ONnoY`d3#}o(BsvcYoRBg%J zYU#XTbiYlw=%oV{*Q~z)L|izATR!gX{RhZqwPavWPpBkkV}d0j1uZq(ep)lclGBE= zEy&roqD}*{<^Qo{{o@0U+o!~4j$84PaP^k)+F-YoNuCfb7(+4AZtv}Gsto>fdX)m%q^n;-ETT;>RI~zbdj;_#>?zaSdJN^UBqUf- zSHZ_teDxBo1eu|~!+vr6oyb&N&TUQTwUyUrCyrKc4Yq~1W&Bln09v~>`usf!V?$<2Nj!A*;=9Ur2=Nnfdp$=+(v9&7V*ma9K?}M z(rCA=jQGxKyimmXRi*GI`x_g)IQ2%ZP+Klj0)JM0FSRXQN(>3)-_u0tb!eTC|5?Yq zo$&xM!!*_boo^)m9l{L6hFHDnr1np=80i5Zdve9Eu(H=zKFR`P8wDfm9TOiuP-r<{AP|1;5vuJ z@O%VN%>B=dT?Uv7S8493{IOgNa|H>L=*hkBBA#z1XZF_M4U&JO;KC=UBR1XBscENr z!vALGav%X2U)v6fNl*QFA$%IE?IjFK*5l zp04bws2Hk`)po6s{$of>UHb5|O0??uJNIn=W z-3v-AdeTd_P)dCCgH7=F{1a&aDefomZz4tM{i8IiYq?`?}EYmPeEpTVAU>+GLylH zLY98%*KLpm!ok{Du)YsC*69hdsXHEQ_mF56&ugc|#`8#vC>25C|JiGi#YKN~`wvc8 zu}O;H$RVsaaHu?DbhW~?iD-n(^Iq z7%iL~KRaY5wA}@u4rO62`!Pn3L?$}ijS8&=u640z^pTB)kbyyhRD^L!I->3^DVS|c z+=~4E?qkJjE!Fg~@GM&k!k9h*T+avA_969NIsqA_fI<7i$86yCM61M-j(Ax+aU(L% zA*sz8q|r-4{UA&IAj%U2ms3ZxySP%U5!wD+s`f;XYRT&OGrd}6qLpcGeAW?bVTeOv zb~I3EuY#XaiAb@$p=9nq(W^U7IGL+go)`hLjk5SrR5AA2QDtgwHb3yARdJ(}d=s9Q zqh(l`8D2BaH7lwn5mQH2R8`ZBBb!w`Xr2e}TY*&^?h%uaHKB3 zwB2XHX~N&;xhH%Q;>>cHYjnL#x1GQ%Wc~u{nCA)iT_gWl(ON0hQXT>8`Pf?QflX7! zkPG}9>tpI&ps4jCopw-cI(b_x%TyEm&QlcB|J-2}^gaaqals{a0r7!}Dvbj%d>`;e z6d(Fu`@)Xs8Nn{HcV?koF(Iz6Q>6OVpXn8Wezgky_S6up0P>;X@J9P*S~GX(y`|0Y zIyB!Ap$Z&u4WcIE4tY^I<>Wr=am<)M%4(mPGGpUM$Rf$|Elh(Dr89+V%m^&s1XiPi zR8ugae%;NFFf`c{2QP{2!nbFU)^6|<)dY;cGR>|L=lP!E36Wd!-2Zq_%~8-B}F8bBk?{=oj!jg)F3 zDRRee=h%;!F5c6ov}t`@mM-!%a|2wz{o?()53|#b7uS{_2ji+h<$uWlx{ z1&oEx;~Yw~0ocd+5Ida4{RAQqMXYEZm}Cn)>{BQG7-SzL>tG2-6}ll0*UUyw)|gh# zNhSy7(61ce@Ah?`b!YABIN)V8SZ;`KUTl?yAZS%3zqLCvorza_5*7FzJB=U z$)+4GJd}7RAn@HF(V`D%esu%XMcgmrU0YsVq;`s@(eqNX5;&ZA;-&!g(q1b@0ev7f z6p#}&a|?U(Z$R!pXS1OipPh*_e{0TQ?!5u@o+*uaTO|b6L08(ozLRmJGMaXlMT;n% zLVn3HgqdEM`s81|=*7Ck;CQ^!;B;dtjil*wnmdDdK7Vo7X%ln=lD&6w`s2dl2li0c zFp`cT(Skx6@L@G`QZ{ek8V`aCDHh%_3l>-=W<3Q8#;rD8Se0EWkQ)0Z69}f*U`wVk1e1>+9DQ}H-$Boamk`75$ zXUW}{{Z1u{-}pg%RzOy-eis<9jr-5vZVCT#(QBhR+#D6aT>Mwq*A|LIUQWTf`R1j% z2H(FSAG7v8um=PVx~Nx3%Kspl#9iNgkBoqANc@ApA%ddh#^;BKp`=wIro;nJ62y~~ zQ}%UF^D1)Q59;99{}yVP3N$@!DsQ;Ogrol2LMf3%raNKjQn|ToiY3~^q=xtZ)IZ$p!WNa*RZ1~vV zp6ex%L@JsWLRa|k)A5_-vcJja*+AUOMZ7;kas@&Ky+3|jAG7Z#8T=s0Y64l&#d=HQ z*IY)g3K0a`nPr90wok7_%BoQc@Lor!EwTnX9ywX7{3B-T{R`i-5}WsTHW*DL5%?P| zHs2>!bzBiOsw?0tmpyq4+fHxGEz zud2hmd{GuuGwPy+44qhH2z?6g*?p1mcv|)Yw+|Gwj5^sAJsZ(&qSWyLtW6~w;~;u7 zj})57SC)Kwyki2tF$+zQ91}F20%j!$ns8U~ZpWE;0r=+d(Edq@>3&b8di?9&{kvu-=#LMdoxcFw#EqCVlav7O$BsqK&Ee1- zIB-D0bh@{JD3@FVM?Hf}o$^k|8IsAILWSf~kPl89zWr;o0cEYO#nZWU;j zm1sU>_9{4XZwXN{vjiv*!Ev$}0H``Gqvn!Or1+mcJ{*Ze(^PEyo?MgrelRGWTsO;E zc?a%)%P7FrQ-KA+I{u~810+j5p(Ynml~aqFgx<1HKrw%u4I@6w&i`kC2W$8Kl93}D zE~mwQPm_EE;*FaYA#ilLfVDM)dghxhdkNXBl=B>93mRSrDEERiPzQKn_?u6IIzAx%h`R7gU_%YkXO>Lv-=r@J%){an zX)N%MiNT`-cj<8#t&|foS9i1|gWMws(S8N))qq(0WHI#tT`-Da{4zaA2S*z+jDw6B z)rF1oN?KG~OO@<8bMqn~kiESxGUHSUeu`?O`!=~m+0yuM+zl`Vkd=>{ni>F$zltnxw9cm(Nld;L_bGk&fu+?cwLg#28(6vPnzGaF1t` z6)MqtIHMCFNd9a;$Y~u>zsn&gW6|_OXlonsL*dQnl@s#})0D4_%Z8CB4Pz*6dq_)j zy}4Nm>ijRExv#bbk|d-%TsjLiOp%PDO2MpPa!E+hn64nIm_7A-08&8i3yl9|JentN zfC<2)+zfz;u&J-dfjLbcDl#oQs$L83*LpSW_?`B~t@+hMpyeDE-g?l}#1uXLQ~IV} zuwsn#1jHR9T*l&7jNQUY7*Xj!JE^Ktf03m1_-7))U2eM~l%H~dz`*hpp4{_o$#tO# ztHN`!V!6q8>>obJx{hU~9!s57x-6?0E4L%CaxT4X`(1Rs8tdu$!kfB^Ng7a;So}!t z$(KmcbU7*-K+qPrfpGj2lqD?h|D)#OcA0@n+MXMbsdcKhlt5(qaMz*}Qh>9m3=X#} zY2YuZTZC*RmO{)>Wa?z$+z>mBVlszT}xI%Wp4Z zw^Q`_vF#`m#`gr+KPM5K!rJnjq9ouEt%b(9rFb%F(g@m(pnyPq)N z06*$(e5)m-*J|W>mPlwZFq=yNmQ)Cik8@@HJp3zoUK5nhv*>7%}b?F*03Wp84i6^&Oka#a*T0s!Y&041RCip}Pg zNTJ;$TZx*PH^wua5(JK4CcFVVwWU2QqNB0g3%Tt-O_{LcCh+(#olf+wbo3Uo*;{asb zLx?=mGA<;AY&nO{k@RnZv5|0lN8J+Yj9QEGXlW@(5Zua%lbh6DEh14$or*6+#R9}L z#^{jPfChw|&>R1{rX$ z&6%`W#s}Qj&btq^vJmUCYsh78FWk}I8aWN%2ribg$Je+nk`E1~; z(N}rD^xO$v6T%q;h@37zU3iar8-mMLWCy}+e1=6ye_)0bASapopwd{S7Csb&SqGJi zEyUHLE(!R&>8Cz;Trc@gvySV;n+a|gibt8MVvuP+q{zn4LSA!1IJ1h7VjHMlnOpYk zBY!8sy4n8u+74|u*g@FST>;|opa$c;b1tl}U-PG)N_EQHm)5W?Lrp9whj6n=g|?Il zXiD+?b6}GV=0n(bF<9i5(Ex8Wsmle;MpA11T^a|~pc3d|e^Ia}&+%Q!yKO3|ab*71 zp@8Uzu6E*Iaxdi4n-g-g4gVooOi_vrO2|lKnVpY37d~98c9f&ylMH94~PYbV}$g6Uw1TAj#gR2=mwx911&&jAl9 zs}XIp%k(SeLU5Wl_5{Os$FR@%aMKdbjkWBhsFAK!YeuI;1nuBq{Bt`lZ*NZ}1n|@d zB=AKly_c!wx*SmRb$#ab>!E`rP3XRv>%30Ev3CO=ELu7==#|DwYzmYX=-3s^+EY=Xal7%s%MD>3N=htL;DMh}>&M7^$OlwFzcu-%q6n9K4OEW7D+hhgkqN zPU~LsrGrGM%12(`3r!!n`HJAczlRf!$q^HYu5mgw>2Dst8|HUHfjZCc?iA&whW;5? z;`xJusiM1Ho+N^jEVl5l8G|I3U~0Q$&GjO?Gaqp)UB)%RwP65X zZ{$WdjPCAqqf=4@1RRZoQX-{pG)R|}I*=~uP}FT8A}uYU13?i45fM>%;N|_ckNfS* z*}2bk|1TZ*zp+m#MrH4vmOlwjy?0%NcoKWuY}U*c*RCY@86~eXUEFw$c#U{0ivbKd zLNTeb#<#)VI1v>c! zB@j&e1Xg~gVYUi=SGq6dX8E>{Yfs^?n#mlHPp%9$b$t$Z-!jg>6@<%+9S=a~;3W!$bbU45fqIRmA*Kqz#>!#1k=!Yfx@Pp!=l z`9N~Z@3#ad_XTb>J>r5>u(#SlCYl6HrYBhLdF+Pc$*r}M~UdiM19P`^lBy^p0q~Iw`U-)CpmdEk> zgYS40VD<3)8{W*3-kfn=kZ|4V3e@s>l>@!LLlm?iBwKi0gyon7>)&+U_4hp`sj5+!&|g&V0r_&U{9^>RF(8u;$n#a5Dl_?F zf1Z)K%KILHHH>|$1kN=~@T+Fw3j*@#nC375+7cgJd@+C}2_-@34!WGb>Giq`%iQ^e zWA;mi%Z0f}=IF0`phOmwz-D2vj2Iv-&dJ6O8@y8Op6>r%0`tqqJKUv;ZkS}&hsipR zLJBjoF(d*>og}MH0O=6J6Y~%?hNpA*nnQf}o?v8tnR{lfpxQmaVa4!4B)6~@h-DV@ z_@{V$4I4FSs?W$AevqMmCV-e2LQI%7FjN1Md{Q_4QtzgA7H)E`VDXjMXEmGFUm7~! zH^2w0+ospW?hZru*2QE+eFk$ojA5O|fr-hYDMcgIPIac1JIRkHVZ{K{7?1-k=BY&y z)QEpZl3vPIf+L}`64o&IM4W@G2X79WO!>$X& zJo!~Xo;G_krJBJ?56U0h__cxMOuPX2WLXAHnf4K@AGYsFZ4pWv>XjB7$ z@*7E#e47=>Ha5d0fh9Rs+|1Mu%WP=sd9bia?gZ&{lCUEfWP@g4DVhw zt4mUwXYIr=D3FSb#MjS>qIeC-=73gyfdQd=!AhqXs8;J%tx5mYr=m_YP#2?8xjm0#8IMobD!E z*aWmAzSREi?#J5o1Cg{`&Mv#Ha;2#hhZg#)#xVbzef*Rcdh3GwQ+@0EFY*F8i(7aT z$*lOVOd_O<*rT(V8HV^3TnU0RL{^t?qMU<9nsMO3yJ47nN%wCj7)({JaPD zPUPczL3R)$VF9QOBIz1{evexI-+X}(8{d#dv!x67YhHxS>l&dl1z8nUZ01c+*B zRQrNum|A@y(b`$aW@ZWKXb7%v-*)`Tb!#yg49-~r(HiKPd#5^edW5V80O9vr;mRF6 zI4nE9SaHWMwL+H8S)om7SyXQ4y$um0BNrdjF+CXaVysm&+-eztLFLr<75Qm@4$)>I zt4xrY5BDFiEB#}npzGwQab#wB)1sFAnEt1jR3INKJ2}3Me4{M{z{`C6H8+O;YfdOn zKTv>I{|&eALA>17W#R0oy|}fjYRbm<&bt*-BdhsSAU*dIX&?Hqgpm0%F6c!p`$Z*Y z-A$GY0rvag zfG&2xWv1h8shb351+u{KMIw;Q>Oi0=_fgf}Tf(918=7Y%md%dC;$MD++rd`ncjG`- z&D(yT%**aC0X4zv2b%281f#oC}J zQAd9FQ6_j2?G!+Ss-Sby%J{l53xQu!Af&|v=n1rYf*4t58_Purobx@4L}GE-6; zyLIXyh0IO|E7wdVf158oCzCtzmzjf99*U8<1@t*j@qi{lma0hMQ{cNO{4#xG)Bp*I zGUxjElmFSENI;|c69~-(a6Wu!Nf&l8NoM;Fv`SIMxA3!Yl9?6SPdu%MiEo7aF?3_3 zpAPNz;=A+!%Rxicf7=e0m&wz7W6XFgTwWO-h*i%bOFXMYOJh+ygkQcGn&EcE$I1_S zj$66*5Kl1aFL*qJBQsgL`4_QS>K%xkuQYYXe_0zXW3kuFt3JB`oCA(JqdR=W8GMuj z^R@dl1{A1nLXhi!3(Kysj**2^WwcEweUX+-md}t?82V!XL$RD^q^t%LP=A-myH7}a z{TK6ip1D7r<=hEC)%l>G^SF!1!iRt*;6k5xjruZiVeVmt@iW}^>X$(TWG4W1O8QkA zm{l;g>H8dDh+PDcU7k+T!WsM@8Uop-x_^6n-6eAkM@TRApap;`w|+bNVFk7j_!R6U z<(A#nzp2aeX3WT`E`(XlYdUV;aAfitOVTOY2k3&2hIY) zrh_$uzJ5q3?KE%dG})?*O@Q>>F`TXY6Wh__;2!w=N!}I8iGILl2MmvR+iSTTmHAa8 z>(g?2Ou=G#s^GayA$qntGK|V-z|A+po2m4$GXC;O1WRwZ_lS| zUSn9#r%1dRnr}&U8Hv~n8X8@NVQqSY%x~f4jlcA%PD7Hc%}w5!fK%kMqE){20^Va; z%b#$#@`lX63#KdlcP;;l3fDfFhd1l8K)jBy7*juq<`m18v!ybEn6Jo6lJr8HLRbt5 zG#j-aGGmCTM^Agz+4=!tvwtj~3Eh9t-jqPzW+E^p-m?Am?}Ralt`&2{G{!s5RKYxE z#}X@`=wcts@i;k5VC7}g@=J;97vMgA=nsZK*cxi-rJV z`H4yKtFDhPUc7$Q+3?EjxFKU^wSgz{^^V4m9csjaN$8I(9y&uT?G%Zn zDIBSNtA7H`lye&Z&I;ja`gW!h6Y>xFNDOn4AAmFRsD-X`8am~mdE&tz`g7}&t#}@A z%nY|t63y78Q}}O>0jrIZIcQnOG-roxpDI}CpAP2$haYHWp~uZUC<%Cg9vH%=3;<7{+k^<1qKwOEjIn{u)}U<)b|z8@b_B3yqlXT8a%7)?hb zF7iS?s58WN^Sy9UB#+Uy##XYNHG5D`dxQ0k7R}ip)G5u3V>Q=4feKRu{Ye-nA68Q0L;qj@0qSpoMXtG_1JU`iuOlbL{HbX4Br(tA-uAtQzh1O zw6a>`={0$UBxt0Sq9|#?FXPtJm@D^(&6S3Urh){jlfv-sPT`JmjR6XS zI!WRO9ub!Ms4H3j`m~IN^bd#5*;gi%Ag^mZ%VJ!q%mNjke#s%(l0xv zxJpkJq>if#gbkyU7jq1<)M4VhDw4?1!E~C(XeBsHe?(P!5!&Njt|_-!WPk~ONkTHx ziB&6NuUKsHo3*lNRsyGbiCK zINRgU@9B~rocGfwxK!@v z4F}6myET5+p{0P5u;W*b34`W(aVURD&|XFeR7l2y#<5qQJrw{IKMnA9GNl{^p%c6` z8<74QR;@K~4$tvwxxwj8xvvKgH4lmBiW>Xw-ZzOHSsG@t78li*&jIq{#U3>KGx1Dk zHc&K15Q@c7*qRQKBnt4CPA)P&HtN`|W4e4AS8?q(pD%xRReC%UjkXigD4Hb9gF)un5CEs$7(oo2vmre;M*AO+T%aSP~OJ# zdI#TkibpOTcgy#MHr&csrop2iInZgLRcnx@KEZZ z%;xS$xXuT_14k))F|l2Z-E;4eXcq;9q$Ppoe#o@IflUJE@EWaUYJBmlkXI=aS%`tp z6sDFC0cq-V^y{GcU&OD&Ulm80!dvJ6MCL5bt`liJS}7c~*PtAyYbe*K?<_4g;|@2- zbSVmyThE9|SEoblHQ~tZo zVRyP+S>6xj>908?2|iYZj9wt2FdUE8GfFqOuidGVl_nqSP{ zttB-yu39H(y0=Z3TnQ#3^C*n*= z)VTJ8iHDGwr*wXmTWNMJ$V}JEfL$LYWGRS}4f&3|i~)rek>Fwy$0*XQajy^NE$Htu z*8*xoEft&TE8A|vwOPfTSP_%$K@pg&`!Sg5avEIu zk_SS*j)H8!L7KgjzPIrV@D&3-XNKZwLB%3zc5dbN3I8^x%{0TZjyi10VrCZ^dx+&zT0ogH@pw+ z5Mva1>q!|By|Sdq>Jeq(3u36G!ud%Mg=$Kw(DLHDkyNiA$sjL1e0~#-zMn*UhNnr# zBi!+{aTuE#Qb9WjDH7n#xbf1J1Z4)pW6;o83{1?#xk|jV;4qX3$4^NEi)=UD@{Np==(Sc)58RNTjPVipy>~&JiqWXukhWb-x-+2AY>wf zf`L`aZAYMCN1iY@)HjW{wh^LE{1vo^m6ME571RzYLNrT7 z)6R-ccanZaJvg7e>8{~z7&LIHGelUkU0Ao>_>}_vy9X%x3Y7VQh*>)dLO_j-(m^YV zCgd0tQ-5+=@6Ye+j-Y&WFg}*Zs>r+~*R7-}G^^xB;_+um%ZYM4OrwDLkxrGnp$I0( zOS3YbJ8gY0-gEQu7652X2_r(I%_fW9rWX+dohY9`5?v>ThB=<~ z^9I8ik$wcv=9Vjej;EgzWBiB@o}ReKx5KhV)*zk?c>wul+!?btvrtF6+Sg+t8bnll z-d;Kd)f&&5qmfv%R|@i?py~5a_nv#w9bss)&=c_~=Sb5GL>|?Pgh6qWX&2l0!b70d zM)K%Qs5@F9Sih|X5A{t`a3Q%wgu|TBiY_Er4+PLH-QyxBaE%M%V>>t`(-_4-1dxKnWFwEl^4ub!2#-D>~aq=Cv*!m9TF8~fqLgtbLcs845nTlw-WzmQq zX0CNQ^AuI872c}sj08cIjDU_*;o3Io=mRi?C}k|H+Cik-0CWtc(yS1bngI0ws3jK; z0*gVHqcj|tspyJ>KCO14z@Zi>7o{r*Ux3o7VwX1w7KBE9!K-Nt(+v$HLQ?3w{pmNT zD3PfP3KSlX1_)qO_3(xXrqVwcrQ4>pzB6vl(m1rbCxD zwrkCWqF&9{UhhAl(DmzYiT&F53^LVc-KH1HHsCXdtdgXPGk@uuGoD!JSG5}y9TzL9>w@0YkrMJxFg#^zKnNpz33TlGP@gQ)8 z*WYOiFqU@O@ZT^M`3gOhOr;Sc(TafBe%rOWQxRK}59CY&%3C@qr05J$T1%WV3llD4 zlI$`lb!7V+@ALYC9wZqX*JO^j>@*eG`!;8BYZyf}@m-6s?vr5bEVy z#$dHjwmYHK!q@ozgbH$C!3A`$3&Y-A(HBkjG$cY~3SR193|4UrvI7hHS6_*kFM?!V ze<^%TZ+R{yS!JN}Mgw2>+a_`8w6?F535OK{=xiEh*WBqk&_rPG`d6NPa1mdF~Dp>8epa8xi}XmwHL`mz7nUJCqp*Wgydx zy*S#7){bB_EU#m-mp$kX4i^z zOO$Ga@o_MsKm~Q;&1F#-vK-(w`MePOB;EM}>vxE9mbzZGlV+y%}}7 z?^YAN&hb8!-`+tTkRX5CU^#zK zBf(MpqE1rIVaE&i`-G3qT4oG`ANK}J41c5Z6sLKKCrEo~adaVF0|gsN9v{?_|Jc#m z6x#cs?R{_;XC&OtDUs|5SGk>J`#ai$Gv+!|@^3pq&8Ooog=+9Zgp@+;mdUx#W#Uu3 zQ|?`uKc{*HTTBHH$F;Xn5BfAJxjZVL-M;o8-sPP}=A@ITDtGvQRHBS=k`6#3TGsRC zbi^u&LEho^^YH8=sNMd>8gUp>nX+0LP~#R6sJ8pj@WO2rAjLL65;M7 z9HAgrDaAvRE5@Vv6O8Qjr#=5H?{ZY`8`kw(D&7C~r`ZhDya)QgFDBXUqiMUXTO}4P zYVpO#Oz;5WWmWj;2II@2&_n5S;~ zNBK|g#P!TRuHZOU-lHCj0*BV@7G@vA@aA;986U_ z8RE~MHBL4B-e*en6IyvDjP=!*62NE?(j)_fwbB+h9P= z3(%|2Czqmze}~m=f&pk16N~{yVvOO%T5K>uxO(>jkt^RuMr|oD9 zIDyU0sr?u6WFKK=%%!lo(RggCaP>nWSa9GvQ~4Y9H>0@6)iEens!J&gJc3Aj!BuQX znQDs5xs$+Z`9@IO3mqA4g8Z*9XyP^5{ z$``KotGS(SD}}W#Z=|(5cB0vq|Gc@TIKK0@O!_4M7aHMx)D!eo+Axg{SBL;TKzPQ` zWaIB=S%fIlN;zUQ$|+zOfQCroo%5+XRrW9(5*e- zPjko(Yy@;KpaBK6iwK7P@K`YXjWz58pe&uk$usi(7>To;O%cCEfyDa|J|yhQ-=>=-ZjL5kCBTh&wZ^fxX7(78;vK)aE`w>;ABaNDL-Bd(XziKUj#;k^} zi8{LLEdN>OjoC@k_0zJ2mz@`iX(0c^0GF)gSzd%{)R$Ay*&hTgSMa}j_ zU4ze}=p$U%9QFpv!k}c`Q_L%|P7kHJ1OJ1CcXO}0gR;M#%o`=kBr9Dq#CUNhUIJ+7 z+D;;E(WFCKd3K%uE8XyXiCO}i;Xk&JV<_qWRGVF6JWsVv*+!ITsvyIRcgFqRC?MS>(y zM4SN)BR?q02EgL`u7uWdK9LKJ$CvBG{yU{nshg?*njZw275I%m(au-1qE!uWc&eGJ z@3#F*^8KTX=P^EssVJdV52ix4z#=BWcHhywb0g`ZoRz-#^@&H?-8q8T*#C}yOAlL9 z$@hMr{`S&PT&JXP?6iSDWO2wN_3oYGE|ltVm;TTc%tKM{6h-#Jxi6qPhR zU|J-k=P-2o6PS`kt3RYe6Yh5lXl=b+z>NnxG#FZyv$hH*J>XG}*y^nSn=qJU_8J7t zt}^{GPN6{ZnCmQwn1l(7i{#eJ7|8^fS@dhYyCp||7kXYJKgIm{`G^1RUxs#pn6qzh zAIGSTg$yt<@8MU4v*O-9x|5gq7Q!IbTeD(nJ{9_g3#rozq~WRR6?!1suviI@-ck_` zRb{TdVl}e1n4hKfvzP_SQXXo=eIvEP@Ej&;iJD2%JH052M~Ft`aJVUSLOGpXZB5v5 zarIE9KNae}G2d4GeB%z9Yimk^D(l_v1rNOwi~G5&jw-a53iUBS-XItmvAgBIrxDHB zXEGQ154K{)zO^`Q@p{~0)~cwqAm4E~ctkSXQ8ej_bt$8&RBeseX1znjfkS}x%@XKU zr|X%UY|UMfzXP28>TfT&1+V&;3gT(R7B7PIM;spUhiy(?1N@C}^n2q#IJaAQD_3e^ zWn>CRB;G@oyCQ8lsrOEKXgs3T`G_g7RWfBMu&KEwKd9)p7*C*5rguH`^elPWTK&Ib z`==BitqZzT5~a_2skoJkP6Kym^_)=|K~5CrF$bk3XYn2kv;MGZ!{NUxIw?I8FN;Hu z{MYsNU{uc9L%fv5zJK8MvKuFjNL~nUT2$5;Fo8xI!-40x&FQ=j(cc!!GZSWeQw6wU z9ilof?x70|)uHKAop(%G?V5LdV3ow-n^6qoGcNV;G!;!d1ar`Eb&3}u6*sCM;`{~Q zmIRJS_Lc>`(mY;E<+<7W=+2j)Nsnn{tBlxPf&}Y`UZ~QWmCu4-aNVjf*k*oOa5>X{ zyYlhKKL_2r=CchYLJI*q-Cqj=9NGo`ur#->m$EyNl!b<`x>fw1cWRY;?dUqP6Y$XW z_FNaobv%>ZLhB?m59gmZTClToudk73wlqbB3PXIk1dq3VHxt!d{M|DI;}QIv+|PV} zb&Hh&ghYC{q{<24BQTAH!vIfyud%AE;^kd@C9mb1#49}Lk*rh$5ceP+s)@kDlt>UR zLj+uNAdAi)koMzH#-BsWkna0av9m!MU#WcOv40)y-0L~X8sD>7J<;IYaT6GGN7n7g zsRWMGCNBS zU@FZ-Ym#inGd%s^f~iQ?vsp>f^$buJNkJ5F?}LaK2w_I9Dw2Fwf``eG2=u8=V2*-W ztwkmZeV8Nkv9m-{7Q%qvFj6e@qk@5y?DYsg#Fc=k>b%)Agg5s{-z zyGx{%ICY*p*BXMLlZg=EA^^ck?CegvLLV&A=sX$YsPo0P*)wFB|5HOEQ>K4*SmDmK zAH~V-6db(zDszspZBZsAjjMKwZ6g-cfY;*x~t({{YS{mDWByv+NEUd<9) zgv-=<0uS|jmHHO;jYvd7+Bgm-Q%4pqo{HxjL&LV~gAyXO%+5tjL$OAvbj8?p4XawM z1?PrDIkgHd%kNt1b=VZwRxHOX8f=`)#MYv5smsb2X=R3#@07a9D#&Xh#x?mZG~J&^!AfdO&}YydFixDRmRl4t2bS~ z4SgIOR2RvWFtUc^$JP6aNR;3kQo)JbGo&3PmWt;~b-Q0d!;oeSYiviK9&hc3G4Fc~YNwv6z|0|`s3%%TqMu3bC6f-B)8=d<_Vv{Vkq z74k`9Nf+&77nfb_&kU0bx#w;zcY6YF$mz!{3MUFATcvLMT$TSMo9Oz=f+K_<_9(UF z`hWceyNmX8s7T`7uDSY&n2DaahwsMvCtgCQ@fCER{!Q=cPUS8PXA-$?U);GjYB2TPbsXIk53DC?+XW5s@hI*3d|Z7a$yUCLn7?M@6rxx+Y;{9!2)P))D0`0 zj8PC*ocbMMbDB`-)mFIUG?(ENC>nO(V?iTtBmRE3vj+#%4-X}tL;NgTAr&g3ckC}n zrubXxFjob*$3FO;0|>cqGJNMcOCqM~=?z;0mY$6pPaLCa!=gBRlBy$a%BJ=K7*y@Q5`<>*M{7}?|)VG_+LA_pJ^GB!zv%-isV)h#vYdYyLK+a#$Ek}@AG zE|H_WqLOp&6ZXd4549Cmd!(ZMxl9aq%kL;0MJ0+0a{Ylr36>f*dY&tTCqvfeJlCv7?2nScu@%@%m!v2vXk8hed*w-jAwy%u+$8tV?*JKt|5qvVc?BB>VgtE79_~vHv;7y#B!>T z`}Pe7qGTdGKW-siwlAsH^RYrnQp~r!@9$VriLT>Uo*YI$`F$hsH%+uhg=?S(qUA`c z9~AUjKV>AGgECaGx>1m!=zjkv(eZYK_^f1x-r;qjVM$A#dr6+Y?1vV0K;-HhZ57tL^cirw*)m4!H0bLDDv*)7Xpz9Qg8WK1DqG-D3G+N`_JT z{rANJx)^=VFCaAx*pNN^QYDsdI7DtAJnYAETq7&&5#E-@+i@d`JZr1|6JX5@vAO_+ z@wqTth@k@1WB*a;TZoYpG?&HC$ObCIDNg_Qw&a&uPY#E&L->`c1mk_^pImr2F~Jg( zXlHWU#0FwXLmAq(jPk!ZSRls5O_Os43D@Q?3bc6)^T@M+ncR_?YnMv-# z9oAU?5KwZw#AXN7$wrp%pWe>-A?My_*bEGI?#&gLCNKLl?dOrP0u!@lN^_Co!_rWp z3z&IC5epv@mPhL^V8dilAR!`-9{@_CfxhHKsNwwO!b8XULP2>M#sSX%#04V5_?6K2 z?$cCr+hPT)g>6Y7{UZ=ETm@*K?a3Xr=|p&1(@yGos2?hHp}r~8LFS!NM#M)zKTl9a zyN_m{oq zt=olapA^_T^hGB19N6L>0^`T&iB8EPHhRlO`yP!lyZ!B3o9Fr( zCIlY@)|%e>SChWgt8n%UEM*kJ`NCJc6+@U+o%U$^8LBb*p;dq9KI%aUcgp>LU(w=F zLlqnBJMFGX4-hZ9I^63;^#QAk?c<%2dgs7y|Hg+R(Y3n6P*oi4V&BrL%+Q>7@5g0vNhvle; z^oSk#iaMkclBgyY*U zE{${7SPdE3kL3gYxT2E?ZenbU9AUz}59)@8n$g2D0xx~oHn!v?@yxLT!g0DDAknEw z(+*&ibCxn4SUv}isDF_||1Mj`ERPj@WeT#iIH?>ffhP8Ius!8WeZMgJR7k*2K(-11 zV;M=NxRIXnS;rS6-76y&bXWQxLY~4nYysW*aU8Zht%_>00jpU5fqAA}*;NWm(qV{FdUOK$`>ZfA{WF3FtTw_{MGJ&vK_CNrUa`%$TNG zv<>)X(<2Va6;UeS=zHJs$;_V&mWY)(I(l+{|7`EzTv79^n-vMc`>{^vqgU)4Tlw5B zAE1vm@SpRiqyOgqWHx%$jrnJe`Mm6T7c}pyxG?kC?Pg|-q>OIpBbfzNce`)IyL=S| z%M(P`#nR=%)c+>dDQkSM290!{ov=&(X8FJch05^9i{N>a*gTT~(AhX5? zdI}xJd_R`|lmENIy|TKW!uT=nY&P*RDf#2ZPphA7pJtsHSY7_xSPTC7jgfU|g)AzQ z+}R$Tvqvs+59~D_%XQCx^LccFUOG`>o0#=W?Gi`)C>1|UQPjEIz`r(k#OXh^bM$Mm z=Oc7I9k%^j@8`f8NaSmBX57k4+f9GmqVAsQE1(5|*?8ctl?_-HUv3a^hP)Mgmh0o#KHaMzj)G zLp8w^RM-W zb%jPWW7U=&9sxx{&RDmwffEd9MoQ=K8X1n{Rci7n1A1qnLoP+S?qG;%%(Kp^#=m}neo;tL7*H{buDB#A3dlC!F+>dm+e)>-3T~cSi zThKXS)aEmpm6>|9Yt$V&GygI+^46zz0{mGfPwvf)H`xMy5#>{122)Su{SI|{!u8|n zxr7RIU!eEzQBIiT>-zuxOeU3ye{#X=Ja?l8#2-y$QUGqNMwj{323izv5-+3QlWG98nYAbYa?PN znj~jk^|9tEvHC$?6IlnxwF{PXvL;EvawVz-_Ip8_Pi=T&+U6waxGTy{BK$U!P3qVy2ViUnv`+1nFcT5R@ATctdCP_JR>A?AExmg@)d%a^qV4sJKwT<&H6m2V*0VKr5MFj!rXJN#WCO;py|uvpH1B& z?yc&=XIz1G+Goz+w(1|B)ix>8?Z)hMT#7k){QQURY1IJIppAv!N;q2k`zU9_yKD$8HHgiG7kmcua>_Tji+^) z@<5&(00exEtOU3p``x6pilwJUWvua?ruX#!NV5(+GBE#bbENbA{jE6HhzyR`2)!pa z-p6iyes_`sH~xL4`ChG}*A(@<*jVvqZkA!k`n%~A6HUhPpx0qI@QHdidh>PZ#0L};-?rht2Jy6NRbx?x%vR}~Brz!dA4WE?Zwe`E z$srpYMftN~m;9(>pkKsLKscQ-)vFiG`8*`$;`PHF{`cXN%Hu&jpHwMp6;l>$M@~g< zTekkp)8XUP{$r1yQ2{znG)Aw!Rj*Wh5bY|=wThSsX%CGnDtW422A`Zb4ShuTE;c$v zGpW7TA>Mmn)fDC>oxpvlM$>gAlzqu2WnQcxwRl3j+TcC>adTzW2BR@e#mHV=n2UhX zrliGR^WZnr*Y-W?<*c3b&wnmXg~~%#8Fx1gJkeshx$}6V>q7d%tAA`}&nnqMSfzO4ztlJ~{kHN{{9Bf+)$Qp1 z>zat{C~4`tRRR}VwUNmU_4LQ>ReTP-g6=Uc#aSsjbDqe!#XJuO`&1vLdw;g=SgV#+n%g72V*!F0qv0q;L71G!xecR*ykdfS?F1q`MCYX&hWv@bI zr^n@FC-5d3KJzvL0POScjv#6V1{VeIH~8Kb^kS=Y@a_K|JQluNvU=R`@cI62E8YM8 zj*FaxzH{lgd8s62L&D-ix!%o#+u0c(WdfZaJMd@bKZ|4e$L%y8G$0Rvj$P7cp33=S z@KZIN^OKe2sQSehn%WNis}!TORXkkA>CTDb7wTh_?TK zky4p)0*}T^sC))z?fH#1TSr=B&gQ9N`C4s6VZ?Vs^p9dcKP>^nf~=Z{p};M*^GLqhF8hC?HD~HI#p~5grBk{3soBbGIzreeo4M|6%;U zT^_=J7Jl&TYm*=46ncO0lwpudWMtyLv3$S?g&?k-<|y0kw7m3lin&{)6=`I-@8L;l zocVd6!l|=6di`U8XG3>rqhzF^s%`mP%Gzq!?YD#1!hc5i1a-$gc^MpJ!LxMXkWG`ZfIi=!t zN!`m!JGO(NYLv&a=b}PqR*!dWoIY*6>v^jFeJLcf5i58^qS09WmZZKib8}yRgI8r6 zmfJGqQjw!%r0cMBAS!Lz^m7OrrcGb5Z6fDfna%l0WU64;gBHb~Y_2^1OiZdZa#h+@ z9a%pCKKeyW*{(I7{5x&EeHhQ6>vT0c#=8FOcU89Tp6}$p+2ymND)FWe_E?*>L%ojV zq<=R>EKaG*+s8JSf?86chFD4vKDw!x6Z&uAPyqIIElhyLg!; zq4wyogbwq6-Jk?=L_YcUwKDFY9v*siK!O6OK|=79XStZYx#M}ufcjT}WFEKV?m+7w z&fZW>g7Tuus3z(h{}7PIp@P1|^h>a!wD~TR&hkG=9WKNPmG0v41-?bMM$6={B?TYM zx%#=SY6?Y9Pd?%%=Npib8JI05>?3Ea0^Ohr?Q`Z0n#ztoBlSrV&?rUC2o<1n)3 z0Cv<)U9<6-&d#7Jm|``Hwdo{Vmn+{%5P7-w?6MTQrMUvOqe;wF^aqAFkG9^0H~Y;BXg}(m?^@5DKjcYHY(04BM&FzjW^2aAYXOfEge50W6ZC} z%8ws3@%cYw6)#%V|0p$OWGSu6HUE>;wQmi59Hofo2{R_8JT8}#=G0FYFhFBlY8gwA zAqy4}v0~;jvLKxGCls+8;L67;#py#V4rPOmzX7B*S8ziW+P_NhjfF-3F&bHqA{wk>CVZeEh1?@dzta3F~oHOCggJ zNmk5PnhI)e__*C>g;$VQuPCt8MOsEQ0qN7pQ;Af^8&H-;Gf08Q`?lL#ySCD|_`PmN zt8W=^ZiTgObEdCaNp*vUWdja(o%h>jylQ`s>JBd8Bn-cqRoUQfuFZJH7+Y=JVP;>y z{{U`&b1~zjwqoKAJYzp=lb_7PNUsJ4!=Ho5 zT0RuYs6Z?fnH8vMd(xp)gUT_)#iQJ^UP^K@N`Ew_YpkZx+LQp_D1qea{_$nhB8%)w z^6(}TFn=fYY8iPm)Jb*YNuuvx$#*!;gCbuHguI{gU@k=rIMs_*x&;@^;6Z%j;Dj&4c zfJcL-DjP|=6#cm9FTI4OGX}_$^zSut1ahkvSV%@H@&@&GKPwtVo-x1dyV>GGqi3#jS}TB{3PPgnD5*{P0->L^IIw+gU) z5A$l07L$$QZE`*tm8r;c6VvcS)o3)=ri5$r@mxYZq?9;<;M`B5X|*{tb7rSffi^L* z!1UOHA30ccBDJtSUWRteBtbIRGSK>T<^a=NDu0t_5g~(ybZB9MeG)m%BOCGKgY;%> z@iW_U)+Zxe*YaN<7aS9W(hJrC>em9DHqBMFz_92TRStK>rcpbccBXM?W_tB zdI(|b16&PKi^}pWC3h0x-+L+s>U$UO02bVeUf4$LPJ(ReayG|QQL3}s%$mIWyX3+~ z(Q~mcyv!I}adCk5Gh&65AN8~d~ZzEAjW8JwMe|4)j;WS!h_eso0@~RP>aszhnFzr=sQJWcSVFn zJ?}vx;B;4sIuqh`;zoZ^7!JvUGpNmq3c{1TeK0B)sHf}o)5g6|>v{PC$XOu9Ok#F)b8Kc{Lq>LzX@I8Go&0r;FZDUyw z|B%*n^D)B$gnp9=O* zxAZy6rT9)OAZ~UVZ8=a=??%pKk4<&mWa*&DG$@*t0a|b=DVaE+6A)b0XwBjg%nB_K z`RKTJ=$uUdM)x|~<*i%lLoXV4B8a+q%wrJCeodbGrkSRQu8Ux;O@AmHaRLut&QQ7b z!e$YY$zhT3Nzdhz--SU1-&PUbR%KjIOr_nD>`ZIDU5V;$8T^(B7i&Q8Ow~1`)-pP= zEYr1M(irjwmA9kY(fofKp&!NC!!8ZS@Ju6>lQr=PBjGD)srj(;%;_t#J`HQyZ^@yT zL}#b8XWy9)@NFiS?2Hu{*ZLUOVHmr%U5vx4Hr_a_|8>|RtAo|v)Gfb#n=L?JR;@oo z+g(xJYDX~np?ujA@7Nuzb{em2Oq|&jF0j9X|JOo0wk?4;LgTDeKn^SXG<&~hSI@!6 z9(P(pb=B+(U2;o9(gPg0KyBckTNj)?7b4XKxAAKHU%nQ7V?73@jD7Wp(??&yR)E))Z{_itYYEoRJ3{?OjoiIB&m$ng5f;-M#`~ z?;Sj~spDRkI!rAGkF!CJ+ry+WQevEfDx=QzU$#$GR;MuhGM7b+))cw6`fX3nS41W_@`5^ptQ-typDrJsj zu8Z@S#m_>8Gj_`>j7J!{wv_LktBE^VRWWH&xvcutMUxi-s?C*prb-WnnLp=8oN(Is z)2IF;A>RbZl=siYZDTol#4GR26R`wr{q zaC?*`ZPI#fYSm#1-?52aHIMSL8|5;8{bk_rrSOCCl89rEoXJ2UdJENSyqfQ5YC^f* zYp2a?8DZX}Lw(qA#?kHNG1RR8^tA<8Ot$_ATjZ9qVX9c3?pI2%x!vwW55$x>!`w;b zHCZ+@4B%Cy!EAneE=HlZ;I4!d(!@t;$G)V(jkkt7^;__l+dQR9IHx=QiLN|{nF7O+k;dcqfx`>-M^CT~Nz@og zkgR!000m;^4VDe~K44I8QeHMw(V5_Co8Sga6)XHC2Ns-^W9xOroW5!D*4Uu8?WJc} z#wYz5F~Zg{*BiI;As*MC2-V-OuvzCkCav z+q%yJr7si-;szN4fKaIMCZn;bWl$+$QeH%NC8M(86sA^fXXaGVxE}(n(%p}TC{p7faLQ ziXGy&7VV`arI3+vtn8RKYb<9n@sDkt_1lBLlLWB*X)x;W-bGmkPbN`_IX?9O%YV)j zW75Gfa=IUen`0XFY`D{GqLXl@(;3Mfox~$yQ;2)sVi^vBG0KJ9{L}-y&R1%T>M-66 zLJ*fxTz*jaah8MvP%!=xH1!rEhD4)d1SKyDdWL+)z?>H%4?BlT|0u>~ zmnzR_-PT_dlCv9ctOng~6UFL$ei1SWp_IY@N0@01zSVsm*bO*#Hes|@p!2t-=e-^6Lf zpEIohiUDRo=W-46EwE+&T?nE}aOD;lrPzkvr2{!@FL?dQXR#2BPYCt++(Y=O>8v*}E;yk#zMfiCZl7#rl=AlFji!$DckQ1R~(8#F`D0`|j5vW@w@~ zA(8}iY0z0Sqz}4TmV9P1%%+Y%&&g?jF9{&fSJ%+bZuei?cEv>EWN;bW^!e%RN!`&h z&Gu`Z6cLF$w%Y&I-Owa(Pm#H{<^#9@tCmme)ubv$irHjAHf<{ej@*kA08i%iySWIL zXx-K$&PV>SOzv{FKCYoZx_)y`S9W#7o`&xCR!3$+N3*RFoaHuK&l`We`vTja1_vWq zNUKc4)^D9w5;a_9CfL|(U7Nv_b3@#_{%je$>q6(Ey?3ZEX<*eIn3a70@A)SA`4t#V zXz7>PO!};Z9BuY_6Wi@N#Xv6G0VnWwZ~}XVz7mnxH6Nb9x9NsBzX-W01l+#cZR9fX zqTAwHu9K8E8-o=`xCR*Nm-4mP1j5%uz!(a{19MT>0=wKY|d@uDV zhCU?i%w=2;5^F{r=AW`#LM3HxNcl|1J9>*JcwgHhOrCjVdhQjYyW#3l%@{R@dK7y5 zXB%M(U}-Rk=sxGZYQ2SZX~Ny$BD??@G8)PC#)Jd-8@ItA2n5}8&6j3Odp!kGHvtsw zN4V3O&EU7D64n|K$>sNK(@@fBSN3hEUaYyRk3xi zz!{zcmY?^b^qe6QDx7e*jKy#Wk3(SbVrYG;894q9in(>6j9vUBKySxlBH08iId6jq zX`doCOch(%JcN@v*(gKcRNc9wv+0A(kho}va&I%5XJ;3c!==jHJer*0Eq)4pmZJ7M z4A1BHV)$5zEDgxeWmZj5N?dGN2rh-k_Aw~Md!g>7c%kc*y}*{Nz?0j3QRDB2{oS?Q z+JI+;hLoUrhe;e|i|&mn!qMVx=BrfZrZ&hW-Sy7RR`!1TF^N|heLSyd|GTD?o-?%| z|JWb<*na@x}nYKPr4FM} zcS*SS+m0g`C}TD`SryKTNAdJk7g~>f(Xx40$EyGrUs4RKSJV?|YGL>t|Vc z_Rtp9w@#`bu2vsNGt)&d{g5wW{wizo>$Bvhou&o^R24pmh2aKeuo505H#@-<nT-BvKU4)4v#nxd}Hex9AKJ3pRe;tIwAb16$=X)WRd4oX`uN>PVvnvFxxnK`gv)0BrB%I&03uN^g zhcVQaF622Ik3DAV3B@hSx2?1!Ey-W+RdLzQB31f(p@P{+{jb z0Qf#s9vn|ux}4{&?Q ziu@_!fVhw`T$F6j7Xf=K5Sl6i%%|-Ei~lp<1<+@HF-uHymoc- z?V5EyMh+57{k&;9ZIXM#WL|o=H?z9;YuEHPfy~E>gqbg6{*DZYMY-rMQ7Z;Sq19jM z)>#pHXQk#oi4h^=>2qXIkx-Mb>J;E%gddK6iV7lKFZl6X@dLg_9YIVttdDXdrigzC z?(I#7A{0xY1WAw%sTX^HkIM{94>yLeno?gTzbp*U<4g9%$mstKTq|iwTt=iIs@> zRuXRgDQt;EKSpP%Tb_qrs%MTUUS~V*O*H`?HMW~5{;sU$Z2HHsYBVzGrc+)sR!*Dx zO#5tX2hw)C_V&SJY@CKwht+ZOqyBD2TAz1mss=G5#gdo-4dGq>{kBJ(;3y)r!}TS$BR?z1Im3b ztFH>W&fDWl<$7xsjd-s_Z9Hm(~}&e<`NWD`Xj3?-6?L7=oC zdaBRC73EKRxGr=!!V{VWIKZ7G;06=W7y#E7Z7c~z zO~+Y;>0wM}?RrQ=;-gLSpt4C9ZT2dG3tJV%Rr&py#jU7fIwK(oQo5WNLVi;*m4@E5 z@w)GIB$dfW%y|T78AJcVpW2nSIvDtQ!X?ke#&mO4xs5eZOM74N0l?c6Loo^DXea;< z%fnc84U$ldQOlQVUxow+Agi@6DT-ySt>kwYB+!kJI*a|!oVS4z!Q8@%iJ8KMdC%W& zzn~V};Q$P-1q(&TB-W01kSpg$PuN^JC+ZrElKxc4Q8+#OwyX8+g!IGRnel%{gFs`` zt1&~g*_34Dfu{6doU`N-u&E5I$UG)O^J5G7=E&UQ$PAPN`~2DVU_H0wS9NN2j-hYU8`f6xYo1m6nFacnybDTD};YW zeL;=zuSkfROWwNqcIkrykoY`&Hfypv8#_sjP`TT3xnKHBm*zE;l69>FHpK=D^8oqI z+$0?o#_Je1yx|(W<^1*O_3ZJ&{7h?DR}9jm+}%yOZa?P2GYbH1#_G^HUZ`^4jQ*Lq zvYyrGXl-tLKf#(GmbdN4(YC+XL98I-VbsMo-<4uxAG~^00D9bpoM}I zObU?(QP9e!?UL}c-0_X>@GbA0oj3q0Qskv3m72Q9=Otm01(X!JHezNKQp{__PL?&h zqrv28-mKN*i-{?AE;zX31QB&EtP1s?z$imRH2NeR!QO%%#n>* zcM)VMQ?~iA5D%t!q_pA@pk+Q|!#Nilh4n02Ar!6CH1l8NAAtNVGt^&~rBgGhb6y^c zYK3jIZq zph2d>f2VM95kH?>5!ResQf~Xv7Tn#jGkEi@o-?J4rryb$Oh0cfV`h=_htm8c3EaL< zl*j*m)(G^iifnz`NxRm#2L<``+f#B5e9vtQ@_#r5~Hg1(drr=AG6lxHDrLzc&a z&xtY<##KsDJSe;tUS5szM0B{RPQ6iJ6|*MP>p7fDF4W4S-Mb>fVIivbq$}esK{Laz*Un5zRt#8NgZ*k6)eqCbVHV2-2D1D@1Bc-}eWl`dYQdxIC zyr5}^XFsk?u%~3-FXex(^?600l_>16#bDpvd4yXLtj@}cSo%2FR8G3~90-D!Cv{v0@8L*8nabQge3mYcH7stwnT%}t$8kE4mh z5D1(?2&{k_BqzTg)ryw!ELZTp=`NJF-FGPY&?N8%oNy{<@!A#fs(5xNA+`pfKQPd_ z>P4d1XLWS&3A~b&ze)G=f1=T#nVgKSFTzWcbE#~v*qe*97ZFhKr03DY22 z=ukkXF9Di0LjDk(pfl#H;^zfz=CpKG)z~us-#j>;VW`g`t;RW)9AQx%Ayo?q63@T+ z8TmOF)fj5kEU|bw>OX$u5&O^@(c%6=%x4{87rh+qCgAH9`B;tT`Hk|v(ihl0dp5(cR^MyZNK6U_KaACF&N>FK>o?qYI;>fHoH z{1z*nlN*1iUlfBKFIoNwxc(;qP4Z$x9AvX(lXNS~tz*jL@C$PA!9f|!cXfY8?@{IP zEP(kJ%i9%|-F?(*?flB9`X{4f;x39>m_{@w;=&yw-9zb%3t=&%ue)oeP-!7w_Lb=}1naaS4TiyYPR_tp(+_$Uw$;LvXBa}|6fF8L@SanzQt0F>Z0EU?H)Nn~ zrV8_?(O+7pu6S?3j)Y&%A6@>i(?>iw@7I6b1HhHaf(fyyyA<{%BT$K%RHD_32P5N1 zxTUP_sE0$ak;QiGuxUqP;uTD3g>H|fB50ITt!g~zB(vy04X69NRVt_BI%^tla$8Rq ziZacYBd20bl@lR*TYcA1*Z!dSrh>1XQL9s@*LrbRCZ9wu;4|5Cw>&ly!{s~Zv>94~ zn%iY}R=P<|h(;vf*6VbBNH-FLgF=slR19ba0V5g62#O&R03bDm%RKW9Nkrz^8|K$!jO}MX4{!>B4fPbZsK??P*?`cnZBn@yiNq-|$vcg~qhh z)n-WfAONZtI3NlD0HFFuDR1p!?P2a^Z3VILhq$^p*}GWFE6RDfx;lBXTe>;}Sl@>M zAmCwO)O)|VzOl2mcCfXR(6ug+xX2y3sGd5zIKQ;Cxwo~xHnDbM7~jPbzQ`4^#2T^0 z9l=sLJ8|tRr^m-jlN0=6nv~QW%&tiqjsu?5@TdS1p+z+_tI$5Dq08&)&=`Boz^h_I(FC1REdiAO87*RIy-w>s=j^VJP~H5>3DQ|_qWY_(gdog*q~fWqS_Ei}PpF`eB29!(_EC>N^uJ8sN?x!mxYGChB`BZ-9(h>^5O zEtB$8uhp41hNP0-cr4De_>6$*-ll1dH=13343HD;3*nzF98OS?3G|csd!EeY$oq``DTqIIS^g3$^Mn=VfA;?K>!2=+vgn`Z-={l{PhTlNf4QDB z|D9ozm(zjefIyvH974ghQEbT8j36n7;T&GCKs8Wjb8c zRJTOu7(@~MLjId!1Sq z8*?t&w&6Pt-T09a&dqyOMQm$+geo^Az#_cY>c5iYxX7I~Za0SXAV8#~;2f-gD*gOF zB~;L`IHf?~HriW-mvJK8Xp4V3P5xYLXr?0=f8g9l|IQ;{e8o+BHR>3{%fkA-FX0#2;qFV9N0)h#hx}Fp_4}u4FsT<*5;=Z(jb)5D zD~G;iGLfY{=qTqW{baR8!P9px5ArfeyQlwJH!NW)1e>xp&_y8Hl?+h^wH1*-CI^@E zUFF>P)l(N;7OcL#=8G0-*M8tf0Y6{(iinQQI35@N`6R^R^>6(YO(6)1mQ3d9(y$87 zy`_F*zv>fb-`#_wQug+Xx}<(G$yj-e?yJws;=Lh~Sy@IvM6|%RQbnh96MyCOPZdnzF2j2I#5Yj0q*^+xki^M|pKU z7xlrbU>e4|A&J#89W5(kf#evG+y}RB3MaAk3tGh=lYeZPWFe7Jc@|RP-6&TethMJx z^liAH>VpKC3CSws=sz;6FeNl2vNXYoRyJDGhv720zO$0_NdzUMWfSzgr+izOaapmCtwf zO$auwwRWD*%u=v!XP|tG$19&QN=J6otsIFlRf3UAskZNDZQvmp)F4*R>O8Tq881*RB;o2E@R03HRAY&{_U{TIbUB3x%p!VLk58RQeJxOh7Uk#Qa2Jn#w{;2 zn8lgJ%>c^GYf>qwIeK4PYGhz)KQQa`t3}o7wL6$K2k3|@rP~oLtD_)CkajgP1jh@r zYDV?UY8y7R+)&}hqby1-@p(7?u473OpZSjbiWCARuQ$_C*3a7Gt)kpKZw#o_iG*oi z_yy1AFG4RgNIMwHm9FU(-+D^F;jDN0DX}@~_3o^7Xz5V_9i7H{SfX~)I)!qy2MOYm zJB8PZRz=woB?65PTadejnN>YkdrePtak53651nu|x3?FYl#8^lq-g(|Bu47>#rDjphX3alO_^+lz_Brk zj$rPbvY8U7*+uVM;R0Y@T%B@okQ3CXb1jS^BkJZ%*g$cHlIj~$6B-my^Id;Ynl;4a zG-y`~=9Z4|m(8z~iREqtd?62nj;Cst_48r4T^goeYBv~y-Z+(3$&~pOgYbcf!U76M|#&kdD=%C_N-xi<7*U}T-_P9 z>CL4oly$i*39k7%9!}8el`buj$;Q1DDc)9gN$WUpBV5?i$WBh2@BI5UH3%=%In%^L zw^LHLDomFzUqPqrrAza}tWql|gUpzwGp4Pxyt7kd=lXMA*N=aNH0ktap-uGVY)vGC z)xYBC6<5>vzaV(EMC8(!>^&cj+57w>C@63c**c(PAv8$BOnW8-^QFyz_ui*e^yE@Zc-f!rlmC)04faGPI5q0z z+rGb1;YHOKY=8H7OXHM#{`18BMHCIOtBI)F%*L0sb(wqe5j;8K^CouBR$Cir7Agy&{Aueg)77eSD65l+qxBPAV7vMs9w)M$EG>H5kmMCK8z4mg8ch zPVg*f_1m|Od2SZ?Vi-$Vf8(3<_gw2k9jhV~SuzHj&17F08lnwz(cAOwOPLZ~OYvQI z4cg}y`|%Q)G{5O@|91J1cbAg)pRHZMt%<$&2|1U_fIAhjg(roC5QdgJ(Wn#sL+~$K zKTIO#hbrZ#PDqzt;4_2B>mTL}dF&7EY`oa4bP$06Y;W9&;9uCTb#mIGlDK_TMAIc7 zUmt}kvc&H6#E|#{|Eyyr{1GG-l*d1Ve2A7ACIA$#6Ed2)AxVk~c3MX3;+FoT;*lac zFJU4yQ#Zo>(u^4RSV@hG(V_C!@MfZEa& zGE9j!`qD!GSyNlFT8lLk0IH6T?4Y>%X_D$XUfS9;zo0a`-U- zW1fKj*1g(RP2i!HS@*neczSWw9FVlwf96s88?jIxou*0W7CV_XB&iMsmPR@UR0fyf z3E&@X1C}F8;R%(jLsskiPc?_}Nzc$FMBCM9ne{Wt&207uB&z%OBgskJ&Lozzq%Iy5 zpd&{!Zl?s)=2gx1gnwbmN{#nrWWL%+tdffH)=v5z9Yf%sa+eOwz2g9kn2hK~qvUv# z%F=56Xb_|60k3X?6eZu)<=vbqCD}3VT zN}+!&!#K}lUHB6i^wPY&(mK-8#M2aibP*~%InpWwQ!6IZ659X{Qy03@1r->63EHX~ zC~7K-XdCcTd=DWW;@6i?7NAQ1d`ci;A8R9%S-+9K{X0GPOx=-5#Q9vXPhOWpQo=<` z%1B0blEFQISSF}DQH(pyT{}DSB`V}xGpw6Hk|$Y6gLj8P7mibD>^VcEGqrAl#sWEE z+&fbzB1b$r#eP$*K+%8j%!GqFH&@S>n)Abl)9CNo>6TOJX~YRFf3mLW@?PZg@(gr3 zg$O!u5;sEGv;}g@6s&pih_>zHPom>DsMx|`@(c~gX@T&0sk(W0cm*Fu^4mrV2}0!a z<$2{sJo3VUD1*eS5pHZHd876YMiWYxx~eCNsuMX3X9o5cQ|h^Dr2-f$+kJ_Uek z?CrUd2-<=`-EMq37=wPiB_foe_tXn?a;_)I}DV+IoTfE!sfbLv4 z`f_Qd^0|s~<=RsI2n&T=EJFG+lw?2v7ch5?u8+n9bW{YZ@fKxJGg1&XVPrP4%Ta=> zY-Ozc7#e8ZL(H=kh8#kwuN^P+TZa<18Hm)X%hMIA<{2z8QQ@3g%zjd}hE$Ch6%$6H zVow4@dM3>uw?ID6sDR77isJSZRL`8I35u1;WlqYE#fns_lqUhO+~o+w;`*2ubv(t; zf@+8>f~N1Qo6;qeUTWX4>)P$g>z`_5x$E3%8!!(%O15NF8LIwvvB*YakywB(e#d({ z7|?jiX=xQ}oYZe1HOyEyph-3G3t0oYfrwhTyTZENrTo2`!9we9J03(RD`g18Vd_U@ zf2Gy@YpYNLYv>Kj7h+ahAAX@6Knqj)M1yO^J>xK*^5O?IYD3AJ4lwOyICP4{n`0cpE_Z@ZjGyQxvTX<)mmNQbdehfQ6(ePD-KZ-+&1 zht+n6+usg1(oS#Gc1v#%PBMtO3BXA#1_Z}+`y8ud$0cvkvVEb%nbIysW8Q8!2zmZf}%v~p`6%E1`cY>t35J=-HE8( zB6VH9%Hs|qGE~<3&>kKi z=f-zZEr88RqYhkwPu+J2|ILiIy*b8->wMTUsB>K5*f}C9`u+$!8C^d~fCe@^p2Wcd z3jn~ZSRgR~r`qVSTKu&7e`?sbB9lJR!vaN9m1Rb(gWvE+s2nKGL=}ZpJO;^TbGu71 zC1+!tW;wCIiB7_TxImZcmZc0tk4G(ADmRlpO^djt;a)_DFxs+)J6#WmT2vy z1M{r~quJEdIL)VM3d}Y!NiBujFA;tVyP16t)tDsPU7BEBCN~3-vMx`fffxH&c&nTf z7(hh?{rx*uJY#8DW#Khs04eT)H$B}7zfU|W5qWfrC}vQt_?fB^o15&evY-j5Xh)G# zM+w=ax7ef~S;yzOsW0doc5zc8MxFj*9f1k!A?VX#&K)t=?a9hRclF;nAk;S^zMnf&zO}~{bW|0z*EFodzu9ZBtQA*QMtx(kY^ZZS_^O>R-bqao z^E@mh7KOm;`1QGGfUFs3hE}W(D>DDP(&yQ;ZD8)_1%;g!0SR!)?hKO;2)Air5VpPW z*z>ixqZuW6pvNY>==nW63P@C}4_c9FFwY%yZWNv)C-I$sz6)kd@R4dT!|EfTV*uj+ zw-f6GTvi2;OYANe^arxcB?xqJ*v?sFFLNh@lxG+AP2}%HhM9S10b1Tt~1N{SzsCR~OV02#1AtovXtEHEl` z^h;tdb213W4dhMHUrccsC3fjOdy#s5k^Fg@shoteiKMk+Y)(Xp;CCF3g>Od*R*zVX z1uyGB!C^Gq`@@rS$irb0?h%^sQP2FP$o{2B;wHHSV5ks;oBV!?zr(}^GYtYrBz6_Z z!0Yo%S*`X4tQ%r za|`B}&5Z`|VLkRG-ikIJv2C|7aZXL_;cR`wLb?UBNt}s2VF@Jn(x9&@%mSpYmY5g& ze>hJG|AK}KIe ztdKjP8%SVrGVu!hz9=~%k1>52NlKl?4(6D2GDA z8PpZdgj+I;E8wCp5zC7ZR!-pM(3g!Zr;LpsZlgYlb+{IW(;e&`&3P~!X+{}4=Ae5$ zjD!t`gkB7F2GpSl!bR^(I)wu$ZxIw0eGWp=(II5~Zu)m&i15N@M9_6MV|a2RK{o)f z^>ieMFVHmTImB)$UR9cCj;P&!wL(?IjNIrq%xSCL`Nw!c9-r~vx6cp3e~q5q4#yHG z2^-(94##r^AEGF}`MRC2HW=w)5K4|E2y*-UIJl#ktYG?BYvm7$KE@`-L#tp)A5$X} z|ET?q`7vUtk|rmz%?wP`^|!H~^rjcN5owR~Lin)SlT!+rfsDBejPtnNANhEEwMJyIZ?=I|9BT8jcr!QVRt zx;#>D`kNk>MQS4cCO~=8^yR)Ns+%2R8CI<^xu-U5Qr|u{1+f>ac7YF;7L7UvamL=d26;g^O4V*izsepgk^zIPdKdQ< z9DyUn@Z^)DlJLm$eQDLC7Is>62-P}F<@gBcT1o^rt;~ix&UAX!da&5WhEB$&eI7jG zvv-uO8}|)B>H{f0Kal_ppPU~uo0NSzx{j9ncU}RABb)Dnr)7hn zo_z z@$0-e_VThrL+E1eJGXU_+U_tB7ITEU2)MG24*`oeO@qCe^6DCK;2XVKM^X3zva|aU zPFGThx+!C!$Z|w05h4k52T_02@Js5aJq#h0;4i|g_5)eVgQECIr01h(0L2uq&A5qWxxQQUm+BW_uZ z!tO)hRZ?+G#T1!8C=LST+6Ix?&n>WDNqVs=808LR*(a$6tUpyJ~WFIG{IH6Gbi=FxBOrE9C)+Ai$Z4_TmzThn{WkL?|P%x@#l^lp--U z0l(im#=bGra0^AKSZBtTw{o3Hl0T|s$f@VD@g*YGZ#LX~hamDLztqe~6U_*uoVBK%V=$(VgcW@5^gkkh@fGK73l z>X^;2RIU1bL4nK}I`-z2G1Eu1L;V>kg4VQMR)c(BgQnT^O41r2nukM08f!%I?AB0r zmo&Ia7hrgW_p?^s6%46P7h!pI6%ZoRPzbV-EG21rg=U^v=+x*$owc@T6S zSsMpIijH}?)Nu7MbGCLjWktI%mO-=vXK2}+shfZr5ctNyg9ed+SAyo_EG-8=pu>vS z#FGL2sn}Ccu`)A()tZ0vrvp96w+RJlmTXyLX zL?G;FPPh|-3?UtRAR4<}75)t?g26qcY0)VZ-2x7QHB1L?>!I+5&#vBVk2|EGb?w6I ze;7LRf2JQej(>LAX~Qu0oVm>zLK}1D7$Jn_3`vMm$#(0HKFL}bVT~Fdv$l2C|(9lpL z3Ja9L(`(mt6unaZPE~|sc*sAfSl&-s`-_j~5%{-*>b}bp|9&Z{0QRlg9icf5OoX*6 zTPPUM7E$_I)bm0gfBwe2ru^a21+~u8?&sL@klW3erWl9w=H>qTmRa^R$`<_~peej* zjv}eX_Jj>QtF6~Rb`F!V6WUmEBQ^9@XnDsqw3L)z+n>FkPHj~(uPq_T)BCQz?Y(ks zQ^@d0;h}wlAo`W_DGKdOge8{=7-a4?B60<4Pe#z+bSzhI?-}g{|4gmX`yAW6Z@#r4 zZXnQ5p(oK4XiMTjy`Da46)vUowr`V7YJ%nAz#a(-6SB5%TA9T7SU%x!TjSWreNY#(zwf{c)X#OYcs96#RL2;ePiqBnUGz!%%bmJ}Ld$MDSL; z2a&{r*)u@cU_4~_M9EiPMDIQiGDyCNZ$9FB6gK?gc^=_)^4v2JMzGc_#`?)x+|QQ4 zg`VPjZA+gDFPnebsocTGy8_Uaic3DzQmS)*9{rU4yH}gaiLG{dzkKNorNu8U`Yuc6 zMBrRt3cB4^pk_EcX z5~s5jeA$Y$KE+@#kt;&rFs0T(a=ShWe3QufgWay&7f(#`3JYFNS6G}h7cc518VJ|? z(e9{IVPA)ADNjoA zVe(mCmI<8&p6*@ci3458z zQ!I6+0K*`VNLKp>V*uO5g&({x!q2veFfH9`vKDT({bTb5ZR$BT@R3jPI6(MwvIt-z zcPORG#^qAm)uy$D7QfV02=2tx?2gwj?oMX6_Wa3ub1-{aO6#Vg^hE=7aiaF6#G$tu z_ML_1MNqUxXBP*euD&5Eo6>)1q*pB3RuKb|$*5JPu>NW&#kjE~qKgyn6-)@-h?!wQ z!U@*rN^PGo~Zb+dgPng=eYAU3Be2Jcwm7@f8;Xh*bMy(*~waP573 z8+6oa@tcMlmEf<(I%suM(W)dk;({e@FeRlowVZn_5`BLV(C)Jt_U&)HJ`nC>d0>L{ za@aO0xNoe#A7ff+lF6!Z?~5J>%}o_owcyHMG|o%rT^&_a(-nCIc_>;v;1lP#bCNZp z{YMgOjJX98`ara4$krL)nhLF#A-eGD;~bt@ZyS2(XmC#WT2Dj^Q5ywB<&=(0I7(=u z%6bviDXbkb2<>2t=_AQ?))G0krz1fUs;yYO>@>@1!X$5l{$PW_OzJmw{EcSKJSkBf zY%lA5xA+Xv_Ykd7Y1`&M)tqp2xDkNfe2cs%AA^S(y<3XNq+iBYfJv z1HUNxMJY=p`p#}AA91PT)q<1a)JVs8_AlU$G~!Mc;Fiq=y_2jW*x6Pxb^r4P)x_Cq zID)2V`f$Y6N?OHn1t1BPDcCh^S6e8tuXr|&Bb}-ycD!CjBw~+JS=h-J1&pN+6|KlPu9?#i%S+EQa3q z#DO_8Y#r2UbIcKreWrb*tYiqqFQfNtW*@RLZ2j1dA}TbmTn}Edq7X>`1rg1lZSQ^L z=yyFklZ$@H>y)p((kI-kzy9ik^6OZc*N;{YoIIZqjlJ0x`6S-yb;3)}Qv-K__Dr!1 zkXSn?={`s$j3s9`L2PGfvycUy_wPS6uW*;Vp($OMBbhRqxnnl&{#5Gez_b`j$~L!4 z?Nka##n^$c4w3*IG%ETvyg{gQdxED`l7!{q?Oh=+D#~LFQvB>wkK3;xWzyfGI#bLm z-g@7<=UwP{rHf>7ost2H#$_76`QgSy->m!Z9J6=gK->_3BN7x9$1I>N;Y&r`x;gvf zyC{YQ$K8S5%hMezkUV2riPk3+#y)!8)ZwosQs`h<*2T3FiFh;FE1EY%8z%quJBTt^ zLaHxG9H)w}q63B!=2D#4?RxL?-oFtIF%b5wcRy^(N%_vu-gS+h^UjCEq8b>Ce-$%$+t z9VD6XKv%;cMrrsn9VE-YS96a=;8`}+4j*@$JzfP0equY9*-mu@DZ!e=@Sq17$nT## z9*_7zkJ&A>m#H>g0eju_Q}=8ZF|>KJS0?k(t}yu@%2fbA9e?f}a_a4W@rRX-Eq6l_ zza$3^{2d*SAPyi3=j>@$OkpK?XU>bn19V4k4PoXWhTp zJg+cZ2K{w9yE#ugfUvRYWRGP+egp_~8z3`mo&pxKpDze+=(au?T%~orKwLD^>nFhj zkz?P?i@9&#-cBJ}mWZPF*lC=vIjm%F5S9e zjvQr~Dd^*J{U?S&c}^^dtCO~;nBGd}=7??6TD`<%kogb)CTT)FUY=^xDrpBIc*$ed zQEol<2jA~=&(*99k@j^y;Fl&FS1+BBDlKI20=V9wQZ|_U)bm8Dvs(8-m8d`j&~t<> zCE%40{$Xfy3Sa!<(3!*~n31KhKX`{3?+&pRhr%>^j0e?Tbr_3{8X8qt23d+o&ZQ;s zYimm@OJ;W(7Kohpd!ob5-!JS$%HW4XzxA_7#BstP^EN%VT=_$);n9)tFnjB;3eaYFvlb5M<>KXrOOd_0`Lqb({V*ZShm! zDHSXe$zkd^PwV_+;hEse%QEB(g1Ys1r6@s0d1lrz5AepAl(U7c`x0MK@QGc`&$RfTH@|*}Mk2$&vZPb8 zVQlQ5sPeGyVJnYlST6!m)u64r`G)KJd0(x4eu)~UnxD<)0$6AC=CYNY%nLy(oR5cc zm(s+%CDv)mC1i}-@YnD14P-YOj@^{Sy5u}%`_qNHSWn=;m)=IAWuIH8^;+LyE0N;W zxnPYF@Q&snc$^AWWyIo=zxp4!-4x#T%xIn@)$vqTP}nh+P!$WZ3OhB=@_tq-#$c>Zb&GSAr~v8Pv`dX0VW9ZkGoiZ2P+dW~@8)ALAa+ zD^b`uJ4@^=vc}H)&^?4C+09&#?GYI#$_p*xyi8hUA~Uo?(7TJf*{JgAg4bh5zHffI z#gcCTYw`Z1J^(3Y6q?)WHWy}G>o#KF3rjN=24BJJFE-o;>B-mF-E(Vh&qNDyBc7@P zU2-pu*yhS|09ib1{{z<9@uyYBtklW3ces}fLh$A5XugQ!*Hd}iVw4}mJJiQ_;5X{+9%qN4A68&%8 zM)s_qQK|~O^Eg)X$~hehTW#=<4*fqZ1`8c%E4#jFvmrHdg}XmGe)V*6qLALIM!X@H!bDzCBd>IlX%9Zr;tQys5$xFqc7Q=~T0U}x^OHl+(GkyBQm z!Hl|s9!Uw)w@c_CWt55|lS^NxnsQlP@qJFtqBPf{#8<8RQ8_)Ezp+vQ?_Ii+sKn_vv9vnD)w+4}V z>pyPvMwKP=f_u7%PSmzS+M;OjIXtiGF-}U;YcgRrkpffm?d1HL|9cm!MD=|^kEuxq zFRf;O=%1W5fB92lN&HKA03<^MRA8HdkEsId$3x4((g`=mz!-cS9{SC2LMRbKCC*uj zxHWK6#Z`)`(mJ(@q~X4>c3+(1Ond(kwOgqL_WNg|*|DMtT>lJ{7>|VvQdWZE1;cUM zu{?=?#;zO;)_yVB#$ovgU|Zx06+=!GUp{UQ;~ciUC7KG_!8uJvC&xvcIb$VauDbEs zUZpBrI7<~q?!|_d=sqGIr-^B4eKX9D>)#@N)cbaXbcs7Yx1W;JaUvQTdl!mzCCMZs#;ZmL8eQ$A^&b^bv}RpDhuj08gae zuI+_jjvxv9#$B@$MhQD!eN7DHx_*$L;aTsG=(Ui)W4B~NSvYl~WlQ%Z0qA&7e|CT$Jm8|8KATiZtBcfs|6!M?Bk!s zzR^93U$S);Q5RKHMW04ct%cm|*4b#MuHLs&&rhWf;M3`SgFV1n;xf_Br+oLBA($wWTIu!&l9 zjPU(tyScjCK`8ePcs9-&vP2(Xvk(OZ1H`Fe=rhAX^0bHs)Rq$v>Oqg@FPfuLgh^lhd<>_HyD z>A6OO zCne)ch!h7m4Gt6M)xkqJlCJ!;X9;?dl8;vNp$p}##*&iCia2WkV$9ZoB%~;81DN~v z01Qs5%awL3zEKlElfJzn+L$ily54H_qEO%SXjY?-KgFkd5bBb!W);U-s{QY zj?wHms>lv1fd?hpV{FVTu59<;y#50iFC4ua@}RW|52;%-`Zzpp*)jg4c&w^DFe6YR zm!97D-B1B;956=|-fngueEaK7yP;@T1sSNLWZ~V$a+{OPwCKm1PI7lr=R-x(()g-zY=^8Dp zdi}Z;LUdV!SVt^Pub{#`Gt2JRS<&X3YYlGuy9X4@sG#E7allW6Ji8PwBNYZ zK1CH|+yK+m9Q5?#2+WKgRKQOO%8~z zKE4GKyGIIEuxi{ZH>p|(6uCS5c=X$x|Kk3zi;>Dm7dTB{5HDALVVnTMxzU4U|22O! z38V5d-FiP5k3NOmJg)*eBE6aTGB)+w!?LCpr6~_bI+83Wz)E+=8I*x7?SQp&&|I}FUL^(9>h;J+xz&haY3V>dqr_!E_x`*O@k@p3 zOUs9|4@g!Rw!M4 z^X)ywp{|U8Bu2)jj#K4Y{HBjHTAg}jZoUwtd%JL_+d~|$pQ!}@^Yd3`EK+45ffp4# zN~|<5Yux0bf6H`SiI6K0Jr}}+gPRqTOdEJXBY<&JZ zVPHixeZ_>fqnq+V=+%RpvkASkDb^I31P~DecrDT#`Ona6z8AeqsZ%_(Dl^nP54z3^ z<%5J0#Y@9|OUE(=8jHiv7s5O3?Q4O3W5AP}bX0la$l4Dli)cX4BuV8csrBU80Q4zEfJ_L~4Ysh&mh+oLuYh8%%l7+~Y~5jOMjd;bEf z2&X>jsaBbceG$*)i8Tnxc=KU>RO$8#eT#*uI_K&lln65yn3P$VBh7!G$9yII^BPon z$=7KjDUQ*gN(eMt5hW;UQv61+X~Fc=PDRrSj$rdD(_QvX>G-8h3bJfslh>bC4xHsu z3_K_}X4NMpTgM6N%F8STkmu?dZ$ONtt>q^ch&W}E&q55$LV*MBlzu0XXft2*ZWu_~ zwKy@Mk?;XzuF=KPW5+>4+w$LH4wmJQI(WSsYMfCxo3sWa=;ih(8C>~40sFM{Zp#N_StG+=Phm67xzw zlQNXk&$I`3QtY-^&`FAT3+0kmb!8O=XXcAbVcI2tL^hdT&uF6W#~GQdXv@qRtv8Mh z2ilCQ{5+)m&p<(9p}0w&WJCUcci#GU_u@C}a!hN)flx*(?@SKY39#M&*(=@fFeEl8 zL@)Gc#LjN~Y+bANem>^CS-1GUi28kkie}FJ5lw(BsTaTY8gIu!iy6;gh=p&V}O%-N^oiCLFQoUD>rNDQlG3|+8uvztw59X z^WqFuD`F8;`jVbZ?nOfuivB30Tg}_myjtCR}3xRZIP5dIV!|aBz1xsikR%Jd@DSs36~0{GxxVfyK*K zN>bQaM!&;a5Paof;97`(Ki0QVCKxp2&l)P$6wXmVm581-yM#?dYA9EA4;}tM&7%bbRGeue`a7|XQE~s|*uP4V1Y}l(G?w!@MRFS>q3cY`p=gX!F^AAbSC=2va;0ZmS9fH(5bec{-B|bUe#f2iQVH% z>yLoJ$PDR8q{A1>a-M2cy>L4*N0nJ@=VdvmATG;lA%1umlQZToERYCn&+^a)ocA(s zVqjtBqG4)=Aa4@&S+1RZ6HH{A33ulSY+=zY*W|$SL=uR24`yFZ`B>zen1sS`4&rNp z#8v>?0vx5WP;pLp+9PZ;6Jy6~mps;=!;2`hm#N$laG050^!EJo$@YtUxc(F~0k$4f z?x^E26A`N`E(kPWSdzz|Nh&SfM4ZUe z*8E|h>3iyWkxkp5g5|urC|U89ug;NjiVW)(K(?JSboPXps@|4hFJ=ZHFg`+afE=D3 zSXJIJZ1&hA6}E?z^*RsWs$7}m%_*$h2th^#$7ua1NE4jm>Us7o<(t^#fxr< zeTsUw+R$!OJwuLc06KnC;BkSwmeVuZI~WlI(6}BH-*PEb{unNUqVi8**!VbnEk%F{ zJD4(eF}RGQEGEY6Mc_$RfWX734Vi;9oazDE;RW%dyN~%SJ<^&}wjmd1V0(E(Jdq?z z205K!CGaRB^iAp8CuH^+Jf7Fx1jmxZb-tg9T&b4)p?8_|@oj+-RG36n(EqBC{AI|W zD!fb?sm_aWK)xKhcsEAxz=^kxMH$$PufqK&{#$O$-J)FxfQoIqNF-cZ{voZkKpR|~ zrZqT3M>8*C-kbqgUm88KT3;e)OsHxUxrQe^!xUc^A#BgSgfkQFkNI6+ z&!G(mhpsVA<4*>U0;Z|@!81E#!9Q9U8VhRX3%M4GPH=(I57lS!Lh`SCQHGW-KSq>% zjiIHe>1d57wT>oDX#{OpPBwN$N8!3VH!1<0FXczy`lIhr`g(YH0!y!8!{%F^Ed+ez zN3+x>NdMm@F*1wSLh{H6}w5l ztoielj&KVAW>BgWwC<==L|1+Kw{^{fl`A9*Qf$c$F6Hr5|;&jWc<@3*C6p!}h56L+`Df`R)Q= z+_a7?{_jQ3zhYLjGhvRS9s2u}lRi{uFGxy>dcBJ!J;@@pd%+qub#t#jF#37&+@>7B zmiVGP{S+ieXGki}V@t&089>fd#_1ad2{k4I^|v1nZz|tBU6%K=_R{SX@3XZo{oFUbyogoFl>AJ z!FwO+{-_I0x=9~@I-nEoTBwN!{dN*j{C8@>`G}PK&h`2QovXO7mRw$=RJ^bORXFjB zg3edT1dtHr?@$Ne)~rKOhuWEm|C*(s0oKbyUy?fAaKJX`_@9og$Y zX)kBFqrX>zMM$J9{iVEJoG=jlWiY%?aML?fSsVgmW;(vGpP%)uNxD?@1tynw@NCef z$NEl;SKrKnhnK%djDlzvO`;A;C7w4H?xKn&BubqYIIVfVW1IP=^xnynW>3zGgPZK9CoT&lRAr_?~!XCKHG)mHK7cBepL$Q*6IGWi`| zrkEL>4i%>KXFwH8CK**7{fM?h8%h$#9*q=}1N(C%lGC)y?!+yeSnvgprI;ExkR$iO%S_@iN{%v;i{N|k@>I;q`b+S=AF(PDXV)3J0hX!45ZX+R z`o&WN^)5$W*IxiXan=nVCiE6i8Zt^!wIef+%XWyuhe=r1farNMCVp^^IOiJT$ z$-RUC#hhaEGhcbGxTCo8{hxRGaRj@h^IKo0K1|&>>QJtBp6!K6Q;}xdRloPiVkQHe zEc@G8_()_;ZROpJCV|3X)xC8^m#kd{CjS-6~bgd5fQnQEFl~5m6mhgPK_*3P>eSe$`Ec z1y|P!qdsUiTwT^hZ8zLOjXYH@<8TE?dfY5^kfu+&Gx?tCLzn&8z%DhDRV~~-1E2XZQZp6&!olmb8NqxN0;#RD%r#s)33pp#HdB~T=t zDnJZFD8PopjB`4q)tW(RQcBXG)DeU65#<|TepRaJ880=EP~}6$!>p*jAJvgs^S7q! z?$u?gTvqL?cGRH*;l6oUN4?kUdufGEmG+@re+PT%Jo2cjoa^ zMAZ3I*l1VSa8T7%`D~<7tJ&c zL6hUR{~E;%NZ8(sd2F3=D;=sw&OZ1=`Id|<;Wr|b=$|oQLvPK7{xxc3r zR;LGt_EtduQe1073)Gspu9_PPvRPasf7RhH5Tw zvj+v_zj+5AC%q|k_e{AVvKr|xgJI$r?KQPaOo6N+KjD5ALq$;~=w3V;9fb#rEsmxe zB={8P6hUPMkqW3lymjqQ;pTOcXB--1uR=<`FfpWj{v^^}fewAQ1;sG9%(@I=oePUC zRC`x~oRQvGD9eDKB&CbJZ1SPb)vUKHsjL)12($2B;-^nJ!O zy-N&0N2~@iR47DI9z(!{lM{UEW=Y*O3am1_51TZ~Mv}O$suT*kN4zlCkpe|TPh;QH zY0HG zDWKaPj`8AvYYi`ib2G#9i{p0K84Lu(ocwgpedB^6;D)orR7Nsa4Ia6h%a zj|MhWld5OaXiOGz9YFa>^g2B=HJg_h*Ocf2kxKz}+h;HHO*w3dzUWK(BOxBmRuAzb zqwGSGq0$}(d-pRyL|eGM`3*|$5Mwqa@_j_*`iHfP%QNS|Z7i!_r$wbE}jR7+i zTeaAc7lE#7P4@={IF=w(Ni&B1hb2j47VTTIKjGkAdeS)>X5w}Aybpsdb2bI4(jO3z zsLGZpp+HafTt&Fiee$Bo$rg*CE5BNZ^4dSh-wh%KPZ(dNTnaV9L<5jJ<{Zl>6Lf6o z#!!lW9t0#v45ZG2ezn{Sw9>%Q&7UA>h!l_c!Fz!={AF z8j`Bs9?5b3Lz4(#qY6&>$yj#TQZNb=YF^I4W~Rbo^~{d$CxW z=rWay{5T+4Lup7=N1@`t;&TYDnsroFO?IYFpsBO}&G0^)(G5}AWgc9Yj19d!@=9)! zD;Q6)ES4!Th0BP4!iGsO zrGh94W!>dfkm$$y;~3Pd=HJN*=h~Wdxg*m@ zn9xs^=T{*<{(?x{;?X2W-I;$nC;Jzf=`uVn8A&ZM`M`%rk1@PN`OG>qW^cOZxm4MK zTWs9O@xM`S{M$!x@LRLlt; zWHVbyY6Tg)29q454FJl4c{6vn{iFJD%C=+n7!fv4(k#;Pzs?mXjS?vYgaOH_Q0 z!sie~gH?G6^Ao+vHkN_7$2ad`e6DBUp&55=)DR2+_ll3}&K3y&gafx_hEZU@Dd>bx zEH-mvGVlJ($NSodDbL7SRonx_+EhhfP1!Q7hNV!D^EQpBW>_SEjN(I^ zm}oi=R=7 ztxN7vOJ`&LF{A!rMu$m_&u*j(%7zgyMqcLDB6`tLUcB{MGI%!64_fWE7nV8{7Z>}H2nZJ85xAX;&s zOD%pCV?xGS$0|`fl*C>16cqasX|`uiWMJ3=1$@DM%pdFPKLSbp+wI>|mitHH4ugxo z)4uFt@A|VgV54kg9~-8WBM=3^TGB*ZI3mZMjB^52P90l2tFdWW`{!2PpAH@HBXzeC z1#lz$(}r~q~66%iF}W4YKuxLkZcX8jr|S`RrRf{Y`e}rj^01Rkcr^7*So# z>T_1$I-6};wLNd%c{UEA_KRYh_33UiSCS1T+z}cRi z0osJ#vp=T+Gv;0FLAE2@ZARZGPacoch zkfjJ$Whci{zuMq|dc68}#%crvr2-r)cI)Htv@Q%T%&uMo10Z2aev1c;QYUdx`(NUi z?aQ0u)A2gf@qP<0Z9bj=eac&i9A3`VhFg*rP(zx+lvv5SFyCYQj?^+tcHMG94!)KE z?ckn>KAUony=6RX6J=iu0~-e*XI|h1se*#?!G%n0<*~cqWeY@x#b-r)g2=tk_V`%_ zqOXu!ix%8s;)GRT5nQ-Rhr;0z>U)i_{dk^F0cKypoBr{%di{gSFHJ9q9mxOTcByz% z3782Tl|KYHo!DdhM$nGK?ECx)MX7<9@}O@n0Ac`6f+6t!!v2u&4(lYi^n6T`r^!w* zBup*vm@iZ0jx*+-GZwL=bj3mKYna-->tR>j_qOJ$hgzza@-D@?8qTU8IlOu8cRVyY zTs47Yd(gQRAH7r-D{Dz_bn7-T|OO#fRUuz&>y08is% zx9u59!ti=>4?nx=efG4y@l z(so7N>7LCqcZxh%?Kx-jS_uOj6?3YR2&-3C_w166Kg9Ee2Bdqc*N6D{k}OkSyWFGT zGJ;e*H4a&mkXc;Q830%O6K^J#_iZakh>BWkwTN>v-(11HB4L!$oL7qQf+o1%y#Jsk zILY_u-=vGt%tWLIP+KclqED;cq?%3@iZ2!F(u!<<9kr97IZIr0QN3vLt4f^&ZxO4D zUJZX^eZO1i)qK9SR6m$@!1{X0g_?X#}z3{W@QG_PP4v6PzeIMD5REPRAk&A05e|6Z-nN%*Fsr(z;+7PPy zE)82(vh4Hv@U=;}r+c59@t9jSt#^xo^_iE{0!{D*5-l$y1yHo>+#_2Gt6b!JB04GW z3|2nx8!;FcfGD7FG(z#883P6! z?d#TFXF}7;8VuVS!r_gDKG=(Iio}tJx{9$!y_=?^!a2Z?q*6o%(=LrCpvn6oX?%Pi z3GS{l^Di3V1=yzq!+fmti{3a=O13$?GdoK_a3Rp2#LsahzCm@LZaeAPzZDv(Bz2ju zPmBYrhbIN@bm3 zz#{q3)~2!TG7M;6)sE@DeEYU(rg5}XsW8tmcU}R?MtU-x@)_^~X3ajyywaaRbriwb z1>Ism@JRoZdY)S#g)~5Tu%pCWL@B}VJ zfe+Pr98+Sz@SwB%x?7hR!8;n)s~?=Hl@5VIx$-#<0^R-LX`io&%|l9nooZgiUa88X ziGCVVHJt&FkZ@H^-rY0io~RlA-P@O)n-9R;cn43X);EYVozHf-NnV)`!jIMj z#GXZfp>^*3d-^7dd{_1Nca2`%9SwhYU#Mc#%B1)Gxv@)q_s5C~E`>H7bP4Y;f;q4C z27Ez5ApU4Y-)ysYl|gLbgToowQ*#- z)KdtkU`$aUneonp4^Ql_QmVDW!N#Z3l9epflzQfMs^@ikZm*nkCAx&4>b}l+fjzf) zN-_xM#_VI{!IgmhLt;4F`{9xgJ^qSBaQKm7YG9@NT}xbqFsL@*@0leAtc2nfe|g4g z`=}lOvs^d~K@QX<=mwM$L$;@O4-lqqX2f?sy315QX$-3-O&@hNYYzn|iqB_l1gD>< z&UR_OBd$EDpzS>IvhH*6*#jUqCxh;ojaV6tm`mQ-mxx%i$0yM9za-+n8Z4e9!J0I0 zRFIHvKISt#r?+ajBbo#GW>7OgTQcwN-hWG

    87gg={6dF-BqRe``4+}ww&j8|8F22sUuxiA;i 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%0D@NgSWRQCLBk=tECB$hHi;d@1WFZsU6(%0=SV~a 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 z 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

    ti$Nq-o1(rG{oGsQQN;wd=}!?>qkW~*Z?if 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

    d1?#^;h9P8 zm<`mT&X$C`EmU{A%8Mg!Lr+NOG(duCi0G5VNRYp?`RsA?;z*F;(}R|{2gT@FGHl|( zfURgG@2OdwA{GM?tDRcjQoGqJlaEDk2qp6?%@*Vlm7)U4JeaxNe7U0(I9@ghnT_Y= z(yL;!Wsxs>+o5^o1qd)}cNEoubv&PKHdK1t8!`U>5o<55q$Mz?)@F;bbS=9xMl|_Q zop(%f6^Wb$k?2z8g=(%82mW`t{!B^mp=PUQlLX<9__NnWaf zTJ`l~Jc#XtjOT|JoZ(bftG0?%w^Lgb>SUxN61It__p0B}XJ4NwE@%>&uAbN0m}|Pu zVd8~yZ&{3!*8>IRg*~4Xbrlo|9>mG(Jb@!m;wbj&6i&9F0eI+`<@G^=RTlFx2+JU) z>e3sFgg#L#=WJv?vw0QQE?3G~T+O!!i6J;Cb=4{lQQ0&?QJBjRMlDs^N{R@AQj&No zu*F(slkSE=NjzF|066Vy=t33evQ3koNH|pMT`>sVhh$k1T4nXi2e#Xg-YUyd37m`1 z#RS!!?wy`8&%tNz?oN~u71nMHuDAJajbX0O((YC(-{(S}R-6w6avC>~5%u_#6umi$Fer+SlXQZu^F#onpnD*WhJjdu8i@l_K(H zrEfn{Z_EpD+C%xF0+WviKo;K0=Hq8 z%^6>5;H#2STqOe5315mjcs5%?$GZa;z{Dc_A{My{5ycLMyj<{bG?GWep9JTH)-j3~ zvTi)87mZ_ER}{*Ik@e$%cotKA#hn56_5!0Q9&xao=_ks6VOe}>QZOACAXttSFzUw3 z$InUviO4S1DgPz$FE)hRbJi9Ot)Q)Lo>~bGy8_T+DyUXm?x`0jT@cNF=fV3t;OuqM zaJ*;f8u!OyJQr?y-frXMQBV3zd}MNH#V@r6t5(PRg0?OGe#*Q~c%WCoV)Opt`h%v{ z7UQSZYOgsqBe}Tc3#OEO((HI86b5B#xp{?Hp)4vqUE+aS;F`d4S)Elp+*I0H)O?>b~w>_EqEg#3fgI`xdSp@tTIi)M9M5S|LcO> z?G35BA6HI4gWsDVrFyw~$($o6Bdi$~a+U+|e{0E2r-o@p!)aW~G(zAtTJp6|G+5)C zw%+WZ^P`y89&hRhh_rn0weoHj1B~JIXEy0f%#IkR*CG&}LQc{*6@&K%X%K5}UsO1W zxe04(jaAq$=@f>Yv$>iZWjA@dZ|U}ty!+D?O`*R8)}-G_Cr3@w+3R1&-0N|hucmFL zSakQR{MXaDX7Wqt>V8cHuzoKW&F{H+n7EqhjvHb##R2OzVuR1C+X+73Du39-^lfSO z^$n$d&)uiCEK~ES8yhxlN5hJMBswd^N7-M|vGch@E(tYC;?R0tYM9@_fN+(Wup#Ab zF@D%_#`ZXUyA}(Z0I*1Ui;EcATLVfkpOa=8MeoR8-jO(-V5@jpkU}{Q`4cip>8vSu zD4qs#ptH%7AmN)w6_-}NaenWUVQL;i3nCco_ZXjk0j$~>oIBrFIagQPNu0SSh4DHI z5&Z5Njhq>Tin2-^-jv~^!2PXJxrUdtQejhHSXfcCwK^CBul^Lvz6W6I0dP8LASh2>yJu{Gdo;kYQ8?O_7Iw!0xm7Z#kc17rKLVafN?m` ztPS`A4wA@6zw+6f+Jdc-SXx>pd5zdoPo{JSDKBXp?`vQiLD(f+?s1fo5VbO}%K$6cM%13PaH3%x z?1apMh1cf8j{?#5oa{?Y`67UVMNoB=1bZ=nYbyO#myGliz?u1Jj(=EG3k?vXBgsc`S0M|Y7vz)B3K)fuAvgb7h3kkroOH&t;)NqqfdP-)GAW6w8 zBWBlF+W_p-g_LSClnl^TGx5=?&%r7Py$P=MZ_xi1CI5T&OxSj9{mH+4faCay4NOY{x7HVNL~ z&QaiG0{v2*wCaIFpF=xs$IZV1f9y%xqrl$Sz1*Ng$k1fUn0dn5tx-IuAxwJ)88zpZ)JS}UKRp|eXwN28a ziG9n|4p_f?x@|3Gt-<&yN=S4!bzB_gi$}yrC~b(df5R)fgE*J5?Cm7iy%T^;jvPUP z1u?@y97@EV**8D4Cwm{JQ=_^gB^yM8H9bsBBYT=$A~V`yWMjBDR>M1);9Vn?k9X~% zXXE_7Q|ZptG=vb0)uaHjW@?0tF!jJIg^Y|1f~EfcGUR_^zi?POBL2>OH`-9hD%?6-yp`#|!R!iL^WMoq>^6@!WKWVIvUK$~ z_1LwpWTYrI1k1R+xg#lcvh5eVVm#_RY zM9+%HVp6|@qI4gr-g+8sZJ5C>C@*G0hg%N9o3Pk>G`MNaa}_Dh$#AUU7D0xlxK{`ApnZ1D} z5KszGO*7V#_NfL1N&yBBRdu)0oMg{}+!M@EW;d(Y)`CwjWXpMNW3s9|9Qf*Hx@YF8ehqS)b2R;l84^J~bxIJ8C9- z#Z7z#zOnGp!~X;>X#hKv$N6kbEyHaEO6ojG!O=8(YIGt9d~%G*)SiPaIO?h&gq&Wp zl4IGPyew(*NSrr{D>ydxykon;8s{&@B^rP=3BZz@d*L1yW>^EGGA=!r1SiWVC%yS9 zOETql2Jyc=Ssh3piAU@|ypPeD{W^6KL$_OWW}1C$Y%_p`I7dAFJ*$J8^PIE0@wyRV zpWSbF+k1MOgk%|{$9i2s@fQR=1aRVH=aT?|Eo?-MdZ$21g|t_PhDt!_!nr%8dbRtc zDz$=DSi(RzvX8%T>}CRZmFp${pN31nsjPq0G~T~dYb5Sie!0?+3-@(JF!wJdUVR(9 z7xS;pRO7^BFC88nV@W4pp&NuB9`CQ+k+2C#)!@+n)?hd>Y8ZHHXTpulDsrDi=)0_% zjg}@ZgyI*g{SJCBfXj0t=J$+v&w|9b#si0>3$ESJoZRpJ=iw=MnTD&_#OQSO5s4h^ z4PGB`vLleQI}fukP}n192>|!e6>~S486|*>U3K=_1F0u%Z>-g`-fF`-dUBravUitl z3oTZiFA3xCgZ{^Ww*k2JuowAe5E~2^L@_t>h_#T+*@MlyUXNEAHO-j|0b$Lw>+5gT z8ozHatFJLb_ulJ}xLfzhtCznJJPfAS%=ql`WD56k{ZeH_NU9hO>JKpo= z-0?ZC-#*@2KhBg3g1qxJjy86g|F@I(Z{yX!c0kF0_gh?RL-$ov+Z5}=ddDik#&X}z z``Fw3*O2@B^?)1zTq?kM_IyO^{9Zdd+r9GCj`uX3fkB1=SplaDBk!Yin zE1eC)f*j{&8JD^EJ}COEF4o>rSIix2v=rw0UvH}bOCFgS| z2*3avneJ_BPYSwfRD3UVDo4&KuzT%P&;?!jt)-`5bj^RdKU;k)|LvCizf<)8mY%Ux z(*G>+vLE03xzr#~*-)@JAak`zsE?bD6Hfk6+(Ec{RiU<9}Ik75fLw@wTaB zvkXfA&HgS~br87TU3ztAanFsuqca-mN{7d8L=>GmrFHZK)X@>w6C6zHTCQjud-*1X)=jHf zItQzzvmaxXh8e6=x>}x#YQSC{2+1hePviazdQ6{5+~Pf}+t2P6d$D(TIqQ4n{PyzF zSC-cpV&VtouUZ83CwLY7370-A!sEYH^R`zo=wSoiau^DK3C^6soGe;Q+VGW|{@uaG zwaHmBd&>+#D^ zhxiW0t;&`7t^_RMMs!`mit(M^$3<0Qx>Zz*nF5m1+8QaB#8ttuxJzeqpw($g_K$&p zsGIO;$iR91?Q*B>=CydSh3%rg1|Gh7F+M&Cz4_D2g)+y3_Z{BKU-j{lQ&}CN%JSeL z!xiSTs>vqo)0YgF)eN_2hWQNvTgBG*SNumtTiMEtVzkFDMN<~)$DRpy^$)QHxB)!z zNZ0+h0Jy}*3HPLGwvCnE_3JB37bdOVPuTwZaWNv8`EiehdZLf$VV=D$@s6FbUwa(Ki1t| z$>4Fh`ehD5Hy8kai1ud_G`x@FZ1ctoF7K0Oyv2@e#HoJi~7oUxZ}gT zkGlTZHSC2FrcZye#LUK7DjL)HyggP^;C3i=f&-TW5})kAwo8U0gLm-&E;n^T3d+#b z5g=yxt_0w9o9dk@SO3n-S)gsaB!iR#@X1hrPnF2>>}RdXzBt3`BnD#3U@c%5c0e)- zM7eU`0xO-PjY2BXVdmU57q;1wllqR^EWPZ<9KPTR=ZzCPdsaY#E$gcCG#FbMm4z?Ij zt)67$Tb*kj+*p4nGuRJD$CdM{KcTsDmMiWp1k^}*4%$mGGx7fYDoWb@fR+bokN7Gr6#35q21VmO-1fb5 z_48`u9X_AofQx>6o6VQ5|C*qGNL=|b=D-IQw4`C;w1C65c;VkPZ%uh|kp)QzSn{7qAGs zvd)z{kp(H zDaI1da=aUYIiK+T(Q8g6!7;GKSV$aIO!KlS0CDGvDZ>_b_5G!)R3^G{&*FwpMV`4a z{crE7Q8JX<)R5m+Z6{(FDUm5Q%J1)@=_ryYTb+Lp=Bpyl$PBDkLH~W>r=dy%4<*rI z|HkFdH<4bYjpo;QAN9U4JE@yI-@{Dtyam~I+;{>a0iP@kS%oT36F5xxn?<)7(AXby zoY^+1Kg#bXq>8N{A&ayGExmGZv;nm8P>*O#Jt}vX7fq$f&&f7H`)8Bv{OPUX9GBvf zcqM;ivgk1=6pt*+4M9G(iF4A0`2*ag)_m>cMTmurjTn;v^Cu^)pp;ut^?`gDZW<&w-uKcBzJnduNT zJy0AK!PO$|EbdYRt=PFVUo4;zAJft15>dI1SY*jFQ8U!5O=htTU^^E$c*R^XRbnPt zm{V*hp|Fg01aP2zX$WY@6u;cOQ?OwEmjHZUjztNdeG$ABS3mDOlegZ6aRb{eE?{w_ zS7dfb4d*omShxia3#pyjbXlBzR9&p%(kagAG@`ZZY0FYO^zGbCRKlK59Q zsRf%;wf6G0% zHY5LBHXp!#ZW|<2O-kYDwzw%0eit(gNY@(1vr0z*!@r(eW?_XlqZdV0n)l8I=E}Cq ztZjLp?~-7ko(=u;l0A{R>*5F4a23h<++r|C%=fhjn^fFnRQBgqkJeYtp3frQDym9- zYVvdg%Z=0LVD)5BZtF!sW}Ux!GYY_3`XV&I-nDO5Dl53+?+yTeYH8A+x9~O@!cF}% zx;k{n<^0iYoW}s%L~Brl)#thEyqm+n;3<)|i1mc%suf0g$g@AukjtVJb|P{MX9cLl zp2vHefu6P+YoKh$$euZ zIm$@jc{ZV%Aa@03hHsF{D)ju<0e8d?kE1ozATmu>jc|7H%OGm*%2i2>7%Z|q;fiUc z9B&8OK$&69Z=QJc9ZMMMee!-QhjjIy8UZGd&yz|W)U?4 z;OlDs#aAvLP05_x5}mct*V=DaT|b%(@La6R>Dt`i7&rMAic$>Ac!hb;YkGW@n=PLX z@mBe5`H!tj^{)n%`}(&^wc(-e600wsZG0&At z>Dou)*SehKGVFEq$>1v=L2~VUVU*JbbRBYcTrN~A^<2`M(YVLXBqfOxa2G`7B&er> zBk?AikRVn}JT#I7b)bo=N^3`*qx|e*sqYk3+~U_lf;+~bDkP{C&EUf-#3TY_P!Nx* z4}!wT-1p+djpAHc`CQ(`KKm$vx)tdyZl6bn0R0k)iLRGL#ixQTo4z7$AM26;wsY+RXpT|mxXUTOZiQGD;v=R zCM;#I^o-MP%C|JI0~zE;0*c^Ly%;G>X|M@iLRtmHMFXUA<3UKYA8WddO4#M?w6Vj~ zz#eg`Og>9cWK@~>>9Tye!ECOD{K@frQh_ReMu9+M!KsOYssCKBvr;LthT)}Z;;z)j z5~;X(sjE>ulr30?x{>-Sj3n+@G44_79~-KA#$Y4RF5M%>KK9%%QXR$%Sd6x1T+ktr z1y2%O?cmy>;KIl(X^l(vK?a3uwgU~e%4A?d66g$|R1*ocat(!(v$JKCp}pC!4&z_O ziR*1E{m}rYse&D_At6MF>ZnrCn=?-3+J6iM9Pw9IBCn}1fHiYGf+UbFv+U~4x8ZUC z(3^RnvUh5*YXM*ZfAh$NK}<)MOK@k1PrZ|^U`x0glz%5fT$s(@b2PoB(bcy!;XYfT zoTgOU)hN-U^hX(miGcGdE;kPL-GaD{u4CPQNxI`4DhCCM!q!+W8S+NXIztbj^i88d zsm%Xw27&m*j`?L}@lcW()aNQ1gTM2>Jmd!32`>qT!-ZmKAPg3~XbjO{+?gQUnLfNS zO3hCnD-Cl^3!F%M*#O#YxOo8&iJ^027!XPST%Zpm@?7pGfvQ9b_&l%OG5tE23W;{pbUhZ6G7 z#Z~a7{k{meY{f$Y1}xm=`&jB#PzwBgmm~(Un!fbK5ISn7h>rlhU*LB{f|c7@wvX=B z+d=2bu0|qZ`DQL>>w$tur~|&)7MChxlX_3P;7niqzrdQunKdsC)1FP%JTbSrVA^t8 zu%%z8MYpL1_b`1%u61L>&s4ndE3xp^e@L?qWHQ5_hlx^;NxN5Dv#XDTF&d{SARmgK3A#qe^kdNLHdK1RA~)r?wXmb?Y%1bNWe{nKib0ndZa~n zv{S%#1?to1wuHyg!xQTIr|bV)jQL%0-#^%jfJ}w8fM8`@gX%Ph7%zCjIF`kM)2}|}*z0)pM(mXzaLiZPSyo&@wM(h5Weoo4 z#o{CV&z(U%{r1vN`#+~`h9r!hnCo@?XFfiCC~*D3Q6%47SDE82v0i_qa$#~0p(?i9 z`gd(2DIngRDl*^}&u4TIS$`PJ6JnTQdWA<*tjFMV5Ziw^l(CGLoUd?#@Fh6<==7k^ z>O~$JNCXEiJ7u!w(&5<7lGF#jy9DB40w8kuQ^M^a4+7{nTccZ+c>5QL*7z=iV?2Ht zZMcJ$tnQ!pS0+BDP$zFI>w*b*s8)LpJw8Qq`p%g95K$g*WQrdDGeSPVE}8KT09~8{ zH9Z=hdaORW;MHX|RjwHPbmz+uxG~M$qDxihX}Lg6e2aLyE8)9tt+&ZDJp9>p%rg_W zsLrD<<^Q6939YFNYqOtf{3th;?0}|NX}9(p0{J4rDj9{cMZd4r&!0w*stIA_ZOv^5 z3{Q0)C8LS;z?RBTpBd~^4Ah$OxV_6M*%sQa@nl%uShhV^VK){J$iZR(N{p%Gk06%O zq1(Zn?=1Hd9u zQv*BCcV~isT0S9=JF0Z=*+$BukuL=8i4R-ixin;x9D)9yd|gr<#l?Y*&11{%UDx$g zx&QX_z8Kqn9ElNrdReGT`0LD-?erHn$IU8gjWfqng`$LySVUZ}zpp?h(bE&R$4v*H zT@L96BkDHYq_#5)ABz^q?`-EGHC4$5y`qrdg_^mdsCxB!rhQnZ z-GyTDq$i%CK<<2?5_1}q(K;_M4Uz@SdkI5Em)~T31&Y`Jg@U9CUkX}egXy%@XPKWEa~+q(4l#ZrG*YmvvqViO^B z{+ZMQAq5kl!$H@3fuajkjtK;wB%#9@_sw5qlsVbZdU!%~Vu8Aup!ptmFXdQ4<(pxH zauM&h_1}Hce>boiy1o;NB@0bWO|9>MBoQC}%lYt2|K-7o&hHhSfBJj?5ylb6hd+Nm zu;enpZ4CDJQykwIkT%AFewjwYU5h5Er;SA&O4L#0PL(UJX zN~`df8&)?q^zW=6yy(JLET!v>yFBfhgBuR#wEl}?f?tu~s15|2c4fms@$o zVI)qG&U8;S=2!6hta1OiNAv1RA^Uq^YrMRVxDo&~=D(fXJuR8rA`rIJ__ZIbz0@hZ zbocAF1N$e5nzd1C3n{Mr`^vUp{D=4M!^v-^``lW(uaAlM*Wg|+e*ClDWPne6{TZu2 z+-%jdEGdy?S*w^c+xIWBc;rjc)Htjl;lD4Ec^+!&Ikyh8cFrbmon}-2a_z=_sjmh% zqdjXr&U4f+F%55rCr{?yx-Dk-=6b(xNcLiKNh$(1QyjEd|F7lL-_Ko7KeM|o6?1+s z<@_?$w=J6USxoW!1CjKDZwsADW6ZYi64z@=?tF%w`CRyN``nLWUDDfNW{-O>j{j&a-zn)+062IKg`vksp z0L?r2*>=G7>Hz-z`$ewZ*zIr5C#RU=uWim>fgj50=D*fze<)o40sir0Fnsp%hac4Z z|E_&6@K8D|dh{%W$+zsU6j1PFPa%(b=KFQMj{*62qZ6<^G1fANlY#vs_hF7J=8Cef zvi8Y0&_0*MB`wB~d5=y^9tGBqqT_!1Bz|YV^o!+uf%W%AApO@(g98=&gXr%E&CEZS z71O%De?EM<+j^-YGV!y>+oc2D9n0C{40+(g)9$tL;>}%~r z-uwDX_-dq~})n`;)alpM{4!PJX|fA#hJO>VFL{#GpMLvEoUFG(EFi3CA7CABDw z0ScD04^N#Y4JE_bR8q8dy+%^lmEli%Y{|nEUggXCtah~VOi7F2<%XzDVxH2)wCqo) zYBQj$*kosheE`$wj=pPdXU0sxi)wV9xcB1RC;R$Tq*<6b`tzFx``d0K*Bs@X+b&ey zK>tzOdDr0qwyNuM3Z@xeVsA}7)&0%mNg^xi_iN|r|FL&gO>s5h7M>XfmkjPOxVvix zcXxM!2M?aX-6aGc+#P}kcL?qp+!6?od`QCK{DyOTcI~RZ>8t%#zrB0a>SsYEgVB+H zm>6nUNQT`(ju*3&sm6Wp)|$d2!LjJ1st&W)djmx5Ub5djbaMC|g^E=w)aynxP-Y6K zvs3;S4Tj^l+U?G|cS|E5Ycxj|NU3O)pb|Yo!tG5wUzw# z*Yl!AFW`v0QQ~Pug&Y2aVVfd`N*M9tK7_t5rqPSZx8>f8QzBZ!+G1$yR7Z>;1J`tP zVN9{sSjx(dmD`tkjMTQXPSp@DTeHb`9u{LZz;du6AWVgaHH}} z%@cR-u6*A(7inAPkBd~*1g{{jYC_xGNbwxv@WhA>&ze{3DI7nkW0zl;Q$#u*vmbhd zrHUgHu30)K^B)Y{AdROGbT^E`CBfZ|wu-4Wq}IgdA*I@V0g(YPFc2;)Q}?v$>IkT1 z4rs72yw?R;`RK~()0O#XtK5)l$&s62d5)F)*-nl%#gxq()>&t)u-GH&Zr0x&bp2K! zylI}=ltyEbO@Vc_!7F-J9-Kz@m+C$uUFyp<0*2u5?awC}9><&xzoPU-#j^e7MD@)-MkSs7 zi1J-wb56g1ta6In!WefjV>eN-!$se`tR811H@0o?aULVvH~z)hGeG#s)ayq2%S7j; zxzJ>97uMyJ$lbL}0w4a{L(8z`OB+wI$Lv~9p~coAfi=dRmR-s4Kqvt36yUlaC9#X` z{au!tQ$#A2Pq*iy+U8|eN!CW0%Te7r^HkqE zB_ZTK(933i8?d?$9YPhmw&G8}kU8R9?H>+}IZPWGfY*kQf- zhcSu~N-A07vN^&xvC2xcn&oIC>CmG%p{in;_Lz}8hnsk8kvM{}@sU`pDmhEsT(Xuy z`9GNrE?zFwt9vhKZ^fHuI9%tI%}#xVTtlbaHqI?}_kMi=Y+P{vF-`yyr}vNXm!~Fn z8d&_ghY8*7^LrH`xjy@VzMVSy^xlM@aifuO_yHn=jQ39gb`zo&rH#hc}zFH%6@+Tje$Zw-H=x=zGK8l}G z|C7!hfJPybGfL^7@M2;`?<~EW(-oW-8$SA@L{#w%Dat5Eui9pmuwYSQA|dO@Ox)S5 zqJQ=w(hHTxwgrnVo@q)jNZQErRd4gN>cu)Oo1}WR@!_-nr@pzkChgO%n|tn^_bGp; z%{Q;h?3@0kU#%Z4ri-aGH3jr@=ddrU2CTu3<3`oUXMoHp~BGL)O^jZi5JMbCl`_7ed4A-*rw64qKtJ)S~ zyM7DtZ(Z2Xcc=_L*Z9D;{7(7g%Nn|ylU?BcrEG`)Dp)VF3B!7Y%xh@ztTA?%ZtP+K zchofh$HQ!ZX;b#k4xeedl=BaDuph}O2fqq;0cfyZ)roraWlVpF^sSbJf=3ku?XI#oC8 zg)e_{51v3|LRTA!-5*`kdI>P>BsyxA>*e3my(y3U&wdGs(XiG@btvcAeCf@vk;RWJ zqq+Ojb08F6FFVwrbph(?8MOMVnA|wEH~7ROH2(_PYT{gp8=N+`>e~ex%)Zy;IBY4; zaL*~a)a>Syh%WWscpY`JpGYIim(>4RFN%MEmSvp(%qftxveEvN3Vk_5_a2IEEHtQl zrW_2!qG`1?h%i=C(W&;6{wk|AZ;H~yR2JUQ=|Yxn16(B)rhyxsccEsaMKEF=HCebB z8TPqvP(Rs0sHZo5Ev~jV@Ry@kul79o?l(_o>mrkJygi)!PNm+Kw-+Ye?I`El-EqEj ztoL+n!I9AApNMLVCmxp@ZR{@5zJ2iQ+-Yz85BK9Xo~J3s!&h$+B`&;O;gK7{@)>Ng z5~Ke>d5}>?&Jy`)Ci)f^)1BM}S1U~D)-<|aHBc{&G-f2022I{~FZBvCkdGXSiFfFA ze3%wZ@<@{xsYvMZzw7JG?4E74kb4v@{%1%S;;6$GQaNuPJIx5i`&%qw{FIHb^Z+iKr#wFAD*kZ6d?bmKrYggEz{*A0i$$1( z@1g|ap!a(qX^BjqB_3xTon*BR$D1A)graX1^u-(h3tmPN=@5@beBotHQ)@9#s168r0*nb<_+)y$OjO#arng<<{{`&y~__V-lHVE?BjfVhMu6g3AbG>`N$GtY$w;J_QN z%qk&yTa>;)0>g58)skh1{Tdt{EaIXE zVx+JG=!XpO2;TOmC(OeWm1IafWs;lVA|@@_VSN7pV-H1*9totr{A1n(%BPUA^6uV} zh%WqT7_O=UUeM$gd107reK=Bgpl){%g`#%uz~SQ4+fw8>9?g?C}MU$UJwwWp8d3&a%G=v)GhaTUu zwHrsBQf+yhsux_Tf8E`x6Gf9UcKk zvy3P&QNE%|m;h7F2x%r3O2G8mf0c7^iXpL1&I1biGL5|$@d-K>TDkn$j-Kff7Dp^K zRt7cW!O@j&?SB+hNZVDLtktNAGstq2tGdcRp_4D=x-%w`lSp+l#`nux&yoieDy@9# zExMe+vg0;KGpE`sySDm`-uf+uvsLaYIGObwTTEe|!so5=dU$|vY$My^9Q6eJZjw5KD$C@L%J zEF<*OLy25Qk<;ANowE=i-N2f|PDt9EUR$pIBKopl(g>E8ERL60rY`D@$M`GTxi1`v!Npi2r(Db{iaw2cF2~%n^f`~~ zacOXFPdY?mBBk2kkBj_Mg5Zp2OJV8goO9!gulS~^k7k;Ha*Euh<&mKu{akz5T5H>y zRU*#5tdRq}i6yM$DN{-;OY41%giMxeeW-59cA%5P9Nn4BTx}=K%=}nj#;6Q}e)R>R7yo-+QzK#u zi({%e5SQv;M{Gp;8KYcZ!LdmPr+nS9!n=4 zV8u&ll?2_#lWbLxwc>Zx5wP2b=bxpF{prxLgJf+4EFMAvyOJzmLBX0Orutp$l$7t z>9-JuJj3$0=S!VA;icYDrg>NJ!9m$_TO>@hU}rsi6P#(X%`ZH7r8b28J?nnb8Cy&0 z_n2*&(Qw>1|+@2r1@H8Wl)Ir zYhq{UHGL?)Wi3mDbUGcjmTS)ow{Jd;020S|SOTuRbx>K8S>t?A?>f*NV@qSf+9Z+C z=xv{2=k`Hto6U)w`6ivd)2N;^r~bh5q*TGWwE2q6@xCI_RBv!!bKZ)l=ozes}_#OgS&&11%q267c> z2}}E4wJDgd*^b**GG)H0|86Z`G;3KbisRJh*pA^*Xw{?Ql~)_K3HN!WxWkyRZy&h#YQt^Au*} zCZLEJXwOdy5=x2eX(RlXzmr8~zo8J2o@SYN*5c8pyNzwv{zJds%?FyZ{~T^fcHSJ? zr`bEE&mN0JojLuusP#ARPck1!awN`>vctCMn%E!xq3Qpxb^Q1p%%_mLwSqcNEa$OviRd}xyxay%S=uem){a5N1wrppn-X8?#B0Da?$wg$kc9KvPD$uwux zF{hTioS)SQ-DR4WnQP>u7)yQ8*NDpbvTK2XhIBmpZ^8&e$@CRh)r_F&=q&6c9=E)} z(djt(BZ!1!`q1*Ca~JZ;9SY~rsGDoM$CqtyoQpePUKkthO;Ca6pKu`KK1?6#E@M1Dwm8D?Ho0~kJgqdV4`#@Mckr7pUB2D2Zhyt^+1&lD%I0O=a2guHtu#TLNsnG_y2< zZ|py;k$qLMCVN^!1oue1BYU?ug%9GCY=H0u5?Z13^+p}3pXXUOUw_~Aqui4xd#Hc? zq5ZWNj~jsF?t==2W1|6eso{{A`!^jlPzO&!P2j0!D6J+C$PHvf4SRI}Vi@|P1AxO| zP$BAXthonDZD1i+05SmB$GMWuahSnyh<@*>81kOILErj)fJaDx=PVCGPq-6TKs2sf zix2O`?PW#tpReZtUDLZ;H)?vZ_st}|x7GTqL00(e<6$XxS2IPren(nM*StGFTyteT z@QE9@0A(LPj6T(RW2CN;3rQtV`y>kWUAF&c`G=#;=L{JJ(A$M0GsBS#0nBKBF)e@1 zS%jkch0SUF1wezD4Ih@?zrKG<6#lM7C#`+)Up4q!@@Czo%RFy(2d?Wi+AcL#-~!qH z$%*>U7B}SRl4$;)PHPHzr-@h>+6Q-w`3r>(B`ViNPFLX9Zji-XjmVnC3s zmkW@;56S^ByrujSjI?Qs`$AqoKTOc(Ex$%0zepr7YwnFCQp+&1ue*Pr3?W4wrSRvo z8!6!Uv;1t(YB>VO40dzL;d5S&L?y=HH}th#im~}t5WLaovefJG8sns>36<)L9>bwG z@h^HC0siYT%OvU}G5>(J!1wn};nmj5Df+iDoI(+=JBJ&a;tM1^rmgG`2QQ?iu9M>Nl%Z`tgV1%{&SF_`guuheo(`Ru!9 zm6IAZ4ozNuAhG}Wn<1t!oKru$sG?4u)Zv3U(ONacv4Ld-wh4l~Ta7~!qp^4ctfbG2$>c24#fg~W zN=vEA=5zEQuBn)M$8;5bRQ>3oJq(Hefxh1(?%*j&TP>sfm(S zCPZPZmDGlzkQ62DD?8XDNJZOfQaCpp7Cv%NvJ`te#jRHqhMDoZ)Ub@Ml{wjvIoDQJ z2V5Z3YVuiXr+U?#w-V5EF6tw|Pi!>d|6P69>&H{4{4n)$KJP;9`=1mD-FtdI`pEZg zUikR#tf{W;&kW7ajyFqzmYqZ!Q$L98gMh9P*C@gRNX?7pp~!!o9Oind1BCITX)zKY zW^9VEMHRv?mD-~cl3P8uT*%w_abqV(CGjiHmuZ?*AA4-mC}fPX^b8&K>~n-li5RzGs46iv7Jm0 z@Ly2SsyC-&1v>`xs)Fb$_cO3v>x^@40}k4C&Svz3;&WEb?Y^|{V@JkR>UrujS6Wl5 zKq3z^8$nXSW~8$QL36X-StHaB>@`L+3+l&dm7S6=9f&tx@HZdDAw~DKOfV|$P#Iom zD87Rf=HtU4vHq&4pW{FrDU9-5Rj7O0M-lMIiuP5$G$rHkr#0DUL*;3tEFj5b9+(mXH(r`DBY@p3GDs7uVzR{)%4*ll!8v}YH+cwB)gEDG zg}~A0zK2p%YSTqIs1-kY4-hS&IGbEpV4^y-&#SV!)>heJx=y@ZJ6zB!pdoh}J#Mq7 zy44=z+0QGgsy1Rcc4+|O@UB-ldQ>sF0IhqE?d!NKq%AUax66$S(#qYGWuv$w4Rq19k0PA*5R z{gCN;J!mf9H{iCG^Qo!KaMF#d7(aT}*EJiverH|9T)216VKwIZdv4%}7bQ4xxaf?R zOFj$r4WDp1er4OncoLlmpXttu7UJh0aYsX@(ZPEJtCZJ!En>2^)-7FL8doXNCchEk zB;rsYUN)>4z{^au$0zrodh-SIMa_X!0v3j)wFIpYGYBKn1!7Ccnt|r~(LAHMqUJnk zfQwVtaZI>BCvh#g*E#=XkEI!saiwCW7yR;^T>OKB*NfLOPRAmmi?T-y#B?7(J!A$5 z_UiW0BF_A6oW>QVW5fQXLjiW9@W3`>P6n(tB+=_E$a7%{LBiUGW{VEJt+9)6 z%Npj2t1dTt6P9B~b>CU6V@Uu4-6lqjc#6X*5LD+WOK!Y>o!wf3Z2AF&&{!JOZ&Q}6 zlek4U2^p=CHZU!rZih!Yd#Ff0KDY+G3f@Ahil!%IRmcI>T>+m}V5gp(-bm2x6a7CQ z)*?%2PHJ{8n}}1S16f{zo?PgF?<4xjn;Z*1d@sR+E(4KB06>hrQy>%yesc|%eG`#_ zs|jTUrH{v-2XTKkmYpNxApzjkstgz93{Xn8A=BjXW3CboVs2dkM}AKsA2==tGT6s5 zwY1y0p$JAw@NAoow3D^`HyRkffz1$OZS!ePP*9L2$(7`wD|WFtTO#XwwO2lE7k=AM zieh}~Xlg!1x5P9P%Am`Vqdm~4sjogmGGlrTAj%KE_{?5XVDQ3vKESj&5LWg^b|LU+ z>Vpr#TJ-bC$#WZc?rm?2|9!=Y^zHgLvQMeQ@0?OW6ng+902`dKvEUWm&Gl*4TUro1 zHPc&s35E;+P`#w?>sF9C&i+sV2&h(~sbGf^wj0-_`+8xz87?cASQeNLRl5>RHc@PK zF2-=E;_Yy(FPRG_eAqg#Sv1@ra>22iqRQL1CCV4Lylhe=XSeywD!PBHj@wPCap{2C zcI>ti!5AGW6QpkP-$R~D?@<&hl>rjLjOOK1kEy^DO@cAWfT4!6Kg70_(fbEw%=I!? zE3LL%96LYVpPrk=m-T)T5NiQPAASiLIuKn^3dEfPz_tY(u{M|wqf9@>g&WiIzY(lK zil4Gn_sbq3hHj_4H#nLiIr&na6JAAiDNSOXyUsQ9n`Jq8DTw-MgZk~CiJ!r@;naV9 ze=%A~c96U@Ay;26x*WF)kdt>?Fo|uhTRFa5*DUkKQ&G(OqnUs4Q{QvNJoPg=1Z2P{ z6%9&1_tM9l8?F;M4?_$yO0yadgq29Xt)l)yFb%H+(QG1O375P&f6-%_S_H8zGBIj@Ln0QuvI|aq zp~3OK-rdK-@$Omi%RtRyNo^6wp^;QSwwyX}pL$=WK$NON?mv$XMuWG;lR8KtuaHNn zzATYnsSo-T7_Z|}M(!l_SYCVN1kPKs%IBSzeLAf(z%`e}i0DU|D@OC~|0t!`-vQ(N zMXO6G%LTIG#yH@{D*;eg&8S(-%4vpkSbzvMU#Y_8*px_0CG!j=^QRPi@)pP*%3)=Q z1|J(cVaQq)N%O?yN)@EVjGQ>_pr&?BWKd1iH(#tEr-}ge`3eEKM>HMMQPr=RcZ`!;5ezZKY(5jYtQQ`W*Mu*D6R>XFR=XwHx~e&Qln`b?22=m4fR3r8CZ0(6nR#{82nWc=DC zH6okyq&k8)S$Ae?`GDN;*c4%Ti@44bk>eRGkNl*08wqKXl>r-!N`LH^U#l6)5 z@3}FT+T!Qdk$pRo6PLui(8N6JD9=Yq-RO^B z%O2M#m7WA5O5TV{PGe5NAQzA@Owm?Ol}1z=>X84E$3|aI4qkCUAM}^6g7z$K<7!C) z57U~mf~Tc2jK(cPQl+HErR@etSqNk@afvd3=m2{+SE#&w2C7@Br>mv$a+Um~7PDwx z_)1JvdyyQ3%rObfYVAHIgFNhjIH0Im9FKo6#?o0m9Bl=%( zt`koZ%v${*JK93f@-ilr2(s!fkddQZD#LSpnvvw?Q);IS?f_HdiI(T^fc=4qDvt#v zDB4)^)y2&n1aw5C0$MyooyUV9+mCuLK!B&a- z7=y<0zLML*Nt$b!%KG}`M!pP$A$C6PYx;sF-uCz;j8S&?C`9FD&kyJA$ZS5~DM!-y z#_!t_SKB8Mq=A*QIp<@a)Np5cm(Creh)7lslq|bcUx>px)}tKYB;qwhrj{sFTR*|c zieZd*+0JUkY$f``@64IItBbq!>+H?JE2FZ#RCHkzP3PiFC%H{z<{iu1C zOp+W$<>nFXv@Cta?`W%6teIDHj@9%lQ|Mp+qihGtH#F2WH!xgWo9pH}uOj8%&)qZD z-&{G4*EQkl+XS1Xp;R@RR@7u65=0TZ@|+`{FPEZm=Pgw~_gPK$d@sL$*Yvh@oE+78 z`>!yKfxgAqC}=wLEN6fgL<}r(yI`+_cl@}B`b0hc<5Ha}uU_k-T2Bg2toYB-U#<>A z{mTB)?H$!mHjD-*y!U8@_JQ*?znaUx3H)6Dy%iV2I;YmauitPt$f0HbbKa#v=!feo zuWsm9PGXLh)plgLsz)wL0*F6KdpEw9eAKuv>6AfUW+SX%IDmH=_iIBbF;DkN2$wP$*7bFWyJKS8Jo_;Vh_?gC zP3=}x44q~{wI}FSq=FweEv#gLRf(ll0q||hNgfB}(;cD03?aU}qf|asc#FtSbJ3a> zVUr!mIUXmrZlHa`EKD9_(c)zI4~ay+lqr$J^x5Lok$MtR!0HWT;#d}KHivP!pfY2~e}#*`uQ?P})f z^=8-5x7z=OuaWEZ%QLf&GQBLzg(0LUi_(h+pUN6k8L;*aEk{>gRh{ZBn!sBhxHX|} z{!-NW2v~DR?8V^tURK{^N8iLp)L=&`wCy;!P2a}c&{@FPt4+G$-k_q*XzJF`!rY|g z)+F7>^n-xpqL0x}0gIM4<0mhRi#C%tzLrxyF#L8iu{&$b-_mUTvPdu(06_Bq24VnS z$A8occ5Zf_R^E2DP-}nadp8$HH#-F-dGGh{UA#DL-n#!4_jji}EE8j*(me#hm*Ecs-R}q67x-lKw zE6Z!E8#^n@`ztHM>qk9ZW64#0?2&UTE2~q>`x~n(Ypbiv%d5rxYq`bMrzRxWn zG0_P;qPpzDdg?a*Ox%hZs?wJyrx`tK16^N(J_HRlR-bI`EG;f^is(y8$wY;Q-{0MP zC^6>w7~~kT?UuN%1jt+#TSZzaTIk3>Jv}GKL?MGf7|1Awn({t!|!kL!rM% za__%}M47|xzNY`~c9r3R28rSV0e~-+rFWeUM`O+3Z0YXYd9UoK?>cRkKPvt35xw>h z{AEvdu`*HSuZ!^4zja}_d(UFU3At-~O|2ALo|-sI<^MC7a63_x6RLmLqU~=asLn}p z*C_X6yzZ`16CDJiA;Etw!CjrWCoj%jE#F;@&|RIFf|A5tE!SNQ+g*$CT`l`vEoWGq z#>YhMyIN7NICZahHSajhyIPKymzV#oC^kaj01y~#INpdDiiXfB z=P5Q7kHnMkIc<$Mm5e37(yy2;;iVI)3_1nu?f|J_5IVtlo>I%PY8nRC+;Ejw#cYA3 z*NQ2uwQ{~hF`dbHwD z3b#fveG$ArEE@xl-~AdO9T9`aNU*GA094P7!DrKVX=T(LwxClfsMQ4?O=a^r?@V`| zuYE%z3@Dw;@;++)U+jD#1-G1a{aP)o@h3_dsi+o%t z#R%|kY*&_{AiFq@$#-cF$hfbUhJxqb4+mh`dT;uiFfd9Xp~zS6N6We~==e(zRUM|O zjxy~Uv9*)HGPJdg$}&idI<=$;>A_M+JllG36iU;gG8q^K%eE@MCCu1VJZbeXZ(-i? zB;Su0oy_>1d90m$ur+CA5s?QA9F+o6xe7qrT7xRMS9bzbf{oyzmj3pWhc?Ia^fZxF zIF5+Q5J@MlH`+-ch+CTZ%(~Aw z+NF8^v%$ND?bv9u$c3~DtF}dRl?nZz{xN9MG;;mx;k?mV zuFDWe+Cg6nCyD4k(^L?|Y}5ha*JieuOJNmGQ!JQzl?yWI%^4HF6EFLA2C8eC!@G&E ziV(De1M5sNPHzl~+b^33_>yyPqYZ5GnWV(=DO*=H!~Xh=w&6NhDuEOD@e`9I<7(EC zp(=<;vh#ayUH*3xx07jSFJ{$K=twyA(R98XzvrT(^M$|vPJJ#?!{8m~uLp{2UVhz8 z^zKLM{$*^`no!nbfBeVzVymT4rvhPSG-SGjvQxnM-(@R43&cc%tDyTwJo%3mmuQs6 z64d|^01%wn+wwXnc)-FyV;P{dZT+4>%!i9x$Pf;KNG?mI{ve|=MSKFv%URm04UKQ7 z;CBW;9BVh*7!5f6c{}T!qD~E_Nfk`#zotx)WumvlkkB67ebwC1K4bR^AGgO_LVQj{ zaLU}lsZ(YnKF+k0{VzF7qV?BTyfi&Jc$sL0i?u1%8oE{l0?qwoA@oA=S{n%A{!mUH zY*oXI+|!g%p?Lwea1AZ9e}ZdY`G5UPbRSN@uP~GpEuKrV9U{EN8)|RX^MH|YQ&vXB z5d4;?=k<>-Nz2M+k{4`d^BOKeXE4gz)=Hxt7=Y#ArE^Vaf#v_iQ~KH#w}uGFzfbDX zWKFD86l&KFH;6rCz!p|9Uh(80%C>x>x`uHEq|%m)=Qlvo0qC#>n1`3D7b8+rWv{2x zH}9ipTmLCB{g&6&p~xr)DQ!cp0qG~itkd6%TT%WJnWs4r6c}c+;9svY2=?UZF4G~B3@ZfWoQ*+FTxa>o`@ySXqAc7o*?YL}b3FY!a zIT`-nz09b4PYBNRaLbWf7~VYF$n~FQQ1&(0qN>^Ie~*2e6f#w=f;h7mC(};(ty}tq z-U#KG7>)^Fq!S8a)_OdZUT-9@BekuXgY_ z-6^fZ7cf(!!9c#gli1ckVpO99XPBGN+XG>cN^!3%XWUuN8og^>M`>KeAMMgl&1^eC zwpRJJ{<82p>$3|aFI!X-q5Kn()kMCrgd$6)6jj`i>Fl}c|9R7Vv3<6V(YqvYVsEM3 z;*w6vn4@^AT$5E>$n4VIcChZKd7(!?AIryCWcz-$x%WpRt$PF?U|{82{ArCTfc2Vq zJ|!WSM-8J9Cv(YzhFIxT?R^-bc;^Y*-i(8_UEf zLCoful)^HY_HJ>>(pF;X*`+Y-v-oaS{kI^Xe9u{bUX-}?&zdZWaY@U;`<-do4Z`Eie-$u<1ap-9lZp#p z*bid*JLIy&tr$^`jJwE=Q;+A-K%Nfq)1&3vrw)y6M2 ze&Zj=Ry<@57lHKaTF8Yx1qq=9b;e_5G%PQk| zBH_*Iwxas=+C&mzDRIh`>nD*7{0iU3^}kZXW}nsSaYEUr?EU;cIpN6Ic^~0T{6qpj z*I>MnoOv&qn~^TMMf~2vVlv*A5~cg-?WbRpovA zf2L)ycp!=E{Vy-MDM;ZZcJYm-`#+HKcZT%f&7a@psUrSm4__ktBP+BO4+OpP2YG*Lw6K)2ko;&ki*1;Bco@$o;q*l-;|w}v0U649x3RE~ zVobyvM6w%w8tq~FAuYEdB$0Wf2N3iJqAdep`Z6o+fUUHc;Sb>-Z=*EvNs~I@9~2e*(fCuc zeV1jORcvg4?Eq+$L*GD@s{?E8n$Y=uoV8ATyKorJzIR59LI*QBaR=KH4niWPqh2!jmE<=+By^{Re{=w3Io8 zF!SYP-KE%PUEYgvK>r6xk}R8l3;>>SePtbTs#X1!mYBxOWZ9O~))%H&Ds+A51Jk!t zkGTOsUU1xiU+S|>x^#H@-eP(~afV8#fvut7$_HMLXlE!uM^r20P&!>9Hlwv8d3`wJ zh$58JZ_8{Fv^a%!RXt*b;XWF||c_Vw$Dtk*M4SN;_TP4ZR zDxy{tf3z~qCxMSHoe)`4r*nE?QzcGwrKFFJ8j=3A;Uchu|HvOAZOGbfT&f`1%V{wP zC@}!Itw7;lm1+IulbqJ)e}13;%lQ1<^cmejV_+bPYc2TAoEdWTCqZGoJ#F(L^jt9q z_>4j>wO#ISU@WR72m}B@ATpw(5RsKnZL+RUc8+(RlAlYRFJ2C``~1y>g_8e^2KHBl zUlSPg+j#vXrMQVryH+av1CVfxww8!XrZvIw6ST3Q6M-<&`7>Vu$8KpotS=7iG za<9X3Q4jO#2jFaTAkLImY5~$~Rx}QruKD--jrDgw*1Y$P0)%q15bF%~0;UtCe#!%q zICIQjtaIvP!!yT%nn&_z%E~G|0(qcFd@v*d7!uwK6eySi66!B@jx!KI#Vz(Qx@B-j z2dgWe%MmjJwj((PqB#l-&f~4@V>f9@3cTNyj4|Qd ztaN#4q-wCZ5-HhaTAeB2}y1fZ&woqTQSvB6D3(QEoL!V z0EnXzDb~1NI0Zxt1)iPP2+e`S8;c`+B{{F(s=S*eB(j(Bl#@QSxP_oL!c*!6qdEDLRNd za6BOPQ4gqt9^zR+{58iNM<9fWDVby@Xe|A=455Iz?ur_z8Zfg}iVM+qJlsj+r&d#!@Pp(! z>iz4;9cWyXS}9EsP^@NR(LuUg1fxqcb8X{W=Vs)MLC$9cjp`tmONj+*=O4B&Z=1g^ z)F921gGd@df+6$uXe5%bhE95GkVI)3!dov%)1Jp4&%KkKp4evZVN0QvDp@oBd zoz8E}Q+ANj7faf=Z{IQ(8qreii$) zm0mG31c_@Ch&KmhgCdCmzzmjYO;PXR;#}$%8s1JH{hbnDPfh3D1$;;2 z|I!H5@9#6656LGGypfy(yDZpziRB_35OT#m(7Wx7J0t3F@ ztDGohchC)KD5a_GEsL#Nqg1LvO+lLcyQcD&4%u~PiDDA*3=&jX?&PgP?FX@6&pWW< z3cbKV+7?4g5xl3*!2Shw1hE}$H)oT= zSFCA``JG=TTcg|kb~QEAm(zf{C9=k^*mHon#F@u3KVgr@UG;_dKNN`HnY4wk98Hy59V)JJ6oceM0r&Od0?9haCmkB7?HLQc+ zw&DwTR?|*5*3QpsWRQK$dZbf~N#w+JVz+HDVIise4o4#>j}pM>j>JXY%f@|tM%F*o z+bjk_3J6${$z2gMKGe09VN8(XlSvdix|xa_$yUO50QRtknroz}4%uXL#3IDXfOCFeQ-xAi5M9*)e*2)U%f z*NPHmxn5)cg|-#2PO$!HidJ~Ny>UGgf0cEGBnkzsiEp!s=6?z(%asyShAT&0FGw2hlbb#cGp@Ci~Z9q4o6bZi}p@XF%g&-mT%DUEPSX zCyDKg!G;xKjcZVL)U;LiT>Yd22ar60qO3CIS`)!eq5(kM$Ucif1+Jiy+lGR?QJ`t#&bL z*;g-+AlAMn)jicLmP_R9>BryKDp$*wjGTlx=vM0?7_k9E$cbda?me)5J@zC5vLJrg zg-uuz}c-doEl9#14NF=^xmO7(vqAp~#1X$BNFA^7?c z4&3XgNtArUVQNi-!$>GJ#3ru7g!fJ>5>0}p0j=*}zKv2N$*Rr)z!4Ei&VgvxP*@}y z@KJP!4K^5&z$7F|%)B2Kxlbj`K325=pEwp$lm4c}*Yn}mkxjdPCE4GAl?KvLduodi zo%`D>z7dR)Tf;^h5oZ`14A(ma+5*vcpot{FOV|f5s4imCV6a#2!3oU!5y*5&?t6no zmfSQA7_7|ubokKpqB<055(wW!5NrS$>k0n?2&BDs?YKYhZWu#snV?A)f+3zvyA()2 zLUH&{`{`1GbP~cw2 z;L>zvC?RXJy2QbOhsN6`S{D?u=aQSRfET_+7^fI8;x#?$}qT-(-h@F?mk zSSY{XFqOqP*{_6Fa|bQX;tyb%`CNJB7Akmf*uH7vg)D?H^TGPEwd^ji+J_1H%gX-Z zZxN^`)Si=y!3Ap~qTc+RbmltHTw(`f>$|h@8QS;= zMRw7bUUx(a7pae>n8*m3J&ewz3p#|8tFP_E98ED}We+)Yr*oe>bcM5b%R)mx}TYq3VWFQ76^19Z{#lqFK>PixI|L=j!g?#$1h4 zqZ>}`Bl6vAHD5!-oWER*{trXv;Sc2>!13pn8xCh2XP>>x-qjsvk7Q?_8Ih1mT6bs9 zka8rB5TVS>>duOi>{-8#5Rs5drTqK{&+~eo=kehA#A&A7RfJ`2jn?EtDDvLX+)B{(?WnZ#-fa2BRvofj=BBow)IEF8{@`Zix@X$c9UFwrcCO z6ygI8SmEE4KA6S;g^L^sh>FVsaNG<^^$wM@g6S)U^91mM_yfrzZmmb2-s_5=)B{eZ z27X`X-5&{1t=bv_6Ko`{@BkITPI2$q=K4Vb^QO|36lS8WEabJdzSu6whb#*IX2KsD zlsb4@NBIlHo19QGU-mH=DRF0imm0(!;SdtBdFVsw`&SMitt`QOUitZlrkb9rBAV-x zjG^IKb&Z!FzlJ*PDvwOzWN*t4B?a>Qf{(@(e zgi`tL)WS8D?{P%%^D}B6Z%H2||WY*$tlj`a=30fC}l8HIxR@sWpnM*5&he$_~gb77WZ8Yz*lZXl{6dUELaen*H3gNm5 z@x<_ecac##ZxN)Qn(ne)JbjXQ)k;-*sDa) ziFmt_f@~e6OVvqKp-S}5lAh|vmHJ$#mkV39`mGCRe)nJCwf3igr&2L*Dds1)u$jh> zyl$V!UukanwHd*@eQ&ncT(91>x^}K;ZnM(dwf+XSwj)5)llsY(&C+>%y+_ovfo^uA zj-1bxLbU~bdmSdtLY|E5M*9O0+$xjfz>utpwrA4pTQ(80DU|UoFbIbxm2v5d+t&TM zBk+!#P^Kc~yL1S+l)2Pi{^ITFDQdXzjLV?3lX5P6na*1`smm&piB>mrwmmy``zY}~ zX0BjJBNQ+5ZQ{|re+Bnzqiq-l&rkx`DEc9V=Gs)=Em0x zTa}E|rcd2Jq~!^2pmwDc1F8sURSv7LpuxQKyhppX@L{*$aa7WKiv{Jo)7|hC-rC5) zqax1XE&?t`uU_6#6h(kg7Ul=hxuqBwjKu^gw6RdGWC-uxYp8k~%h&YJBk?Z$^FWR6 z(14YEjS@_M`b5Njf(_OpPB!jc=pcY`5W{FcIYTl#V`aGC^EFf@_54{4bDwL$Mim7k z?^W|N--x=ut&LDkHss`j{t=#1QiL0XICJFHE**VJ7`K!sa+IMVy|#>-**@wuBGa!m z!Nehw+Egp|p}Fw3L&~v2xFx|->Vb3|i3jih#udGK59%S0A|q`%&V@}+c%-=nQ2hD8 zKDU(&A40x0>TrJd!Pn@)^82X_+m28NBNWVnpt-EQWu_#w=};k1VrwaS#R4DE%_r`J9kbxxgY zX`9#IG~A5pdUfgP)vId%9gpbDo{w0%*s1CFf~IjJlpTMfSi7PQX&EhP08tBJaWU8c zK1O6U%bJSzz|+!7&EUY{FLh|dXdI8@r7D+mgP-D}^E#)_s~i|k`#z4YORj6hz!E8_5Aqea|(dxB>29V_4a9%Vb7 zTSSBX(y#UhmBC2L^kv{f^(K@swU2S50B9X{$3}UmlL`B>paaC(1w$gnTYC zsP0ElknOFvkirQwdh_YWi|Nl}cqviHTpyVu&qR-Z;7|KfowEF`_^VP|FqN`s^!yv> zRyb07)sxAgnqQ?s#cog~7^Mg@v5D5Asl}SV$^>xqBR!b6Y~qtGbT^VJ$~2B`=(^$r z62!NvTm@B{rXMK;%&n-8_cFv3Ik_JRnQco}-!q);Nf#}9_T@p^rq)pbFG9f}#jY^L z-thQAaFpQ70pPQ;?s>lw%?YJ5>5|f=68w=AG=ioGfbsQIr6#H(a2s(t*vlW$=22!BYBWGntQx5P@IIjTzPGkamr|sEI5TyZdFnDD0kZ=1-@GMF$x`w z&N`!A6EwklrdgylwLh%9zjL-fc*Fcdu6ekaXw*`F`2M{p^vf9Im(hV1ktB=SQyCpb zRBS9wDV;V5=0BFvsEDU-f{hxD+8YAe8zBa@R3p$#-rwxrSBu6ME(m~rpHNE^I*78N zD&qCv?o`|%l>0!abp(XPFzkO>x_agGZp$>p*1yLb@kLtZiVn=>*3Hay&~0mGgwNDs zBh4*Nt)==q0HM>M$lA~vm4G-A33--22oeghoE$eu&rRpsBT17@;;cBI8K?I~T+Ia;^^YoJ8brFDz3k#~ zuu5s)vX1tocG;vfYTFEyzp4!Zd6pg3q?t*ontVSCk{AGfI%!Jn*Bn%a8FCj=piv;{ znb%e0pw_Ak!N{WOdFoJuh<~27kAU5DAj-n=xu1&u)$WI7;OF>3tt*9X$*byE8_7HL zA(|6Ky9;r{5g1YJ`doCYukAT@uX)_LQPCX)k2F8(mEwNyRzInBFAQ+l{fTG3Ee-&Qs`roN==fYSiki(6 z3u%S~JyEK&gVs^aZ9v#ID*Syjx8Doo7faIUYYq$*O9vk)(P>Jn4s30mW!cd`oj9QZ z3Oohip>s_+lh)CWLf@79nMe2_2X;r*%iEQs2X#wuuQ)O8aH$l4513w4>&b-w^|Aa zJB;frk8mP~^~}Ta4#kjo7#D#!L%@gIYOZO&HM0_a; z>T+?NjW(?3nxeMLT`r(P(#(sld(hwam8#cYup<(J^h-q^vuy}TObP~nk}OuZbqe`b z8oBKSJZsS@`+~LmOO>f8{^t)mp-n?GB*Z-Ie6GyixRbI2VdSY40y0abW?rPu{C8pb^9~vcH_I-@4tEv+I$Zxd_jBEi3>$9uN>|@7?|+p2~&Cn2p~~? zD&YQJW<6V+op%0D7pSAs`@T1jL&46BD9uo3&vozyRX3+p!!qyW%7Olq7CiH4zB-&K zVd*H#0LzZ}DdT&`+Gf|I-f4wtmF=G9y~d3Rp!6wb9TxkQdXom;r%G66;B`UDnT)Mu`E98>8&U%!=~cG!a6J_p|pYV=wkOsc&(dBKi#6(?V@-d5No4~ws{)~avrk>-89$nIp*hSCSYd8$wl`N!_!6x zb+yiFij}6qoXZlpWz|*Mi^>q0E$|0y24}9w)o-}O0lgfggIUM2rRJia=^EG}RHV@7 zv~JenED-MYnuI<`0-%mVduKT*o$lz3QjyNew@Z7EM>NjrK2F2x*!Ho>9}RHz{O@2lr}{b9j>GPw!ns{>qcx|DPdlU`4VXp&NI&(2b?7D$Y&(Mg@Vh-*NHys?IZFHgh;|oiTNO#hKrdp@4^IDnhhk zY4FUPk&x;k3g=3B@82BiQl$_M7ozO7AYVi=^2oW`ULhpUiNi2Uz(<}Tz;GOuMmcw) zMRvKMlyk;S>?ueg5-eIzks$Ac)PPl1XS?Cd!X-4WSzL_C&0Cc~%tOoFgZ(Mt z&s0Tqup*(=>O>=4ZA@Z@>)I68ybdA$Xxm9eeX4mX zm79*{9-|5lP?P3B-WRFM#emKos?_V(w`-#W+l#u}KBA*^Mh#r?XCUy%?|5=NhSN)m zdcnE%vYFdOXUXr^U-T)rf@DJ=dXW%0MVdPPo5hpESAHkyL-c_PZo?-U1W$Qt-&*Z_ zV)sD1>%`BWrZfWa?Ve-)@h_gjXbe@g05MUJ^_ekmFTtzbPeHTyvMs*fdYGB@A(r&= zN>cqVso5*#Bggscsrc+&yQ>cHne0N%FIt~s77O@Zwxv%^72bIG>*nITN>G5f$3NkHa*FiD}+QTfc!ps)gqEVpu*3(!S?-6a1=lH;2`h#2T`iw<7N)Z49nc%3mFcX0p7@4B~tzoyfaN5Dy6!K(E% zeSJ{;6|nX|v_WL-$|st^fa8G1kj4wwz5v(Sm$(0W`FH-w-;GZeo9D@&*mkyN~_$5#N`I zT9@?6`IPbV>whiH)!X?`IF)6UMVwa;!>|OA0->A# zHN@`x8OonNaYM7>M(>(D1rD-xW`PhzQ^iD>#OiI!>b};Tle^TwlCuM#Hp!bpzo$># z5RTUOy7?+Jwg`EG#DZ`-h&4=k95o?=F}lV?7^f^#_QM4^j=c}bGW|;rQt%ONAFXlf zcqT4j#?Q-@6VULW-a>PJJ7`ogL}qL0He4)nL?T-rHM?NbEg~#? zeN#!LF%HAaaSci6n>#lN=Ke8W=)^bfThI&YMxAC(ru(*2Nk*KiHJ@@?TCU zMVikrX&6ceA|S)nfN6Rlz(oa4b*wkm$P;1!2uZ}{$cvxQXEXVI)%`x%h2=FU zl$?21$|0=w7#8ny<%}|qv;#vWbxBU3~qgGz-IsJJ$)x39wgBa8#aj&H`=AF~ss$-ZA7cw!?@Qhg0bMCL{ z;mNY!nI_oN?ydVz&$ySq6g(I6`dq6UgW7{O*uUtORZ-1Z(hqjKCYx;ZN5c5V63?Gg z(7zqB07rkjwdz5i-Y3=aU+a2B$G36cjLVQ^WJqpm1|@8b$lKvY`$6uN7Aj4FNV@0j zDXw1^aCYsaSIDs^dHnUAd~K3kwaZ6expKF~V*?YDyhtrSD)%-2XUQs=mwDmAm;Cb&R^m6@>!uB`vNl8$V|`R z7Wf1fpqz#2>9dd#%y`jSHdKCqAfP>6pjZnah-4zlnQ4ltP2eID#5eXslI2K9?z55N z8*Pz5<>aQfTKk8Toz~-p+Zi|YIGOELBMG0qJ{ivE#$$hAl0R=z<0^+tg&yZW`%=M% znjBcVcWUlEPM<_y$5R7;-OwBS`(85%`g{5Sl{9D-SD)Jo_1jLlq7_iQn)@%n9R?#q zq_T&UVcK|s403`5h2bqge$z36rTDyYwE5DAzviRclv(a{f3-_o&26lnzDo^BB+c;! zKCFSy^xtZ1v$aH!ucP(3lfm;%+A8C0!{pP%oKeyF2PMWglc z3no4Js{dfx*Fv2a5CQZdMe`#^Qb3p=Az;BOHV33(fG0NALbQs&QR*}@jytOpKM|Oy zS0|1N-O(+V%e_>2rSPn*fR*>F+wr2Jz6XRch>CG3=Tt$~WoA#ZN^B|0n{9fa^f%kp zNt24u#(DX8g@O>*czkv{AN|e#HRO?WGXL%_-X`uPFSl&CZ%4r+wR^~!XN#{NExrzO z4g2vTk4^}esRzTvcSYrKge`rfrp1Oa;z8+yE!A`n7}@SYD~`Qh2Edvh*6O5 zKBpS&Km(3&!UXF1j^2!-a_-UMcYiD!D`AF~Q2aC`=`1SsENIf$fd(~TgU%gR#u>gW z7*84Ia2ok|^#&OtL!v^um%G>Rl4;(VO*zt}9=mWFhv%D>YCg@uYl{b|<q`;p`HDAiZ*m9S_)F;i zmof+Ut$T(unn}4X{WSr9M_1X1<4cy)s??2Vji1z&Nl} z{OCRf=94|?xM0p9Uwf|eYP6`ZA^tz5=j6ljKNi~k%2?MMa=AVxBLL5DuGFl3`0Wg= z=)x0*`|vO|MVj+(Q7Ubp0n>~mpii^=^%6@jaRZ8Lin-Ybsq~d@MkO|a`WjSH9!wh+ zD87rm7ufIftKmf|01^2HEJ(Sx9~ARZ z)896NJ4tYACh_3n``1_6tfVE*q@DluF86z5=ZUuMY^|b3FrGN`Dm+;G$vX~0+uEU8 z9?0#oBqdT!LB=sDk}+A3VJ^o5G4M^^DinkmKmqROq0WC+{t zyf?O-`56s~szAImlYt`)5I9a+f`muv6&^fesf1h7E`9IS)g(o!sW`AWQ?eo7?#4_R zI6QeEJqhMYVZsVmE_$U!whRxPx)6ORI0j)5>dgmiWRxlu>8cK^Gjaz|H<+`*52pjRS zt>^gKo9wzzc}ci86Jv!TOh^JI6)jApF{m>2zK|mI^RrB$1dymPNEpZEPU&;MM&w9w z6KDpmyzl!UoW{mkbB6FNK$8Rp20^b*GA6#e(4~Z7ha=K!=HH0G zy=Ks}L<@#4Gl}Cqyc{CE29cVkp!>oF?pg#VcQJcEivA8667V zP5J8XJK$F$9xVOyx|qVE-#-}PZv{|*2kqjC*m3~RPT6N6AlKOZfy}p~E~BSL&MZqB zSCF(5p&i*wWKpV0W(K5|$?s+L$G!KJGgF(-);DovO^mNjm9?>986t#?@QM8EB6r74rK_@K9JN5(wAj#RCv42Pr6^8@VCGNh!rN zBV~d_&pV47zPkNI%+`dFT`T5Tr|3x>^0ORT>do=$TP{`RcKb>vNNP%o>a*nSZb@RK zC2?i=T~Fzq!zh=9?&`B@A)xmGQId4$keF{&QHSudyzbP`HJ4xFvs)pHcXAfLl0W>z z@+*53DL)EQC=0Rxs6w$UF?}j|805z-&-czB5Wr+NP+qFKXVuRh<&rVN%H&@mz1(8* z43u!y9x!*rdl4jz)l!m92alRu5k!^9e@#^EIKYb~51~`yfef2#xQ)7`FRS)Iy_GFB z)%kE6E|$m{OGLWEuqk#D7m)!XL_YPz7y|;X>dk%aQTJ>Xzkmbx*^}%H8|<AK&k+Fv5mEK0dwCgdH!c`eWm1YXIbprGLV5e3pQ7OI{JdpB}ov-hm~Vm5ol zHrf-&V1=_l>lf)^%3`N3c_~-Q*{CkV-uduku=ur4e*GevH3<^lV!7~1N`%O9ZP}r= zD58;x%baR1R-}&Mb+V zu~$W+OG6_@lFsdpSQk+qu}6@&^5#KH0eu#+w;W&xuDJkwXs~cm;kyD59~6{9XL^qS zWe7huPV_?;C8Ui~vprYY&NKsakS7SJUJ7c-4Ov83QJvx6qAUr+NKsNVspV6@WWy9^ z%FJA@0(RcC-q6aGFn3~`T8QUa-%~4(qUke^KL`Th)bw8xl9qBWc)OFieHGg$xvMCA z&K5#sqG(1EM4g%TDnoU!NOODaG+)h)q1Ei-59wKwov`&R@WGnHf2+3^4hQ74-A6S?d)|(rnZQV=Hx)l^zPiZeRL?#wFw>X#QXomuF5Sc|$R*RSx_91g=QgsTsn)H>|PJ%wls|TAVpeVhPpXzZ^Q@9t#^3 zBXI6>#U&;+_&pLdNNYGZXBM&iV;{!*F7c#Jo`^U>000T33?gGQ^101;DMauruoj+$ z6mWie+COjMmUiKA;T*NBLH@3Ot~!eOXm{0nCny4ZnrBIkb&Ax(#mb}WXh%*h3AD^kKYySl?p>xQ(i ztXk|Zla<#5^@;0(@*BrNc;gj9ED+{nCDZrLNG&`w0@}#!(CgEeMxe@e+zRn|@ID$U zq)MzENIL}e4r>5H{65~~b{e!F7<6UkCP3BROhiaK+n7_EGwt$+1YR3TL1bBYFXwl& zgJ?~b5Smf|BZg$G#tkOc=zQ^60WjBxY%HV+2MB%4>2wx6io!k zb}x;I;}fR=1a%nC4)I`|qywTwm7gaBHtL$h}ucXh8`r&BQdgsHg{=ag!9 zi3E%@6`KI}Fj!}Emn;aIc;4r%noys40~M%)7k%gYV=zs_G3DpK+`yXKe}u z40SXH`Na8lcpUkCPI8q4Zq>__kOghXuRZ5m5iHjbl_9n_TmR7>328|K0-;?K!N2g( z(Tld}(68zHD;ROr_;(hM4Vj1v5MvZne_SK^kdqUGO1AXA+<3@;7EikPW=7y4m-GDL zyN%Na#h5>g>3G8b%StB*AZ6Lq{)KTx@~U)dsvMl>8lj*9WudZ&X?L@Sr~7Cy2VSpY zXFBZqHQ1%HcQMIltrK{p_pA7 zH6GjZTP_uNu_ICfw1vk9TFod)4=(A9M3zLG3knCiyX!ENSi@1erhO}7#iO9}QiIT$ zsIN(nv!jm`mfgG6xP|>Bk11zTJR z#=My=f5lJAha^HBZmr+!fIlvK&8Nz0eSf!B6EX1obh@C`(3!{&5hwPpb0o0hLPZ)wc z`0iWQE`_5zmA4A^nySQg#}&Q2aC^T+oInN}?i88t{Kh0A$#yXE8e|{fVSkdsQ$=$q zbX7jStBHrBQo^_~bETZihf#$F3oqNJ(*U5B-uM7MzRVr>_4BAepdC4Xy-epqj(B7H zJ8OwUtqk}%_cSu25TNG?^X{co{@Nech)X$!;LM|D@lZ z<~oq}IIK4fdm7A7lfs)UD7PD4eu}5_2@SEfD+sTysWgn~cgCF#8(%iLdL%+}H{7iu z>_p7jdvYsfn--)PbjB)Yml@iDB?6Zh^<}NyD+M zk268;1RG5*&ZPhmoTGXBo8hwpO6Q$RjEOGJ%K*e;G z^Uctc{huyKgKtk?z3nFV!ka4QMfAKg!C(85Vq5^T7Cw8_={<+Gi}+w??v;Xjn*~j} z=WZFK>g}V>v|Gr^a`iINwe9^M320;L^H;ytyB`;+9Cl-5J;`ITm_UKp+UMt~qU$3j zk<1PUMyO;jf8K05^t{fSi=@1}$W|1p4<%Nc4XFolv=u|VzxI0mv96^+C`^#P&xpZ) zacI`Wi*jBs3Y;K;N7MM*-ppGnyj32p-u?(#@^{AF^O^bTxd&Uo4FBkIscIycg>ZA$ z0&v^wlSaiW*-UT~(BgJ=+~}AMoqJS|#U}<#U;Q)oGR#x~-YEYT>wNHh*~uoh2qfYF z5=F51)mcy3?p=S>rDi(U4%DRtO2kr#{LaeUA;}4a((n6qdxXMzFSIW>jjYbUA^;~N4aydkAp`qN>J7Nv6sR4at8hRnc*daraqLo@->Xi;|B>Ew@DWf zNNMd^j5O)?QQuRTovk?Nw*&X8H3E%Dy))>W{9B+_afKek}AG;OJJK0?IYd5MGYzqHiw_ z-Zl7oe<3=$-z$BPhA&ubUW+E|445%qeJrD;)YU1J)Unh!q#HSw3s7mSKDcu952zXdhlZ5Pz zxa7Wjg%CLuU4X?@tp1)-n$bys`0$=(eJO$;$|lr^g$1O=i{9^y(k0oUAN2|KiNtfE zhoaMr%DX;tbx7C~x{q`{#`HL=j3Df?j7@raQZuem<-s;7Dg=`{eNa zJX6lv>*;`t-aOzHqE#-ub>GkUTWstB_&8*(<~*kYphSD|&vna$L*&)CkgrG;!GTSE zZzF{;$+>Dxk)Wjbn`#o1x;bRx+TN(tkGOYJd2PBb>E=IpmXjz=X5Ts?xF5qzQP{lJ z&6czr8B8ZI73V@8c;ZM%)y}2H*E#|wCP=~K662=)Whqj_f?icp$-7>We#1%?d1VMZ zSy4J(>hSypl6G@%9Hd7th9>6v4ZHh1i|PTuM`|r0%lISLnaW=y*PW|5ZD+tdsykyf z>597mGF5R2c*CQzn<9-oEz=~O^&Qtwr1G@o^J#vEvmHUYFC|4kEn6lRGx`7ni?mdM!Q77uvSFKaKmnn(QwH15JvaoW*q? zrE#RmJ?0_)D%$b~qh(WkX`&A5JRhWYCf%N=@^;+<)hT1THoN2%kHvx~`vY6DiBc%D zDk~(-4P2*BM*1RO^M&~HKX*A3znnIEDL6^Dd0PQxC(_O1j!Be0hLP707RdwirYMQ2 zVH|!#@OkDOn%Zho+)6#7*%ave)M`^y43jGj|IomW8e*27i*}_vZ7N_|im4NCNmuX} zlc)|!eB>d)JFQ>LI1OamOxeubB>X$p`Q#dmZL>+~6`fb!E(nvQ-VvB~8&X!Is^`%j z87Aip;;9$CyLvEuyI8s$&)ai$>GQS81m#{o?!d^56?ZIMp^7Z4ltRPoK=WoW*}C1L zAGZtLp8Y3#)Zq11ALZ(oubc!=M$J1`>}0$=vd*x%+7uoHl#PJ1**2$tgOS`DdJx$m z1tMUS{YMr<<47PBN>M$i0-kPx5iZQ$80iI^;Kvd8Xz~-s(vFh6=ZhEEy5zpcsBWzM5@6;TOo<2*^gta+q&yRmSHNrhX8)n zWNZk4P$mUyW%r^by6Pd?Elf^JvI+TYvT9B_6M?A*p!i7Y;f&!`=R~2Sr`A~O_f@Vo z?p7#=rOxzRQpq2x+2~x|bMKBuDJ>Xqxg{4o*&aGX9E;xmo71D7bsUF}d$G{bZ1rTU z6bJtU9G^c1Te`VoqROCwg%IEpZ=iTb40H^Z&vDHW?|7!v9)9t3fAv&ID@p1spdRzI z@LcN&1^la$2pYergLaaj+?-@quy*4qBnGnGjn5POfae?FAXw&Fd$LJ)4|JoRIf5ah z9u6P=?Pb7xNS=Zh!QhykW?ka_O^3(pLB><0u7#f0K&RaB(jtuB^pZ&JYC<7 zONe|YFMBz&FY_~^$XbfWW~-X(>8XoSwtnUY6u9pCt?PfZoVJpt4>&$oNb#r2_v}oK zydb6L3IwnEst=7!GqW7={{XpwlY`SwIZP?7oC(;GX)>{39#jARDYl-%a?jdyk~SWp zSm!Ghn#UhA$^E>8X^~c@9Gikzl&VD@3l%ZSH zj1)8V?%@ijTd3m~U5IaBb@j#CpZN;7Vh_?vHpG(bu^uPYvs} zhx1QfiOxHD5+-f%#>$5*kxf5&uO&#Hugbv<+vknn9Rn6mk@ekcD$@I4isv&f zpuFUzAnmuH${8C_?^`AUKTKf_5I=<6d~=eXT3d_-!A#=d?xXm@V**jPMBj~iuvl%L zO~>CDc9|*8-@I_{6qD!Qi}+9H~OU&uYYY-}mQGUV2wh!g)HfB+e@?Lc%Z+?tL3tzdMn3fCA}_0=MX!1!`tj8-;zvP=np>Yv{<|N7aMlDH9= za5i`+F!QS;Ve69G7V0P*d35?3W=lB@evtLT{nacJz{zitQ1` zqg#A$zFs*px~#d)--6M1C(s@I2ff%=H(Cc+2AG$S z4bBjWY?wbGArHfm!AxM*4YBT`L+%8@xLMmD@!KbTjAI41DQ~hP*Tx z%6dGX0-tPinBg9Am_MMz`#WLSG5E-asQaSO~olL!0}))o9qJuA<@vgf}P&#ou0 zjJJP3*AO@w_S>I3*f8gha>GYP^q*!8ANnHHA*!!CiKE*b$Q(Sw9Y`M5B*s>@uwTM| zsIJMg{}vwcT^T}VvlkCAnTp*ZO6F@p5=$ifvXMkKXzU2rXF{eqqg_91^G2GKsOF}L zEC*U1MPoy|n3KO{D$5ugH)$|nVLOs*I)+QqOe@KHTzgwX=j3f|CoP>p^Q0>LivfF;#^lvsYm>|aLPQl+^Ho0qYIBW>C&9ZO&Tz!${2ymIPwdgR~bh^eeQOiv*2;y zle1~$wcn8yEk#i>(4T?a&v@hWjq?0d6u@$QMBw$eP#>Wz(re-W((Z z7pjvBBQ>B0`{Blb+Px6MNEfn|y+$n7qLj<&S~Ex@Y35#AK#DAC4B(QGY9FYtMx{+G zg(!AKHAQ@k}GTF=yHgH^vJqP|LO^CFZ`@E6)} z&vE$ciK%cll6KA-Z0o??|2*aCNZ_#Y<&nTpaEA_%7v*L&?0y@obdciW zUVtU!U_Gv5IVKWheem#0c;DyAvRkkMM*xW$LCrBywQNE*0Uoh!DoTLNjS2m+{IJXA z)fswog~^Fe0W;F|f}x$+<%ljeX1@iI$1oeg2gRnT0m@btxuPYDmUm42qFhw$39w>7 zJg34sj9+|I1672F6)_P>=C)B>TjqCl-o$9L1cF{S2YQZ6QYki0Y^wk!XT-Q}kVD#~ z&w7JqQl0fDe+qCW(^MuH$U-u5gTiS$Abs!bZzvlnILZBpjj3Yt(_vi{c=NcdIFZMJfpBNH)km4xmmA=J@Mliw-Vkb( zz^@nO!3C9&Z{p7=MxIC`z#Pfz8RR(Ar?#F`aZiMAwfPMaq0a%6#ch1USjqGx> zr6JCyE||{@lw%9`76a8?iP~XMb>i8AxcK*%Tt4c`9+2-us4*jaIZWI?o_O&6xTI?2 z!KFwS`X6_Cr1xH;U+i61Cd?Xqc`P9en$6M0Xtr-Xo=YiMp>P;BtBEo%TxWBb|GY5_ z@%l96&&@@P`JSn50>e{{TKRdl2y#>=bT?l`d`x3mPsw3GQ{_@8K^HHl#nFA4+afq_ zc@Mdl(>0_b*_wa#tNyKq%eMk9#@!~tfKvPLegs}VU|ayc`b0PgV)@XP^RGaZjIh3Y zkLwy6oI!zeFCg(!d}mv4%SrK7O;MVfWNQE}eLB@l0p@^*MdIK96+S?~FkN%Y0nBIo zMeB<$$J~)AOb;hQg32#N6V(R)J&&wkkq6h;=x**!^!5VD^@7qX1??7L|0QsUUGCd? zxH8o9Z!y3h=ugqX-+1SkszdS1P4#=#!@)-)J5ylN6v)KL>0~hY8NerxEw=P z-0#mHKe*oiv*)u?8$S0m*-h=UeMG+>;wfASIq2~2qdtAP| z3`Z?LPc6mhRCM|_0oE2`COmSzwZ4R6VtI^5Ow{!X-5)B9Cxu_));iSXC?NYzc^n>c zu|~E%zWHh!__Yu+i6L zfr&gc1}ZIXFedqOts%vBZz<29R@CwIGmi|I7;`i{>EvK-X*Vd1edhwbZroInxOYcx zf^!O9)C#~N$WNj)QV$-6t_|dJEZ({)`)4F$T-QFfG9575W~18n8bVu3!~yV>wC{pk zyTRL!NoDPNHckoB302zoN%?UBEg*r?QbImaOnCODX7F;PtybZ!^{8pw(di$fA%!VV z%qxREDCsx?;zv*Lc>l@&raK1qDsE2c7YMHx<2$WpDGJ{y-`mqKCh{_`@oC_*+p}x4bMmInXWc_#7Fe=T-TI2jal%Hv6q&tCXX>SZ^Ii* z)~W70v$s5b2{5rrWAygDwTs-tD}u+|yuE9Zznvjtpv1IMXtbCfH;V&9ZxA(dd?Lsf zPI>arK#}k#=OFQN6ICYm;^Y_ibAhB3!Ve`%?Vo|$38-u4)e8+}M?_wAYQN%o^7L)Y zbRduoi5_dq1lhC0Ndsr*^d@TiPF#Rgj*9iQo61x%D7<@>N|U^J>g^IXCML*v@-F6g zHgCdF*}1tG#QBkD3?!YwlF~3}|BGXbv1cOL>%z>#0?AB2vQ=Z0vT?|)k0i*vcNe~(e{u!DH%bkz?8_fK36_`(A3^~>5hq_C>*o5vK zH*mZMO<=Toq zC-8O?2}qD?SH{#;%!?7Z?RAzKQTC8S^YVn#|hIbG~^!KX;6Uws+4?4SCx znrB`MD%cl0gt8wHA;{xnf9OnC&G~_Cx!31;`=G%i@%(kqAsPLbl0$MFaDZaOk;KV#c`=MRM%atZaxz$ZNwik+Z}SK-fF;h| zHA^iJjWY0?GUefJhC(r?_6fA0gDZYL?$F%H0o2SJ#(kQyF%cn^jyDNmWQe`8)Qcuh_;^1@VOPx(j@k`(4?UTrSgn>c@!k_w{DY>#nq(A$6$uqK*>*0J&O{3wx znr4=vQ*+6NfcT_O7+4fvIhr>F^W ztH1EnxUUP@jO!~;gCx233IK2c^O9hnls^_X<(@Ue=thUCrI?~lAPB_jChvjL5T7aN zO6aCJqoPyW00R}`J!xz%c|C)dB;edkcDQxILl#FQBXpy0al?=tcxC)HNtE}4hDM(Z z0l-?z#o!ZqOr+!rJK^Jbk#8aELr%^H8u)~MpIFuozvT$>A+IvQpWz;eJRFw&HtN79 zm5e$&Elmsbus|Il2);+FLFF6GunSSsGXYxtO1{^B*>s;QT8L4$tKRgOe^QOis;RH- zm){G03g-5I{7kx7|5UorhR7*Z#fPdFj;OAhaAhByZf&Q9*9CovT}=H1EXZB6bS(O1X`UQecoG6I(B}mp(FmP`MuJrGCm>Bs32M z{}D#_fywjf4({16%t)`u=v9b!@}^DF)BWGvj;l%all zQLY96cI+$`ue894T3KDsUG~tdyU;=XL_EmEXXqK+1Y*VEq9f9&`FhUslN?8O*_6b( zzvKB$;+$oi>Y#IV9?*kA?Xc@aZ%y6qh z#aJc+C^YnbcuS_C43)^?+&RyG_3}{l=bNF$BU#MrW$A1F)qUJ1(Xmkgcu%No>$2J_ zUkU6h_C zke)F6u<`}q54TpnEnZ{9TI00Z)5(Y!WQ?^Vr-ce+fOn{q-&8{ayk|H~{67AfLrIz%NKVB_aY zTp_|(EO_o7y6}pk#D6C~!i2J5u9p}ke2Zn(2Y3CyPwSK!Hi4_n3q!cHUf2B^q3KG| zBj#p%^lIXEAw+5y<;{ZtvL)lmA}ctk{t}IKTj7EYxk$F4RDBl?^OIuzhf=Pu75g-$Cr(sLugE$eQ~07AJ>?hn+Tvb#u}K zgXbk4)af*x9T9m>NLIZ?WcCi_+I#WmO7?HJBkreBedJz#QtX(k*6%TY${P4H-H*Ol<gd3Hzs7!R7#{#J-+qH(00}oD`He3Slm0kd)>4i}xW0c)02iND2)+M+0B<)5=FNe~*P< zGci(OfI@gglkb6M0)c#JaV|%Ts#9msO-D6oFrkOsZ@%yXb2ED6*9-j3ix&8DL zg$LT<&DseNorIA@Lfb^PbA#_CogAC4gp214EWah(zM&np2BlrryJUJ^j{z2+0NDee zSUgA(0GXxWOz?2ULM-fCTHZeC&2d^jfH|)VB#Q%`L#Y7$p-KA|V1KY&yUN8|Apctq zH%mZP6J(nX5!Mg_5O;|rdFiLcCA%1%-(0q^al?iX!?&YA7k)r{NVvfoptXzXmxk@% zV5SZ!54QJL;^b0W`E_G<3v>_gaJr>VhrT@`WF!ch+3pbO0JgwEV^Q!VEL4FC3UMX} z8{eqY$(E;s0#UG6_l(ke;7I`ZuNqO2F*RN_c_&rq?Y=Bx=e1N6JeGO_3EqS%yi6)Y zFlRELLWHPo6LH|nY)7}8_TzB(ZPS3|_@FSEUdqidW`b8&4xdE;Yi#UaQp60%JZ=-> zjDTPn07X0)jfWVXR-sQvqyUMkjEnX-NWxZ{a%0|#-0fw!o1!XMQHHsQ0GkcbNT!DL?xPp3WCgv?9J;Rs@anSQ9RV(Sz=r1csx7S+a^8$vlz! z;QKEsE@o6-9s+Q-bF)h27y^^=%SB_d={7xujvX-9(><~MKF^2EuRFl}hhW$6p;ip0 z6bHzF^9^M>NFEDKVlcV1!w}Fcvj4?g2Ex0fe-gFSd^v%29#k41 zEnf)axLPT8SeouXGa-5MetOCCtqX=BKraqKAGI##YI(+=`(IBOd&%1epp z%>YGo)NCGzh9!b$LP6U5fSJa&nNTpj{!~n)8e82yR6t#rNQ7`(-gwU!<`A76q+Rr( z?i?IcK{Ihk6!8@bT=)=e##70@%p*=~sG==JMpwUjZ$gIx-t0`VXp zRFjm6fffVmFa#sxnGywJh&~#chM;JcDwON%n)>MEC-!#^HIw=tkW+ zI=IXMDV7x+EmyU$tkL$P+u+3+L`#8YX-8K_hd>L@U44;^<{-^Euss1LYk7YCoI&jd z)Uv(PmeCmkc(}O%Qb02mJ%a~G3REmLk%r(tHw3e)+WzZRrD1R!^D`^n#ovCJ7CAmCDR!Y!+j<^6LC1GV3U4Db%OtDVGL0xcyBU4!<^owN4b^-iU8yG!nW~bc>^9r zHVLJ(natMd!s{8Gun`N)NbSK$z;Qdu{}Q>}Zch{UdfG(n>&lb`%6S;X9EY z^|KnazC79(Q?C*8;t_3Bdrrvgu>71_ij(1}hQp|4%!`Ji7nYIJQ)wfnBLt7+8NBE# zxvmaa$eT%MGPYcS0m_58`JivuGhjKG(kRq_1T1t*OD>%tpH6?|%p6u&)+Ojd z{J>3@j+0DxxLeo`1CwAw0jO{OuPu||q!R824l|t=b2SGO6P^tk;`fUUs{aJdO%5n_ z+bYV7pN<#um?GlCJ5+8@BX9G>zsLmN`8dCEU}4|hqo)cK#+mO`Kj%g$KMP(Jrh>D~ zwSY!-{vExD6@QaFQDNx4F^v`0VgA&6XUM4ojpF_1GgN2TGPxVxz~fI|Re8O-Z1^f^ z^_^kQJJ$hyJJk@(=`0>ql=vwvk1-z5q3J?^xU@sRyk|-)yc;snFv9bAeZ{KeN4XL5gq?6dnmxl!r?LNJ=3VaRcj@^v@OQgR*LP#8c5`O;|C0wO_g5X) zs3;IXeV_9U#-nY*@F>LEAd7;`0R5!UGb-n@3zXj|$SN=s(y}uB*7s|9(cr;_sJRykH}= zbVzAoMr+Zv*$k-QF6B-E_l1Ml`}^^O$1IWnj`qgiyha-6YiQ<;^B-4PfMk_}$EBTKekH%BEfw#QlqZtTyZ>0f z^xcPe%3q5`eo>14qNGKIRV>5t-M80gyVR3Te*Agj=KrJW&-@P)2!an{0!I^#0c4;A z++vCDXOzKt#IO0sJ+aYeNcEX-dCKdiuT#~}+ z!KV;PA5sI;dF63+qfn<;Ii&_xj_qSaNhUs#B9!4=?Km@!W>TSCf9&=&pOSkUp5`QV zDkO11;g7Qp#L2T#m`o0#ueeY$mo?S({eIx&f34^8KYI_Xh0XIp%E?2q;uHxvABN!D z-b)7?BbomZcrA+$E$BIB3cn0~9iEsK30o#BPZmk;u5#Lj62wiwM_ba=A8Kobb)Pa( zF`OqWMPd?BF`KG){+wC>8B=~4Lcd~9b6Lu80vKUnk%vk{er>$>N=kTAJm-8fwkKb^ zL{4MT;3Hj{%e0wN$E{n^KFZ?G0)XTuQ);sHyV^leKmhtfV@-(>3#W*48L(Mn`s;?m zdH#cqqSo11e-3qC-5kY^KkdUg$bS)-jDb3Mow73cpeF0__ws6{_16-hbcGefX3_o4 zLNKS{X!{|X;t^FmgEv=|2wu@n&eP@-kyw;@!_CsAO?G9S>%PULq^UiR9k6qU&0>0He#F7bXiL!BHpe^cfU z{30(fid{TW%ixDe%CdCR+XNL*%-aPUfPcf;eKaOLz078+DI3o_D z`lEoe7xaQVnWbN&;;dSlhppJ80S?vKg}0N|IaThU(wJp&JtTy>CzXi46ShyvZeimx z*==sa8fD$tpD4~)bHp=192SgLU*m7KyYzBy(@<{{k)Tg?vEm8vJ)=pPIY(2qZ=Q9l z&L5)Ql9S+w%#*73JvaN1oh#xQ+XHdR`ZWKGH(z}2YkATC#eWL}JEK~N2K#8?SKOH6 z3k#NiGHUHSf^X;dTnL9s73v631c4y94i!aUWml&xT#s6JqoH- zht-w4KN1-iKF~6hI^}d4LmU_)Prl@a2e!*5B>}yp%ZHjbn!8>-2`KDcH~uZ(echx` zaa(YdrK5hJCR<_DLW)bRxsSETGq)wh065I=w>G*glw$J?vkj% z(fv!E3L3;+;g%5w>RzjTEgJy z3UeeEI-qRejgC@HE4ogJcrR=e6X?9oQQOm&+iiRkE5AoDF`+|*wm#|>S0I~ZM8YsPw4A(mf z1g~0r0paKJg7Yfm)&eZPEzK2&LqL3TB)-!bM#C2^tg~npDbcm)ZkTVKR5-3!KX;u;&9Yyb+`A`UJ#%6Jn(9)9oJ63KIHHfH25clav zSE{iXL6##cuouB@MTy(%56Q3M+rd+fCO(p;6sQbHekL_O?dEGN?!s39i7=7Qeb8de z;Jfj%FVvy%8=J2*$-T5p>N00oq_LR3N`?i0`@d#}A5V)1SHepZ@_p(_s7Hm+5;FiK zz0cpk8%yL?C1e=B3|D=fMmWhN0PbzdYZ(ddTf%_mb`DjE9` z^X#8`JCQ^IqqFl8?1nPUvsC^a3Gv_?&}A{HW>#(GXkaFu-z-r3^T`+X7% zU=zgKK!y738}V(^nKUwy{vIp z`{7oN`ktBo&eCj8kJRzYushU+xi!45r4LK%?sD_S@QxfwB-${i&(7j88f?RMGrpxl z>`W^IQTFgZbX5Dp%4_*$T8x5+H!q`rxkDG#$OM2KBOKk$jzd+SH5XlXDBS)LnRryy zW}m!Q@@wFt4BVJ&fRHYivciq)To&2z|N)&3_GvK0E#1N z0(@)`tlmoPM5LoeCD@4Yq>)GCfuSRw%zkih1roCsp!?x&cJqL)kO^OCcRTwvJXtoi zb^?+YE%#h6T7Eerzg00ai%N2FFzNVPTYySxWCLjoeL57ts$$uE+^NutD-E;3g@N8#!mtdAMb5vjJT+4E6 zj;9lsE-1)b%@;@WjQ;RZXhI$8f{5keUE@<6^P4>PiIu3caw){}5fomMCObIHC$shj zvDY^8c5M*u!eYd1V<9d1`Z?U4TO1a-w#*uiA1v3iB@KkVx%Ehx?aVAvqSER7)`^Z|HVoPt2@gZWCzA45UUIYOV1Ms>^2FK6u}lzH7Pe0Rv4i7tp= zs3kJnpkb4D9t_h}D#Sm!&I#D0W1BftFo7Uh{f=SYdt0 zHy?X-_2k;|xbMHihUdZG5GYig221F4J+N%Jn6iV~N5m_|Q4ap#BH2A!n zf-as7+)2{e*Lx5r$Lj=)PI**SP2}ANX(GTiuf=4-xSu$IoIS}VOKMKdX#jskmu!-R zPUC?@{(N26G@pT(-GEE{DW_LFFtRi%o5&?;5Z~eq z#S4r08^yPhh-ZOpr?y<$Bv2HiDNf4Y0zHwaDNQj#S~dc?@Dj|SoVNN9Jp%}@4p|Tn z+`$v4iTT^1WZbW|x8*mx@j#K2U1sIbG+sH79-PFZLtw=|h!!tl4b}R$N0WK{SYp~h z#+l3J=&@ZTuMN3sejRYi({=AE@uJau$3omwcMgc?3uv&W#c9!(B#R#7_=Dz?1Bp$H zd2gQQ31G#>0afrMZ3{Ea{W|%{vP4OUOe0BDgKUBzn@otgag&WEq($~gNC^aTv;8{j zBc9_MGsmMge=wPa;&U3qIqt&($-_1!g$cZ4SCGTWUE}j{!wFaVSo#3b?}?~(pn@Do zfj$&o4dj(0X%w7IX@Mm&@0XUIp5@yM&SXO%l?6Wl z{h!@|Czd=~%fmt^Lr-{@($r4(VPNkB{=OiIC!IkNA-7FDALgyn*``E>HARYa-%wl> zpOYJJjU|sC1qj6dQMr2iIons0kzsam#*MRULgZv^yn&hI68M?mT^Z_a1s(K2ERno; zUgT80qD*lJ5;)4H*mQs>22X`B0*wdN#ir@vJGAjP^yH?8<3TD|P+%ZQ4+WOSLcIOY z{dxav9X^iFos1o2d!D9JUw5leM~SOR0G0au=Pw(67TW~_+j};)FHEeGX_VQ(+WJ3* zOT4z%n`~c_Z5Kz!i{<)m_8CbokyNpF(6J=mA^zMHP`{qGIrg@oprxjb@m`YbyN44& zS3noJZZeoDiwnI}HZ#(c5Y|C^O(`S&*;=rf* zelawhDG9)IN`wLi8gidEuXKX6uuZ&1QY+?Ho#~h3$8Q#D)rt@$u)x3gM`r8t634f7 zm(sKmG;P%m-lZlX3b7kU6_Nw-3j+9~=Ga0V_&*WY03=hB#;*M|4SJmhI!zl(QlNm3 ziFaum;N-(OZB&~0o?40*up2#h%Z3NZq7Ppuh*RM!yCpA-;anv4e>JwiiFv@%{7)XP zvw3i}PmW9pdDDOejluB7(p0C#ED` zDoEA>q}dKKSOOUW>S*y`Ln`S#pmLatO`=nFuLPo?L$)dlWUa z9wL$RPh{~VB??fb?56ev$#jOKIOJm5P11*xbm1WGLOH6Y5kj0|k*mT8yU=ogXqmqC z2Rx`Bg;i$f3XFmyLQUB>l<>%^viHwyjHbuDq$*w$h3P}oP@rU)wV)_L;G)}rCdp`+ z$X5%Jwjk-rH8(e>$;jEbuu#uTfz{FT6W)r(@M89brmA^P|8mD^)brI!TV9&&+uWth ztG3)l?v%l$Y!|o*%{^yExL|8(CTAui38aVvZwW1)9U|%D)2dF&>?hkvx|IKvcS)#5 z&?@Ws?M{p067t#taE}|vOXaXFeNyGuBMg8P9~oM}YY+6CAGUa4Kx8TW1T4-%AGfH& zmiCtoz=XQMO`TWyHZyI6^;8^t80D%B?rBOJ;Bg%Aj`Mm=^tv2Fa9weYnh{^85Dk-F z7*fah(ZFjhs%fdGLLpF6XGK;Am>A_Pconq&Se`H9G@DOqNrqHkA$N15W-gLbSeNc| zE2gk=3$I8FD&?1vsWa`4dM_42wY+qzG+tG`)V#X7P`RqcCvV&2q*Ur;lj`)A-3ip;Sfogo@RTp*Y%6ar^TzhLp2t22Yzi={z(BT z4o$evRU=vK!$e+dM7FZ2fmZ8*K)3Oz6)*uPB!?D|n=?E>tKd(eCzcei7J$UO>(`aJ(sm?B zMU?cI9|05x@Xi#wE>*dcapuZT;3_?g*E37X+v9og0JUdMNhSeBh5>xd<` zPui4r-XgM9tOV?S+Bl1~kqQMqImv3syD^*6S!yBp#5jq#WvuHLR`4-_%=M4MJc(4! z^534v4c^@m_m0gFaT0G5Ntyc2A>*wA<*nh{jlY9n1IBAEL7aGK8tT+IrGPkhOI)28 zo$Rd;u?mu)yzXa)FaNfd#P(IT?EtauK;`YA`c(ir_&9Al)HOKd=JuOF@yPsua2chj z&qSVmkTS(bw+MV;pGBUQZD2t%+y`;J1@ozr*mMX3xl;o7LinTHL@&>!KHGVedrFXw z@uC|!PU#EUN{aq&w?wB2D$V)yiB)!4FZ0ieCdzMN>RN<@wKaTaca>iR=W`eqTy_ok z{LIy=Er(Yn0j(vg-74Af=$l0+)g z58THF^12hvdX)X<2!e(AU$87+VsEM{OW`mV=z`Al<=c7qGV`gkh^vQV1wXh+Mj|E}@H$U&m{D~N` zi=;g>xb&7eh97K-&yAJ2ZGZ-=hmw2;fE?}CLVqI#@9(6DMa?UJx-tupY^1MIh{Eo7 zt95q=y?Vudt9ARgbQ`Jv$EC#?2;|-;R8RY}xNfA@ndjp+&Xa~EBjMWlj7-(f8)6@| zl{c7zKMsF)k~(Q8p)5#Jf{PWSFDCjX6=~qJSV%|4TPXlJEtX#l&USYUoS_@OuLQdH z5?~(u!CC_p_|xz+0eD}TmB}b;c^GuKf?LEaluq+(ZBgRmoko0lj z>z|2U|87CASplMoxbOr-96%dQfC=i|QjRpZ7hO{SJS6%fuW#7cwHU#~7`SwnPZUUB z2e1fKnnf}{c|y_q9zA&{Qo{Vv!@}a`c9J1Agr(6>_Q6`pO$X6vw`&|x^KEPWB^dDo zq3@GrdPz|!al6ir^C^2~l(zFSheKy@fOkxvHQQp=?I>IS;5(PI`l2M)T%$E!QuHom z>5s?hoSgV?{5v31H%7ET!s2#{c+y#ThZ<^1A3n4v7NktM$Gn%rcN*&HOOsmyuek#S zaZhx*+N?K9OGNmqN+F^E`%p^`GIyZ+m2Apepr$GwqOx^1G|h0x<$d>LXasq1%n5G46q*4G506n))NGaQ7j&VfT?MJ#}K zJBii(*(&cINnK0I)IQvRtNaC!wRQ-s3>tVQPWN4$>dm|h0zaY)J||UvUT3;;#rvby ziEB(20@QPpOLiztsthd4Aeo+AFbqACpav+kzdcX}p;50K96CN_NK;?Pp6TndcG6{L z@Ez(rdH2EROFPo$tr7Vbr{NLDmvvUP=Cp(8G_Qsu9W2QE+Z7j|3&ZM;Q;8Fft2A9GQ0O;lxea0Ipzqk%sxrA(XZ!D$kl?Wd8T90%dsNCuh%^Sh zJ!9*P&NJ^Bk^+h-hDMDEg5(6#WZT~cSeq!IPkW^#UA#OdfyAuC`5hPjUcKK5_F~#n z`BxH)W0AkV9zTJCNqfeI)baU<=DwF*p&ZgKr?)VcB_``d$I(bkmc_Y34+&io>Qkb{ zu8~Lk2p|an1bPlUMvZPwfo1$uc32@3P9 zDpd+WRxfs6wq3mM6IK2~(fL7ei-eMXPsDP~W%|bz4<-&_<#>bvg|2>|z+&H_9Hk&- zfmHVAH8mNj%UajAp&O`gnsc4GP+H1XW3-jUB`GuSNl(1RE7bc@e1JImzeQfhR~Qm zFS>W?o%cV@F_~~HIgE+Luob_**UPN#5fq|12jQ`jBbo%?HasA+o0-r+;cW@{p@^3I z{I6ST1~WXFj3}3B%mjB@rg+A_LndmFFOz~F;=4tW2wbEh3VO~dG46iK+PY+4P zC$swW9T4@E?`~hq`CLo1lODbH>n~%Jk1M#KKHH|5Xqjg#>B^gJ{V1N zBsptXdbF=)uzz70a$ol>BG2C?8KbOd}a-;jN2YXBn$XN_IzNM-Tn0;w2pZW^TDX{pAd(Y zrdni7x}bW>r)lA03yEBWB{@#b(b|~B3E@jdAT; zgC5g4k1l_6d4KD!jl&Xvo9q_4M!qQq$CG&MaC7Mr2j_O@$b7H&$q=E-6V(ujaO!p8 zG6IKxA<4KE#jRB1K86G`i;C6-Aa9)DAkvLUfkp!JffJc082}Yu8e#%l8F6>gnUt4u zapxY=_;=C7KWGN%+QGc__fCOY9aNkq@-;gYq4l{cBH~?&SnY?j!GthQd(&1P?m<~T z?Ob3O8)BGSwEJ9>i8!n;J?wBe#=@_4usn)_00v zl#!M2ZScE_AnxqKX6N*F4L{Xko<>!;%)U71aCYt|iW72u(e9i*n%GsofZSy(NWxKv z4;1L?!1W?hnO*{zT|csG{*qLX^F5DX(eRdxUwmE zsbYkN`riIe3wIst4dgsgO`;g1*Ae_J?%<~W4wlPo=1U*B^241mDoa$>SUiQVhXK4Q zgkhF589}yURTP$ioL-dSN3Qb^Z?*>-2oM0!6` zRcyXr?NlVP0C_HRxnm51Ng5WIP*p$!{1Mi4H=aclL~f;y&37q{k5X!J!RDD-W)?-F zoKU8Ls%LhC3-aH@F5Fdr#*!ZfZmL8pI0o5q6ncH=NZt^!*bYuKd5vKYE=jXK1u!*3 zfr6UM8M2Fq8CtEv3inOGz$N75$KFTez!sAD>xQ6O6ktdIp2B}Iw>&?|s7v#u zN1jm}&J=0JcJm?9f0GLL-!eNl9$qIIVa{ae z^PH8igo$leNV{M`Yms2f;k+B+wr6$j{-yiT-ZSYJ_tay?qP{I$448KPX)q~^(7QWW ziQ<+$fpZvH;f?tzfhbu6Kad0>kJE&#nr?{(>)|o1s$Q>iO(S5Ls>4~0VQS{c;Y5|b zZHUuv{X%J3sLKRs>rXn9F4{!OAHMz5ho6l4!{0~yB*aDx=B@6A0I`82Q47Y-EtC6H zZS8}E2Co2$y53mys+gJASuwp`I*8yS?F&&Q$rg&UXFF92KOsC2bN6F!7Sn2By#>)M zT;uY`4hzuH5#|4Q8!n7#T~GYGa9dBXKKuy0NpX4fb}?Tk3q?Ltg7Q@-C(8z^y08{+ zfP|8|TW|m)&SJN*ZnM{8`SqIKLV5ws(=Ky`%8hkltrw}2L&QOsa->Y<94C3uNf0%q6twL|JWUpPiE z$zw@;$aNJ1i|4*SKDY4S8OjhlLbd)R-m^&!UTI*L27IrnSfJEI;~#phD9D`4nOWVf z=J`8%^Ye2mY5xY1+x8ig7Ll(I;H!bV8siZf=O9wq7tBLc`7Yok6KVo~vto`P|oW6s~45S4jno00jEkc@c50Lp}$9F`dWv2Nv z1*KIp$Az&XDVrZsLLYaQY(8l9M~s7WgL_M6|?f5SEHovL;;f8Mw8 zzQp`3kaO$oq8Z|IW7+kuyXVvz7D}zAAG}N6y51(g;Cm;kJMUC!P7_V-lWAejV=lB3 zO1k)xk1CWZ+EPRm=p)`Q6?k2Q;p-Az?kH;SUTx4RYb#n6vCIz|Dv?+O3X>Ud1ty*@ z4EHoqpp2zSaF)CE){{-^S-|jmdYQ~$8Z(>-!%teJdc`xZ?s)k0)6Q(=c~#=?EC#)G zt`ixUB>TKzQE&Iv8X6ZB<>G;Ka)G!L(_|+3P;W^|nmfY>Zo>+VdwW011F3d0kyB1Q-Bp|In>rA9B@=Wb!9%pKo8=R0nv zL{1P<)Pgbyyz#dS!?zzGa4dr86T2bpZDa=s{$z2&LFE^o1>CN>`9-bp*79iqxLEtP zUx7DIL6Vc$_7J}z5%uAed4=$6Vz>qQ1PmzV^eOQttTW6*)2laPvP$2mVoa+y=KcJ+ zo{cBdYkz%{nol23g-9>0&{h^_R*zTygA$l40V@8hFY?NF3NbG2yDWT1dd zCFcsd`zjk3Lo6aTFyiIVP5HtxT~Kx_;UsT&f=y?$?0vm9@pNf3fU65|u=I?%Ja_V- zl)G!w91R!HpBwm)aHmuYTZsfDoqAi%KnYzq| zr(PpeTW-_cOw@fhT^Mwgog_pz_00z^U9EC$qlw6I2saYfbbvS#5CxaLcsHghqS+ro-0_44<}`9Uqppbds?XsEd3**^r* zMH&VbGGXT(eHQBEdX-=6{=`WZ9UX?L99{MsS2bsuAn-zrC_oZ>AsrbB{EJfkrIAYz)@}ZD=@_>eQ^Ko$@}!`(+2i4N&SI_gkh7$TnWEn zlbWj)T;y^g+&yk7#=AVL#;e4}mo=}d1(ZAQNnm${ySdVO?zMLZksai&t~LAHY%J4& zJcvLZid+|8BPG9aeTXK|w~kt*3K$TWby}DoLz4CGB}ynbG@IXJLYE=8Wj^fYwuKbT zo4h~q#4&z36h(G%;?T>Ylnh)zJq4+e^YlCJv-ZoBN`I5TH)Q-Qro}`x9OQkyrDqV5?kZF@k%VMn*_I|2uB}m`A{X$O;wsZ*c`*l?O$k z9hGSd-w+Mzo&m)Xz1r!rM)lxPQ{l1@=%zQI>>ayO0Xs&)->TWaGhjhpz$esp>IoTk zguc2?7OGTe3caV5QPot_+{_p8GF=+1(Acg;Yl&6bl-h9Q5)m;C?FhV2=3;Fc0=8ty zB}d7a13O7E8S|#uxk)g;xk};ell#~HVJxml z^DJVZ`S+vSw^};q9B+SGJ$SaN2I@G*m>0=`isiEI+`8r}iFB`h<@ZbsKoWq=qLO&K zf>^k*n0PCRTrq_LyYNch=)Sjt4AQ(|Hhv@g(qZhSB&kmp&3l_Nw8vdi?2q;yy8}_^ z$dT~*?SDYQ2?86=mBpDaH;LyU!8;F0;%G(VtyXTohZ}uFmtM3Uu_BI;h#&nA;w?UI zJ}EdkE&2}9xhj@?;w5-ygR@{8Dg|FBqd~7%)wrR0$ld7y#}NC7Y&YlwFWb{};2aAm!9V*P=OQc0 z5BaPy2v`hD-ysLy`{p*~*$WF6Y$v|)4@K?coOjePg%za+nHgL z^Dcxwu}}3`z5qd*KnYQ(708ncY+Tor{@p1h*#e1E=KoJwHzWo^;1gqt8gN9AGcQ3SzBMqbErliyc1o@lo#5*r7?*QM%tL%*0-omW41G>JC+5S?> zjZ)cE|Gdr-4bVJ%_wpO_&bMyIIIBY~I<1?oGsJ_}*z%0l(YN4d05>M117SviUL7OR z2Nzh6^d4$lfE}DRV)=Yy0@E%B2OI>R;6GmedWOy4{|omFjwre~EviF2+3-69aUObf zbi-CXdvJI2tIyoVFD;+Mu?tt?h084M**?v*Mf%Ee9kE2?WP>bNp><+t&ZK5xazayr zvz7!9g|vHhMU*EAsM{HaDmmnwQXZ}EO-}68J@bv@Qb$Uh`snKhaKt^RY`aWtv)$cp zA7!QchBPr;23NeuVxFdYTDzu7T%PM8&Nq$}aYU*;TASBmy_NHpWr+7Zf5aoqV7ns! z3I-YPaz*1~N=QuBgI@lC%MP_k{Iwb*J~6s2eL<{U$@V>A7l_*fVg8rmxX)r(9J0i^ z9%7F+nRk&a^~&02AX<9we<`5WKy@n-Jfd>%>=*C*+DFGy9|$Y|Y0v z+pjJSHMEtBg}Ha}Vz~BW*BT$9-}U9bOG?VtlI`Kon~Kvfq>#51*(?Yyby19a)0lgc&CrwYCV$h`sZ*OeYms%W-{^2 zB=^1CBU>_~AFR8Rzz@Gas=hcwcSD?|i8 z#|t`TS;k|pB@ONKUqQa33sQkdfy182h+EfN)D^><8l1h)W^@~ymRK*AWa{^I0_($4 zx;`Y-i9$sxuXq+%WzGR&*-U=(D^~J+%d@AYhQy@UYtsZ$Pr}~y(PUG@-t0&T*foar zHimyi)uFkNcHYI=S_(vn0P&95&Vk@DG9{%!@pvF5IW6s1+Vzx4o;DUQ+ujCfvlCH- zjeio)@o;Ki`$sX~%73C=#Ek00s&_hVtXJ>uB;OJFJ9l_xUeT~4Q_w#J!(NZx(E*x| z>TP+_xGAGN5F#Sg07fY=JTRRlK0wR=h|L@*NlTe>(umnRO)q{~t{r@SBb8iX;HY_M zrO1+Hc;(38^u&Q#S?{t_G-sPebA|G;qli4@gv-}49Xx|=toje^&u=~IT`MVP`Kq6F zo+uD_^V9n^9)@NUipVV|CKxFBmHZf)DNtY0{`%pclek-Y=}-Tt6&RE~82p&opAS`rahqal)w!pKl7HGRT(3IUddkX+c^4n}Dfxk8%$bn4nxmQYp%BNZ6OWkW?f)_E@;a|N2^i(xVrb<_hU3vdA7FAeCl zfJ{W_lNb`D+DKT#pI7`w{kDjT<39uO7z_Xg0f98xhf10j00Sup!jomUYp=#9|{Jh=uenF~esq9Z5occ2NhC$3%oz5G> z+WAL)cnk#q9~Ocm5C+Hl^&o^M#yFFm)Ihiwm-ma&^oAC5xIH%YE#=1pZ@OxjI1PBPR8ZHv*QNgN|K>TA+qY{u4Spvr zMkqc3;V&uQXS}f+KQlS-ML}j~z}`aQ)d{x*MJ^X!)H8PWVI=3stqnF7N0Ro@u?)4@#jBbj4t}0=i!Wg zRpt2elhqF&68dG|{r;kV0?T=fT55DwkX&V=J2+?`2A;Q-2l*fHZzp7gpi`S)i+8kDE{x)tkM41kM7?cC&#9Y0&#stqZR)pQ+Yq~OJMsIg zT+d(9*h8)76Nd%z&J}ZfrTCkklZfPhTtp~PSkumWuaKpB$Y%GZCjVcsc*Ax>+WpB3 z7sU1={OOE_woL^FTGcE+9Y!qGu;9(Y%L(IFAD9xiwehR=rMlArDg~OBdvj*jdnGpQ zVbGEa^rj6K^XW2xC!M}JlPpN~9m|rj_4kvudlfsvt_%p7LOT*{$OptIgoGQWMrMC5 z3j(&NN}5}r0$-}+yVpr95+eer9fmSq5c#DizV#hxijB5?!!iwybjP15Yqo!k`VIcp zu>{0Hn2=o$&2{|YI9FTJ1T}?H1w>E}HY;k1%JtFf%tzu-*{7Sx&gEiwv%&}(PU>gI zVsYwRyMzo6&-WsWUUnTM)|x#iC#VE6n-jslg;AM_1|Ce43tSz(ELiu4M+p1z#Cq(d z$W#(xPZr#O221j%b2IUQ1DR;XCb?f?yia~Dd`l{7Fl}0P$u+=2I4$l05-egc4cbtU zFd6#aujxDsTPXkQ9(U#nDan&1r`A-X0-sx@QjF@NBLevtgqS*?f$lyJD*;{eyR4dp ztqZLF%fnA_jqm9%rui?W-H{iUxK1@M#{ADi!i9eTx%;JXMxGU@0|p@}lf`0r&=A`sY0nnru5Pre zj{A=aXm$*-1>=%gtB_C^Uhr!+Q)JyE6S&6c!D}31B!NNq?a0QLMVe_uN0I4{?-v*O znH(~2=3gJtPfC+!#V4`B>GmAldg}mWi^NEN#BI7DqxEW;zxvLG3}@Z7P|P)AXSkM8 zzimA(_PT<7G#9tV)VGcZkA!)9wQ+-xrx`ZK9-ZBA8kUDE@s|)DBZ#7Vw-6B1At;5iq&q)vT-;){NoyM26BY3?j70-);WZ zWq16&pj1gY;$s7ISpVBoc*=L_U!Yy|#;xA@#{Y_mUw4)MLQbL5XoNKlkxg8vqQOT) z`iLNSi!zj&F`jL-382}+iA*+wM$XGE@xvmu&lUcn*&LYUz*7STz>ZFod5|f#F*b z&h!Bxv@96|>44_hMk>LZuSf4Q?tcURbn^T}y$H^exEv|*_~zf2H11l0Jb4yCNP+zG z@zgxL4iQ3lxx0}Ewju)L5%BQ7MHP_&-6aXC9wwTJ=eLN0s}U3xmeo$F#Qdi{r)5d^ zx5xf;-cc!a;B% zmG3f|$@Mf&OBB-wLGUkuiz*l2tN2>7Lbd3z^lfj{V^={{X z^Y#Y!oj*Fld={)sVz#4WtaW3Su5+um+Pbo{J$2^ptmAUV6_{B?N$^I??<*s;Q9n zd&QidTm%#zMmzLrI6jJTxe>$D$?fSE<6>~q?fS~hlcebN<9Pz#1JlMBo10(lrZhai z7M-!-^u841^)t`&C%4i2`yz83ZtaHn3NCx-Gv0eeHrp|JU>?^e+`iKfyvM$KOBeg9 zXf_@=`4t^{>S{X5^Vomk_BZPBFM8%-^V-j(*o#*_ApU_Tv$Gr<&zXIvz}w_NGmSvb z0H5%~fJkoN%f$|oJU-IS!OXeAmo$S{4y`qgf}?l>ejbMC^8^na`Z{U)b;kP1M|=J_ z*lQ^|)_Tq3rs+G)&Cy=ufBS{cSghwr@uiv9;Y~-bd5YmhqhM!8Q*CT;%2%Itp8r;3 zBTCvLd?*orj?7k3JP#j)trRmcxDXaz6MmfdGQPyxU&{--P^_nX)*HNt(k+P+Jxf^T zkx#;Jyp_KEv-q;f*=QG+2>p_n%MWCw*w|Ky6osGR-dk77iq2I&kQZ=@0=K;Ypb4I_ zk@tH1YjfiYoP%O^)`(dejK1d`O@fMtFN`^y4l?G3WUo$+jvV2MP#Gm+ugsh7xz zL4qnkmv8liwDU%%HetQTzt(K51lJ`!_?dL8M5#kOIqNF^vK0lfapJ3h*g~7~#$G(p zB!ZVj7?)DNMs5t29POIfN8ftJ!=>=-q(tGx)hBvXo#2?n6$g!=Q8_k7$mdX5&rPkJ z9dZ#Sep)l-a<=2SVzW12Wd*nt1bWn!kKH7-l;ik<7N@mD#=wDmY+N%*7Rv2cCNdp< zMlmn>3O^(;^2nPWvpz%T{5(EE$OdtRp6z>{rSEW4<1VGoFnehD=E8%FkPjJl>X~bC z@t-u4HMb}s2uK=M|K(ZbxStBj{889navWv)EVnemXTHxLi~q0zHM@w2pCwOmq@Cfl zFF})jx#p-4iq01n@JCb5^Jj093l$5yG~KLnv_KTs3>Ymyu2)v%*M+{KrOo?xmRsO0 zMfDqHrR^JB&_n$Xncy^%QyS7v9ky*3$ z9j;}^SKp22%s{SK7!iwj)`y*Tqj*rN%gEJF=jj}5BugzSWBo zzV?dLERP>8Ith4-#mYHTVfJXKRAe#{)%)A1DZ#aZSEuyThG(oKa|?(Xq6M9z>A9w5 zd+>+HlozYS6n}|3<2KXjc4D)zN~2!BKmPfeLaBg}hd@Jte+tmnEJ}l1%d08lU;j_0 zn^;+%EA~ulb`YI;XnUm*}5f)2J>1XB0j1zV$a{tmt5IK{6ouASFbU!&$FC za>2UKlw!(Nu0=UN($_l<8h9j+shIvx4J1T|xl>_yV!yh~y)wuXPNo4hkAbJYrMHKR z7eFq?V}O9tKdMJ&pG#+gPQ+Y3>o}J1_n5osY`^@UO3un@TFV^{u5~3)ic~>=nhJl( z7iH22K;4t~xv#u>(#9iywD#S)(RrasqaLUrpH2}*pu&7XC+g`CtG!ywA_eP1p7lnP z8+xGN1VzX2j@pIM{k~Mrm5aP9cO?(AVY=-cF8Ki!{mYllZW;$&?=)Y<;9)W37{$+9$s(4a}Q36$7NU*hAq*j2=f z*-psZL&Lch2d7=-hOo_UMcVKyq37YwBa1wW(h*ZRBSkOjhqQ%LZd-$TbU^+6kCU$k zhFj3zY{<7+uvIWJWxiX=@+xncgRiRGpYlLp5lm)?=1$*ND=VX%i9=VH?DL%H1f2Yp zN0-rvNuLw^A3}6$$5PHGF})usg?S~FZ}N!1#ar)=uYS{r(sh1*c0j@H$7_p!9iqKN zmG2N7DDMpE_F5|^65I_AV7ppp7+!07?7QH^sN`F<9=GC40~U3f3`NDw<$#crp^o&4pPQpc<1_8owWFJ-b zSNF3{k```VOlc)bHGhiEsM=3nkWC{hciC@Np%Gmo2RZu8U395(VI~8dc4o42b7D{X zyI0+hb7}@ym{&3=U*b9 zrn;Y9P5RYW!&vx;w75E@?A@Pyv~Tlnu|{lloyf?vedFQP(S)CbXXV{cdfx{Q?e};3 z_|6@0ub!5%GPe;~_vnmN^UHYPITbwp}Z2NgWQ@XwFI%AP;nd`XfVTWV{x2lzUXOmYB;X;q_w&p#* zTrU&Nssy8PPEEUkx(NzrYL+n8;r?Ek;TTv{m>Szg@JTTL6kQ!vbnZ~p{XrODXUZQ; z0F#WI!;5Zv+zDwYO=dSerY0g3O{+~G8O)-U-0JL3>Ypqn=me5)q95?W!I(dL0HwFQ>9TFjYKTK)|9&D z`TKBUt?czs;g-c!SMXCo=MGXKh%rCItE~8U(Pmo3=9p_kW{iL+{;G`KxPbFp68a|f zdqD6-ySk2HR?HR=!erW_GwX#NG%X90`bz`^afU;1K^xU&i2|?a$kf92Wuysvv?B!# zb*g(AE%-=?Wk}Vy+TLUM#?X0})7yRjF87VnPLnX#PE#M>f3lkntQi)(+t30cS68ZgFlvOI8 zAL$vw73lq{sQMnqIe)`e#K4XKmvA&1!eloe%+GLw?mZm+YKuUnvKnZi0xq|gQBwJy z>-@UUXT?6}fpi3H!LU$Ltj2chm4wYn_pg%3BrkCFu;|UL$O+Dy*zW+7;tu5#%g?p* zMy!g|J)>2v2?wSy8eC!r#2`yFU>EzYd<)&CnCX!>Wc*XBNBy&%Glnuz`l`QgAlIo= z&}(xkzosDOb27bxg3zBYlEPH85YoBq#qdS_j(fHp%;u~PuIIWP>2P@(7I7`=5wceS zP`@{qBVt;_bi5sFY2VPWypR-?Xg<=I?FS6o>yH2nDVR-LQ~N2XKYcK za>y+)@h_DP2dd|oC&%D6loauUt@LxBBTrx^6R(&*o8Sz4@cPHsN>EF)X*{zumCK@$!YjVAK&AF1UC=3%2MmH+C;3yt6vqUPj)k**J+zQOF z&kYP?Ipbi2YcJF=mdq~DIf)K23qGjv<8XlRZP74BXh)W<)9Sc_88-lp%s*{7I&EE| zG*6ytv~FkkF1B)iOlEHekqK(6aGcV_#gf7P?1N82;~M`|43 z6NZ@@I~Msy=`gs{7Bf*5cWpYHfz1RQRm_1Y2%o==_z~=(m0V`}ShPeU4#Xfj{<657 ztGM<{OOT(r%2!-!VS|5ipsWe%ejHw0gd^SX^|LoU!ScHDvovrv&Px1yapThuB&f4) zUdCu1S_@JbY>iC~K`Cn*Y7OxmPyuyyaHTK3IrcH)@oupS6AShEg2+a@N*+&}XF~lJ zJ->9ZrvMi9@zaUdHzwN~yLoqxi`JfBoVC5fqROB>%lTNuEm_pj1T-|Y7H$>re}%yT4D0p8Jc=SJebi2TZPQG zs0=gsFtAnhNtw6%4B_KE_?xcr`Ja7HA9e9lqsQ8>pOiySc=9i*(MU{5cv9Bt)6NcI zHD|qy+wUDm!6|tmBc8s&tWVWaB&GJ9utL6zIa(O}F2Mrp2-eIVVo|-2jO#Ak=JnQ* zIBjKwr<}+-iud%NLM`P`ubjmNoKs(Nm37#g{E(Lm5{>zBaAMR_*JHE#v zV3Dl*BnM`QSiLjQiZ8{K-c(Goge^9CPLab(4zusopZU6ho5@Sz~vban5kZ;;P3_f>AqyI{@}&t>%R=` zC}ghdVo(gx;E(K{A@ktLKWym@Cb?OoGwW{y_vz*~hvP%c?u6tkb|8QZxqt1alEqQY z;jA~b*Q%$2V+9lx;d)Oa#N)(MOEZ`pfDr4havYFGa^`LJfIo{j`>7ZmH{;B z@ZLPZa14VJCBR@d3ilnVNe#0mGC0vehO2Ej#V@o^M)4B%GqDemMc4;G1d zhDsLZxF%yF+WVSU8Nr!5A?qWP>@5xo#`0Z80?lJL*zb}YR0IqPO}geh3^hQ;MPL;I zh=m3|0ArxM{)Jb-5_kb(BNEs6__l=+XfB2stMiWh_N*|a|K8j z%Dehk^o+PTwM69Q#I~hi5M$(H;=GvbT|udNdejARbKz!aF3ax-VF5z%7WtH9X)$Pnk6l zxaR|Pn}<5$Q+bGD0ZyXA5HgPpnJps}xnvOL1AJ^ua{%2W#O2=DON%H?Bh5lUu%Mf> zkW?pEEi_cq79zEW;qZ{c?Av!Aeh7|wcvPbDj*_ziF zFbwdd1`}bfXnmh(c;8LH`t;vX>QDP5;7Bzs9s!4hIIpWEGWJoHCs1eUi7p{U6Y-US zdLpHbccFEVjV*vdLlh`rekvF{3QguLZ!sy)UG}r$3T8Gm z2hUO`-vhzuY^xs+B0bHNbA8dTtn4S3Wk=#GZF;$a>guoKSI7h6Dm=M_y`z*$SxnV~Ydu}ZF* zTWJV1)|B?1x7L-vmT=6VhxX2=aqb#IW741+bO-~Xj;-#-{9+xL0J_kwQ*{=(xs3}CF+>7()UYT_YWOVNoDQ4{@yXo*g?XV0c+I)S>)G2Ju+DHcklt$q@nep&6{Sm4RWxp*AcnM;xE-A$%T+BzWAg@ek;g_NgU{>w;+I`Q)g@Wd-J)|D0U+6{ND6PG*xx4Eu9yq;C^(18MP8b|;U00@ z!iWpcKa3Kx0D}wnp$4EFQ)I`cKO}3p)M~6E-+(`F2+W~^8lSTiLEiTt2A%kG@V?%@ z;RgrUS0E1j2#j2(T4<5I?ajl(qUayZvbKP>kKO7x%3OfkQYSKRtcAA|!vnt$xYi@S zv?!*wsQsbnj<_+KTb5?U0HUp|D6ku`YdxNCHL#nH)ZOLS@{zv;CJLAnfkStg0oEBJ z>YryG1vy=0u@H|yNY~8=276F80!Sa!=6l6@$bjE}3d93Su6(WHT^$_TRJ!qEAu$tOMb^)&un^e|#^$ zw-G5B-+Sio6UxHlv#@S{RH@>Z4tr{D5U$8Y7N&@X-XNwq$LI1gGkVK1%F`i-Sy*{I zgxwbG(rs!!a6=M&?UoyudmM1VdM1|CI5XYRdDJ1f-djz6N^u=}!zDrUpQr-rDMcOtQ3;O`(OrB#mX8RwCAqQW*NY)3+nk zIy4}^-r^fT8443by?tI+rLLNt(Z)3kwW9*kEihLK%$#yci8fa-7t*JLQk$bY_dWGN zf_4-@3hn=&-5GsCzLJ~yh|b0L%c=2UT8ooUU;I`?ZCrVMm7DEPV*Rz;Nybh(?v-k2 zZUmqA3=8ADRWW1Ac<5i`V_;Hp3N;}2oGWqyJ<`Tl+4`fUBZ7OOT%P+I%gj*Ui)0}X zWy+VmmZ%go|8C%nqR{DRW^Zo-&K>F}{d0}iY|lJk0c-HWZIHm&h5!Qw?uP_SK?pfo ziklQ5PHU@=?`db?UOJVsYV-@`C**`@q*<3?;<{KunqtQo$E8b+p1mF< zM-kHCPW*eFcf~y2HPVCgwAzR-?#+n)leaByiZdRG!n>Z7TkmKOAItaMzQpTOS^{G@ zZo0&;dh2kV*Y_)5st^d32=TFnID7$loT9=e)nlmu8v*?57ZUg<%&jQcj0&Tf!p2+D z@E`;c3D*x)d!RJ{=X!>Wv4mTs^vZJnb&9qLzESzDVzB?;*gpBqXI zuJEqcb7_i|J&b4Cs>>Di5ahU@7K>!eQ>1p@FI0c@%iWqL2-wgh)F#y}_MnDv2=6TP zXSu&L5zyR&y2PbQfkcRV4DY0&uZjoo|3!z+w;}P0S>{pp21b`G&oO?Ps(MoryARSc zNs7&)tAxI4EU(CH&%qBCQySJdK4fHHelAEP6XY7itE4Qf)FUo!$5Hv%rR3eFfrZUoGFR{cfS z1^12*_=r=|`09zi?T9$lBuE(Sf`IwZKA!ytn4=Y?X%IFH#HDn=X&rpUYwESNxt!Zf zxb;feOYNWpetq;99{;fMbK*+Sr-`s4BGzTLvXjK=s%s1By833OdX)9GuaghB7$x9F zzm?xje(Qxw=6xE*w4Il`&DgGibrvm7+E$8KDU3jQlj8XgqPu@?Ci!qh6RKm5FE#Zu z&@>d};(GCcm8_Aek+{sZ)$-T){evAz^KPS05xAs@O33HI-ODo2-864UEba$`P-YI^ z^`+}cW6n3wr_`|rI^4ulgr<=jRX+FYXm{%Zr_BsI`+lwU!uH!2$m_SD@$n*Ua6hUJ zi)Fl!N}SN#TV(@?=?z#c0TvAUe!gR*jSZ%_reOUNh@=3?gfBj$5>7}4+#W2M4r@dR zp2r}fu>WU}dv`EI?g_@-k7B`BEX+e0Y&l<)0tR~@3RqB5G!TXKBuq)vv3)hmVjZwZEXaHf?(uEnShM07rCaZ2Ez+c@n1DCs;rjXU3l(RG4=3&J~`^DjueK_QU3`ZRChb?(ZL-q9DAhwmu-GV0xi! ztrVhy0l}80xq3aFat7B+7!ZS7aw=PJ$?~gjWeRBreUQA%X_Sl-$DB@^7TYP#6hpJ8 zf5AKk3g$Wn>d;njbDKAhI&yE%%Mr zf?st_rF9*A7yXpPjMn-lBBt~_qYH4DM!hrcR8*Z7+HE;~pp6lsL_|ZtG7}0~;1_xY zQyVfej9KzLIp$K5<+Peyx!;d$P}-jP;_N2st>3cM>A3egQHd42kPQ#RLr@4 z>?6epd@o@_kX|DA1@WDI->j*8xTt0ePMlSP?%ImpAVWn#oJ#33=F8(unpRiVfl|*U z(8V9#X~(I!3(1T}KNS_^tbRk)wTGhWzJa zL#gvzq-FaH+K1orY}RczvRs9+7*<&aHE0F~oqae|lT+NxAQ*-e%RpZV=zoyT`=7ll zN0#CXI*%6s9S^R~DgJ_WCyt`V`3e9Ip>(uw8m~JjEBQG~gS%LwJO|N6J?)yf27@Ub z8v#bYXz@#%^7=uD;8;x za%VfenT#DyIfc#CGITb!{b@P9aoyH#{pRb;B#V#MRPLyMY^N*>T3@G#Tulk<;Yxy=- zqKmZAr1%g_a`S*Kb-S-Q(-40$BD_OOl_U%?neQ30M@s@s$IXzdkEjc!4ueX|o4^z# z`?ou?b{Nr+=<{mI3lfPK+d*(>ra$kI8-a)tv4m*;H6xBDv1k*27AAWmJKP?qvocat zsF(Ip?|A583L!FAT=WCq%f88lv;wrAWDwR|THRcNw9v;E+oRUOWQ#Qp@n?ovAycH) z!B<^ylh?QW&Y0jnvm{MG_x{qmWi@`JzxV@TEWbiF*ke7X3L1UY96W}2M`FHXIU+Es z{X$i%n#op+gt|sR+Lgbw%o<=7T!ajEcYtz9ds$rWvk;+$t;Ai2HT@qMHkhrUu-r~k zPj6~67mWr`RkDyL8-*R5`iwRK2neJ5@i3n$0O6Uf({<3Eam)=#ZoQ7veRqE{uemK* z++XsO#Fe|UP1TGNjo6U4?_HiHb~>@o$89R)5lMPn%jUC7uct>H1H` zZLXiY#02?wH>-i5`Bcl$Lz!O8d=Zl}WbjG%p)B?3>n^38I;o4TzjCR^^~lHvj$LIx zT5#usU)o-o6_xX93N~VPx6UuNKJ@|@mj0w=|1u{}i!uvV5z`bDiZ%%q9-2R%<8 zztv=?{k?L_eaD@2#&`&>hb1vN;-3n@4B>xwl!f0v{`NvO+cHwU&Xl!@L_=^reYs$N{{cpEUB=7YV4;|Aq}HUo%DppQaI5m3@NCs2N{m+(u4*v(P*z4~rq=4f<#AI~1>o z??BIcp^K$uXIE98R7=?QQjn_xBX4_4T%+qJuHPUeb5qeUMVvv^)sEyFs~?{v@;}FZ zk-=X-v0hJ*cRS zi5Va?lHeAS=jEn4%NEe)*Q=kF|ZGBtOIup6#<-oGjc(1xOVh70bRJ2GvN706e+% zj3w{%MODykFU1UxujX%u-`r<4P#iM04$b#?@qu~WklgkoBsdfUET}m*4O+kV+4;-50ijgX1u00K-VT9q zTSI<|%);j3+fR3VHDBNU^RB8w)Y0x!1}}~B@zD}-s$;{@?P(vpOZ9~H`On?BykkHU z144!`WUs$`InI)w_=nkNh{=%{B=CU_`*erI>`4eZ_oELMJ7c%{#B^&A`WwS^V(Q`d zS)q{bjB!;x}5XU6tEhP!^p!CY)Pf+E3fo^H$?oEE+M`$L-_Dq9XM_7SQ75df_ zS%KaD{y@&V`;cyY!a1!avIrkkVu`E^DkN-knn(31fw4VAWv?lgR18VR^*k@;$z&X9 za-y5ZmSjXFpJGmpT#b%bn14m(X@5VPWOPR`9ugLrjf;Z_EZyNo<_-C%rSuZ5nrUx3 za-tc@_#YioR4DD&li97_lw+;p6+Md`y(y!nSH6nV6?&F>Dz+AUZLTMftCP8BsjaF8 zj~UBZ1<}yKGLD)A1KE(CZyd_*+4<6bWs<&`jWXm%$53xQ(sm?BdX^oFWfH`Ls`$XX zVdp+353VMd?x`j#c0(iy5Gk$v=X?1K{^|0b%<<1yzR8?29!SD``Ki}P!ZbBag$h$b zim6P?XB`%7Z64O)j+T%XZ1drrOH?T~jsgy05&9>dkZ{mnU^jk&xnWc6W{BDDs^} z@{`Yu%(KYi*HP7n+aX}V$i!P5Sb-N zF&fHfIaY9gxKA}V9Z%AGKhk$y@KJP%@Z8kE+Y{6n5zv>*rnTe|rOq_4Z*dD8VX z$)5E1t>wt@qq;b&={V8U7Fv2idMAE*aIzr!3ulV@>m6Ix zzqUPA(=VSH7p{z&`ld_b$yClE4`w2oPR{ORRo5BfpMLC8sn1tACb4tj+h4LluaZlr zH0BuEqM9sW+mG-uIY&ue=Ykqgt+)Kkny0Kk`I&xn;8wAKs2f34(NIBpE<;Can(U*W z?g&dJ;?Y~M0M<+>7!32n{C;am`!Yp*W24nl`{d=*Cm)^;(j3A_DO?nQ8w7}BL7Y_L zH!3r;NBTagaScl>jvm;J17-c;ciT8&6Es1*8KvdzjLr;<&Uzwd6XsCjldr56xO19N zF?KFS2%X+u@h&onM$BOBk?YI1HyJb7&h%z(cT<1mF9}t1eH|F!9O(60ney5IDZq&> z7o(76kI6VOD7_$aame0;4>&~_Drlq_BLSyhJ;8+r9bqEf9~h;P<(MVsA2bk9T0S58 z>a0gP8b_L-7ysyXkh5jc^UTH(&HjdEOCzoRyPp@FH)3#jR;bfR#EwOoUTb_v?$ri` z?@VB2S*=HMp?G5PTft?Iwycm@#TH%{eJ9s{#%})xxVslXRA`C59m2{k-+sYS-0tPT zf@(ag`;W&}o@6^ACat&=YGyWQgOBxmp1NiSsYOoyUn!JAbEgo<5*?XstQoEE-biSH zJwv!38$u%Op{nUG>zW`Y)EDa?py$wl5hleDn_?VHmJ1%+igNh~wN$kw-%Y8KIo9yi z%kQzW>Hfnpugl4f1u+~iPEuK(Vb%3go(}i(oC(P`-J1&W;kh|oJM>q;fV*N)%Qoc@ zWv-QCgwqniff=*r`wS4z-94w%LF1f=j8UzeSK~~SX~y}*%8vu3tad!G$vcUi)OxMy zLgN>nZ&54DQq|NgZmdzZaVoL3(LVWEON&6F!oXy9rTVK|c(BeE_-+`}!G-dMEfX#- zX;o};S0dMz;|WBSvSQfbVTc7x>B;MkP|T0EAmCYtKcopmc2>8%ZZZa+p=vC{3tW_O4!;D2A8de#7FdG7rLSG@-)BJaV8JDb<`yHz9;D^U(8rV_iALx- zBybLEpwQ}Jj0OzjfOGh=uU>T^BQ zRq)iEy^cHP$!>2tg?`0lSoZo-RfZ9PYmJqE? zDd`D6{r|{1H2c2`-v1>1E9lnSy8c_tni7r8jabNS<|0l?qv40;Q7_qPEfP=rL8qA1H%<*i>#lJ!VV^m2ENFBVSc;HKTyV5hu*v z83?Ou7iWGIW(~8&^+82@7t`I+&7FOhZEr#KO2wPA61?nO_o7+u5BaJMw1!h1%dG<1;v5=4l8C@10ba}Ee zzN$;rWXGahu@S0hVqk<>G@SJ|SbCWO504~6vm!Fj?U8+S9Wt6hE6tlPSkB!3ECjYa zKY818v^l#v%?ziNqFeEHwITb!a=qecdmuRAWanP_x!r{8KI0QS?n*7V-g5%Q6*=T; ziC>K%Ew{!9UJb;Cs8nTs%9nVi%lmAK_b;B^yPegGxqQgRwfRxucH#o%-brQYr3UHG z=JoZstm_D!J&32a0Q{JQ!OOSCKt>y!$21*+E)8lRURCiym3#XmibP~ETfI5flBF-w zR@e0StYyl#z;KIyG-4HcoL~Xn5)eucK@6xCbGl7s5G%u-%Xu2ZAC`ed4O(LEKNLVi z`VPV)%)zu$v-j}qW9{sp6|TP+Q)KCK`u1lIBX@QdnJ$Qr5+I*b zd|llfDO=rMAFpjQzj6m|E7a6B2m*LCTZ|tSUvje&j~^Y#h~nyk>LR1DCsFFb5d2tv z3(uwFh(PtT7v0AOoFBWLpWAGu{Lo(9)LQ#_^kRK;tOD#CI4M-JA81MTroEt0Z@3_k zuFK}(%V}F+cWnp{-TfbKuZ7&acX|sg$p0ob{H@ttm7*kx(A;I2YPRscQ|fIPOpZK+ zo?BYe!7l1`Ft!TPGuZmS;GEyyQ}A?og-yXLx=lrypIqVuLGsy_n3FIoFV6N^#jXs} z`5PbUSOthFU-@vPJXpIu%L?cyd^h~cZ2W3O);nY#20YzqRGhimFT;8_@h8W-A5Kx5 zWx~@R!lM!vuU!9j)i@H*RN=%ZRUWRsDD;Qe){PuZ49{xhj(!JEyDq96&pFin;N zS>7&b=Glq+{w&wkK3RLBG0L>K`sX3J`tS6IK+%czzE=jKx&YT>N7i8P-`z&_jW1|_;Ky*@0XqkKKrxX z&X?vu2rvW&MjPsPbhG5vI$9AG_z!K1|e;#&M_p4c5iOksac$&hJL?i=2XKi;u4cTSifp< zYjs@zk&YBq$F9tqOQg^8N?xujk1x3YwW61>Rv0PhlEYsSLTD)S8w1F>qRgj$)#^QS zupB1`4?4vpi&snHeWSuJSPp+t&^#^A@4LT%a-c0dr*`ZN246>HJoQj;Es}hv+Wx)K z2w&+Bn22i?==r>8Ul$ko;Uh)de6r;H{t1LU1RX~L7jeD4!-i~NKJ@PH?GBTIwWsVn zHmi@~(`BHI#u&SLw~IKxt4XV21_ui@KrP`Fv1(WoiINa-yEEkMdYZRM&D? zKPMRrnTR^2afJJiktq(6Fmaf>Mhw7ZdVMa%B`6Q&$L*GsXKIft^MMORW=y^oha7Q8WWYD0XgM=w(J}Jj7U9w4K)#58;-b z#V-d_dN8mzvT-MoZ#naf?TwjF+gD@*l@XcAEG?4_&6mpF6gSYUh z=hHVAw@{2CH0L)x3jM>NA8hNJ4ZN=0wfg)Sc}6pBD|>8K$?M=|L+P5nkN+(!+F0bozo{fPQ#rz~7dGj~(7llZV5 z*cgmt_jeGU=(wrvIE1>bCoj@#50loaHnW(RdkW7>F(@>bwjmFDzRNE>yF_A*wY@X* z!2f*U327LlYYh3Us=Z5Qr?B+U%$;T2+)T@^5>n8;; zB2_db)^=F7<9`67KwQ7jd|p7p6Ozb6M?hk>Zi~bd4xxe+?0`};(5DM71**htYB-$| zs1F0d8%!ZoH7J~e9zeFXDkMP<47FXj$W_e|%n_-4Jd9Ea=8^E~=Og6Bs=)*qlJjP( zJLm;zMOug5?C$3R+=YNmbBa^_ws8dWmE&~SbIocRs5%hH;DE!Gy9f}NKYqL;QVSyx zD5sZeb^AH;-ZL%`bUnB6KhZJ|R#E}EU+V)T}kG1uIgK$E~ z)L_@F^kENXP{R_?;HABM2~15;QyUIoKQ>swOYsxtnBI_vFMQHtdT=2Byr+b-UU|j; zb2vm0unXV~z8VIu8YtjxaY|(06NK}@SW^KgM{vhtutOmwN@R*F|N(LP(0hdj&!57rf1UoFD zO-*RREQOYadq36zBXD;U$OISp&4rj*a)TAnz`*YzVc`qxWOCwAgddmy1i%vihyyYp z;s6K;#Ia7Psqw?B09e3JZ-!wC6ek08o{FJ2YNy&<2cI&T`-2xqpb?c6Y^d|nU?BK9{-NVdu90JAa6CmP8|`C zht>f+pzJ&G@a;{0yAf63w)eW%2rry)3gZ^{6C`%yxo(LGUl4$kTyhjO%rXsjNMpdO zvhN_1fecGXW4?h&z_|$R4W_R`!o7!vv}T!^S2n9z-GEsZn1EkFc)}C^j6g1fFgOAX zF1+DGQgR!($_cU+x5_b{ge02p&P4!3tY+>uNx03=H~$Q1dcN}+$dfnb6gsGAbE-zG zW|LNE0v^PH;(!4lP}cuhfg5ZA$f%R1&6jr3T{X!`;7JXIj2+p9-Fa9bd1&AUaveqF zl)7-*9gIO9teqU_+8LZ+7l;81ih-}4ovlIOH5CYb;aVDb(|+{br{T+lKuAZ3njJZW zKuDB$Tw8o(-{Ogmod|%i>A@379uzu)@|BhMOjZ=wKoz8zS*h6P0fHCqffa0?_Us5$ zsKFNmfs?R-7pxo5yagIG!7Hr=W4*z>H9;DHNy;SFQ3O!$g~?9;Fc2CH-|(pzi@8A@ z7(o=Q*kwr`W(ga9oPZuQ(IK1w2}H+!gw%L2-a}YG)%gdealsvAK^ELW63755S-~20 z0Tx`r3Zj7x#DUWlNBbp*`ngTmz!?$9O=aku4N1mty}&%l0IBc>+Q@)G4TluipD?BX z3auR$bb-XU!4+TuHDZA%W&sv(K`J?c7eql1luHmefDlOF@EnL@JX>QJVQ5hss%Z!k ziV@;fn-;0#MCjTJjw8D0+6nF>KlY=p#SRGw6|z0xea)bK(Lvg=k?hD3Y~(w#<2H?&Y$73TmZhrQ=6A?} z99%&bjN>?_T?zW5Z{~p<46bI zQP=1J6}XTS5zknX2R*9C7KMwS*gz<{B{t5%>!_j@(4}440grhsE^#@Hw(4ULAD?f?Z5f&XMbFPq1GiUQYRM#r@2g&vyGeu2xJ}o&S8A#gDgm%YSDO>WymF-I%*;V*Z{ZD zmaH^FtXAO<1c3}d5fUuo7A{S6>A@)}0RnmfAk2stpv)S~jQv1?%p?iX0248-#e&Mk zg04^Pk-?c*DDb&K8+gxCE*u^}0u%s3{j8W4zLO*rL5Dg33sAu!q?qJLO}!wNq1nm4h)Rg5CPVq<7h7c^xRu-~6OfegS9ti(#qNdk%< zf;@djq)f_aDCVG43JrL{q5kHs;S?7CSiv5MCN^T@9iYM5gc(ph0VuM;7O;SDLS%O; z1fT}0pZ3enTFB3iN1|pyAF$nVo`G^EC(rL25#(0MwM*U9EnFAOuuE zOo4!X42a!nS2by;fg#x7-BHe_7uH~8hh5~U&PS@sBY3Q*#jcop`dMx10SgGg5A?tx z6h}!`p~g54C$)hCeL-3zmhTOM10<^uL;)4-4C2;ak&R3nDpvgDA++iQjO;`ec+clD z&{L||im}8Ibk$1EN^&#;BpiYh!OA-cngdj#sJ(3xhFr-RK^wHCTUz62UI8G0CSBeo z3!Xt6OhFO2&^zq`9)M{8vY*5MMuH?bk#fiipgC+KOz%8NX_Izu3gkcy&_D>yKnhgB zp_Z&O%GmGvZW?((iC%yZ_=ywT!5zqqYvOE%1uf5Fp!4W2(DrO$Fly4~fgcnw9}uts zC$JwVCvv9X35o$jLh2eBZQB*E9Dw3~T>y6JN4?mN4jS8nMNxqe2sxr{;eE>wvhArA z;frQbZq5fE{lF7Y0U#)cB!C;ZMc>*WBCFUyyF$(uR@NYL#Y-HMUa0{Y#K8y%c71Zc8`Ytv9Wz{ISPGTA`vM#37aU-m|C^yb!a z6an;AvI?{S*#M&wJR=_fau;YOAfTcu`s>POffIy*12{ks*uWgz0h3K!9R(qRq%C~u zX%_kKp8|0I>M}$qurD7lF!O;h3$p?9fdMD#qpl8dnjkatnijyIt#OuuaO#4Eiw>Uc zEMp(e-b+TB=e>^S3nyWEL;$b^KoodEB-GX>WhE4hG2gb!5zdwX6mB~t{~fSV+yFi=lbRqTwe4_ zFD**%^$PV+0~*Cf!XfNH4)|jEUIAACG7~V+9%O+kT0t9-vNhVl9H`J1+%f&4fvv#r z9xcRySRaVY@yCTTeb6IX$C_GeoN@Lxkqs~ayw21&bEJom3ky8KE5@ZLqM|lF!4@O|8hkPn9D);|@4fvW zn05hINWxFwmdrsfQLo=m^Ch4)Q3{j>Fdpm{U_lcIG834x4X{-cic~g*0}KHa1OO^E5oNJ< z1G&U8QD`tFh0Xwi4FrL0<94$4Ko~@>5;&_}2+b=Q(3v>Ql&e^2t7cO)QRH}~>c*}f zylb%k1i3}DXeL&Ki16kG{6JT+^c`3M5@dlJ*Z^LE=E+upd@{i^lB_-|0^8{tB%t3< z$M=aB^qka)pE!x*HM5)ei7RITC-WK!Fw-`wwNK-U*LY()z-ZE% zr>=|c7!P++$g5cqw4kSu4>?JEWNxjl+Z;j^KtK<$1V&$0BOC(%wBHlRNEK9Qn4me! z3{%jw%pU{-AW%UR`~Vw}fDpiM517Ei2egwwi35=ND_yS76i{94XJrYR4b1M-_;8Z{ zFVQne0whe96EPnXUiWO4Cy+11e5t@6z!qHIK^v6z6KpFIjKB$)(;-MYGh+c0pxh1| zf}*%?`X&8sWxA$IFZ;zV49TC}K#FRifES>m96Z4iA3(?G!5H+sYM8IB^DF&Y0Ts+H z1dxFBQC$FlfYb;Z%j2fYyV}d6d%Abzx)*s|Urn;}fgm(H;0ONS<8=WiFt&?Jq*Hrx zCTHO@aEzy5GS_&H>J*KOOMry!9Lchehc;%9>YR-GZ3fKUt91q-$Dg_1A+Rg#X0PNO z!Y5@3WI1$&-r-M5C{-XaAPiu^bDpsF{>&i37C6BPG%m~>K@b!H$~^1H)CErelz{`C z)vV;!Ar!$grE$Vajty|P5o7>%X^mMX&+;suXE#r{(1FY=S6ou#69|DtBVwBcf*05T z)N#R}vR$R)0U+E{&rRl`m_8#%FF-(o6p3IYNsz{)0R;REI+Q3;pg}AA z46sz`Qm0R$HibHsYE`ROv1Zk}m8({%UBQMG#79tBvt-Sl6-21e*tC4m^2q}?kDL(< zWajbXC(oHYb^prI>xa)?!gA#JJ%gAF7ZMCEM3y``=LHBCMr6@)rArt8F=EbW;Q~1_ zh072Gco1-bXM~_QBV4wO6E*6b0W4e)K!J5_)J2B^4N!q#~B zaN!|6jwCgT)QEc{JdGSd`huoR8aU?5s3}th4xBY;8ZUXXW{sKoX3W%QGAIxjDPX{u z0*pVT_z#dT$VhOIL7qtBfRG@B;)o=?Fhh+uFf8MZ_TE542`})#!wv5oLBf&mxWi66 zf*dL02NOUb0Rj?qGtRi@aO_H{3!G{$0LeyB;g3L^XbFofte67?2!W8I3N5r?;*UnU zIHLCmN@7{J&IIPf5NH90C@1i z1{EWDVmcK8j^so~20_ETgW*u4JviW70*xlPK$5=t@~ha44*?8t!2hNQ&gc87ukAuhpi>r}z!U-Fm_~VJrKJ(LyC-l(c5HIeeflM&L6qC$~c5tDE7ELcffqliC>&^n0| z=;+}BA=c28{wEB01dC4>+|e)k=C--#cdRa0Y~ z3$EprU!Ja4o##s~F%lDOj6N=aOo(qspaU|QKuZiX(5wWsvBxg83^U2T6~Hz3)4yy4 z^<7)vvUDL>x5jSU)f57GpJF5743K~U4B)1gW|a*8r~n5$fJ7s*6N%~ctW5#~4;}z< zAeXJjJPL!uhL*sECXgWwBdZw2?DGcu3}R{k5)gs>GoS;Jp<-kh1QJLRAqRMYgzZtn z7Xa}eDWJdwdcZ>@epZEpK#)5IaRi$hafqUEz$j1oO$1yM0i`9dQ~e8$aD>1EFwEf& zN4lC7n&3Dq0KyAgKnxa`fRYs4X$Lu=0S*%Pg2TN)j~D49+;%X>6wK{TbF4w!=vYT0 z?5QF%xFZfyAcHAP(hIffOcUCGg)U^F3V#TKCN%>HDlox`4*3}%rXYnWc%cepU;=wKl%F+x&^`3gXnpE) zpNg>%K>c~)f4~q3DIh36WgvqWw$OtJ9iU}O7=#P}BvBcV$qNI+gC4w4gb6+|g4-!V z(Lhkkd&*$fv2 zZo&q~IZjyBLyR{QbG__Y7F*1s-)iP}KQ_=I3tWIe_pW6dc1ECEJW7fzH5HtsC{=*> z`UxzDK!T|tCjj6TZ&a6K-tig`maH2J2Ud`RJNC374)GTx*aWaALR1R<0T3VtQBeo2_c9blW2ijAQ3=3;b-81lNSt9 zRP9JYiuv1(jn4Hy3nUAwiRKgwFAO$CYZH-8< z5)%9?VY(eMu5jg3BmHj#a72GTUGIfeUO9fQ)D~f;1~8Fo6+__zatcJ;!f-r$er0 zApjZXLa7T}xB~;wrJMYrj(_$f3O<1&obBc_IQ%4FbCk1GT%tg}8F>P~2r{Sq3hZYs z@DIoO)89Ya=9MzhFK<)qsImiJH@cK4KS|pHj{9Bm+^WXv*JY#^c zK@zH9ht9}+b8TeoA!=SmJ2TD%(47oUc3hjF@Te&J%r1-tkQ4*zD71C=EH87JTD=!@ z?|t9(px<)NJC6oO{{;upXG=GKYn%Wpkn_R*bPee?76`q)71 zX<75L_QJRACTQe{g^T5eF{-fK3Ez_Ku_e#k|OzUxP3NjH{)2=|FO{s&&{?g@Jd?>@`#_Kpz{ z!3r563$Kv>3iT!5;oG1H z{n!Me_ARHPjOYAI2H4087UT;MBths6Kkx%X-hd2#i2M4>1a&SDJS>LvE$UOh7fdi{k>|0ki-O&|nF!1;#RN8K1_0D$Xe|PB;)?DX#0!prQ%X zAPt%z+0?~eoF)Kx;t6Ol2_z7!um%Yt@CCsJP!1ud&W#oUB*OABrSwq)Glu6RET_aQ z1IJAN<&wY&<^Tq_?)$2s$gBn??kosW37+5y0@ALZZbT~lY3?}d+Tz7WHu58{A|#>a z9Ib*RPtqhuQYBXss%(iRv0@{+a3*JxEP@Gm)S~cUWi5=ynBGEGqDc=GA)4yKFbd;W zl&3FhEf3BIos8@AGGjBm=`+Tu*c=0$D&sWJaW{x-Tr`U|&SeqL1%UL)DIgIl_Af^! z(Mt};1zeyAQsCRN1NeHz5pZfCOG@8x5g-d>FZ=5cWZ+|xZ!lYk;37=jHZX<=5*Kr7 z7wxJdQa}aJ<`-4W#3Z2@O+WysD8_Ju#sa_r(jYX^K=X`(yejS*&+;ku4;(|&3hn^^ z0eqsKdTd7`qd{133zEP{E~g={W**CFbNbRB^D@FvFa=YJAc=D^lhYrQ^AF6-4Qv1j zzDkphqz$eLs~ANGe?T{aP_rUKIPgg_j_~3v4mrk>?w~L|aY+h23lSFKJ!#VK;1kqF z3lV^)C&dsy%VL;@=hKb}E(qg!%rKgqM=vg~E)qivuH`9n0=b&&S>ymvs)Q;zLsHUE z02Z|Kvc+3Yhx2a31E?zi*eS-c>o}(I8cmZLrHvasC2I0%EhoYvDk2BG00tbwg7OOw zAmI=C(Z5j8NA>bYHSmQ71Ou;+G5t}cd=#ZnYDfgjF~Nk7^ymdtU64bt&RARvBTKQY-L?htp1rcUy3r7d1-d0y+8 znrA?h(pUW8xB4Iewg(8arLsmKFMMlS!zo(CU=HiBGGgN^&BZq2=?*VrHp8;ohGVHx z(<#!@IZPmFl8T7%h)krE2vooZ+~iFhK@T#J-vkmA6Z0PRGGmIctFtkfWyNcj4t0xl9wm%?D$bTr8k0yM5;H?|PZw114y{(|HFNB{#o)+Zcb z3EH%TToX1Cz$<6NG8~{zDdZ%OKo8mg59VMCE@xV(vkRss=LS;z60a@lNhRg{f&3F>TXx%LTc;A_?AH;@p!Dj-}$lt;*REdK{J z($?Bsl2zySN8I*qOLA?CxNc#xIj-<;pO|o;*l(*)3uTr6R|#Qn4Oej!*O?|aSYa!2 z3-nfK#hixgCWJr$wn zASo`O0v_NR(F?ueE+|ak24r9bj=}*@fan-@26o_KA=bnq0T2ZClR-I@MR}A-xs*e3 zju2I)B4SVAbt3SqAcpY}j4?)F?0wKzebeAVHYArzsF!isfPp!f4fs65@eOqOgAA-Z z)VKap*4b*-%+B&x zl?r%pbV_FsmF)pw?+AHfheuX+e;94M3yJM+iH~^yh`nNM*_Lhtnt-f0Z)de|saS8P zSPKJpa0_>fub4iEX)WBsn0C@E!f-$TlPHl@4wegz)tH;Y$MS?lDJSpN7Gp8`(3(#7 zxaDy+O#~Lae#gKgEVBpHpCU@ zT4aLvtK4V4LpXe*?J21>44NT(AXL$9X)*-#31%fNft$DQ{Gg$5w+Fhn1Aq}0LC^(#(1*Lwk9*Jy zy>A~ni=Vr2BicS8U813TqP>t0jt6)OK~?q>dQ|N&w1B%+x(&Y@r1v6NYOV3km{gCe zxd6q2JEJL!OG7^|#*__Y=leB)8o%?qfEXYscpwF4;7)2F2V7u~D)}OgeNSQ_22h{{ z5cPU3{K6@`!l}L5xm?`}2L~t-z-3_DDMG%=q}gLY=vaURDmKXj;Fi;%uvJ_DFu(** zcHZf|-sznKQr6z>{jk{}2*NS{Op#D^Odtvf%qu?1s2~X-zCQo~H$CT^trI3vyAP1y2S|F?;3r%J2#5M}ECV>PJ+R5k&=B0D^$qcA)8s z050?71=0#$cVKQ>V3NiRlqbB}F@D;+9K$1AtOE(HLTq~t>A=4X*?AX$>K>{bz+j${ z0UkgR1!yxVHB>h&$4s z>+a@Ta?gERiSzu=@%C?dUT=NA=ZW5-E4tI_AGNqRcpx|Gr~9L$=hFd#kH9z@a~ZZd|w#m?~Qe zi8_-v?bZPxJiX79KK}gs`}_Y7;8XTBbwPmq-KU>{t|`c1gZK@|RDlL2$P^=tAY!3~ zh-{c4A&e}7p@kk^m|=#CoLHiU8HPyWiYc;)VT^>#NMnsQ-dJNHgb2c8k3Jp*WROA{ zlt+dR8Ik<4xUWDmoS9aD3wkV{IR!1oq zGVHJzSS_p|69h5jKm(sRxR8Ph2NboGYd=*0lLKr#z^ZMVxk;aF`q`@LYy8!g)Pg@n zQJit&A>l>t%>2W_;`0s3;b`u1fOWIz=ZT0u#677s39T? z<4CdpjXL@$2#|#EA;`u&Zp?AW9DgjNkq@20MwVN$0i_&gxGV?EFuyF)84=mJWkq9> z*`AmfQP5J*E}hvMZL`VBD+HRo_7e*!%s|6eF0>GZohNj~7@sc4)z(~H|FzfGd<7;p zV04w;7hYde+Lod+pnwCRILNR91R$6ILkppT1r`>COg%gbmEK;e{7YKu%n>dQi@S%07|1 zS**R*x?r!q@9TTM!SB}^@5CSYJA%l|d!X_D6%YJ>&?7JX^6pxHz3&Ha&pp8(qNrm3 z#1LD!NQ&b>jDGqHZ)k|bI2!Wf$UF*^G5tN#FMs_R*N;$)UaP>PBR zp7R1g0^68i2ti=M4=h3j^yuL&G5`;AwuJ;4h;EIc`)TK(C$=F(v`>{Wa$k;ibia`8FPHnvpZ;_y2tO3WN;qSK zM~vhU|2@Qj1e{Vt09gSB?rbOSp@SB*a1x&!fPyk%zy*OK6rvOjDN1Y8(P|Tg7EERb zQ>z;Xa$^Hbk%engXj@(2azh&8Gdp*Il%ilL1we4+X*EcJ3sjH+BwpYIC}?O5qA&yj zXhw+-=*$B+V95h%rauwLXsW^a?d zV-O;l7u5+_)uZ9%F;?Z zl%bt~3JrY%LP2*JtczSy@Prfmzyv>70Sbyx1Q-lgGaRVE z17@2M!96jN)FY|9L^@K_URSHCIVV$s5Ju>vZUjH*T(X3fgevrww`=U_Zt(($6m$nV zl-r^M&ah?nob5v1u5VYI^|4xCb$3#URtTJMa#Wx zoMG9(&;lv|fdwSE8wdoz0TL*21bq}h7CC@tJhuh{5J1y}HM(7`el*a6wr;MHVuNHU zD+xsyg9&@nd>z^}> zVM0nc)(@t&fHP^J3RCyif(DST1MF&A`=@)vF1E3c4KRcMZ3slJjOD@rX5wbQaKwX*Wo;AOoP9i2@UKu0=VZME(j~H5^zRh7BE3 ztOA;&VhsRBr%NBmMGkVL#*Gku5QQih;R%5FL&Gi2@SDSz2T^dqqkY1H$Wejiw)+7K zym)~+GWwbUn!;0F8W*TSZ{gSUS501*3o+#`G0jcs;;rM-Lz zi?;hXB(Yke8156(_Ko=3v25r4mU)jckiHG>f&4xH+(149G3m`RD^6C9iW(IDp^HC!-WQJrF+YLN0VxCz2;qk;FoJER094k4F3hf< zOAEX}1tYM)0YV5Df4dlj2=o!lur*;1AjCvoK{dfyg*vS1uXU-;8vpm7D)YSlYF5X8 z7Y008w}1GdYa3P~qXZ)gh*xX%NpLkvB{C!D<5qbEVsAxbd&hS(VhGk&2qR+%BQqo= z$UorbSbgv+lvNRlcT7|QgNAnnDiL}AWkE#$L3ujE9yOS8oJVgiu_{;uPTd7(8~_0( zU;$r77C7ZX_e5rCvmNn81+h1N5YPiAfJ6u|1WX}FMA$fmL|{oVAoSs93z91OvLIvF z6lF+%XNVL*;ax}Zb4rJAJwO5nP<>QTbKBQOq{9PQK}U~vC%rKnck+H|;#5Qk8MV ziXWn4t~h~=APBPfJta~IvE)8yMR#&niwn~+DaJm41wSE}KlrmtHP%bx#s@BQ5l+%F z&ghH<^fJp7Gag}hS@3w**iD}QmyHh;CN4MzEBJ#JWRsRx6f{Wzcfx0NbaX6mk1}Tj zE@cC%c62A;nVlH~bd*IVB#1xsB}j1r9mgMU=0pu?n@m9hx2c;>k(-J%k;WG|b6962 zzyKiN0LMv34B!AKAag)q1VC_)M|YeSU;!pnepwVvzO#861VzXPoR;W+>vD;~=863Q zl}*VmheV!4`IJeyAL(gHj~J8zFqFlXFxzvV_<3yk$vynpp90e`%=SvkHZTQhpdjLQ zbBA|=fOm9>F?`UAczJ?E5)sM>WF}K?$RwC96PXh+nf69aK9hKvb&Q_ngHe_{miZGM zXA~8{XL1%4CUAr@dM7mhTB9>sqjw?|a5iu(+Hove6d=G{wIQS{N~B8!q(4!lmwBWE z*Q8Dga7)B-Pud$vDgaAbG**hGS=y6?hyaST6nSQ)OVeDifulKEqbJ9s@8nJ0r4&c8 zGzhYBM-u?4p`uzUr9~54cp8o>YNS!xr#i``fZC_AHK;+Fr@djQhpMEBS{sYXs8{N! zssX8yx}|#Br+iwdfy$y|2cQ??sRaY7p$cvOsdi`wi=?zltMqoUl%TD&mM6A8eC3OP zC6|Iw2=_xW2T>$Za-qtkSU?st%T%HtdT*BHmq=zM*Mub=8lwAFWZvX^zz0b)Ns}10 z6h%0dQ8}OINnr5*8J|Sit?v0Cio>0bsDF$EXAGGj??fLA*^u!UuH1^0^}>IPB(C)up7;8%jkJ{v2r*f?Vjps_8Q6+i$*>Kpmf&NRB(`E0(v}iKmKtbF zGjcH=I3pk9u^&hXGe%e$LwJJsV?PG0$|PjAgRBh{tpe~QTA*3WYO_}mnU`k)IWbz5 zDX1(8v=7M?O9@r0(VMlIi9ji^PA8sV_=)sNVf`u~1skZS39)o*w+k4SR@s#btGCpvmLi5qqncuDha$`ty&hI~9SCDM^0DdL zZ9p=iHwM2bn4w3)1r`BY$S6%N=n--d5@*1<*kl2HX}_ce0`D=jhdQ)li(O^=b^MyU z<%+z?%fJD6wr&f&x1ugy%braUwrM-I8LYfc$-z|X6kIF3Mu}_vhqkmE!ReyG2e@_w z!=I-AdZ0C|pEA6k2SdXE`Y&d;Y&4Q=2vaa80!!?pv4|UYX9-I%X0nWHs|O*n_`?Sb z@nbP_xs}BReZaZP=x+07zn8akZ6alUYNbZ{M5bXIm#V0N%A@LP^3+VZ!km!dYv)y4%9@BF^gU&Fl=$X!y>)yRRj@yZSOccbmOmNj`tu zR@cjw(W|{9!o2|Z35{!*5KYk?h-mMX#_fNQw4ip#zHpt>Z28N(32><4*p#SD-# zAYnkwSkf~CS(5d5OeT328OCCqqCxAXCZ)QuTfFfM!SjsH6MWB+_`v?!&h(tl_WZTx zoXqVZN={D}O|S*WL!lYi6@T9U*>sJR z)KUGrOpU=#&6M1%)QvsWO%2(RO}vcV(?xsKx>?WNEY;s^*_VykDJ+1%v(@2K(En^9 zS-pzSi@jDoy#P&?eOueCT_O%mB5^0Huw2A(CvB_BmcA`9B3rW9b}=1e5I@$T#v}$i zrq>6wSO|0lHls53dxKFC&0zwqVIq0i{f75)*o0#=*sRS^v6Mc&&N)5Wq&>W*UBQ$s z+K=ttrQK`sz1dQ!)9(G*lbzq^T;KG!*r)By_Nl`>Ol&iZ;0b=&3+uoM4riN{HREt$aZ|>OkU)Y>c~)@uYMTj+aPKz+^PGMf_ZrxR2*6si#vl_wjJI$a5d%}LRd zKh88yg~Im@c0XOULCxPo4chW8&+Q%H_HBOz9@?!=->?4Ex2xGj&Dp3)q1YROM0>m!34?4Nh+=rxMoRxlWV-ZtDUL)w0g&>|N{q4(n!H z>gx^E`%Uoq4)Fio*|+KISPAUNe%lNv&rG)XSsbaSr@U=j(Gu^yQ~5H(mHv--Nkg>#S+A4e82~=xZd!( zuHUXs@CDz%U|Y_+uJBLK@c7O2{QmT#9_v`Y?+=e35udjP9qg}-&>oMsAiuq3&+J@j zy$SvCxLt}CJBt`{=fkbxxR^?HPtksbmx38c-SwudI&1U8{9k$| z<1lU}u@zfEU*twVe7u7cCB^jy@4yIu>Q%q>SAXz0o$yY-^|#);tM2f;p8BN!`KBNG z+QZ-we&!M$;UJRxH@x6NEawg0`?~-8z`y$lL*WgxY{DGP_N%<)VN+`8G~kiAct7I!@k2$b`(~LcYjjZprm; z|6%^*`Jd%hE~xwu5CQ~n5LggIg@OqaLQvSy;X{ZC2_`%kQ2;}W88sH1Xb@pUj2lHp z>?rWyB9tjrqGYrZ5hFw@W2T&mvgXQ^EoH)#*^?&!PMkVv^88uUCeWZRi5@k&=q64? zH-)y0$_OS*LNB8d${KZRRzg?7G6E|IELXH>`K;w5$gQBYaODazH1{pswt4fg&C^%T zm_85~Tp&Dn#03U@#+(tuxQm#^Vzkg1F=8-b!VrX9h=BP51jGUYFvLg)LWK(#LxzMH zz;(d@qF>974Li2$+qiY>roG#@YazRP=l+cw0&nESl`m)B{PlC_%ZD=$o*egd-^Z_8 zci!E*a@n-83;$kyJNM$+qZ9w$-hFQI&Bqrvzn*=1?zF8|wc5Y`OaB18s->{3DsYkh z3h^(%1qEENK>iloufhMUTBJa-EKE?s2^r-75W@&1ba21{FYFJ*5lPf4E0_@B%B!zj zbdkjlTRd?_M(U!gu0rD4(Je!G^fAc0*7BpTJmlaa3&AefOo#{!yW)y7{D|za$d(l1 zvdlK?3^ULe5RJ6bPD>4f)f%FpHrYN3sifH)3ZMcuZxan6@S>aVyzc6|Z%^0MV-L{x z3iT~KKJ)a>&*2Cav^PQxl@z-8n2QuQM#*FDQS>JD^iVzJE6=t4QmoL!5-~h*Lk>qY zHA7fKq!3jAO*BwLs}yW?RtXD4k;58mtQEsj{X>wY4r6jqzzEMWFfFbMA;c^~4B@IR zX{B{*T51WAw%WI(Ws46#_}Hs4FulD0APX+!aM#^4gDd?kjo_Xr4m;QN~sGsR3Wml}0E3%-~maDj-^>$kHx9xGK zO0q980+&~eD`bHIn_=9SGSjbrb!H6gqMYRlCV?n?5~7azpnhr`@~3+3`dA@`T0cLgq9h1(kg0stlh zYNl}qWY_&1zy?QRMobKe0Gd7{5YuQ7O$E{64`Jgl@jNU7mAaV5>U26hfhswyRFv&r z)*MdJj(DG1nazM_AK~e4m$B=ms91N)P3>%$%mLc2xJIB8NsVe&dllAT1)-)1twTgx z)zO?eHlmo&^!=9AtnX?{@_;WT6ivfWQF=NEi^N#(^P;V4E(-IolMZqpsPUK;Yz@ zo82y$gIZ?Kin%)fTLur8%5163Ui!OZ$~2k7tLe;c8h~b2?U~$^=GMS@wWV1zsMH)< z)LOzSp&m7w;)K;3jmjTp`HEObV@X&LQ3wQil`LhuXNz70qZi4Op3y22A>fz4`0-^e z1Jxg0`_~xC6wotay2E0oG^K}HfP)G(AVd8{m@hRDGas$o2T1_J(Lu0I6MT~eCu_`@ z0&}K3?Ws+DS4-#MOqaXKrRzF7sh<`nrN~@PX>oVjLM^qNDuUWn!8Xm=Rx_ztv+6g^ zNz|u$GpgvEsx`MN+XexsY3=M!8iPf}u{8@va%2(OVuV((=txIyWlOpCB3E|WhfqU)$Rb6bLLl>rWB`!z?Fik3qMH^eNPJ*Uyk}PbP?8`|{f=05MV{8f~XdCjt z5{0s)rD}iqr_BlzwmeI1?Lw>42(xs;6#lG(bE?^$N;qZJ%idGS2o(|o#l+m(p7BbY zycV+<#WVIIQnF{`<)JZ(Qgq7qdIBSRqGc;Gl3Q8ydAGLE1ulhrYhU7uq=DKCU-^<` z7T$X$$S`I}O}Z$5_liKoBKB_!ER!hHbg=B5)mI!{fW$|T!JWa~-Q6vCaCdk2Kr({` zcXxMp4-g<|a0?P#gG+$q3(Niw`?&pbU;6av)3@!^t*ReTrKt>w@V%lCp^93wA%I7W z1~;|}TZD7|yT4vB*6%zyvHdyfiobV?X+kG5;GS7ox;?_rUVC`C+;K{~G=#Y{r)LqG ztQj2E>VppQ#QOA%ucyDbRT})i`xYp7Uyym}XMHejEPKe0D?;lW9wqFZiRe{8b^rIs z_*tR}j=*qDIuKrz6)*vuN=}X=qWM;?czF&>{G(6beEn+z$VOB8JnqY8z?HC!Bn*G=dQ?(+7$|&%junPAur< zp#0N@uZnIgZ~VT|hEr5zaBb5Fj*D%CZ`@z7o*ZP@(T!iF<44AMFSGDOa5!t)s7KZi ztfFz^(Yyu4z6;=G*pG&RcK{Ie88iaihmA7Xa9%5>;@YIq#xHh=(vro^C}^TJ5Ziri zSZw$1_+=*9yZkBjAss3BnT$h1H4$s?;N3Te12LzeeY3W1|1XyWl&_EE5;~QSrdOXj zKh)}x^8v{9Sx0L)Vq3hZq46(y;sw}0m`0xbhdHKmV`uhhzk7G*?uUvJ34Cep9%gQo zFM$SjhrV)P*A2`=S7fPJ!GhRCS!B@6MrN067lgGkcKOYq7o$c~cZ%JW%|>hMLY2g}1f+89Imj)wTsAZW(; zw67+8eD60#l}g**#SSy0D&Rfyl@-M_GPhgbaNAHP7tLWGYtafV)Qsdxo}&&LfMflY z3p=GK+Z|f2WCVJC$o{t*=KstuoYWmF(j#FYFgDI3>(epW6*q~Kie*&3u~-!sG=g=D zj#>m$2hsCt_JC;VlY7|ey(NCa2GCOns5d()5ZL{+dz-C$qwmvb@P|K-jFU|Z{v;Br zT<^U{lME%59Ay2nvp0~oS&@q05PeQ?`?V{j4*SX)`!Fc_Wq*QCCsznHhtGX6q3%?rp3<)LvMy_sq`O#-FtFq#zT}k4mjh4+pctnvMiN*(_S~9WfZu&2 zlZ5Yyjqf-!_BFYMxE7f9^(v^gFN$?Qs?5)1P&FupsT&~uqP(C&7gYmwLF4UQsv0e! z0$VkHm=>4}Wb2ZncjxWwNmE(v689{{kdAI0FkwHKQam(PHFJ{i{~(cst{SiNe#z?n zmrV?6DkWFt^r%16nPn4GWfRkRESYRdSNo!AbQ`0p8^TE*YTTXsoYawQqGd-hsubmqeBkqeL zv9(B`^0g3qNxC2V07o_lQg}tp!$~Lm_X9uiI&EK+ER|u)O=w}}6e%5w09gb;APbjC zv`kjHOpGcI-*mnmf%gk>7=DO28rcXse(JoG;CC7Vq=$QHb6gVleOtj7fNrzvU8zJG+A07PqOY zf`{vvG2a*`s=k>IH#wTVz1-?(sRGl>m;ZPP*YXI`vrzwqY5a+eM!gxUFCqm@Gk!1C znOUsF5noe{7Y5Q4u{DKhh`$rI;PHLC*L|Q;Z0OQ-=%|WNk$@_!yp)o!QNfxEG~&|X zWmFL+Z(va@ObB_l?}ADH&>gxGC*q0)`z$he_?Pzd;sOlx=1OHUD$R!>1;CJ{qO$r0 zokQYjg+RBP%SVInG5#BH%gG7voyb8KGed7EiN*=8$LjxyI|ngg79KXE^Ol|SJTw1G@M6ARw>S1S1-L`@g36#Zsm zfSk1z#h`y{V&Fex0rX8#D@r9_<-TNAx*JCMqDfgVi`T1R1OFSe4{dR=RHj_Q>Vdzc z*gXJLqi=!AZyzjE=`PSA0qU^uBBT;P< zf@uHT7RE^k!6UNfuh?cCO=u_IsQ5AaaJcQErBO!n)A`57)8Y30jL{}Y?REOc!aZsc zb?s42&Qe->10dHyhvV0lNCUH~*LEVg%K6Hk)yK-9?s2;b}rbpPuT( zuGG3E1xK3oiWV7%-nJ6@dO^iVg$0xxuOqkEpuMDf@&GONOMe@jDK6oX%Id68vvShT;5bZU{PcNoS|3OA#uG0>4iTw>)R zBnr&fm`)mTPVSOdPN9vJ%ioB9j1iAmYCTh+nTqKmKHc1$=>u|VG0bo0tqsq!3Rr;0 znfiyGm9syTO`mW&(hhO$$3Zda@m&lFTC3kz}QzBqXU&|Qf z88POM+Dzaf%BVF(`#Nb^zb=F?x0BLpG zsg}OUvb;!L@^XRUB&JeUs$0g8&?^ zJp?8g?KS*b0_5xlYv!B=|h5zmU ztJ`lQH-CO05cks%iktwLd%Qk<@R+4z760b~b>xuGNXMBse)~B6N3cf5UHgXZYR1h- zOg#{Ki5ZcNe$$3$Sfvp3gjGT|y)`wbpK=ekFGql3E=Y+pP9tgUoZ4?N$L zdZ1<^DJ)G{@oD7+XBYpL&jw6MKi*mrsLEC!?GS8ZU|%6IxnoFKF?9i6)Xi8coc$w1 zsiUq~KRUzL+?gz3RT!{8mq1nlxQM;AscoV-(t!j=O)JI>=*vF1@t_8GZsu=&3xP+2 zxH%FAi@v@4^nm=zMdHvk{dzW->_v$uqH zGC5)UZpQ~2r8PeTxO|;us+;NuQ2bX*QQp{k4;{B!r@s(5YKTvc5n-O$;$FVAJ-TGR zvfSiX&AnJYRj}LaI@@Kpx?#8i&3WA?z`FIk-5T6^8r*#%VeAs#Kt+4pC%bcbd%wbS zKP2G4OZT4!eR6^mNLcq$6!#9p)(BrjYrK2_zs(dlClwlh);P@k!85q6zIFceo3dt8=M`)mrZaw;fvg($R zt=AN4wHs|GVrqa&mDrGA>b?J91HkltE=(kOM^pC|*ghgO}~sGzNJQljoZ~RhcLV zyG^)v@k}f-=a?9ZPlaMO12QhTp%&9jx&R7skCNhBCrt#zlt4~*Zn@65@p43jppv>i z^eOMKR3Onv!s|!N;n$V-8||UDJ2SNQjd`s4iYC}zmR!4N*a+{&hvgHpIIIqY2x*U0 zttYHsq%5Qi?jXbX=xEqd|ErjSsH7nEFKsYL6-F+m8nx8P5(qSh37{Fo#_a+>RgjDP zzCi8#^eXX@OxXKqGF8xhKrG0c`g^1HD+ciS{&f9I7#8P8vFDpv&kud;A=4)NZ> zz8Wn?xRsjhnU2l-cOYNfc&b|;?WD*#{IYbuU4+t1Q;CN(9i1&3UBgf!8HkbnsII=T zm}5{!=`b<4`tA znCpbUCXnmYb!eaav9|bIA%Nhmj3{8mv(m|LqddnL*1BL+TYpvzW%Yfv{Z`Y^_ez7z z8bnRhGzdb(PXe@zJ5dcG63TI{d4R+;YU+THUgw65kH{`Q1A9nP(UN*yJ1Q&^4qCCK z8GmRaDPtTgKi|G6?nTiY;nQ{FGpt!ep7OL@MiEdPY7eO`i*gJqkdG&ai#Ovh#e(F2 z;U=jNuG^$bP@fjZ%h>hdrRx|e=^7X&6J$(^5^L!hIF<-!7#h`2yrXvS$>uc)ewyc{ zw0eR=p)Mu>154;z*q+RutY@_-LM9~A9ERd|Z}Hg_o87Xm8wu!Avo2udSQ*X2vR1|* z=;}7M8&n^-88lTNu+wAe@3ZdbU%UO`Zi{_$S4|%PM8LO@amXiTKmfnI9tM%NuW)46 zcdU-N{`Ri}0S4(_dd9DY{(T(Z8^FtXy6h#rbhwG2F8O!WkJ@_Ptx?nn*&V2Ub+AYz zTz0T|F96@RPQ~DS@QhTA`FrqQDJ6j`9V#;M=XUs87Or80!*iLA*)Zhj(eaW_{K~## zI^D=9{nLQqap@?sy6-%JzL`EY5|A_m5~M&8F3`_s9`F#sV@kDTOTtg|Jpf5SUsly} zP3kjFoD^?Zv>pNt72y31qfX8GY-PAN#h2vIZrjyl+eXWscqJO{lyxR=wZ1a?n#dpw zMc9WNegKM%6bQ$F44H(Hs$0!Xmn+WrNTeh=!6lp)QE3l{V0a|%m1!hOA=nC6@K%lq z7a>5=Wn8+fYcyJ?Iof=Bk3euio>LFu%>W3ATRFiIM3swoN!uqqhI|wF!JX*4X-#&e z_=YGNVeH$W_}#Zkf9VNx(|*Nv!YY@;6j+g4J)!24GDWmD7|G2xqaK8F zXr?fcS&?t48PjUC*P=(%$ZdgO)+-`&YLPp7@(L;*N0b%+w6cH z&J<3kY)Av0uTn3X<1M@t+n4pD!%51*iN73|hNfB?RO)`Q?qhRfo-8bO9wCW}*WTWoEq%?;i3v~#!d zQ}}byW`hWIgij7DE9mI`de6UroCx4y&(mzkcS>IzENk?eY}dHtJ6hq(E(_TiKVt3* zu`=v)7Vs+#hr(8@Tlfc=m)!jd%K4ioC+q)2oHu?~&izUw;D7N#)?-4$HO@odlHH!! z$MS)5!RgWWagQx>COrui+86{ksq)M}wo1&8D*H>b2G_%1Sl5yp>k&5_FZtHYG~w`# z_D{V|j~oGYCto1Hn=(x=PkN)2Jga5_G2J2$R4XQh!zVg5qdwMDd(u)fzQ*W3BB89R z0_lEJ#VdlY!3bo9Brg269Yk?RP2<_JPK8YRYp68SNEgUJ)RVmehGxnNdLv~6i7HL9 z@66>%MNF^>S5GuX3|58pnz=D=Y((pN_PaSoQZU+8V>Ybt7S*Mfy>X(Ft?1c-zx)a3 z-vZnU)`8i2%F;oo6T!XXI~+D$#Do`~hJxp&wH=HN4-PJ#e3r3<*|uw}sS_ihbjC(> z7LHV&zk77h5FE?|u!>9u3IJLnu8nNJz1#LgG?r&)|g&aXqfr!?xGahH8oq8M6ZK~7@(7IhF& zrAxVF`?p80tYl(q{nkIorub!3NNexaz?-B!xVT}Ud)mIiJJ%cGnEtgpGj!WK6O7v( z?P8Xp2?Vb*S_Q0lBgsxBO+ox4)P3n=h%^r6bp%Y9L*HZA6Mgr=Dv#7~vG z>AFT;Ss_`np{`_gD|9)&NzqUN<4!Gv#{XE7Bh!7Rh3+5Di9eUP_2G0+l7Q)20 zg>gueOpH##Gb-A%qI`4002s-k-{-0Xj4#rLx!HzJ2qCNFaG(4k6#|W&q1OBIiFg%5zXF=VA_Unnd zMwf`1V$?C4Ff5Ho`<|jd>vg;(TBr4NP1!Qe^;!Mf97PIsVxnW(XN_6J+bkv)EM}za zD-10fW+?9WG`eMc^<5p~&A7iNQ1d}zaNa6G9^4v|WTP==Q?^BrWgdiB3e}tA3Q;CD zLh~23 z(>bV3R(0Q^N_ACI#Km2VK%o&cRiDRyIk7UfNimAsV1Das&0AfR!?32ZUMhNvAP?F4 z>>?~1BA@1(h2RzdUL*IH^gUGfe{AZP&QKrzEhG=39X%`-(mLD_vK^7O-Gc0hm~F~- z(@L>ei1F++30p{cL1^|$5!DIBZ}%OZOUvQ(wGkx8=!F9T>LU6@;cW~uJzLL( zpYAmFz7Tt19Q&VDwEBcQbPgj2A=?s&=3%M`r}8-0fyu|s+P=e^hw&7mt`y($3yA(B zJEvCC)`=^CI>$`2@O;NxEc2p@MJbH_X1E0o@{g!7*D*S%9D$xA!J9!N z=w4%+8#8XKY9Fu|yTD|yeiGH7kU&D8@RDS4!^HJm6^EpkM3|9GahgcD5_jg1f?J)s zeUjpql%jk(py`;-!|dbas0?EaxYZW3Wem*N^s7ic@U6}oMmRFH|CW9{sWz?P0+FpQ zQ5lpwpIMZnj;0Ein_oVz-C~5JQo=47j~|Yu`t2Ex3S=;nzq!R4KDYa0b7OUVWqIXbW&Y^kpfo3kUre8pl8K&4z{bkDtFeiR zTZNWI(#73JPF{r&8=FH=D<&z2OGI~mcK+<}Fs*OBuWK-&Yq`I!GT6_*r={(9YkP5F zQBhX-;o;FsgD2ltJJm++y1;t*qvBPzm7S@svN*ekuH;+T@6VsV$w_HoAQ%M!(cVBI zD>>O)lyE%9@2)TKX$bZ-mi{;xc|Vx=*z55tKw>=a!{c;Ag#lBdxi}C2SR5byT3dYd z{Yyn|_I%y zQ*167jV0oB+8oy`fdLVuBI%@B1_5AXY&wH#suCC?qQzvMQftLbu8{YU&0rDyeSuUM zD!Fo7)qJU9DvRl4o8uyqdZ}{0a(m5ktwF030qSzmYNMHG47o~2-FmCTqMr};4lo>o zs~AJ(;RT97C0x@AXVt0v`2_~%G$_J%()#*2n}(y0pLKUEiB_dRwY$Z(6guccvF1gK z)LtlED^C>U*-2abIUcPCOguRer$79qAE*Q-BO23$Q} zoxcuz`SkJi&jW(RClDr45&R!PRMAINjsWv8%nYby=s(vZUHgLajyWe1ueIVxj5kdp z%JxuUNCiAsG4z%c_JMiw6Awxw_aQEugoxjSuUW+&jxTHAAu%5$t#u31ML=W}e$UsRdc=N>N71??q9`wAp5whpv|^V7BQ1O{g|)r6Jw6d}MJ@Y>N#rejgDY zaPm-TEnY-j{;&{}q}n=MmS3<4c1etSQW7U{c2b%|5kzljnLsR6o?(?!T~6TmBNh$^m_Gqe&uW_#URln=6(ml|Qd*B{&Kvp^dJGMV-6pH$hrEpHnhDzl zGQf?F8Zs70Q7~vO>N1n5m893QbJ+n3q^y2jNr<}PH5!^)Fpe>{8UNtgTh@Cr^rxZk zN#5a5-;P|gZr~5*6wa4_RwKV;nO^v%5SB#fq?GCj{Tm9fIX!@R$2a<(T}!^b`D3R_ zRR!OE)5lQyLc{9{$2XHdA18&~`q!o$;Kn#lV|Jjsr3(C2;{T z93~g+|1*KX2}H_A^_q^PXl!?&4`})zUxTZ=L^rwN0mE zY;Io1u0&PQjNctePhV-OdMCX6N*~)O1bMNVp{gcVrk(NL z?(2C!$ps|bdbQFrDOSAOQd5h=#%rG>qHLnFwBWzcYWtrdjlWSxUVgQtO0JwAl)7uW zsb_k4G_PPjdW;0BqZ2H3ZYVMAkO;x-;+$TKQ{+fkIWP|gNFqLCk@VU zt)=(MNj!+_YC#-diLqZjndDmgT}Zy z^$whP@u8410+LQDcN^bD^**|9U&w$S(z0U4*p2!eo;b~3Fs~xedHcJ|2T#TKeHH}O zLgTjt3o#^?sgMpPLR6tCp{v}LLD0@PSI@6cM!9(j9{2C418bvyoFClFDbZ;mol@b5 zl~L(NE9!Od(4d^;8z9-iyz8;8$VM<07Z>)VZzr9?x4L#;+`RV zKc4zw5?zNkH|=#cgr`*#J*tA=TzJljP{%QqZ+_2fSoEiBYc8Z14^l8H1ePljABtP! zD*wvuk^L>f;nWfei$` z-?gh3iLUPF2A2&By;wIE067mBUe<4aVmKNQ^_`>wPkkO2@I6WF0hy0si}&^mlXB_4 zKz4b&NOBkjc?gmzXh=^P@%vdJ?q574(lx0KL{2yQyva5sf&i!JpFMg+^*Z#^a*2G$ z?Jc$x%@{(_->2P@&}*$mg7}B=3q0aj#jF$P@DZOsn>XxQFqkXOYnn=|4O8M_LsScMj|U_5@uB#YCN^)KPM2njKzI@Z#S($ zjOKV;Fe)I=y*Bjw&C3c!bfE`Vt-YIU3ui5Ix#sCzPsG@EA-vw;r%%gmvmOTuolB}^ zWQ7@;@ad3ToK(vgMWQ?9eH_nsYcR^`xGK;pe*n8)O7w1b_6rVpk{qQ*QR&(aLmY@Z zgpca(-YnN!CZiX^|50qrze_Ry8c%+uqHogt>Bn#Dhx(f_ufF{ye9lO2kaHdaGGf+i zym{yEcQ!sP8|9VxEE~#!o`I{u-+eP~^CdBFTW|Z0Bk-SP!X@s*qt;W9cRT?SN!Fgc zJBP?l$G0(YMVZ=S?SkI|S3V>76>K0RC9g8bL z*>?gV*Sed&c|HFgBHSTs^CX5^P;u&nvXcUJ3jO<+F2F!EfiC}hDL>4!>B65iuRgDQ z!MnNJlB1ocHB0lCjtUWJl$k!D}8Rs}#Vaa>8V7U|cO|t0fdM@eO;VNXc1qEGioA?Jh3>*eFBM=^7!qk$9j>>0VD8yRO6Rf!jd*dB@Ux)zCc6Uk?w zN2w9bA>*O$&!w9M2;>GLK=H7>bk1ztI%L9EQ#gK=a4g;N(|R>_G1=tV`)==sw@2Cy|;X zv4l1>E%xO7HYU7#0L(6IqO1tpBiAd-n0G|sHVz^!5at*m>UIaUWg@O0LW&O#iTo98 z)CbywMBGfpK0ZuhxE|z)un&Lwhv{~!UBM7_ZDhO~5LaGGX#W}u-S?o%uwL12mjJ6<_Q zQC3FMqmM08c*Kdgw=k>D1i4>!fJC5TkfU@kiYOw17_Af;c?W~lP})%d7cJ~V#<5WJ zx`5rIdD>%Ek}zv(wQ_cKHh)(t*f+a1+_mo}o0`hW3h1zxp^~^N^qQU%ivqhm$(ea# zY7SIvB^K&Zl9)xw2P3lRb+Mr#GMaXzsCDP$$#Nz;rrN)*g*zE!FX896^5!>(72rtw zIP3!4kD&$Wq_XWMThac#xCMLbOf!axXWa$jj=3VE1=aKR(<{bXU6zyFh3LS%-_;+^ z6a-(o3yB5e`5y}j+R__}jW=zJRQzdh!Nr0@MJw-=kUcm?x|POG`4y>)C$kG-G6hQx z1p@L#pTdfJ75Ro}6X;*CUFJ#3jsO)M#TFUZXY`?b(k0pD*y%)t*+O|gyV>zXGSgQI zpA<`lY)h5HN(sx#9jMdjcSx0gl+Foiwmm9oc;Yhe@~wRRvfzwlDf zuPe>dXzWo1yg~YEf=vJHd6|EBO+yM2dYF7fD&zWasUSUYU%QAPO-fd?a?OdlBT+m zCd0iZk{ds%_A(S8+{`8}!#}V(J1c0MBI1?4L0zWlNVbJOwvuGRF%#DnyV%PrFdqll z_!E`&6U4DTx)rUYbpfRXpP|KcxOG9UonW_EwUZ0k5dgyGXN$!K3kNdRz_+q%qb5xZ z`9FH^w_$?XPnp}fBil)=+K-71vqe5F`$yPz1MD3;94B%KKGX!AcoCo51l%`(K4vGbjS7~acX1?o zWVx&ZZ-1~r&Gz16;B|NFpVl7M+Wzz2%iq0StbJca>mky8CfU7sp1o5a`V7zeW^4P- z!TpP@{m`L4kZk|Db3ZY>-)0ZM^4bJqd$ToMgSa%h4Kuov$Gf*x7=HBPT%diqip2px zd!x<=sC=_$swP#APU}d`4^8fIDVENQX#AI&WFPrS46m0j)7OJkG>Npk-LRJQ2E>jH z<{1R>VuSexfs7U)!-ZTdGNH%w$Uhq-|9!yGcu5SyVJCnAG3Oe3<`dVBUCR#@dRJ)^ zPCNMchXq+WH5EFmxpVn6z-)scfk6;07l@Y%EC?H*Kx_Lq^~K^F8+j5GGEWou5IZ?! zN$>=OcJ$P#*t{EWt0rlagK-dpW&99WSIj7J43KLwGak7}w~(*G@Z zn3P@5VdOynYN1-uky-?Mo$`w4?NE49z&^8!>Ft`&YITa^!wJrHi|fS)f;o0TimKn( zu)!oAfPm={j_Z-&I_w-{r(cYtDAdE)yV7A(WT3jfOT$97iHQ0roxjjbA4AW(AU=-) zY`~bS)y&ohr@Id`9h3b63^>2odVo8@!WLoNE)3TXY}N;slt(0tzwBLh%cgy~O3%29 zg?v$0+8j5(O^uCdGmMma#%_>-*>+}p*uZaXw+H-h#|H~ifjPN=B6C0nu7tBG`#iMy zroUtJ$mFjsZ3M6Iwk!mGm*I#VsI0Dh*T2toZn424N<*Ce)VXZ6n4a@nb@Lot;Jsh- zR2NG$Twpb|?o8Gt^(vhFT|gGA6Qd%egbM#-$gki9l|Q-?87#)L<+s*8HedUHH3 zQVabTUGs+th13aT`FW@2NagzZ5;m~b#XLCC+7_WIxHZT9UGwQYR(kc#*QooP;|=^8KB_XBw#Cl@%rf7;n| z=GWHN-hV%L{^K;yPg4z3)5+`0ug62eo&&i8J;+zH?8RC9R>#P>lKNNQVe|l-W{BB0 zt}yn9T{iB>7ase;v>sr#rk`q6ATf(&>bPb3Eqm5rp?kr=7_!!?=;l}HF*SkW1XuUk zeEa%%!iG+ex7Y?%!93kI`2J#Ev#CS>7yB9)?-bztk6qNVzW}xZ3c;?1LXv;Qrw36$BhT^pIYjN(r19@ z*SHpvW)hQsAYu;y@!S#x`Y_7;q>KoIy!v$ezT&?wz|!#!mgU@#Bh;NH#sV)AYEdZh zwX08t!&idMKjAnf7F)4ko|S)!4}7;7Pzi zAtl)&``t0yjnJAAAfWN|?)6G}_8vreqQ!B@2Kx?495*-sb7@>yZ(y^S{oJbqw!2Ou z&uw&k2l32--jnTnK&HBjPcW#>Xa+|=fQs*$0T_q5W2;{xKhr4YE0iLaA7tkz+h%gXN#gx!-5O|Y-_^%c}`7|ae^MU49 zGwdEW^M!|rLbi~E;q&0Oiiu&g7xz=Kq`ZkNam>{3z9MP+f2e5g!8yl(A<#D|GByNU zGKa8;ND2(nw{~!=ZwVBla!s&ekPILJlk5O;4YPiiK*-RAy|xz-gU6&Wa8R|U5Q&2< zw-zkDcmzl1a9Lww;zGheV8BK2(7-*?s!&T6h#=8D)2Sw^G8=u-veBzSLgfOW`3;3O zp(zt#OApIH%7AQA{8Vr$aEtY~NQ@0CPQ!kTzdSn|ned+j;TV((c?LIDWAWsY3Vnkf z#+@d`676CSryJ8M-2MqY#C+4UrTHxUYCOIUOVuikkDEVyUQfdiFlbcAxrQ+@XsDcu zm~H^EC~T$zy4+gQFajR*NrQFVnrTv6ITK3mu%j6q;yl`5GqTaK%o6=Ck!nVd4)>=@ z622C2?{NTugmr?Xc^L%!35wt3TnD5X9F&+W+nbf_8(fH$9zgozEQNx^8_U+rHjO4T zM77@}izR6?-Je;9+boA?UbEANr*Ff}i)$S2*@mBqTO_dIGD3|MN%F%Lsg0q=p=&Q( z>WucKC}>yoM285ghRUt#QUs@EY6q|_HwP$(yL}ysAk}%25?)A%@hpQ*$+eDRap4t* z_X5zT0GJ{kJMhP>5-G4C{hzA_WM~2$fBnbe~i>pB5$#y~`-? z;s{?2vGr7&HX-K&-_lFQu%`;CZInaj=Z|F$pTQpEiXt@#*QedYak-ev=L{ta46!X@ zQ7TY3R~`io`3s-LyB%-lQLMe3+6F|1A^=FVx&^?C3ITZ3y@`^m94K;6RMUXHy;kF9 z2mpN!5!o8s44pE)ZF`K#c3R8kw{AyY$gA3g0c`45r;hd;=PewfvnAcj%GkrSvR|eJ zh$M7#wnQ{Z?zN0GWuF|hjtz+26}8l7Sy_XNU-*|jUYa<~xG-}8II$JDhC-cr@hkxn ztoN<601P1*C;^uXZihPYa@K&p6`|ia_*(LK)i`q9o+*n#DXO`XZtP;%-uSIz(z!*A zO(@brr5&h?Ls-EShECx}K$|26a;z=S_#-_jXy2}L=@#^><|1Pp5fopkzTBHhO(<|6%Pbdf9URRR<3ueM zgC~!yS(M;54#fu~1ALjK!x+B}O15P(PF9KVaZftvZEa_67*?6jY{!BwpH*Yzw0g_( zb`XF>a3mQ3Xr$#J{mo zgf^VUdU2y}z}>oJd2g^?$g<%-V7U03I{@9?+9;qMRdVE8M;MDC5KFO%yJ}6!m4|2; z!=|W%5TY*rnUwgG8LT|{uu5RoPzhPJskPxbNnTitO8?%D#-W=-3I^1eFDqf}ZF4re zv9h!@IVtoIM{?#(OT*ZT5+Gpr`kdiyV{eBqcd^T4iRP_1uFyn^(^rJZ?lHvZ*aYHl z;btZp&j1W8hEig~!BA&lb4;3G_R^K|)4B9Nl2u7kUnwBU;CoV9W*Q+YL_2Sjn2o2{z zuy=%JY$nw==B3~Wow6e8Q%(I2^>U}Pe7TW$8J8qr&@H4?ToYGEc0vO$+)=pw1I?oy zb~rx5AY*gco}vf?PDkhtqT;4BJ@Ouixq!!bY=0bCC>8&{`*XFLtFl&gO5waER}MpZ zj6NY9qlk2B(<`)Y5NX->9a@NO1%PJ|qLZY&d5RfHidwKdEUbf-k0szKrU_&Z`?1u( z81zSrUEe@dd{vK=^?d}3%nt?KNO>vIqQ04bU2U_*(y$oh!^$y5DOOgNOb;^QJbC|} zm2Ez{hOV2!0J}iC2Z%@DYmBR&U2H{sQj}OZGv_-p<;OoJEX`tdzS0_+4+o7WuMG}l`DMMF+9%F$(i!a@49x@qVu>)!^M`z$yDDgY01BNwAA#njF z{BX`K_?>H#!L+}Sczf5u+q(QI<;)i00)%fyD-ae0u5xrjP`NxcNMd!3&TM)*XqK~5 zV09Ok>rE=OU*xK?DUHCFv`<5#`GH*sgqxIvK!RVHHne1gzOaTb_xb%irehm=-k;6e zr0Q>-70NmDe2(g;*WCn7S5;qmia_*;;pwoD3c*3I z8DI~1D*LKhJ}kd8ZG(ud`Kx%<-6Q_wR5yb$ilRX%PLvcJfeuDbxe9!o3nJ@_kYmuz z8BZXKbo~Z@x4}Xs9gB%+;K{k*u)MFT`by&@#$lmOozxQCZd)a_yL!@<8fP#v0RSE! za$)b`34e8-PFMSnW#2V<8Cg`I-Z|36^wWfr0oRC`to{6bne^0Q^>yet3`NCZ7}r1w zjJMi<$qIwZ7;^z>l6IJ~h!g!-Vn#^sBB|H^;R4D*j{vX!4y3+KEqsHrj`2+KY0yI- zVG&SUQVO`D&1UA{L>Q#6Eo-tJ*jtmmgUGlr{Wn8-<_pp_AYeJzOn30&i@>XQGQ}Vx zNkS`z+4XfiVQ*oF<4;sfD%g7ZH8UA(2tz`3lhTH&h!RU1f=~X-^7qb!6hV>yVdR)yl9ZED_07nA7e>$phXw#Ic323q;G{ym z6ii~e>-1#FaLOHSRn5Ut9w|@@)e95(^5Brv%bZ&VA%lc8ttBkUr1;fjWDE#-Tn}N)T7MHHU9-)$2yOV)=Qk5ynBYPAf*N8tG*2o+{9++iA=a@bx z4WgvM3n8e)SwNw>uPK&5niDCLc>swA5N{grc_;Y_4EzSKB-R1;qE;l&v8J4`eo2v^ zxa%wpVxyR*y1a!ZKUKLzSBobLvU#Wdt|3HYN|R;ouXIkE%lTI63|N#Y7{B8I)gb!JW^SP>p^#eIW8`^i#_F3Zu zW|y=@a6!Iv3(v-|Yn&3CE*B35sPZYQ%A3>+S4JN1*GC}YFrmZdBhpR=Cb&e|`v9Sk zp_a{2!O|{{=TS_bP{x2MMp$UbWEK@J_x=IyGZ`KWanp zaTfV1XYtcBc?#U=@>jHc7S;2OoGOf&zgJusN?4eXY_I zA+dv4pz9PEw--+inFt`sAQ|BwLEx#x*R0Y2EL9VW1|{_lGGJC^6n#xh(1wkox3lr~ zgL*sjU&xUxW{tgP`GkRaZSV1S;3(HXrY<-oS2HCHjurL347+Q?`^){#ETqp=}exyUhl$_P_p#CF`Hgp+V_TL=~wXD=S(8H0ksWFLkWx zG&{zs{-@)8zNAdhvxdE_EwB6j4PwZ@eCVUA=DM7ws%u~x6VJtgZvZDAoPj<8nGE14 zJHV4aaOhlCy}`t#QJGCVL&XyS!6KpeK&xL?#d2hPkBw%{hYtz^eLi^OfWmWyW$knb zuJ&if=96n$Dv8%{a86LdlHr`hiJ5_Y%Ow9p(Rn{o{l0(vb@p-2an8Z9*CBh9y;9CG zvN`q$9eafA74@6fz>T`}2QX!T0A%rB&w@Uf?{tNdn_jO&*@sJA|S2iDU zqq#i$jsd^r%bkCdANR3RAfj_VNkz$e?)GF~3r}I&iO)+8nROU@Li= zf7uSW1zuMu7#`{iyxj*K(r6YgkZ8JjLz|}x1MUmbX@gnTbmw_7a%)=K{Ke$@>+si{ zlMn9uGWf}_hgK-OVC&{|OLRQCG>@T>3(Xo~&|ek3Q3C_DUJ92&v{SWs>Da$GA)~)u zv!8GQ(-&YNt(~jSo2v<^#Yc$sM;137%*AD_$KF^y@#fQq@PiCV;4NZ}SqNh-AXk2OodbW*^KTrRfT#P{kdeovh1Wy1c#}JCu0| z#9IJm9Ne9(qW9j7(Cl}TTHIf+=&Jl_6a9gOG3WTdVpGMKXS>{9#K`aiu0vX0&2*7x$jn=G@jEj8?gM@O8&?RQyZ**yEVbG-)>YxBA{mF)s%S9yn}V8 zZg_p=r`IzOS4~L)9t4fS6(Tz%?xAwe@78z5ZvTb!JHrjh1)a7c(OS$F3()gK{z;_Y z!`VQe1mM&J2EXozyT{Quk*hD!gdbRzPg4J1v=;j>Ps+%9;o0{jpC$go!b@VFi9du+ zO9Z?Y!W?*qzv-*)W^qX*9C8%kDUAVxxPXWh=h}=KWB!qjWBFIVkFkk?T4zr=EHNZQ zUb!?c2g@;pt3g!IyPt>!pgMiO=AyD@H$7RpUy=iI#{C9yZ$l1SWTil0v$o-`zWk3S zk8Q6F*0p5K6<^$zY2>b~v&cW?!=3Q6PICO-`JX3(g!%906HpdcpDuaIRR9z1d^6~~ z$LB-2Vn2LWJFGMrqPxxdy#|dOkt=R?md~MA{=@W!W;FzXpJR! z*_9j17Mffm6*r-ojPhcJ`#g7a_N?G!PrCb19SEvL51Ol-Z2mq%R*+oJfJh8YXCt{U zpWu6I%Wd;a+*U$6f+GtfXE`M$yquXzA6?p&5 zvD!A${MCDR$7;J}AA#Z~gKqhElmg#7xl+=>BDwnF#=#HooxH&vBEG{Aq^B#=(|^@M zl_nY5HB2XH#2J!!N`ll`WC1TLJfxh^xzYe^d~W9bRMz^K)qV9Be6Ea4=xk2!_{WgB z%8+E;xpwEVlr8x3t-U!Oun^<+xk?jcvTi!Oe~)KNRUh!%*GHbNm#qRW2~cs1(ZlQ; zAq)PZxlgjG8}2EWQ#K*oL+TPd5LSfP_qEpz`d1rEO%+aAwXRmIVbdjBp@(|Xm09Tr znul^oy4>WM{aD7%eD(a#O0{3!?zI<0I#lx;Hr!9A<~1G$5pM0s;5>f!bVVk_=oFN% zqhnR?TNOAB?XMEQ(1OoH{Y_jZgi{@H7U|1Hfw;_g*~}Oj5{df2OMOps(@3 zfWZ)M`Le#vI@83^lS$vW!LYymIw_`~^zSY9M^VJR({$07=%L<0$p30qYcHY!x7VLE z7+c~mE7n9~kKF%%aYl79{g6eu)Fh;X0W$rV_BHs-A5 zXVjz{F65R0Pz87BvA@r?L&&C$a3@YqtN9622rxYjgA; z9I!7j6s9m4hDSkBxevHggGRF$!XZ#OG=#7RVMjnj!SXvNXg&S$$5-CpSyPjseocYm zxl7k?r7)_hzx|@_wpsiX<<(U&e<(c(Jxojq-iOFlcSx10r`p@uKdCz%Ua*yFr)%6f z3&Zx4-&&l({CWyvs|${P_WG~b^S@aJKNCW-_^2XaBW_phcYiun&=ytmZLs8Q5&y$g zvVPP4@AH=q$*x0>>_Xu?16I$i9u{{NxvlDEM~<~b52igJ?z*d4q^tF$>!qrT5nppv zYks>JV%`B!&t)7E{2=wgVrpEnsQg#oNv?U*W_8Y44TTJR&s6JT^7O_p)cGhCUD&?d zPC1H8JN8dQ(umwyjDsAyhfusyCUN>Yy*K5cno?y5t83NU&WoXkgWOLt6 zK+u9mOt%*2{Bv?eRo#1f81JQug|x@UW{FFFnZk}bFQa@ZrkN7QOarQ^G}x37&ciSu zZ*;tn4|@M@T!J=SD0_Ks?vzq)MDke5}REu=+vANN$bkJ zAYYP&VmhHKlcAcy=@Hvqv&J~BaIh39BBo`6)frkSH+2{T z9pEx%QfA!hL!}I=bXf(&;!q%kiPaeE5wMPIV|oCEh@C9{MPKt1!s28mSTL(E=ozc8 z`kz=q`>&@}#m5DHxOm1X2;V0Lu~t2K+$*$KJ$zb!&~g4C|Lgq{>%0MfyEp1pSISKD z^n=QD;)Pk4W>udFU2djk^Er`1Xd}?-AFXR;sc9ZT)#v_BwOlg6dp@a&c-AX_4kHZH*(`r46KNn*MwM$9M4XgiWEZ-o zG7cy&EDz@tobi{pdJHcZ<`9XqPJ@;$| z5=D+es7DJ~9GuY}B?GH`Gb#fgxu$nQ)Vq;! zTF@Up2Z1x6ntI!f{@^-on}hLCxG(-WZ+*hzmTT6&fMX0Ji$9^0Xo|6xp*|CLel~2z zhp%5BIoWzn$*IL8Ip3>BCPOTy^C~3lLVeG<2{*cC9V-ZcszgCbt?o=~&Fd!{o_?;A z<{dMsMEsK80J$x=aaLaiG76V#<*;D&81c>4dwEu2(arVk?d|7UYWk}Vo!<*v^b@rU zcJ!~HX7d_O?e>gOg%RvNBO1ia)1;Hg;!~qQ#^7#k%v*d0h94ym6pHT{FCAo`5I-Hz z5g{HwIX5O0hV3EZHz(+$SWONYhCRGqxH`P!Ba?nYXo3twOMeHCd>0GjocY3`mX2a& zCuT>m5ci9oz)6d3HIb0;-f^J<4@&R;I3d$OWHIk-MAEjApCW{2;Y|`LtOKE&XaL< zos&O}g~A?&+8If3h(T869*1X*c39Zi1E7JXEjE%3_Iw&oe>kC`e^ zVv-&o(4UCX5#oqG>(&q@2V{{S!eikbPJOYyl_KR>>!LgK;(woa6SX=Gh}y7W3VFu2Ww zua%x9%km{~r>?;+kg3_jrohSi>9Eu(MS57zWtGAul>SexMwPNm%|a0buJoq-%h@YZ z7p9b^ri^?<@~_(HFKqa5GRQqe5s%6Vs1ORm(YDBWQKk4uR(5OV&#a8E;VwrTgmjWd z@}Y`7tUuB@9aGVyqg$E{t6}L%cpC^N?kK+^41mk+u~3FY0B!+fN{-Dz4TVO9{Hox` z{mk*F(T(JIw;Zij2-1!wsvzEI7&c7_mh;2jk@JHgya_3yQ!984TDh=u0G!NZbDsk; z#7Z?#d>rsMiS7sN-^mAKKjD^Dj9@NZQqBWC2M5@c%HHFC^{wwcZ_gY3i z<5v*3d6IjhLw_ytqH1X9Y0ulO07jGc>ZR+4PV)^q`szc*8#ro+bydmb!H-uo=W*H{ zQ{Bs#F`l|P$dhMp&sr2dnEE5~Z2U_-wK9NqZS+}brfM~)URuXx>C1$n&~^8I@{f?# zsvXhvgZh}WR1}GsA=tWPKsnZ951G2J1yTVPca=%ybZJW;%T%?Dj(dCa?#EBS1*JI_ z&SyU=gTIr5q^Gel&T0?^IJ484e27SAcK;a|kUK**5$xKzClpaJOt>7lXFy?K3@I*_ zW%bt*9yGj4_)md;2`Y(B%2w3YB>41Xh@%%#4`PxDUX$S_WE$vq+Xq5BT zKiEaIpg;k>Ehj}vLkM|v%wl%)zM@pY zNz>7!GG>^A?f1t#s#}K7w@BjdzL)@gIoO{lgb|5>O3VRI)_p$DHF{IkKh8Glp_JnZPZreiI1DdL3jzRRnJPP8ly%9Mgu zD?&vAuZWn1kP?B&kh_Th=Pww2hm5M_1_onvVOJYTm1() z_edL^Pd?a|eOuVtiupMxX_FQd`_;cdZq5Iyf&mB#-@RZYB_6Reo4;`NiEmBpCl9|; z3>OZ8gycYHuNb=K86ENBxQAlLulVIM~i&GHfKB& z=xJJb^97XbEE9sKlS=LTb|KwrqQrJ8uMGPWaM8YPpN*WEaLB@%giL0{UCyLF9i9ZN zOj$$TllZ<@3TgIMe_0-L;B6cmM}eSb-QMg_unPccFN@H)=vqxJFvVMZd0Vzy`x5d_ zr24ri^G$2~?DU&=^e)MQR0PTy0#T<)xWD_cM3qRra_D&d#5h%^E9(Orhh&PuVyb4o zSp4hdt9?2ysUtZbS09=xtxzvX{&|J`tW>eqZ?>rtHcbkb5ug9%#F{D6@vSOl3VWx5 z&1eKXJLdrE?UBVwoysHv4{3YiEnduLith@NAR=DosK^3|ZO=DMq}{9~vd<^*@WQN@ZWq@eSzoWP{7%U=%g>TadX1sU@ZwjiC(ATB9$)5n zrcU*m;)ch$4ybMeV)j3;*()Lb{#ZG7V5ddayW;Cz?)fRTpK|Z3kKnh(|7Br&Kv6SU zQvZE`mmYp)g@Cq%`&m7Ws43ep8wc-WhFK)s8r_jP?(6`lH6XH!{8lDm6>Pg9YC=?n zU^rW>)_#)Q{1LqmvO1S+?y`gc4q=PQ{hN(ZVH0NxNV`lm(NxM#9m882dmZ5u0HXDyV5QY@Y9PM$-%t8iUU?A2Y-X;w~B3C_IsH;H0u3 zschmmZE%Gyc(f?SS;nIc;Lc_9z6OQ%C`rQyuV&0W1ct7Gz%JnCP9e^c{4@QNx=$5X z(6#cb1ezG$7ukMHZyKfT@QZh6Ynpz|Ucu0spw1Lw6>7z5%ekMB^O%uC|AHmmA$&Ba zm74(f4n>%x;OvY$a`;_#q+e~FZsK8EcJGx}8=W9uCn%n)fEl_^nyC=q!Jz`OSTqQM z4kEi*oG&OzNSBBf!^nYsn^t{Bt|YIuAj5g_M5`R5bL>n1E6fativi7ISlldDQ{QFD zTo?Qhg*?o{7DjwgVH_7M$=OJ6E0hmmdtm~?~&idQ*(|2_CU%Qkmk6rrc*7st~=kT58 zYsV&(@75mP%%%=~cT1ti%`u^e8+tkaR^M zQ8kD#v4F3YV&22r)iccsMej_WSumE#CgwJr$mFJVU=PH5Lkhl=SV*I=cqvroHmQOr9JTY{y*J+zb;A zS@0U?_3;2~mb=isd;z(0*iAG%|GFd77FX=(=KQL!5YnP1@4-dEyMsU!hJS|I_a=x8 zi4YTGNL{-BSub~petBo|h^Z<3ZfL-h<7m@3Q*IoDhz9exfDd{Q%cdOqarPRH4IQQY zk~!g#Cqr66KCbMvP1JpnX6S^T`-I9V;0`fQs<;JR+7O3 z-&O`OKoytL2ooMiDv#S+gbZ->>-MoX`qP*|7iU6&hoZSEQ3 z?TxG>h&n{`cSPQm`%c-TWD*Q<+h3F-JGG=@o4jHJW5J?Pv zg?e1c4ab^TDFxXZa{CanT76(NgkL2RyB7)f5qzo|LizTMuOu?Na$vP~z^EXQ&-=#E zJe+%xDj^lO`BrCBgMqb)LG5DV>V)ZkY*2slZ1&!4bgmEXJ>lyFtY0{OlR#7yLz3;} z5*B5&GiJY?`21aN9JfnBps8jty~MvP%-CCcIV2h7WxLZUyiS^xdwYZDDOT)alr06T zP`=>fu4v@r68uA2_Hje`5qRm~+1H(C(S;Zqo7k!?be`3zPuY62I)&%jb9jgf-^es? z(|Q*1Vv2m~4Po%*jpNTveUCu+Yy`w*7!q1kei9FS@`lt%)TDlWpyXkFz7aBMgiO=n zmS4U9i7iRnzb3rM_T0h2D=tOO#EP75&21T|Rf|5%*7>@6guX*6MdkK7mUF(%@(VDLK< z`0*R@p%qZn2S3IGgjwJ|0m7Gx-?F93I6+P?o8JtdJA209lfneFptic5X(McDQvY1^O%_iA><4OjPBXLy^tE{4Rak|ne;u!5Y)n%D>AI!uY|^* z*89RD%1{No{@|++9>Cs(UCRBmKLHo+kcCEym5(ng%T_JTJi?KP!Syvo`$;~O8INQwWdYgm6i)Z`BT<$%P z$D{Pi+>ON9g%7i`^YMT4S-t)fmVl{TJnVP;6E3@ID{qsA%X-({5v(-EpkS=si$p+? z&EjUgfwVCMN7SvVVr*>=rOPfWvQ48<^t zbqJLSn2hbwz8stpN&E+J7CPH_3?M+Aqv#HPriEhEY?8iXW4?xeX}`yf7~3kHfay32 zG5XLHpVVnjXCiOCgdTQul73F2|-6*~k18J6iBgVuuQ}p0xzKDbAN!^Fjc1J8~*-YmuTVz z0gAxdg^e_aNhdLivI?W_>=h+d}i9=Hl?E ztzLO`eIdC9fEOS8z4)GRv%9Zdxo-^GuVQ>#DS&wMH~k~-ctAyTE?LQfmAS3N>ed_? zgHO!^q9<`$V~t`&o5yh?n$EixvKvkh?f9dd7i^BjXNmZAY7aaQare`GoABmgv1A-g z3e8UnK|@76tNpkF&)$5fBj*`q4#g>~TpSaKwCRD~rs4XMrABf_p?(V2wf_`cTo~J0U(b zGfe{Z1QpIl#->h6MxoAaRt&dRebPN#i_81r*egBfsP{clEf8~onh?Li*D2io`BHMAU$*4H zRZ9F~l$i1J7m24wO8DbS_j8Z@&oN`zo!o5U@ILD4(UJ@)o7TzK|Dcq?P_22&Xn|_q ze=`hxRPE#7Ck0eS91j&RnM$6DAQMvIK z7Dr9BdWo{W_@y$5p}h~%!V6(1bcP%XZCo>;w>c>5Bx-aF5m2a(LMSWGPh0GyOX+c0 z9dDO97!B@~g~KWNim)fO&v;d%6{X90ahnQ)%Ho|Mm-nBS{EKl&Wf@3R@*<4${Qxwn z1+hQfW{eHsNDDH23AuWiOdM4~i+5AW%^4%;EZ88x0^!H|a+imm=zaK97F(-n(`hVg z;1Y^=Ht59h?i&r>a^m``o*8gaijdcqJH~WSK?{HMyU_7!wmZRkXLLJ=X!Z0a`9zPf z7`FOm$LqbdV+|>V_;WxO*716ZeG;UH)^lMj>9dv3fkxH%6KH=!EH}zv6DhwAj1&N3 zPpOWpij^t61Hjb$jmfx5+lT==KAL7CLKcwDovJ&iNHrFtb27gqolaSIfRI8sP{DC> zKzAM$XPQgNF!MzZk6tZkOI)Wb~F7y(pUH|)bT9ITBmYBw*Q)|_smydYJdvO z);w&Af^lIrCChMSgW#$FdO9OhzP8QIQI=f-(OO*#5~)i$9s zBK0hf+J}MALqZUQLR5yM&wOW7#Z{$IwM<3lhme$mLeBmSL2(tSt8e|}Rp($m_Y@x2 zS*?%UW)3u65{o$Et^G#*eCdmsW*qGEGK0Wm8dWu^QJ<^O$xtao1hO6!+-w$EAU?{; z3gM2Y8}qml;orqvuWl}ZUZ;t#6)Yf^|CrLbBlR=RwX=do9oTy^o5oTzg%~X{OT4P} zrA{4JZ{;ttP`M88PN{4zA0Z6sRw-O~DHoa4<0sik%#mJ)w4~G9Cf(IC1@_4!N_$Oh zQoA(7(FMy$nY+tZD-S|hQ!GVOX{tlsrXJVF*^={+#)?{z^46f|9o9FaoO(Cgx~#PC z=+;3MBeY$uYx~fNU2h@`FF{Z=3QUyAf}5&kyjW=O{^bpoALUGmu5(}*;)tIZGb8X3 zZ?8QQ$~SR4>hu>i%eE7c#Eq;8I4hDReNB3Tm4Q?Z)Il^4-{@P4Z@Psw&L&hT6cUpspfrg z^w5`|S$D)EyNdsmt=@BfEd4c|``+PkCA-yvjPM+s7_)2dIEcpYq(9G`>Fg1PM(lXP zMQA4=q8mco_@g0t4Ro#q4&+w*)?$31W#7jF$3R)>ekuMg>0>0~q&PXIUYHyG7apkK zfXomZQK6!)Qm;4^#HzO@JVMO`ac}Q!>Bn7IH>0QTXdOia+@xG9c-x}GllxFWW-!x) z<6xSUcwA6`3sE!BEoBtp0a?tEHMz1SP|nHH4Y>72dSB6rr;j+UX?V*aUNv2CASPRH zaS4;xdh!)37bd*Rz-Lsqy$fyMvieOTI?X+i0ILpVA>&&U89fqZn5ozdz0%ERJGpPV zsvj!%eS0fX_A~Sk=DNujUK<=XYE`@u7TJY@XOq)8Dbv> z<(U}`;0KmahXE7O1qnE$5z8I94qbRlOg}73mv4UO=G{GhuLs3?(C`9{3ZVzRZ9C}U zNuuEGXkrIcYpCW<@)N=dukdEqN1Z?Pb+|)@Y9l}3vmZ6GK*x?pc(u*cNT8*ACSWo% zgkk|@LGe~-2{_b;g}R5|(yQNd9sP4cT6TYWWBM%sAyK%VQ9cEX1P+~1rz_(7Ky3Xw zqMCjptO+wrA@VNaSWFCuxj3DUhlgXY*aaEC?duU;I4GZ|qFz*vP^ zCrVzc&3v;f`ELC9wc*yQE7RBuxo?J)aPJ~Ij;l!18yz^yu3nETh}$~M_v^*oT;I7l z3LwFZj*2PdcwO(VrY9wsC0Wp0+hzC0OcAbhu1b2ME1kCv#L$8;YF|)#6vPEOcJh%d zJ$*WALYflgGjW|{TSkfG3Z!q(xUwK2-D@!{C=m+z@A1a(BaiTF0-|b{Yw!Re1X6bx zlV9*C{|ne0`S;mpM0GS`zeZ8uawu042zRtl@1yzjZHn}kot?xR4bZVxs()^0Y9b5p z>GihoZdYSD2&h?^)*jG@V^ql2Qh+keL!rqV0^UdMkjDK^3fik zaO%;_{7mt_nkoQ-$YJ=(*k_n+4v*!Wbflc@Jji_y#ofulPL%Cg<#?J(qbost4>|l1 z2Oq);2;jUZjzniO(Qgj|JW_-ebsnoHL_8Z))8pVpN8@mKA+vyH8mhaCeCU20xlj6k znTo=^KNg~NJMyJ&sl5^C<4*ggs}Dt5Y@BF)7_g4HFaj6^$ajsf5Uv0*G#oBXfdO9- zK_*1&jYEk||Lrl^#-W9M+!aimBVDRJE6wJyqKRyW1o=jD zuN0m9*ERYt{n1|;TPm4@N^ww)j-Gqz_+i2E(R`nZqVpr1!r`<>tB+$&=9zWkHWN*=S#-1_{^Jm~$I6X^Fdf96fzjxHlSd;*jyh(% zlID7wsVS8gD=o^a|Ga{GN^MLdNBThoqVk68w&f3njURM#nX6{Hg}_859hE?lJliay`Qwznfn1<4Pshmq;oB8O7i7qTPDvn=JK*++Tq-#<%q%Se|~F*IQy?!Z9CKK zRxP%rIUf@IxX{&Tg|DsE8actrhCy3cb;6KCi2|=cdlDn$~T5$ zke=u}YO|0a5ccNtZNn(Ff~l34xLEw4^N{K=AsFHg zP_)DJY0G~lb(CcK}Ffg$NzE9)n( z6;B;jK}nG1x74iQ!9Fmr#5#%V4?r=;d6;p7jM zuF;51`LorN{hY7HFXoM9og?NnKD>5~c=JqfoP($YKkVazHsN-cJinmm08$P_Win5J zoXqy1lZT9zZYU!r0L8LC?w4eQ3eyW;CDT*1TnWXNv+yr3dgsMi2-ab`N0f`Xi2z%v zID)ti;3lPch;{KizVUwm;_^h?f4zi90Pz_X74!tE#v-RH$-9}T$(tnQBvNv#G>Qe2 zO=OexGm9KaW{ohlFzBUBD7+K9ZU3b&OgsUQ(bRCOjXVpb5?L|%S;`e&MGTJ;Gtlb$p zbcu!ZDa7Xw&`OwS9|~NW?x4*oJd<0}juzCz(9EmGsffbLGPCrwH@*H%#>+-aX4W zFI=4=9GR26e|+QMPd(6oG}x>RCVi~C-CDJLD5ZYC!M?Vv+P?AOvgA{Z`rdi z3&mt1jAIrHlVUq4gzX9CwX*;1P_z&b!gnTSyAAUbjK92~oX^5Vw} zR-LFyh^a6yK9pW(KVBzkfRnoIB3Dzd{{gYiRd~4z(KF}@lHOtBFN}Z)d~%xbO%$LG z({da){)yP4>AJV+B@JojkE6WkJO*wTbd!13G|&>1m@eULqmQl*NKgA+L`)Vk66J}B z`&-GJyHczw_1*aWv#RLrh!&BKCpyAu^N2k#vz8y#laRRn3|VZ4I@s1TQq)^*LcccP zZeN;a3CrxK{s&iKLQ91$1R*{x^y|V>SKr*kl(X_L$6Z7DN_gZ~c##|8Z^bnX3+_k(q%$K$cTw4tYvD#cr|QNO!IMRBR>nw23!gIG7-=U? z-Eqx1c~jrd?7^oe_kP`)x(*Av9ad1nH81Q_pm(){h4Fm;xn@D@ZhDi~owKnk##<~r zW)0lm5oTWQPlyn_@xBKU3AD~69h!FOk5}mbds(e+aQwsSxajX-vVpnjM6uvw*Z#q? z-k`ouA;Ogm#Uwi%>W1%X9Jp&co)}CMPDvNDS&>C(OvBggzQ-?mJ$Z&GJMa6nbk}&OL0`C%$ z$j*1u<#GOYb2Y>`)(%rhY$+$>cbEm4?hUaY6VKE;{j5LGnR}s56GoR83;r(d+pnf* z{Lb*SzdxwkaP0SBViqEjK4_nkc8CIhnaJ^5;rNK?_FwUe{GJ?NK3uYUaEW-JeUQNe zVeJim@`sL0T+vc`GjEbU$4v^1LXl;s;WAZlPrFOkZXvfS+ov3>{|*~J5jgzc9)0F) z`ZyEub)_tNuC9bC-o8p<69rq21khtf)4Df!_mAC(o$7 z(=hqVxw3Nls@ZF7KKX`zPomSFul1`%DaFMM@tavbMI}D!N%R+*yoUw;jJSESJzKOH zTROij;acD%xBjbmmH+wO(T^KNv_ELqGpW(5N)QB$O=xwC^7QDrHf5f9#}|&=iSFKcQbB9@c*y9NF5UfcIrMrLeWrHdex0* zNLS_q-DA!M=d_PYepjrLF$h{Q@#eAnpM{_=m+QL=4_f2x6D9bTBu+jq#{|v($m7}t zi0jNavthz86QfmAociyB+w1kRyB)drURPfG6(0g6ZH>fcmj8C1I%SXa3U_O!m&Ts_ z_X4e1X)Z&?(Q9#M*(A@e-eN_edAvZ_W%fO<-Ej_Cn5;N&*Ijt)>*`FIZtOo5;ke+r#*CC^oM|@q2z}{gu2hv7Zc!zBGB8G_ zaQlr@Wp3`Qzj+DzsC4cm<%7k$R|Lv)K#KOezau$7Go zdXpPk`yV9abnSm~p%J&+q-oLlIxUy^T2Hup_1{I-x^>9jH+IvZ4_%HlS5Zfxky~Uh z!m*I3*J0Bh?XTTbX>}uZ!6%R~zN2BmPf63`t59ya(jEz@X;bxb?zPRh`c6E#6wHNG z6USh8({oP+DKP=l^KoyQINmtbN!ksV$YN(Y*S_kjaBh>C9wq zuE|xJS6(9%%gMT*j&;=gBWZkMH>*+VJmf^yg{4~n94;I3Y0I!{x2%J&9({WB z#>3-tGs2JbKX&pxzVxfmISfqUe_o=#2yUFdloEKKH!r(){pOJXvT^h=A;1_}ef)16 zmexw{w|B;|8`#G*%Cx+qZm~=Np(p|6vpdrTmtcXzkbZlo3dN$eAks#sA_z+TGSmZu+M=eHuwdG zggacn_^i|tBdsBEm?iKwOx5DnR=>k~@14nP;HSBy>>X7JmhLTF><@z}70(ydq4vTb zLVk(^|CJ^0r@dP?T0MqK{fAcYvQC`({zorvmA~GpA(HnQ>xbGXwqEiW5HRqY@P%r%&zw&ZD*qPcAAws za)x@LFbb(khhT$QBmB#1@cqRXfcXu7=D6Af^ynVh(q#UsC}a+L;Ke~q{3)UC(X&>* z9JW4B^!Ex^gX5g(fvOF)mlD$NZZSTmT1%b!1x{Er>U}LUC|Geg&V&jLagNTOW`8~> zfB&;e5%Sb1Ei&PPsGJZ5R$jBfePG9W1t)^bzaTF-@ua>lAhIonO^jIb>_V;OpnH=uGrIZ|hj zjd3L&mRJnPd2UF(+x)!y8mCVqLeEe1-=%btJ3VC!vK*}9F06#)h7xEHV*S9ls*i8I z8wV=T$;pwo-Csh8@~`m#gN93i;$iDx;; z-=Uackw&R5LC{obJ~i#KjBG@ZWu4HE)_AKhnrqL!fvi63`UW%e2A zs0=aUQv0RfH9*9r?m%hT3;ZKWHqC08`EzvhW~H@~fE_5mj8m6h=o;VU4e8d#rXkIM(MnBh>RBht_$kCI8d7{?x#1Y*hrwN|8s2tu(=A71qq$P}sN-SH zM+?HnW%bqiw?O=<10+m8Wlqxzf)8ev|3Qw|faRn5Zq z?6gYKI9x~6lvOo#U{a02?guFnR1n9Sj&$NFq^FAqG0_8QE%w`@#(asqP${8`OFE}j zPoK%kB>dy!4x%l;{+`?s4qd%rBIR^EzFwJcSIyhBtT&%gzX(0U#{9*p^E!)?2zOj< zt0P8u`{*ZCI64Kx$3}(EaVqzrL{vggdbypI({ZgTZNB3IJ{pc$$7HxHbszFdl>V&r z|JiN;iNXa~ymx+*E10^3Ju*9U)cO0%EtJFR*VE}A_>HIL5l(umsX0Udvd2LdzTIc> zF_}I4DZFxv#*o4JX&ZhUkSq3Sz8W`jzM^qcbt}yg=T!=8nX$~b;OPp{!PThl@o@zT zWuPuh`q{tHQ`pE;$1J`NySgH@X!I*x@VNWOLn%vG>*1b!pFiFI+g5>G>K_&8&wZtQ zg@NTeHYz^U1D8k4{x7gAoqy8LyI*FR=-M+H28hcREUX^#14boiDNZVHq`3G_TvQdm z!}nR*(JXr4$(0Q;t)o?fOGllCXhFpL12_Lu-YU>?Z8~w&NurL+WQah@rStY0yG-}J zkjWl`Js0Vw0IwalP-GVDRHS+JHKd}8z3q};P&h2ZP(52)j1+SI#3c3JQ-S@`Ql!=n zB`;ucgd9IIdg_pl!YDEy>2|b&bkh6dSo3ec5)Guruy5YP2@^rn#Vx5s_m>825RWMe zcpb*T2KS`%??z=CvLMsW7r#p0b<8sCnN#7jHoc>owJSunratUT^gv5#sBl5?Ao=i- zQ>8EocM3|tV(9YH%8tR(rDKS}8MZL~;;fP3GAMW0B`lTWCM8@7irXLnT<#jj<(R)98R&VoZEG!8_c6LCMC4oGvYO1X+IC~eMoT{hi5e(L{FljJMi1O5bIKyJqx0; zV|2>F#6a5SNpPx*d)BKjwnuuPN>MPxAsbgF>S!N&-``Dd7CPnYrpiito2Y5v3w^FG z-6KbOgwzZuMV_X)zgh-92?Dp8`Sx`U^0Ll*qt1iw=hKD!yqR$Q*|fEKz8DMP<@=uJ zvw)2y(yc+bPrym9a>cbuR5~3_T!&uM61}FC->?X+UD$_$rKriKqo$4mDLsr3If+7Z zRYx*{9KtA-PfjGFYEA7N(P1WZ6dwhO0Si?tGg1bk4nfTts6ILw8OC1zvwe1u{bGm z41J7GPBaK%v6KYA^`+8x7On!o>_L+ROSl~ocp(it6`fk3mNprz_A?|kLqE$&501D& z&nIRV%$^B#54+mWtKTDm%oFyvRJQ)&X9BH#5@TEfAweiIR^$PjXZ`}7D_xFNhKD3=}Ba;187DO@*8#*&WWPhy1j3Pey{ zmX-qZ4ml;!WkVUVC+MgEtu(*ftXDtMsVKj@}Kiy+dmSW zwc(LmRnDW)@og~E9r)j0`*6Fc%;1BB9mo&(oMN6- zRuf8-SIF^0q^Tt*(GbB=a2I0a8Hd1+0_wT5sBAjQQmx`deWVjuaW0*h<1eUz(8vP? z&I0I!QvSDXI{8HHm-EtiuyDI7_`PuDBcTkBHt8pm2^<$;nb}k4D$~+X692T}TEr@o z$!KNHwSQd9y&o{)9jFG6n>DT4S*XMnUCo?8tI|ufQDFsi(eAofjUG#0^EzE7tbKq_ z+Cz9np7fvkKJsq>;?%4vF|S@Ix!$0`RSl!*68O{9wJEL^Jx z3T*b^k3uvlVyq{HweGx5qIQlhuliXrC93MK|Yd)$iOp1$3~seQmlQignUAOvHK;>P3gvOo_6Z{ zaMx0VlBH{}uc8eLOrJG0qa)atz;iwD^ip(~uTvORhA`QMBAvGw1~>Cje++3YrptAMPkoWOTMj_)X3}oW0K3 z`;6>#XP&+H=!_(zgd{)J-8r0*y%Ke1RyLV+hme(3N$ZHRDnv=j&%bc5@9VyIpU?BW zpGyi4qH?s7Kt)$rikzwc{q?Ms$3RcTIc`Qzu12fx4^ZlFkU>T3yPRUfl`>f2&Fo9= z+L1Qp!T@79pzI7~Z5h87Y+Ba)7?P=A1oRos=zo1Hfb!c_nzcTKSpL zilfE#Wp3Bp%jtlcUvW=8{R_qxQmD)iHFdk$Eok1B!W0o9g)PcU_co3U^<|>D-||DD zqL$hQf)@JZ)I1U$q0=82h(53u6(ZnGkOqX`m$-we?d+j{FWgjpH;7>3ztO2A`8-3E z%yfSv1!hq%_)6zNKyyo4L-AFK&fr*72g)$K-{+XOm~#4c#k7eCfkr39dk@+;Kv&;E z%&5#UXyynYEWtsV40y5Q!|$hG6&?grTpOiV#;GTzYnYA&67yE`$J~ML{B1C=2CyU? zw5;GVA=q-VS>t8+9O(1hdiG}6M)!@Q=YR#sZDAYMURdNaM@?FfQ1yN zzU@^Kh*!yxnn68$Mf~Hw1BGn6>=iZ}ETnw*2vHG5?0Z zyxh_Em?MGz=mW1)9Std9CB)c{Qa*){cZE2%Qu^4n2j9xT!c;rPaApIj zB}|OS8I&9?wUkA}O~F_+-?M>_7C`;pzv6YCOq13Z%^oe#rrvcPwOzP42`TtwKnHeg zn0@dEm)2wEzkEnDgqYzW{#0gyzw?sPjitBDuGt^1J3#83tCgwwb0mS7nNb|C`PZpp zNe=gq`KME6-n>cPL3n1P8HK| zTKiyEyHeNYuapV}CE+o)sk_mNSSO#e1H>8tv!pU>_IO8T2SIC@ z#frp3msWlWcgID2aVq-wqPF4)hhEi5mJL+pB{h8jbl^VJEn8jc>Ej_Ia2NK37`gM_MfJwi59S^q z>^fD()A*}kr|>B^>er>Lw#J;W^OeNYb9FZFzvb;4*~}Z?f-VA>-SCQ}M4PrIp#x4~ zrf}4``{kLBzJoIn3f@39@0+T}OOe?1lp8ygCrhXghh^_;Z>NH5l|fR-UHP*LuLs2h z+jiaMt%onT{}p^I@dBiP=2H$(dm*qHd*ufPD1n^}H=Fq7P?}v@J`-id1j2i1T@r%!R!ox5n3SISD=Y4Pwd;v-VK}xOhrTSaOUo6=2T|5`baSh zJ4hq}Sol#%n5SSzy5_uP%_yI2Iq-Ya4OBYe|&G*1@53Z#` zP>!6O0N#KUuA66BIcay>){=|QTv^@z9c?-*F%fe~v&M$PDHh~ZQ|2(5j`nO@Pjzg+ z=wO~k<~rXI^c+#D>^0mo|L}#x`pj?KNuu=h{gW>@OHMY19%do2?t_!9a~Ef*JFfMm zdNJ!Z+~?fjlEQN&RgO~aF*#$%hu=R8y5$F1HMiGOLxR>h*ZjW%YxG!!X0uegXNu=42prU z7DSQ6%-7Qzn!7-fOl>h4X|)os0w&BJGnOtj^@g<2s>cu*0=ZcDof2VCBYX@f)4Q{h z&Z%ufwVB}w-7wYUO^YsHFjBlTXuvlf-A)!Y{Mt4NTCBJu-9;cw>)V!)GL^ed9}@om z0*FjDm*OP#?5^x3rhT721y8nXwi4M+&;Y%_EJNHuCYN)LJP57}u^c{USWgSgHigl_ z8D~GYSFj2s1k$0HpMt}1?31vrKEuZ1Pf!Kl{ADO#KrTx;+30xe?Gmk8*>v1I+(ptH z%Tv^L%^7vQk{3C#4q;xAp_5p}@#=c__tJBcBnx>|>xqdI+>gWx;^*qblj0>o+~$k* z4b8oC_(rqhIG{r2!@1OPfryqDj~;};kWiR@Eg*^623Jcmdcna+AI={u2aO7rIDZ~@ zP;z;Jnab#CdjR~}I9>ijIWR+YCX%DeoW4Jgf{6+avMP7U8#nO>6f5b8tggg_pUa?4 z8>}CN6l6&QW)m|di)&XXC(?{VDXzZ0Kj5shkmYYrzsK4RXa8o^se(CYrFni*|~D=n$dvqeFKlOYx63`XMeuA zbp3toqTC)kNmQQzsD>zx(aAS|-{gKMc?&)+FHG#XS||2ke|NMFal=2kvEO)3i9^1| z-&|JrvQ_P=&a?Zh%SX^akBY?kmnR5(4gW_mm)fq>o8Mo#vpAV-Z#4hW>?c_ZL|P@l zq+NhgQMIOTzC-GMP{0N&fC)53QjtN2Pg9{9Xi0Nbq~t^8GhNL$Sq-jdbMmauKn$|8 zozx?-Y+lI6=o!fqmd1FyCBUz;fBWTd624H9o&LadXY@3kH`IpG88$|)Fsl+~;a(68 zfmIBUU7tu5p6gB0&6a$ecX!(yWM0^>3P3d85qja#mzurnb2;JDH|4!P21gbIwLHo5 zgufEp1H-%A5Ox2$mz>fh-#%xtsRd#A{HaNDq15?O5>X zza+3g_?|LGe^HY6XMXZaoI(i#Ybk}7ra027{45`!#=ki3_hhMDZms!Kc)gBQYeeQZ z&;9isff~xO2I}yK1VE>wXw=kPGJGF5mu6lh?0-OR$$nft&z>{kH zK8fVnoYSVliW4bBm?`_?&dyjt`%-_>{j?aKQ*$=*IzNKIxr;Z3=&c&O}xVn^HL_BHE?!I@GD&&IZv1cTLm&;*sjI322b(rGf z@_F_`Wv=Wco~fESs-oX+uxG-IfK+}tJUf-ui9Zhl!7@AOZauxMktCs9&NA8t0ix8QATBb0mqCNQgcF#6XAgIvc9(yn@&Mf>;K{<7mr1qNokpAX9vf+nx&uR)(& z0(MqJ9WUEkmiV#VV^5PvQ7OH*oU>%i{{f#Q5pzTiPPrOv&h!0SYzQvnk+;b zdF^q>rr?A69OGuuwd*cD*qoWL0(g)SA<^wQI6f^A)dD`KC82P96_ts)Ay~{hcu+6v zM;y^{>mhiz^nM6X-hr4Anfko=4kx29CKZ0#REt&^Bnuj|Vg~^ZgEAewQmaC;F@x-P zjVmo-Y%~Ir0i;Zj)CA9}DUq_Bi%CM3>DS-tye%160_nil z)410MiUQIqDY@Y1bbg28FL%>cPd*83YGk5m8p5P}%}J6H!Blgfq>N0I1%Sk6RQ0^& z?UXZijb&5eR0O_68_z!KK;UX=r{jBaCzRdxWv1evX{>i=IcqQB^$_yq+!HK*!$4Vp z#yJ4_^wT-FXx6My`1c4{+fD=5VuCYz6?#*jwI%}Q!G-|r03B=u@ALlMY1&;Xprve@ zjTIKvZuOK9TgBe%)1H_&yu&aY`fv1kv_;%qi;+LDxPHT|vD12l#eZbOL@$t192h+b zQa&UNtK(vvacUtX-BW^#0n(@i8Mh7T^*>7VBr6>1vtsF*@YDu(f=W;@oM|zV^Y0Jl^ z1MG3;Jsp^HM&fU zAgG*Zkt77cV%e!_@{fW)^-o8pYOj+X-fhmJS{*h#tt&nE@#>3TrS)npB<)2Iuj9G9 zbhf)N5V8fV)B=*i3^*HfqR}Qs@}Ra1u7JAKE*~NbLBB3tpXJ&}PmnpVm?)erSxV#L z&jy|gX~0HiK3%o;vm_hACyk1^gha_hrZ%@MN4a*`_mt&B!(d@1Ipf1Ntu!;<3Xe1(g}TM#ml)PdCP^y0Pvl(cMEA^ zV*ndgPBnnt@=j&ehJcXnlPV98wR(dL1N6DWd0v?`A5$ae+r4oNI*SI2;fN6@Y$PNV ztPz5fj{}V90)=_)=}NpMm%!335>+7CLuswwr7s#nwJ4OQQ^F;pA>aU#FePOCjvxnm zmdLl0s6xT1hVX4tJB@TPvVa-EBO(hNP#4`BoKIujcg1(o@M3OwU!WppK)9lYA3!z) zaP6P&NeGo?d#T+)A28$s0@VvYkX?_@_gd-VU&`my(N<^cHNP-&kp`vE( z3kiqp>26(hC$lH=Pfuo_VmDmsbH}FxUetDslcVZYbWQf9@woj3)Nz(j}s10E-d2pICcBL)BNzkJGQl8@-kuCbfhb-pkj1_5(U9^`4{qJ)SN zi^Zb!oc+7bJt65>m$pyOScIrxKxJPNONi5c>A(T?~eP3J{dNtYwcz6Ahnix zm0D2bAn;V|I(2Z7oa&{E;wvCxL5Uy-9LS2POI@?Q(<}aY5L*&Tq{iJ}ZD1=b@XNb1 zwmAjTZ%LesaVmP|`3B3Iv!nM z&9`QM_mTxoWOq?HcL>}GDWtPD@=v|`fhLdjNCOid^z4Ae<6xtaLF6cZqjrDuZ;GL( z<3k@{2OW;WoT*c;Fq8MHiXNoLlGZ9TBS|GtYXIn^6!bddgX9kQGq{!?4JxT42~j;7 z7lCP(xfE{VyHdes0Ff}uZK3~RwamFxp1*Pt<5bUPI0iDJf(_1s7aIL^7eO|O!*REq z-qS#z7g%|s2VK2*a7;-*})Cr4gzWF5>63J)X*?RJM+pnvByx`lo-Sq_-qlG*J!>M$QxE z;y~bz@J-Y9jR}x6l_)a8x^Kl5g5^oa)cJ25Sazw?D)+(L$xu zd-6EYH=ph)b)p1@v;i@>$uXto0V-R44$ns3oniOZ&p(dlwfpw*YqHtIv%IZaK}T!K zth)Ksf;$x_c31iIu4oVm(|59z7)ucqa*n^1zJz3c73@9dK$1S48z=<}w|sYqwwB)k z`o9PGT^PZuym}Zmq7gE}8uD_FR>0I;${AbngbcJsP2W9@IJl`+ZrZ*4F zfw41Y_%HLNKl7(b8ud1W01+SgBBXxZ7e8FN^)qeR z)g#%H%v6R3KLtTGB%R{Ryp}FjRPbLtLaI?m@lz7 zCF$LLTNYEd6rJ;#PFcz)uxKq&20d8#+1#7FC`oei|2}oYDvZ#o#s~OGS4TSA@@2x+=@AlAlSlF+afdsC^o_L<(8OL0 zED;>e(oajW`^B2lbg;}K41&DgPL!De%FO^Dy8u;BfchUkY`i7i{0oxu07;G=4DnLo z<#$b4HuJv)-)Z@H_%3>4?WXO)-|^x0{dbXZR~I;lYV28D3&%7~d|wSeL|+%=dUCgO z9nH5nmZ*t2{qcC~o;ygUg`~0Y`;N~__w&*}!PZo@kFv!iJse3ha^Hv&|D@{3M9>jk zoQNt;)T1QowSWmbQbSDXB&aWrJ1^2I8_p>XIfUa;&(iqS0w&{j$s?KK=PpAOqNL3; zrR{UIQlr)^3X~)vv}|=;HmiSE5IvWdjbF{bL`xxHIE_!=Z{K6N&gJ3@SxwV@c&n5# zSC!@VODBRxWX-g|D#6)OjZ|uf&=YKlieR^X3B6~n7 z=>@VZ_mQ{uq&TOgZ5u+xI}P;2u9PB744SS2y#ov2I87zdBOFwL*88gy1Fc#z&lZIj4rQvjW42fQ4)aK^%Z* zMD(MEzlG@aRiXtcMtXKci07aG`5T|su8)f0R#PCN|4p)`4CMbzIe!~>_+{wy*CWk@ErQAu`J!5uQ`mGnkmg9oVfhg@MO{FNnFY^vjwiJi`mJoE$U_V9|oc(X#i3*4S0Qx*CN1nH3gWD@h7aWvySr`$TsE-V@e zcqJUtV)EKE6)?!Ix-De#0DADunBC-<3M&trTw;3wUh#M0~-Q_?)`)S+~BVAD`$gZHkH z)784HDpL{uDhB)!Z|aA8oYrIVX2#Jj<;lXn)Y&BA=tH164`L5U`S0e=u3z8Hh1cIC z_5vOZ{M-*!`@X;b7dSvh@T11WTqn7i1!-@A<^sBpa+pM-7M7WW_a?3mi#nOoZyU4x z#V{Lt+%-#J>Pve!iDEgXoQ^fg+;6QSa{8Pg&E&^ug*VBN3voa@>2`$La5>DDda54M zl9WY(@LUDs(^^y~izo)7@vh``6HixbCk-0no$nh?C^W9Spc2)7Z)smqBc6J)V1fEZH~UbS1vQje?%;Bi3$XAI^{&>;vq6KBpmsGb>B z`pJw3Zvl}{(L-PW7H)Eh)Z3)Ri4P5 zRh%=B5-D9oYsEB1AxnI2Nnd{hOf~nN%gLNmuMz@o;Ba1ZX>s}2cw1?0U5pVOCK{;C zlYSa@!=0-Ive+$N3Wz^qlA2tG;dPBk0Ak9zV{`lupv0l^o98v5xklHitI`c=%oyo% zSoAuHr^Nv%mmtX!nr))^lJL}Hqzy*iK5smXXJWGfK&1(nfa-!4LHy5)^@qazzOq_8 z`Bw|VqKCLj?w%y6C_^#-N-Mb2kk8Z*lJ`8*%XM0{`M84sK^M2m{bnu|$@I6Eh2917 z{^Ti|pL^DB;ez6=ogwQ6`J+9kL)!K8iMt<#cqoR!d56p-Zta?tJ(LLh}`>;iz=p{S@kT(3o{*(Q~l(aC;lqnGZY{eHuvVg6?{aZBEma3QoA4dro%y7&bScs7R6X}N|+hqz8saL;@QfM zMHBJ2x6EdWO?z(y1u}nI7uk9u)HiX!SDNE|(O}~Dls66}3S9x&`BbTFTCr z{z;6OxM=*C^_JpFpYe`G-~JXPnq$TH<5BaICP2DHx4pgxu(fD&!C@btBAcLxmQMg? zwRfGl5=<>ETT_0#rIGX)F&>c-2RtvlR?)HB;)wiFCeauU3A4(hS{z1U@3ui)W~EO6 zeP1J16_Mt5##EU*`&?r##(qJGi7wyx={R^d$ah8i%L}9enD_HVsF-d!`wu0pddY33 zqjDhErJclov>j%{VGHvrM~&dw zHOy13T1mJDkBP%;MzYHXjSGBwt*uTrx%bvWHv7L-H(QtHG=`mB9QX%oy@TJrDJ+?$ zj|D}%F$uiADb3(=)ld-?mo2w-cO3{LYKo&ob@+a0FqPLNGcP2<+Pqk9W;hrp(yU zZ@jW!EekpJP9?Dir3((@o|}p<@zHHvxWxqNcJMnv;aFY|08?YyU9-%FZt}gGKu0ZR z30v~NBoEy02hAZa0C~x6b$=jN-#uL|y_zA~O+R_8eEzWP{2%B` z(M9a39Vwy>8(O6whMYev^$~O8>Kl_xnDL*w=~e9r6Q2YkX>*6=1;Pv$fm$aKQNe!+ z<+H8C`6({p+EZ~1h^Q4ehl@_zEN>q$0qjg=qZR?;ynO#Y0&i8w9$CFn7g_qsd&eK! zF;Ic9Me+o(c^}wu4q({FFb`%p@;B~OFrFc3Q(o&y6}4_$InF9+8EoUYjA7&wFiCud zZg1$U8A0c9u!JVu*Ur7qWtYhnKn~5v^1t$;(`UDOJ`8T)CMhd^IRTM2rrev{Jbn&l zT4f^02O=@0g2t00ELpoQo{iIy_Z?LJ-MP(?27^~#ot)&S}r#+ zzGQ?=Qh$oL9ZamECdozEwJtZ2?zH=e>#uasQ7ipqx71bActtvwh`h86Rba?Rt-Kgs zJ)c}=J;(l)@1lBV<&|23kPXqkZ3R4n;(K1q*WsGcQQ(-#?v!hTkgs<7oXu8z=i;vK zhwO)MGN5nBU)(b%+2X6`dZ-D>GD=H$9^E{DzUAj}-0N73U>V@iu#6DGJ;2K%x?<5l zF$5wR@=|5pdN9xi3gGD=(#lP#JzUbUrAmAc+>*wLk`Xk&4#4>-CjLma|-*}GSzqGph_4=Far4dBFeNR0SgpX3Y+e-f}LsV{+ z_zMwh*r+sWvd1=MC7{+cc*4q5%UU!7+xWLWMZ7$$%l#Mr@>pxk13Ov&d@e1aRziL) z?=zuZJftALxab>u@qJVQ>Pt6|T+et_&k+;f;pw(3fdxV@soH3LUc4;-R$vjBBpK>1 z9_G!`;J$fDQ?;x#_Ci_c7dO!MNtx_c`74DARjkTSuDGf?dlZpb>{So~$W=^>DD}M9 zAp?N`P5mKB0p;Hw-N&6xd0fL;WM^sXrw}Sn6C1!bn7^|;CV27*Q<}1NGYWF8K1YD0 zm7&t<`0BYzLq_2% zir-cgRp-US+<#`xi#M*OO%8z?*PN!7(}-f*&VmbDmBDlYn`8lHA}3`899M}qHGaeg|7rO|GJg(YLF)p0pSpYV9{!`b{>*{X@7}jM02~u zpC8}(4Zp2d!H-8w#+UVeQ2Upu5Hm+C&L2mh>56t2?RlUXNvdLSX-(ADklW>-c9$X6 zkr3xds0sQLYHi4?nEMdu-3j1DW9LNCODfDfai`255DpCXU8D;%vnLD~11H*;TOL+Agad z#(rP9)qEll_I%b7n`-&HjRr5~Wt*h)z#rM35rm_xSSF2Y%|b3+ zVO-5w-!1Ypm1s8QRHlD4o?TT3GOQj})}z1dO`lNM-Tihd+}dO`Rb?+~$Xsl5? z0(oIj@DjGN#J5Bo$lFNcf4;?b^2HP{5FtO>aHJX~mh!F55B{K1^?O@5LQ}>ZIGav(vD2%Z0`n-BB^M z)NE;*=sf}_S~i?t!ajxa^&yUtIMSQ7kV zyRFQJs?8R5I4XxP6vbSyFEW^)g{N#HMM5rpRFu}nUTN6XX^!0`{$i2~yY9CmGtuSX z-SRZo=kh4A64Q;H1d0J3b2FUGXllM|(r*K++TL#Ooa55F5_zz<&);zU%%{!+ zS^M3M*w8+TFt4e@6qkAf;OysIa2yk&m)$1Pe46@o(n0@{!*F%rQFO?WX=MCE_oJF2 z#~SaW`T)p7^xgslYb>OiFbC7J6I^BL_%(e7YN8kaHa<_PXGMb^W93oZR^0bqlNUg= z8Hn1*={2JSlK!BHI_`H*S_lR+pQ&20Hl60Qj=d0hO|YNNC&2ydlL_KV4}SI7U(|KT z`;`KIfBC;?9XYG{=XBOQK5{ZqW&W7m5gd&-3eo-EA*ON=kE zZ2{m~M4#I!5*@U)&qqz)k7V5Y^Ufd3GItc7)8g_Q6;vjY^3w{KvFO`+Vkuod5gz6l zJ>UVuNs~WO^EnrpX&W-$Ru}&>n@MKfp{c*<+1=@?>}Z{RNgwNUH3sa*ZT049-Wa*Q zmXha6X>O(D9db7UMaV$0aGH#w?u8e}5|#!yXM;CCqUMybwtoQ=;8dtC=A+&5r<}<- z%^NcAs(HV9pBW7J7TK&d9UyFor`|g}k|0z}XKmRT0~NKM@R%cNtQ92bLUEI$+-vT) z7GJmGL|HhR`)xA1%#JY`Bzk!r-S)*Zr(YGFx2(g8{%9Dt^y&ckKx%y4AK7~=K`xKoFIEwLsH*`u!IOFG5e{d*hYd(HXq6w8mMq+Cj~aOj>bRo z5xGvNVZr%KA14j2ae`EAe4|W91vDa-lyHeXMpo1jQjUK0{|g zmCj&OkfcQhfkig1TvGF0DS=&+vlqvym3F9VxHr-_(f`Avt$}jp6=o$JIjQ9g(7hd* zmzG=%(B#m{a0;ZTlhzr-4`HQkbO$rBf(0kr0oGPtb7w3Nc`MRinssP`ZHOb{tYt=~ zDNkiG{5HUt*oN#@b|oSYk)44z$?C1cC|=wnRj~X}no52e|B`bZ$UH}&3-MAab~+Xvf4*Ubl(^= zn>UfQee9j6r*tc19jdshRPSW+=7drS(^SS;zl*Rg+B_%!?Yehw8U>%U5dfn5~TCj3?%t!tbsXJ=l-; zX{jXTXb`h8s1#QDJ`PKwTd`DTCUbBlXXRqI0f*jp(_2*EOZma9JICzLjeS@iY`yA* z2n=ze7ve;tv=_3Ecb~}J?oXAVF47>=&p7}5h%`BWW53l}U@W-wF3d-*00SyfyMNQJ zE?M#x9|_F|!Y~p6M))~}>XQ6THno0$o$d;|;n)4<;wv8-zSzG%#c^zSTz8Wcs1P!NpfnKb7dNbW5%12HaLVBnqu+ z$@0c*Uhqx44-$Z#%}d<^OY34ibz4XhHsw%JA zx`co$*BZT|H@S&HQYDJfS~=yGwy)o2KxOeHFr+*qbcrDR8dAcfzC&~)26D7&SQMA1 zWd^iXZtNTqA^Vx=0U{9LhbBulHZc(s%eH<7$DT6k~XaS_*}2H0^j>OK!#KPnsQ>~Bk*S&R2oKt>N3EJRaaQF&{bl` zGobGXRT(H4)0r8a*)Bh`$Xu0r?Y%W zCIK^}z~#kD<|)IKEZ8i&bU&ZEB0l2bb5CBpNO81A<7J(?F_6_L62u#eFT)D5m%OqB z@gPrBu9L3pX*X}#_p2DGO_JeY4QSQMBy(-aq6Ec4^itnY6 zs}6B0!?t@VuP3QdSMv)vy3lTdhJ~s{mnQ;~$IC2=zRZw4eQy2J6r1f#0xt>8FnIQ< z%?W&G?URyU>T6Ye*EykOz2XW|ex@iO21nybrK#9AS-ry}EIyjkd` zK3f&Ce4***osCAMTcXOF?%!Qq%9!MsH+zFiA7UrceyxZ#^^Lywo9RB!f4OeBcWBX| zll}YYsbT5iCH2DHR{IOzYu}Z8;3~ZC7E=}p;Zw62auRo0Q2A2CCup(5v^RLra8*cH zRFN}MJtJMros^#TJo^0rm;l;?)am88#S)PxRZvYBk@hFLFyd!7YO z?>4OZd@*~x?;6Jz*d}?r%3fjl!h796%fR7t9{2SH%YuXOh`&KNoN@I#Ux!$hcga3q z#^3yVR9vU!tz=Z6mWS`CJmJ6odL`k9B8&I#&BO^!9K2YhpK5aEyw}%?z23Jc^e5r5 z%c2t;PR0TmZR5a#cdIk)gsQE^@am5~!z^|Qwfwd!CJ$m^;AX_{?yr{;)uS{1Em_D9q`n(FJ$eGtk<(|;B6 zqJMF0=g-H7Y@m%-x0WKN!^h-8ei5~MU8A@*qW$WwoV6GN*WS1{oN@d5tklcPdYj&p zPu)k_sy%szESMmmH1N~03A2)C3RJbprL0UiUbp+Q1rOC?eN$;N1A?aY5t?E`0s?X| zEXi4iA>n^NXJY5V9fUR?i>vL|LYM_0zf3O-)XH(Z zqy5@s9Kf%{EPaiyP>L6;JfT;i#IM5ygOl$#Kj-m&5Fbq2-{lF}M-9S}9Q%#Mc z52vD)HF7e{V(;sB^V5OXXAX0Ce0|f=*o)l{-;RyVpeA>q5qDfXzFLKl_m%*scRCy< z7CeF9iR0!g@a+vM87T9K{~_0YH@gzZMrmo>8&8AYLc)?mAC)vdVdwe_a8&A|vB|z* z-AV!vH{k4OOw~I-Ccm>;$RKhe5Z|XfzwAv26S)d>B!Wl5tE@7bmFCkc-mT)i%^1HhAej zjsn%jLye(guji849a|>Tz#den7oI7G1`;KB+nr#<$|F#8g&3#H93xcrrqBQb`yO{WC{qGglw#F%lnUZmne+m^LS;UqjHjjfc*eGaDlz!8zj2 zHBXBjrG}JMA}TfTRA>-@dDB9?fSJVr33USevDsR?Jm-x0q4)&9J;RXBxw6vT!VCSu zORv`Iv(vgb?ZUXi;nB)R5B@>L463&NCGs7z=XF~e8;2uX--jEt4V%AQQ1XN zAG2ec4Y8h?SaRNS2|jDFre*#4M*PVYj<(^Gz3+{2yB9t*KJFeK`#I|a&rW~`YH0H=#%09g-*AI&Jg6 z5;e;!&1;5Hy^x4OSQambuKygTwg$lX*d2;$4OjLlqv$UBi(Xb>( zxY2;Q=KBL*oy$MdUlQV_aMR99vuK1+q~oj0lsq(qr-hLGaMs~KwIq(+l7C3Vx9jqUMSE})QVj3~t8C|FkHp9$)bHC;;p=|DVbImP{5Rnj)q;2lE znrlKDxrauQYi;h=LP(NENH<^Iq*8u<|L?!^*m<1uIq&!LwfvK3@kPdc3inf%Ut0_! zp5T!7phE%CAof<@`^fM1jq=?Lmu8tu8I0J|H{&kg5b-#eLVr%#JhWs}yJf;w?Caxy z+I%MOyq#if_an|bVJ7FEj>xpEb?{L=M+1;jWW2Z&mcl5A@;0r3s0yY8QP+Y zu-AjfQ;?+`UN?95H#qL6jEt8*ky!?XT^!^mdG{Mzr&A$%nq-oQT=qxnw0_%ScL20} z3%->JOOS_2(ZX#G&5SO`&qC%=ENHnWt~B63Ym89eb1Mx&okvA$-Se-u_u?-(N4TO? z4CDV{fBZvRkEwu@BUldFWLU@n1?EAve9*6G!~zvF{93=?tY`4lGLEM#g0Als6qFQN z{NiEa?EG1`e|_`F%W^p_+Gq_0+cO5EA+Y*GKxwpMJ5wu&pybP;UaZmz<3KZ5aN~Bo zVIguKVD3YPy0Jd--1S|Uj(1Oc+%y|}EigN5z-8uH>X*e*tN4h!RbWD-&Rz9(q4ktz zQ|w8~MOwUr2L&3;!1(-9sRcwk&%29V;%+0rX^UJ2T^SFS3XY5NeLq&%%7~67bElD& z7qMKgwM49j7|zkd1_<9gGYI|W>f17{g#+~EN9$zVT5 zcv!AVqPB^k8B}+~k4on1r|@-fcw;!cEd=fk!^|ErzNd_PSA7aKE+K{oty0MKSbEll z@45jA&G%$@&XNy1M*>Yg0&TClxkF`WFMIlYXoq79D-^z6Ls$sFXI~#+FJuuGmn;eq zGwJ-chjsbZ3BCPOS?$WRfCRN*?;qv;R_y=Gy*q2of?yF82h0W+jRUac08$8)q{gy> zRI17Vs1^YG^n*){g3RI|b|{a&d39d<^C(@MkAq8UTg8IGyOu*XJ*>1%h(#`pqRR4+hH=D;XfM;C-ufniyo@>cPl z8=uRBetOp3Jodtd@!xD?ub+B3#>A_9(@K8nK)u}YUD~H z5)gy*BO@ofyrLMRL^q|aIhacK=y5l^AS1l(L4wnU?T1Zk5%7n{MLq+urB5U#&z4WH zXC}s$U*-dNrzsbXbr`>SMc^xUP++hn_ov<^f+NTeD~no;-?lc&o%3V3*-)Ov9&k*K zOQ7~xg93jC?Ibdvk%tCO!CQtj?FmJ8(C6YvUnu~GOyM&4``n~&&O&}7^LYP&hu0PVV}22RmKC)8;g?dCcOXbg zd8E0FOaC_Ka{0%B$InG7KRxKc=ae(M7Mj-b^o#6TCoGdqE)qB6rNklYKUNlpf_?|_ zf+54nryGCWHaR+)0n;aMyi0s)f%|fl0&4r7F)jm`yr+r>X#W!ct4;T_x7=?qkWZ}$ z=?h#bWN0k_*Qg5&Oyw?4_T1w6^<^MaP|~CXfvdz(hTs^T;6X;--QgQJvn&al*|p4k zyi=81W?PK~R=xy?PyI}{1h)E{8ap4I=59Bu1UQax_|K^GO0BHN( zCFbft1~I~BE!g3fcBG)SqrI0LN=#h89;Y49p9Y32r6jGbbD0UpIur)J#Iw_LgmIoF z%~g~6YA2hfmHPv^g!#;E3yvHbKY7YgTb{=XYO?rc+>&_eOl4DPAB#@4$@N?f{P{_} z(mZpv%7RxbVE7SvR_5w&!cNWMl1s+Br&T$hM#=0uPh2oZmKh)5?iET#e5-$h;iyks*_BE|aF%J-9~38!%pQ zDONu$7LLH;oWN0}sar_$`EH%!M^Q0g{n5eTOHsTBVEVo9eK}Jo4GUsL}ZUpfbai z+v;M_L^@16g_LbiEO1o+G~(u}HmaG7l-{5-sLFEnI6p3O48}L8wba>D(Y;|%?39u} zo6G&TUNxh4_XE1}ad3MWbMSX52OH9qmx4~jl;wLVZ5>Xw2_fqGfp^rqfKbph$~{*& zWL?GDAfN6Jl^d+}hqglf2L-&zQA5H9u#FCJL06K0T_oS}N)Sp_ZDx?)P7P?Df5x6F z?=DuXRQ&*zt!pNfDU(n?^p^doeps&^XTe=~q|KbyAxdR{Tdw~1jEIj{UC`jQKH{*q zO*oNuqX5W#(UP+L>D#ksAaz|Egj|L>ddw8NI<54DFaRn0H6hpGVEV;0{QhkKF%?M8 z%n!^@z2eg2CbXK``>nzsg^2`czhj+%%xp%=?Xgh8PLAw>DdRKM-^d!jGXv746?V;r zvuy=JtHo9M-rUWCfwUcrS|7cyHJH-`BN>?60u2c5^Bx$RCW~S5wN1}wbUTj5HrgqW~p(tC)l0{M~B?0 z>{|-|7IptZ81m@RP@;Waa=7SKK;t;iu3G*dh0lrLgdB~CYk$*W(b5}gbDYzz8&KCPVtmF<20WUc|$G zzt5|mpTRJeT>lK8LK0447YY1X8Ay@r^0(VB46KPqP)YH?nyi3hwTrAn^_0kcqDBA_ z&gRBY>|1(61a7@-IS5WP61Ye5Eav{&nk>G~!KW*zpe58pk37h?h=1|$_Gc|f5bkhL zl8`Ji$$=fkVR^s1n`Wb|Efp&%7Ai8LJk{JFv9Gg*8CckHIpX>6YqTS=11ZP700`0^ zTc}hs)!&iIbuyX4i?_7SWiW4L{>tLod{n=?tPxGczSVnR1K!u9L6ex&YrAKXvFj|k z3(90U5m7+1TsBV-b2M<#=2^m0!EHlt@OI>|)venRAW{aOnFoccR*F7}aHk?;P!M82AwfN;X>M1(e9vU=yMO!^@sIk#q zR0#C3NuIak>#V%imeZVaOeIlMsm0y}FIhsx2a|ZyWzH4h;RC4;Qz(U1y6|>? zC0INFf)$FpKzkh$USGBF(D5roqsRJ=`MMF&Vjm=X=Y6buSg5<1K@0b!iZ-PAFJje4+|84X{6du)=zWg#ysC7hV$-Qi&+hS{wmeXv?d z)$X3Tb{^X0Ef1eAyQH~v$_p2&b9<9tqE*O1$Xq*3)JutfMTMz=uqQ+Q0ELGc;L_o= zyTE!1m#0kNR*+J-9CLcXwBPSRr^sWH!bFOd%bUJWx=3j=w>7L)g_t$oIr|lssytF4 zQr)3^gdlp)v&YJ<)oEN-D=_D)m+F1d;YT8T7?0bj?~Jn%oe0)-G_L-Y296wx36*<3 zYYH=yB{U&!pF^6FfP8LjZlx2}g1rpdLWuLA!7P^a>VP)CK@Cqaxgu~uI@S~C& z^?d#XCj}FOD$ombUlOI}>~F7%q^>sX(p%R*nQX<=C(e|Bos;DeLnpFIfP%IPRvQl= z1mU)EXhffn@4@d^9KNGAG3zk2wnkhKFVN&_4BB%A0X94|fk_hg)v#=YA^Buy2jl{u zP!4=Qp zfrPv`i#+hks;e~z>R-_uh)rwnJnML|ls`ee$Kv~k*(!+KcZu4(6TtXnIzas8F!Jjx z2;E0YiF`lbi;4^rq)>Kfg2wP0Gu6_*I16oSErc@ZBmn8Xe&BR(Q%;AM2nyI}EK?Z% z{P;*QlFv%(##ITIY~(MeV?Ff|=n_RWCULBUkX9i}Y#bWmOnqd&x*2L55OKc?W@Q{y zW}Bq>$k89k`kI$Wn+IX{Sf12k=tE-^FRGf?G?qmbKI{#e^Y9@AB<{w6yF^N9mD6}9s4QI6Q3R*;(kI#Cyc0iW}1{*DL)Zt?XxFhfDUbq(hcRLd7)g1hd?Vs-cF4^(7lB-%)(?xGR(wUD}V{HWSj}+fX~oD#}Iyv zB7q4%0Gl-@3-GB*&KZUHoPkA=gU5m()T&hJLkEdEuS@BdvfsjgL`i39LJV;6wyPl9 z$OIY%7Q3f&#-FP80P`?EeKY>L$2^e#5CtWfLKe}3qaxYRObgPXQ35-~l1)!L+(L!f zGmiT*j+1x5h6MO61iZ8QxGDnTMu0l7AXR%1AS;o_`CLW~$QUIF{RXlmKrhVG#V#jG zj)5`sWWR4IiXb}-P2|g{h|U^Xy-P$R6r;EUP|*aB?C`8=S#GEhyB|Z zXt_v;WhC@0UHl+Q6CNDtLgYYT4R)^v;BjQgMSA9|yZUEI&^Q+4q9)v)Y@s^}zKDXI zW5CFohd+QnZnbe^ffaC(e_bN`i4YY!IPT0DO8`Wp1dp!*DbNA6%BN12V0F4gv@%7S zMbUm+QhKPgS91j&UEw)0xw=}pS&_N&I&kYT%=KDr%5Ew3E7@lHdQg}9>Gu}TxNeJJ zZf6h;PY0=D7@)j5fzg-77&h2KQ^8hIgF=G*#K4L|&3z-`mnig;ns6IBgo2_!OsAjK zgrB3sY&7A9(;7AYus8-RjIMTy0<&enlBOZXxJby^Setw~-TGUOWFYYEIYyNQieP?V zcld=9m!M{Y=giy|*GA6;nmp_(Fx|)r%y2kdG!H6Hvj;l5QDEqHN71Nq0Wc-ta6v-W zA4s@OYrB29Ee>GtSmR;|38W-B~UIc}M5Lw_TCRDkER)~OEAM&S~ z@QAUBPh5vw9L$#v4@APl6JVj5j5rdE4=+Ii+_}1#9)*H~D7OZPk-D9?)?`nB&H~FI zkYAe~hp^xoCM0mWGQ^HHFqW2q&}P2fhHr#Yp&NCj9aa zd=z=8qcvS(HCIfwJH)!J5BBhy(}!5~;GrhOV)k>^6w`YMFVLP(#sqvjOc6!HYKwuL9|2 z*0up#ow(Kys&-zjz6R*=v2tl(i1ay(L>1WT7LA<%OC&TUYQoQIHh=1ZkBdFfxB{n5 zLp#2eB-x5d0Pcj4;9)zp;Uq{f2g06Vtc^1Syj!e&Vo_f}+orKjJ1s<1sz{g!4vF1s zObrG?OA<^Dx~sBjf>5Je>LVco4oG#{Q}Y`}S+nQ>e6Hxi4yNh%U4l+4Pkpt$vTocJ zO1x?r+g%`NIz5yFjhaxov2=Au>Bdel)PVwBN`@e8YCmPdqX6(pmFAn`&DVC|uSa3A z0BRfuy3q&*mcnw`unm2i$%kE8;`nM`sKrqCf05T_?GbG8nj+Z9qJ-jN=K;k5s z3PX?38}hzB9NsmMeFxWNLCj{#baCatW40T#i-?icAn)Ira4VBsuSY&h#uH;f#4$UKvNZ365t zZ9h~-srjX%&ZB?B{x*(g%R;|hik2_%Hl?UeiyQ)g%m|Wdy%y%^??*zI@v89a z`{7Qs*7LQ0(ws6=<(y#-bVz5^;RgeREvjqw+>@E{C*?j9cgiME8Qte_tc}t-D^0kf z3e1hrPF)%vDQ`bXhs1vBie?SnxiX`ETcTFrsIu;To5>!}9$f8vfH457bC}6<@x};V zQxUt?aZ745YR;=xDS#AxrUwx;A+1jDkY?FFZKFnB3Ay;H@!j6DpX>9dB>}ezuX+4} z3ek!_$XDH$G6Or>qv6SvVx4;`84)6bP z6D8Pbg=F^^i(~sN-BInhoC)fAR?+9KSQOlv0D(Oxy_%d#uUt6d+@I9?+&B`f0l?jo z0c)ecT9n@Xjhx)3@Ezw~+rJM#e(C-31*Dk;Rvb{Q>cgd5=}46oiP=3G;azBdh+Pj+ zrKd`slUx?VpCeC0E4UX=gc*e}Ug%}RBN$H-a^Wkv6G?x&A`W%$o#ARW#IJZULBJJAjWcIV}zY_IU8=;8Eu5 zhcb%C4#sw+wCshR$K~F?4PG>Q2He9Xd_O<_xqRff65Ie*zK_u?7MMMSMyNA7KEa{^ z)ZZUpFaDkF3O9PRf0#IeotuXIeW`JRp7g#>$prvu`qQn@+-}W)={}x)mN@h5(kFu9qRt^{(g!dV_v!tf`iC~hm(kOZ3uI6d0cyCT za*+5h?24ROjfLZ1s<##ntWN(l7I8^I<> zKLN@onU$umuS8l&DDXs*x7`=c_%_IlWbYdJ&5XJE<=y7)87cJBZ|SDYxTI*8zo5Jt zz|ykWCz%`Y*Ugctk9?-)x1U~i=l`@?8-_Pu=!vB!e*y1>4Eypd0uEkyByEU%etU3@ z7Y4GAbkc@w39Py>LE*lU*`;-pM>TK0hbZGdwEz3L*Zid->7@e);)jA;(IGB*lFBA% zMGdrk6Cg4VtU&^6kvrB>z?%Po`iQyUT0~2y*20lj;&=N^PJ{izKA#X4JVp#QcD6r) zgNQU*Snmt0Bzf6VbT>Ns{4W2n`|#(<>5B!#XVC5eNpgBAPk|%@6i8zEmcve7p8*~G zS0(iUBK`Mr>AAmEJ1#pxE@Zer;mbAKL_1A5B@&)~8xjvdr2K@asBip|+XK-IfqBgcQC}+)KaH9gNjum32Ev1k_t&g6Wq&)`e=rwgLR&6ry<4KB=wuo7Wk>eUF4ea_uq!%aNd7?k&f9%{H8^OG zmQ$Jb_0SeY?KB*Nw~Bovaw+bsm?AX>Nh;hr>vUx>e>gZ(0!QIMn&UGZ?&~d&PVuhz zN#t0teaoXX^jP(@tQn;TIS6T7e*g9UoWmJX*~>hi;e_9#VEVDAAr7dyof0$Nqag$8 zt%Hzzyc2S)X)0W{B80}JH@8=rQ!N%l@7e@?SLp^`p!pkNm=lgYg&0#rZwkgXBu(jQ z!KiV;w4DYWBV~KRIm5m`qmQsFA>+w+q1}MWIO3RS0Ccmy60bjsxfF zPJ7C7$=SzWpW-uG-tjmU_4?t9Qx|`@_iHpoo>4j)C=WaUaYuXaD3C7Nav)F?g@V+a zjn1>sf4c6Gd;ZA}ecuagz?tjEvNX-06Y)Y*nfNMt!1a^!fHiA5^#?LJ3)>}N)Cu1L zv;eXEyPci-1}aBO{RVWPO@3MroTHnCGlTj_n?F=D=*c<)zy)TkKK;}dR%vw88zf{x z5b>f-n_8(TJ6nVqxE=pxU!`$ZshD+N-YAXKa5(ZvT1}P^Q~NR3G#WCns9R{D(r_I- ziie zYAX8~5iJAB4bnV$3!kwX+wN?JHaF;3+yn3=5_qx2<{73r*HLNK=F;VbFg5(9X7hwY z#QILR;E7fExeQ^fTTu_7`acha#RGRlWHcMVWEhS-xX$a#=`G3}f!bsHh2}a_@Hy2d z#J-GHn&vBMH7Op~i$`33YKGP-`4ni^>Gn*w27IV^DDqjeT_1B&_1af?gRsb^g=y&i z`)3}~J3=76E*r;)&y?GcpcbKcMtcmNH^LePLQ$xHKbylT`?=i&*ISZP^psEiL41ij z$qI#3E4iIy`gH{CSyT2Yb4`$x=kxR=i?Q^U_u!&A^5Bw0UTJ%jnM4!WUQvz68wMPJ zEC-AN0?~zD%0-TT)1bUl>Ck|{(K~J+YmrehPMuZ9Eiq*Eb=_X(LXH=&HzCi88b~r! z&8*&^Mi*)J^Ch*<@gKxY3)bT*xtXQ|FK1oG>`#0w_xQDLbyRfr&Sa2UiBN^Ldnq1~ zBOfa2%21wft2&~@hG6SC4iYS|NeNzex3Na6>#~NVCjjB*N$Z*vmXIR)^I5Ub;yF8M zR~~-kvLh*kZBo(~zVDol383WqRg zSeoZ~$v8@{^gN|mBi=m?(@vyi*>{2kB`xzh9)C7_vy)aGEHZNKX4dCTgK6g6)-uPXMW>%m8L+fsUy$ zH+Q%L=Yv!|Btyxj0Yw&0(Y@RKW??3n*J7t1@rISs8v}H>6HED>Q&wQ#r~$*j{WzL` zGrzdK6)HO*h!ymi&YTOEy*`Bq9DC3==HgMQ>N+R{>O$KQsq}SoIVZJq<8yKNBE;Tn zT5RuI?r1H*!TZ+Cq;NLQD1G$f^Y;$z8ACol~gWo+8J`3MfW2;^yt)XqkfgGUBZzCp0#^~i)fVOly111uIO84ELT(5ZH!+F~Gk%IEy<6}+> z!tRN*psekbC3`QAZJ^U_X@f@(IiVbPUI9*^mQ4)l=%yQfD3rYz%Ah z1A5sV5pid&mpWc&((eB)2p7D(OxTUfbK?9!Z(My9fAnX8&C+h|4uC75s~cy0Wvn1s~zw_Ap=d+&{yDL5v`g+CgKPPh{JaWQAQ{-oC`$V(*O8iYnYdAE(}P}})oh9N-U8X22rr!{WC4-NTtiJ> z4O!}J>ROXc4m@`BL1+7Y zM%THr0{K_XxE+~t?uVbU%}6?G>y?i`5xPB84b6e|!@m_jT^7nj}|P>H5tfS!LqQ`yonwFdcC zgN+SR78Y}8l?rWZywev2makZNUKW0g0Bf)$n+?qFTMsmb&^HC!Z~$7Lt)5}~fKl&> zJT~)c>BFNR%s!5dm^Vz$ZKvOe6DE>Os_=V)eoNXJ8&SXIKX>qE9;VIOI^4qx@*K2FVP)TFP8$tlA1t zytLE>f3AqZg2Z;J=v;c@C1!b|^-0}UDPITvQ{^J;TltEcC@X=IjcFFWhDM%1Nt8{# zuZ>O2m>js`x%t$b+thsE)I!YEimQk{<3w%Ou8`>*;=A%ZV=^TLS_G^cy6{Z2SV>q4#;PEG9n)YaUY~^8H5p2v+ zdB&xYpre~IGn_KU9kGx8VMJ4|ry14-VY`;3iR(>D0LX zE{idq%DirQ&kTGBa42Qq*x+@8ZhP}DkFOSr`rN(slXG{}v^&*Q!U8v1JPlTer)C;f zn`aFoBp&t2abGvCTl|1hgVyk8Xcy*a7d4g57>;!-KV6ME$~}5Vnw$R4dZ_q&^Ub;D zqklW3-Wsj`W&sfF?51W;6mX6W)>8smOedSpgAF6cWu}wKjn5P^z*Y_>7VXL8bM1Ae zJPqr45(Lv^W!+=(JW8a4;~I9rYVDhC?Y*h@YFCm4`dED`N^XYMpyN!M0U2~s9b{r~ z9kutwY__N*tfP~|723+>>SOKYP&E&l(n0*3`=YAJ3RK({nRq8JaLasN-$z&si4@@ATQpA>{<12$0mC zok2U$csys4OzZEOPH!v3PS<_zRFrU^{FDK_p~Uqi?8f#*{xLQFQmROmstb`Pg~pS7 zlME`DNmjpH*+Cn)Qk9YAF#*(PB)>eNfq zzImFxt|6hkrkA_g7*r?0HmzdeaLW;c66Hda*ZAqkQdoB$dU~%93 z3=Il~Lk_@CmD~t)Z?mE9Ngi-B@1r{`isN_#8b5~H0h%x$W3fsd>Vgdg-F)Y07QQJ> zW}^DDii3rk&}|=&E0gF4Qs1|%yt6Zma|#tStxXu+^0CW~FYWH%8~YdK8aJ^#b(^j> zDlHiKsDS6xr0}z=4$o)j|4$gJGyT2UfVaAN8nKU*uM!rIQ>X3MxW8s{pF8o~-bhrz zScP=g`~0|yXNsx(T%o&GRpFdXuG0@$ks68XQ*Oz+O8v3FKzN(vfov5P*;}6CZ8!@2 zkN{S-w!;+)yne+kV=O{dwX2#teNXbFNqnP*0ATTh<67V1J&tDu)^9nhMT|Lc-SZXB z>tI11acGKze0)K=rnj`uc|a{EKaTQU9lskUY2qusnlZ|gUjmZd0e?pf4)po?9A;cd zt;3Qa3BNU^J{F*O(dJvLW$l=M!H$HJ8mvaTo~9Y$Vnj+I2KkxZ z<_LXDrf&t}@<1j^H1k&$vYp4H1-upWZ~lFtgcuJ&e5MT~FUcApE8S`HzmA8StLib6 zPu3*M5@s9q+!U~GMmUkGV=ul{nn(?Y24gJfkV?_%KzbL#$LAHn-eXWSXxHo@=)YsP z^nX|J2#Q`Amp#7E99gf+0zlM8X)0tr<$C_YPQQP-V1n48xC=sej$xBtL%w$dhHb<) z#qbr<5QcE{_-2xNvJMA?9}eq#Osi+F3L#$WsylKfGuP%ECO=O-%ROuD>#1^n@nP_z z5Izskth*AHMpJMr0&f+%2OjU7cZ8j{?6Y|CGUrIVC3L549M?G>3hs+ysAJ!&Hz-35 z1?9Fj7yNSa!Tqer{QaTRs-BRO?p~^%UKV7KFVq?T@o)nlD1`%VkokIE-VxXkTQU9w z091+)GUb&d6h?E-JWS@RGEPZ(@3IU2V*O#$nM;9A{V>3MoA)Yd@Zjz?SgSk}ahyXt zoB$@&Z?q&C?#hmv&Lv}ZlBuO2L1wTpfF`dAP85C~LR`Gh{m6DD(=G{#ym1tmxyWSg z^ebfZon+UtKC0u+2Ji{LIVXOE^hIYe>$swtV&L4cmC@ZuzcjVzOH=7q1xre^CDv;L)M#yAK^vrDTjZYsbOzn1NJd5 zYT+KWqwD>ekTN22XD5zvcu_SpX<|5Y)xF>&EKr{#O*ZntJS9-+KkE;v*gGFd_IJRt zTm?W;l+v%KJnW4R#JvB+N|Mz^!3L}_i@gXB?#$#;n!*+dbd#n$4b=S$)Yt(@BS7@! zslm9>mLHK2^4FzO|3|}F82&}+dmoXbG*#vgqfT(|BiL%Cg4hhV@j;6^0xk^BhgEeUuE81TFMVsjYTPuK}rW}``Ee3S`harRWx$G@S#P? zzZO&b_nI71v`zUGqf?%cKOPCVh_{??sC`0DwsZlVoH>r*?GK;iK6E(^Df1_D=VdkL zWVZOZQSp=tnkY`LkwD!Ni?>>*5}zSI{L4B!aNxR}{}dNbZJ>RxeRc?>)6_;|gr9(V zJ)+cDV5^i@MP9OQ`rBB*U878(IQ9zDO0WFx38vE@xcHy4i`0ADarSV?r>Rm_va?c)^DmtWJ1FTP4ke#XT|)xpCAH99EoI3 zH)yA3%2;M&gjHhr9RWz$k%qn?ePLCGu(j;--=B zSKng;sS`zVHs3W{U8~0gWD_KU$JT~!6e=5%AY7V*6E}}~9G+Q5^|QGU!l?2sF-F+Q zCM<}q9=5Bt)PC+o+xd?j;pvZ}-_16M{XF8=7Ws6!>!PI{5~{31K+r1ti*7~!{^!5^ z^Xbatv*U$CGL5;4OgVabA?Mf5rkZyP{jurG=u`+0EjL}xG5?74x*z-+xqI)$3uJEv zfiAd8TjA9heXes*IEdh1-?6#;0vg-5=J_=kD~S3 zQ3EK!t1l#FT_uFfxaDfvXDt*r-lq#_ow_A2aWa^A8gp_hYEal2W05Lk1`#mlb0B?z z);R2;AQ0*4TH%wu)C2j2yhWqm*& zNqQ%FiF}=HhO;MW4e)38cCN_8&7HN9FdOo}BNjCYw4`w*jk2$S{{1|SaHd+VNH*ggciw@5tvU86ndS9?|27f7C?g_4EJ;Q zhIYNf9|UC^cy{}<)ICx0^2grZ5Hv}NdrhsgPI&LwN)yyF`7(g|&|oDqmXPz_Dk-}2 z%hi-WHI-?S$`Zynia8>l#_zU|vJ~K%xW*6@uqq*^37T}i`N{QLZq0GH8h+X90@Bfw z$g9EvirM>zO_b5f;@eUr{Z&=_KW3flmMOzKq{oMaPVqDHp+U;F+%D0j(rtirLa4Hx zmo3e5=|C5(AVk%TVh-^1f)%&R#~gB4Vhh2;5QV`e-{{|?Hi0Cl8jH$*w6&;YH(F42 zZx!jW#}>@uKzrY-hxjbY)I27`mFig_42c-yZH8GzjTnqNUx$mI?KPMcI9u#fwBd2H z z0up%o^YC#K0NW0uQU5)B!lfJ%u+SbX+)qxe6e9Y4kDBSNc$Xr&M?rYMdb+SOD0yHK zNxoj+J`ol00HWH<=C&ji7Phe9S}W=#x&VT(%7hrTv!L$NX3Z_rQ_^wjctQ4(naHeJ zrsH=bdnSTAkOWa%C*opuwk)9m?JBdMxhxqVkshqBVjmk}H%*1Q4D_7udr+(2r+o1r zGyTMVW!;I?0jI0u&nv!0)tl$KHyf5h(Z02MkG|Q5t7w)Inn^hKQ+SCMM(Ww9`37NY z;5IqgXdy!nh{E3U5=a*>jYHK%#B%d{h)%dKRbJL=^Xl@`Jbu$lbZK{B2o;KONRDtI9wnlfF(;f?o;&-lY81& zURN)Q+}7JZx+7O{?PLGxQE15#FdxPFR|&jQp_AWOQY9r-O!aoKvYs#k6h$Kg}15P**nSRv4~R}UGME*sQOv@t0h$SeU3%fL{5N(6A42V0@`f_pAYMZ;{E(d`t8tAH%8kB-kUbmvhB`g{~^7dR^?Y1dyNzb!I*(v5jhTY(mW#tkLAOX=YXb|al z_qcM17cQA-KtF%+TVfmryYlqP3g*s#iBGZ%_?}8gd>%6MLFHWAb^IBb78_=yCu^@F zp?PP{`?J5tot|Wmms6Lxtzw7ny`^Es$)5$y7+}YmQ&;WA*e**~ntMfOy}2*Q38Q?d z_vC&E#T{oH<|&R_7e6O%qSDjO+Vh1G28Iq)3cd7mp7A@=X;`J}LMD-S{#axTIPD#W zB|}391WkI96a@b?iJvzDWiD`?u_NLROxRMLzSJA|0Pna8Kelz;d*7PQW0NOT5$s9f zhM3~!SP3>`Xx6D`B;vFBQGRQxbT~C&A6VQ(T5cb-83Z7PDLigB_#NC{5QG*I;po*& zTPA^L5NPF9BrHKiGMq#Kj?Qvyfsp43-+6`IR<;`Qwt4XaX|~b^QfR44v;to6NF@%D z-!AOF-i+)BeRXdXd7AW8h|lF63Z2nV(E?eG@-2gg2!|?hb9qwIidI^^JOSntpDjl0 zr~I~Wp&jP&tHPDO)x}>W2DuM9Z%oCHWJfwl)Kkfoz!dXQvBVn^?Nm%S5KWrYJvEu0 z!Tym++zmP{WKP9K@~0=hlvpm_DUueDph}b8=(S3V#Q+1k5R#rwYCleAx1-}V+1yP4 zA$tl6fZK+ytX5j&bODCc*&^krHw3`%eS(l16%zu)%~51x3UzmZS3^W91_8E=6kZ{> zGNl`Qx5O?at($QE%=$2z*aDR&_={ z0AfW+SrB&a8brK!NZ@4>LNAY54HE3g=K3pKL0>Zkc_G#x%+Vq4E7oHoZa@XJ*onuU zS?AZWEhY9(70y>ci7N^bQtL#FDZ#Q5CyxvQxNqz@Z>Y&RAHxcXoplOYnfsNB0pQ>C zu`vfRg&_-rflU>up%(8$*1Mvr!z(;Jn%1H7QubfZoNs{&%~4L>UUGcO?f08F(j@ck zc!oHRjZp%gZ6^9V3kJ^vOZ-o}MX$LftkIb4o5EE7!k5@Zs#xb8aS31vS3UIWd|Y)6 zpS+VnZL04s!s`p7?Ka`Y>tQ+s$eTgL3dxETZQ7G&pbNJ1zo^3P6ln_CE}mmcH|H*f zR4f7zSyNUiDTpld8)=N&YQeUP6rMQ(FQJB;QsLnCj%&($C6S12s^!}{V+9-egt!sj z3*+2YEJ2Fma~dMP*5XQ(FYxt8Ap3Fj_oW@m5w?D(jir*6S04z>ONXq8`!1#)gks$; zTcUc2#S%BIR|j39giliIc9a^SnRQUDbGbQ+lEr6B+EN`I&B3`#Uq>f|NWQyY?9gg5 zhh*wcQjT1{N}9cNiGKhNqIA!aP4(sZr3<_zoCDgo!%h-;+duqJZwL{UPBVQGtK5%T zXFV#Z3!mAzel?pFNtzGwWoHDCn@P$3+$sJ0!I+02nIP%`=_vC!_eAEg?h| zi}a9r?DfwL5$yFjbuU|pwCr|HMqz>VB+y!nvAid0kMg_&@_VBYC!?lf%I&$CS}|eD z1LWBWFgXW}Nm1&1&*IqwN=gvHPaPz%r-Xz=KFCw0HHnNERkw($Qc757g{)n9m<=}6 zw&bIAjstI`jGKOo&@|hypNJU*O6G`2*b^1C*?d(k7E z;oBdM^mo56vs8PS&sq&)Q`FBb8EXlVKE6mQdt-LJNv#|G8O79i?WE7BE zZc9XmV zmTI>!fr6U~L_^PaKo_Uap(x!8k-HY17XM{9SA-pOdtMse+j`Y6#2H4+bLjfVaRTdGJ@LYDB!tDhTXh&a^4(b^txkQcy{F=6{CCD z=b{P^;zVLpca_QS{#|%yTMs%Dz@yr5^vXrlg(^4ifP2GCy|WL5)To8C>00;fh0Vu8 zlZg9T|6}j0zS?M`HJ*e7g1cJ??k)vN@dCx&i@O!~;_mJZ?(R~GI}~@m0tJe;IJD5_ zaQ=pKduGjAb2C@(yJu$4-p~F$Qm{wK;srgbssAoAxk(@RsUvwM(b^=RxF~Czzvo_E z;V{Sr*F|QAM%x$FvozLaI86!tnxc7&p+5jkl$WC&Q>u_Bes@Zp=BkV&p~EV0z2*p| z-HpXOm{+Yq)AaoL%Jzl>rKvxRZ&(B?%vfPW1*-ec)-Q#>7Ub6Fe=Qim$Mh~y(1z%# zWe3!1Fwf;7o)n!1NqI!o`8MkLtolva(4~3Je*bJ)S&_j+3M1f}sn(sz{RY|M z1(?3o_*EnFo}b;LL6jL)YCTjbUJBFr4E?p@Gvn@-$?dss^&94UR`M{iPF6asHaedB zpKKg-In|OB4ALY5(o75lY|K>Rm65Tia!0ImvHCwYFm!m^%w;6WGxjEIh{+rxkL^bv zxvsgHS|q-iD+{@Ixk(DIVu8Oa-jq$lDB6utcz(3FKU3T>p@tD5mqQ@l?;p&+iMwzL zHMXeJw!3?jaPoiM+DAwDq0wtMVJz20;g~yCzW7-V^bP7lwzKeKE?>tAk_bd(^kLh3 zo-xsS0rdDeZTFRXy+SY_KicyDP#rXNkpi*vQp2Q3gMh?-q5ao@wz`f1HlZjPRV!DK zXnvtzqW3U2-{B)Ja!2o6={i!%UpDOKYUW!|Y#q%+A(AO24|u#ngSX>Hh76{-V}r*J zBSnxsGS{sPRrhhcn25v{NiEm6@sbZ5xOZNiY#Q%=Ygm5DWH;0B;QKhBIN_ zv$B-pPXe=J0xT(W()EUf(AO51Dv<+}DN>{eDW@OC!G%^3B++0QHIQ(50G~x^qG~>f z8=Hhj3UAo)ew2MJYy581(T}C4)Y7k1xU-DACwr~!{V(g6xXoLi#-j!jABW;grjsgk z(IP^o`s)m;BU!DxYQJMyj{93hKSo9S#xR2#e)P~WNDnh{#J;(Y9k!>tXHI_R-VHiOB>pLy-k?x_8y1&f% z<|aie8eyCuZp4^ruOd8@NwKd0?~ zvDn+am@O~Km?elsit?q?NH>7u)aUNmH~vw4B70O9`E}0tnQsye08y8GU2j3kB9)Jl z8(F+_sL0p;h^zPpBAC+B1OC;p9S%!Xh74UMn2JRUdc>tg87t(cvx z2|X>dyI^>pQWOWOd(|yZpQQI__QXo^L#!}<75`l#0zwsYu@T&yGPx}lk z2g&u{V|7Y!eig`CYkN$V_??VY|LV#76l!V{O3dRsG4e5xl3)KV(DA6$Y1vy}8?aWZ z@ed7G5*z}%lno(-;8I{UrI^b^4zh%D?$MiH~vEO(_^zD*(_wYaTXP%n{XRLi5X ziYZsj<~C``colO5lM?(uz$QDvq?*S|c*wvI!?I8mlyZ+BajUjip=Z(}OG_bxl1JswDCj72UtnjBx!!QLopCQid98)phZoFz`(DoH7jv?-QS4?=1Q zb&`b7dOlg>&DhYN`_nC>rWA|*XR5oyhx(MepZ~zj1kk4byQ%ddOojoOQcU4RsB53l z?J!^fhRU{&_99e7k-@sKdoga89NCX!@7e`nGB~7wI*1L#8@gTu-l_>ZHdGB`WGK~x zxFn@bmgr2+`qIPLu?&m2Z+<>;4}dW&uUnXl6Evq-tLql0*ij^9r#ZXNTi#`a87eZ# zxKXsu6a`YqGD|C!#3~nL5R|3lBco1B@yaiai9s|b?RX;&PSHAl7cdP?-qTZa<#*Kq>2bpIkeT?&NECuIazmL!i3Hl@Ou zp~)!mbR)z;fuU)Vi?Xb${#Ns%y;Go-iEqc-gHa%8k=3QZMKhhb1UkvD_WG}UO;!10 zphL1m$0NK>xxEIlz<$p%T_-+QLWMKM-bj_i*AJ^Z8G^ENoQ4zaYI8T@2ueve{?QVw zCFJ2z0HR}0_nhg{zdLpW>Zc4wnaRZ`>7TjT?HQdKx?yjTyzloGveyfw`EzJm6zo?} z%8czx>X7nNfU2*&p^eO80w*$NU~4}S)M-a61fURdS+8VE zNl932$H;8RiXT&DL0sR($kB4~j^A%<`zNX}ub+mC@MM1ej9vNwHkWGn8RcFc!MI3~ z6eg3IF&>TZtLY1T54Uv`s(+HzZN_w%&x6w^aV$CN5L9|*{ZAw<11YV%vWh^57vr`_ zGP*G(7|y&&M#v>Q=?DVC?;CnK@&mM3HwKxn2DWA~Q`*YCvuSP1N~n-~ch)}O!>OQw zofO@7I)XrEa&}4SbKIl|r_h0ck^?|RL8hZt#JJ%J1Dutc`6OVNSrD%O)gm zv7kZ( zzrH1-ke;hBYop^WM)#bb$B!6`Sgyx$#4ukmmnH3Bk++Yd7d**O@?VV20V^}x$0{{I z)6;y>l`SnMb9Z%@@{c?dT+=9XWB8Z_IS*AsmI%Ks=MafQPI3K?k94UH$N8yTaD5O; zH23N(QU-#x`m-pc*CEwJIdfWZ;F+rV(w4*`97#Y6LkLfV_B>thpsNM{1Yvg{_RqS_Q78I-(qc03;jxz23Ogl zJO?m@onC~zl97y_EOv6!Da1Hdk?hKJ#d8kl=sF@VNhpIJ&3qU*f?}18`C{0@6#JMzq`yElDt`4Zmvcf~ z1A;K*^TC;_vd*RIXWGl!0yBY`fwAEkJSE z9KglIKpFE(eAMKSuYvyta285e^Y^H1VOqcBgVp(?vJh}4vRUZ6-B1j!;r2*na=7ox zPwTD#J2@GK1)3`t<#l#b*_7;Z0TXT|&pZM|ASp{!jsW@L7J)QYIg3B#w)z@N%rNns zn&K-et;`;W3JWjwfIu027#>*clyRuYeYtdZ2=aE;R;!?9po+yxu+n^Yoq^_Qf(3FAB-SaSmJKjW0?o zu9mdHwvR#gZjwojgOy?J;n}-n-3;QZ))NmB7!B;~5j{&T&{2n?N*zzMUvQ?%+iw3y z`KGOM1=T&TMdiTs)IMp-eHo%zwag2+VY{H4mF;oyk zm_zCet8q>ACd=5 z??QtKE@%lEw{0WhKmQ^q;|;R^)v+AMc#y#TV=_?fZ)f3+Fxzr8hE|n7 zTBR7-Pyyc`^4pN1JOYVvtWH2%xp z4r8V)_p|K-tR1_tW(OG|aLt&4jG$~d+8-CexXM}5qG49%jQ6wsU|O01ww>I2}K1CU@CTEL}J;N@LE6ZBOW zG+rI9kFmsuy=YZao;J_G;ruzFv3#obGY#kO<>|g0ZsgIbY$BjCG08!#KgCVE-VGdD zjT0SyRKj&@83dTrgq3St_@PnX;d9+ zVi}mP0^7RnAFmu8V}#*wcYt2QB9pn8aenP0HM-0O+lG=Z-G*+}wSU6vVTxSG`zag< z?Y{Hq`Yz8$QKnpg5Mns{`474K5&`n`tY&_j8CApsCXq~)p4z7oWGOmk7rAt2US}X3~ zX-XU}RF#)hJ6Du~&Py0eJm`cKh9wNUW98c;eV%cPrZu?o7t0EqD|wn0F4dM9pfRoHabaWIdwz; zf4)Zhl}34YecxmymHZOGjnbUA(u%4F`uj`n7%rPf3|$O|E^I1z=BnV(<;&^*k$G3q zbQY%uwttetB6XmNp&EuC0=$*0e73L^i@_H_#6;Y&=?xgBxh~IeB7HNMaIw**y3vy) zY-^1d>7n$25p63LrOFHmm4)tQ@UvGRvLmNJ3X+fxEhng_3Ez;Un1wi{#k72w3hN|& z-sBxg2|9(E6`Tdi1Av5upjCxnNPoq(xdz~;NSrOP-@MQaB+)nqfajOs1}!|n#eZ4s zl$4%uZ*D1CY3Ut4dVv)>kxV>ZLFtQ@hYmYuRbm}>0iEs$o#qK%JrLhYt;{!Y-$)g+ z(kcU_Uf&p;IE}AiH+)i_k@0T?b@4h<$Dv_5K zT&4^Ln&QYrQlMw4(u3~ZaLt85kicCvJu@uP;Rg3v@Z$}5_$@6g?Hp6t(O?47p}y-Z-v*8tme=*&{b1iaCc;f?ZL+E6^5YwEWO58K9r_IHG50pnBpB1RzN7fO8X)`{ zb-!?u<%tNMC0-Uo3zz;F<&2L0ysym18Z=i7s;0L`7An;?&TK5q?iFyZ|6p|d0MK~`0lXp!S2&nn&i{e$rP3xwxkx4TC29FnAi)$>u{Waxl6=eBCKPs})F4QL zf3?whRc;;~qDQQ9ldfj7rjP>O@Q1D=ueQ|?o+Jv#gTWJeB&}`fiu{Ek7FE%klIYrK zv?ZffWW=MQ(>-|$Wq)e#HoPg}HOv-iKmX8Ga5N#wYoGiZ404*z$m{Mz;rls_`Q**4 zLzBvP?<6zgHCK3pxLdh&5IdLm1O)A=27SgY7F+QY#8 zW|$J>wG|FQpQmcvJOvrku+2B?o_z%Vo|zbo8%An(g?G}o>6-|so2kLTLz_O3%}=D1 z2$UY{`uyq5M<2?t2)?X7>0vhYDv?wi#e7+Wmfs&Kek_#V_ zEHV6lJ^4Q9e~IVjMf1RrN=jNw<*n~jspv$f^hmuq;uGY@G6_(tORm}U33ADIs2&>d zpQ{10I{)J7;)T~cJz*@XXIu?cs9;feP@J#6_%X36VTUE8yLY!!e!imUHD66=?QJ^A zmGTq+v}82SEHF`R)U+j5q(d^ES}?J;HR0R`KY!x6%10&_&og3}Px*K+T~k(Au;I5D zPdAIFY&0LbfgY!q$JMDY#cjy1(df zOaU;D))Wi~=PBQgJY}b%eox!=tM0__CztNu6PeV*|CGEv&RV!gI<&|d)?YuegaTMb zQY@86EUWB%j#giy4DfT&GW*%5Uj86@5Nip?Yp0h%b*MQX@LqoV9zrqyhlpQ2s zP$sLhti+!FIpGu09yomQ<1?Rb(8Plun#tcp8EWK8wd_h~z&t==_v!O)cmDEU>M7Eq zm0ArYeXj$CqIe?1VrB_hLeT@Rwu340R7X%h)8@>Z|L`^o>`y+>jFZaOs-+cL1gU5} zkzxJIsam0q0M{;GSTO4Wt(2=lHlE%DTpn{liVi~OY3!ra^JA%24U^i5E@xjX-a ze(OXSbc)_jUq@s13VueL-<+I#P(Ahc-zx|afsZB_LEdW@zK_kuww6KDcmMUKJ^a>!|1oJ`qWCQvP@+qW ze3@vX`S$GUGQ?UVZGg=P!7FzpE@ua{IEndjvXloS`-VBLQB-$-6llGhGi z_S!X?l|pxH8O&dcEqyfQHa$`{+rz=tNJd$^6#XJ6?8(fn^c0v>R@GP2!7wl- zQ=bpszC;4@_IGRL*P_=(|7pWC=sY69#G3l^?nlZ+3vLQOLOsxM3f@%fykD>=md2YY z;QusFW#$nHU~+k(u8=c>q09sTTR&;DsXS^&_k>BeqtQ6wLK#{=>f+n*)sOFHiarNS zUZD2sq0!O=NnL+qEz-j^>3iXvb-LG2-PNd;DS7ejoaz_=f+If#$6i*hguD-p{HFHz z)gwaRxZI1x)HBw)*uua1#k9zk_*&0Al8$NLl&PpHCnoFym}{k1h9`@c2f5lH_Q{E| zv@bm*GbHDk$}zxWDoZf{0U1&xk$CuwZXj@;&aPD&EkI8yT}AU1wTg&Jgfu`pC1hTO zNyExC;Bu7Vy~26uK~b)4e};{`+nK;Xyd%kTn`)|@3G#!19@Jv>UosYBw_H+>tLUa*Q2y3(2ZGQf zd1RhUecXm~Ye?&vhBmWc9TXK7=IOlNs7|clvvu04 z3;pxu3AQb?R-bL?xMTCIZkbJ|b(WFa=ZmbcWGSB5vJZPny+)ZQ6q8mxpwP3TIx`T*A%C<9E26>cRnurOT_rOZ%ecAJl8M??WK)Q4dXYdFww~ z_qm5e=cw@G_b1@A2D9+EFh;s_qCAMFy8A_$d9<_Nqq(s&>$g**53`#&4M~b5hBP0I zxpVKPEZ%ciaqxM6N7~hY(2yr*@C>=w^y|IICo#ylib7Y7tEF`N_$g#C3+E!J?Arsa z0V5Lx_Q9YA`lE!tYSxQO!cWQU_`Xe2oO3ReiqHg1w|7i=^n@oDVNh-I^QTPKTDz*ZNAT9;euczt;fXU?vC#RuuHy`vs1_BhGYWbUGajjFN3p$>JU67V%XKv%%k}p48^&94 zdIcLg#X!bswvX8)n8g@&B-X@6eE!AX58XIB`Km2TqiP8 zRcpPY*6j8aS;;JI6ZomH%DmhEIlgH7(LVV#{3y`BAe7*(`YPpe*|C<&DRrv2;&t6o z7#(PqjpYyPbJY*qX{{U3D}5D z#?#aHLF&JHLLD5>+_c)Z((}!2 z4uS-(m?{n(T~|;Zibx8eGra%KFroKgV2n5H(e;_w3iwvp0`=&AWL)J#>`v~sR`6O6 z!nn}qBAlo#CoN;T{DX%Ky2+twTCZ3Uo$qUrECw~ZbWl%xQs{W`*pS}TwTU6ECPVww z&pkPklvH~yGx-%feZk^Mdpq`YgGGwUU|tnU+f$oR(SGka&!Se8zTZHiy0T#tHY(MF zc1HidlOx+#rEVtT$Hb(0pJJFA{6oZ61B80uyhm3rxt%9vBh(#_Z<$%r$U>TlWBWy}}~vG-$k-B|C}8xxWeA(qIr zr~zB`S?avPZ|inZ3JcfQ={4m?EGwvr`6ot&UoO7H1d6=CmVgMc=ULfk{Z5vmHoBKr zaFhJv&bo%@3*co-`cG?doul6+b zy^Ox=Jkq7eGQ{}H%R@1rUEn?}1fWiV?vue+H@WyuuZ#Q*Rtyws2pMW^Kl^KMRC~pw zh@Ah&t1z)YwHo$)MO#2CcXMU#zGL|O!Y8qJ8$a{DS9R(qW3NEX7qQItHVP!0s!N_R z+ke@KwGWq)TK|pLpOd9l4jkm}4JDRzl`gq8AA(gaCvE4*3)jRkjpn5VSl?U-dZ2FC zA-4*d`BdpsZ?@Gw3j4!2y%d-7QzQC?OMQMFZ;c0>b*OwOPdxv=Y@gRt;L=b{xF@6S z`e(7#anGYN+49F3!=FW4iMuD1EUjWb))GEf|9ArH4u*;=DhsFRqL#iy!m+rt4U}fy zr$|ny(R8K?iM=6>VO6%j5VJqAnS8|q#lyJaFuwW7m03OWTd5!Np8FoYBzD1J0XjZ* z1C=h9HpYXQuIVIUfBrBXD-Cv8Anj_Ay<>*blY*@WJ{nC#8VLzq z(t99$JaVtd2lthKhLbN|+pMjI=q>sW1DRUJ89rDA(6Cr=dWW5uyN+fDQ07EavjozT z*#|#HL-)e#$HG>Bgz;5`e_acYu5wt3HmP0>6k9h=*0+E2DB5*Eh})uA!RPx{gYBu= zH%{<_;+}^02gg{Trj955E5VPc%^zFVBaN~kuiFg-D=EuJ4H1XRBs?n4c9ffA{@Q6M zQf7=*)}EvlfZ5{&?j!SgyXf<%=t!2tP~T{nUE(fp*f6spM=+*6u6S~bAlBwTTf`1Fy1}+6P$$lEi}I*d0>gKtHn`c34SLW|84lA5Ih8> zi~P`13$hyjTGI)+VpCBbFE_;CK%z~oYd(b!`1(kIp>7@~k8d^ZWp$`y>}A9hYsayX zW=d+zdX%>3>*FZr10wcuC}*+rN#{>b_d4`GKTiJ+(Gbsd3wq!yJZ7!4QD?Oz{vJsy z#?KZ@>?qEbJeAy?iWk_E zY%djkfl*pAClWn3VZ$Y<+9LiWAkn^P4NAlCnAnpYw)55@%QLq$D_7$xP`oPq6G`6h ztK9pIPmkTXPvnl}o(>ASj^dU?4diqqg!y^v#7!q37P8@PSB|j{z6|>$ESc85VedcC zbMk5e50{)cv(aW(okpuEZ2Yp^S)Gae457Y|N%T@hd@u4 zjm1*v5P1VLS^4v;Cg_~wG6xC8<-6!84c{}C6bD^u^sqYJbwWn({eY_QKq*UR;AdUgPz{^{qj2+i7~MQZ0^Gh7$$br?BMyKefK)$-*dgsMg7`L%wmNq>ACz z9k1Av*Wjt7&P=xQ24(a{9u!vmHq1(;Q-0Y1WCz5>&uq{FSoQGUl|>R0Dw3VofG(B8 z9IM8^VRtRs$nz>DUB21II zCJVPmGJJ_8wL~m>F?Q}QgE~Lsdncl#MB`|U^Ht*@S_7`~LQmZgM8AtChU!CFAF5a5z#!UaXy{9chY+Na_?wPVE^ zMv->y_%L0}B+Yj*XnSS<{KDhy>`QV*3nuyDgdMllfr!bNyp!^RSecIRK30abM}p#Z z4jN4@v4oUyWm*x8j-;}!B-CETB-wSdNTn3jWwcDXswsFYe*l_3S(IJ3KNFA2CufnE2L^&YxCt^P`i>vR&YHL*Z=9BjE_klnWxTm63VGi=4zVs#V z02n;G()y`0KY1Zi$X$pxlS(bki4Eh+=khMdu7AjI7N9OuXV<%?db7##TqAU&j=!AMM&4lX|PW8j0ft~`90U_o%p_K4feVsQeD!I;jtFn zu1s>0Lyv`+Fi}cL*0cU_ium)9v%I9#dc@n_Gym|tfuz5yBxo4OSS?rh`HIqI!b6^s zii9OJE4=2!pvWR&U`=B{50i%84M5KW0yP2A%|PY~cq+^TDB?6wV1@^ChT}t%p1GU6 zebYQu)1vq+)>e98;4BJKO#Rk(_A|w7T^4N(KPy-|nQGcWR%(voEaNlV=V41aKx~|+ zR965U8}+rRR#d*?a%Rk)EIMmQ?wJ#^lb(Z7f@96y%(qn}Kby%d#BjG8GQohc>+EGy zP2&A_GPKYqf{-r7oKEF!Q|)M9!nBcCQHOCNR|OFDrHuku;&le#&jYE|xnZ0|SW;lw z-O}Bwfvk-Vz@H8(<-tM6!LrAtw5~wSKZM$U%4^WOb~``Uw&m4bXAH+RoAZ(~ofH0D zr*&&Lrhj&@p{Qh>7IztpBmZNXY)u9YCpAd^L4 z@vLW%4W5|FX6a`x5koxMkj>XY)QW#UY50Gd+!~a>hsue@47ok*0GpiM*hcC_Ew}1>OjmC)<#va zv464o%h`$(^q=4#=Zz9W;3WW80T06rzvZEnfqLxM#<$eO#rCJ_@;p2=Hz4->1~v}> z9|p>H28aPRaW5%F2bS0nAe3T|tlOSc)6z>z60Y-V&ribi9_91n%g@E?2RBE?hV9#sAE@J*30B z8f<%DR@t+Q8VXvp#aig_+!Wr+w7kNi2 zB9b3JuBSGBdp!Qd)7u{HQQk1Y+J9+>{Jf6{uVC~9WSuEg|_rs zSrb`C5%vM?KM7@#I(B+@4l4-?WA%^(Lq?nBEGL@OL#_X+JIO@`$yKF$s9yhgDEfj8 zrKY|5GOc`U>R4lOzTRxK!6*epMQp$&!6-ZcwUo;w3DBp%VD$MtJOoO*%S!_lNUjQ| z3BHn5zanxurNBKUeRIO_Y18C-|3tBA&UiL}boM_iJ?>S_LXocmRR$*6KRl25T4?ox)JIBx8XM#VkGk^+*a>=Gc& z0J2ReQEFhAItX9=in;$P?dKlJ+Jenw{3(5f?Yxw+8JF;6)_HxPio91fCHEhOPV)!Nco(0R z>CkTvBpR2D*hms7V8Yjp=x-=-xFCYvM`8e;YzzWwHZ&FBUyoo3glPW7$=gR z>Lt4cS;@>Ph6wEnwPNXy60;j^Eb4ix)<@eLf-Li8eC15=(+u{xR=K6Q5q}}ag=Ukr zslw^Ii!G^FHx@g&gpH;$W*2`T$~q?qsW32|&9=yu#aI{=pF%q(1tA>=x!c$_Xtn(s z{^$8*xLe@lb@juxpA0B07NeQnY9sB>RH2yL^}*n0v9Fo@gN0%Jpcal`|j6| zZ{I#nXa5UOlXwJ0{OZrZdQJwRP`EXP5@5kB(9p3EfCvJ(FC0kC8ZbIEf4f5JHJwqb8L(=0DBR-gjzWgNRyWtM4AtBw(pc39C_n z-&jmdvf3)SSHL<6FgXxoY?#%9ZD4+dp|l#-raUNb8M6S2<5Wt;ehK?K_D;5$newJK z4>f-5fYVxuJ=vGy?A$paz6{KArbRYg`eh29MrTG~o~ZYnU+L9Woq#GtN~N8%g=a7f z#`ai(wc|OBk|gG>m8qkr7ik$UtQ>;fy`Et?_v$!BtT=(MsjDP`+cr6< z`!8{tr+D3g$D{l#M(|0gw~D5@yL8{o?nPui%`HlTFv7}clNo#F>)^Y4vzw7ht{WlH@`0u;t3m&dt*~%tY zOdc1euac{<3UV#aSFygsQW30fK*z5|ryg-od2^Pq_?2t4t@X`4Sv~HG(-P@Azp=B| ziuk7Ph0yk{2uc!%!hqn~A)DRLZj6%n*)ZOS&taIH9WW}r?=Xecu3tR*F1>&WOYe;< zU58(v@A^z)&5RS4KOY7<_J|L#S{vBm&^|9a|De?5{@$MAOuKWF+uZ zK)n7Y)0FHJiLE;Cm#w|~(;%BiQf=d`8WZnzb}8Ji;*->>$U%%f&7#H4C{iRyb`Z@! z@G*exjn)0<>Bu(BfETG^2yXK6nV}51QX;8KgueFxqs4g zvLS^0v17jwn=%P*BbC;$;l&G7rlaBSP*Rk4N|)X%6Db#3F+&siq%=!??k)4J=@g5V zCDSvdlzs53#*KJBjHJO0LQk;(V&$1TsPF+zE6$1MZ5jI(Skq>*AVg2m0Rh_Aud**$ zeCsKx&y=%imNQcm9IZ;*{>T8aXBxon1@urBWJnmA2#lU(0ry1Tr@r4#PR(>-DdiuS zv4tvDRqqu;dfRnb7fU&twvuf6Y1sshORR$F(18h$T~=R4tQwphkpm)>Y&K?8^iHKM zf|IdGL#^*Uxj<1autN?cKo6AEYg?zWsEO%Y@m3VK@7;4 z=a)jIC_SEoBL0*$B%&}Lcg@(FVrJXhC0)8_w~lyS%PARx%rWKHMBujX>%JuH-tQ|M-J%Mwl{ zC=`zw%!)fnYv?Nne6OAB;8)I_SW!O4aKk4cb!5$#PHvN@u9>R2XUq4UwOvKY zxjfX|VZBFp@%g2grI5J&XLSw(kXjJGMClfmKIiFBTsWO-;Z;N?H=}`HGz(7-GF>d> zDN<$pYgJ17`$jFRY{3h1=w!=TO8_E508rgbF%X1cLa?MC=R#G0$mYUYIT!%@yO1OA zpum{B+`+==K(9A7QO0#r{<)svgLRyup+ifVJZLc;Y|r?LyhfEUBQ4L3o%wA&qjGqe zgO&%mPPGJH_Q>;3^~9m{Pi9CacDt4|yX(dFJ~Jl1xNG!)>6+Y`6#05?E2B!G*42MQ zZUS35?3)QyS zp0Rmhrvvk$0F@d}x;`Uv)__-9#cBRGv~9VTsWe%yMSZiI9YpP$gwEANpIq`svK2Bg zvF^jf68&rXK749qQP2AQk6#l{mhPxuZJo@8f3N*{m$$+bWm*h$3$<{tA0z1EMTBjI z?$@7cdHr_Abms}dU4lJ!l?-SL@z{HE5f$&Y{U_sv?KrSJ&HJPdl~qoUv|38o(0_cd z+AQeoGYxWJpSSC}n2pLfQVHkA-ebST(~Dba5|_i~ycyw7NIsm4LBlv8poNar*>s;8 zzoyM_JbR6{E(Lbt0)S(D8Ceic{-#^kfXloNe!&`dkLm3lHopB z4vT1$g!yp3%C}O;X}SQVOf{uZZZnO}EQj8mFORGo7PtqD@u$=6OPU$3Z>+a9x(85A zgMNk>Oyx2`rDW}N1kj?HFfd*7IxCo*39@D>`(alr>f4KH;{tAD>QuvmKZcg}l8$({ z{k|Lj5KZ+6*-aoEOL^aT@JE*ZOmJu;dzkqsPvzCT^B2x20|BAngufxm_3jWTH9)U~ zwX?NhOAg2VMDwFnDjfZOe`vYOw9)_i!s3>zednVs1zXy-dsdh6`zk9X|K_crK~0Gn zPG?&-KW3=T4alq4S1AH^8*wi-NX?dDzN=l&Ku#!18P=L1na%`oWS0vF7hVtRGRW*+ zNPL}=uOBOkR1RoT8D<~YARdZM;)G^$lfAMT3`u>5jwh2GsEHSJ+WntL@`gb(w}(xV4IQ$O@K|if-wVlVkr*( zGY)}gES}il!d|7CRcw)CDY;WDg?2Y=SW0K4T`Qe~QhD_E{2-l73v)Ujrxq<&ybzmX z3rl=1lATb9Q>KHVW@RDg>T*d7$I3JvWBK%yEWqCa;{TY87zMjWH%r2KDGMd;ksPn8~a#Q*3 zOhMl&b~k<0G`!=NK?jGUkVWk$OAp06ps+Qj5G$q74eyuV-IMQSX$=$NoTg!UKp5wV zkSjZ^?;VV@7|ZX8wsly#_(~CS&2X>T!ovRvfl#U%X}NBe@hBS>r+V8sqeL*&I$$}D zY&1-mZ0eNlZXM|2p3|@G7#t6zYN8y<|2!EM)kgDSaX?Xdf}XELojem}S8@`n5G(#V zbxC$2?Ul>IMCPu-+Ogm7vm?jl6LS@*UTgD>;YL^tcI#M%t2g2k7MK&(`zJQe(7Te%#C@~rE z(@WxWIzeHjWDP6c8CiN#Pvz-nwW)2A$=hzgopLdX3UkKn`7rAuk#vP)e`R<-vOF304?we=TbN5vX;E3XHbCkmxAU*~4#^yC57T15S(gvT#F1;QG4w;6j1MlI*{j ztmoygx(8qNwv}JX3lnu&gio4CZFCgk{^K~6ZNqt4>G{R79&}Ds`V4iY8ue59hEG%T z(o;PG;tg$2Wj7^c|0&BCk|W|bP$Alv~hLs&>c12*PB1 zBU3@RIoEcgdMO})a?tp~9ooHQ8b+@?Gt(UNTV!z1j0h~i$SF{>i}(44 zn;s?n4z-(z-patnn-B6L1u5U$CeZ#}kl4;}fb*ad5*wq3jhHVo2QBggaPHeegnh9G zSu^9~663FN{3er$CKmsKS@@}!EF(YXexAwWtV(y%&8Sl}S{}{LnBqKBd^S+b=PSRfggl^OvWW>+A<+Y`VxW$wZ`_|P?dm;FeT+$YwulWWw zzKv}JY|jnxcd5LhY)@sE^&H?Iz%epVqo**CduI1E92wP^P~dk3s zuFq$U9h$A3>=K~t;Z+#m|1;C$Fc*~GBN7rMUfm$^HedHQC&=0Wq?mKJ?@|6s1`O^I z&Pjd3h63n*gMkQv<$);e&IA!^eW1-{9@Wi+dC^OD{p0G{C#~NA0F() zY4QWK5WZRiL5i2f*7E_fzQziUM(>{fJUu-c`7rb($Q{y2Y50<-WHHtEox~UhvZ8u1Z zjkz7p%MI1MZPW1)Bff2tyKPc~Q&3#bcfA#$xoHr)apO!jlYoLiw{`qCwL-Ub+_$yt z*S_%EI*!{qu8*-Q9~0Gs6SX|zRJ`JqJ>oPr*EWzyYa_4Aut11<0*bW-ivtVu z@d~G*apSqtE@ODTR`+qJa?r+FU2Dx0HdF-Yc>Rib?HyL`iGh-Eq1zlF1cYU+M<>{Gm+9aXRD4kE7)K&M#VPz6=I}3 zG{=`XwF|KD^BKD5-mc z@S#yhmPJzQ>6S&acWPZ*$V9jcAH4O-L&Q+H0Wtz*Z*k+u9t=irJ4g=+?}8o-c7&qS=$Q zwxbwt%kM|KX$QL(06jg?x~u_?OEJ7Q{A%Pcc@ zE(;-TmOol%2AV3vKr&`bsZ(q}owslKh~UeH9Qc8CKx-mq5)A{xA;=8XsS6@PlE0W2oDk={2*ri)QpRJmc zzl{yNG|-?wq$jMXvp!6nG@fu7WHv~0136ve=-zTg{_%_CGjMIP_8%==1Ar>CFt*gn zShc2aApPUX$NLRIfl0C_xL|am<$4GcDXHj*j!UdVmVt{7V0Ouk?S91-#{uWUJ=-3R zMQfjD98303|Du+i5{*Jv97>WegPb4R$&NnoVGLXg8vg4DKwMdy^-0!|klT$1_3v7H zqCWeCmH#I@Ej*Ch8@v;WrVrp7O1)Dku*Z5IeCY>RUWu5P?eG-rSy%x1%*1l|gk^H7CPr@zT4(%h(Q z16xA|G7tG_`Z@-KpeeksoDr|)aD?&dOQ08b^ z$x~7RWz&pfbORH=soGAWosB+7IewJTB@fTWO^?~8X9p-6m0S=M6Kcf{- z)4T?6>bKuAZ~TIK^`)=fI{D@AmmfGzm$kFrm=}6*c-oA+VNz-*lzZcgG>flpjsVu_7eD2x1gS%E* z=Vi;}$_yaBZUbat+7Rlx!z50@;;ya%{w6;BN!Z&vNYX`8*y5K;-I9fwNxe5MSE##Vph9ZvtiYT+JWnqR0MglqsqCWPIyo$5^y2)>_38)_c+ZK1oEI`Bxip zI~DlR1Td~0&{UK{{;Fp@z|YHP<2=GtKj|BtzfLD#b<<<|#J6*b$E>B=q=`?HDf zAe$hD*`c+8({bma-ZUz1@Ip^^K2`n4-W<86KG{ZS@rYT8jYsW&k!(-fb=xntOv>cvQ2mY}-Eh=ka;^qG1W! zk(K|8sZ$&FO+--sfxUP{z7IWb!?_-RJoeO9a=`=3aDz1!IVG(<+X{D<-rPiwr^hS8KC7d$znDRwn)=Zj{f!!Dxf>PR(s4C@{~T`U66Y7o@Bp}Q!w7VAX{+prmfM3 z?=o`F_Se*#V(q8G7HO9k4lcj~qkGD|MlbJ6{_G_GI4xvT3l-lyFFwyBA{7;nM_xWU zd9HH$Nf&yZW;p)jB^ zlO0{s&9DO|+Ui&LUmb=A*_}S+w9PJ)_%$S(kaN1z})57M(ab#lS zRAkC8ix$$~#@#=_yCuJyE?)q`EGFF4q%`PYrI?pBJWV=J3uB(nxbgq#b4vK^bes3Z z-IfQ%5ijnQzxeM_`0V@(;N=U&&wkW85o?R4P%E|_WH|?Ik_T*Kshtd5$SA)Byi(sCSPF+mOzU*r~_iwtVBN>n5R9cDh;C6AIn2>Mj>FzW32 z=bvFIdwh99qH)Rs2_w$USE?-?)^Fny-Ifs^R)Sf1Xn$FNv=hC6<3rJ{+lhQ(nxCH! zSUBt|hv7QzXqZaR=OoRyB%SUhGrS;|Ig_Zh~)geRFdwa z-&cx%gk`ti=)Mn2yQ6dS8-L36{QYypNbE|e#F;1mMNocTNxO`law7C{%8;nSXFIGVB8p(1stalo7A zin~prrwm01eV)bAC_6kIG}fq5j?xuLi3@PmOBKj|{8JhGA|~ghbE3p(j>q5=cHnJx z^ISo+{j2mR3dBg2I4}HAZd-`7y|qY^x^cm%G~JMw^}P6Pq?IYTpEHGNq+VY1ug7t9 zE(wPcNu4<~Km1C0fSl6?teE_29{--a{C!9|ZXptPoh03nu2lwVgLB3dvq~el{dBlZ zuhN%9xF5LZc!d=1W)xD99wx8O<iU+81g0&i&U#tR z4c(uQ=iGQ~u_+?E-HG^aU97k-s8|`T@>cDBOu zvx0_$3hpjb0q=6}8^uem#cmPB@14A!^8iq25MG#0?4g##mgBBf62p@eB{+YArA$Y5 z32>n79~A9eFT83|_;4w&xw10CyizjXdcR!OYF=1Ow2By*ELDZj%PAj}7jFEO@G@Vk zDLy;#prQ;^X%|?1lO)TbCGyNy)W9FE8{n-1xv+lmum-{X94V7~I-2w&*V}bWB%!Oe zMzK=lUR}~SLlw+(Zt(weBz#&4%N(|SB_bt>Fv?}^G$0h$DFUf0MBiHy8)5PbGU_89(3 zzAN+Q$BO)lS9Z)zbFxj@$U0Hoa<+G`vGYwX4_`)JsKBIc-dVi7u+jf%^ZHl4{&?K$ zRr%(W$4%s(c0iH=kFMk)nUu zu;%ZqpB1Wvy+ao!s?b{kZp(B?!g3oEltSq$d=0{Mx9j@DoRt$CmK5tHEzr5_o<&EU zsF#Jxmz|r=m|KFHuC{NI7TY&8JWFwJRtM7x_1rkO4O+_6CMkSh>AofW7Rj;|2o*Ev zT-E4hS6U|>^)yx1e2GLnknKK%)5SdPko)*1_;nrc$y-_BigSuG#A?-oPfy^xl9|?? zX2#xagI4W%zfbIRPscppdA=E1eOBuvdDqpoZ_7YG|Mt`veRqbXN`A-B@eY0Vw|J$u ze~;cbK?u*y2?82@0;)lNgApeAPo(Id3#aSC)LzZLv}8?snp=4f6IOPTUgYgjWMh@V z`>P+_-M_@s_n@G&=iNKqj{$-Wh;8jg@ zo_PK7ctDyE^joVQiGG%wpRXIk5(YByhduDV`GCWsB4VT^w(EW7(cRcT;ql>*48yzh zM*9T7Ev|GG(_KE*uOrlb%;Y0FSccTv%DNTt#LLU4v|o~vjQz75YkD){H9I1T zx7a&>mQhXDE|5b;M~@ja zhEyU3eLRE8on{mg*^oVNeZsovTV{-sc(@x2U1Vn^It2y)B19Tz>kSPgzRhy@(TPdW z$&rlaq$K8)lILVNjHxjoAuLFw6eLCf9f|iJuK^@&=IjdRkY)2Kx0C{`pYZmT|Hj|` zvLiIk&M-`2l}R-!DEpqGr;0w|{Zd0o#($$+6YnQ=CitwT_QS_elXPNfAc;+o6aXxN z00+_oYu)Ar^HL9NdOzxT%DAu{^gYrT;)@7ZTLIfaSd z%ayx{>MPmQV-kfcqhA&wR7(m^=~zlZq0hj|Xs|>8kZe;;v~=m^%!BZV3T!NDOj}h;|ld4gzdv-_0Tbu*rvw#I?VMcYGZ$Oc*jKU(N!s4P%HJn#vY+H zMvZq>IfF|Y%ZBUoq7KX#YumoW8L{s((wwtODLbwvrN%w;LPa~&4?#DlLFGo9N@-vY zEMUQYT`>)$ik?SsgZ$KX(8ja({P%A9&)qaCr2(+rzX?k295hzpd{W~tzfzj?tiYJ% z6>PehY13%l6ly&QTM0l#ZQdXbn3>t+BEBuX}e_DO^#Bq;wDIp6mVT~Ai8N! z*w)lZcSaZu-Rc1k?@Td;U3bb5p-Q3cU4z#_REty3%S6g|7WADlzbi^jKWoRYQ7)~} z1ZF*R*nLq9mM-0mOaVkU?ZO?vU)H7?XzKn@A5xkGwLA-Ypw(q6x%}Csn}TOA)!4Jm zsExH7YvDE7k~sNL^7BfI@K6uBu*bByiLJ$WN$TV?Qz z1h_v*HaC4Ac;ZkhF1`CX#z{bypod`n3eMO3lAXHF+d{YVE*&PWZXf=UAUsV$sNX*0r#+C9J|Nq? zQ~~@n{09oTpCy0+zTa3P_L`r!KLZn=6Y zrS!ehDPHJgt?0pSX$g?*lH%0^w0R+kHW`)%I^FIIBnv95gZsSY`T;f z2VexLMj=hMH52GKbXDp2w8 zi@u;%pVgL-{}iv|(IMY91`AoF%zK_4Hw}&x9^5BBKD?|FnR9auiNzZww1oN~@1cPas4n z?)(VQm=wJh<4{^V^TaOb%2Bt^nO6|om*8R zaGh5-07f(D6R7)Qu? z7ef^|Tjqmci>$es+TS1M_bk~iDq~H*;V%pmMuUiGKu`R8@P1GHRzDkjZc~k)GL}2zFdoz>U~u!3c$fo$^@%p0>cN@_RkFC zxBqNtFQcOwo_F}i-uTwmS(Q(7u_N+}towBjICkm*%#wdaD-+sx0pzf2J&nnEMU6d+ zihCj)!)SxXL17aT3*<-@0@efU9JcwHraW6AT4=QBJO6|R2R>j-vZXsTj$fD?Cp&IX zxDJ6!Zvx;nuyY>p7@qR#`O46oU;8wCd=o(4Uu=BR@`1AXeFw?mRey8t@?|{r@N)Qt zf*r~HhmJ;LoAm?CH=y0|5-u#_iQCGah|`c=v?QX9z0wgnXsSoyOQ7>8O2O%$jf^;O zw=oYm+I2eJ&-wTnMM}2*=C0#K*c@`bcCZ^@AR}04bqqUaok&!7VWv4_GvF6C`u1bq z@zvT~jdvoxPM~sI+USu|T|K==VtOSxvbCBAj`8tEcH7bDJxvi~nFNjq*q`ks-oX_q zOR^EJ-EgS5lRz^+5H?Bauo;2mZsvuzsb%VU+_{txec-a9Oz*Z>x}eW7SK5x2Gd z{eA=Lne6MFIoW@Ltk#QX32)YtJ}H+DN=(%&{CsNk&-I)Q1w0~`I-k+E!0IUGl%|TF z;;6TU*&)*;89nf008lRnT(Lfp+FHRO39L!ecHRWad}W~)YQ{pp>fMxjO7Zl$Qt_+x z!`s6A4E#r|`lxNMJ6?5+V)t)gbZ-ggY_C!OMsyMRB;^IUcHE>)c0k)bWR`tvB^msm zhjIhZPVXG zGU>ZFac41BB3Ot%1{WT2=A-S$j$Y_9u5Sr4ZRGb{KZ)VapOVjQ`%(Xkjm;w4O1zxD zM~$-2%|trXQL*LlKI?rDkol`)1T;LuPNW=-#LojJR1U#5*x{W0P3#BN1*=hgy6AuA z0wj(2ObVt=;I*m4S1~>w@?D{S|J#w|-+D?6Iv|rQTnxjN2e=C%yH%@wx85&)><+1Q z0Rp9q3j|~AhlYD1B^PCqFC;b@+3n);+My>tb=$&E#1caZjo?nYapY`8UWf=ldfJ`R z91%Hctprd!5K{p9@G+u(%AffN20`+X>SKW&tnWqyZ`NU(txc~D*EZmfjOlB3QJ||^ zg%t;NiX|PHHPl=7rTC9FCi~ZxxU6qPSvOnU{-QrOrAf9$yF)?SBRN!YeC(ZYgG*DY z0a-d3H|Mm-cjXskjL`l2B~S054q-efhkegDMJv`|Io>7ED-?O3I6DP%WrZ5)0sF;o zEBZ&uE6PfPB|W!vh%E4y?iT})({t_1TI zpK`xo*#49NQTB6RoCBh#0n>kv1u6a&g?|h$Ci{=!PC##2luY*5=}Ff0Tf4O4q-#|#RA5y6JTEsQg-u2JU%Zx?k>kR z)*(o?9d6ZF_)As;XpXI`*;?>fx*Re3!S`ChU^&V?AsoUz+ zU$)z*=D2%B?nLmR)^5gE|5y4?C86$NN0Ba%)^DX(iD?iq##bvsEoixIAKLpjdv|v_ zzTWJ7J(3EGMBanfw&&gYm&6m1K>6ONihE`8nJg+__QqDRcSs!`R8;8X%m>x@;VM+#kn3>%(kuU%vaS` zo7lB-6MU-8VLoy>BP;O|pKVvtZ!1iT8D@{m-t`8CpARDu)MZY6%mkdDx6UI&5HA8m zrJL!fHb!stdU}WcOE~~q&o`9*o_8Rd#j5X|URO9?GpbT{IPjIk#KaVvi(lgaWT`QKTksl_ z)j&3~V~n_6#TkI((FFaDjtpSo<%G&fQC>s)3F`G`v~xEb$%U$nTDTgP zqOK!x=yZQPm?P$BFxj^_L0<0M3NW8B^ha4OvvB;z&Q#yIF(JM#IzrEG8}Q8M&PQp%}WmKR&On!i{&bS3Hw5)Z-|sTvm|ekrT1 zasGq>Uu>n`_Pb#oJ!7sx@i)*yA%4c|XvnP(SUkZenUOv;Kd@UMOi=(#e=@JnAZ z@o90}%QPg1b=P&zf^_@T+3zj>*YX|*Tb6rE*wJ@yuS(3*g)Y}|QS`zUC=e0`tx?K* z?^0<{(sH&4vxHWsTLL7qk#P~9lD;2fYu!fZE-NDA9ovlA{G@C@xCV!ox$jdMW~3!= z50*oiO>h%{Oq&m2Z(vNrF_!B8nNid?#P2MplT}V9B%`hStSH*6&Q>!Lkl7?}EM;x~ zMo<|^WC%xXtbA)Z=AKpKawZ%-^xR~qQ<+j7Umt5?k-f8&^ty$4_Eom4?H}F`pBS6$ zT;KnkufRtyp+C(n3BOiGtVSnb z;jra$-6W4BT8ykHa1$WUL+oTnGN_8eGSxIIt$Jh@M)z`jyjDH!ZDS$^(vl6K3nk>j zc4@Qr7fEkPK^&IM({Z3MfICp>Tty7|RQ0l(D@;pL@@%DAGvUeKw}J6J$qQ7{TEdG} zd8xl{m17v>l9M#I5tf6=dnWH5Ila@+llahBS&6{So_;(Z?ALH&X-I=JW+!UrQ@#_n z^_ttb=cHF7h64(2ws@&{XRiUQ1WUScGnfjp+teIEFY#NeK2^4l?*X$pEJdCH>({s< zb%DJh=?eissg~MW_7<(|+S~}cE1PwD{-(Ab{BjY+y36=xdL?yLhhj8#%a`aV#`7|5 zs{3Z*zh`eq3QQ7-0MG{AxSQ!@8;}O+$T=f>O7(G7W?^iUidk5SZ3I^i-YL;ER8XOr z1d5QLj5@z@Z$<4^KGo6HcQ$PG+{XIax|LIoJf*M_$Ljo3X zoc5_Wuky00BOYe&hBtd&KbMv?{@&yjAg|*|n=5S8bxAJ4;JfS7b=L~m-eEKX<6unl z%hlL;?*rP+DAdg&X3t7+&%(XMGW3?l^EhA=z_1a=W`#3s$1yn0GSvbfGcK!#wnU5C zSUSZ|OG`;JPxeSG74#@RaO1@jSIwSgkje+P5oW30S(Zy3-CCO_SS=9mXW{ z2wJkMlm_YTdm7H;VXLRUw#;Gb>>XG^VVr>SEU$e8WxzE^s4GaOAN@^x9m(|di!JJE zlqG$?JX5Pcu9VJmhkaya*kEn{xATmrWytMYsR$QI_=wPBR`sczk?859=Wjkm7O1!$ z6bA@>+G*L8OV|=?WRmZVzN9$dOFibMWu#6#2{<@3v|liCREwF(o;ReCHqB7<668MY zj={1a3rUaTazYPldz%uZ2RkyI}(XiYKvDRt@r zZr@FvIgc$4;A=_gS~2MiU-=Sqvegh;HqU&!5>~%4svOl0fA;zdt+Yw%4-V3g_4uM` zA>FQnTbbTdj;kV#KHXDCJA$)p&A47c)YqcVqn>SeKAEAG8x!DvXO)^fhZ>~o*F+uuaJ_%}>k!AEtB8fINtWei2G9hJ0g z`Pj`VIpp`ezvl-T?k8kYKw(dRyRX_xud&l;;DA zBb;o!LB>T0#YG4!9~&n#&@KX112?L3R~lp9-T9R`DHlS6Dpx5=zJ7Sit}| zB@;T#S*TWU_WgU~7Te4@(}PoHF7dr8-$^n)7VIWWJDDymB&G4e!BExKrKBVIcwVy; zz{95jfh7mnuT<-{x?-W8M+KtaxRkhH0e$q2C*7BU(WJB0I1ZBOPYEGUJB9cDEWc)$ zYk^(H-=mKGeMgr2;EFnZAZRvUOeuL|;+& zqoXN}W6^Q>R%cPk5+{zgTM{z>x}LII_d+95@v%3|uHV1hXU}1UJ^-8VgcFg#t^YaF z{FGFnRB~8clK$+&PgDc56^T~W1?(x8r*kIeYiVMmQ`&CTdIcjD~zl+DC@4w??tofu;TY{7k za^Dm5dU*#ZLYNm3aA!{2CYg3bF48;vL^yv4p-BI0`|25K+JoPzY>e@6M4Y0^c2Y=cu;`jZ@WTbkK?X> z4dgx`#vElh29bh#?m;ZSXvG)*?qL1%5p^o zg7U)%a6FjKJST1w02-_0RuJ{;nyEBPP;f5Q-QpdlW|MMQ>yX)jro6KCTI+yA$P(!d z7iFzyFC}aRQ909owjeFaCZ)i(JT+$WgeH4?lHp_Z9krMNvS3ZGHQs0%aJ1`Yaj+v1fP!I!rqi7Izk);^o6%eHL9n@(_aD^~eyJ@UEGeb>(bb=43*k>{ zKlJNSBbj*R(N9pl4|TIKL<&~ysTFT;qTR(}QG*NvR35;`V zwsJ91WzKiaV&b;WC;^J(QOaaFqDayDbxQ(yyq!9$Ks{k%A(Mq8PK()QU=xHe^3(*G zZr=FmmiL$w!T}|tD#eDt!%GPu8j1k5M2M1a;^ zarsRP+levc4n3==%mDBqF-<*1e%Z0##m2t#Ub>F)8-A+0$X{0ECX&CfG)HWkYLrD3 zZ&n<{FpNaC4sSN5s;(~yB3l1(YF5(<%r_4**$F4PBkY5-!3Y!@jjsph?P9?vKw*#> zi`nw4_s4XuX%Jc~%L9@I993|D26#vLJP|1QiU`e&2|p(Y3@&-K`>KsYs1zFHZM1C3 zlux~=Ve&^at+LcWSS=KZZDjhKa9+=Cf<4w8G}*;Mkzp9Hog0{)uUWQfZxN_CzX_$c z!8q+eZ?2_*XgQJG`7{C!6iBE0Z70}_#QY;y_@QK{D|z}Y?iKLq6G1C$v4$TGKHM(r z0t9OpSD>LZ9n}!xo;Zr^i(Nx$AJu)LUbP;EqM=~F@U1owLhXp=1jf!%Y@l@?`xOkb zu|hzP5fYBA-*Q5GJ%Yezr8&voa<4&@O}x;B@xLa11wUn1>VnSSB+A5?)Kb%$-u=)! zD4ujW7yX8mBw&Y$q<2U&iD5N{ZOJ(VA|iWCMgfYtM9L>5i%h(<$#xuuFaO=%nn85h>OZZ67^WU}twQiU@Fv5HcKS{Eo!q0!o-k< zRllXrZ;W5pnhK*=Xrc?k1n;oR-Am^utA&`tKn(wChTH!fONdJ^0Nob=l>Db&QoaQ| zS{U7$e7clh-jyi(fUTSn!L(O_HL1bP&4Lrd!j8?d+h9FZ-f=OD{q70UzARLxY3uLxQ6|AN_UrK^l{mlbj?kC=&<2 zxhR`YH>R3KwTzO=&Wcr$Dd%vi(_hsajZWF+C38{ZTpD7w7!!c8tBmN=jOmv3Hs2A8 zxA8{QPsPj1i%M5{Qdo|#QK5hoZed`imd(=BnP6TfG?C)>2!t686cSVJC)t>nD_R6@ zLgat+F<)P_%T2daX-h{~M94UqEhZUj>; zB9`F_4K_{#(|$g=yXB6fv0~P{b7Pq7ck&ZPoEp|H9xt=hZV#`S{EudcOMGPp^#&)Xn}Qd~Cul zEI<4jREmZM7I1@13MG(P7>L9&0K)pwjG_Po7MU;YH?5^)h#?6;dHJ1kys?oIhu&nJ z^=cFz0nFrxFs1wD++@mYr+|a*&w-h=t3#9Zzvrdz4a=m-e=B5dj9@DXV0_o3 z8lQOd^g%yJL}SU>UO^%3K4rDRJ8jSvegCi8lNfnBh0HdG=8UpoI%$3)K|d}snN}J^ zG6zsGp`Bun(NVlvc{xIFs@TjMoR!nmG$x%Rs6(YOB$j|^vQ!Gwc;>K3=A>0zD!I0g&Hk*{s2(QMwj{&gO6lNt9nc>RsxLpf1}p`C%voceQIg z>v*Uy9i_Uq7~5ym$5ERGkw4&>;w))JeeGst3LuoW^124qRBP(KP$JY@Oa{3@J%60& zfuJK(kB#A*W>To)VneS=7x-!kxMxp9M1V4!FlYSKMp8AcZ`u^puhn!}TGKQ=QIqJM z67?pLnF#g*{v%^t`c2691?e&0la~%glIb6)3uXsI2%^hC3C=i1E9@mDl^UfhcOw`jLLVyX<7mt@)j-2Aq?2^Z8!#u*gD@| z2U?nPgSk_Ehc$a!*dS3Uqm zt&LHq|G0UY^0XTsh|K6XPkxmtm$7$KsBJOc!Mh^zj`}_MA7Pw5^QDx?eOsa1|K0yS z|5K<6;vdA!71Cu>_Gqdn7BmDSedz0GVQ z^Msb&S0-!u4T~S>cu(#4upy8FDQy!&(V0gnKLemzUN#@VCg8EnY6MsSq4|Qo*DqSC zj?jE>V%(A7Y0paD_YsL9;;4(SQ|IKBh=w1<)14((J?5t&nvo|2x>9T86~pif&VLYC za0GMH>*B_pjRKpUEu-Yu?8u z+Xfu-@GI=f?tM{3dj!&iyJ{Gnrdf*tP&}K(+%o0ca0Z>Rf;cy40(gasKfIrD5VS8P zOG7WGT|XOBlK{S)DN2NOfYz|$@9W~outl|S9@8J|*;|g^(uv}94sFRh52ph4FH?Tf`v6pkaypL2k1V>W7n%v2b$IB`K=-rif?SMv-twI zW)`+)NDIsmtc4^H4x@+!eZBd}OR?}$ zELA0dk_-?#I_i}K_{xK`P`IA6WL4DPq*^Q%^s;uCGSPj`kBM;Zx7MWK$I(G7&j(lZ zzXJn^m7F8HVF?~g^VUx71PWC8&q})zVu@J>zxnK^tH=Df$MN+r01(Zh`<(0UkjH<| zoJ0CP>yim;Il?$QS>~>#SiT=~qN=PEol(#Uefc=(SJn~{9cxovvT7%pV#G%gYZD7i z1`Lo>Qz$$QQs>BbILiLo3W*3OvRvWdjvr_%QyIh5*ybHJ^IaGw(pZ+c?H6Wg_DPKP zUzv7I5NQK^)bb9r{L|FFG3gzE^hRvDJX!B+w4zNJZ0&=eBJPmd7FvsS{)UYR&|jal zcPReArMzQH#ucQ$Pr!LL&3t~rT>EFz;{{xR<{^Qzloh{%d-U9cV;N}3DO%oC$sSi| z8DQ~1hIh=UM%Q%D3|>;i%z^!3r=q4?l@O%{gMb(b#l0of{@ye8<;66@^&o-bChur% zfOVa-rL1r()qb(Wrlevt@7~mWv%ZNrmfV~W5%z&r*%EL?Xw>~;h8?g|^k7Ax8jNV6-|Ci%}Lb^u6#}N+d`)hV3;yRw%A8mXj>u{E+4~%uVd83 zLHTjdeT{;<+};#uH@V@+W(!zVg*ZFvK0@7u#%ij*dkyg3zXPr32(~l)u2x1CG4)-% z+=7S*)ACr$uk+1T)2gq!bggqNp!`s7Dye z0SK%v^)i|vy!v7!4q;A!&l9Xn?Q5^LWB%pq;|cI(ooBjgMSbKgzgeTB>{(%;v0}Sp zkt3}D0z9g=nWK8Ug}`VCr2I-?G0$U^mqaY1yJkz-zLJRCngDWsA}64@yV$Dju^M!3 z{D(TdylgnunEj?KW-ql0Sk;u48Js7Zw()+kIPJn zA3zcwwb(jwYVa8^c#3P*=3`Yg+g#wcg$N53IH84AI2I}*Cq4sgPGG|} zwXJ8cg%M+4n^M$b9Z#Uvi1_!Hf|)smovJ`K9W_N9S-<30SX=P`fj}dilk{9|Z+ntn z$^SAS?iCtK3#l1TJ|NlX@=TsAF9fjfH)?fAFRmZo<&6r=0?-tpT=#i?Qm z|2|Vg_Ylypztaq$q0PXjY)8i4ek8$0O=tj6>D#5nH?s!uo1L;Wt5Vo8S-{ILVu=u{ zEHMtM2x%Xn4DC5WHvrJFM3;Uqc4YuF5cLo_VExZ|?Vpr()-}}+4aG<^1Y2RCShDbp z;qK|LiZb)YHp`=N+W}mtdw{W~KTjl~E+`NV&+|(UNz|jZS zOb+oIF5*xpYC`9}oWVfh8cy0aVCxMWwI{*E*j|*j`Lab;Thop2fyBR!2jh@Wl3dM_ zmKhc4MWSO_pVAIM$DU#bt^n&B+UnjEP>-=+Q$#AuG~q_1`f1hDU>DwA!* zLyK9dh{)~{`&|N6aH3_FE=}o1nyR)#8@AIBCq*6aSlL$oY|Ch%kUAU(N2PH&vfCIE zgKstsY(#}!0T>%rhW%-OTFGgL9cdy^)YU+y>AJD+<00@w-bd~82P$tUU!x7v6tA6E0Aa|Y~Q9!WVU05TOtiQbZXHkexmg8 z1$UUT43``g3Jndw`ZW#g&C7E1NGR0EZtYvUkUmhrsOvQe8~UOA5t}E-fnO7j5p;NU zTN3O zkZ8j=FBWq^qO5o@M$=X>`Y9SPn!u6px9xdV&d86#35l>Lhnf1SUrchb%#1*@n+ja> zYQMic;%QTPdGrWb>VaCr4W}Dh>pq5SeF2uY+<5fF?&q1E0b@zi@Kbhadz~<6(r=0W zpPIpHEWyfgM;Ea^#MqlSuB4AIF$5K{{EVK7gdN_JU%z#hxmLsvY?c8o9G`Bhv4KLXv>W_Q{$JNSAxmeb4_dcNEmCzW;&8P5!7PG7Qv$GaCI}X{W*2k#TPa;wG z!}#(wsRn>_jB@u$x9-ydM@^1Tk(+#Mw}RqXOu2n1mZL1bf1;>GQ%h3^!bnNu4b!ZK zjuDe0aJLEZeH!wHJsPp-zfd*!8;9^JdPaVrUhuMEkQk*Wk#pW5pNo^(ppc~j+bTU? zGF+iZ5py47d_wuc(wCVEu`8UJ!643GcRkeVx|gIwNbY@uX(m|X;dT+U<&P(9X9G=t zC=*tSi8G_aHs994H?_oj7=m&1^O>k!AO{sND^UgV=kQt3*@8#UOO^`>8_)R^mhuP!epuj(?y;7 zs7C24hjL}y$ULoOcc%)Kaf?5M&0VLH1RN`o^123QH8y#Q$sc1#aE=-*K1+HAp$R}x z$R!8^%LbNPs3nx;yG+Uv>_Vbhj=WJ6nF1lFvLdf}kH!FW(xFUc3>Dz_z>}oM=VZqD zd^$tTGIV8PaYSa5?XO*LDz{Ql_yA?;Z5;rOm^U5}#H*Jq$gGXWmGh5sh?sj*t?X1K zu`2wJqVw>l^8Nq#efDt<$2lB(9eZ=^W5ltK*&zv`V}>Z3w9YV&*&!mSj*%#2C21Wa zyE;}$_302r8Z>Eq{rvud`*A<+>$)G;^?JWv&sQ}42JU|^EfU{2Hchsks2pSLx=!zr zlUP~yvU4|{_Llt1{f^g8=O&ic!4YBz3=dgX3Cru#4fxxX*k}(ysAHhWx&ipd2ad!mlQqN}$4Y-iYK8;Z6;CY2^lvu%Cy1-Lqx|ao~_fO)!}5okBMMQ zoZPTyiRsMm)T8!n@#{rxx0+Nr3Xnxrj>BnaCr6p3=j5uGG&_i~{>}|&GlQrM2(o9I zKb}uA8FL&UE_}VFw|B|cquSuN*kn!ahv`O>BMbQrmkYwhoAh6QPu9n@yF29Xi9MmC zW7VX?EKq519}txs9)GIaZon*s$IOM>dcU2QN3>2|HIQE4U zLaeaPcxHW(ag+30GpuyMs_zrw@|ijUcf*j53!u|sT2@h@_Cx9_Dj3zC82@5_mM*4b zv1lIzLz*Op7o*C%(1wy!3J4~Dlvj)R*!|W!B>9FT2sTAANystT2m%*K$c8JkCA>*H z{kgI=RnHHEq`5aU{!Y%0ks+_0;)_hD6U~ZMhiH)Oo8XVsdaLI{O<=-u@6wPCpKK(I zkJV*>v9|?v!*VIhNvIpi+5LBc2K1H+o7N6DA2J1_Wa*4NaWHl++2_FOS@mIsA$Ayagrrh@V1g1M zY|}e!_Pp`Hh%lHC&lcoO>(QUu9deakq)Gmr2j?Gn1GEV*F;%@uZwp@TsOTPZmQZQN zw|U&{OSw~j*?O(Xg8{<=^7h&2xF&m)HucEB01hKqL_1IvKpC$kqPl(zlHQWP|EJOj z7Deg%ozrapC#6{|tSowfFa`1&hFMR7&?nmM3*-34^4mx^I~`wTOsR>;he^twYMR7H zD$LSv1m;bx@s^b${MlOZKL(~%wLR1h`BXB z_8I*1PHRJCA@6*5zmL!GRv!T${OBd53q)EvH4K?b8~1If%T{ipBP0YbLBsF*@|qqA zt=FPM&SS4n+`pF36 zRqZwKzAdKkPa@LfUP0y~8O&zm4>_~mFj2zld3gmYWMi32Fw`2=4U?JpK-&x77*l|{ z5Zolc7sBpXzuDy`LuCl#paNAY_USCQKQioWQBqNhi|-Xnkvhhan)rYe(O{U4!htSWb zt;XEi!2Wni{DO(>p`*9Jr?&*d!~px8$=1pgvK z_eE~o`VTJ5nq!Y|1ab}~%sGfC7aQi7<>1-TwZ;1O;tm#l(+Z2ivb|Nz>n?nG<5^EK zcVLtfZETti5?OO{6l>x`75OHvM-vAnm+5S$#CD9#kPQ5YKk|4M(aodUQFu5FBH<^v zg59zYd!DJ@Fvh7)SDCkmS?x}NH}WvBI(yXu{s-Ug4oUSG;pB}enUkh)i&e(LZ@fjB zISlF8%X>I*n1yN~+>5t1#5#R&y0)X$FPf%Tb+~2S3cD#Nw|hJhVrwq8Y@Q89^acQm z->&C7!@;6QiJip1-D|QrhD2aMNZ1-I-9k%N{!ix%@AsT$aI&bQ;PGZb#2 z$%@W~jnpI;@m}S5YV->x-cuPxYqe*~c+6)WKMOexFkvo^gf9tdr{&<|5f_2lG5?l< zkPBC$Z%n*!xkN*9e?&_+5fE3_?A?y@nbPHCRr&p4jc>QTQ9WFQGXcCyzfX9QIrI*e z90t?j^$Ry4rGe&BmGK;%s(W&@&!@cxLErN$a!6D+liSnK`=*T}rhLho^?O_?tZjd*Q9A4yA}8NUK>JJ7@4SiBJrYKJg9Xde z(|D3=6UcTh9HY^KtgZ=9IFp7r5#yg^v+ecZzALu9=_V(p);opzoQ!@?)yn~r%K+^CBhdAya;z4}A}pPyazi8vB2=URLbiiY z(Y!RyWh=PYfG?70Mt_s+&YQ2d#&x5ei z>mY2=qy5tI88-r)I(iCgmNcCh*wY*4GLa{r8S}ytH8&W=_tQS#OXPjg=Jek;dHBh2 zo-lNFZ$narXSEoqHb&A?!{vI-Ruz@rpOw0Q&HGy7(zS*&6(yM$a*4S|lkG9&2SStlj4wq#<^-0A)ppw0Dy=*Kv)360&q{S z{GD(beA+%YH3u11 zm*%?!rR}P21bEpeM;aN$`FK8nJ{r0A=Vb!g+7NTEHIQuBDht6B0lUcq@JW>6NjfBe zoSaVh*+y*9A>VM>?eL}zk&C__)y_yR_$f<0yB&siYr9%;(>HU7uxNaLf=|zr2 zc5*K^anaP0gjZZtdIPG5fN7$;qCg@)xeuawqM3A7uz~0j7nUrr2Evg1*vAX4))*CK zzDiE6_e}QZohBEM6sPv`v9%`+YkIBR^im)r92QKt@?-+KS08-rF?i=oBSaVgsc}Er zVnMd!v%LnNsJqLUcr=#)PgL0#z!Umu@OrYtvPLjQ5K>Ry*#G@~jAZUH(p%9mrsBGf zx_``TY%^Tts*q;RLa^hQ-qRcZVOx+ObblP`FS(_UCVKDj%V)I2jY6d(bVN8{v*Gov zGx23-Vu#jQh#wcDngeS|xN({QP8~1tZt4IVv4e~q=egh#+IJdE6le+i|$^V z{LDpv)J@2up_>5808eCzi;}dbY!Pt2JlIhlY>6v^s$DtX`P9=$>kt99%!`V55~bfD zB-3C;(aQ1acgoh^>s-H+z6zxHNarQt2BW8w!Js?CQahC*Fqg;ovVE;W$)89%@UI>Z zYa9Z(IH>gosICLz`?y}-+c$+FwFahTC|BBlK1cWzyk=KcjHWE~G_K_kC(e*Ud=bC5> zQOkz})qRtqOB?6ocU@RX=}>P0fqsa<6aADF7ix0BT*c8e93l4>Yec_L&FjQcRXGD9 zS<@GR_Z7AUT6t>1Jv3219lu`}Ok9!3LS!oAcYMBqB~uN(XgE|)Nu>eWAP$@oTkZR&lKBPwzh7Tsn3h10G= z_w%1tQz`e7eYaOgV?u2`wb7IVCQ~iK4HpD^&P>cs!~csRi)Rek9)y#n7VXT^_I=}t zGJRpfv-!h_(K7BDo}d@4<-hjwY- zqX)d~Q+;HD-cJwK=d)*#sIc|;vDz$`X z-{&xQu6@ODh5WcQ%iAe)coO5B_e_#!#N*u(y{Jx>G^Xtk-ODqJw;@KDUm=HDOZIV;f2eJ|-VDLGYM z89da(aZzf0)UOJaBVGC1^-x*fm2STSvQk>tds!CGQsc!SzFR8tbcF51MIv8FzCTkg zEK{a7v#=7E%YC}c?K!%R6|3!Ow8+9S5Px~FWE%P%fj^{eKaw2Ns-}Nu?#S<(`;Xk( zZRk0bpJZU28Y^YVj;A3;owHoL5}H2W^DM6){#jVfJlZ4xzvTkgeHhIhz_iAv`J?dB zpW4CQP=_i>%MpJUvOVp9iV7Dxy8&(Bu_g$(|9D6%Noc#DqFY^I@lxzgHQDUx5U8w5 z^i!%{1n_Lg6qO**51_+r8@=*+FQU(5TKS@VwCYFY`P#cyv(1A3hH$A3VRuAxoEX%T zm-Z%7xkiAbIAMU=qT-Cqr}J0xf8lcJ;>T|Mi`F>2Ktm@->RO<~i?+=G<92f4PBgU(6YIm;`-_De?KaP<-EV+p60dN5rT-5=g zC4fS{i&f0(l90W<1yItVuD^L1%@GMf06h6~O#4s_T4>Q+`1X;x@yxpp_MdKd6h4^O zNcb++c=m+MT>uuOPyO&tZl)*jh@X)&zut4BEtGD)`V8*M+Fc>azAz_%ftV(Ve&yk6 zcp(8~MBcWcgLK4wmkS=?3m$d3Yl(+kg^_;1v#rvmN9At2{*~NwtwQ$*QGy$wVbMBz z%ZMpY)8gTNE_#b|gQey81W2kd-0%+9Fj#in(c!^WUOE4x7wsJH{C7O_8=X#%td+6C ziiOp!6GVS<|NBW64YE0Gob>3}y<57nJtkI&n2Ysh4Ycfw0P6%$7<^lbI3}{48_tE% z;}ep(ZN7v?%Q$%B0(gB`J6ZrT<_0o;gX-pb6;j|@8{kV0C)%6NNJ3S}PB2AA=FW?I z-+<$L<1TC06kHQQLdB8aUz)5_)glO)k17zMgv4;32>RsIO{(&~c%|kpw-oyIN;zcw zQ|GVuVuQkG5~Lo?E!Q7{ph9Pb6hUJAyR)hwF}0UNJ9lsaNh5);mWR|4+`n)q9}F1O zZTUy&FJbqC)#>()yryOO5=PaR>US*tBDRiQJ#p{_V|TQwuyEy)$z}P`Ne^qTJb14c zEIk!jPJmrmg4vM!OaSPGA0W^6BOP*|peC^Wynw&IwR8aN(#c}|gT-1lH~Kg z0!F;GiIenNRjcGRg}S;+Yn7p6UCXd!-n)o{);cfV?M-OBiGlfX<({KqRsd9__v84b zkv8jq)`~elZV3iR&OWHJ1D(NrrK3DUi#Pw5f3Qsb!<=zL-!`C|d(P>x0T1;zkbQa|*@$8g-)E$)X1 zt%EBeXFAtyo=Spn=fBqGsqORn{2^BGZl3@p)Gu`Ml37#I{#~nA{C(}=?-xTa;!b6?KL}2w!y6n8ud&Yc|4*CBgBx={Ci*c%$gWo%KeZfa792tiKpNFKG0_((MO#!A zVFHylOBbu3$VcIJcJt04b@g&tod>-qg-jYJFPI)#NZnrc@V@A6lb+24qtFsWn}Jn_ zWT)&xoHOy%?^*5HW-lr8$e^X{b1ucwX3XV^(tw*GgXZIdT4&GcXGtmtHE8jb@367A z@>3#)i=_;y_b3dL_vbF1?&(eHilQjmp4!@|?Oe%SeyHb8qSNot04BcK_`C3Loz=7-uG-1DziyJj@^&mB?J@%x&Z_GZlr-OsK7!DP}_sbCfa>O5c|&dsKSfW7KO^9IxY-IN;{|xSc7A zpc5ScRcR+2eV^Nk(mvB?T0ZgW?L5c8NXCk4VDO$!aA`>URZ3Zoye~z$(B?v(lHn`5 zW4hKTc7|q63(~S+qs+@` zO8X@VeoTDGZW>N4_|(c}RquObN735~{G}_${D*?hbSkV2p>!vKAt5X&4Zw@F0gf#7 z9Vl-AbvjXN#@qUS_imNOT=@V>)3l#~;yZLWNNM}?orQIW0H~Xg&^qU`v7#C+?t6(p z_{vHknIRrstnQyxgdKBCe7yo_sJQ8Ls-5%JP`-L$zxVF3=p_b6A$UkmZ&vxGcDy{K zxYZsFg`0)(uQzW0>AZRTe?nc8W_cQ2hb@$bm}srMUqBh8B@KiqJP_g*}M3hWgbV6PGAD;}dU}0I}B`2NF2OP5yb3~g8c+WA1 zcQyvEK$(PZ#iC|v3y$V3WHaHfZS&!BRM#I#Rcl2wCPyEAW;^%9WZm-5pR7L7{eQo{ zbvxsC(_X-MN=77@;^&Lq_dDPZZAh~0AA#Z~WwOOHX$orraaIa3_>Ard^#_wQ#L|@T zAGHCd!KlvBu+0K-YWu}|%LF)%4G28RxUf$XcDL?^#9_!1(=Y;9Cp;K9Nf9ff@t}A* z?@Iu{lBUHIUr(34Z_lyR9Cm_h;x2u0&%h3M&|zw8%A&>6z>bLgvh%~=f+KP4dYN%= z<*H2uL;#IdH_t7^AQz7_P0#n~UpLfAbU24kVw26+-1b_9j4|t(T9ZyEoPZa~l15S+ zn~Rvt7ZVo(0ESt|80+D6so0Yhc5-7vSXNcSFs=)3sEYc>{J1O^D(!F&B<1_3*R@HPh zQs&j+$x*!Nw9rMVHBE=irV4|}eM0Wi%sz@ro$J<4lkQqR2xYZ$O9mJ?yH^KFSX8Mb ztJPU7&v>J{5#k9epsOjCPFotW_s1IOYEYjy7p(@V^PJATuWh2PI2KoT%CRd?fSI*bRd5iT?0SJW)%uLxMgsA}9pdeP#CYt=~d%4&w4Fqc5ksG&KWQhj@bp#+N9TNW!!^|_2Pu)9cFrG?1w~Zd6U}pOPnkmaA4)3W6qlrXvKhH1J~mITF|wI z0`OUb>u7Jn{*+uQ01f_NHLODpx^F%i{(y#{u1dxH-Vai2B0sVb^dldBMLt}0zG+Ff z7xH%^ykxqxr-}_m&Tw*#+QTxS3(-!y?uBukz_Dnoae@VUM3z*GzWSQsv>#wk#|6Sd z0A}ie4V+vJtx%q~DDi>}Gtt`~DZe_vvB%z(v4@Tw1HR(q6EB30xfJ!jyz-mq$WQ>O z2#xPIki1ThF$iFwD*o=sh=!A!U9tI;(=R-(MPu_WJWw~tqfD#*XwShz4;!B72c3@* zL+EJL8EA-Hh-mY8Ah|)$`}ITn@Xv`i_2w14e>qp$P844g-!i;zf3g4d=#jCy5WYM9 zylhGtF&p#UxW$SbjX{+%O( zeT9IQs&ADkDFT?kaw@LUnX+373@LkF&(9w5`@gzdSWR4!%qFlTrg)X;2NDV6s-dce zEAOpF&%PS-O5a)Hh5BFd3s0YSLAKDKm#m{$XvBHq%BNwlj;eKRn1%HtPP&o)v~SeCR67wDb-*>i~cR_W(w zAbJ__XwtZGlcz5hB4|@RZ_%XfHgo){B~Ntg)j{i9Cr#CrdgJZs&g=&LA9H_|k@HlB zvGA+6QDkOx;KRWek-^Zr7mFP;s;(S6cT#YSYSKT$hl)^625~Qhj0Nf*M9}Hr@3QwN zlFBcLX(5O?DCl|jq|5IonsXU6!>u;2fpOyXTNNSbP_%^>d=M+X)q^YziG?5tybsRQd~%bD_z zlK8tql8Y}cSR_Z4d*B#~fp7sL(=;NFN6UH}ooI0mOe6;0+z%)GqQdNPI4rgCyZ;Xd z5{L*tNIB6{nN0W3NjV=Gn+QE7i0qqjGXtkn!;b0RR!!o-#&S}^c)Le&SQrrz%z-}J z=jn5eSg7I=!UCTl!!QwPXS0z-E)Z&-7IDSWlA-qR{h1U3Ldi^>eIOjimkCAe_@y$_ zGnS56ev{!1d$q4>cJ^Y4ggD87_+%;5Za)vaq?uGBM2x^xs{*O7YTXIXWY>W^{nd(j z5DP5>VgOin_=<4h=EU_zQ#de$;A~M^F7hgNQ!6hu z9eS7^Ae3<`b0C5-3}Nw4<)z1@@DyEnuyi_n44OfBc+g@Z?aM5 zyW(xUneX9?_@5LqhJdiofEaNgx_qbvA9{XMMo%0t=(5AGRk5Qx1-^l*et{J|NL+8z z@t=9|{8UEol-8q7Fps2DYOLc(ED|$SNRWZN$aU~@hO|JTMjOaddS&LeMCk@uvs42^ zb<#K24aEt`KY}4Ny~Bi+aYLB}h;zmUyzU{IqNA+bC0`v)$C)GPFSFAV~s_c}u3+=?DH zKq7yH5z>Ra39)Ad$m6lKk{^&~iBU$0V0Ef;J6PzGkppKpL!joR%?Iby9oIx%DAT4Q zaEDQwCt5m6EbFkc3OGBN>*CMLH9qIvcFTDy{pAjk=ka z(LIo48p8b-<*kdgmfuGZr~?T52O){bR{Ul4+&6i5Nh z&w>NUFfnuPYac`yPui6xoxp|C0qAM+HT`yob~_@0gV;r;Yg|=hEK3%0VG`nAQmW!U zT*_%+kKNk2bOIveoq39*!|_DLf4%$^ZMz_Dn-~wrf39cZLUl*#h>wTp6`(? zSx&%XDS61-<{oSuqMv$-1o!8`0?CLO_fTas$idxgO8@RIKm_yQC#aADHdsdhPv*rI z5)es=m&Ce|&%R#sV}iGC>u38Q{u@*abAYPCbaP@4MAz0He1Ey>F8$%p0z34T%7U&7 z1*g1xz`7jB%L{V4DARkrQir~2OT3F8w?`OJ0b-(#x&~C92i4#gIZH!A7Lg-zLZN?d z4Q8=I`gd3ZSr5GlG8)x#dO5m%y^z>sU^DQ_O?wyUCc^Dm&M`@l>GW-((k`K?-j+=Z zbQrZ}2%mH#Ny0`V^;wQ=yHYpqcKuXqZ3a%!3Ytk|Yw}^4j_O^h*G>5_KOQ27h)8Qk z#BgCJIP5G&>QN&~0S}RfMI`e&7Pl$hgwB^2_N+Nemq6X}xQJu`nKJk=!dmi!xi7KT zI_{i|&+)FCN&RA=?jsq)Ev3V_j^TJ42^=BpE|O~>;nr0ym3yF4sR<^8f@qSJJ$O(D z>Zl(YvWs?P>=xoAR{pxtvMo0@0ud_Zg2xw%ZF-Ash!IDuWenQyH)wceMTDC!?evN> zF6?C-mNFtsRa>BStO%sA1IC?oZQ#a4qZeO1yAX?+fgcp8F_(=PiB{F5M@CnT=!APYbYvJ7G3*%v zgII*d2kB5DIx~R2%7DY%a7*m{r|VCp^DFi##(OInCH~BV3t9J5e*`hyz+AA-Q`=hM- zC#di_9#Fqse{@Spgnr`d%c=5R08NJO?Xn6sBLvHdp(IR&+9-MNWnl(@gn+JDLU zoD6VpM(N(nUg0P#nG8EXZWqgitXpuO%0E6y?n@v-Th|dmoX2M(n+i5+DDi0wLF4jd z{z93!JnQZY8N^zWWR%YV=40e{PsMmKcht$5i04oL2y1@RmP!~UW zZqHjb*ep8y)V^HNS{Kt+tofemMjxv{&RJK!gN{_Nt^UXpxl%M^*7LCvRJ+vUF|Q=; zrmbXT>t9YYZj$sEo7JNlLQBcyAi&iL`6}f0R7Hm1%*pm0L^7vi<^AbGzMA5oS{@zg zm3J+1Gj{1m%K2p}L+3}Ve#pi(WHJ#7cMO5QMQ(hQC;^bMUmX*s=dVCt{P>_$eyM`L zJ`Z}Wi2$JbSnkE*k&{yp)5#Gng7%pf!mux10qfru0y=%TsP*yrj{D)i?%q1|GQ53B z;#F_4E?0|Yncd%dfJA)&tF}Gdg5`a3B{Z`mUg~i;A0S(A2v}2l{C^>nXa{n!MG4zm)Z{SbjZeNN8L+B_3V91V+OCar-u|=E%lA8Br+dhJ*H&RBroo;ubhva z?Nt7vhMDX>junh+$ZF1ZQ&wAiA=$&Q2qKg)2M%e!6PK45- zMqXcC3pkHXVBseDk7`}Yqx8w@Hz?Wd9~g8b?gT3wq@-597(NxQ@EWGxbMf)Z`g`Zs zZ?-I*2vxMRt2iryW6dlbS+4+9j}$lU*uO4?3a8qPyGzP0e6-<0qW1%VjzxT*Px1Nw zR=drmL1US*HYyF3qmC9z>f={Yuh!ZQEQYV|Ijj2Y8WusnZJqGt)Uy)av?k2(d+aYI z?1AK!@_>!cN=b0=LM38+MMtk0tma2VsK)xfL%7k_@&gbGhL_W*$XvnpNh;#=^UW~w znS1MI>)q#M>S2lfF)uGlPUvh$8%5QZAyRp}b{Uuh-@@kX*0$x+TiNf7H|vg9mhLLz z1}@8aD7{6UOPE^L8q<+1ZD)CePG`EApOu76yA%ztE(}xbqXKKwC4@{jZjlF07jH`? z8p?PMekQrRCxN&6To1;R|NGmp({OU#LRx<7veC{zQ7j%TtVY=ot*~&Fr_%Xcfg>BI z?%fc;sm)jRYw>HIf;}ph)RJC_on_zZZ1~G}JU4uG_Y4S~d!uq=@IewI`(EvjVc~{Sr8lJCOR!}rZ~qp4 z%W;?*pQ~zAfEOx@oxP^u90wf}Ix7vsN)tKC5U`Mp;%eJtmaE&eZeO{(CD5n5g4yX#3dU7uRX&ehAZv-UD)h{&%$F-=AI_ib+58ur5<) z#f#J~dd0EE$UF!HlMSYZ!OC6!d{BeCE`=dgx?@sQ4j1E>BFl5RJV$*Qd)a-Z2`dvccF@577sPzv{l+4A`u$@Ed!{LXv%)7^6+p~a-5FDTcX2R z{p6~}dZ}>1VwalYqP>v*GN)cd{goEFxYK-GMU;Ty7!vng6YiP#8K@B2tMVkX?!a@6mQTNC z|5rlX(VO0lA|uG;KYM!bTr~U0Bxv>LhIeqmIUW(T$oCYA@tDs|*=7)1Drg>De1+IR zbWHdottPPK|Lb{G8?)Man`com2m4+wSrl~6U&ODreZ%L zG(JZ!AJyXa)MnhUgD9o~t%cI>^h&xZp6f9GKZ=yPx6)Sw8m;go;6}A6Rs%-%!>+vy zgC=vbTMiRs{p5bk`&VLoBadH}rNBg0Z_{%0fcPfzZWtae5_1itVH$Q~z#l9fzqo_S zo_M@{$0`Q137DLuSjTQ>|Zyz_B(we=qJRVvk>~2z<~%PS1p;*iD9c%?Cj*f0z2G zY#cDP%X70KRpsk<+LmOaMTu#5&6-;fuLnWTXy>b^%8z-s1_mX0=F7UyPLfQ)3;+H? zS&OE1=xZR_5weNC`KboF1>1X0F9m|{ro&}{eqkjF=Qi<+p_wo_bDEfIS96V7)KJ*= zPL+vuSBoG2TWBT(2FHJny7*=D9hrCGF?&~abLAbpLHJ2wm(yTJcX$xRuL8$4?ygtH zaqO-1CRWg=##?6eMn~@YL|`zk?o;Di9?G<{vHf`xfC52H+j4)TU7l|1lZZd z*kg96&_{PEo1?XILc`&lc+lG>*X~BOo(6Sok66uLID}XUA0!&%sC6Kk3+Ok=?2uVv zZ;L7rRn4=%>R5QNzX2SRh;$^7nR)gA6d@4J@@4C&$=5U0^TQ#)0W~lLH^72JQ$4uLn&8BydgGg9=B*a-W#Z<}WM_ z^u80^{m;m+*IQodourRX^~YLFPJom02b%sl-!M^aWIlLh*NaK|rIBI7RA`WcoO2UF z7$)|k+Qj>LYRM`e68`hmT(ck6F!T7>IuZ4nImsz5Qa-p(`+GxFCXN z88UZc_>MR$f3SCY2#9I@yRTMplWm~&$@B`;3mg1QdK6DY{Ffs0tXC4i25^sfPTzd? zH~bC2J}ewhd|IfwepT*m0P(_OMdvm$?CWf=U5&GmvkIRhEe}EmQU{WowHj0t|wE1tsju!P3C~0RK95c73T(CFQW^vCNL|WPac> zKw0oFH=taz%UNTvtyFOIxK9lW^39tBq*U(A{wY^mV7S7}!vynIQG!MBB(=)$D^-nK zY-^NthxR2f?gs^F-*+HGaKgahKt0Ys+uzFN7|)w{xi`PxN&7D;{wjGbhdTuF$Yt7x zLH;NC6a_FS5vxpptZRs@e4kOGJa;0C{L(s8H`tXx>IZ6>9@-u-ZCa+(sLk+y%H5)f zfBuBT+?3+D;06KBX#2Exq+k1GAA9;mtkI8aCJHTH zU#`Au!rW?f`^UNDXfHdQFK+ERnm8^bc;8kfzXp6$0ZojG>8jfQ4Xo)Jf$JRW{$ zn_*$n7?(2Odg+_J2rZJMt{Gz&EgCEMtTv_p& zvFi4d_~zqQ8@OL9#+TzIXvTU__$F8G-rB+r?CF5UlP*TV3};nUgAq8cF*gTN0rBKuS&9US9>r0{Z@+~Whhs1RI6BtNlheP`6SC+e)QpH zXSF1SQPj!GMM+t_g*Z2{Y;OoTlCn#_kzSOtxT{_NuLMamK?6mkzJX155Jp-;bFE}K z#g-`SXe2*~l1D~mp{2foB&i^;4%-Q;ewaH~LMy*rRz2j;^>)-lz`eXfw;HnwD6G=2 zjL}64`!-rdQ$Gv+;=O4gb4xqvmh`UDR(czNCTv~R*!ZW2U}Kk$a=^b%RBov zDDIVKedW=6Hpm5BGB>MCjKZ{+1JgQfC1QFGPJ%*$d+~`Rb?N$?uL`DQR<$f@VeH}f zX6?c5qD`xAnN?>?GUQD&=~yktR`rg4KwI%({vHA3)i;x}yDSn-e02VvPQ>tg3IoMC zYY_k7%8j!b*{<&kUH@=L{znrtopidnSl#c&V01o^+*Oo!|GNNKg0DH%?zj(C+#6n= zZKK}t+e&uz9M?z|zY2aM0G;JC@Kxu8Bb0*T@LT6vgSu~T`hts_n8m#i0+20BU>fWI ztzxolk0Gb{ln%H&QaG3$K42&|UWioF89bqeNOjJ~LJq~UJziq!Q|V%f%&nKV-&4e2 zZq`axsj34|3-+bYCuOaJu>8slgQDcNoJMjxEgZep69>@ zC?Hw3Qn^WD9;w^TRP~X3gH*{&JdNw5dc zvpR?8?WW`(>uj-9xlB7OizEP)0xlz)+%7ta*2L?TTAHzmWYtko><$ssU0U0q%3key zk_T9L3%euLY%P{ybO+CvAOQNS_U{z^Ym{LGFDY zK2~J1NEMf{^dv1X#I-=EL@^Z>w;<+X&#JV7I#Tg<4{yweAmUrFI+eHO)1f>q>h7yv zfmAIID>Xv4@chK10!e7hMDaOyY-Jdf^&wmjPr0u_+obdb><3LvHfpifdBWL-{rtxiX7-NH*i<(-siDn;@2j+Npe7Bt6ovMTG%_9X;fe%_ z6B#Um=;c;LCas0XzIk=O@7MSRRj(keiiPI;&#%ut*S@;&V|t5A7guM2B_fV9bDdL;e8{fxUEOdB0^rxsX$6p~baE4$@FjgR%7 zNclxRLuehqOY7E5fp*I9b~^$1gF2XNcV6mqcdrIuGImr+xp3-lhe4IRT@#=W3qU8* zFX}UpTL;iQC(ZnYIeqpI8wl^M(X9(152eXKPYD0LW%6wc=(${&rfz7xr@569ooaHj)sUSk;&@Sv#s|oak1mYDh9!lsl3lpDp z1K9}}R#gy@?flUnChx2a{@drE@*tQHbMW!&SBIeo9Fy4r9na^}Y_(2@WL7WvbT8>X zIiMr?nxC)>ePPH_n08w%U9Govz=Uo)xRY2|xdOIigCw{(mkSYRrie9Dw_GS!DVZYk zRab;q#f;SKxg8>=iKRLhPT7-&kw^r0k|A9jNR}12i&!|NHZxNINxUC|-e72uKtF%z zp8OjKIgK>h8ruFO25&5!{5z)K#@-*j@+mVaz*ac$a@0W63hF5M(2KyXM`%ejV5Zh= zzB@T1dvupSQsJ;vrNLIxQ+a)Od?HwDBl5v1>XGwd@ecqD9VA2URdP@{pUl{4z$*PO z%+5O7Spc~=3vr?xrldod4ycoi`p2!8o<=O1S}-F)!`( zZO3G{qVFz%TDDQ-EHvMUY_@tE0BVL}W8))r6CuUC)he&IGww`{m_umNifjzasL7mq z6q&a{?p6kgQ8i<#X<}G*=&;`8?^k`&nno=x-H*`inDzV(CnK&=Mp~KwY4&H%SuqlW z#ACUYXe}MsGCo$6Wl+xrg@wQ4&a7Ae?<}+cn9=CYF-eEUXN3&pbmu@nu%edl|Ea8wtCQc<)z&&JIoJCC40;6rL~n^sp*n0VDY7 zpm8S6otOwV)_BYQpHXqsvT|620ijSgktIIFcuIrn)3WV|%;&4CHnvK(JI^!~IFCE_ z-T2?sKIORVvlZh_EMY0q-QMc+r&1W^)Ckw3$1J(vDVc(1BeYye$eO-JWVuNH6kz#uU zOp|ribJh1_d!CRu;QqFE0|xPul~gTqbA<|LPZQWKCAhjtD+PXM&z6Th9b!g>Sj@Bd z-b;4AAjzsX?6LP*<({Wce_|N;YFez$mLzK%t}1)Qe62Yo;Q@}(iLha>=9j#vMMCrl z=*3g>P1U8cY-q$ImK~Sn=!Sm-Fr`O7ZyVXYtP40Cwnn)0A6SJ2z`Yiek3YZpQ$#<{PkI zaeb5xqwGXzM&j)$fH@P0aC)hF2`$NI>Jn2#e_e|FBtIpiu$D}v-HI04^HCD<>fx<- zChZ_rxA5_1QZ*m)u$<+j1+}L6>(C&|z09F%mNAiqtG#r*=Y85q35|?N?WbRL4yUc0 znADVtIez6=#``7jBh2kNu#xmE`@h$V_n69wU^9clCEL%t_Lqc5eA!;65w8F!1W99^ z>ZVd&^F)LN-(J`#v1dUTjZ~AQp>Ho{l)gTbNKCERsr>%d9F0+U%&7TN2WN>j9T#b0 z$Vx}-?%Tcaw9T53v~lpQpWA($w4}NpzNT57F25UYBk!7kZbY*nY(qc0zSb2{!)(B8 zmZ?WNx_F^?aa!`?YK`rxmK>6P_(1xtW9c&fe^4ZrgtWh16Ju&y$Z|C)TB2%?G)pXi zslElV#In>gcVC#fhl){ucl*bs!jJPG@Z%Xw+tr`M@sW{ajbh}>cX7mqj8h0J#;H}7 zG)tiPfw;lqx@=|NX3B0r=G;LN#MV`RM#00a@2b|t?=yGLe;X`ug;nrz?>o@zc0DKp z=aE#|hqa&nnQl*6ByNl*5nOk9)rilO-Qny;dUl!pZ}kKqE#i;kuhC5FAY|2{I~;YY*-02d&Sb**dT6os`4Qq^>q5`peyZ)WpW?=j-Z~I zgF@>Dv$b$bP6ZNLp*-nLm60M_ZZG?s8ugN6*7woCw=P(DwIe^Jah;KF`Bsq|<(UzU zMU{B1=*dh5IHwSAoo?CzC<8N%o^qsOSz0rs+5cwv<{@%on@N7z%d0-o@e_sOthQN(& zdgB2QSXhi0@Pv@{eHC+7rFO^VHPWm>TIcBZUgZ-%MdVF`Hv({~O&_I_{RM zmvC^)Y@akmO?y;MuNmYjMF-UVq(Y=ST%|mn$@cr=B(%;S3@8n3JaD*f`+Rj|$BXFw z$EtVR#+nfYCL& zVRQ-`(jeX4-64pm8{JaUF;Y?~DdXD^5Gj$y93cv#5~3(7AOFFL-?`3p-S7L{PnI3< zt(&8-`~<4PE0{B&I_n1xRwZ!22`bNO0Sg!CB}=xq83>~3FOsF7=^k&)yU@<9Gx6}d zlJMhfuC~N?1PE^&AP=v}?WI6`@- zGD*&H(;n49${)Tsf9{QmqY2{a>bJnTPneVN|{uj*`0uN1od z2wN5QfWp<$Dbvd9$`>X)kjC^VS^)lf14c<@vo+f5?7P*C*Jlqnod*nTUReX!{tS}( zMnr0?h1&@0K~Jjs7df$u$Fu6CJ~&wd5=zHLx2D}@tx zDv-gNhz&Jl3Mc7ga!2#v=W+aelmi|(pPB(z5QkT4_T|v$DU;H*Wbj3TNT1Ccm*xtg z6JHz6H0n=Rp>~?M7@em)CHUi&F0tDu&c2n?SvFqu!fbf~f+BdtxCc;Fj)uAge_kC^fcxj}55^XY1qK*moG zbvcF#AYybxhRHSn%O~AIsnh2cYxN+E;{~OS4bXaE>R{V0b`SAK%9Fku0Nv3u9$1?X zewAXAr2R|wUwM)Hp?U#AtL@=w^)8(xMsIWol`e!0V!ZAMF5X1JVMhX}#8XTDS0C$> z$G#y3n>-ZGZx_hm^lubQPbKqI15)NOo)J}rfPmlW6><}}+>1XJBVW{zjYzn1ekLSrQ{3?RC0Qsg z^Da#w2_h3HPKPVVLI;yUqC8~vqNByWF%lG`)+<@vPXH&8O4er0C4XH|cFj9KDMAVUq}fIoW6ni}PCz}R_EV?O|@mH_0Az^1Sr zU=VqZteaev6qVkKe?iR^T7(%lJJp0@zm}XcM+RxwCWb2m^q7k-wzAZ=HMs}&QoDc4 zv;|V>Y$tWgQ&lf1ciG(oaM3z%wXd8LIHbPhha^`zz1edIeAP z#6|rrIMkf|KGYuMueiFL9#*jw(u2qLBSlu5yjd)xJc0Pl(X4(~0NGL@hnv zODxY=i36=(!R5unqBOOHkA+O#d-LjV!Xg&uAZ?AHVIyo^>_g3?qPjnhy|^^R*b`?U z;m=}AFmRraNPmkX#WY_JCRa{0X_rgjdeoiqqpzTJLN1N)9<;YxokmIF2+ zCkvn`2>QpPnA3l;twJp{@kXQhbdh^!IZFyyag$C8pZfirxAgtwpo6k@Jzdlvt}dj@ z_L#|Q`l`?w0!=H_XP7j7fSD(mRC6a2*c=^)#Za{3ovs;0ehS`d=>bQnVxo249x{8lkH(2!W zCr)*<^h-a9bwA?9bF%b*%G2{1R5mdYnKQ4rQK4~`z=Uyn^fD8xFeT5G@VCCwj{^sP zLuTlId*yLWXeXefbE*xO%n*x@nBnbFX8tRQ?`RL9|i6C{3X^P0?Q;(v4@yb%FR={48I4Yd7&uANkDY+3^0o3SulR1f>AZ5yaA@VrZ`!eZ$_3~mp!k-z{qm#X!auO$$s(HG- zIQwh4yIqglHVUijx!o<*(|vf7DCZZ-uSXxuPrtn3YbfW1p)vVs^uGjZ0GoJa{qj#$ zECp$qz&Fl(^2 z^vYre$1q7|p_+Ir@hnBX5^$ni+<82@#tzTC!Sog{P-`Rpj^mBv4@2s%SAWf-bZkJ=lfuq5_@h6!ShF*Onfo=4{8*G)Ob~ILl1Zg%?xVmri zgoMjMLt5scEh#kMw(uFyQ6H zyZn)Wh_-^Te{W9PitNa&?z{E&kDBe8<_nm2d6{!FoQ&AZ%hn2Jq1MlA6imI}5cwx@ zbYvVnG*!5^^8Chz@KqYm&NTye2t}-xw~P1|TpHA=#9*yW37QgMLoFw_#F5R_> zB&&DTY7A4V?*OOc%(&7^+4d=@Kw`*-8I$PFw|XF6kL?Rnv9Gzm&QUP0aB@~SkYmrf zNK3q^mB?9u&tvoI=ncF)B_Pm*V>tyhPBiQPTMPvS+3dq3ds-?zrCLnJ2WWC{vrR4} z%%aNKeds7Yj;ola?dDl})<1S=C108`96Z;#Esm_YjFzkv4C}6GYu&X_nTspheKky= zoBw>yKHtV;y~@G_9NCdzf_UwAchot5phhjsOQhLft*U=#$l}V3tcHJE^B*jIK9~(P ze7TtDYihI4{ljTb-(Sj^3z6*G=vYEV&U2=;Y`hTXsXbgsEfom8CS=+~@m3ZXt0*=8 zM8VQcxT~R!d@wAHK6^}^@sTK@~V@o6SL=(!j%SZ{Wnu#h5qA(=4l_U2t61u z2J|zdd9q&E8*`$Br{l7AyYMf6)7>HCIp3JIS%0duGFv$U79Ie7Zy*Y*?JqfpVWYZM z!^1GKGW^22+;2Vw{-cu{UO}A_cm6bcTobD~0?bM<>ga!K<_gj`NE`am`rR9P(lBr5 z841&z{R|;cnFYU8IxvS)($vHIT%G&$?(rye^2kcp{98s(0&WbGZ@gXI36|vnN_QRN zIEXbMX8EpJ00Rfdo;jsj8_%M+&!QQE1`s3NDQv!F$l}>A1C+#9n;Rb*&h30J+8OXf zK0wMEN#&my!M-EshW^kz%W)}iix+?-0uHtBr+#vcIq`ZpbC>w!3+F>q`q=x&&3w~6 zsZ5W?P)3%&@`dJ08cPx=-*4QN3j_XE;wco@{bOy0QCk^Xx_|cQ_E|%q+&EE~WfTL* z%ejiDdBlPm1BCu!rN0HF(-Qt}j-5^JaQ*ScX6^Z#=X|SrNuxD8`g+6ZRD0;B$@Cw|A11iS41U#I<-{<>y(u#DvjY~@10}^!jazus zQMRqFi-LyofX`hm+Jd2B>^WrYrGe*S_udYL3X5nOcaWLBZ)v4@6 z!{L~HpAvImm9x|4@L8gH90(8Ru#PPy(Hak?kayeiK9ctGP> z_veA|2%STxLGk%9vc-RZ=oe%@G;kh^W%(Q!p6_XEbASujlfA2A?+~x&@e}HC!l(Ga zZVg9o^cfgPFftEif(#@c^Tw{tUgswYt8Qz2JfW+4!17)>qA!ePHO{$iNB!qO(zJlU z0G=H+|bvDaN4 zN(?4&#_K!l0y@%H5+15hYHA?^M|8Fd$NCCR-v%Oo4%~3*GyZv%sm7o45o(~0=+*AFs6U0pi)Q;(leXWq~;S+c(80vAQ zRB^;^pEhHWNR`uos6nos~YIz?=OT^+req)SarHvc=}TSB6I=qyuendEiL48{8m)LUFkb6s#jkh zy*Ef3_FE;zEFfcvM)Q<}uJ|}Jj!ULy3s{ZaZx_6gO~QQm~SI-UE?K?03j()Op$!5Rw zG6#_jkjD}Wyf5^VZwWAeiU&U%8ToJcdEKKfcGWuG;b=n=3#vEAT#*)g+q+DqFGaQ2 z6lynEfDMSBQ$M?WSu@^L)8&+a&Sh6IW?|A}`HlQB$O1G5KOBChKH~7W)8htRW8F1% zpnzqS1H9;3)Fq4>kx>oz#I)$!fu`>_Hk()tqGzJ>_~W}Uz;xm%hbQy6LsGnsR++<( z|D;A7Fyb?5qW4*5=>R~+)7bZbXYib>C-LjkYv0baZ@b+59geq*xEZmpAs}=R57LA3!$A;$Rktxd zjh0(F_7o+U3Shw4_a`tlLUWe>zXixwuCgt662TWS{IleI3QI-KunJjPsyUpH@WD%%b%l$;_8U1%0RGTBon5FO z$do;GvTN7sTyg!cq_Ro1O#gJ~#S5OGeXBS!W@)o?hSGHnE9s78_Zu&+S&zB;>4|Va zMf^J4(W6fO&%_t0xo7_!Xr~2wZ$P*mGYM$|nSl1ZP2ciSMzJMl6bknT`!(ldx%0i@ z9ku;}VaEH+A)PAe0O2g*SK_1MVo3)S5UpTq&IF8W#8f$LLT$4P{3#~z!QA&V#>p3_ zLJG|oWo~9;K%T7;o#elBED^%>WhAPeN8pwB(5nH`28^e_ilR!5+$tKNRqQv>L%m&+ z%wK=<8kG4tp$Z692*9S$DbH|>-j*;wAPPzwuVwZME`}@!iB^On1SVHy+GAOv6eQA#G1(`<9r-tERoJMYAAWF}3&QF5n1@ad8XSAgL2iR69V z$xLZMRM(SXNw)z(zl-k);>De*vgQGO)bT2Wf2y>e-|*ztvqK-XxBn^B5rKF1a* zn!h*KMQOJC3ry?&be}5Kat(~s0pb}}2oDkk&2^?RLhm&O!61a zGn+ZsxwVEo_49j^Tek&hoVMd<-)3${$_-4qWmvCV^^1C8_vu5p)sNN>X(W=*cwIgS zoG$SM&=A0uV}z$R-I=2)U@ndv1&OfvN?k1PivM~beZ|v_w05_irwX%O%8_qJwl(Ng@VW0rkCQt zS|e?TU$Bc`p6OJ@PKjEbOY;k<7~}7iPNmmlM@<4k<5sLJ)F}^Ef`!JJ9RbM&4fflV z+s!x5|K>;(VH)yO`ddd*8#DL39RQyzkphLLEa32N)={nFe9aIy#ijG(n_{VM)`Yo-nBgcm{>36xOI!UP5F?;{iEZyFfS1dR~+I*fJ>a zB@z{iYZYC(P?xsWd#asiowYJzf2=djnC|cYmJlLM}~oahx(y%7z!;QrM`o~FkL3p3!!cad~&ss_XZG{@6tWXhCN{a z8uu;k^w-u8(67h3Tu1&!TuuH-e&>tMI3rgCuGm#Owgig>1=N!_3eS3Fd9?X~$& z<;=-DUbi67ms|y&5EW@WLiYd!N?{W(8u=2qn4KyEQu`1WRU6a?u-uU zP;c3(u~g6W^3c|I0iSx`7REVT@@W3(#M0@xUu5^t+wH)sC9_hR)zR-f;1h_`vFf!_ z69uM>v7ryerEwW44lZ-*@+5s0)le#E_e;3U#W3NlFgEm*zM2Oes?Mfu80 zOc91#hy#zLs$5uiJ;7MSwhe1RGRxkpde=co$*@;I#{MC=9JZ3~=gloPKBHk-9FUI5 zu^sB&_HpiB<+6eONynwK;QNAFFBlx8#^kNpGcL4qSSqFThGrW2fH1}iAl~HyB#+q6 zP&w*9t?EAZP1jNR(0*CLn=Z6h^@UcpXtVB!x3PTY!6JM)MAsf_9joH|V8~R&8<_+E z#jR3XWJBj3;#1kg07*0b42Luv6JS0y3bMczh?c}Y@8kn4ar<$5shmXzDt3Ia5`F)A zdiv^%OakcNA2ibFc^oFz3r;Ljius`dy?vM9h0EMVo{vd`EUX9$@)k%RtEbT;roWEH z=aO!0ehod&R#7Mxkbvq(Uxg$7I0CVcceC8OESPAvR0yMs3FL0s>hXhch1QL~0EpNU zfDU@?B@SKm{n&Es)L2ZTCv7>}fU^EoIexw1?bnLK=$||2va=J$>c4xMV^e0g0X^zu zB5iIF4&O@o&AWFnaIBvLgaLMGq7@d=2@uui8Kk+JvEgt_eHG*C{DnzP1&HlAybTh&2j(iQ8e3( zG)*{~3+d^+T*pKwWZ6t$UKWr&IhC1DH9waFB+mW%N;efaM=9C=6`9|gKmXkI9wO%6 z^KOeJ*n!}^^xdOxHm68hV_A?MPMGa7{0aeM4FfTZCYy``SwWK|F~Gl$SE<-n7;pOb zPmwIxq?-_s=H))u27el9lLIOsFOOdTBfwD(p<^J(fD;zo0_XuC{$sGdNLo|uIbu!= zq08j<6o?SK_b*pi?*M!`3gPwzS=K#SP=GL$`K@QP*=~w7Z8$b~x%7ll=n)nnZzaEP zDS#uCxl5c>Mld2#It9l`TLOtPuFc8moDSeTp9pVcCI|<7kOTFnq!j&fL9OD zdI-8e|o$9%MLBWja`PlFAe!M3jrodzO5@GyIfblDjfWjum z8}y9I=qO8X{F1Mpp7V1GkTC^hz94jjWoHH5u=VLr$d}g>f`A*r52Co4x&^^P0+-;z zQVa!HW^rX^8aKFvTa-Y~5idnvqAgPBHnR}=P&DiC$X-E&wOdMVR8-;skP#h2DiT<~ zELOF^BefuoZx_lrl-N=bZeEbkv6lVF%xYC6S=OtK04XSu!O$%!n<6QAOp>)v$U7Lr zbLN1V1$k3JncZlaJLe1Nm)5`M(|)flaLXJkXlC$A#PFOqQr}tcd}UT*-K3{o45d@F z)&eoeiSy?jD)V})*d&AI&G@9IJ`U*f`sgw_S;_D(DE;hJOw5-*-k1Nfpls2DERIyG zvQTR5K5Ic~$Tg^pi>gewu;+~*nTLFD>SoANR65*JzO6V{WTSX_i<@6i*(t_`fKY#H zqn#3}{kfQ42hq2Gti=d|Y%`%K-HPj38b1r=)LGO-Y}D>3UZPdlkZcG^+&7dIf7M%@ z@=q7laY*N7qjUe5OF2`QrQkASp;OZr4&y#P*6&I-4WnvSibl5VmzDIyVlS5|W-p1! zNj4&JR4dt0{oChF*tIPo`nH?QEMD}$)*JB-EZc!V|M#H_EGE={njfTeR6}b+LRI+NN0aJ zO6$Z%@4mI^vwrQqSfT#5o_}&W{0)X766S3)#=AQayk=rPV=wM=_pbaG@T(`$|l5-^_iT*O-mf)a@7(UCa>?cVnl-#%@_g z@qv=6orBAHjH`~FP2TdAMReiP1K0I9r?+?H%~IG0CE?A=_?&H5!%>URHc}Naptxg| zI^ib+xs|22?g(O3MK-&qL)CT6(8JRNAlr4RebIVeDc18 z^OR+7Fp(x0fS8YyW-?k%JWP`z3=JNQp|Zjqe9E4N{R=L;i>{nkYpExCACz5Vj(#z( zIH#y+6qmX-FENDXKrcZuzbM6n5w{aC>M5i1@6Y&t`G*A&>k-oyzwgTL@#oG;2p zL!XB{unFRh@v2%0%35)F9jEB?AY4jC=#b5^>Ot*9u)fTSw@*+~!+s`4_@&c~MZP_DPoc~eEZLdEeRZS0GfaKp0Lx*y>ml_SPk!)Shn z=sO5YbThdum=ht|X}!L1p_O)NkTe;H?Igcr3-$3X)e_`T?AW}p8F-T6*_jZ;s2m6* zH%G87gt&km;#lpk3Z2ZFteRP{M|!X)t=pc3t6YCbt1=T{Q4wR^H=u#-Hm1 zW($Mp#R#(V{`x5}c{NEm+X_^A$r}TWrh){iGl&`OQS|k!_z3DFN6Q}mV6bACETIb?*fbH7fwfk+0sdtMkxU?wCa1L42+o)AEx zelbUKS;Fzv}xH8*j`=6%qSvV@`q5E!X@3gM5$cl@n&uNbY6TW2$J7S=&RM=GvY~M#-yn*iLK3&sT;;X6XzjyL^b+cY% z7yf6L)OMO&%o)hS8E2|gbeX;K*`T6pmfNdfg1*qVSJ@z~$hV1KWQt7M9M3)9#v<|x z@5^d{vW9{U*>&^fTFZkLM7%3%zjSAclR(iJxIf9=l>pyv5EPwvT!3fwj8{1P@>Y%W zuA9s*`&HPy9zHx+S+OoK#38i987BVp4n*DOV37XukZ}61bXA`jN9taZC$f})bbi(B zl8Ag|h)n3*bzcA`dCEGjC~t4NZmz2+YXGn#g8Rdm)XGb!L2KuQ3=b--@^|Uaaw7O? z(Fv=q1jj{cfRjbzs+2|puXD%hT019K$Mc=?<@jLuu=#Lvmqs^a6}P>jy&DejN&0`@C2i=qLP+0H&^)kYVE8y zRoik(8005_^Q(Jy_a&+|@AobK0%g^&u-|)*$@)-hPq-_t;?xN?^;BE@vf#Ux8*c~g zYKr^b#~$cAJXX~qG5kogD1_los8+L0y2XGAVPI=y;Da-wol4URxE4F#g^;=@ z=|7}CF!Y&oIDTl|5eNG!0(JDn=#gR81lUc-Q5OtcIGyT?1R0zpcBwp8)=YZ#T14%X zLFX*HPA&M3{jK}UcjOy%#uq@QcDP$})ys1FE4Sg21Z3(t>50p4n>7sWo$MFwB%0Gs z+Bpn}!LQiES`d~ZcvEu-EJRk_6k&Wi#GBlj!ety>YQ@Kc;E^a9DF9jGV5jPE;Wtp! zeOgT=={7^N=ZWK{f&w$Idq4g$&a;|(`n&hp@3E?)n{Nl!4@zc3PWm?IT1AqDaAyx-R4xspR7xcQt5|4$eJYNIJ{r-z_jt%Y}x*t)8GUBhfl@03U}YEarR5G z6eUbME0RU!*2t%zAGalOC7&u^*Wl=)t6%#}(TJYc(2kPdNIbp}+%vjzrJ1kaer#D+ z8!%En*%iENa(p;@=u?+UnC3N}326m61E7(ld_u~_($nhsi$@^Bky&_$o5Fj}%gxz; z1D!b6pH__ta6LvUZsGq3u5JFM+b+3rp_OQa4AdaGBwC!v;_kEq&c7LZ0rc~aY3BaE zS^UdrUx}=pdJ7inO;#m1^u)zQG5_2JEPVT$;5p+$fVq=KnNoLa5{DxQZFU%9p}sus z_T!fZuS~tM;_ePTYgkIH{MgNX&3}({I6zHgMsL7BZ;~yEe3;7H76ZGGo*-juk&d1T zb7W-GMJc2PK=AR-Q_`ETcW-9j((G_uU=zSSm30Tfcbj4!oyuF^w@+nfD*n~d6!9UU z!M`%5|71j6g8JeHoG@_MKd3DZ`jyOBsR1>|ohNkyjXXie-&O5mZi(vNbVRjeFuYf=njKv{M;PaL>vxI}*Hy zvp06=`QIMm$h`mr+TqT%TWW`YvxGO^%R}i1Ckc~O#vI}1Fd(mRqIKh+H*J@j3-z<#ff~-@~4>OdAo^G#~4b+rFHsdL2BiTTH6PwXti%e;z zLCH(p$~1E76NMH_1Vrz1m405RX)?Xvxgl&Vw3_GrFdvvo&EX!3`TV5E=h+xhg47*U z>}`<4A+7@lc#R4f(X%mBqnRklDV4Ti&URf29aBp&cDFv5ySM%nJ#Gp{aKNl*HP zf$};}3OKR4YW?8gI*$<_DEIcV^-5#4qoaVX(-Qz*NVb1>xAM7ueRMaoKA1-c7ovlN zg$q8BMsce1gsNhh{i~O0{@WmdP{x4GQCgW90t3vTF0MsX#xPM;}!%!{uEG7$~<1DKI%KjLo@5x@%hxl@wK8 ziekl%rf^^5p^W>A&spvH6g+U`VAslwVoFut{O)cb@iMseN=kIP^EE9s-KIja0qD7q zc_#|Y_-x_=3aIK`1DCmIuP4*0>$QPsbS`#;IQ$gu79wl9w(pw8m$H2dYGzIB7%mC6 z4R`zqyYu2=oxE;a>>;K14UDb@n}HZSCtUE<9Qa|O~lLQ>S1-$seuv8H3RC1aBj+Lag> z`xqI|Qp7iZ)eNQQ$qeDS7)H};2@B}6K*NVNIIoHK=x1InaZGEIz3n*8(ayLs@LkG$WLk9(CXVEMmo2*3$C1xNYmSx{@SOPwCz4A^X&D~V*^OR z@4a{{@Q;7giSRvRBctx|%~#1^fBj5~aM1Yg&B@}8bJI|gE+@<}om>M9P%-Fblit5Ab$jt6!fh8&ft2l7d_E{<*cODsDaCzTI zgj4#$&q&|^vxs|MFphd;Eem(0Ze!ugKM?^(ukIwSZ2>vWHkjtBDqfbr^jFOo9Sa;w z>D&n^oJLuK(gzfW(Ri3-frZFNp)3F1+)?X-02qDLbh%)esY1TKdB1|U;&<5C{^RXA zmq-|MvHjjMrv2}wSOOLVWOquJ&unrhhBkt=$SE0k>1b2O>GXr-MnKXF5pgE&Pil(* z8XhuG#Hg9A8k;F|fTQJ`F4+?Yq_c_>8Nv#{?C!o$t$re$Sqg<7DbOtzhKml2P6`wT zR@SwpLlr*hqSBj_#ZG}iPppY_0~H`X+~GA!Hl8MOOaCpQ2O>;b{xxR!WM@8rc(k#~ zluw=nKG~oPrIO63!+QVfrwgWiS#%B;$-=+C-TL17k$VaU(@YkX{dC<#_~%_F#xZgf z2L`_lvrX~q4%C) zCk_GGVinglx4mi4inrFcrKrId#JX}-Vd+kna}arAMCcwd{R0t!!8>EInCEROGFZgu zY_z>z^@(1d#v&rFGbUMvN-VP@C3CwDCNJih`341zBJJB!)vBq4cq##PY7JgjDGd>% z|CIk7iRLgmK|1D1CQzi_wO0P5eTOb(DL`i#S{h?Ut`W~^g8^lLrb9a7maMIKjMYhQ(WK#iz-PpgZPcfN0 z9Sf0|?{B%{iKj0ibBWFOBehOFjS-qgwC6prEmpZ}6&n6WwLfVUjPPh{obcV}IFlnc zJVd*==0TC1XSk;PBc(@0iiD=xIO+HCdY`HAX~uimpZRf*lkQ&*P`k(S#3Zfi2rjv_ zT6aO`U9mTKWW+pjf7?u4_9KJx!J z%1{JD8paAh2iI#agf}T*a$0UEFJt;yMPT_%938|A%me#m**@7kwi~1L_-$(-jUtyt z;yd=bV#(dOECG5V%Tv~EEKdGA>&>7ycge{1BGxs+xGst3DSEt{MvVef2~VCEzr%u% zPAK{FcCu4|3T6|g(2wxhwKMpnO^{;|#;rv9xq^{O?@w@N1_DBM;r%bna?g1me(eCO1Dhnm<@D`b`V`(QZrA+}PatK(yG7!LM%?(koPeFLBe4!9O~H=2Iy`q-6>dI`{3hm`Cp<+6XQype;yO8dScO*d?a-rM3jn zti;IvAf~D0&g)kbo+>|%GE*2$FD!YwRDY47rO+G>&sOU6xAVf$_(8Y0 zgdG5|kek0c)c1f%=D^{D^0TGYFEEfg0?Ik0~e z=9^ebz$!I&C4@^QqT}J#<3DFUM3w|V3PS=JOv8-PBH)!2oMV6*90WZy6|gLC!X=<< zOo9sZDij=Y7?2=JF^a4J*g4)3Y}|e8>=_tO0+tIoC4Id4niar=iL>&v8~+J?=8%+% z5jN0a82ez_^*p z?gO-)hgnh~#LN&)1m8sy%V zhIu4hPoMpwcjuO)%7sP{?JXtYXPbT$`^`ZWkFisrCd+Z8*#3mf7z*zUfNeKz#jzq0 z^-Q5uKrFlGkN8_ZUK$u;((+0yf&)AnGFbP^RK+LNdHmDxlp9PtHwxn{<5+O9v5+`+ z&*G~(%*+6yqRV;8Btb3NkyI#zwglfjq2`s;|-O_XD3={ZwSMc*1g{o_tE0f|hsrrW@#@5iFBv(Btnpl^ux4n&AflYRB_}6{@5rg} zdqvJJyJe^)FlQ;lNgf2ZtUfOmB`yjn;%~d|s4$KKuVZ132Z<&)s0hybH&FLn#3#cN z00UZr+Q14!6^YhV@F7BDV8_PUpC<;(_xLXEx2s&#C@>(l9RZYEa8+pT_QKP=L`?Nf#wcI2j z+eVyOxSq#7vHavJ#MZLt{V0ezkvi6%Ur8LR~o70GPe z)*!*Yi;^FRDmd7pE&1yTg0{b%4y17yA^frjoPCrFBdKaM;3HHoT zR>yhx9>Krr1*Gp@=d$^-ZRpKbnk)SGt=DGihoS zeIpNxE{LwHmtQU{5v9P4Ng-()g0>`xxYD#++qeKuI}0>Y_jip< zB)3}`Sj;j=;IO^AzGpg?H`*4K99jGIySYMD#aTtUK*)gn>z=nihs0i^B|_w~l$!qz z@I8K(`{AVr1_076f!bn=B2dg19fYB{Vlz=8ygE#O0(x1B)5Q{48v}5^u8{Qdpvg6qRx&UHykXqBV;4t}Lk*WIDq z?H<_n=yilL>B1+hOdx})>}msv9W#|35{FE`3~Vc;hJQc&?@tF8R}AcnaoS;ze4MwF zW;zS9i7CL-fle9$+6OClLo+B)gKjtv3UF?VMF=xW2#NDI ze)9aIR1_!oU9KB%8bMXchSB7TSSv!>M2|x-+Be&i`B#&NR^&+b&4bnd@QxFF*C+IH zhj}WDGF@<-J@TvRk1dJTS1wX4ijeEwP`?X5pz+9s3Xv7T>2i_CnunznNZz)B4o-ut z5BlA3qcYp@o0eeZ`TC(M6IKkAk0bU$R%o&GXm15X4+CYT0*H<*@7j4t;JXiL*pd{- zl(MB}GaF5ElWfYsre<+Ap8DsyuMp-1;e&-B7o0`g8CY4tkmK6 z{CebwA>lv8!w4<>#E=OeG(Gjd$^Xnp%B^IU|7tEDd&x&jBbKTygqNAF+YU%~F|krz z>@7Lv1mQq8$OX?j7wm=_kfB!(6s}|7v3VT$*Bpl3aQA|s>m=PLw6G`~jIJ6M5eacY z!A&fIf)bcwP;hAVh&)*1u%Dj?GsaI z6d@>f8;YHOn40Z+M!&N)5}G9M#!7<3Q}eKqup}#>6hI?EIOoI0`Y3Ow<_1`rBisVJ z5is#_o3@F@rCkdL*3afPdNw|lUHASGvrl(Kx0|OQ_Lho0(75I`$HPzg!|T!S>c(#D zhPn=K%+zho6h3Ln@Kz8I)=G$={c8I zyGLhY-#hjoaxHMUz(Xkcq$J32-uTDRf`%8b2o5T9@*)rTf&2s-Sg;*44j@>XY&HKli?~lFT34{U+zxa&kqu{(B?y0hUyrexnvA!-F1yY^0UF964ejfXv z+`d@+#3KV7zZ+Wmb=TC53w6u$=NMn`-5#}xv*Vm**-LK^ybeO%ocUM(q2(Xu{dE?v zk2AtfSj&sID#1(&VA0)Bja3dW?2#d0e{c?dg9N`ph8vRhV`h%BJdQ)UUp~GLx{fuB zq{6Oap*J!2)Zf1cP<*p+qGqXdJdWMeI%&gqkE~d%yg7xgmsS(31Mx|;WG&% z7w8o%aHBPKccB@HxH4A)bP>H$p^EO)`}C;?55B|I|K#svsjvNz_~)X|M2BzgPn=f= zzEoM?Ga8Ac{W;6+c<5c=v|Yl4R_Uzn3u5ONb@G}nlyud~*ibO+|D=6mZ&JM>!=gs0 zLx?uHQB;KopS)?wG~|n{QuCh*U03{&Qzs8$;S+A{#*8LU!o7`!j2bExo=|>Y_1SJH zVHV`Vk^dCQPaecOZaaSxb|wM{`hYh+RFdvyZZT!62tSnqKjxf6JPkJjdX73 zgpCXUS0q^o!G$6=QOti!i3}PA3+DAq6?NvyuK|du1(I63y5Bb?+q614O!xKJJ#s@v zi_BuJCT`oBAq|I|Q+o^x=BV9Id&L*U38GpWx8-=&Ep_vy+FQNzh4Rb6dFsDWUoy4( zUAq{U_gceM6lV&|QF29&<|LVc*1+tVCP&b)(jCQn>N_;;psdW9OnL>if2oahd;Qqt zEG|dOZ+Pwp3s(0H+)R%2Pq;1s3s(XT4`odjY!~I+zHX6jUT1_~`iuM9Kx_ENG`Nl3 zvi!o9YOPkUSuS{D)zrRbv{jE$Z=&l0h*JZ{^e;CYo{#zP*W`@5*7@b?6&LA8I2qQY z{TNrB*h47@&k0g`eIk5qo0xOg8uH!Wmv=E}?sS7qFPUvM-oCheunI0HCB;m5C2&-Y z?Z;X&YGXfUb8h?7qeXSmelcXtGaG0G;&Ho}`>m z1ua}F&FWp_hO1g3-#|_xe0?I^_qzV4=sx_Z{{A?C--XLHt}XLk^P1UP?zQ*cBYTx> zQuOWKYwv4@(6vgX%p$9MjcnN?5<-L!iXuP1zu2Bb8;bLc%cXw*#^bVaN6mBZ@w%?R{#I{n4T|r7N3-fl8zPTlg z8`N3JI#zjj7S5#=TTyrN{UKYD4-NoEBm*F84uyv^AOG8m$p(J$)FHG=;vT9$Nw{Ct zuORjz3wzFI^8dS-HdKoBJM4i&@OM3AJw=>Y51jyiseElYh~^p;(G^l(TuV%#b}ZcH zEJ)a%h9@;NxNLY=LKN%C42t7W3VHyZ6)B68fEN$lM8~Z&4p69s;D($CCSpI=Q%i?D zpR3OFiTRp~)~XiasyttI$$t+V;9UPiN|bafkkgB<%~n3sHw!O5dW=B2D~Y3(;oonY zJj9#m{OiTQZ`HdsX45~Bo})xoQPXM}da&qx>sC7>g8atOm`n2_krdb3{6CPbjT{S* z3@rv0?N6XsGXPdUs7>bI@c~@nrd)wT6evXTHM-_To~tx!^$;zyd!#rNI-JH~WR1S& zTOYUl5zNv7`118ORAfMmLPi;2-*v=ONa_Wlr;Tlw&$6R`B@osy?rME)w&w{=j$dhC zIxHH_0=sJ{Z*mwDZ)}-!Sp~g*lxDy`Hm$V|z$A#N7^A2=N*N9`v_E z;<%ZRNk|rbdR7V#Zy`mlg;ozbbq7!zp*{f+kJ4W_v81pe#PRk{r=x0~GxN)=F^Wg_ zD%8JX#ffPI{P62ju$;MiU>AJ=o{IGVXj?zT{-wdEUAi&I2%PIed%53#FX9JpgR{3z zWB$OpBkX#{N+SIq!-Bs<&xA3_6Pna`+S~IeYE}?bYu=9`h)}AN8%|*Ienx*kuoM#R5&&mP>zLA|iuOq2~t@|V%85aXC1(Kpm;yXuM2at4wUQR5&HdH!?( zwy%K~N6_sHmSPFs?<1+j&czQf6t6toEibI=MUtafM{AJ=5GDWP39K7f@Q^@IS`rC3Cs z0-+BkVKPu!Lre($SpHrgahHdl5gPLQwp&z!(8l?j1iYXJ)ExkJft57796nY@(P38z zXD_kZc6)w9N`!eNRN>8<;eoOWY|oRnYUzHkP@PtC{#mYiu#wh z8xr+J@W*R|RvW-c^&^n7?^}-dBhyAiydd zwd?M<(dZ`0t+!gzkUjBuZ3oB=fD&e+Nn=$mO-xf22Wr)N6e5E=BBC2TvRVvj8QrPj zxvYO<^0~LNjF~IbnnX*6p0ln1SqViJMZ(*T>V?^@MJhDpsrTuBi}ViS5GWwU0!e+k zM`OL`hQzarpK+RTs_`7j>>!~#;-$jwS0Elp5s?f{j$3X;Di!iw2%!8HyLLvuvrH~ewJHuH6t>(Ivjx&x0%P%R&DRq3!fYeMp z1bZ9dJWOzTIOPlXR`Vkko1&ur#|*^>;HpAN{e!qlf7bM-o{j^a$CZ6SSH>lzU!#ge z6A)LcMxTH~ZlZv?9pHbT;uIXN05y89d9VPXkUyk1@mjLrfR3q4oGM2P?>U*zB_q5^ z(Aryxo)cuNlexhRyH2VW*-<#IZ_k=ne+^(LRKDW!$})Fx?5#k~6+Kx@@fo5o(I6%-pFE~-i?np^dIYuh>izn=?LCS~ANOE0?FHKdhPYU1kU;`wMH z;R4`z`92=2KHL^+z#vYt2FT|C15T2fNv!k(S6^3t*6{#u2+%hBmHrk!Po^>-VhEP0 zEGQ{@G$L74GU&&hY2pPDN!F8LdhJ|6qqk%H-ULyt&UlsGksm|Ms1cisH_aLxm@hG1 zC>he333xSw<(gH8I0xUBwQMy{DLjVtUgim3#j5S!Efo}GYqP0OF#Bq?^0?9WikQW<` z9ppwR_*G?Dyd1f;`(A3m@X2-`=S$oK%LJp)1efU$Q~o>d&zG>@g9b1FgH-~+y3}$m z!jiMv@{`Ss9Z$s;XvX}+1|SCHC4i9bKz`|3g$2-ydvU#n-1S?Cb|VAXY^V|f{M8{> z=t5;_TwfRf=9Y;6kqeFicB@*%qsQYE`~@FcwMVuidt|_}(6&anof2zYr={sMEmvFg zC?yKWF%N`{0yVerNB|xQ)zeI>7Z-mwA8>k%8CdBylXXpUUfArKyE^D z?vk()-4e8@z3jollRl)kPbsB1%jaZ(C(L;G@KP`_wQE}~{^#!Xu&-n-LY#(03;$A8 zs4jPj>6|PvP9}tK1Tgv#VxNDilvR_e{0Yi8z~XoaMr>&;i-UNfde}FM7+oOc9g9bT z=n`VtZ_*r+2yQuwOFRKf8@0}fF+mB|=7b`kPjtpB37e_i1*IXhXbtdgfjJ&^_uR5?$!fGdf+l)UWZgc7LXCBb?WMhpf zO#BKq+**2g6?w-PD#igito<}%2+`qC3by5uni9dd^T@rTd#zwyQXTgU{4UaI^i+Jo z(g(+a25Rt(lP)@cN$No`xKmrh4Vg>Av=LCNh8jBh1uulYcIy22pa$drMR6RjyaGfM zm5tuWUk%i&h`F-)IC6EWX{5W%ymYZ-b)`YrT5qh-FS}%&tc>t{{`kP%-nBSa@=G4i zyQmlLFo^9tEKWfgq~gG=BpoLYXhCN5D#Mq)>}V*VKmsWI2{&F@xh3>7XjBx+hW?Z$ z3l?wyQ@Nv1gw>hW8zHyNRnD@=QLyxJe6jo^k#R2zktQGJo$g zjvY}Zx+VJOJN_3Bq>TauvIUCZO$ZX43|=2}Gc5kuc32#Ng-Bn2QFKWi#Mx|vdN(xD zHTlfGGc1XwI#Z@*qdjb6mr|(b_{ljDkirsjd{kuHSuQ(d#AYPDrg z#tEs46-#sI{?iZvK&t%XuZlq)B948l-X(7&X}O|Uc{={iIO@Qya;5W^t#1U|in77F z)QV5s7`RWv$3btwq|Ar8)ZOXW8x7hJ!#+8Ie}2hdKqqBu_0I+79w+Sor07Gy;~*c_ zvDETRQ@yy9zY>>5bhW8pxF^*^Zaw=i9!anf;lQhpgETp;R0}&71ipImLRLskg2Ktd z^I(l@xd&+(*PDQ3ClH-~|I(`k$rbjF;@TZnRER*HIsyDF3Pjk%A>HHEQJ&J+N*e8n z!BIw-^p#icrn@JK&AfW~ZQ-Q`rA&Yyp5jJ?g)e)7EYgJJ8!s;Q79TAE#X$I8Pwy2k z@4x&YRX{xQlp*IA)JE4MTQ{KMrbqa#ZQ7-)99J-E6<;>y{`l8+@eNx=5?%tEGi>Vf zsmpsY({?G!GUp`>F*%(@da+Y>hvoT?$L(o6)@l1ve2-cO0H>DdIZRZM73Bw=X~KupAT_Ix@8;&xWCecBFS-r@D)J-L^{mD zpazIWm3ai>JWYU}-MEA@lkp&4pZGzEHveK7jx48-CpzE0sQF0_%u$YjMOJ`(r|wjU z&z}@sqaSQ6Nj+QMywm$@PwaG0x_)Vs&7(LGpl%T)g=JEQ$64!!GtGuUr9vy7ZaCfC z4uRN86BpD8lFx#IpZUfs!z2E3LX;3II^Q~V_~KKO<1j~bikNDChc1f01Q`_f_WWfW zzq`Z_Z*Wt)plNZ)CxgkqPw}vpkkhCu>=GnGvYDU$5qQs|8}3Rj!k>F0=_ER%J_$`{CA{WdNfY=x!gB}fif#+`KJThcd3uz8rKi$ znt{Dm`)Id)JqyrH`arT?FgiJ!zZ!hbwxYoiuY7t#(UM+$D?_%BDFv54!x%5%kgEtS zobmw2j5z)G(-Wuq_WtcSTg_vs=+iEG>YpAidW-8CO4Q;a{s^Mi&Ha;Kx|b{R6!Ato zeI~=rdLei=xbnK;D|UmT6sa(s&sk>(2zq?$7i(bFr(gT8Ze6+V4=;b`W(MK%9)WQdFSHh)qWt_TO;zaB1edPl|`T=aB%tna5K#pfbkHqytt)~-JEn`c$@)N?+v zFC=h?8a)vQ8UsMY@bw7kH4i-iWa$ttxqjQnHy{f3E_v|0;KQB0xPsN6620AY%zwsw9UGb{^ahe=)EUM)qHC}Fh zep!>h9((5Rz8}A2Cak55Xq7(qO8@opqnm$4N`D#k&hOPPUwu^F{T2={!EJkZDByRD zrfZnr-{6S9jo0W}>p(G7P#7HHP>;qTFp3T@Y^bN;bj8y2J>HC9BnShemnek7(JN>u z3pe_}-^v?6BWjolxpvh$#UUiCHAv-I=5xzD`a#S|6Slv8+%(yzGfHW0IVt0)}z2GDYc| zwW)XWiZWF_cXb(W4F&gSuy2mO_s`Z&Oc%ZRe!MRD^7P`X`LVzkzUpDN$p9Gx_Nx$) zez-fJv4>gx6h4Kf;1RTr2QNgeTDFoCkx4xFTagxgsnNMS;Uhpxov36FONiVx9fB9! zP|%BmQ6XNJgTB|sB3`x#jiaU_2|Jt0y_%1wl%s>JnkamZayCTj1|ah>7ZDq|0=J5s zlb!EJYq6U~0tW=_9cK m^L60x|$vY>w6@4aIz+^D6ONLH?M2PM^F6N?4=}8N%fn zZK>xSR}?z${m6%s%2U4sx8Rc}M5A9>j8yGqGaJ8TOk%Dq(&H4U$uFj2_|L#niN$Up|lWe?X+;Bz~9=E7p#%TC2;*t@DPaNCn=P(a(FoFXa%&A-zDcF7Asl>{}MW=dzjA$n)KL*Yeyh=+12w_;=tOo zRZOP9-M5U%4PnYVwKQrHFU=XaZ29|G>~Z~>8dju44*3cX{#3>pWql6uo4sCo%>2!b z`f?2u5bfyX)rujbe}eEl3p*8`F@)zreeW9??q*Ag13I<-*XI#N`v6-RlxAN!9_!>|SQ07PE_F9DQR9o%Eg-n%Na1f?@pqoK6-< zeShr|C(h!aydmMK01%T7wbuQ0u?a1G6B}lA8=aEZ?i{~aAD)~6d*S6O9y2y8qS^hd zK@pbP%~M)y2JDiBO5i=EW^~V9<1?imnDX&I5MAr-w3r_o<=Adm=z6w}<1gg5q-P*{ zr~&KUW6p&4RO9J{QAse5in(^2X4jpy+=scm+x9M=9Gw0D93`*D0DJ&GbJ@`ExWWk3 zV+t}y4&T62Nl3&a4M4>BR{QeDx}ttola3!_!@DF|)9qBx%935)fU5F?BC6sb3{~#n zXOk_2fWbaU9cZJ%!FYQ_I5dNDoMMk@4qOviHM# z*o*|ICTOJ?%%Xd#`N?2Kp_gI=LWL1p8dF(ljuHZB(MYV=N#8Bmt)A-)Kkz71C+=?P`giODrTlRA|Q)8hUNFO~14!p`% ziLBS+E&iRaG9yau$ZWy>^B_sHc@;K)+eQCB=A1b6img3A6ZtJFPim;KK&9Mg{136q z^=Ys!LnD^qK$`OA>$*buNlT1H0UF|j0>~6YGfigseY%p1Xd_ngq7p|RkHo*d_ zk}dt4qyW-ynWoAQtsg`Gc#Lo=z+0+|oFu2D0YKO+q;$(LEkBu~BN$ z+5?YB79H{TEzf^9!XUsrF+?brb4F-$4grdVGE+mcqWvh^R+6i$6Dcyley76rF9j_; z(mfFZCUtNs0UHncJIZ)g-zt42)jmdo1+Pw{G^9r2wxjrgHjM?TRMs+$F*^jr;Q0vu z(|t$%{a-f0U}>=CG!_=lpXhUFlfQ;?Md76>UN1-#{)sr4ElKN=))QV3sAB~4 zwu&#Y5i0e$41auMas1}tcY8*P^31`XUmLl5-(yse)I&o?+|l(^%{Hd6tNXI^ODhRu z9dyBfkgXeP~E?Wri1Q;HGuPp=E)t=vh#Yk&k zi}x?;NS37ML~&srVQ&hfu@qKU#4WZxNx{S^$r&!sC>pmdAH5n;4cxC8;KHIHI0}Uo zGn}TVW;@tPq=-qU zS$zf4i58ml@0@)e81m0)HFRNa5^oz}QNp67iq3f4l@@bsw1( zPshRKpE}0!Sb!vrQ}X?UMM#$#7(Q{@0qll0A8lF4jd_Maj9x2m#2}T1i3>xN!Q~U} zVhMQW%z&5RV<_i(a)YJiZd4yyRZbd?amN%P+JF}u8+&K`{= zUDyGhjU;}vdt;R`(;Wow8cz_$22{NY2f?o(6KL<&d=p9)( zx!IbM`xtcm!92+%f=As6gEjyUU)Hy0v?@R&_xoCd!zx;mHVTd*AqfY*FpVlbd`$DQ#Z+^Ls?aTmFC; z;PmAlKd%aqnM7g-XdOgi)=EBD1G`;Mui@8$tV_Dn8>8;tiR`BsraWvIYaWI=l}-{z zS&wCde`a$}Tz3BezfvFN8CTQI>>@A#Za}z&t2L2YAc9ITkcwd%4JVPV0=}4=OPNcq zmYgr^{v;Z1GHMmrae>3p5m?XZ952XhA!zDAoOeP={{pb_3`k$bJLa+2xU_VaSoZep z3Clau)y9?vUO1o=&pU|Y9s{!W0@>DquzFGh8Fo% zfRI~Jc>$xU8%cxzY&_@K_KDDqB_SvN>$bhR=SMy8V#?-s?Ds})*IRh;+SbM zHOYFsSiJ>D_T@ryXdi~I(56Dj$rVaNML)#8JL<+3?%=R@fL-|B>!p8MLL=L8qtl z+dEZ%P?$Q;kN1)<@FG7^_&lFK&Hr=NQ$XsA)z1oj4!Sq;-3+Q)HfJn?wP=mk04fN^ zw9#z45H43t8I3dbWtnrYAB9Kv(WA&bHl)7;wuoP!Dt?pD7nY!6kihq0NplN zU%LZr7g7LLi-o&CZFKL~e>zy~O#$cTciH6VQ6C6CBvAuE2xVCM8#0Xqh8c~4a~IRK zl3C|*KB2fxQ4!9ovz6wu{Z@V0r4B2D%{NLi+jhq4XaLugU>e`K8P{wcj{|VU1;gcz zWIxDeR(>2@faMSb?vFaxUjs6t-F44_94N9uvW}m|c#*<}vnnk%%D{%r-v(54EL4N@ zt&n28#&vKNwV-#wVx9AuA^*^P2(jT6N~lj?{ zBhGnVcu+A|xKcoHYSb824NJR{A@@cRzCFz32|>s71I3?I`(7ZDJ1ytOEE`J&ojh5M zb(&a@);-c(>lMYPqDD zgQ+C~NK-4wX+vg16*f88F(u>Rf*5}kkShend8oy(WVRj$w}eI#X_2W~+Bi`tx%{G9SX7noQ4PBMd_jo6k#`&np@a zY&6UA*ehpl+MDtKbn5;1)Lc#J+| zU7(gZp?sN6FMp9|?@B_XX$AxFh*`ry0r^j{>u*p2iAeEEgsK5=#HyC&sWAS7W_lQ+o7CXbW#SZI#=C=vD2 z?_J4aah)NtZsfraQx^bjufM^Xi#7LNq`N-vL0%UM$Goz@Ws``=BQrwuh?kwfA7&pG zcY!%Hfe$%E56tYBS@z-F!LB7hL?D?9s>R7c=8UH}E=(PFo!|@>DYns%wDTJrDvo^< z5JVdfK6spP3Sfu@Qg(4PylE77w&M|=IkcD*93_2xTGdjO)Y6<((MCd4V`1JL_awwB z*_xzUZtfhKO>7$bZ&`C27KE)W^I$QID4bSfKI4`#W9`>3f|z4FY{@kt!;S;~#GL^0 zD^y(#oq2`fR=wI^>E&P2@NXgXTv~7{d>!whjop{-a$H}!%Ud&O1AfU{qu1NjKMh+m z8trHhJN4h&ct4@FmSs=cC*fCz{J#p2V?NH-8}9I8J#L*{qQdm&OL(FJ(}&MGl!!&D z{k4AkT5^P~-l6XbkvIp$W;~$_MD5ks=E0-1I0Q&z*Si`t+e9BkPUP3@UL{f`_kF8( zWMdn_T$$y#Rvh;odgK5JQI2L9H`_7Ixpxe3s7rF-61)5lCR=&3e`@w`Z7ha1u(KHx zCicxG9LK#}`|$848;XJPSfL7t>FO+o669L#A_OYrR zW!y!#tba85?pu8bK%WZ9W8j4TQK-BlWKd{IfBe>EO^Ja8K%57{cKan;lF-Q6HxBV? zGXSn~ta>Nj!~Es4O>}r?qcb-Ocnwml;xuH)@Zr6f(cQ~Ea#+bc;vty@oAERnh$z7k zPXTcuV`c*MF&DoyGS{0!k{SV8B~h=xMGc}0(FU~Z?5HwUZw%woE?(v%a}_q|H6>r@ zSc)l*{~d`A@lgN=bGDvIYS5QTf;m^}AGBiMwMINRz;dOUe#OICSD}i!u zkuORNGNP-~YCOdzAy#@=F(Ei_33*u1Q14*iFu%#;@qz#)5MC?XWFul(guJ2E-FH8@ zgFA^&-rWSo$WYWA_Ws`8S2#Ws+>vtDl%Xs4Wj$avAHWiyFIK7dI8cB4Uqmq1)oA9c z`%ij@uxz#1!@)b*V2dDXK^zk;mGjK%o+bG)fXuCaa+3i=2W<>%<$6HsCsH0&+^W)} z|G4XI{EzaWb)D2cK>APlV~r-6*9ACc$0i?6#!FUtziIqxc+)r~d*naGJGuTBp(zE= zlu5|9O%IdP%wy8++ta6_eeKtL7Nc+Im$aC>l>YbYOR<6dWO4vighZb6eR#y{odD8y>DfhL&vi- z!4DkuV8q`BV}gJc5JZ$Ggku*(&?;<`w^rp=5Xf9Tm$pZf?xI)}`N`Ioi3@Kg7SJv25MG zY_9la@krzAQ3m+G46k2r!T$+=$N2pvU1zjNa9ZM?2d*yyId#O_o@@lys{yaF{o3Q% z`_&*Ce-t|}Qk)`ccip2;S+3Uaxcy+-_%l8IZZcQEtM=x2x&D%ag({xF1L3C%o4UG# z_h#qXI+FhgpTLM88#o&yTU&XeF7wQe7OR!tvnLkD=|g0Z$pXdYZtwgJj2&R*y6E=*`RUo)<%9_#rvJqyZa@iZO|&>GH{@Sr59 zlKggyxw9GWy-pglCc>f$rK;c@hTvy?M9O=b41-}nesHGe+AA{dTGiS z_|qUYL$OrsTi=N2g;u{gUTCr;FvTkTuD(40ysZeh)<>+(HCO5djZ zL&mWhzGc^gc@4wMhWMC-S&|+W$r@f{JiLVvOchx}Xl15LO%7xre-ihUsd(gr6sbj; zGY~X<=M|I*Qf&hCs>%M^X~=T|nL(3j(x5U!ogb9WDDyjH#Im2~-tL5c zQB{snHZnzGazNmj>UXi)51u)LswL@GMvY^#CSb+gA**4@BP{{RUf*5u`p)i^?o?U! z7oMHcN6v#lr7!8sV=9*?&eZV(|3PjE(c4)7lR0#5ttNaoNGs3QX7m}QhI)9}sBHMA ztq~1*66952T=}C}EH`8Llh|tnjuU<``IyS7c+p@%=dYzJXpf66veb)oY7|hXf%q(t z(>=*msNlF-MT&y`D>*Dv4q}agtv}go3Q2rbLnBsWz)vqmIoRAS0-2!b7GTr##ONtryNwne{z>bwf}@t2f2vJ`DHMCoWTtEw z&y#30mC8!6o=`L(g`FU^L{!Ywm-$?53DfQWq@}t1VC{|QIfqsneDOeT)p@Bm|7<_TFaJq;iJyN#XlaT5 zyZ@fg@oSE&)R*(0O-sYL2kh2aCY=^zMQIYfEB6k|_8Hn_2RNAj$P9s2G+i#LGz65< z%X)-n_DlJU0LhRQSTq4Y%AKlg&*i$+%J!DFU`+8%HgEyDfu_1IOp&F`0yo2=AD`oB z>a;#`WroDdjKCRi4doog(h@vB2uYe-<@6sBi89_Ei858rpEs>rWCiIp)5LLxRVzt~ z^{WgI2ei3U$0;SPy!oALF%*)~WZJ~gbnZMlL^DBGijC}KZJ@?E*k8;9OGZnp-JB;Jho$L_2Q915;Euhr1rW%T?_QUG$&`ilH+VF$IztWqf~^dziMb@RFq(7^D(N()!ufG%Jm`0OtWs{dO^$;xMB;7jPnH*fs7 z#6IAhrqk+^pWt}GsP1mY-pes6o5>hA%?;i0W~P9r(%1;QT$Kg&c-D1@=EIN~*c5jCEEz+95L0S$R0ru{1Q_gi-84Gzy--vz9I%n7zJ{`Y;qO{70bdFoZvWr5QmXy@F*4Bg#|Cj#Fp)3qO;!Rh0|7Qx|*LXLHqo zeLlbI{yKgQ=gNmuJQ&EZm;dTlzn+_Dzn$Coy;(wSX3!k76keKt63Dd8rY+D#L#=-* z=p{e`B}ZV;)`h4P;TMoO(LDa~*sVKPQ@&)~57F^N z&e*@-w2O1OeK5tJj&DqPN|Bffp@}{)pU(LP4MXfP{*0njr)@}9$Sl9i2$pc-`PTYD zo|cwNT@*-LU!D+5#5)xiisjPdptIk*lM{)$B4}}b)0+Z}^SWGy0fjv+C)#vYzbViT z^3*>XUFalKv)3DuuzWR~4Yhi%x}JUQR9}#JbBv$X<~2EulOw`?8vlJx(ebNjd8_Cb zPy@T`6NcC7EJcf!b2Rc9s=VWzuCOKbh(Rg;@wjK-DyZ7r-_X3E6^EF~KJ5&_Og&ML zgwUv~yZw;Gk|4sc5j`GEgFD5OZZaKZLY#|0?mUXaVm54egWmbby26r-wL*ixOYBj| zC-1=6qDQ#b$Lv&)jfk;uh$=}&1lwx+LfIo!teOzH`B zKxehIuBfstm$bv5eG`1tJze&>H-I(lt}+()S~!`(Ma9$ohdVeH{Eso3ra382@R z13ynun3Sm=^!0#;Ja8N3pjwx0^Li7BkF)|qD_2IP=gIW}B)ed_PB6o4j9V@fDlDiy3;1m-bey18)_C;yPrD$@*fyBG7Mw=b|s$U1cj_yS7 z{f_-xp6uc|A*Uj6ugzblZfQd3Qgqnwwe=%rw``*#t5GoUqV!vbgc-Z)BPZcomcKC! z*B2+p?!S#V+phiZ-=4EECEre?aP%@9#R(%ZL)eMfAAT`^(NTmEKj&L}GrNuRt(5g! zV}YN(gXpnTo92tHrVwu}LLh#CcK;l5{cyIfN;wm>>V<^_@Bd2#ecAL+O{AKwp=(>w z!6Gt}(Xg9eFC8rQZr-MNDBy^~uR$@?leN%fH1!gtP@rK}AT@{^P;gumEj9itgn{7O z4a_3kLrbBe_eImQHqz@hI5N(1f*EO7ClGpBcJ|EI~5Q{iq0Sh4z1-{P7a zvr~LL6(Txxo3ri^Maep?@k{rMWh0uaD^^s-;f#g?f*-Bs9c~B^g`Yk}9`()+$ zh=CZ&p%D~Zu^dQ9OC%u*126fz46NqqMI7rXgQe4=SLhw~Y3%?`cG!1txpo6N{o+Qk zlnUkGYJGw=svuV-+;g2Mr&=AZ`po*O$9Gl__ZVVQYl1&(C3p&p{+X4AFC9vJIO?2+ zNiBv-y&#@{PxCz%zhN$V-CR;SeHi7n_AsnZ*b~4KK%%f(fvDz!%t*KV1(bps;hL%JM4PkJW9oN}*;YYkua9Wjb7_+5 z44>7jiM;A;C*T~Dz7!@#?kPW!SgAT0Q!odb2jZ6Q2LFj{fD)gLSiIpom!Y3 zcJccBu!85l}@_wbI^+yMQ^rG)j{En~=zfBblpme~3cykN9r>j{ag%NKo z9S<$758cGkmo!&f5>u_afh1}{X5Cd=jL%g)j}Wv&&|`^V1u%Kw_w!%j`kwis=8-78 zjfm>3jmj_myAW|pMIYN=?adPg^@m*V6Jx!b@zNt7{|tJq$eSM^`z;y`3w{vg=)-ZSZx73Q8wq!r4{uddv9VJ}0wg0nV?niK-$_NARKCRhHkQv~oi)4Yn zs3wFF8=rW)w8{H&25M^?CU7@Q{85<4476^Nvpp?bjonA%kwjmZgvwp}YnwTl3Nh(# zU@F3wk<5C3y6YuHU-`c==UKJnK$1$!2L6j~tEgB5y7lABh6@Opt;=z5G#gyr`&(?Cow5(BoZhUc;cVFTY2}o)hmT}ckavY|DHuMAu)mj&%b3RH zH)nTGK8xR%sAh?KGCk2@5&IqM{fUX2ob*#533nIIP1B36ZIUCj`UnU?bccQG8bRXwEZ5jvOITb%^&sa5>n^-z~DxhCD%L`%a5M5*uh2~}MnCBvPQT!W1f z4kD@m422n(hKAiWtFJ%+4dGk?l)Mv0Bhr3Hrrqt09h~z@}P~^VF!DLqG!_cS(V>71)>cq7$sV+_TkOh3a8m`a&wf0b2VEX ztsNZ03mk`~AG}5ffK6`fgYy3~3wFt(nv;i5WJ!A!$p)<#)F^{ENg#KK&=?WqfOrm@ zqa+fa-(Gp1TYP0GzNjpwNT;05IZJmHm0nF0_Mhemt$UJXQ5)KOVMMCc43MNp=&7u{ zP`N_W5KwpYYnak=uZZtUAE}JckUSYc$J;d1w<4RZf+rl>%zvIxorZ-*5SiN>9?4|} zduBE?`aBP9v@U3Tf7{1dk@Hz-_JBB7ig&i4a3s<+hQ8c)k;(6K+GVF*n_quZ{DL&? z=E~$Rp{LJhoXicKD+{Qotr(6%UYfqRKFuP7D;7o(7wzyhAOEC}a_SZTO~13?_T!zM z9Ui!U2B>Nmu6LIA@oaym2I%5Fs4k*2de(1al4m#~Z_6_w z>(|@8l{|xM3<`Szas@7TriJqk0L8>Rooqp^zX3~JuRd~7m~ydRd})OGkL-{Ov1w_DvArIqrqAwFVV_ySd}mA`y5hmd-ovGADThtF zj{AD59R&xa;F!=jA80T^CjogOUZ(S8j9Gnk%v=4Wt^PNY_GS3V)P zHGC-<;!&%wQy*n0tY@6hG}RcB@fx}9IqDcW;!`T@UmE6fG3&=a=h*PkykqS5(s(_5 z9=tGi)-j*qn!_sWiMSWTbj?$pGmc9oN+nS;_-)lot=L||n+3+Z?F@7`g}a*9eP3Xw zdTwo-s0@VPzm=B#h$&sqvU8eCy*#*d&Zm3Myj1xb*O)2K<(ESZz%kG4UBMNqe_!&O zzTB?JLjK9x?s!Hhou>m5SQqT#c-E3Sv+_TGj5(<=oWqNA(qKBqwTt_xcqUpq%Yt+rqr)GYRu}|C(A$f1MdTkdRI7I{gk_b%oi|0gJjbU)v%mw?fvFvvK z&C#Oe=#qciX=^Kc8t$|=zK8mJPg|yzCKx`|fARJ6EuN)Az9-Y| zE@Y%;kDq6U+XE3)?92ntqxPFeqHaH9x{sdo9&@=Jt7%>yU+|y|zD()6oyfVNMjrR3 zKzeUK`K55bmsPS?#f5A5zlhszzg3D2^?ziSg?<8du2b+lYt+y2jG}dp$qk5&THVuH+*&l77wF5&wdUK3pdDg4{QW5OvFr}=;m%!~)t!rxcV$Q07bDdFT|Dc!P`SL= z__Aer`H#+b;Z=V*(9^P9H;skS#rulb)J>w7wAq5Mk&{y?nVS6x?%hccuCU!!X;1wu zW{hV9YSIIdMaRV^7O_=bo{w_wN_X_%7=0wYGcCH_WJWAW44YkLMm@Kxie(X{i^$8e zdH&#ZWP7SVlUL25S0|ZB)`!5n6)ftd?M(8;Ji3XO_x{ela+ddK4WXXW>9L2wC6epW zWMDi1PQxq}cqKaYq%lxI$4L#V{qdq#pSJLGWu!#S`Pb^Zu&vQ7!=xJ-Z4uvRh#HSK z1OJ?SUnumM`mog2v^U%k{P*=mdw9_NvluGPF16ExkwH-|zO!tPfgB1+8o@%w)&68b zl~f3I*BU0BO6i8l*@Hh(iIUI5AJI2GH7-PL_Rk&I`af?(h)*Bs=azBqbMPp+$Lux1|M#JKTcA@4?6t zW#?9be9MsuM1641YEk&M7)Hu?x)7=dy7%~!aHGwxDtkcXUQv#z>^66vxzpLzI3UwI zp@J@?;p4pVS0a|tv)RuWir2=skcrY+JLkd3@3mmfC;y_vh} zMQ-bSF}(q#Kv?Rratz?i8I@<^9&A~zIe23b1r*WV{{2beMC4i`&wmEDSfdYEv0yx1 zQ~|>SOXaK3#RlkCPq{At)r_|1zc?s>=Wt;7vjA#|{K5NY0!;&{PbHd16n8e73^ZiPT3w5?E0DGF0W#b-v>ZrH5~t~S{Xh23qAjkj?Y1Sj z7w#19?h@P~xLa^1xLe`wZo%E%o!}7MAz08rfFKc`)W`c9PWSB2+Kts(`?_{x-E)qC zX37nT7g(>;Ke~{6N3(;Iz|i=^|A)}Mu`%wxV8JtmQ`~t54Sqj@1dHWzygov4M*c4W zj(^c1h+f)&lM0EOyD#spWe*E(8Atf?r;?mS%nNW8)8fL;!!hTf(*Gt#QLkobdAKRm zZ9V#ANuxArBJnE;b+YQMKl>OdZAZ}PmLNujr87Ih6TqaGn4j~jLB;it7Kn17Z8*YOp((Hg_&Qfe8MKg10MH+B)jpJxpCjRXUb|A z6Wpo+^HQ99=i!frwMw^(zW8VdhS3Uy0yRkWacjKAM9)0 z3x1Cw&c86@#nUd}^0uze9cJ#ji#k@a<1=~u+fxQ9^@W1|b8#0~s8w^#UoAqy zs7b)P(pa}yD?)3aiSn?!;A2#eUdCg3HbI+$=Z+zV%3m>~)n)3oXep(xUq!P&0LiSU zG`bq1N^DRo5%ZA;&*jv46n2xGU&mBimKVyq3iWm$94m&SGY!MNY5t)76?mcc$)Xj*t7YtiHVqKRmnk_^wor+0D{ z>ag!$-uLwBzH{c!FjzQMeqbgD4PVFdhEz71$O5%DzHxY?f?0-f2~Uo>%KFMQn*}^& zZ6+Tp&I2!9yF|Cx1Bj}I`Mz`Li_AYTJP#C(Rta^YRy!;@B>j*pr)bYhcPVQvc>J$Q zy2117%bDO1hV>Up62(4t1AeU}VusF)yhR%YT)D|B0HvQu__rG`Rj_!!>8pR+zQdvda1|K^_pJJ!gxiMDadc3K8xe(e(tS zX3SLt-}q?tn@&XWJFjD^+hi~oSYWzLBjJ8Q?JIcdt(XAMtVGFM%uHp=8~ z&onco%CJJ=gRW{h;XW7okPLy-SxZ^W>wlVlitBo41535PmVYoDO%%A}f0mD`Vu3u0+%CZIxIZ& zR8WKtx#}zUmYvy1aqQ&-3*8&WnlGMieYn4?+|q9k+CTRU{%LVU{rV{mlYUFV#BYWps(*=^Ll6sZf@VF)7wUbjV_s zu%_l@&`gV_%|O!k@Ya<3>Ge0;&9XXZjxlIKAqZ(IZ2rZSir9^M%W>IGesweWjTSd< zOL4OKp|k5lw{7rPbTA@3I-D*Ix9>Up+9Ko^w=hBm4(*E{vZn{zOGu2hA_<`h-2{?_ z8$s%+1$#Ml=PIFYiRD;(0EaEmQj*7Mnb2U#Utq#A`bfDMfp}4d&yLAK?$nhsHwbDU zP9YTTZV>M27vyH(<{KMR9Tx6a5e`1J8GXj#$d$n1ww=_o9Tte?H;5J7icl9|u$q*j z31ftzL|(o~cG)n=2vK3thSti2K6!%F<GO=m*&^${{-cAyKZHmrE^twYSn`sNFk$>8_TC_(hgkmJm=$q=#e zi}w|J*pfWUgw%Me{X2>iI5I+&mAZ^H$C5Rc4|7o^M)_A^@%{qpGa}6`6a6V25ykMM zC%25DAK`mRLPtXl{5zt79-8-1(by_xEGBQ9SYljzZ%^;U5j&Fq2<1o&e8}vRzS8He zqa;N+^8(+)5UmNCu@+qM<=0NFFE-;U0IyO_u zHsx2I(60~Iy*6EX!C%kwqA&79>=_;P7@csl!nE=oyv*AwLps;Z3A`wj{Y1R7@x4oo zQOo?{Jv^rFo@fLtrP3_+Tr6d6r4+NNA9Yh_W@r>PHLCH6OXvcvxx*$5tg>zSW@;QF zgx!weO675epN{-Loy3(32PCcja@+zL$JOLLZ^!;ZE&lU6Rwh4hWhyvhJ5MPf&(aY1D2odCpM z8G{xRmr)a@K>Gl0!q#J&2I(4^30}f)jZw<9iYGxz(n+TQwL{kBu_U$cb`w8zv>!+p zCnyFh80GyIuKZamsDQ4(>sPG8T6wQjX};mSeM+??C8d5@`^ZhTTqglGSks=`mbDmVULk2=RhL6$5FjWm&83z2}V*p#*>8KEv%tuOEO z$>yk{I1MGj2RBPZ$T<6#L^dx|R!{%iRS+T??nluoxt=c6h)6B^Za`<&%v=^{W`hgF zOAuMi4gxe&%#Qd==-b-5A<~{A;NT#{*O^Nc=uXIfRrchQ$er&H#4lbeA6|6bd!|$? zhBkcv=2XS&3!Bd4w$IZ`=&R>1ZdZvd>kogO>-fjog%f5oEgxshI zZ;Qd8h_)l8Z4(*<6WKb`eeH<%`fCwgFNWq#RK9{tIZI6upK5{=*lh`Ph70StR+hQ> zi%qR6OY78-^yb7m@=b)3_$iZS8u$K0ug!HDF7EG@>z_z=Bq z;dmul69RTxy@M)d^`6%8nbLQgW2BDAL$u?3s?oMm)WKI8{_Z(R*FD6D<KK^ltSDkP7cSb>01 ziR9c@a@m1U=QKRG!ZJAAygOW-kZ)z_iz60-zbrw_ozfBzm*ZKFs52VU5fVnnWYsr{ zk+1kO#tu8)4kg`%O;$Q|gt;V!hdWbR$4``{LiBT`7&A{TNPyX=qHl4wxcU^QtQ z!e+`Yz5HvrELp`P`m(rFFILiQk^3@rDjAC}2gYG*5C+d&n1-g2J1zZ)#{>IXU52>6UUOsLKJN<1f z?Uv4{j+_BYg@sGI3sz)t;-v#k!9|-dtjk@_2S6BrY6K8j1VBgyBDpPt%mFb;uJjr! z^ctX)(y#yBfay#@TFAgZ6hNA#hS$cg(y2ud^TUYJL$nY8rBaY8X(eCqPV&~a@}J>S zijaSCD>?~Be6bZ|AM^2~xY~muJt_;|yd>|Bc39xI8Pw;QRRlW&gU%={ie1{m=UBJ-BVlqBCw)92vlZ$KccZ9*SLUK)4G?+h9=A1|Ap@X#?#d(rm}hA zvRR$DdCtBPGqZV43&aL&kwAe6k^tfn1kZl}x_9Ri=0Fv$^FT^~&mzK~!SmO_^HA}l z0P%|y?h7#1MbO*(f5cj5DN{E+texE;(C+C^foeEtlJY}@AOhw_1K85GgGAcSU zlt9)fgs`fJ2i9D(6~EX<-bZ>&2NvM5j4_Wddi48KGH8(V46$FkaPATndknhY6FLqC zY{lmYCJ;;OwEO#?VNo!sIiEq^o#720Ou?yvh&WqFPz1L{gnbU6Dhv?4fPfD@L<~6( z7$QO!KfLBZxcv9^`yzrw$vM3n;5y_Sj=8<9bfi+&+{V&epVzEBBQ)jQJk~HTZa9yU z;yXP*hcrC@4|HD=lDX3$xviR6oSY9^okvoi^xV_o4%@A@328GMC>XDg*9q0_T-2`| zfbLnO>nH`deO#WQu`1P=GW$6H8F5-kPsT1#jwn&kBaL91He{wKFqqvY*8E_|&0_tODHjV_EK@yoC9X^M?ewVFW5%hD^NFdZw^ zDF*C;4}EbK`J<|sb{z*N_N43GlzXHCdl@_g@EF8a6IN23YPR{(&XiP|>r`r)Kv_eXOl83XpLz(Ch;M41FfNd&XFN{u%NkKz!Q+ z{`Kd9m+glY&o5u4OMbXC{{X@T;KHka3XbS0N67!J`0@ODn31eViVI5lwOIkD0OCXu zvWs}xAC810W3y<*rkcw{A>m2$#kN>V%aQOCidD4YC?rP_iv%&brP0KJ-|Jy`O)r(E zuu|m9{&q{7$$2xE*R8hO!AqpWFc81tP1{4oZpN$Csoq&`$+nn> zNk^jiwOuUpPA!u2`7D*l^*=lBu=ue_UKr(k)JMa)IIBz*1Vo|)FdNv1)2rZNVg;?; zT$yu34hK9T0f7E(-=={ezS#NS&9+OWaw!Zq5nlGw)l$_P^F~ijTdi;MDbv3lPP^6b zhbQ0fc>mbJMWcg$f<^+Uk&sYuC~3fWX!N;Uzgr{YQUR*UnK8?N!nB$HGE)!u%t!jv@s}V^Jh-a=YtaD5jZyS*T zH}zT4VsJdRjAIEN(XlQHf2}J+`%Jw0lcV|Zs+|*MOK3cv?RE{Vp^xvbj$`U9fQ@H{ zsU3rN-WJT!z2u{PqqQdT`B7U#hQOOoO=A7AYb%7dvG+Jxg#+OPm-tW^9c17ta@D}v z90^_m&-GpURbp>mgM-VRPGV5+GjGWu|TX$V}achk~ zcJg_ESMP`_VK4N#UkPnk;zppz zvvG=HiG_F51!k(<=7j$E4%9B(^69k2FkF_Js^nvK;2%Y1$VN6w)giN(%fV^LYXXYUt!>B<59U2Z8 zpjjBAk|$u_*;9LB*HvHe`Rmg2CHb!ostD}q7J&zP7@_CzpHu%0)7^K&X&R=ZdH|qX zz4->}X1=`vg^RANkq=`y%~39VH$}OoS2Xup_kN*sSDIRW^zWA&tO}8;);CE~4Q(-6 z`}P^`;~i(BzW*Ey-?ukj(XWO`eQ`^`x-<{PM=y8 zGd?I1w@w(k1xmzfVKlLX|7T9DL((%QsNk#xmR1J09v}oDumI!YExlLW+c|qnp2oY> zb6cRBqOf$t$%C**j8Poz$3cpRfbfV!6ni|G9@9E`k{$JMA!}+-@P(w@8V)Y~n|G#2 zHeO9OEfOCjhr!+|%O|1~lYYU)ZtE@qdB9F*y&^fyh@f%IsNZ zoy#_(BzV(+CT)dL+_AyfYMuTb-5L)}g3=+&UT2>yvQt5$n>Vk)!jE}Jjch!gkDJdP zSsq&@ zG?l^UoGQaoF)=?q#YAwK@-}B4XNp%yxNWs0N!n7xi>rJfRV6G>)qOEK zkB!ZiH{-W%i!DE310QgT&!1E5?H_lwMXbwN9}jZmnjF ziEuet?J@cN3hie_W39wbYeA>wxW5fZ@pFc}sxk&v7@U*|*-rUDqMzr~* zCIBF%B;feFcERJ2?Vy=DPGuej!1w{hMTyvJ=y*J@3O!dV>)}2Dd&8 zjH9pqtmY`ITtkH4xhY5KBGjC$wt4QMoV38@% z9;_E9?XwP@{FarH=WYq1_&&_~sOFh&-~PvzjhMi!EF4dV-YSSm8bJqd$b&Gc#EjSx z8Qo}ulBX+P_Ei4z*L_O#YZ(K*zta2Ld!)uSrk*FQ#?cCTPNgUo-QIZOf6y8h;=q~d z=+%N$=WIA6>wQH~TYI%Yj=c<0n4gB@D%I0klgn&QejNNI_wyW?U`pVD)%k-%*Y?8S zp#SE~VP5<69l6`LNc*&%NM&P%VV0;c{kTIP7c&j9y%53Wr zpuOz!$N2ST{$d&n%+}AtCr^@;{l*k3YSBRaDoAimxHj*r>8aZsU$<+)82F?>|GcdF zb#4o}e)k*NOO&tsSFD&Iyubf8kuHlq0bl<9W(FyQqMN;bFGhJ?V1@>D)~tUh)PQp? z%Hk=pu^tbsJq*l|u`frkudu#LmhN3QLQUpMO||cYr~dks?Z;1B3l4SXM>ly_Gt!wS zim*nOxBf-~M5AvX$t&2&D~!u1=f&f5=&GeARcM7(w1UV@NI7uOryKx=edx~DrI0`L zODI*1b8RhJ{ar?)|JuYEF&ODH1zW)F+jrt{QZ58^J~X@>Bs>Z>lNR>G79`IW4zUil zS81>e37_ejio{QoVg-+>Hf>JBaF7a2?R1q(3eJk#FZ&SLURxxrSw8u|$y(2$J zs8TOJ8GxxU$cwjmsOSyjpZwFAne)=Qr8L6vc#euS!bu2%5`5|oX>8DHg8;@%R<($72itOH{w_vDh`4l&ju z>G5`iKzW-r3R`kMy9Pcl{}%3!N&ZM21u&(^WA>3hljfX^h)zu&aZV_3N~gX3jq>1A zL8-gT=SSY*gFqSJ#ix^@;5$F%!8{?)7tdVFO>bC1l7Y+8%bnX6pA$y1RY2EvDBOV3 z*IpBTup4ii0ab7Sovuio7?YCEgSfexJ+J~4UM;o>QYI4N z2AZ+qJRxBzo{?0KMuau7C{gy=pEYn~G09ds<~BB!Ro0QrzhY^;%vsBwlvdL*7#Xn@ z8Ku(TG&-dtJn_~RMP!!w>Q)e%5KLQ)e&`N;1P4RmK3|ap(_~)Gf~}u^Kq+sJXQ5$c zUJSFSLGaUF>gZ3LhkDUcomsRv#-{?I=WEfI6YLrceq(3k;^`hM z$V+n0b1{uy9+*tPA6^(&R`ga}N@AJLbuWEUq(Y-$vbnS`;nN7#Wa@7`4HuH?f zi3o|@#BbyI=vVkJkuU~xFvP9fh(x-n{mWe9P}}O4|74pvo<4WZ%mALmXTZzVd>T97 z>q~={AFVX@gO)2I7rx4tFIQ;Lu=J4B4zs0;2^@DMg5wgUmb-P9<7t-9oqG}YKIMq2 ztQ%>{xo9Fru110sG4>=AGFs(nrp4=23fplrHPP;zr^PQ+7|EJGD?-oP6gliU^rh9S zneovcMn5`YK=VZqEWz;K7=S<>ii?boyeuv0*RU5w_j3m{v9}(>UVs$-D5aZIBzGNh_W~t8tPODy9%J zp>Vl8wMoJsz0?uZs2@16Dd5Ohw4{TNievEeJ(ig4W_xGhIJZXBySL`IYCO8^GVElI zj@FbO$&wyP`O9-dCLmU8^NyOkq>t@agoMyG)e>N#r&%q`uqoZ}xon%E!*Fk8dwFTQ zh(dn(aJ%(>`_t$7(x(+)yq#5m(U!(erQFV@`Oa4Awr!D-Qh&Sisl4mANpTe!feK!i zFg^aqF^7d6hy9&il>S_GZK7Bv<5Tx?2YQMLQH5mcSV^v2g#`W3cl>(w9f5_LgYS&L zQ+I~EZVrDl4&&z!VBb@sl`OtUU!%>d7RrlWXpNp2O!*9&V8Tc2%Rus|)W6v>;8#sU zK%e$oX%H^RsO*!#NmzH$O2jYlSxsd4mH*eHdpik`+iALkiMjvTbos)x0MTp(=in%7 zfBzlkv7Fh-)BdKS*}B`oxv5!!?g5}@|FY8Tx)JjtDd{FSsTL6i0|2OhBLL9=Z|grQ z1)GmH9u{6U)=*1-sOv{(hmST2O7dQ=uFjquR<14pwzq8nD0mDQ^R{kpZjY{>CUviI zM=c4)d{Ky>8v1gyyScr)xoMg@#1p;55w*k?wagy1w7I#pyScHrb=cCse7v)lKeEFW zwZs{H(>*pnv$(pof3&r=vb<7URD8Da zWqobq?DSMbLW_!qi{et?thc5Q_S65bDEOog=^q!xd^(2^! zy!89SRc@Nx_C5;VRU7K6iv9ib_wV1=+~fo>2muuV0fL5XDMme29QDxW|9dR_X*}a` zFwj_6J;qET*-G|pQ1#sBBF{llqe2*CBKmevlU3PIy$)*@j1R7yw>DHy-IjZ+%c=To z*RFgIHk6GKYIC2boJB|*qd-b^>2Z!Baxs~1ITJ+^BnmN0whRKoQVt@CSe3);^S0sFF;C-wYcx>Q&tY>|!V|{F3e`;V0jn@cF z)bNaX@0Fn8mGJ)OM`k!2{=bj-|DXT26F`9jfGFgOEl?N$1&_sKx}|hH28UL;P_eb_ za{@81r?*p9# zw!(+h&Gji*y0)2vwV$^9<+mL3Xy&tA>uiU!Jo_p`YcK?>V^p8&4InA&zGzrob4w@%R*JIl>n zU7i;^-E`%GXlWcR0byoSmtA{RiXR#j!^xU*ju{M_dhPm@t?TrvYUx|2?#M_y_13r4j)RW@^_2uxq-VX#9((S& zylNy)KJP|ZPWx{dWqu%XC->;J#tm@y3q=ze@aGz8y zw`Pfsi$6*6jeFg!$t6*e zvw>UVCC_{pl{fA!fwnA)=VCG9Xjv_^r=k{UqCEWnG_MUY{Uz6+l3f3ERe^Lpm?%4w zJ#fSyVFhhl*l@5xt#^qyJ7xZ{}6S73%q=^+5joj@|qG}-FhmS~-~1EiA#iA|=^(`v^5rF-t% zx`$W^3hy=?%amUYG^Pjy*l;lV(lYVKhamMdnTjIdNk^Q1V=BJZY1)7}8*1}b9z^z-NUgiscuxH44qG^5#zl7$`*T_eS zu$5uy(tZz$#dH`GK{#zqqPzqo@^qC2WOtnFoci9nJlos^t|Sog*VOYT`Kzar9?FC zcKw-i@n{!z#AKKMd~NvfiM|QwW}}KxDUqfuJGe>{hVrXo>S;kBwzX{^2laya7YYw6 zm()et|A1-&t&GW^p|FG>bv!(@7&&Ql+A_dg))no?$j#x z1XKV0$JvY$u$?9K9Dw6RFS4gz8*(qYJSbdD~3H}5sb zRyKpTLafVe#C5%ocP7!=cI%<)ChL-aoKrpvAZ8?NR_=jx_1*TqL6f|*4htHE;rguO z?kP$_c9ffjH1^I{+WNaY>wPHl*GF@zbmp_#LwcfV55<#&H(H>W`eIFwjx@BHy3fyz zz@#hP0`F&AewX~!y}x|8l^J zpqD1R31n5L9D?0n_D#mbVHO*JzzR9}v&?>^7MnEdt+zW; zNprh;1Hg&#>Oc_!MRk`1c$g}^XAW3Qxz+A2M!l72A4os@_|oV5 z@79Il*8x2Uw9~>1M8O%AJM1T3Er3079eFn*%{m_jAiwMGE&x#rZ(+}4`v0cJM+}22 z`VJTLeeb&MCd)KMG=0%q+xCI=-3)jYO!co(Ie~?!JoGvDZx7%@@PVKIt`dmJ87Xk? zQ7=$`zW&iaOLP?rAxh!}Mwq7AaB96KWx@+A#DA8`8|J^b(^Y#NF@~u6!chF|>T+;S z1p_eCh&HACFoAB2Rbp+&T2oaNCVJX&1hNZ!{vB(s$;O(CTh|A1-I;x)Z?#RS3JH}RrJ z6S5!eVZ?r!J;{YP^M*ZKJKE`&AE_rjl?EM(t)7a3RU0mBMJP!=Jf_kop~o*`rzgqF zmn$R+7cZ6RhpxATP$G)HO)N59@Px55Qp}}v(z-#+hlj|A@Fd@jq=PO0KRqdrK3r7y zWH*(uKsRQHeY+7(e#wK3E>qU&bc7hW@I;n>y zA3lIi7=qms5M?jGOmD+6LmNxYyPi$E59AnrA^*M{|Ft51-8bGOFMhE*XeTnrY9{{o zQT!_~zTYm0T-Z+5FtZIMQ-wBD{>iKVBG%O+Og+=SW8FUG#pls7P17>Px-#wHBqNwu zreZwFYn#ufSMPgA6v0nIs0NWk2N4!+bVyv7zJLQ;IkU{Koc{=XV{0>@_(_64v)>Ws z_~YhDf6H&))+<|9Q`&}b3i^4b0UI(4&T}n$CcGDF3`9|*#NzTvYV+$2qqu+Nemluc zG?Z@1Q|mel)QA>vl_G11Wb*%AAk~w~Myp{0kFl(y;hl%zW%!X}ARCN#sVvJoJNgt( z=M}z87iwP=p79nD(HDStJxI>jxATCg<{%FQ;BQONP+qD|HtqR#GGVIVX{q@`t%Ism zyd7$`gF`9GL(r~Wv43pwMR_s7=VB>;yZhDHu-1Z;8k_`TKwP>!TA$>fCxvoI`K%CVTFCpeqD4(2L7vl**yZ6?9o-_bYwc zN~;@z!r3rrTnGBDu5je7nQtYX&qtH5<}_PHB)~5co2tHJJyb)u9+%3vp2x%N z!=n(%z?=VhhFiFNiN2dlLN9O`a{p;r)w@z>atcT?vPdz?G4QMJ`J)$D9T3wcAGcLo zt`Hkq$r0U3$5+j)U8deYQF(`2kKI+?4{Ed{g~g+$LjyFkjMVzj@|?Uye&DOCc~?W0 zi_F_|uJFpU^+MxV8l8P|W%cXvHX08|YtguCcLH)yARse55IZuvejl;7W0OIC^5Lc5 z##U3zAJ#R}`Z+@wUv8spXJe6U^OrbZx?V@S%vJ`&3eQIfmnZErnA?Z61u;S8T12U> zkD=K}DW0YI%%+v-Z^kmS89ux|ll;2&r4N$nk2fOH(4Q`o>vi-PL8f zXnXW%L}hC2$g9^9?WFI>lDv_?n^D7> zUA^0@sAI2*oSw8LxT$F*(IE`RE!FwjDhaIb=QO-)x{g1074qfq2U>WDG9s@MB9;(S zC*VHvTL%eLn>&@CC>2^6bw#N341+q63_45KdoCh+GXLm#sibzN3N*v({m!4-LPk!f*YI>tSdLJKV(k7Xm_d-& z|4Gk(h^7zH-{UDiPznFpe~vIjI;shVrux!1U_zXpGxfMbe25A|G zPE}$t~Rn^0)%v6Ri&09Q_F}SmmbLtU-gU&n@8*0Kd_no zIcr7AC-Q#s{RVeTmSL@vLy4?JlL|G?Et=!C3mo5z7}nbwRz{wjdzg~`HWS_eX@T_8 z5mQPy^+HCOI5i~<@@sjx$In1=RMz84vEz9S3L%3pZ_NHOhHikwEpAzP_8s;c^7iftV2_6=l=$9a2^8aRCQ8lNrM~4LO zX{*WIhyj(Psbp-bctKZ_E8o4LLUb9r25!#T9*NnTr5{(%vvy)iSJD<_P?zZKma3?S zs9_)!xEpBGG8H>@vBb_yNi2Zf$oe`6qDdYHtOlGVE^tA_MbpG_KbqmZ5#KH+Hmkm2ih)Lsy<-&$F1;mLR;?BP5l0@k3 zvgv9H@oe1mUD)&wh6G}61-n4VQVE$fK+Gi|))5f9qb8>;HVE|GXSGTZPJQ?8yVjK5piAkVBAi8Mc04>+$8VTGU zNR_%=Y&aw0Iip>~kiS=0m>5+J-1|@j;gtmQYk&nbz{qX@K>%3jaO-m6fIzCdWLD>j zXpPk!06Z9ZL2y1JnZuT4E`3<;PTKvOSi|O`gRpPN6-?NT24Xee6UG4x+<~AaU}P=; zYsud0{#Pmy!eC##%)b+jJ|pKn%h$P{Rx%DsTc++oQ*9Z<~tA=3Zx4G@U(#b79FEOwmmMtLP`_x+ljceCg%#wnC(7^tPo)=8!i&CA-V)MpJs@(0gJm(N2!L12^@#M~E=A&_Wz$VDdmfWyMM z;=x7ezl&6ki*)hJD6>m6O%O*5_~*^3FaZ3Pa}$AnLxzFhl-Ws10CItVf_IR(kC(B@ zmn}mVhwC{rJW{8Z_aB%v@r9|5 z&6eYrS^%hIxfq}V3K+q-dc~B-w={IA_o0oi7^zYYJ2lAC{y`u~Q{lX;< z)F*kn%l5kK`5UZ@2ZLq}w}c+2iMKfG2bY^zU>@kz?!gUuGgvnS%bneYjDh?MpZN1zr$~m%y`2kQ?;)>1; z#KmZ*=^~H)y6g4=5qmSD=uhL1KcN)Yt(<@D-~aW1<1}(Wn$%3$}Bf_OaTR-Q4Haiz2>Q6EV0rj**vXp$_c1Y$w(Y2Py`~s3kMgBS{5mm z1_VV(JsgdWrIE&mx~-0Z&4UMA0M&qs%Jt@7SXrh;&-s zt|t0T^oQEJ-MWm%cYixP7e&z#+BDMOObrVfazqhs%hHf2MS*#~RW}(jSj$lqwhFIH zNrZ9*0D&wh7YZbZL&u2Puw^;|=wq9QMN@=BsTESOoYyp=t+dMF*rWg{7(_nyChR-Y zF$Vxw2*wmq-ba%%&+KX`3B-7lPlu(*|Kb?9pXcTL@;J-p)X=asfL#w*P-c}J+>6v6 z{tu~Qlf!ovZG^`bd6nbq*du+z2P8yr?pH-3Rs*gu5|v-gQ6wSuAEK~7HXLPeOz?GJ zdiJbEzgM|7pIAnT2S!px8?}CpVKY+_#g{Y>LnN`rDS@JzFU&{bD@&HHY3nBona8tY z?UH!Nw%!mnR>d6XxOmjbOS?HW$EH`-rOr)En zOO>bg;W`WNH? z6FqXH)ttN>=DIf|1nYZ*Ujz}U7{YC+3 z>WU-$MqrY@)CUBCAnl2rcqBzIwEjSV<5psaBI}8I1aZFET?EuDIjqys9%*$R@m?NFinI>q`K&s zARTf_CcLtn!HeG6yh_a`p1-x}ZYIT)Cha7=9<=GN37M3T?vvA~j~QL;6g1J0g6ii| z?HB|BOkG+?6vXcxyd)+5A|8hPR?z_n0m2c_MiALhOyx9S5qjII$ZSjuZ*lh_(uR-7 zywfnGkK;U9V(^C83g>M_k)Aee4tqKfu_WS1MW%D z=-M7NiuonD>KKr*720m=vY7d-c-S5?d=Il{F7Z;(fyI~A?LTo4R4NXL(l zdH>#lPD3s)o(_Ta0!P(mX+IXDy{dflGEuc-8=tte{iNu-eUX#$=jqAt?oK6Cb(H?b zTa*a7)=Je`VYQa0CI%=D5E&N=LU2PY#*XHS^cH0}C_`t5*up}PjQ0M#rb_x0H7h@m z9!uY6P3)#AdR6vEV408f;ipQWD(B}L8r^%+NJ*lbEUA8YXrLw}slq^0w0bKFhJgLx zQk<;x+iZkW6O75zu>?l^*i46Dn9NJ@#Ja2JU_}WFswESdZEq9@cbQz_F-1w6)=ha6mWe7U zVkUu3TqPAMX}v@ofF7lAe-zEuT&~Rgo>~Zp$B|CsG<=#9k#i|=k}goAl)5uh-7FIk zn+w419>)asWZdW=g}BAHi+!7LdGC?lSR-DM+QPp2ac14vyK~*-Z0x5*`&bU_pUXJe z2Kr~5S==&Qg&G>>?%pKjTV}zFJwhd4_XE>3KbdGmbd2xihMQqyS|uy$k;g!|@&>rr z{P7?^ER4uPGU7|P0HB7_BTh}miY`WfW90Q-@$7wCK)rEJC#69614??mce^y+CC_*1 zk*xghysGGuS_n9RFa)T11kjD}euq#7O}#(O74f61u-KyuHdb%^r=`*~v#CnPcK{wg zDNN@Ul3?|2FyQ4S7L*+EAseQ1nuUT>h6ScP1R!bp0&87R`C{kPkVzAO9KDQ~-9%3cO(RW2(PaGKEHlaQ>L_7zyPCKxlPf>R%JIW(lkbVuMU19J@AL_!uQ zT&Lksa%uz?Ksfqg|0Pu6RTdogwVt_hc7e-)>Bctks&wyVRh@2&;S0SI-5~)k&!1U#b~x-14Ri zhrg3Lq%*rud)555ge3RAk$&3C;{Ex1ab#6NNFHSmW|bLFKR&C~jeoHlbob)O&ak8( z19E(>G@XT2-<6Yp9yM3)8FZdpRhaf`&oDqIiqa{VTjDl_qML2vFe*ba7Y$tucNUI_ z$^!}Fcz)xNR+CrV7vI~Q(Ty`>mG0d4>dwu(TY>p@ESc9zh!H38H+CQnXhE zk(r7(NPax0eQUyH+Yf{0Fo_*E4JFAiQ8cjTV!CdoFXeg~&jj0Dc@v5iZ}uo;jp=YC z4K?S?awi9hgL0*0ZiU%h><-vbI?70m+((|;MH;x$D=5*HEV$=peJ@v+_E%T6+$^>c z>#e(8A6k66CZ})@!822B`HzTq0osdnBk6&Pk0?f~$yj@yK&A~!3ilOJCL2I_`aK=evrqRyC*P8y4#t?Nv=}WZLyoIo|zxw?wR& zG`#ntxWLw%L0iikkAK82WTzP&mRwBVd3C>252}Z z@?gfiJ&5&LvGoW}i0sr_AW*7VyDOj6AoZ6KE2&VWRFgC-A=Ee2IbiYAoEr7=)``zM zl2S&GzP)BpZ~atvtUw0Wkk}FO*}BliRMPsiL=A}hg~J!HTAvWebT-u*Mn&&8>cw&T zi(B%q@|yfb8%f7Ou`V3cX;S4&xVU2Gsj?p#@x;DqAGVJdKW4i4-&KTQCL*UgW07nK&U9`8RF+=mN zY-LZFinR@C@pgvxO$ng6rYwh>*1(Ha9xMO@m(MyjHpkW5SJVFP3dB%c<7&- z1kW0Yu^|hh<(~xVC3?};%)TpBde^e!q5GA4W*u+8yTA`VFY9Di{FilYUVG*x>r+j~ z+i12jjZHOTqpcx0GY7rGI_}E)5M(Mds?IC#`lM&m*5kN4Uguu>qXXud?Dg7kzK4&vRmFZ>$8&X)*r##*PC z7vyJbhylu`LBw`;#**?cr_d$7VMk8E)hn_TKObsQs(1i~+8^93qJW zlk%GmWKYG3wFY7_M3}K(+LZi{2bL7jCDCjmx)FVvqT4+sU+hTCeQ<8QU{3{yL)1XU zx!+cMCU9fgT3bBUct>IbAUwLKe9?kZuB)ALcgmv7p`z#RSB-wDXU#9C(Gfb%W7B&C z!B5zc(_WPJMgXjEm!4rE`dJFe?9427R>(}2{>?cYi^yedRo!3_*XX2TP$qnO_tlQ= z>1L75qHtZK#U8KTY$Ph*5|7Y=jpo(?xg|mSH_o~1TdJn&?5a8Tvm2CX4+oB^vp|yN$#s%=xg*v#Mx9iH3drOZyH#rBNLqMfJ z6CF6WM|&%Z|BRnGdmNCtVH%V&=kaPFV~_XeKV%xwQ!Pa0Yw2uu9YnQbDKTdzC828t zXNln#bknBsImRl2UL=aeo2ZNFHU$=L7QgkpZkLX4nFJCfB)5|~&WmR&m28L#0lMoo zx2i8=f0KuQ%sHcgsYc=yJ!`7a#pTdf*BytZmSo$OpNSPDJ$MMPPrNd;QEG(_%|5T` z5a0C8LVyynpbW$&pxJE|Z>X-I6r?oe`RZWl-k#+HC6y zz31RQyxT_*HgXzc6}a(6KK4~JBJg6Jv7C>NWU~J$2T%-BYT0?;=hfu1m5~?HZ)9lx z(~?)Z^)+oq`9j~~?fP}hLDg;BlqZzx+gU%#v9f#))9qAi#k5rA zS@t(M5cQm`^juU5qj^E$e@_SdojrbIR|bLnpZ;^5R3AZvm2!>l4qgZx0`qJag3ep`xkMl<@F!^NhuR z)j8P09i5$O0}jvs)D%fw)iSwn5a4%v>(y1+5r>60Xiz?!MWli7B@kZK9BuO~CWQ3D z0tm(AiYM#O&9Nl-T-b*Kg+i7@F-!AvF`Q)8`&U^w`OWm?!&l1=G+Uv*{CO!YSW!|K zvbMMQ*C+YW`G9Cdg{vj*vpy5bf z#S5s&y5M-U)CKRTlW|K|zuoSOiBkD>b+$7~Xke*WTJYM!(slg#yOm3Ke!RMUZs}GB zZpa`ypR#;YJh~)#ncKWnvbG2;=7^)&(tV&ff0+UtmZZUCDC|O`YPSg*%ERZ2<@M#^ zg8uCezKPq-Vy~#u_Z{R0*CM^QeuvELfY>|GtXJVhP0BHno~)92?gbUq3)v0VYu-KT zdvbR!?CHpBgywnVwbiB2!^yh)UjTVniePgbZ`tTF0>W1gL-Z-}FFS7l))etPgDL8g zo_3U@23DaL$a!s=`(KH>yL%oU+#Y)#{{Z28*aEv=(PHc1Pad4=(;kftU70Y;+3cP8 zfD;=puUz21@$K?gWYrn4clflw71v!pHzYlV_>*oxsSx$qgat(7-;P{e{o zh-IMe4#4K1L2KC~=Ulc5cRv7MRkeLnmUDXYQ;ZY360oEecQS$1qYLv;6he}6Ope7+ zV)fi-!E?WA8DpmDrZ+Bm(iYjHGjTU8$bR6 z%pcjG8z9pMTK-tcbf3xEoAky?<;k@G3u&c}_px&e1bfWjxq*c`=lPxYW+jS0{ZxqI z{J1V#3{zc8QkronRcy75QZ7qf{RCrS0Kw1^Yw3N7781Bi0WX;%L}4S=pWT%!llyZ; zfVJXVZ!ddg>OH){SZ~=(l*E0vykE&TNZNTl{*4u+$d@$Rx|@&772)FcT}IBwQrpJ?F67(3IlymEfF6t&ogtxwu$*cQ*SNR=%5QDk6`b8*p#98cj-R$wZ z>shDRN=#NAABxy_xcI%R;H)3$@vZPzOZ(4+sxjOfqrm3pU7_p0i`?S2lIW5gF#m3H z(4&IjV_nyGURtPRh56Uj#Y(;4t$wy_xP2v6Vg1iY6<^x_tYI3u@|$3%me!9;xtG2% z2OBpGA7J^Z$9B1;Snf`}aAn+l;Dl^3Ul_NtH{SOcK}m8eN*yB+EA$(*Szqo)Vc zNB-t($NzhB;NLU(+${q0)8)Gnm(O^d%mO`}laK#g+5Dhh6%WdhgHIp$bM?w*{@qRL z&0w*UH(5D<`Y$d#jP0E|dVhfL_cVV^kvJQgk1nyw{TXVOJt3$nd4L7S3?1A3ohFPL z?Ht=R_Q0?lgN`9N{m%Nim5s=uP*kF4APO*$DJY>6-M7Xb%pvY@X%GJzXeO=|IiFLa zgeoqQ4{9Q)P9X`>GM1}Q*Ly28?Le?uYed~d9`LzFt5 z4~Xsd87<}}!#x`&xbMW`wKsD!Q@+=vXRqY5Gw+72)MSa~UezkkP)1!ST6L|=Sf zSuzZSp)m?uCj3~K!gd&%s^!Vw)D9j!ElK9mVJwtzq5#@yk^=@~#l>?%wW>GXWT(0I z#O!sB8GP8W)j)gvF7)A9-MD>>I5Tu1MG9}qIlj3Zoq4HD_j$hgux*)wgUglI@u+;F zXw2v4T}eh)m2MB7B<@+8s%y!wU)~+qdZ@=30(5%@Jnc)r#)5os!^Vti+?CN zBN2_eZ}6C~H-}(`)!2jpm~hnxZx$-j+L?h?WzxaZBAq~ZVXl?8Kt)zD1E}5$@Q{M4 zTJK~e+T0X!}Aa8TsFz(HutrgPeAN>m@$qHBL1cKPT_Tpr~})> z2IhH@)$G`0vEajgCt(c|D^t`OSh65dw}saE;M3XX-Pcu6J7IO{;Iaq>I!U^nenJ~vKCfj%R^DCZ9fD4-vkVHg%7nRk?- z&UZ)}&DWzJrymu3GxC*|xu6>7%*Au1BT$@B$@)+R&TNBQ*I<~n2HzUf`CdGLHQnuf z&PK~gAxlWW?LsTg(Lv!n&imD00j%sIvjVO?Lol~CeYPg=HHY_9@k%+o89ON5kxw|J z6wBuk4BbjH#SSt{vcx@%-ez{W1Z9Vs9XRiE)o)I*{489I5PK|Go(8c{qy>GmQ#j>L zPf(oXw3<6z_`_iCliz9I_@fov0dW(zi2)&j zznKl7XuYw6BBJDBnD8F>uqe*y>+3%_=gin45$drp9jtEC-ysp*zR51^k}=_!KAUjD6>&MESzxHsJn>@}1RLzwX>s*Wk8;b^EtIcOJwp6fRK2D6q3|IA z45gHnLCB8#YUdEg%mf9rI4t}!fS~D7GDhLSN^=P&KN zANJ3>i<`a_4*hz&i={W3Q^555rbd-4=44q`);Ian1_ZTKY<}DHoVq(o~hCUgTI!f2P=%^*o;5j+~p2U#yD{!xZK|G(=4)z+$ByX3Q&tB7cIM1X{0H zSjMIFGrU~xX21w@Tugx0;Fjbhm;LTTc8K$1u**NhL7x7Nh%W5P-Xaj zXaf*3bX2Sc&#KVFS&}&-&^fLaEbHPRc$#l_yPqMF7b}3@;B*hRvc>KcXP1^Yu-0$;@{*RkPL@ zyLvdG-mdAo$w9kkPXmOJ$gFp9*HxnHY>bb`!UXp+;a4s+>-%3Cyi@n{+K;>#v$+Sw zpGThGSPNP8hv`-gLSfj`$Fe-} zbkOy-Gg6a|;jC?`Wl4-yT(PNVrBPa17aF{=nzSoESV3t% zj;<1)E)lq(yA-L=S@B_~wBiF`Qb$3()EZ8AYPhEt8W)IPuX&}jK*vf=_UUxjKbs?v z=IH2`SsxoCh-}JJyuwj1AyxN~1NH@?#_3;N$>W0g%=R0K8K#LRmMqAF6f5mS5EO24 zgDGTk{b4u3g*>{+m*s_<3N%LOqr7b0UQlSzgH4?AE|Y|RKy3dI;ZDk+xWz6Pd4)&& z$+q%acZ?Cky9m|NNgQYyut#c+u$(9N3Xofd5Jp_P-H*EGatQsqE_!VEugX5i4Zbe8 zX*Vd*$wU~HGtnwc7STfb)XrTd*gz-D$v{A0y3OIq(}KedKkKB@%c_%pTaKS_kstD9lNeZ}aW-F6(D7yDSy^v$_ zps_h1dm@mGRxf4^DdXXJ-4?274W*y`vgNM#lj8r5K}dtOH}hv-+WO4o6ngb(?0&SR zQ+~{`W2)?ZeAP?oI||B|#oJ9#ayS;=nr1E|elGRdJq9+W^V)vD&MeG)NHytqFFs)_ z%(?8>2dUY#gmZU3zqgKhRKzp-vXoBY3*`RF|G^+7$4bNBWL_4vR{7BG<}HdpT1k(+f=Q!vvg@ywT;A82W5p~Fl8sl{sharmLQ zA**>vXmtO6+!)@|2Vacx`y}Q*>i%<*%m2q!yAK`B1pbuJ;pB0x`&`ct6Q{jw`0AN2 z{~|u#b{t8X8}ag8eT5*-F)Gr*2n`tt3zis(A;sr?{>NNW1(&mi1T(p3oVTWf-@aaX zCAVJZTYaI{ADR_alpVXli3+v?x4R``okU&UlDg+c82ANc|Ai#KC$f@)aE3@PcY755 z?k?ZBO-|HZ0beOt)tS_@mc-8i68%ple*2LPURh@PKUKDZn*i;4Lnnm_wq4vJiLZWJ zD#A7aBE*o;n~|F5d7Wi#iAV!dFK4qFWIDmD+hz0>SscJSH}m+hMXAi!{cju?4_llO zpC^E-F_6#YB~t#>Z!2_8p(zl~6DPDrhZS%?_aYVKPAPoOa+R%6h@X)T{u zzo&!K`n56fYS5QoN|q);hbEuwvGg{ZowMJ7HXMLD2iM2LlNK()`J98P+6U!At5;Xv zo4l)GsRvz>RcyD%_dgaDCNU~ZgiwkQ0RlU5HFC9}!*o-Zh|d=5ox^W=)l}}Dhjam} zQnhJ-&<9t$!)^2Qfv*C;jNA}+05i#HV4Pb&DH&P}cwD0kj&gY%I%#c%x4iX+=i9w*u_y@ThCI5FkiSnR(Ihlea85DDt=;upM z4cONfVsb}9lHKG}UJ4JM{JL_Eu6ACs?L&~+RzRp6rfP5C!xux+?~pzs1<7ZJ5u{VT zRfz6dFDspbVU2n#xdpiimDH4Ai^XZLHIHZlCf3;^PTf z+QKQ~R6#U@K$~ySnm=Zro2!KY`_;cl|hGr`_B>SVP*(KUa^fe5k*WY!E6e$6}&w>-BlYwcU) zSD)9nEl%_t$A)v#e>YT=tD0@I&N)c19Uypa^Pm}{64%Nfl}CQ~<$JcJh_s|jhUdMT z4)sih1GEyz%h3$feVHpF^gU8g@sSoH%c`F;?XACj11-$435-%!u5`=wWYBy>nTI zd~M35nqL+#MN1txw|+;kVC{W8-zoM|$(xn& z%fI$$AX$dnSdVl1jB&HrpMoEIof2kEL*NKifBt-EQH;xz8RBKhX-wHJN*Pg3_SNtX z(R1F>=z%H|E<3}_qVil;R$usmjHQXnrTu;@y;4znf>B?xG+I@LZa6|kf)U02D?;tX zD{o(y{ikNtDFIbQ2~#0q2og@F3n$*cO}fXxfw$F*lq-@bcYyvOW(Jxz~?{3;*JAtuvkVx?H1}Vfz1{S?sGoZRv#~{~^8<)i3$PDNI zY=*mEo;Tr-_tBk~=@%F61*_E2$r16T>UgIbY&+LQ=C!VNfjf`b?pEwG2}%uU8$Pj|QaS+<|}Cuz~NNty3S`3v_1TkJsb z$Szp`eRD$M-2`pcHa6P9BW2}?@Ejza>1PzW_(zQ;F|K^F2X*l&@SqdL5H!t;^|`o7h>^?t4kdO&CnB6+Tn(J*ulfTBX^UV^zv>zTPl zixvij{!x;ffTYN&2Yf<4eVrS6xz|j~3@Urcfx?_UWJxUF6FRgnEZQS*s&ZW}*y|hw zhlQ31Kjn4w>vU=^6i(|1NL26A4F$f%pT6_m`+SS<-7F;*i<}7he`NXp)F)~s08ai< z7oOOmSQV3RZ*#QdBdZS_w2)edgn+x7+ih4B`j?&GxwDUuzU!U3_M*wvUTmc zhD5mU{=TOk-CBF}eSCBp9_yPpCi^JCudZAr7Z~N9G4e+l2p3G)$sfgL0-xs-^xwXv zN^}M`0QhJy_S&|3n@S8%eFJxKYZ+H z9Bbh67rEf?kEI4q4t_b*FpY2LN{xqbZ?LeP&>8*YD=!0&wBtx7_mqZ^+b#O}yWFX{ikc_%p;O-lCb(rg)$rD!FrkdJ2}K}z zE|h)>X$F@?w~b+7XsH*vu}5A@$eMhV?9@$!nf>g(3Baw`^fHAd+mG!(bC63u8&J9G zzbB60#f~wEbB1z@*H4z|v`WLK{r9$>;az4kNPn5uFGSANa1oFJW@ zeT9p;X9AT6D4+~K*io&$%Vviti46x@g-27Y)AELkJ|3V_o)lVK%A`{(myy8uXQL}v z3&zp$|Ei2nB%SOAc%0FxKnruyNAgrMy3s<}c43G&xMoM9 z>PNN^*bNle8Pp-Ev|l>(|2xEoA_yNd>UQs6BpE+#W}LSWo;C5-rMX&&(R@qZta306nHP>XmfUD6Bs|HeC zcL=-@N=2&Hn;WqlhH?{BAZD4R$a_ZK9P{ma5JNOE%A^e_qRZtT*c1@r6t^oX8ZFn!CfN@34O0=gk{giQch zG*3=IfvPX&#j!>E4?YC^B8M&cJCEw1C+Z0v}+B23Ff>?R6!!jRGUTpR}8nNntfQ+7(Hc_6Ze=xH$V5BqPQ)-)41`D*qGlx$6mtk{G5lyi93yQFWi-x=QO|B1|=XV zdia^LMnvicTE=z_M2xC6+IKH`-nJ3wRNQPFp+6-|@q~Z~GvVFH2sUn3WwE`PTge<8 zM(Zs8pgsOgnowak(0CaRUd7rV{3%T_b5te&9TII8zEzJ9FA7B1rvx7KHRpcI zmUc3V(=!v0%*4+|zgGu{m7U@*RZfVfW~i4l74wac54B$3dtB&&p<UNQeo0G z;Ivkckg>(VPKoD0vd#O>r?#Tx*-UVVps2Yu?Rh^rJb*1kpe)k(35r8`&#&q8P>ns$ z;^0DrJ$X5|37#6W3cIe@9GdkqtB2P<7Gr0Lr$T`_l-lG$ib5XLh}JH4(voRC1)+V& zsq+++o)(CggJ#k=lWbB81+|$A67-Oi|7JM!R~SYR7s^mep}<8aWl1W8ELsjAC^%L9 zO>PZ9bH{hnD3U^A$}->5cctk|o=5A@Q9Joap;X#wlpOOiL!BY;=4)=fxN_wvf~#)I zXA!#r1C1ty=n!06dhEbW1KY$(p>o6=7!J2z-AR%L(dJ1k4z5`~) zMX7Nam@CeYBxicgrCkdP2w*b)<*A-kiXB62@i-@b>rwzPz|lb+#JOo9j;HK^OVi9S z3*R!u?VqB2(69s@pv9*SN;ctwIV#NZxAUyu?`T@(Kp$l)iAf|!LOOj9N{9>sz9t;Crob3m&7#X zbQm|rx`<~od)9C;;cJtcC*MK{lg-7IaT{_?X1UY7^oaN{?Khqe;!`NC2yqr#aR@hrI>X+20fDg#g zS_x{536G(#wqDvI{xHK zFfqYg{O@?ss#4WUTxdm@@_YZ-pAar-|L0bS1yKP z^yy)2C$(wm-lx?663!3v;ilyr6qFj_@~&;%2NQr5-kR&}QV$xgdL)~ynF68gImq+b zMnj3Cd;C*(C-OIPDwJc{sL)MFe3MI|hC3$6e5nu^#fZp=atUaVPvR3sT9=-J?##nTs_Nn)Lu^(0eD2;{s^;$WKOnN9&>X@b%IgVYezyl*~EFH(mjbRyd$&5 zyu%6cr}H2}Z4D+TUXoLMSRF^yhK1)T#sTik8kgy~ zw)WYj|H#KXu*LY8PMX$7osZiu!>3wJzHm_(8}f?mC1MbxD(s5?Q}RR9}Ykl#QN*1=#JDERH>i*<_NGIUsTK#)%_+sHtcGle&fY!O%@ z6BhO~nBsgm@I`$po9no>Mm?~IS84iMlDhh5YPndYQy^nvJPqIZbh)Lsq$Rom!Gyjq z;>sZ4QLW~qNM>)06V7`-2!~*Jj$9lCL5}(q+}UNlL(?kj^R?o$O)#k|8ThXs@Ne*_ zWN263B>G6h{^$#7qfAV*jc{UyLf03f07bOsi0IvcU${ra7b~Hooc_S<9&1~I))8ga zY2^z{!Dc#PdW~7C@nZ5lZk}Fg%S6N5JU;n=?TFAjQ#)NcV;P8^w~SLLAcOmY&k!0y|K%TeYlyjeksLDgJOF*8q4v9cQX2GK&OGMg!jkkj;@jF1Fx>#|k3%z?)yCb`}c^ zI>T-}mb$CnsdrCjS6NE~7qQqrQHt*lCSdv?%>}mGIz>*H4nxvWiA;b>M^48fzeL}) z%1ZP`p**nQ2ue+kGc6~ez|umm!w~I66>mksT$uGp>1%^_CG9Tt{c%bU;$34^)?>Il z(HfOe)?i?2 zU-YbB^vE`0PIlfm%@?G-6TAfpw*yKz1tC6jDH0OC#=n&L6~Dl`RAja80Zd*rFB>1P8n zT@8{TSa=!2x^v087)6OnGz)PnW+F55uHXV^w{7eBtyMWpY%)KivPZ#O?@v7J&>gn3 z^!J?x%IIv$dMstqb{GWLktw>kmQ6*L=g(*Ul6DY6(UOyZdq0LX1NfKwnpOxjB8^$FV6fN=_@ z;lfUuj#F)@S`n%57O{ytbu=cgXldmcB@8zu+TFZj%j-J8(X*4Ngt-Fn8coN8U*P+D zx};Vd&6S0hA>m-YzAyv}E|at4PS`qqisT^wjmx`3I47<^^Ruh?25nB%H64c(4m~P{ zqFeCYsr6lXslN9aG4=9iDv<`x7p}se3WBJlgS#ADj~_rc(>)%Fx-p*N9(=>K@^Sv% z`}|8ib~F+0d3fCLn9OcQH*;NlDh_6FsR_cwnt0Ex#)Z`mqW2|Ni${tPODp5+(`Ne0 z=xMr7#B#+uDvG=l$$dr`<6`*~q2$D9E*E2>>6cX^BCdeh1YXw0AS$EVe_TbnArYDL zur_^xM^iQ!U8VAx*%hsA3%yY7|cc_FT z&7Za!(W#!nBc9JCoX`FU7aN8bn`PE~@f6^o^)k@a){ix>TG*Dt?IHAQ=oOF*ZA-#- zzi<^zR*v{$ZXs#WJeZbrk=VG9?!^6ydmn>3o53(Tv2WA4{HkhYWo8$YUmK0|>z_A!0 zr1M&td+LQfFV(3a=?#SGAFXKoc+7rl^am3DX5nQIR z6i;N8D^lB!mQfKtp)F!scqzFzJ6C&)sDQr(<$Wm-j)}wn<_MoCxD(AiqgM@gb-^t zf=|*8BLY7Xz+UFP-sx`3xg1SI(T+l3&h=7f9ND*A%8+@sg%LM}d64Lwf? z-M_l0Sl}A{E#9!TZnpJIzesg|t8~5K4`FJ7y~wonr7mNUAv}`F#a2@aW1|!Q=-bGa z9Y~Hzy1(1f_h&8dSI2P5(H-A%4nOaZ$Djh&G!g*#t`?amkBqamfOGtTfJq)CP=8%pn{pfW;MW86^py14$6z{wAc&6U1X@q>_7l39 z0EXM4(av`(r@Ix?kyXzfP@EK1z;QSc8BIY(I(3^Na0bCsCkOUKkD>Z?5yce51`f5Q z361z`#?XO;4DEh7VyP~z`At(LHkS`YCVQaZJr5O*O-D;KPVe^<1HzP%=xmdKW2>CT( zo4IQ?y!|Qj_Dk*751@UZO}L={7{&)#9akj2_W0ZJd7C@)4*$)6`?I*A)YL zMuAAFM>m*WEJ=EC_V$DO_V=>*z2)@ZEv?IEDaX{VThsz*wdX9MzI``;tZco%b3Nnc z>Q3shT1XJi8%+^Q?D+TP5z}Y!)r*yX4|d#RB(@%nWg>#_W8n4ZzyIDmnY($mUvQPL zxR#dvkuLII8h#bP!$t6GN46KI(k%d|<^N5jUQsUay@(*v9A zbeqS|YPeSiOMX*!sK#u2B{@h|wFo1b67ZE)+NfxwU>OO&TB6kIBkzS=_KUmymL(H|&7?ZSQIF{Stv3K}mC?zc?x8kmK2X z5_<|?Y<|5zTB_{Yk#=MK-FT&b(2s&r-SE-IuquR1U-oHPIy96lbR1DEsaENKdv zVz$-_jI=pEoDemqMG{Jh`fpI&jhs;odu88RbSTj;wNnG~Y# z7oFw?Sb7{id^P7#c4o++zy1(lA*5xmfF?7YKoObb;H%F(Qa`w7`#ZKl<^kxx8&3ql zmfh9I4f=nbJza1=f>`_gh2)Mpjkjlagu9qxJj)G+iU-Rc4g&%S^meXg;;oftA3dm$jLsO|ujGMS&dT?x384-LRI8aC(! z-w;|no4ubRh&383{bbC(tH~gST0l3Wu(pyDPg&YVQ!f*b(LCXml78rzzPBfK)?*EQ zsSQ>vh|?ej*WsCqn9BewfrG>-b=%SD{qL{P7z8>jY-&E^lIb09v0^jh`28Y&(Pu{$ zv$Yzio@wwlZ=7l$qYoZM!x~E~VscR+&pBbAcPtk=xeB`MO)TtNulr?nKh( zTe^?H$z{pOJz3nrh!%|PVpPVpqtywPCjCA!s(d;RApNCqfqS1QgHhwWkwIL4T)mIn z^@g>c(9<7A2iuPo2UuS2$-4-{2$xe6gMNNK`^DzZ?9D1MP}90Z)UN3gTvQ*bXZIEE z)6~2nkYdlbvVF>FK$$}vXA#G(QJ*XMJ9&#ei-skyKibpExv&9On+s2qF+Y>{Q-${3 zvL5n|%d+-~@%1&w``zPqG4Pty9Eqs*x0YhZ(r%m*Q!RP{6I8fyEA$8Bk9zOXSI0b3 zCyY;i+55BN7c-FwRU}oeh26ephU=CfpJGo5h**&S6Ga!mLB>Yp^ui*yW4p08r#WBv^MFLzi4PYY40SMq z-kn*kCWxa~utjcuA9A+#Q?d}&+*gX^fSkOL5BM~+T=_XTT*^LN!8)8xoa+={w7epy z=EK0M#O_^g{gio0N1l`(IBLGCT9QYSpP&O7ADB4go*W+5kIubvI~1u!^LaYdnWeb# z<>bM}avbvNee>Nc#N)FQFRb{N&dy;G&UAMBNRZsu;(M6vZib+gwdp;APF9g>eSxi( z$fIW*JV?oinl9Gd3783((FRCVR7aK*x<+Dlft)s4qC3aJ2)40AbqueFOxoqzZ_v5k zf%eiuJ*Hphy@IR&P<%+!x~DOZoH8lX-EMg-+`?iwZ_=uQfw4nszor)xy7icH6ov^B_pORQ?1ask^bdOfGo{)iO`1@he@hPE|OJ+x_%vmiI+|-nS^Cl}CL>(h+@$qUVP-;4sW zs@7m+lU_!MP;`6ar4p}4-prF(+#ZzEyIWJ3w*r%_4xoAgo*C4k~UDBB=!+j)rd1YXb*5w6yw`YT$_Gw~sKv8w^{Sr9}QbU6+JxXKRPWc!pC7Tkj7DB&&XhDInk` zpPlP$;b#vc5k|3WB`WQ@^&I!^N!27glP~atYje+N;;YRlA0=_Q%x^q$jVLR_!aR4! zh|95s8@L(oekGaVEv@l4yp-kUIB-+XfnLYjcgzSb?|O{Z<*>al$tRik#Hz313#}JZ zSE*KV5SQSILQ-d%(bmb1B^jOU{S?i zkzMKc$Ai?mtEZ#Y4PCo#7%U~6``-Jp%Jc8L#4)3yrI#+;;OptLNlJv^&($)}PyKgE z;hfCeHmBH(X_j}4x+jae<(v>%nZjYwM6Ms@IdYNTMEcT_uC*)tujGKVtrJ`eJ;0Y&8QnhE$?5IwM3`=31iJ~8 zt|tsQPYoloXc<+OTn9H_`+cA{omDx>!a0NwP>^4dqB(TtUdhI$-4xrkX9p9$j zU{xNN$iN2Q{6^T9JG4XY(1*{G7gA@9tQ)_~?X>DnXE`&xW+VjMU@U#zP47E#8Fv>U zg@vLK`gpE)My=29`$JfmVCK;+_GJp<+6!3A;OLg0^>x!9A3;S(-SOvPZHB#$PEye^ zWEdCzgbF*`OpNSK0@sr2-zOC#&<;)qX-5GWW!T>B`yZ1qXTtVA1ho^5G+`>MkFqt; zNOcaw2HJ)}Ff#&7Xvm9K8b!(u41O*bW)`G1?OCKRdW3^YbvigjOi^3|R+}Qu1;DS1kdQiX)&N2@)2_>*gC|D)(U{HcE5KYq4z%;Q+c zKKAC2y*kG{W`_`xj>!6;V--@JW$&3JS!K(rkm{Ucgb-0l)G;ceI-2TRouA*o@V?)V z`?~JydcB^nF%!br#6^G^{@mw+^{f0zOdYAJDoqi4^xN(xFn) z(M5vV9fm9Um~=7FGm9a$&d?vpQKH71ZROW==t z3KHhY9#sX|KMy%*rl`~d#Rh<{(PFdVr-q-O0~X5{0h7(?l)@fR9F8xXP!jGBlahv} z&&hQ6oKQZeNnMvot+L9&8lHM55f9)qz>tZjvJpT&4^CjzX!dz5I9b!$YAzpv%_*M< ze{xQvN>ig6e&PC75Kc?ud?xr+RuUmJw|PRQ^_!~Dnr7-8&y|4817j2UDLO{vydnQ6 zEC#H>@zexl7>k0&e_C)v6^>;bKp_y8ryvA1O1KiK01xqnA2DAjF7={*+Klla75FjT zm-ma0nHT8q!3vv2lSm*bY$}|XS|XZ}>7sbJBw4*DDH>a>8iGp3!Q9YrH z0wf?bfUFlWm*Ur5q%^9-kG9R&MuX{~>xVMKQZi2$!=wUWW^+!fj+cT1z)m>T!HqK) zmn1!kOIc+ybT(1CK`jDuJRcXHYRE@Vi8jMRkQ8m)npa?Cxsh`DVVC$(@7j0UIY}r; z13}X>HMi^zc<;ptFVyMIEloeIJTM0A0N_D`wks;$T{zwiJs`0uVS$?1V&msxD^!Se zo%lXf)p!7eC6-NOCmksT>C7pUPP>1*9hyM9tWC}E@}UAbG49=vWE@}7PZ&Kl74{ru z+s%lXgQ$`~4wPycW|9!2+Gq_7G=h6{lN7j(h93+x<|!Unh@K@}v$9ygMWa7J`h2ST zF$gTwKl4}}^fVXRe6HkV@!5En>$^AdI_qT&UP>nK1rCm=>I{ORe4;`bRs+snXUjo! zZ%r)ek{C&MCIV&KTI&!HpSu}vbF4hmvKEK|Yhxmv%M3kU%6yH|oHnGxl5nXcJ^}{p z+Xzs@fNcO!a|&3u8@zObmuH2QbXGcZoCBFUTZhmFIpqRuyFs<#3Z8r7CAcgnT$B|D z^iPe#yA4u80xoR;&q<5-JP_Jeqm+-`5m@8L?!g6uMfo$tw zHcX%u9j$26lKebJIk`o}2`pU$$%KBu^eXd^rsl+IZa@19mwNAre6j zj`Z?sFvE`*88-lZv#0&mP(c?9_QZfMB>_Pr;DAj_j*^7uoa*88F5fIVEQlQ{OyHKb zm|Aqzo9d>72Gmdf|1`P2HVd75fqokEib-mSr{XstPIond@KlY$->z3XU@`$5>c>F7 zqJY$+%eM~IqwKmtjm{-*OeO0&AG2=0c%)=`*v)S)xbhz|R$T1e%T5=ooVveT6=_?` z9ajRY8FnW(tI7spITv*1;-=n_dDW&B=$3_Zwa?CxOm+xcsiX@!Dn^`IW#?R(jlNH} z&F_k88%L&J(*`@wfpobL_s1YSv%f?f+|Cd$BHg}T>4sC*IZhV8K?C1WRgmltYf$e1 zweUa{5KRyq{9*r2j8SoxPNR`gL!z5Zghbb=pVb%7hc*HS6$$X=lqwgy6GZ~nTmI| z=u7CO7_)}UyvDDXl_x0Qe{PZ+pD*JEhUh_MyI8rMqaZr~REY^9oQGI|pu{ zEj1)QaE-scIS==TPWnF{a~1_VVioQj#luHHhoI<*mNsf-eoF{Mo77R6!@I0brF8m9 zBl0uKqN>zH2PK^b-v#Qvj(!|3z}A$3FMa@H(;jPupss5nsKrp=l_-U}F0>%4;k-b4O0EfwTd9=QuDj z0G5U>gJsm5C?>iKLImHQJ)sWoym8#G10oXbOZw(WjORlpT{;zHJ9#xHEn!^k?HnF4 zzaFJxhP|Kgr$**$dE34gpF^-?cfSQ2)Q}6H?*h#MP=)Rjx9Th3?nR*j6*$1j5)Q=b zDZJ;a_PJtltaXR}T**iq2t$@PsGlk-u~W^po3FZDr2~S!7rK`Y?)L@D4#8ZJ;d$H_!NgI?W*TP? z?pRz#Sq^7t_dRvi5G@GWX&r7|jZe=6=^|Yc{?vXrn)?|sLij$vP~S?RfH(3$ju;T# zeP!c3Sf4WT8{&lfB5vfdkhlRSa4uPVbbRXtxzzJ8UXHw`@kpN}?`8g6$VR5xG}%oP za*0Sm0Q|g#u2x-rti&(F&M!z4@GB{i=Jkr5E8(t_S(YrkMKj;b#Oq&adh9r`M#L^cnd3;?JK&?f6-!0kk;M# z(y0^AO==90rVI0~h(*v?=Uc`!h`$aHC~MkoydWwwxv6A@>IV%CwGWQEIWboWS(<$x zYg&2|ZTVlAZgi+u+xT~$OMj8!uJ^j+G*d|q(3T1-?H>4Z;Z631iPu3?L&7pq76u!-opl<(=SZ}=@odGSR#JxymZ1R7jfCH_nKz|vTGcOKZQ0ED zu)Nf)Zp{qdf7e$Mz4mWsCT>=%Faft)`PLcxVDux$sLtf@Gax?(oU{e;eKlclVu8bo zt9zHW9uFo^>Oq=n3Hp>1&%hekc8ZwTmwB_8nY%^DPq~q%!3af(eE{;h<(-(&>2y?X zK<9$fEnR+;3JGMa%{S`aRqXP3zDv4Hfnx;RR^NlEXP%N=c}>%hHYiD1X-l5&5VH|| zuE6uu7z4i?o_SpxNp?8zyTaqU(ETEg2&K>PIZ}4c?MZY?NQx#q8Rd-J|FWEmy5H+%16zA^Z##rZzI*1I1|)|{^&!h$i^WY1z? z*2Qn>E8vIf;GU(6KL>tUB0sn9`F)eC zSHGuP0hHzPv12;_Trfc2+LL{pXDjt#U9bsn4?fB zjeUP?oKHyqw3AMpxe>sDwLoN>EiYzNe#nROErZt6DKi0U5>>HM_vxh$?$`2g8=*a= z5UC%s?;w+ta91Mq>kpoIueSt|b>tQZb_s$6T4UfiERID-Na%;9%#rM~MP+Tv{Y4x2 z@}xyd=axj39gC##ndR9fst$!3dbOM$6{kWuT=Y_Q$@=MOIm1(c`74d%vuKlxH@CbO zBj=R~VVvUmeh93^>(W*>e+39C$RFN8emYU2LI@elOkN-LQoU8I+*vTn4i{FzzWv>? z#vTu$gRj3zS8@%0fElX+)29cWf5&J~-- zWv=uydHD_CNJ_T#Ae?5?z-1<=xhYgz9wV=^*@&v|jz6X!ZH&!a(>B{@=JZYQlpG}S zo5hakoDl&7F1JY3o=aqBT>nx!3Dp`$H?jq8%oXQZNE$;*oSBi3&Ra5u^CeD;U--vv zeZnbcKQP6*43?B1Z*h`!er#A@epdV-T7eQ2IWBiz+^AmMyM@&}aH_iX=GFWZm*%>Z zHmwZlA>>Aj-u-1zj&vBYjxKz$o4*bGw23+0qKU2pOAn-N>fTcJdMv7{fXEvq%trqQ z)lM7`Fp!Ax_wKq*A^|f#meM~?WNZ=biqr{c7Ja08ME@RR;J*ng!e!EW{wn#ahX_xt z7p+Ve=y#j&%^<}Rtd2;7Bql7k=Ili{j4~nB01^I5rNDa&Em^X;nni-DF`R9vDsyO~ z!^#c<&e1OBu=A`|4kVDa<&iYe1R=v0K?(AV#{2_qg9!U-5@;PNup=LutM%zExx@ms zMio&VGV1Y^+%}FE&`3Gp%u1c-k}x#5tF96pqc(j?E>ZQVlZxKIiH*FX75~9PDVh+q z5|&(g^Depc;6BTEnv-WeG-01FdUSW8#5tD)beHr;9t9psuESBlZEOz3WX*?~;k?UG zjZkg6xp2feoS%t-%JRwky- z%bT1TGw;rQdMv~30U^Q3li%fhS|>-ts}v$ zt*4I!Zz~2Pzuz8&J9=FZWkD1uqO(}f#GF^h6MB)?wiktXVdE~@f@OU`uWM^(?5ydi ztvNQk!b4?jz2?v2O)U`!+lVodp9~0nI6U8-qnav*>c9-ic5pOE1bnW0l8v$Dx^QqS z?fd{B)8dhX@#rguSo_9EX zb#GC6G1B$d(zV#PYHsN2YL*E@IO>9e%qoADE8De6QZ@gygHnFp6!(kRy$K^eY!wR$ zB3;wXTu^rJ_qCs>%fipq3j^o!yX&?@6ApIZ-aPS!*6ay}8ahj5vz=gFl;}F61OVpa z0T2QPv@F=*ec3X9H5~e6rb0|v2>_OMcrPi-Btdm?^0`E_Zl?i!K}#YCwOh<*_H7oK zuzSL7V}Q?GE1inRYT$bs0L@ zo@shpO*oH6^l+_?|}Sr1;bLDDAT@jm!gpsjdEWeQoS-t;e(Y2!snIQ z;suVnO5%@?BE?8C^uls4RESE4!QwtC?NQ=*@j{}v(DUVv9_98^i zL9Y39w)t-4w^%>?J(GdU61pedz)MocUF&G@%R~K*j`4cMz#WM2l(TW|uMzVvtNm0o zBk>ZwfM?Rf0GI(~RONH`Zem16_X?~fSHH~Kd}nNquhmCggQX$;pYw3q zaK_&@pr}qARi`50S*I71n)>+mLP%)`&1X0s zp@sYGd@avLY?Z=ixI~qj!Z{Nj_KU>t(q~3bzy4Hsu4tA<6=-1&r+rTnOpgSmhp3;d zZK~sU#f>U(DOu*DYfVv+?4zAThRie$icPC>Rd+8vdA^A)or-0s=r)ngg)K>H-RYKL zgJlVl1|CC`L8*go;=d9u7t9^a>AZs@zuy;iLLbPS_D@NPNP<0!S%Jk&+P$_&s^`AT z5%(&(d>yhFPsIzGbAWKl`!dm&Un5Ev82GKqyN#z4Mr;1ean26ju^Be1Hv8X9@ZqKz ztF%Nwb*CI}F1-F4ZAI5eNoA(3(oZI@g{wUC@7I zv=o6@x!;w1?|7yOoHnHC3lg}=I$m7d-&D$*M)f#RR%gavZv4*~WJoFS58pSN{2 zW(|*j7)l{jHNvnFQ{aIwed-T@gs<2NcL2_J+b}h^7UqZ=9{8u4m?wRq*pO3U@XupeD z=mFla`k}1_=liD`>hvr>2K(E6`aK6Z_P;-WE_BnR*5|(N1WWxLxM!zuF>7@<8YsNu z>Yz-U<)XJCGfeD0UT^XUO>{^f5nRcDqgyH+B`uhhUc>n6e ztNem&iZH3mDdq0?h8h75N^8vNQYyzw_p&ws%t+aGZN(2MLK=4Ft8L2b*+T4Mbips- z3bf=aevKnWgEJOw?Fzmaptwt5!+yLoJfTe0s*Oq_^$jab6xG*WZ z@KER4`F!WK{Ep?RjIAmC|G5^BWFzwQdVS!1#uok4@Y@c0uc9C8h6>4BjCe-js|N30 zBhxTwXSt+d(fE$xKuq*>PY+W@0%0Rf$>k4JzrmtNFM+J7X5(~*Y@OM;;hXZ=26v4{ zmF)pyILf0*yS|}EDv6IXmj<$leL`IJVJ;>2Pv@%GM27VZT0fRC?V+*k@j3=>E~w|{ zGP3;@F3tri_=9vYbnQqKnn;x*R|ckC0hH$aeCl$IcYq`%gRcfs-_oe^{y-@rP=YCG zNCqFcl)rwUH$3k57}bY4s9uzIbs&Sy%%zS@U&H1K4EB~jo}x-%fD5_@DSwZx+u={L z-JZiAo0P#J@&noa#NsP%J&W1!3y-N`L}>Dyv30hf4I;tl;BQChl$6$H19>sy|LIK2 zJ-*US#Mt89)qQ%#tOQgv%NlzyKvJ3MuPbw}SYmk$*}0tAmFwbUs$k!&jApM87RW%u z85rWD0db0t>1?mfh0;fyMZ#+T2qlK_rd*K|q`Wd*VMerl*FLj@d%R%{7bi*Tq2;kH zX0q5?faUFL9E2>HYBERr+CFMTJn%pGQ@4Y3swajbb;hJ9bk+T?uZIk-uYfPIu359? z9dL}gpw_=nk2vIl&AL%K@d&_b4$x7r!^qV4gs)$$@3Gt68Id_^zFzjmqY?waJ5@JD zY1ZO9`1>+XtwPMqL;*lev77b$9Ta})>`H6HMx=_jVcUVC;ZNU7@PKrHW#K zIyN4C>q^tq0shcJsW$Y>;l3|}ZZ=j6ufa#3qK?w7OO0Y*yc|+m|E4FDAugT`(#Won z<~G(6shz+&>s9K(v7sqovzAfUq$At$2&Y`BYZF6PkhxN1>YE(!<)kMrw|#Dm$^$|e zP-6zyPSwqX@#7H4Ub+s)o6M0RQjzGZd@V1T-6bMp1f|KBufCyc)pD*wmwojrpUHs~ zHOp%Tj>>BK|7`7@vON#&JF@s^nOP z606SHR%J%&^m28^q^l@X@j~yhIv=WR&Rvi=+iN3)q^5RUC8hha^@3Kd;Fg#^v+h1V z_{hi%VHuU9K$Z{RQ|SPM?B!j!D=Q_#k{T_O{&}~J>uwttE7Y5>UQYo&Gg++qHBtoy zU(LV$DXsMvacXrB1QSeUx1-{CJ70}3L8-_O9e z3WD>hfcQd|0HI{q|S9IcY>7>DX%`3#TlipeeD$4BslZfY~R zr>VY29A4GCL=*2GbSALRf_tK(8RjmFywtpHADWIPSO>16(G9Xff^prn?=8nC2LJ*O zj+1ZLPe|ym{ALR-QMNBE7$g(Ue$c?ydng#gp$5^$>WhyM)svom(<+|#SCs_v~0-Fhh}g#Y-=|j z@seAHOsGn5kVYX@zYeS$8Ro7{uNLp$ug1&2x})GQEZ@I;W~bfR9|-Nn$eUAy$$9Y( z(|r^EHj`!J9XgUNOXbtl+_om8$W4O-ax(#>;~$0)q$;JLg>b$1B#wDoN_T&l5~}LU zV2giDp*%ly#jt#iQ5=$&{WvvN?hpg3n_xquOyFAjjNMqNYHJy2(22ed>)2IAPY`wj zjO%nz+oEY>7vG*Tz73+uFAYfofER252!a>_Kt;hpClXh6&K6rufDLe3X5Bt+A3?VM zbbaEH_QZ$0t)Umx_WG2!bq8Vr91uO(#~`4q1Z##ZRB_PfY$ss*h1fl<`;Qo(|x$Rai&?As|(-6aTF;-EoG zv>tiW$bZm!0%SKp$7}&fraDw_qaITo{__=rNGi6ErsBF&AoloHQ@C%%&ftUam+Se0 z6yZB(cXq#vieRaB62pmpE*b;W%6|Zj zvOx?-M>Pzi{pMQ(l7(R}Ric>M_v}u@g_HMCPan`AjFLL($71fb0vb)srUK7Lr|dfS z&Rk*Ubas7c8>hLkL3R^#D+~myLsP<1PkL@E5x2|7**)P#-9uYHSqbPQ_Gz^)E zT~x(SAS@ZI#{t=<nf&O_@l8J!q9B)2}#jtuQJZ zCAY+@#1xa>{QBX0@^qa+>U5hXRc7D%eks-Y=NVZf;D^~VhECwOrYNTgtW^P zR0Tr98z{v&n2;te&s^(zb>we@kGa`pWuyu&=0sHiqOg{HbrroE{z*!4lQ9xDYYwuHUozoWq9xze4-|i*75U?e*I<}}#%r4I;rtr+A><6~K zW&aLjBc$d&y5ZwbiEkc`^T;bco0j~SQT%te;_u6dKAX(Hxy-+ml~2)cxGHW@N+e)c zu!Vc>lrDMG!h;KWxTSGLtXp$8foGg76Ps7s3pCuO9GX1SO@`>0|Gq^60>*N9RO(Gr zLrF@&4^N;91?YE98&dSkE%2hdGT6LsOmu*&+D9&b7e~QyIS1@aSrEp(1~cNZy1YqV_Hg$T+9rhOH9jKk(rbpP=q5AsU$2{T;~VMz8&|5 z9osJHkfZ77-$4vf%`A{6ku-A-MReEOCko1&hG~|Rj^s#40YjUd1g9*t-w(tDI3mPl zoD`-h7yxbF?Q}KIw&2k14_7;mze*R9{l2@<8_~FBmx)|_9WWGGlKWO5e%-%6ebW21 zvyiOesc!P7gG=ST5{zR4WU{1@P~vZnFQsJ&LeUp%9@SmEkR|=1C-LFP>SXYARU#Aj zR34T7+l10o=OFE;>6IZdrWCOv#deX95D5E*r7^BUv34L8!H|%s8?of$b{!d+OcdRJ zFN;r7tr!=pl{(Pisy8%oD*w)4RR+p$u7p~sJ=-!Dsn-E~h6?-xb4GjAC}pX}CIOul zTs7wz{^lu6$>UM-0J}gx_OrKvv9~iMkK?)BphN&WeoQHI*RU$&jDBzSsYLCwgfJ81 zpEb2&y{=HSSfhmgP-$aPmw2mtS#aB26MqI_ zIa1aZvxc-Iv#y@;J|S8|hD%0l2&Blc>`z*&mW&CVaLAHRS=+cO0BB%yyIv!x%CU($Sdu40QBB zJq|JkiMCS?Bl5}9ji~@W_0~wX7u2Rs{3ieQVkyCVzMmTM$gTkc{ zxg2`bSF>kSB4889=jcpgIf$uLv$AC4zbRD)or>1FeA()e$%}xbifuW?0wGi9tBhwk zyos7D%~*n{4rlOvVr9r38d9PFvJsUB|Xx;R6Ic(3A-X)5)f`Oz^Og=#_$+jDqv19PG*hmS|iCC)Rs_6El1Yh$_%C(siz-j&ddXSZx}OB1>ZZ<+4%&$Wf0q}9A5(**e<9T+R9HQK z``jJ~tn=dA-e#)oe^uCxafT5$9{1mr0HcRFmQP!s2$W-MUP)*OdCN6@k}U7i^{SJv^Va&4Yn*YMZhaklbCx0)$Q29*#d}{q(vuk&?&6Svb#-^L821+jSHONfW z+absh%7|henISs=<&xVeuqg;-fb~t)5@4j_+(X zt!=ALUsf;9oWW(wz*#iQ{W`c%awNUM4z4=E0f4LYlg)B#XArmoxf4Z#y=s;*GZ<)6 zN28lZ1myi(Km3lEswXt+UM(9~lDfr~M?0wA`&P&2D9<{P&gr^fB%yT6Vgeq+P?7Jc zbgD}0JgPR%$*}e}!KMK)ATQ)0|oVo)JUDL zG%W(F|5O1ve_-WwS6Zr5$VDHKToUv(QW+ucD~xFnc`09SI3j zM?MO)+eHdv8E_hh_u9M#kDem+3&~iBo+mO$CvIk`-DU}9kXdp+9RhW&)*c?DF;YId zJdvH!yv`j>86TY5D}1wH+$w(xFcqY1w^YwRyvCLEi23CC3~B2CznOE|3GZdyr!vNxcia=fpCMwj;XN0gG?T znA*bWw|iD$sFSinO9~9#$K4FOst{y#mc3YiH$%<;BH_B?IkCF1EPa50t~HL9e~k(1 z=TqYU#H);aJD7uyA3D&llj)_M>o7}>fq?#FHtQ;c-ZBG#`DgAU;gVlog8n`3Q=9pw zqhD5};{ewk0HflF5G%5h$iS`#HdxDjm#3-b!>FJw&<02*Z-On2``p{Z=YrfahNj5>^N)ceu=yfH&cQru7qSO z`m-d_3KL6}4M9`CAr$J3C*Kww@>8C5-f-~uRU}YGkM%GFb1QPQDO6E*;V>$OgF_3_ zHY)tlxZusP3f(A{Ob0c18;{mxeM}FQ8=gjuQs17yOP5pMUtn$Nu?DnQ@(d+jISwIa zH|YR(QbZSowD_YpsnQIVOq079r|3i!Rk{TzzOp9Gpb8LRJG$4!%l#N(RXuyF(N$01 z+$dGnZ{Xa9;kien%yTmijKTdl28JbRk}W}z7ym}le+#s)2ySnAEa4ACO*3ofPbSCu z^q^1hw=m0Rrc$N>0$Y3wK#XcPGZ>A(&|kiYua><3LZ)AC5|V}DFvW`Tq61X)Fbn#- zp!s_yUxV};>xoM@mREg>T>dyHz*-@s#jhdw+xVcvw&ZRLYYGtbLYTFX6d%^6#^U ztx9q!KrHa6!o;+O9bVFyx@iL3>tU6Wfr`5n0e99H4_4kPFjM|Ga;D(*+v>b36`NI6 z&xS_NQkA&3Qki6+CtztY7t%OL!_WTanWdfJ(){D+!`F zg6a4*yN;*59|>Om&wQU@1WO^pvlyWV452PY=xebxmdv^hLunl%P({shc^yG}by#@w zc*zpZ59r5W1-pQpoRl23H>I>U2Us^_N)=+&!+3JU5XD`f<1Aimnkw^&3Z89r8uvv< z28!hS=g6;ZP-WdtT|pYLWQqaq3a2>uH=ed9j|4{?v0Gma%HC7Oiy8~lHK}NEmQV`N zUi#7JxdRv@u4?q;pA%|+QwL_aAYtQ23$2Ah#XfgPc>$i|!MivFFjOdV96rVr7{JT; zrpGJ63^%z1jpzOFUxcbao=+IW) zYq26OCpQk4*9P%!0Ll^+qAsEb=8q`tH%e)|n`tg=9* z?fL0}?|8+{aIt}R4`-;p$mX1!lRSd<`>Lnj2U9Y)F9)ZM;ManTt(86Mf&3WD9Gfhw zsocsfe`@n`8(}-z(jwVl?F||RqDZ76@keB2dBHC3visZG$&=_Pp9@3GE1S5+*2P4h z=nuN9=d(SL`+PTpGl9x=je`I|LZDOs}|_9H0d$Fj+HN@PCph`#Y}J@Bd5CFSKEYd3?2(}5tB4?dYf9XQc_FAVglVg-K4c)~88 zGp`I(I@P#3{KT?=X=*2tOwhH9*@;>zhz`6)@|CKK!(_(>N&goXPo zv91^j!?mB@GcIMg19B{L9j7&OH8WIy5&P6fmu546v7f&$)puEf|0Xu8p2jJ`*2E<3 zB28cWGGilZccclgHzui@lM?#3U51Bt-u#Gt^XXljDIT=*uHxU#%J4Y_4psTjMwS+v zm9S}@MisrNKG=nqq5u`m5$}|N8J@Apv#ouBipp(V{^QO3|0|o)D)Dy!CJ#^jzF&L1 z#p{oWHgtm7WXku!csaFISoA$JHAjsbE+BxcJN9n(vFkNa?g4V?^C!)T8PU$60ld_= z@d?;X-mOx8Xa9F_1;+jm@>ijO$oE#{d{{#r*ZfX5#WD8V=q>5P3@-*u3N9&E6ZWdK zT^c=E$^@1K%d#$JP!61p;I23N32VXIaSGjMP;v9(9&|tMhJ1%AgJlCUTA4-3Q~~Aw z^<;SkBfkNjFFlq$^q-vDjzFK$_twviLAla59(5JL)MYDO=$~s+Or6N2_ED=$-z6witB-_Iit(X zj(7!z=JE+;bbFxlFn-dVvh2z)bIzmh-RkSrR@;nEdD_p8xclP8$LwpI5R8LFP$)04 zw7qb=f^DK8HvQ~aHWv6f{ESS2OtjXUwt5x5xHWC=L*H+4%3UZd6&1rpYJ&zXyH;pl za!YjH#$&IX>hh)FAVIkIY5D>W6Lgxno?ngS`kudXX=o6nUNI5&VN&J4C7_6WiOGSY z`7AVng?7j9$bGGKp@8JB8|P^oAC{^0FTWJ*JR{QrjQ-mAEXyqPiZ}%?Nf7nThN8%< z&Zpny{i*FK)k6pT^2O7)KD~g)+#*@JI>=Q;GR6_~1Cytcv>Ooh$roURf$W6i1#X zCB+?1ILLcH6aDR@JgsE=oq{e6!rMXK0Xh}FgEq4448F;X8ne|A5)>BVkx-~<)%cC4 zwX?8ss-PVs`eN5YI^NQ>8F0c~$&{H{WMYvyQsm7U!P3 z4mr=uE3y5EqNLhdgmT+EUA$cyjNx;{6HrV9%+F~iU;7rn=YcX1gP|-YZ#zB#-fbNIw_}!?q;%- zsfiaYF3|_!VwcyKO=}Fe^EHE4uMS>4pFUq@jDpkHx!q;fwQM1f9LlIzyV;h#hSNWZ z6r@_3NW?~3{`47&4zf&p2)`B=^#A+=`=QyyBO)A}6xZVn27ls}nO68g<)iX<{BCzP zsbu~3d6;(TiKWooK{Q-R&vg@EWwP)tQ=sWD<(0~{cKN7@T6JqG-d06vSLjUeY-0%2`AE86hK6nXZ>6$^- zXP#|Dykz{xe;;)^E`Po&9@NX0UmJLSD}fyg@7qL|X)yNlKb~tH;C<~`iCx%6(zR9kK-T#bshaJJ3;%WvtX{l7+;^1q;>mAu07OXJ z8|E#o0|$wMz)L?+&X3ntIWz) z!ip|Ba4|SawY1Tk7pSEWCaQ0?savh2L8}24>nHyfZ(9)cD)7ENyqdKCc=7w6 zAK%;_^1%&kamhQ*70-=DZ!lm&HgS}mQZ;__0S-aM46b|Xj-l(-Sk_BaFWl~#9PQ(6 zsA9UN>9RTlS*W^;!RF`>ap(ATz93cd4zCQ1{F?6HIi|b1QWd z8QP8Rwf^+asMpZ^_%a483RfE8w@l%ucm5Wwj2=Jj<-Mo63>Odse*!Vf-W5Wwn zjWO$~=5jZSa8zJJ(0CI&i?H?MfMK#JRUzgZ`JoL+p<`9ilg;W(?N+5%f`C~-vHR2K zrirT+$2#Nwet#aA@%@=L=~dGajT;QWHcZ%hfO^2()nwxed;bzuurg`IPsw8@oys0+ zv9aE{Oys7rtu>@XMF+05DXiLoqd|oA(QI&4Si_|H_E~-=#H8H+6irY8-QllvD|BG3 z1xako(fm#f&A#^~mjk+L&U4~yz(3isz=bL}R#>Tuxdn|OWt*C9HmdyJBZc;yQ@igBMz*Qb~dPRBjAGV|jve28iv|KH1@pc^ukZ9iW3#hrP8_NHG$Rj|ANN4Ve<8RXqNX7Y;Fv*3H}De%6p)Ny3rGeWS$ zFXSl@$!gAa+{O znq=Ih)fqDTizInQ`I?$B5co8W^7DY5*qD9GBf1;JZkS+Y-#&6ivF6m?x8BQ4oRd*Z z%kneRqu}2bK%v?MpKW#aVcFWkWO%(@{6XZ82_S@0IX^8pH`jvqs#o$P_=`_Aj_El~ zAIwY}G%rcI^1LP6^DOpo;%*cRRW1f$$CS&qY!cNtsPeiK;=GiXZYOU#A*EgH6kNro zRT*(Awu_QdxpQFQd_eVlO^HXLpZL}$LG7%MpT=6s)B|fk&5$>L(u#_F!un>7lb37C z)6}M9r?;S|(~nQOZ_k|is0)-%39kLYuKLjbHRrPfb@2V6CkAKVOP} zTW#`WrrLnP?~JbE?c2^CbyxJ?yXG#?N?0xHC~@L8Y3fCt1f*3|4jJFTo`@m^f4E$| zY<%<5V5?`M>q6~22-HCnk6=(}3j4S!s4ED~M53%#>f!gSuL@rZ@a46V@afDNvC%oG z{t7Qa&|3V2Xf*e(0Y9ns7J7*aJqEjAxg6A41tzj)w2))k+;k^Cj_#r5E3wNQ5o z--kMw)}ZgTgztH%A&j&-+UHP>p*Y6oS!PzCMBi^Q2aL^I0^!uVx)P`zdWksqlmmcj zz#}}($rX=Y9@0>P)WBGW6kntv?_4?_l)CA|9*fc6^x zVfO!f9OIB0WskRh){a@D+od2G`HWA());#HHTv_b#IM6oj)LU3s+R7@HQ##pcPHq* z+sUzix(~RWpM4(?Kw{aHvb8Xc*>{6|f`6i->FmfzAzylC;GLi=6=a&`hb22>bUm+L ztuu54n}HInw=`$vJgKEwEBRvYo_iHrLhyg}=AYxhkMda9{f$>c?^H)WBlfJ17yA^f zP)?9I6A7)BAu3TvMu#|8q;d1T<%E`_da#YfGYE2uG!cB01aU8zMRji zIQhTQ!H{tMqUsmJCwI^{h10JzpKtwA)%r1$B{;4YA^*Emg_qiQBbJU*n7oqjbO#nf zqGizM=qn~WK%mp1eZTV(hy0ec!*!ca8sFc3khHu|S;&906%@^NU)F9a%x%5g5Z%%} z^sMFI&5nqVrPvd38+R=kQJ$kv_r-rp<$QJ9>168bsdFW zg{tkgTz}gdk?TAeI}-cqmAc;cu{)3Mr$4pO){JDy*nahQQ0s>k=f~JT>4ur3n|RkSA1^zN7&cimHaoER(~Ee2c=Z6{^T^#!MIKaZI8@VA@Nxgh3QTfGpQ@ck%B9&PNr`~J1CrPi5` zWp{qK878UG#jF=H4~jZ>Bz-J9G54jrn-Tie;x62Y<})T#T4F5J4j289ayADXwZS z+k^aDF8Su2?h917fBa(Mi4UAIUD8Ez;=`%AjIMJJi)~k$9!`=r1{qft0-6_6Pv%SyzhTL z_~Y*N#JWVD-}96FKW?d9#H{kaP}2kn#BpI?`0L?J(|>!-=S8sxs}Q~;rtf}T=QbA~ zKZ3HKrriAG@Z=ku{#lr8h2oa~6GoOF1Ovv*&glVgxOu=@>Mn)PTo^$i{Y<|FV*+3? zpUo%*|3*(AkP(ZTp1clX!kEmTNbQm56xa(~Q3_@@U3L8c_c~of(&bGYkbA6Y3kxd=f46NF|D`VBYuNN*<4axa z4O0M=fZ-p8_H}jd9elLBI>>?VF+UtILe%IYpv{T^CY(HX=F~-qZA~L>PP6c0_%-As zK7{>(AomaZNNWCRc*x^w?y2ir6mTsJh{1?lvz!0M!-;e?@fC95flNdi08%}LU{m`4 zbc)R|A+jajHvx#n65%wC$Z8K?7zw6ILSBFJ!%|de7K7wq;LD!k&U=7k^JLvG%5Udn zO}>=%f}kiIJdOlK-?~hmpD<#;{3uWw4vqpqVWHrJtZLUi4W!#Ka)&MX(}L|}0cIS2 zxJ9FWU4vSzUHyL?orgQs@BhcoKF2=x);Y)C$KE>U*n4m47+IlXhE!+Rt3$TvSVgH0 zMT9ywQ7DQ?2Mv`(8ZqUe%<$d-LL2C@rY28Y?1;qm^JLZx6@n^d{|dv z(memMrc8CQPQjb*y8C3ggA%+a@)($+>;%%@WO2S=$>dn5&H;F@pdf`XRZQ$WLH&7Z zr&8Ox5|5(Nt^miyaLt2ff5_i7+CV&aL5!hcaN#G&5nbUZuQwpT<hm%$8An8Zj&KyBk@e4-Wt!|hpHDLFO;n8kZZdVKX(IXFSW?#XpSF#i%6BAN z-hu(S@LcPlgwvA@j|0Fna7Pc<(DY^nQzFMq$7NGSXa#0ux|BCz$B10u!1rCpWp3Gb zkG5FG`-QGMrKl4CI4Ycfsi?{$XyC*R1Qh`JL_}b4U|u$;^cLKiWpRec^&;z{b(#A< zv4P5ftfC;BWlQ-ij)c7St?#ffocq%D5-%%KF1CQX3~+|a$w4pjv7(nrg4cCfz&+jk zcHQ93vIE1XPzZ&S>S5^->f;5lH=sjzWFa97_JXLW@I6O64rC4M5ui|f8R;G1g>x(S zuMYQjxvceb^7xY?%vBInPGD&)8R0)-8hm)?n*so;fCC%i?BW^7GvyomIG?mGpK+qk z0U5q{2m1Fk;y+=X&zA$?`krtvaAcfq*Ik>Fdcl-?w$ z316^}O;N__L#(^Q&R>pQ*5_;_b05j|-oJofYwVGmh<>Bevic2lFU1uf2_u@Z%8K0~XTDPt}yrAv#bgqySs?X9s^TPfZ>y|Ulr)C{; zLl)dPF^@z=)l{g8*{X;L!4#Ul4s%KDkmzFFPO&#CMVIEnyLPhZ_0PXYKaF zXyH#|`uY_>17GE?a-x8O*K-xi$e2IB%vH~nmvvpNJ!?KT9I3&6+~~BIyBlz)-08kj z_NgkGT}O7Tn6A@TzV<^h_k$k_hXkjW+|&=>C|`eB_iAB9#8d1#=WJlB;4NP>YE zE%o+xPvN=BGo_upJ0m%?-TbD;d>)-rk9MU(*psb%Rk&{HOBk)wj8?DSu1_I{m)UO#OBqgyfXG0^=}V|{aW}N@a4g!v-{X$aS48*iYH5*W=H^WnsFz7nPZr$Z1#4Mk!`*WJEpRBB!4^vIiBgqQ^wcDi0Sfag=# zl-q;pw1mgIVvkD#daJMW%9>2Zo||mxpFEW@arxXVM;&QR8=U#dCZ=7(p*(9iLu_11 zH6Jq;bmO*_9YpSf=Kg;2sRy)POmKZJxJnc&wPN>84jzQb@~Rq2Be4zwFEj*{QLhaD z`aAnaN@*|SyRj)n=Smq#dNS%C^J=To!w|=1hvk}_mYaRn;mzT9*KL}8OAO8f57#Af z&Kmm@p_p&)-78(b9Zuf)jEVXb*u_U*bm3bpsd{;dIeYBYVsOBsOVsNhrn8y>Lv~S2 z5bmy4Rq>Om%kG9_iPo>0)FYJY0I%b~RJo{%a39d0CV3f^7k_DD;g1>!gR0Y0BhWdo}t&sFiezAG*_)EtF2PSuC>jmD#8;tx^8J!RYKCq&=kNCNaIB{wS~jM z@yq%}^~g6~S}*R*41JIu4v^_~mw6BV*ZZdK{YG8G*?|{d>d#Ey7`%Dz78+qHR{zS> zgE%FuAN*Ch>g7lEL&WPZQCH5af2t&0`pi3jzBtJO1q)+HpEq2*%VgeHp)mt@sr^HC1iT za{iHYN>OfC#B8)-P4NxtgXAB-R&pX`M zRhN7he=I)vFe3HM%%z^It~`^W-rU2q9(5WV3iAA^*9BW)E)4$td8x^QLM>hnaR&+xy+(^~? zuhP9p5W-6NFx)mB%W}U4x=IkPBHi$!$-oFZK(IBBtR8U(hw5O1iySIqGU(Ww_#*I( zf?oU&l|Y)w=l8b?%J00%Pbhfyul9S~;D9&3V2VS}?yKJ7ED42HvFKBe3bX9H{41iv zh9oTw|5=Q4HgJm{`7_D%+mU+hTqzpH!5^aw@n}e}TjMyt5{m}r>*&ix3h9}g5Gw@? zB07N+oh`QWU)>(o7AQ=gDEsqall@4tU4}ebEMfHQ0|^a=5^e!IL7gFl%$$Bo7O#j4 z=^Jax4(RI>{&(r!Rs0{}Dt;>v=K{kEqGITEL0I0GOSmvEMlp0Z3fpLWk$8I14~ zU3X!DLpUeZJ{yfsxG=7G@`5&0DcJ3IIk6EW{P>jx=5H`m{Gw?YAiwzC!kmX#5SChK zj)?fwW)P0f7ChsKQh__%Rv;uYTeA7nl7oCI&kDsx2;ZUn9;I=8?!Z#u3Afl(uApQN zFpnVvSr_>g>M9}qB%bJ{OWzn)Xu7{UoNfYU$ErdYZ&)c{H=a$c2EQz&wFqi7hX;8w%YBC7Tv#^VNcrgueCqleVlH6P(ePb)xEXqPkFw;L_=!=b3pZLeyUL`RCp1zmq|nmWVl!xM3MG3u#pb7%gUf+#gvs zTHm+iyBOIpdhD#BRwjH>I(gp7#SE(o>XOO(>?L?;yfEr|%5nGd`WhR=r`Ahsha;PD z7Cx#u7Y;gN&r1NFRISEzr5azXMaJ03D!qG__qz8kBi-KikEgHC_wP>+J4EI5T1&d> zZ@)-V!@qqP7oG(4%8$R_19Mv;SqQn6VM83w%*5W{@H^7z48jWTKt&8i_(zZy8A;Ef zeBXu0h@HgD9uFHB(=fvJ%kLhK;y!6B5)Q054}=rRKtyplRdkDd3QMAJ)>wfSSntyK zT#xvcZ@Xp@nb9JD3U|57>1_V!loUeQ7YL%NwSj~gm~zec^%WB2wT#9J1#`<@E`Nq- zfXD;zpnb2-{VQZWzMFJhU=r~20gN+2=V=i`?24>dJGbvNM&w5YlmLK3+iy&sHzk1} z45FSuFIQmA-Qfx1E$7%W0nYcSkg4EpSpD!IGJ{DIBDWpFwDy~Lyj=%dCQd0QFS4T^ zDhvmX?wZ^=S6KS9Y^Y(Eo~@UJmQQRYGzM#5?)8}6Rtqg>(J62uagaNeMU#|@fIKr5So6P8`wY<%X6y9n zcBx}PgT7+Ou-&BHZ5vM$}fLlzzx z#x9i>7*c*!XZJGxMJi^{>S|; zOD5gPMdMyp!n+xz>h>-C!Ut;;5BG6io&K@ZJxx6*2!dC-+}@(EH!pUxrjy z>q_qT?-+kQ8^FvOiDt*L?6wYpytVTGtgJAf^bnl+v(%n71k}u*Cj1vLeLM_UJux5R zR3z>Xsl;=6;|Mo3m_Q8n+I4=8Wr@AY+e4pVt#?JQb)x$w5UPIaKOHjCk z2okW3fmPY-$Kso7$~n$RcjG{wB@KwvBn$Bo8~^GMEuMHKi^wCcuuT6qb41UK_@CdE z3tzU*IyBk}b+dDAaqF|W#g=kmOb}Ll5N4E`#G5i360TxGh*f(8*s$**L|*6lU^rcN?es&c$Q4}9C3f$1srm^usP=YU+TtQKfzZJJWZS|9 z)T6Nk;_AlI#76+n%ANwR2Q$~Dn%h;&PT)CniDDktvuw2_C-`HXPM^{0UmHv}9Jyrr z*>__{^IVp1n*Gjawa=(2zqlBPJvp=*NJ0r1t%K!0i|BGtpa!nsLHc>HM(Q9>;%tc2 zjk;{3xiAwxba-myeEFbRM3v*;h}GS*YmO;)bU{pxjS+fF&0wIbl$f)qvGKI;C)f6Y<9 zI~9=0UBiOOFv~)%DA3q*!yyCkD+Whkc-x~{fF11f8vTY3QM0wHx5*H>dz}!e*>_MP zSNM`Z#qGDHwutnCObgNUk?n^AjW3ImEi8ss^*7TC)~ad3`{b=T4sKKhaw=iN?5jY! z`FCNte;-9#f4^|yM1-@?5_8BMaD+3G%1HNABqu=liypcb0fIW45m-fwYBwvY&IjNt zr_KKVUP`U~EC-CbVIc--fkb=| za`r*K^NxFejf{|&k)}cLJ8`NgD3yM$gbC7h&GErd?!S!lE|u9_b4D+M!bgFxg#pn= zc@ssXO{S%eEv>UVx6t=Ac0V^sG;itt`MfMyUs#L)9ft&c=s&&*9lq<_}?>+Q)~QbFKj)7HJ{Cc4cM?Xu!sFD^aL|N9+h~V09x39 zrp-dV0Dd;8q(Ss0C2Y1sSrSC65SeqqhaWPn1bx<1s1Q}E)LW=#1bYPKC}DxTej%no zw%bA?1}Js$F$oTI@x(LhBHB@OL+Hb1aj{#OwV%dLRoTn?WuOkv??>C$ksjs#d2=G( zr~@P1Adw$o%#H`fj6ly4&C_)}?CEf?9RaOf$vc~1H&@6Z$q)2G2W0py;dEv2yrq~G z%SUIm$C906pR;q3U(`A4>7$CoKknU_qV1%0OuG_?2g^f*MT(VexPo?8zadA)e z?TxZ}{mU9IM=L20pYdha*8Zgh0H{ z#Yr8;Kd1nkdCaMo7+wCO*g4c08H+6^PCz^ko#^?tEGQlavqTx}oKgvfxXYl_rIh7A zh!ozZfmaV2v9C%M4iGQJIEvXu`fV~(LtyJh&C7o9XgUxBxLSC*(GhLrM7es9runD0 z*=DKP*J0K+3Kza;}uBwwwUS7s9}CmJL`V$xm|p&M%j2xAZ*N&Ks)a>?2qprG5v#0IK(a^GyJSGHc=L*pQr0u}d&U$M)T8Qv71UX6oqFCTehqAy8 zAOQ(+W~3cIo8{LE^J42+|k%Pne9~&lJG`P7ivB z?`R4<2FjuY&30gikM%H17BITkg}3@3DVF9R_f!!f(Zg2Zg#+}})T=_k$c&Co^}f32 zxwrCEn+$OE*tW>WRPB&TkhNm*+gv27TGSDlJ;zUNttNRl z{)jrTAQ32d1PMk%BBBQGRkt}EMC)K!w&0F*t16@g9b!xRA1;)D1)5R#^F@z6MK}D` zh9n;4I#3V-8|~zF%F-^2O@KpZm-bi&DBxOnnFK%QZjw`efQ+0r7(6ScHJ%V65xl-J7u3b@9%!=v!0An*1^KZo*;})^m6>Tb%h& z^!;wC9Ar?_oYB=k3bn$G1hPF}KF_~dDagU_R=|QftC5E2S`dG=EEZ@gKe{=kWL+a< z`$_zylyHWYB+5@nwYKUz*WKyOqdlcA^Po}pH{##tM`}ADWrhrvX~a!qDQyll+(2bA zAf>ag7}tpi;zSG)dU4jfyQWWOI$HDZ#8k4k0{MI^8-5%P8`23P941Rw%DxBA{6$}tD;%l{?30sJgzNG56-b1SW587a65h!SSpZKl z_oYMZW{)^_f@ppa=_7b`!%VN#!BYr&lnKRtlNp#63~hqBnojW!r~Z;U|H`t*4qtk@ z@QKFGSe8U`;ua!+E)xs~8@Nh}v&MZ+7k`=-s=)MpG3~R*!JT(ypg(kgJo!p}Vw;Qe zq8~)X?4?tRS*d&ICt*i94*QIf&pjy{4_nEes~;--06mk@cayXnt^i zYkYv`1Xc+XiS3Ia4G9&(?#Ft2s4j0(0nv?c3JWICJ{kQ75WNgWGtADa@SkBH{kPC- zU5=-bAm(>Dt|y>ml+>e+*#T(f!{jGw$_Ogsjug>w7c3{*0Mu&`6eP(hN&x;fr9PZ! zbV5IIEfGYZk6XAtsdsvw<(H#n|7c2#QVe){n6wggG8mFUhdk$b?L-<>#4zvg!EAz7 za@1b<;jJZ{GbZ$7?oOlm{(!c~j&A201;b)UmBr(rp!eZzJ02W7(YWu0>z0dwdfN7U;Ru^R(Z z1N~{xmKF#J36dm2LjbF%NYJI9Zx3S%KntPoJ_n5`kRaL}=^V2IE;tzRcBvX2qGSbA z-+?LM-kZ@Sn3jUvVBph1Y`DP_Uo&}I8+P(8KVl82C|s0&qIG)KdEY<=gbDbOv5M)*uoRw1L^SU+aFyAHwBI(nRPE3FHA6a zcam5WzoM694y0!qVErGVBmg{^K2gvt5k`ib$+kLyyKt5W|C3{Nnl!Mu0U_eHT#lM@Rm%K z7AJT|rpePaQe+!(s5W~>6$U=C!U;$roRA+)qqe7mOf9GYC(=%p6asivq97vS?8)6# zf;zv;K4DkR;U_GK`OEq|EWc2KP@yC#sD;N%1`**8W!g^z;L@rpE+lx+4m9xvgh+&w zW}zI{tQ0RnvH)-*65y$8U=Dz%5n;hdSk}=C?v8-7Fw}hKglpKlPeq^~HUe`Rkkbye zX%vtI)=~l>8@VWU-fJ7+r+2GsY0egW>P>0b#Zvy_)?(E7HJ+zNoKapxXasBbz>^w- z|5(1g?!Eg!hDzw$o#lo4{UyLyZq-R`4*y`I4dwV_yzDHZ5)z z0XxzNWnU6JcKi~K!ueyeuX2OY`biPYaqknWb-stvCIi}}6iODS(xBQ;zY*_mW-Pn*@}})Ea+G+VbHN_* z(i*S=z>Nafs6;%swT(Ly4VMjZrDUmXrlM}Wdi%S>aD9b9$(=Jz+%}T04C}OeUn6+S zPWgIs>3zk95vRx8TfdzkJNNbp1*(tt8%;H9_Ct6L1C8(GnXl(67aKgs-pNz=P7k9K zsGE~G)qVCIrT?lBw3(~z-;~{2i(Nh4AUt97aK*+dMhQwXVDhN2pX+pqnDi1RM=Cl4owX#;`s8_*Gpo}+I7eQ;ryyHR|IqJLWxqQn ztTLS_!}mUkUsu9VMLqx0I-pMJP{ z$;n+WzvW$QCRaL>%BAKz^uXEp!w#m%d}T{^i}{ZG9Ixq8IfPf0I|Bp24l#al>&gW; zB9Xrxv0uUPhxTmCtN9p&_7xmES8`$#s9yQbIK69ZIsHM;IJn365UcFCl3M6(s{UVqYZ4_}ageoYoL+%a>Jz<=(w2*GNxO8Ux^wLz5N$PpkQa}^@ zSe)28Ri+?&zh_c2-_+=V{iYPLnN1ZG&&F17tem7XszwdhVXCcoUNX5!#F41q=qFv; zIB&xH_;$+EXn(j>Pdgu#M3W8l-q0XZ2cZOx6BETE74+5&_eQF&!|rB2M&3}5G_o$&J}q5 zBJS}?D}N+TnR^ymy}WXQcVcWv2=9F<$`VN@LS#M1pxUzl<^^4d2G566Xv<*CO;3X0 zx=YC=PXSp;4!fpaD_IA?bJ2Txm-S0xdF>-XGCyZCjSRo$#L_J#-!km&nqy;swSmQE zN!fZV3TG%X6S<>5s$@Tx;W|q|$x&dsk#2E+gNN1j7@3;Z=y*P&pM<=k%4;=e4W(HY zM6A==dteu|GwB`Aey?1+cX-7B{z+adZ{afJr^JtAyDRRRZap*mx7QsW z;;pzGXE74q9F|7+?wyD=q=}UQvLx>@;DR{Ztd!5#n=4uxFYY1qkFmj0D`dE`?;z*< zNHK}j%Waa9j=*2q(Cfv)6z+^dS!?TRu^zywpK?m&LPI8$iex2Wq zxeYlgNWLAPp3bOL`7o={@p?9G?wriPjd2a5>05Df!~iZfGh2B@`-&Q(?Wgr812F#( zXMkr^_&aak-nIlD2SX57CT=3qUeNH*-CUQ~p!sY>d8?W&kUJ0nezi@6Z)_D9c+FcE z#>Q~Qd*U}wlsy$5A!}oa_{T`*A+Wq8`PNJq!e4bgaMQaI{jBbGz@FV*!i{Tibp+Uc z?u9$bp1?PAxgO(hl(VT!7|--af4Vmxrc;k`I!uQ=eZm62 z*piqaWn%gVBU_73kF-`xG8)McL!}|^NG|ZQ^EK^p9!1IcK8#=q;)!mRav`Mkx>4XMAPRy8OX^Tv_r}=yGNGa0d=k$CN=KjwBp_&zeQg#2F6#uHA{g zpbHd2>Ot>z4e~~_*YJlP;j<=)_z#iT5CQ(#`|)K%vMByMn9A6!vMV0irR?)2!}>aI zyTdOrL*h%e#DgYISm79T@3Va?dqVi`1bhu8PJs?&R#b}{F+%tph zQ<~qI5Jd8ONA;1Hm!5bl-=#n=P_9kW3d7u6s~5-@%yEt`8pDl7{aN+~N{= zjj_JyaU=cU%Sq0=ID4J!XUwjJV>8dbpiNGrjZYz3&u!Qu_WIEFI>|u*jgp3e1q}47 z-%#S+om}0Oi{=PT75PC})dQj2sJJNA5AWkE32AX8#+gSGvtvk?;71cFp2@33>J7P1 z%~i=Ml-gVN-nZQk1p+sL(sUHeI5Qj~fy03WW@Blxx30f_G7BLw=B3MuZ+17{;_@bE zsx!$@E7Fk2HM)_?y=5#!X!pT57V5hYU~MIqRBVdXi6mU^ldal|)3)5r_BAzveDHfF zXCB|9J@Rz|*dO)7Jawq=-OgC=(YR{W<3RzDmr*ilcqnNe!N+GxnxEP4 zS#+GZdYEv0j(sQf_4L*M;-Vg9F%4t;j`tyfA_P!Hw9dW+linm#FUuUtzZ2|FJKJWY zgraqQ);2`aYQT48lt5LHR058}%9WZy0m-wBz|VWjN^#|nX#^5gC=g6A0`T+zUVOTr zxkn-0eek#yh?;$XA!lOL2(bL4`T%~Gq*+-otk2!=I&C1An`z_AZA;{~0e}?&6!a!V zaH4M&p_*-50N^H%>lBYn6qp9aCFlo)R)&P=h?KFsv}pt-keUM$%etdQ25$p1K|rRA?=>S9jkEAj#-fVG z?+Gd++yxDrMtZajanj^aG!&VtL8jplM?7pGFM`L6`{DJ^MIww_gaC8VRG>-CJxsIi zjz^)5Z%OAl!k4M4*HnsnK#6dbuzey#kwFzE0*~P+-wO~r{TA#A3+-1H=AJz9gZwrCo11-kkLVa4Rb+ZQ>?Db^18Mld$p^Q zu2eJfWr7mT2xa9ug4P*sA9~eWVc({XDU(4^Bu!cvZ*4;DkCw$`5l3MJX<*R)L@8g`rsAv|Ol`1uvu01jzKXg_lVh>wXPHt77N z709~T{7W=G@t4QoicJ^0j~i!PF{ymkQZG-*23Oc~XUk$dk;@>1%#Y-s3~kei?8dUD z`YmbL#i@sH9r{=*Df(v3m{QVO~#7q~JOq)#o z;=dDRjkQ>EK4wBxo8F&cCq9!pNnKZd!w?e!Sc~moEd(>W_v}=shgA9vAPLq_mkPe< zprY?d4KkfGeKCBa1WUK_zC4%)Q9JH7;xgJ`HSe^#+kfy->R#gCIg#JZ=}F%xyO?43iSPfJHrGy#?TlEB#aa17b`+V zReei(<|SB^gL3$qF|OF<&M8RYV1ThC7cE;5+7*0bu`-ke0u7!#TxT zBPlvSE6rS63&Tvf9>mf&(~Klq{Mpg#?Zl}mR|T;)6x~!F0e&+DU`IVusaBK+s$_EU zII7+gt71IYx-K?qecckI$j-+Q4}prllo0lYpg#)66)Fx>W*bUE;??$dUvg<<03yz@mW6xe5%4 zA|C0sp)GD#`_Rro5kFzPlwiJ;KE~iiUAuAPn0n##LBU9?K_UojGSp;40tPH}1H^`p zbHAWx*`>S{>Xch5ZK>{1(JSeC*02sfKbVh|_1N9blW_&3Q3bn7nS>so)g+&=qq509 zxQa%_Y`)l3&iv4E_}pURxv7=Ej;oG0x94nG=FnStIkEiD2RHKhAFeM7EGh#f#O}ST zWdu-ws*cvrGv_Y;!7a^7d$5)fR;c)Cv7uE3-*4K!LSUT$fk;STW#V8JJc! z1xv3DDW!F#<$wDK)JT;vWi^ln9Ishre!%-o6LenRwMmj;^c-ado_xk?Fz<5 zasskIJUhU-BI<95iQMc`EnqtRW4k`W4%`4XXZ0Sr<4V7AG@Wuab-m;k<8L-fGaq$T zuko+H%rcz-3mt*qH|zDqAUca>GQFiv8}=|*aTT5-x#_b30$ofF*>DGnu_+`EU@34> z4R&((-(0U3fAW<109*T#K?Y}J1-v=<0 z0hXGv%g(PHH)rF*$MFvXjbzX!?-}r15O%YYgSB)-c2)6h@7E0qE$xImT2b43O~{Af zKoc6)(3bOO9x8X@13zEOz;n|eh-gKB9qnD~z-&1u%^BK9sH!h|4pt=Jy;P?#l_ds2 z07WC0#g)WEi-Ahrp39Fz)M0P%8zDZu%L8Nz)>-%-O(n2Xc0=x&s9nGjYg)(<=tA2t ztgsVu597Cw*u(*jGr-4P!RF>mWkD;?d;`-J!ZNx);LP79dN(KEF6F^d><(_r;Rf_r z4mzjhO$Sx~OYNM#5qyx)ZHfhV<2P~Y*UrlOYtua}S{>y#X=bw?(~!~HNJ|b+pJLCb zBe_b?k|FBVDdWgV=<49f_xIkmyg`vDs1+b;^J5rnk)w0|zTWMlRZh5h2(*+uskvI9 z^nI?;@}zPVl}+U~cRl&T3wW%mNacw%**VN|O!1C)f$c9yC}j!1bMTDZ88X1;_^ zSvhCU`yr?T+t2mDyTWLLJWqbQT2)l=kFP8&(qiOhR(O;SZfiuJ>G{k^zNW3dikz{6 zDc8unwj&9NrJB|SSM}JM=s|WPW4M1zcsoX2)rr}Qme)suwZ&A~XgO1G_^K^X!WD=` zxyt~+VvzwG>%c4A(TW=4DZf`eN0)nJ7a{9zGiY}$HdO@)F=u$$4UdIoK7^+sPW~s} zVI9HTR{U}zx0uaa%mxU$eumH^N~MASS&_e6pZSq;y2e?g&-_q?zw~PXsp`$Xh9MKY zH*~XU=ZqN^tdE-5WxNF)y9BneyK(vHu^>*Z(54W{~1anKS8T_rij7AlqZ`FAmTAl3$RB=(IzP*@{nf^+q`5blD zr`qd7MS-HaF2;>xd*dGDWyYU6>7AxxM~Y_0v+A z8ydc$A>*uNeo`rnA3p(B5(P_*|I}dK(PG9@My;_dE91)3+uy&{6ib`ENxW!{){g(B zIYCv6+}k_x)wE*xyYtuXhiCUhxGwl4YVdKHTvEkpgeAhmjBS2xiR^VY7V*#@FT_&) zLkdkcsTcrQvxjD4``yka$@0z%%j;p%=7aYqF}k=sOMWUL^7R!DpNtMZ%e;Ig97xj@ z((%CwpAG3l-i@xy?xvG(OugK=_6Ee)t=Cbxo zPwscR{|Za{b@oz3y35xzmj@YNL-)M*%(gd16;o+v{!$drZZ{^%>aT<}@bDQ@5aA$s z0Il%X-)V2LOsjB|3#7nNu)xA z$tV<)^6hG&NMgvHU+PgVs5couwb+Lg$BYEYJMs5UoJ|iP_vikK_s{x;yUEgGUP`3=-bvx&@EZF_PDm{oYSaYWw|-j5G=v$>Im` z7uwR3j*&OGg}CM!?{p*c@=4e61?S*S~}R5BYlU*dk<{Z{mkXp07MP%aXrz$b-0 zyKN{D@Y7ioOYC3#SUUb?*))Dni65NfQmIFJYwMo~e=Nw#nzoG&U35gLQ)b2D?uPT^ z$&wWnGo|CfH7^b$>VM`Z^roQFP=ax~B;~{}m zcM6clou!^p$HY{K?EJ|?*|Atr4PyQx9yB&7Yf~a&5BaE$8wNAH`s`PR!D^ z-~aog{Pp$loikS-{`;j%cZffpWiK4mBR?hqdguie2+Gxx6euxt9}%&Duz(Kj5#%@D*P zSHfhEaH?#%T5uaR->>J|AN&w=apt|jmkYDbyU~<1e5DOJg%uAM4P0@{6y$p=BK&x!@x^8WSFSmEeuZn(e`Ex3(;@C4fDRQbUmTp~to&N4LGo(h{O z)#cAVDfiuO>6pEkw^G#AyzafH;iciz<1gy7Lw=N&B2xz#>UXcM2(I-h&WMefc=p{9q;1Gj3+tVHU5s%|`zjbs70 zP9oc((ihYM1#cJy&0>df8dth^!}uzVM={t(b8+aH7-@k^^sYMDS6&?20v@Tyt_t0B zMk9_rNejrjAIvPV5i2$0U*ySR&OuNP+zHl#KSf1ep$uvV-%C2O&6U)~Tyxf|BMgT{ z%`z$Jr#pt`F|G3Q5Dd5aW|@Wkul`kpBIc0;j?Wi)RZA_$2r4j~vEk0wSZwF$f=Uz*fg1}UeOZ=KO)IMxx(>26E!?)*{y!E=x+j7<|{kuz5et%6v8 z_+54P`xj#AL4jKs!VYRoYyC5)f7R=vXUQf!`xM>>%Rz(O;ppm}k&}ZKwb`A9bRO$#$cma3MlaLKBeI}5P3^*FHe@bJ`=Gs=hvrq3UjajtL`WpZ2oG0^X#WMqh zf>0xzoOVoz&4djzgS8?65b4fY2;^}v@_;K-e3}VagbtA#jLNPE$>%6of6{wS;elL- zX={20>lxCeEkSt`1Q9#*xTG!O!$!RjZ!Xu}s0OipWR~??yvfSs^6InRx0XMl>z&R=R+n`S%fJcI+*D-Q@D0Mn#p$F zI=N zd<)<7D<8b&$}$>FxNi*!EwS}lhwIIbG~M%%h3k^X#LGofiJwC)!KlkK{PMOx{>|nv zrttYG@dolFs?pv1Hep&v=H+}>Uh=zcu7i* zp~x;TX7?KRksUI6M^2)-%}bzJimOH8l#hWSn)83As_mKqRrJDGcCtMn69;;|lWm!; z-mYgRO0L=`8`}mg9BkixQ<*(SmDv3IM=-z|xu zZo>2p6M0wrX`+kdr$zt}GUUkBP8!TTo*Bb07lFctp*b^%wSwtK$BDUTkW|eX=a!pq z1ng?;7Fup6?~+QlYXHF4S#<+L0kF~p7Uc7-*Ajf!n37!`MXjLv-F1_bf3lsEuDv>w z2Mh2h*?cvT*@ECqmtd>keGZR{hHz~&iQDZ^^$-#`=>=+3MK@=N)FUXta?SCm?}R%m zS&BVndezJ4Yt`c!a=4hduEs7+k}I`2#I!59%8P@^zyikunD= z1J`sft-3-~{{lHKWoa+FD@DpF0l6xuhjQV)EAIxXt8+SeW;h8a3`J8vJPED19+60t znR&l-SG5W(vd#W*;2PYP!KP9sl4{kELp-_OF)*R1CQgnK<#TG=i*LDJ+q=|QI*vbX zX)2D=F0NE~9or=46DA-WRoC<-Nbg*1!xdRs1g5e5w0*)~s^;;I@MS z|AFW8qc+RCwII3kHo4acRlG?+a}ogtk&dA+@Z}04s_(0%p0bZDI20_6Y|$UA)@9<^0ChzY5cMqT zr`WH&1D_~c3ACGQm8>-A{Z{8gv&eB7%R$aelqJ8^>5m%L~ z%%5W*iB>jrF)j0UH<$x~UW2NnMm%1c4nI|`2>bqam?r}-ST@*j02dm~qQ%<#lYm<+ zUV%a&*LMKCkQ|ci*(A%fz^w_LR;$_ z$ig$J_;-VNVcVkq!y+sG{Z&rH5OM_|PPB1zDwQqAA?P^7K7f~PPuayGNyQlS$Wbcs zmVBV-K5&aZczH4hwL=!#1q$Q%xyXYOVT1WXT-^JQjpM~vcZy`8V!uB+$>Kmf3-p*D zjWN9*hd|&lI(~pSD8aNpt-jzc?pDEuZV`c7augvZ4qEXN8tw+mcW$N-1)e&<{YMc` zfgJWh$x(wTJcF#T8m@3@*r8 zAY{g(M5>fu2(`K#-+*$I}U{EyBzFA?=k&)KIA5~lzd_wTS zU$Hae*5w0avo%7g&KH%s>sSzzzVIIX#k> z1q63redQ5A8VOE8CT>EeRdCT9RAyz4VARQD9F(AyVwwoHPQ93s z41UyWwoz)P#HfjsjTBR zBy2$x1VIawfKHYG$7l!S;Z0PR&ngAKt!Rdv8>hXn3 zx>zAJ0=&HjA6O5*J;)7kXOlsJ2KXsD30UDd!WL|S4>*q^JzrHEoYN766;36v!j2ZO zkb#h27i7U22muS&fL4G4iLsiCF%iJNq7W%K|UY=Il5-Y=z_5`;k&R7zao8yK9$ zuy7|)x~iYX5TeGSc5DF&=;wZx$Pmy0fX0%5{$-2Q=(|GO5rhC7pr+OhXARlFJ<&kD z-T@rkEq!`xx8AL{ZmxD@ZvBmGxi+gwq=XWfkrvpcwBs!q5ytU= z?;Sx4n9`Imtx=r?Y%tT*ve+*f${BRe7(h`J_`r^E7xE$BNRA#9jN}u%fnJfJqNE!e zumR^a6%rJ|F=db41O^Bg+r1$w3}sfwAc2r!Oy4dE0+2xw5CX6gf)ZF?9=HKu@}3)9 zSr-JS9aurL7I7MUK_67dto(4Z9+eZMfD=UVBh@E5ZELq`>p3}sAhg*F*ku#M0T#ep z7<<7LG$>tJfg9LC5%ho`6af|h=HO<*Yb1eR`T-#vVgmHws{e6FMG>#?Hl>{+i6IO! zAw#SPDsS{ksR&Y+A}_LKW}P|qOQ#LN-_pT4a_@?G9oc~$s*!Jx3QW~GR6+0&9?h(h zm9h|?vius{Dgy@!fItZ}pCj;qZ>AFxl)%=uz~D{EBivObaZ4CTt+}y5Sp^fM9!(es zLik)IA4~xsJabc_%o+ zOUG_34Dw5tp4V%_V;ileslns9K$Q9l$u;Fs!OCnZPYj(xPb*gi3cPh&e(T;y@fK7M zQc96q7C{wYiquNN8Ej-?WWf^5VWRvJ8k`~cT%{59hak|N8F(ZdI6)E!%_#-O5l9|k z_%$1(+h6N}UR2WM4qsc=;yPJJQIbnh-a!8bR<5Z67Sp|L%;`V?Hv7I>fAVCnoatk!#Tc1ECS_RJ{i3kMJKokL;5Q3%Lfvo^0 zU_$K>#0(Vp02yn+9C(3AFQ``zD;eJbAO8SBao-sap%!?6K?)$j7PO_^M6naN02M$n zxgfy`OgDO{8Hvs%U9K%ym}nZL=nZTw6oi1Bzp)+IB+v2OOlN_aH$oDyz=hnGZ6bw- zC#>-L^nEu8L=5#I3^h^vH}X=Zt}}0d_xe&(Y&mkyO8{nqlhM@OOB%#M?@RzzXSHk6 z#O}P2$##w?V^Pea^*(Y4>2P@51>{<1M3)1Hp<>*xY$$W%BFGRZAF#<8z<9dp!D*z% zE;YfD`_j6}$z6y~Yat_$n}OIL_hAF*%Q#Khsx=nXSu)%IG7tin;X>mU48+WL_rB8ffHE48$)B}Awi5< zfyXb1I|~6092on`-G(p(!h*QM=69@nQ9~dCe-H8;5OS^CI<7xyf787oG%v45osPtk zXI`n_w@!-;X@lDi4o3StYJrbZGPMgtAE9!#drpOOyPPhBt4~_=kTzPLJGy7qZ1BK) zsCY1^TUr?gXK-X4euj#{WF6i`ef&6nNWox`hNN=A)&dFyz(F491#&>3S!CIh8y@iQ z&2{K6#kaQEBMHB%K?y`b6#qP%jlQuKK)({$L5!Laol8egIfn>GtKbX{pYzc7s~MS% zKWVku%IP1QxtTrD0BfnhmvCj%qvl<*D-jb+)x*x(CP5e2!42dA5A-WQ^xzNx0Rn;s z3l=nEe{!zDKq9w znl^FHk-2BjoSr>>&IwxP3m&6;@buZE6c10NN}W12iYE@$swNN&88U+Fg%JryBuFqK zOO`l9(UwtLhK`?tTmy{o8bAXAuLu$>L=ZNi-M(_a=Ixs>BG|za3!_x*@nT4e5N|kf z6p3Z^g5V%A!$y)EIjzyaMkA+98#K0E%bBga%^EmU zrjQ;J-1L|+RN&-kBZ*BIFmIkbfdXZS3n{|E+-Y>@j-&35Hc!@knKBYbERc}M;9@kA6+jG=}ObFje%7+j#?I^&F+f(HvJOhYX#)M~Im zEYdJgKm+Mm1CT$mAmk4#STJaV3kphr1HA6)Yd-q8#K^HNy9`szF&TS|OhjICNzImS zstG4U+<_+mmY2o!SI8)=}y1r=a`;e{PwKzWB4ZCKGn7h@n1<&tZ((OA+-Bh8B} zCiL-QjsJ->FhL^?43LmDtRMtHLcEAVpb@r0v>`1CQ%Ip!CHnH;t#xDyXpynW zPE#hGY|<%CoYsa@D52^MDkz?k;xj5c?Ut&KKBgj63$C!zimR>apyRBfC?u4^GSY~H z!YkCMW3NO31FO^#PDPX}1UOJbRLjRQm4nbn?KCe{9eRMGsjIfSA*>Vo*MkY7u$41N zcyK|(4tZeVvdtO+?~X@8a|8_2kXP4OKKLj^S!U6Imbd7uowl}X;rNZ)8-as^dDDc5 zVpwifXje2rT!4877IYQw_Rb)I1PK-#$#-85`u#fKivA!2jX*p%f(Hx`J`*Uy6u=NM z1^+JL3R-BOf-3eii&eo5S7?F~cu<<0Q;f@)kDuJE9? zyoGX^3Jd8nmnhD8t}Jh;Ljn+G#4M2xRHq|M>Q=|PC9djf6LA%o=;N;d1c3+jx`7~K z2BHp0re5>vjPbZ52oH7;N7v!r6sRBw=4G!CVOUlebQ3*lRm%+6;zJ6Hr7mHv5dTMf z@Q!xwfCLx-p+n5%!3`#3%F5IaUoGfC00yYK#bm(>hfL%KEMl-G1|S1ZI)fyXP_Xs1 zN0TP$fe-;ihq3^o2w>m>ckZABD|8G&7DEspLTIDl2vda|Bxtv~6-*p$t5^fw-f)V5 zg`a(a1z^ZS5-@6qJM6P)M=A>;x)6o%MZpJ8quf_g6+3WJWTgkQNK0GFQkh-^rWvWJ zO=pTzhr|>kH{FO&f0|Q{0ClKB?FdniI#V>EsceW?1XE!mCz)iCO*V;18R>*Ktcp=? zc#BHi`j7=bAZk$~SdilyH>k9#bx>Ex!l6#OmCBI{kQ_i%9kS5RN?odmUH_RJUzm6p z!4CG3RcuTPc<_k$b;b$H>`)AV@B-gO!j$te-mQSsN@E36p~^GX3Sl_~=8g7yV@OwK zA9^$45X&^%+0|rRz)TNyh_aelto)q70v4R0rBmz(83v(;yHLru6)D^q^uPu-ydePy zFj#vQlLvx*Gzwr4gGPf02JLbI5EmoL#j5Cm%1Ti#ZpmxILFGO<+4UW8^@ z3Zdzac2>Zl7r}^r44G{H4GJ5%MK5vV=ge0f0WnToKt>kqC%j&=EK;a@nAS zEL;jzyo3l;>t*PphPY9u~mW)gsv<#YjM`fQ>!}FUp5X8 z6aXNc;o2u7V6P&*2lbO8D!*QF#A;>M_uTF&yg`)#fjQ>)Vs_-q|Y2@3W92bW@ z{uNWB(iG`*45Ua2sX_Y|WaR`i7{J;&A!1pgLX=Exha_NjC72(tknn;Um`FuAXme%V zm9AEA&y`=+GMB+j@-3@2%mih@nTwzT9*Af}IdDP{+>ARS2*e@mkrHu7LI*1#dJw#I z$aBHz0nfFC4uDv~5}MG2Jr6<>deB2~eNcyNDh35)Ktd9VaOKPv%bs?aFAJvN214|6 z;8qYj%2$itmb;qEbLYdYi$w(~;1>y9nC~5u00urdN`YcUf)K8GY{2p*;Q^ph0FLPI zs!?)k5-*cO61l(doC5J0h$ zy7@#DJfxv-b(_lG`Va@D(7WD*dMjKhC)c^|C9jZ@lv)}HxXL)qtFkJ7Y4F zh!F`2O2C6Hj6b%a6lDw~W3S5G0SqY@Gu-F?ez?bd{=o!;6P&;Y4n5WgH88?6$)kR5 z;C}MwBt`(Zh)xdzVF4L%0TnQ~f=jt1VFFtt0rdc#=wO`^AoMl@1%lw_g5Y?ZKn%FR z>@o_Y1OW`Jz(V-x4p0lB;!p184+dw@IKaT~01u-u>IROd2sWxo%7P5?K>7Mg@d}JD zi?-mZxOJ~sZ8(Nn2PkaunfJ>s?uhQ z(ohY@EhpYaPt*;pkm9R`Zw~3E_^u#uJ}2QO=K{*&Ea+%)22L#^hu;(_Fal%97S1mw z&&UR2AjV{WL?ZlxKm-JW1!&*}Y(UC3?nPDr=W2^GwqU$e4hHA$1D z$~+_mIs^tL>$Wfr1Q;#pP@)dVK)J3?56+1KCr}Q8aTw2u=z?p{5DmGKMgtY22TFhp zj-Urx0D-vR?=oE zz=}vGcakeKhmRJoADb&wP(n*0j>x8n2v7hAbY}*FfCXOQ1(+#CNMsXhK(cn_;%<%p zN-pkhhUI85EX5M#Kqduf0G2ZG1wiCQUSujEt25985}bes^hG|{V*^M)F#=%_5KRxF zjsXXO0i$j(pDqjN;4m+M1NIWR`0@=*zym}8VML-mNMHjxB?xYy2oTQ%Y>j#DuM4<9 z@W7x5?7#}NzzX^<#Td#QS(7!dWB)bxF1JJz36MbW`Ys9Fph>Kt3KY!=-e3qs04_#n zbCQj89&ZT+%L$jP3cchC>4OTH^YV}gK4NOZtn)gtGdr(ysh%p^zAX$b%)%-Yb}{cS6Dz0cr6B3aTV#0EXnakU?65(qy}8T z1=jLIQj|m_0}@n#1%e<1BJ*HkDla)gMH;oK_#IJCC)|H?ym$&VE;6eAT+g01+>%+%+9T{U=7e?wM4Wv(UcD`P4BJ)3~;ju zY)#iRN(U7UKxnfBSh5HOtho$yay|k%sYW?pB|4jvBCyaTpp#G=!#Sx_^eFOCAvIDT z)eJSV^u`n0Oz-qsVh%o%CStE7M>5?;5-RHLZxrQ?Mxb!kDy`NE-}23I%HVJ6fIs`Q zCI2%~-oOuL)lUh`Ag*M{fYm`MDT$OwSdo%de1HYg3{Xls0RLWxsxPv1OSMZ7c)(5F05>tJVILNw%Hj&zZw9%QM9t9$#ejLb zalUZV9sN!Rt)MJ;uv1i$Q;d*Qn(zrN&-0#BQBT5U8#PS2@QN<7QYRH7C35u4FeAON z+ib#Y)Z`3<7Tt{Y4Usl!&(rqq1m4m}SCy}D7{^tM58qC*#ZXd8bJ9O+l`9ZrKTm2O zgLQ1lwrnfOrVu~_d_V|Vzz0ZxT}xm^qcR6{2VLn05=Lmf*(NtS!kpBvt;O~lHTR=Al&8`dB(FAp{3UDAF<+Doo^gu@?RF1P#Bo8SA3uYJ9 zP+t~#O+scBqh`Bv3%#&rE462LmJ7E~BY`#yy$$tn_D#m-s$v2W&@GHaRrb!U!$fja z-HLGhU}}pme&yFy+m}|mHc<{m$9Sfn=pZGH&4@yW2ojTQk&Li{H8CD^N)Z4B7T5!n zvILe@1xSVlQh=FkU<-I4Dpz0}S+{Rjw}V&rTjjQH*OCQN09;+51*8=7rt_y7S8*v~ zF9Q~aS!$)GG%|UyNF_IOEvX=a01lj>3+AT>#OE3T5Af>g>rBw>+Rtx4cw5(TD^08H zbdU$9!2bzyaK4=22J-PgeV2297yHJEBZ`Yqofq_&H)a`iF`$<_$EJG829CMVXLmhBbZGCcFIU0U;<+Bn8Rb-< zl|cjsF4RS5`2~Ui1ss@%6GkKafD8htCl9qEO8JzJ>V=OPBT&Exo-ztX;0^Gv8@ute zSO82Nc6@SqoV}8TNRu{eb65o723UYyFe;gx=8Hl3AFs_hcve&px?;!6GQ}Vkpx#lv%hVl(k%Ipjla9a9z1AYZ;eaGnf7L zmq{cBU;tWeK&N|om^}bk1;dy%>4v46aZUMP94+%Epa)EVtG7VD+yFG4UpzUIpgx_|}LlmvRf2aw$#p;HhD)vu*aAr3>zdA zBeA`vDCt8|Av?0kP_oGop}$aiZI)8sIHLVHk7vScbV6whxlcG6R5@DS#7ZTJu>U9J zDWzTewaa2ixAvqG$+>14*$(2Rt7L2)skojw0H6{GTr{asU<+Jesbjzha)7MAa-5ym zmQ@i)Sa~f`1_I)iT2bT$U;y#l6@~?tl%?6x9D-n@`KqURB!2t631SE!6HarmVUsED z5Xjbq+PR~y@Zv2}`!ldAI;oWY9XkW-&a&HGIQ4oR1~-BAW_Qv-ge37j4#1PCB*rK3lZccZ}Z9DdyyiSS$;Y&je64 zRqGR_dnBb{Qio@oa%$VQ^%b{wTfqFfA+~P3H9|+1QU#Fv1ycA@WI%UPCjY3xlANC# zV-ZSWaUji>+6HJq22`>IRv={rS6{k&aS=7Vvyjc(+`PrxAwocjPml|GXIsv3L}iez z_co!X;0APXzU+L)6hcaUfS8G(A~L`}iuJ(oOu;MMu_Im5gNi=NI8i&|(!)g4FT6WH zyu&fl(<2qLL0rUjc6y;#)QPqYrOJ-w#Ke{MqF?+ccp_=PDx^nxS5b8cq;|*eGv8p6 zaZp`8>N@5?nE%`P+=Gqdbv@SB z5YGb!n7{|az~h729zD}1oFj$+;wN3=9lX*+4<0fayZ9stoPf?c(~1!8y41OAp>U<-nv1&H7Ts=d%dplz|9Ahdq% zeH-569h#{V?locpLJ$e!lm+V5~>^Wcp*tPly2;C6?mDPOB<-H>&z}-1w{n@`FhM)v);0EH%eo>i6uIG~$^b)FesuW~W=fbMTe>uPljcmC9&N6~nNudukUmv*T!b{K(xptBI(-T? zYE(ps7Ez_T6f06gS*vbcWGJlIIb-LT-D5WGp0#Sp&i_G+_Uzd`eb&;A!ND4qJy z>(QsvtnLwocoflRitspH{D~GpcuiyhZ=%30d>+&JQZ~kgh8d&97`}+c;QMC(nKLi9CoPEhcHoylvYi7l@yC!smK(I zDYn?6j9E!_qg69=uRra-qmVfK(g>(@Ir2T2yMH<-| znrNPphMorqpuj;3u~9LG6!y_aX>L^Tp@I`P1Q!AVJupPV1IT$`!hsWnAk%6hDQA>} z3uXuts};H`E374oy5I?X{yC^cJq$qtds_%nX|cHp!b1@Xg@D4RD2U)e1|dOoK}UiX zcx{3QzWR}%Bu1EFh$D@-p-$nJYimpxHYaXL>GElAbBv^DBak`j_?1=l(rE9D`RehhX)i!h48y$p2Vk6=`I~N0#-LT^`frF_>R|+((v&8J0yB z>X~4iah*j}2OU^kab+51*qp|kTBuQn2O>BokwwT6if3rNme%XFcN!`*au2BI0}eOv zpn@Qf8arEjR9LM77%ONRL_%*c*K7h4c<{gpYHwiTay&8jZgi@4r`>jQXZKx(5?-{Y z+b~Th!g#?(5d;f7tbn)*Fu1@q6*O2a9~CON07HI3-~a*%6AZEE1=S+p0eCZcchYpE ze@HsHF$oIZx6YmG`nV6qJ5;;yqKmtSu>UkWPZ!Y}@VzYl$RmvR`in1ENkzPGz{4vK zq>V2sf3d+EBWWb|X=$weTp!z2*Z=n(hi{i*gT?VC%Okk_@(3}@S@X>|e<6PvDf>BS zX93_(G}8z?K(zm1L{Hbs)6oHm?5xdNQ`leNQab5$J+8p zNV26$VG7J;GUE{T{lO1&ivJ(ZYKF6$X@M~hp@>5i*uKYfBr-x9AZUiR8Huo|B2Y{K z5iWqM5sJr#0~${+eaXO4jl=_r3V`WGaspwBB$?-dhS!l>ZHt9*jq(P`c1?814NlNy~QZk@H z00%T+N{6gz1X-ZN1^?9Nvi=$He#o@FJw zBH=A>vt0>ZjHaifh~bMz597+gR(evGB0{ArHCSq?0!fjjB|WONYJC!4FVf+ExJ=C|(6BP#*${w-VGk1*x^1 zjh!o8A-h;`l^3pwRUu*D3enu5H@<#Nt7F@{!uPJ1zK?yOe*ZdNj9@lKn*A3@k#dLu zA1`^&`&UvDtpDJC@vAD#E9r|eR-<}(6nfPwl3N;CTiM3eku}W{U9#YZ-UiovTN+GZ z3R5$rW>QVbU9MB1>OPsd>3+za<)NDEkON+;Bj|kBf9-2t{?0ea`rL1Nl`L1mG8Vx1 zJ#UnytX?WJ*Caxl%6EpwRlNOEq*a>9Zg)G`ZSdfu`!Tyj0HH!i8Ag}ZjfPF z5$hU_tJ&q1iJr*bEF(G9P`>h*$*5&k2X@J46^fI^++SCB8P==jFMf6X>L$n9*H#Ah zu7!P)KmY16kA1u&vjM3`X!9}J(yk-5o9)J{pfS)v^0W00dD0GBc+Wu^G@&bY$cb$) z(Un{@9(4L{Ful7ji*7e@uf#K-0d1+32F?5ARE9FdX-;L3@%p4H)mDb4B0}D-c%!os zaaNh3-^^>Uhbi$bW4xggSBXS%O_Prwdz=}UHAOkDagw9lEuo+Y_V6cLrNX$D$O3d$M-#viBHj8 zinPj5Z~_zbn5hYfnfz=P@cP-Wr;ho|=R|!d>(HqUvo7^N)oh{qH`8-y8yA0_|c+i4jj#~#$Q`#XKF#9J%Y1}xGQmPji zd%u5-V}>7)ynuhaVe#HY$~(TycMtI755M@ro+R>8EIjzFKYr{p9{hd}iTFuEe)(1u zU~iW2n&m9|ei^Ul49-0M>ra1~^=2sLFQ5fHe&#TzHEyogXFh^p3}Y~b1Y)#Rd$F~3 zAoC?-k_DKdRPFOVUjRyHcO^G7f@zQ!L$G}OMtn_mX>&JZrm;7Or+)7@67jc1?Elw( zYNET@CLHh=pEbS~n5p$CALH*`>FU{WZ6bvA`Y zH*}cwQD32eEX9E4W=K*ufl*=?7AQ%TG$vMZ1&uKTCLneWVSFTbCB!u*zjY-jhDi{y zKF&oE7Xd)imo(cF0A8hXL=Z!Aqj*ZVeo6R)MksSa2#JxngL~I%mFS2xSQF~^eVS;A zOo(gI_H23dY}1B{*hWXCn2OGpZLR2vgY-sJ5l3ufi-Gh;t%p(#XcifRZc}Gd-ZNrh zAwFW_7j!@fXhM8-paz|^V$V2Shv65$#ZxHgd@BfjrZgIGCp0g}HXd;v#{X0v165BB z!aBP$63SF@>Nj&P7lbh9j+po^H+N<9SdZ~|g!71xlcNCexPad_F^2GqZeeJL@FY{RhHpV{fT0Cg#f~_;;X4gq%neo+yt< zX@2epgiVQrPHB`-DTz->iF!wco|inJw-ovJgj)$`Ua1sdd3g-hd2m*MY^Hi(XnLEq zdJ0n&6Z4U2QI}G3Zr<}T@rDP;XaXKECy&;WF4l&CK{Ih+a4r)|Q~&jR%oTkusFS@C zcte4H@W+(-h?JFCgO|yVnaO>F$C+43m73X!-Y1p1CYJUWgp{At67$_IePec ze^^Lh3K>#cXq!mE2oY#JZK*s|kzjlVoWaR4854CM#*ww9Xj(UK@>Vh<13nho2Zs?S z)@f;vIU1e;YA)z-1kyxS`CT+&aaFm5Mfr}O=$_>_Wul0gF#j5(GZ>XMdYU(ineeG0 z?CC0`_=?tsM?%_0rbwjAHl#($q(<6`c65qMnxwF(ZD(XKxOiGc!brVHQXV#SW@s=n zg;R6TCD1vcSa*RFx+P^`CYh0f`zA{kc*0*A?K(=n5f`4sg$a71Zj{x7m+v8ke9cqoT{n*DHRMEs{ILc z0r-Un8YB}bXisM(tp#YX=SX;voN2liw>MjJ!DwyBhi|Ha%2fw%Ff)6RZ$DE?+(>Fk zqg~wTqwnaWHkfNXDx-YYeMD%Z(i&jTDxcUolwNd+I{$iX^ckSB*=Dubh56!yXK96T z#-9t;Jj_FSr+!0Gf*6$fG?}*ct^9bc+?td*3bH#Yvizv6K>Dbf2%hm7SpjIO z^6Fsa8nfrhVdC0_Fs?~GTVZHv7>pH2Q**Eg#i){T z5R;sNTqz?b19t@-N@G6enA)hF+i9YK_dgH7PT$03K)I9L(y>HYt&113Cp)rNDS0L< zw`3SSSW0qOPQ!C7LZ6@ydW}B~lv)TzhbhVFGXBN%M2M_v2iQiH%>Ioqu9o*(Hvru{5TE zOAJ?P8&SImkP_jzv3R9&>lk3VR;ldwzz`g%pcuh8Siu%N!6JdFotmkc7jzuV!E!dL z9qg$}A;KdJ!aaAwKU;udsAonizSRS6NB>eWgjQ&tJ0$`;re%r;S5UPSkuuR3T=4^f zX;7?8G;A+qT|Hqa{ncU~If} zi@e<0xS!|2H0!Q|n=gcGxMSJIfvdQ1%((EXpGh$+?91~mO$GSgiE-%jJWqHxV;?5GdstU`Y|Cy7nzXFX8Vs{<%*Hco#{$h1zD&@^T%S5C%y&%8c^tV@VSp=Q zFda3t7nLuiMY;W|xtR;5+hfg&%rk_L1)#g3-K>Xc@CF=+u+WFKma$t1Fo)wzcK9oO zVN1Jf3(qRCyV-iYul&!HDa)Jb&q3X-Gupf0+MemMyxW_-&aP-yRTeQ1KhBDlx*F(NG942ecQ&-Y;kaj-8#ddI7$;Foil|jEFAa)?J z$yzmP6RR|@J8GmM8m@wf9{-0OAF{g_jKTi+j*ZR0@eJ7~w4%wYLX4e+m`xKKT&kD1 z%qZO1LigFA4UsDBkf3_1|H*lxI;sf@Xn*#?WPP-lJILfFrjb;p1=|;IJ(x6ef^S;M zy`?h?s|G(DWD+a3{c{|$i_`9$Et99aUN+RFX|1bl)Mxy$s$9m`-LgMg-NXyb_9>gg ze9*+0)a?Ye`MUOMTs~oZZ7K;v*TFg`1YDnci;9e~T;Q>`kxEW6T0WFkkUeKhnplO(PCCXAIMA zC-s|{%dZ%-w6}$!w+b>R&7sC^wRdg0C>d~dg50!AKmlORlV(cQBFcM;EeGN)3NkbT z)J4te)A$^%C@$2f4C2~-;&k5K(E4kAtk5#6dArP&F>c-`3{rodvo7AyFmA$y{@y;W zc|Qj+t4d*&UOejR-ueAe5aZ<5TqMNViy=v-X1bTmc^DABJ~4BAXGcF@Feh!Af_1&b z+W69#OhTT+D_8sy&aDxBI=pIo${l{x)Y{MAo#%Q!-Qj8Mj7sM$T7)}T)lz-cc66mm zdZeisrPS`cPXBGy+`hfl9_>iV?O{!eaAb?OxJTt~ZQhHevsl|OY{>kok+K(|o9ncs zt|eiT1&RTOa<~`MNL1cj266BOC>DJ*-IzB<5&uRfXAjgX-&BPV~_q+0R>J>w3EwD_W7r)}h@8pun|dSgwI zu6l;Hm8(>;)?)J84$)h<^;-dNGwj=evi@TWOBqL;aJ1w(3gp*um)wMH8W$huC7#C3 z{+-G0vdeDSwY=xsy4eAp<3UT%g8s*jKI25*;(+V+qAKGe+~X;KmJd1UJKr!wTO>i3 z>GdthtpCTLn#;8I{uZRJrg{CoO)#|up3)^K^)h*lcRk$0JzWQn@b|0m60gZ<-s{hu z6IqwpO8bTYdK%^sU$I}FGzow!X%iBMEtIYF*gg8w`3w*N1P&xv(BMIY2^B76*w7#X zh8r9T9I_CiMS>S6Zsgd}V?&JzB~Bc&Xb~brCRMIX$x>y@MTS($T)F5_&6hP{)}-0f zB>zpEKpCy1i4tc{mnLBX1*-Dq(VZuc#{5~8>Qta`7=QS=F6ThY<@6e_6P)*2Tlm!88?Cp2!tmPUfeju z;sKHie;9xW?}8%)YJBi9VMv4{9adC`{a{G%*2Rw}Uod<@?G3qKX9&Lhd-&wTGooML zK7B;@@!!v1zrTJ){$m6!01FHdKmiZ*&p-hQG!Q`u?GrFT3GH+6LH#Hs3%>+6 zQ*tuW{HSAy*EZwKH!Q9o?KCV)!?KJrvdB%d&ZK;eI0QJ*;LGET^Nl#=mNPB@5s*Vp zxi$r=PPjV<0u#RT2uhEk^$_ZFAot=k^w5b073j}}0{yPNj1V2@00|B_AcO-F&>%|P z0@y$V_BK+~(~TSzXeh7Nk_suMlCp}YR8uv})m2-a>8Pe+g{oFwxgrWzSyMuFt*CYt zYpPjgHECE~!?Kkt9T(X{M;vFA@kSi6HN;151M7oZzXTIhM5>&A!|$%+1C`z{z~~?f0_W5b%t-WWd$%0L4*f3@F3BMjyS?&g)}ZmsbX2R zwN|EZdP-GVf4#~lV3$?8uCcN@mgrk+I(q7%VO{!FWZi1DEVYo1Ymxm>N>MDb%Hs7| ztWQGgZItjL>m(f!>1)Oq={n@vZhI`Z$8g2<@!QC>Fu{b(+(n=cI!rT7w9%N9d^FPH zNSA|z|Mg8Xfy>l@aV@mS!VlN}{cYmo66n}X)*EIHWjhfa)n|k_j{o#zI#bqN_J~UE zj_2GNQh;`%LQ+pe1F zT&pJgX|J7a8z%9uTIuSfgTAUO`?KOI|F6H#HQDfiB_;pU+D{MxmtuuwE>!`WS!A>~ zz2K;C-U3%(`Vu&E5e5&eDP6lppoMu!CNh#)5@oPZFn(#qUz)oNj5b8ek(tQ2!7|JYo+d2SJtl>c^_0 zS*?6YJD*k3_bO)f#B1LhB&*_=KKco5ZH3GVTJR@819}C3Q6q}k%*RQcutg?ugWviV zv6sB0!M(~7u1~dTtgu)jC8pePY^m+hIs6Y~$MuQ4ek9#BthEh}^ zjP9pE4PwznHyWV@g%qR%>S#w%l%bPqbfgzbDS*gkHvbrjG;I|MWmn{8NUDs|C__;T zP?ALxxQxM3V)&Y4cc zeq^wKD(uK$7asvAz<3lmf&mNwg~$p33I|vo6cT{OHTDyrn;HQbkB~;t9>KF;gs5m0 z3fg|MmU`CXnXX*oE1~V=kcYJGZE1zu@ddZHX!|X#c1tW~u>`oE9By;m4!X+SdkEM!~gE=^h5-3V&sYV2PN)+6`?SK8aI!OuD#xk z$vA6>Jb=YJ!*LI8-Rp@`R3J?TpOB+$v?5Ou$xI81N)nk#`Blx2l7zDSq>QvGCwr)% zo5jl)ZPCSTQO(h`CP+aa;j&wQlS~=%<>$+o zKn}B=x5~?hpuXOu~mPH9{hL zyap(5#34R4idXAe8_UtgPeAQyac$5E@KbvT^mX@i*nK_|Jg@$W@|xk zE`~V793V*58{L~+6{KpnfJ8XR9J;LOO45=XQ}BCX$q%go_fv5qO82?w+Pc&FPP)e&mbVxM4ePkd~+V2s!|9ilswPm@5?L8epi; z6Uu9Xw$_ZNRU^<7u`CR+2t*=9X>?0!A&V-%r6%R*N26;|kE&Gr9U_~5UX+%hv637PHtOSSHIQOSsD*^wKmI|96*y0ax) zswxB|FMT7DK7gjf$&5Piga62>K*)g{B@vBz5j@iYlg&9R$m0OUNte)}gE}}96Ihr# z$)So%lZ$)7*C7b!Ap%1QxrDGC4&yiqQ#~HcL4%;3g9sE4qoR3g8RW4&Ov2@u4!`m|hUvUE*?{KSq~+4BBr7)CGQ;AcIyc0+ zX6cnSOs;8*I_7e&X6vmd!!|0DI$UwPRPs9MGK;!-CAn!cyWx>I0~|$cL`GyYzw4?E zLMC6jf?;ZmASs~?OoJZk|Cn5~S59k0cdH{&H8IZ%U@;Hw^`nK>HGGxQLq+7PB5DNBr zI7b5G%P`W@L0;^|#KOfO)J5=!BI8j2mMH+5RDcekfDzyT-?)fRIZ2>H zkBtKWAmhVYd8BA0%4yu1Xj2*`TN)-qGON(WsWD1H(wcSLHnM}7p$t3o(Mm@W7Aj*$ zbDJA_B)YX5rT=t03wcwnTam|eBeOWOyGE4D0_=+elqv-r5^}kct;*kkzq-Lz`@5tJ(V2I&@4TH zuqOgg04#hX+<+3B`9V-QJ)9{?!U_NY0Du-z!=i-7szl0aq{bv`I;cq>W>ZS3e8ywz zO|dAdU{MuJa=*HWPOrcVY;%@vlq6z{$FVGnwG7L%j2g0}5xW?mzi_uTGsL)yARGA$ zfOJGzqO&@~H^P7~v7!uy8xzIklG7M8|8g8UKt+Ec4%{FP$wV;9{78i{#s;H8@DMCz zWGoFsN&nKEP|qv~(A>d?zyJd%o(`at0|0?c(SX;yFxrGrpCpLeOumu2DC)D2=es`a z(>~^7Q3i2Q>!T0+i&5#zsO)1tmg3PIeUR?cKMqk4B3(ZdsV))Ozq=?K7@>5EReUuo2K%v=#n=#dz-wQmTdu?d;1#;@*9OLylH|B4@yk^%94VMoc)R> ziL@_|d`0gN$xsub2aT`@bv+E7P}Q?Rm?T1(;edwh-Q`yl@BcsW-DO#pC8Rr+4(V=} zZlp_M=|);YbeED?l3+KFqQ1@IUt$tdkaS3K=vP9;9LEEZHrr9U9EhXn6Wb&waK` z7Tkhs|32h&$^?HXjD1{bF5^Qn>Aloy0u#?H{vB2Ior!;(;IL3z;LJ$d9f-g&Wo!mJ z3rM`zs+a&|tsf@JF%qxduxJplO5XOz00zDUjN-G++0^Mrbm^-m17KLd3nDZj6yV4Z zOTKBO@mEaqldg-Hgoo^yuLoT@!IX!URylZTXLr$?ompzPjNgI1Q3uv^seCe_cPBL7 zv8ERgY3`RWFG%nuhX4J~0Ch{E+>$QC59ULv6dI5=UQMw^=#ZdHFw3R8X%1y#yZh`? zQL#sPEg-k;vzSg?u9;7`;`0^807hsaZb6#ZVt`><-kPS}iBW3Wq`D&NB`zwQNOD6? z#_f-8`7XbQTwx{OQlpdheHl)fB=~bCsGMuH&|Vw9JwUgArL4r7k&r&$$v19^+xq^y z`Hw&5ovy9Hk>&5t1VUSrd$&lD^POq)+N>cMDJjljX(>Xn4>v1AkFzo3qYOhsi6%Pa z!OK=_o3+bJ7SSwekjXATd8lu@zTdTC1^?U=%5DU1d%131ZLjWnUe9Jcd&%VrYI3l` znB5c8u{k-_u%}jI^z40lVQET(X1v~i9wuETg+@;E`}~q0uFVtYZFcvTQgDY7<=97!

    o?hZHUS!zYqXTLdz+ep^P*x6ViR*cl#Y6PlurZa_f$=Ka67+o z%!{z|mPDCcOs*!kr1;O$fn{rImNc1zFu zLIM{2iavy??5Ou+FxaRk41Rt*&l58gHr^@)nD})^YJH(iFcE?Lk!kbG$!KWVvwp%L z&Ov%XYIe4N*5BDFW>dOiU4~OS3bp^zWd5W~tKnMLgY#L%#QwGy%sZo_Zhdn1RJnXw zi|@p;^V3}QOLOfY?H{V~*uRe7*K7>bj?1TP-V*I$0^NW1etdx=c&X!rbXx8gHp-x^ zCE$w`o?5;qs5(rb$mi_`%|uI0%o#;)9zMftTGd(0GP%LhPcq6p(iEWSeU@1T&Jow^ z>I*r!YGr5+y#}6BS6TD=^&>6&vO-89rLUeTS%y2?d+)dI$>QH?1Vr^WPJgUBMo?;3 z6u5UBofe{GgL6rH2PGRfWPQ)ab&Sb6S@T;i2wN3A)`t%<|3-eI9ER+jdx>?EJ3Q7& zf279b_w8?*n%KB!I1lvgXDgh_wYeSXt>*1p2U8rJ8rL|`=AM^&a{ej>!2_@*=Sq+RWp_S|36#edJ| zQv5YkrqTbh%U@32U;g!_^iTgM>Hx$ye{tq3gk*ry8-JBde?|2xm3x2nCs!J;uha^! z#14FPp6>2hI#NDyBt6g~`8lUl&_elqL)Xu-ap|3Yeq^Q$uiCHlrkSIs(bvO$zRl)KZmakmF(|0Rm{H5vpq#v=8W_0Q{l0Tjr*oZ1{WK8P7H&KU9@nFFf0O{*u1~K3)cz{SI2ZeDUIU@XyPT%-^ASS7DvM zUou~XFaCZddG-4DZ`3z{4ju{x0I=MGf&Z%oSpG4qJ9#_#*#$T`!tF!g&%Hg}yq(lF z)dHSB_w*NVc=c{naDE-f!ExA)GwWe-Ze`SPY_cxL(A>f(Y(^bBA0 z%*@Q}+TwE0mpy@~>4eVt^@X{G#U-KW>6YHFQ_I_%OG_(@%j*mCQ&Tg`i%W@J3yTX2 z`5#w$#ZyEl ze%gQkYkzP+I8X?Fm=b+wtjljK`f4C0`kC}~&x-^k;^u?5syJ(y6bTRj=qyaR?smc2 zvS0cL|8Qcijq+X|>iXd)apA;t7^a?PEph42Y9vZ`*&`@2XDls`l}DCI59D-)oG4fBe&c1f8oof&2UW|2??>-~QkA0Q4RJgfeI} z!BGGZ7;HY$R6O{GgiR|?qq*c$0*$Eq+DLP$`a2vb1ssXQ0>Rv}bQ;)}^6^X|N{kh@ z2nfWLayVWaZLN$fL`1?Ewc4s?N;Oh>t;gD`jf!9eTKQV-HS@LRt?u=7^F@n|Hc#Ri zwL9vTTU}=}!Vy?@94P5_C_8-1$+{5Csb2*s?g!&3;1DoCK3Lio6TaUPJ|1)igGIgT6NQ_?6Xh2|NY|| zHj;o@??cylo|LbQeiBOhVs|oCHd8O$Rr^>Pt)(GAardigsZ{&k_HFN<;LF4G%BN3X z_1^yaF+TY2UAV&Efn(KBPcSY59{NMJ&?SyH5yro#7p5NcX4rk1F-pc)YsBRDt zp50I&u?kfbF>7{NBpJ_WSt{W+q~E-Y$R|^qwFOKAWEjCE#Wl5w=mnvp!Cm;2Qf3BF^WcM|h6+#e{>V~cEyH^jVEwN&l*u-dxTl2277z$J<_PyW4j zYEat7m_E*9yB^j?{GuaNOJT)bNw!qDnZ3SWfy?(-Wf5GJ(G~(hjM|eGbT!pGDJP!6 z;t_#V^-X;%0&1sy^grK|;uFl+3eN}idsSX1tSC{bATpcH$ff~!l9VKAozvbfEIKH0 zzLK!56dK!4^WFzd0Reh=jCxE(k3|B-zH+Z7cyE7p7~}mp;x{hdN9dnRQ`_k`De)fT zKQ$MU-rsZOCnngdOwJe(br0F(*0$2iA&vfA-^Ex){}Q3tERdaL6}Q9+tTv zTWZ#^{MU_7bab(ORJdSIhQ4#{ph5C?H$F|2>5Ss#{rc}2`&*(MD}7~N9u3=f7W>mi)cWStqj?KkeV&ZS>l>;`Nr>%?m z%-{DY(=s;IFE?a2Uw0(XXE9L}E%xWB+D%WG)81 zQgVCO@q7K7&BLDF!opWI;P1q8wLb@$U!N7Vb9O_>^?3lzqJ48-_r$K2SDOP*<`V^t z^4{mIbbUrl&r}9fB|NI`dqd-Hz!z}f|K(2PP?)&nOQf3Lw?BuH18nK~ub7%`FGy0_ zfYxA~x!kM}cA*qhJxNR&+tMH_r_7smesr5QE%?5dymHU;)RTd}1Z?xWx|`+PQaG%n zBOs=pseV$;G>!E|%VCKp@DR=_SB(EjLrLVVlg(peCbfz;e8Tf_95grSyE0eBT0Bu9 zc}lZ`R9wO{;ti_mZbhF2XcQUFPZezHW+3u63~CW$$wFkYmM>k@v`oKZ!dhb=La!g& zQ@-P(>mg#S9O91JjR)+~vK}9ou!7`}YKE%?R4myY%3ryX8OxkrQ&o>!{kl*<60&iQ zOHBwLt;fXQ zR{SV@)@5y3FP?R_#7T1`jRra91VIH$U!~6)A2w2r`3v2F79cm&3bSqkMuaby?rA>v zHsa$&h`Dcv_9;`G^9{e8&)%abmEskkx^`9oaeaz9W-jGLmeBON8qZ3bOm4#Lo(Q8D zq<2{idBOR>8v>&m9u9`%Cf}T|74UB=iqGS{oKbCXHntUg+l9b9g$Q?(xNftWU*i1a zKI7&&qp3U9bB1$|$&Ex@6w4KwzWEj+@@@~Ar6-`&@LR!C7TGZNMo*#K3y$gl9Z{*_t#Lbb?tdpfPe zst*JbJ_k1iI1s7Bl0AkE>nD{waB#Ke^4}f@Fw15?7njRK!3{gYeYaoz*rndK=Mo@r0QUx^&*lnnyRa)Rml^Mc6s+t>M%aDY=Z#;e#vx5Gr|qe?oOYzG=2x-JdHU?PMmlO#b9o zD9cESqhkp1GKNgd1u#k0zcZW9CjLe|+tHXgP*+`$?ePG*~*j151~ zi$xLNULjeCzk&zq>3jcahPN+mK6lRip!3+QkZb?<*IR?=e>-;k_qUJCq9gc^RONba zhZ7w~n}=K+MMGCfg{|4m>OQ{;-F|h5`yaBs6F)Fdvf$=^Zs-&4pB7?S)7* zOOic^r6S;8tGdP4u)3iToCV#OHfB0W_L$$M5WD_9`#9P^&{Iv#!vPEM8()gJ&afq?FEUXzXzst!oF6 z7-;&4^eIb;mcYFUYf_2_2|CCi(|XHAS{#?zpG?ohoHuObjZ9UrjjPyKJW{*glBe@@ z{|2JG9b@o?$bSVWlf010XA6DjBxC2m97JQ}TPcO*a#D{nO}tcRx{5nJ@DJB8h`eF9 zc8$Lzk5x1>{BxiKCINYx8FI}_k8Yz0XO%@L7@r4I^Kt`OW=DGlIxMTc{0nR3{UdrgBxzTnNVtLn|R1EdGBhK*6+r+uJ z{Q-@iQemYx3YQvc*RkBM_pID2$diK;eK;Sk1$ekB&n~?d50>9G@_oaVOp2d+(8Wf1 z8%a(3g!Z0Cjea@u2RjR_IG(ULq`MPMn*{`?z1!|e+yuR`EG1u^PogY!`EZl8hm#C* zO^>CHPdvb68pkI{=}5;>`DU<8Qvg-mNWB+dYaCiOsWQKa^&DQ1HxI!C8l`@2OSN6X z*jnh=NmDJE10Yx+y-KX=Xny`VafRwzM#DXq}V|FIIrpCdKEU%&$D7|bIWdPEYn zobFu4of7=?PMMGMCd|jh7K$=C3)06wO7VAlo3{KaqdMI(IJJN$-fC1YJX?uRGBu)`EwX`c@)h>;zjbF5&16T@Jh5%(Zb$~Q z3dz+$wcfO%^{5NEl-^w6YtCCl%e~0Ht{o7SfNMp_^RB#^`)xAT z_HbxZk+((y%s4W!`>mKnWdMxbFkUlQMk$<5tPoa16&M6LEAL-mQK=&N9wR>VJE3Zn z4vB>#>qJ{`kfuT;n?y3L5mX-Kom z0RyGkCHy-RS6YR8#Tu9wYw2!l!{-~C{2J^Xo1}8623m?Phk(!RGX8ai(fhdIxaByr zz8tJdd+L_-T)D6(v~Zv;J*?XfCd&=gR{P#l11!>EMwe)~=9OrsvCtLP-P7h5M%12A zx3J2#v}fna1+}14S~~G9Ie0xKlPfe`f#mNS2o!WBD#&1*LY|~L{Ta7aqy)&sQetiQ<5GW&MAhAZ&q_odeY{D$0subirxb|}FoWnXo zYZ{u=I`sY{8D}SBn|AKMC7BDYF6h*~$jReM;nU4w+b-=4qj$ausRWPPIG(^?k7wpN zJt@8=J=1z2w@Ze$03t10c{L;9ncX?<-TN!uKd!q8$$F^A^mq)?jJ6-9+esJIUx2d# zwaF*<+e|;;V@$seh`&YTWoVg9-(Nr{uhZq?U!yeu9XFOSW9eLs$ zf5YfFmfIQ?BRGOT&?8IISjj4#sJDOHKj(-xS#-+6Z3^19f&qc73;=ek0WQqIUqdY( zD-Sj+Lp~i#VZK2@9ZO!%K}pP@C}vQ4Vo-KsP@Zt;3E_~U&XBUskSb^g9Oe%LJwBd z8AucbyFL=zUavLZ~k#=r%IHLJ}r2FX|8j#;-li~ zNFD>JC;~@ZA4ftThiDog0>F{Pe%gFbS|F!`?~APm7GAi!RTiUrm%BK)opc6)#0i{) zJRdVS#zUe%w)1r~{epK*kdilnQZYEfNE|^S;F2fcvCrtR&iKwRyM;`grmOPN|HKUb zb7SF=-d)Wys$$Ua)&3vJ=3`R5O!4O<_A@h7?%e()6XIF-!L90dS=&9K(Bxr6T|Dc=tla5r zCumNJZ_d?fQ2$g=EqsnMZ;qpVPG@~Uj~}4VIB&ErXyP?*mQV7a(>+_Cw+Wv|=96%5 zf@G%0sS|uJNR?0mSlt`(0qMa0G{yAeDP)NGW>jo7@6=1y7TFrnQ3C{DGGxHm;8le zLLA5-kUee9|q2HZ7r1PiQu4zB|hF2eTL)9 zKyI&%H57roQknG%di5h2dd0PV6^P;f-P?m z(5w6dN5`8nUvA&OM8;Df7ZtBThwp+;dX_G4_g~7-dra-4))xf`Ke_#zi>M#+`Z4!h zZ_xM0{)-<&Aq8^^{G+SkJMHTLy8EUb2KXxC-wF{HB!b+MWjxgXa3EoIp!N44K<~(2 z?%Y4mmJ&#U=&J_N@y35wlTk5eelTQsdij|;Z9yV zl6@=UMLY3Rhd=6ehq0E9p^+?Bq4tX(Dj?Jm)w;_EhT&X40)>sm|zGDaLJp$p+85Zmhu zsk3qP=#Cr`AX2o$_wn%8y~3x5cx=MP^uJS}5SHD&{80~vuf6hL>AtXIT>B?D#5v778P9WKf#mb4|Q|qcPn`>%(sm! zgzesjjtUQ}cpfQC9J!nx1t%Vv*B=>8-d5V(s$p)^f8LrA-C23vRX)Ar;Fv+)|FC_I z^Z3h-K;zDp0#F#SEB5@-Rqa+jpM+fq$Okyu_&!Ch|2y>*#G}9EZo61jxR~>9@$tl+ zV*Q=k1UCnk*6mbaTGej^Ws6BI=a_AXQ_^CO5M7rE0R^?Vj+J z+1NQ|_{6z6xZ%-%$VME19V!w+BuCgpGop-x$3$+Af%}$3p#VT`!@4X32UINiW1F=u z12q_k(QjlETa4DC6)>E`0wX^~F_MZvi(Ks-z+h(Oe_%SXUEE^TL?+c7F;{Rof(^+H zXHi6h$;vpfIVMOjR6-cS0iQ?D*BI6psCt+vMl{3Nxlsg?=x1#XUxuUqqiS614gdQO zm%;oDIq>RW+bbu{)qXgU@p1j;)w$zXI?e426_VVaL{B3?c&J z#JAfY$#VaOhF?QygoNdR%8~yVGc;YI8vBSIv!Q|Z+fyVa&yj=!a5&v)c)gQ^ro?uh zPi9HJHXD;?*GrV)hm35J163=w#r?STkzNZmp7^de`o)iDf9;CqETVXEhv{nhT8ZVF z_(0Gk!P-uyvhn(^E8aRK0>L4nra>@{AmFDAc&24a>8pSW`BRExWePJL_n~}{{-oGf zJ!M^S917ME)FMSrA|8Y1V4~cm$o6O@z}#mmngWGH;;akY@k42$MMd3d&O+F3e7ceT z@*^#OATF5-iC<;Gl&pa&m27}uGjwDe5d|SUL-Mzj@uE<;h-uAEfCLJTlANIs>y^G| zM9lHk&5fPZ)HaErKrlidq(QZu20?xMN=Z_qo+yUI*Z|KT)kHjRB|2YdHCLr#V*8ia z#N5^?T_Z~`H(8CrP!t8Xbt2*Jh;YTZs8|a+`7Q^9L?b~*K0fH^w?d$5RxXO{-yZx*$#3PI8$nOk`FfLL0z7T52JBDt2oVSX z@ClHzZAA%(TMAHh#y8%t^Gyo{Af`Fw#X)_K58iH*i1sl~R;LP7#?2^)g2K$G;5KO% zG1=A$bBVXsnFsZ>&I$U&h`qek-dmUa#c~VR;5doUz5G30>7&x@pq!2J`|Kam$3@G% zl#5>jtaT&tg25f|C58wMR(E`kVjT)(Y%wIe;`*r8}3klFI z2-mwiu3FE}aUV#O_~VnkSReZ&gasINZ%Een=r zjG-KdCp@%K%s0(9Ub2a?Q7ygIw8Y{ra>vpi>cw$@I5%fdF6ygvF((q-ttNA3 zFPW~K1BGBZ2;L%cMKjC}&0(6By<_ngD?}yp6JaNSW3zSzf|KR`!^ECID1L#>D|I?W!=Mfj~4WdhuL*yTN*TmR-(~}KDDIp__ZugB63?$5opRKq?J&TA_=8L zXZp~-_hoM4Uqd+fPc|fu-Td3~nfRc1`!qKm!CbBs2~WT^JB~ciVF2nx9>Z7%WLhl( z!-~*2r|N(^Qe#{zNw_NQp#yLSX~m?GnM4FNc*AFcAN^wBV_8yyb=m|Q$1ORno}Wlv z%NCKZk9=d`Q;77YfoE*_&;@=qt^f^n+mK^Nm(#ALh---_6rjD#y^H&0Y<{)HwT$0V zM1?=Vq_*Rd{!(AXmcrs4!74Z{aUEarvJ`-$l{75Lc+YF#1KzEayHRXMxJFT=XxR{! zY8YBnW%iwt2+hPzX*GxnXU+B3`>C?g?28A&-&WX^x` zjR={Y5;O5tx?QKA;Ko$dns~}x!+))JBT(<~wvzRe%Dd1dBZV@tX+wPM9FQI%z1~$P z2ZSTaSu+fuxWkhC*VrmyJOhYV@q)YTTk7${QW$3nKl=8nSvr@wp=5Pm>gXJU{CKG{ z6Wwanba$iTtGQY=@!Fp<2{zzQKOuJ*phSS(#v27X+s0fL`}?JrqLP!G9Ca$7ySNA7BAfEq-w3QgqLCQi3U zqK=!*p$z?sqE{inl_%*(in9Wk0n`xXE+8T5BqDP7L^q_K0}qNyvb*IjunePzPVWis zoM*&z5j{$_lA?X>gyK!efdTnY!jaJweourE;6a{dd`9O8$|CGwg*^{`NNZA5GQa2J zU5($)YWbA=+up*26yFM7)a9Pe501N;|?R zr^gO90J)}=U@gifyL7PHcUAwpdxek>tdDHx*-G}k8pXt2qTWO7mM3w({H4!T1G-h(HC7lS-vSGZ#XLH&}6*5!$G+TulEKq#1U z;>XppaELP#=q)8`iV_e|;!)kFMQ8M7o-4>ao0*Dezl_jaG_rDX-=-rZgD~T`KVD}S z$$fhKVjy#6WT&)<|3$ae_lgByiQgIXB-Q;0vDSsu27AQUt0*3f5O)dSqHG zPsc{^b{xm3kiJLw2TbkWDq4sdGB&!{SMSoN@lA-D1PxPp2hdqey|+*ae3fGa7FWpp z5-qSvZy;m>H#f@l(^`(Y;>pL`F)azDY&H&Dw12%|{@LxiS>y}tOH2-ox!CyHPiR&bE@k&H(ILSHN-#NC7dOihgm!ket zn+D=;VmCX-8X$Z&SfFypsBEksep`7voWjMHm5*1J?E`m{#NXPM^#iX*Vn?~`s9DO3 zc3So$ZK1O!HyfdQ9QX(Vg42phWe8HBk_!dP#3=UM;;ksIhkbMUc(6GA_6beeB%2b0 z^O4aPI}aDl=q6rVjf^>>A&R$R!(Ad?$&=KV$d+FP*tf6*A0%7R4L# zkX+($eTz%7-RY`}l_(%%mpS=JT?YlEDN)d3xt`^Ag!Eb~mXQ6)(TR_Hwc5k@Z>Vcx7fzPgrRK`IrD;_&`b@!To-xW{_r@`DjeRKTkTKuKRrg?Q1LAP%*kN&(V4q3MN%* z@}DelS~ha)ea9G4iCY(`ISIT71w#NPX({q<1$m9A#%H^h?FcxBV4WkW@^&gIJ3MN| zG%)Gn8PW8}OO-_ZVd|BkCl-<>&lCs{+B8aPzv)n{D+6;)Kq@KK2!Jw8EGeyK3KtE4 zun3;(`fl@olXhaXH)sZAisi&xCRQ<`EahnE$T5%Rzfon@YAFD0{60bPP&)OTTW++a zf9Ucd3tkJaU(WHeg=}P4wtws+Kz_S>h?+tBaEp4weSB>I#YV1So%}X@2Yqjh(Vm|M z9-$<;g{HU>Q@bitr%J4Z2sAwsNOe;dzy_r4LPrpeGR6ZLrw6w0fT@4PQpPZ=bxq58 z#Z%y+KnoF23B^R1)?HHd7oM@wmnqIN^`t#d7CoCLA7hpX5tkDalklf6WJYwfL~NIf zwQvR>UTg?aB0CVYCpWd@iJ;B`>`|Z}iY3~n#MUt;reGbMA{lfP`llnuDZx_*xnTh1 z_+)^fP$@{6K$PM{RUpRf6g5v9G;V+*j} zv@n9S3F-7T>5NnLmjSZnYo9+0(`B|%XHn2)PtY3HQycxIHLlM-CRAmh`Q$%a+;}@_ zcS^rKP)tQLyORf?_CeFff(UQWFx-V_hCn(WG*YFuiL@ECHmQ53hgG4vK&ND%&-vHA zPd8RCHZTdbo6qx|H=bMwe3?o%-7(A2;3u^4 z7>BT~9(OD#B@wi%j~2S+Uwc2!Km%>#eNUP&Z_!&q-Y!yE!cTQAN=>By%Xr{6i;dj; z>-lOdfJJ3iPJ#$z{uC|BwU&U^?TrYh)FVViTQAM7*O=pnEFi^=z*B*gdSg%_?$+bSmQ0C_=6@0gdL_fNNT9R%GR%pBnjLS5g$zTeH zOUvkblNIN%mLc5J3Rtb9M6IbTmH@E=WF$z!Lm*LjAr%(Ihy=`=j6YHQVv1usbCDhI zijJ+}Vhjdq?@Y}AW@&r)W(zvQ1gISDKYiU6A$AC7-vJ0Ygj;2Z1?`AK=K1#DNxw=JeU&Nk zYDb2XPWs1AAlOmHCL7n=`T)Fjm^MWpJjIMeGn?Cc=D&ZMUQ>E(T6t@lJ7er_k$X9Y zB+_e!@XtPL>2<9q#k%X;F)pWk0#IR7Ac*OmV|FG>;A*Q_OVh-)10so@T`hsrnZq>u8BZJYsetZZCil7VMU5$2Bw-(lgy1H&e_GP}H1TbCa zPlQRNoUCm$r~U1fVC}#_^u{^bp=4Po=B5KKED9{Kyt{_xLZYdrHHZiS0rl2Ae95Gw z+`iewMy=?l3rHb~wtH86AO#f&LnLWYuy@#1PFJ)=zpxh_OU%wDkV28_Q9oJt-Eyqy z>zdyIv`@r=4DG(%esgUw7m?t6VW!Df=H@Vy@$aqf1j@q>&7?n7B4Cjc9Rbx~CBvdj zRuKjJvjEq)4pIT|+5m!ni#z~Liyg61eH$Uyz^L@N)erccEMft>mzpJS^9vZVLdQsw z8dsF_6W6vd=%|dwIEW{ofGnXf`e}7uLJb(5cgNEPEvV#oecE<1>1rNk*0j>RcuLrqZBgtWW0Wt}QUvM)4oBRX|%^$WerBIPR z&HKd}RMGKi0aNq?NF{W9E^vJOXYYRd2NyXCw+7Yj<}tlNIq!2qo;LnWdV?PEJzP(Z zE&(ivQTzx4fdN zr;~d$#Flp57n^I&pYzY+`0d(PG;D%Dft`?2=Wn;}D|NlVJeLIzx<+++$sA2(bgAC= z618Kv;BxVB3AuS^$E>N;zUiwvM+TQ~T(KLQ6m~ayiEQ?{Cx<4iPs)9L>1kr+A)k|l zQ-Jq$Qa<29ua0i7m)pQc(LQYi4ccrpV8lg@Wgf?G2j`#*uBZF7w);gp=a`6#O1q09 zau=s&HI^Jy;xnbXr0OC@%SuSvg|cWZ2??pz^M%zjvt|HUFvw)XGyT3Lz)@y2eaIr))6QAYquAGDTCL5Gq z=(&-hQ?tCi@48Z}l1e|}OW1TcL5Ywp!A^XpA&B>F!oe2*tS)J?xU)nmQB6<8D38r7oL zAK=|!a{0-#f{m*}eI4}cGR69kZcba9$g#SvN5$6pO37WL-{WZ4^IN!;@HcNACqhiR zGYB}Imjx`=ugVLOjp7q?l{4&m8s z#>+zEWP%tsn@`;md1(Eqrq_Mm#I0+8%Pd~2`X&S*ieLnwH(k+8Qs_52i9w0^^Y zSt&g3I}I1MVxQJlpMZk`txunYA{sGRY4id6bJisQJa~$}>EL%anu$ar3GwBA?6Zeu z=QR`?hCxlA`bAXApS32T7p0;v#a0EypQ=I3+?m7#`* zGl+iCgJzp8s%1SNrd;`#+g=GgP^Po>SF=E>>Ad_~C}#tdpK7~j^5VMB&C*Gs2b#0(WLUM&RC?Q%>j)V<>o$*e1JD z$nIxxd&FBzL&P9#*yc^-5Klo*7xZM4 z#R2BSDB$QbeTMCVP;n(bt@^GUbV4U&ZhixYE8BvFABA4IciC_L-2VK`lkVIN7fKp2 zQWQ}ZPxjcX&Y0BPCsL;d-^rWnUg*PX;PIZd4P88c=q_a~zmA$4& zLjho2#mId{FiQw~9!iN^ZvtsgE;2G52_@Yvx3vpb^@%V*toiH^xs66+iDh5H2NVSq z_N;A1d~d!bYlh&>q>$nxfnfGFI1VYR919MC^5NOQJprbFx;)c%$_EFcLLyA(>h@NR zjzBaIf=epe1;`}`tk75XYHg<)^fH7Rtl>QJIivR$B>W6~^#1$|<;QU4j38{BH(d>2 zhx#a`YC4w{SL8eI+J%xLw^XQ1v)qp#?B%D@oERYI{wMONI_7vknz2I0VxjqT6 zHXo&C8XBMb0X%@|xZ1^Z%G4&md4%R>!snJ^Q6@05%S0#Y{y`{#X&nJODw1l)C>s9*>vV8w-`v6_>@ z2u9KG`lJh9NhC?fyIhuf%`@aZe9NhN?;}K#R5c12!P4VFmWl@b>*cwI0#2OIfXX3u zi$85Ue!PF)Mhu+PuTngPN0OR(o(EK${=r6*WD=qK@tIF~YcXoolH{?1?Gym8CM?{; z7JN*JfOvRFc9;n>G9qxmQbnGcat2i|T9yC%t3N|D**izfJ)u8GPpj+x=SG>+{&Ru4RgyS z9&|UoWF~M*oKvp9xYhcR!uR)7e0BP?wO9r2*&FTj=dTRvN+j6YCpDgvn=0=vkY#wH zK;)bFnitN+1e!(90St6^!xBtnS4c=+Nb0FM01VNI77|8d%Q0ktW}iwgH+uaQdu}Yv z*QOYWI+oY2S%dT!O>YLto>ru_L^8|S>B>rJ<0F)##Dr(W+~XPXIeoxfQ7nY^G|J>t zVzTo(cm{FXKs;|DF6N;M37IUVOAL9HBG3gUgHj|WYgYr2dJch^^5HbG1{XI zVVg;^=Gqif?2}Wjq+k7bEoLZ9QgeAiDLyrg{?K_(1HT6|WEe?g!KJn$ z%^y76n)UM!F`N+;#nKc_$PZN_Fh_BqGgyMO@)*URkfTZeV4-R>k+f4j5U~I|Fqtx% zz(y#N7}f09=ZhwC@2C{j+QMBRm>aD?L`oLyN=2{&2<&-{s2>b?4z1FYO*3xL7VnGr;lzL)CQ*h&pgaz`9;i!E>s(jlxvh%v?zMScHtyT zV|986G|@`{l+P87KNSI@5@RW11uKzvCv7jc$U4pILjo_4q|GOC0I+sh8$!Y3sKT^APU9hSfHw|17rfDF*@EiF!Nx{@0)w@ zn00z>Ue;fj`J}sfTZ#la!rB)_ep1c6Jr4MgN1~^t1ZW?~Y7&refA{QzL=|QME20O( zkA*AENSWHR9Dau?02(5Fyj!V?>e8F@x+mK`#tZ+#-o2|vmNDK4x_tkpYCcY~=p8*2 zK0}DFgau5pY(n&cBfM5oXio5!&eJkf;@fGkWY<==3$np~zR8L!P0^l4A6RglW`w?o zd#VtuXR3KDC*5LDZe=+Y8gdpv6^ob(&|4)$B5nV~7lAL_>4S{TfEiImp5f8}1AD8L zpA;eePMl@(-!{QI&cIY38YPl#Ax~+~tmR4PNXis_wS^B@eAcCTOrNygy?=4nYCVN$ zLgELH^Q)W*^?wA!%MhT|{*V&YMY3bBW6 zEKH}(ZHL-<7+6redJf&*F|Fe6avR zdg4c%V*U=T?FW4b=XIQCF>h0(`uz_7HEE_8s^NVa7Rn9J5aPNgZ@>E2BRI20(#Tct zIp^C4JI%Am)nBy5^O$@pVIj^j@937Wrw8A{e(8?Cy=Bc~77>18n-23bkA4_7!+-gW@Mg{F2H#B+(czNby zI^w7e0NJ#Kewfml$ND?Y!J+^lV?-T)G%XYS$F2Eer6S}mQbi|)dpDd z-%!N+x6R-Qgbt{ARUx7ku}&eyodz4W7B;XH795xzjj7G|YEw`(5s(5476X9Skh~&A zG(Fn{4e;(_c%L+bw2g{WI4%LWAInjE>UvN5>=Yq!{RtPYf-5!~wE3AYP_@sonAdts zWNTao!mjvLBXhEV3dXMFH`QstM&my8tX<=^`4BVF%p)WKwwpm8gRlfEK3ZC)$OdXE zEHXPYYe7m>;uLB0QRFoz!v_mrz#yq(thizrwGbj#g%I7*7XNi7)|Qg z&v>)V)U_ul0OYD>E@W`P7hywBu8Q{A%WyK-jIGjKl&ef6C?nNhPijR%E4HF{9`(_f zv1V+@hzrz%mBOQ7T8DxB2(C*JGMg6ehiaWy6IZ3+60Dn zRSfd4t*BrZ0LA=_gwGg&8Fd8o0toepHM%TCrnmi+)&|Uaw!bWx$N3etne1R6VgfeH z9{Fe*O*vi&v3eh(fHZh`B&ZO|by(7<)hT&(G{P`vh3E|EScawe0Dv%{0=ra}hoI`a z4t8g_Q6rOH1Nw{SMUOy-ViFGGOiRQ_GzYprW)esvMQ>@SNYhmQOs`6i7u}XU^P(8R zJ*g3gPW=|Xl^|T<_|`$p9(>reX<-p%OqR6j2uqZ6wrQC)D{+XcVM8nICPFHXg~*%> zHk?=9QUUYIJyjJu?unGi9L*G>WUtjTKZ@83>-E=mOHwRQgI}j&mINiEwE<1M()OSo9#oRR|*+h{qE4Ci$Dc z9G-WXnJ<82tZI(@4=F?lwN+FN^<0ESm4tL-p9^4nm55U+0|n=Y3wU9^|LCAJL5e+GEpHZWKjYN@>Mx!pib^ zVFQifzgyAij|!^sx5I#3&0%5eYs8mln9 z@(EsUvC$^mAjrhFOl=_)?%=ZV6CV6Z?_J?s5 zK8X@#U+|9x=j4gGf}`zS1RX9(%ByH5i~|s(j~frkH6b6Me_x8BLBmrF6n{i4P!nsU z*_Y{r9$v}d1P|e0_kUlWeHaqlA4zl|cwKLo9Xh|82Y37iJx~7Jp$QTnS4rvv)Xy`N zH==|6w0s8|4vFBeQ=#vV+MwHV%HdP_wd%}!Itx!$r)DEx3Tv^?N(mGO38MS4eT;yc z{l&>K)nmXN5qP*p6NM#F+T(szY&`z_PA++zv8f20?x5X$9aHL^8Enf_Nbi>csMB8r zcozgfBC2r*R|J~gZ(RC->0n5vFy+x8`M+clJmsi-OWi0|pdc-y>`FAAOX}yfQZeY{#oNMwBQ8RLRj~i)ia_6;#aA*{~V%cD*8^PGMjbN9#78j74X8nqmxs&l(eMyg3 z1s@$>_kof?4zm>5iGI-5bH^bpeHiMsC)caTmm4^QscRWIx&Y=xJYI_b5f0`@PmFs8S zwK|0(gFdbzGInYN6h5_@4`Eh8yK#@iLZbAt;XVr{T7XfUJ!RZxUz7`cvV7Rb2*;Ty zTNYkjZQCpkK^{Poaa&o@(TeW$gTTTud0mibXuH)tRj|gx;}a6_QF1~yS#8X(x^z=) zwf}ZHAeqvSLwJg2f)q9vzkgOtytnY(j9HxL7HhPW2-Q4{5U}4+K$l-@NyVVko!r}P zL=!gS9hic6Vfeakz+bZG0gzfY*}jt;KRkmOzuE~$5Yn0QdHs?T6ub1O>q~kT7ArRB zM91~qPCx#$5zVXt3VwlUcv45iI`LN<4^662dPT-r^R70;%@2HsKe}ZC(KWSNxiMfE zy0f#}X-T+co_yF=2j#S<%!rAa`(|0y6;-uIaxLEba&F#`{^Wmdy`<#BqUxv2`j=cK zv7F9~wfPPh`O1dC)sm}{(-hgv>+<(N0ae$vo}#orWogTd7!TJBQaeN&w%{C|*!r$& zVom8E8Mgq)r+~IkQwZ9Wb@_RbBnkn~e9+GPZq_fuK_W>ZLI}I99}C}S8Q394eIHq< zkK7P07BiuYuDdqvVv=SHu=!U}9P&056tLG{fpHwU=Dm4JD|K`9!gZ`u_XPLmjma$- z{v1d?k0Sn;dGl{o>E;!|-*MLHZ-&9l?BLIG$~QU$2M(RMqI;}VxPvUc(2%LJ!$ffb zADv`_p!HQ<)rjIqi#Kth5qnHxzLi>i3iBB+wV0_5NFouJ+Sx9j_V_z~+g z4XZxbpt+(Gp#(9?5Hn&f8d1c!JjrxM)5(4zXusI!CtF^V(y|~dt>n?Ej$_dj5oa`< zF>~g`LsTo-_Mge4pleTA&woZfduG~E*FXHP-Uz`k8SAzY%hV7U9uB-2EcaAO#>!h% zTk|yi0nm0dUyvRbO_REKi-YMA`CH3%!yoC zaR;d4+Ewzx1B6_r?zEaS_5v`hS}2=&^CxU-KD|@etwrIG&o%oq%-fQYw*@9aSuMlU zh2*o)fwVV%@RT$>-(dXCi8Kf${0FaNzulSX-%YDHqHA94oTpj{1K8pTHvPiXX}o$$ zPRTiT{Sn|Et%ux85w5BoxuSkch9-09k4O1YXgb|Lzn?HevD4eR-7<3QDOADK_1Eyh-R7N&&#&PWSWlrMM2EH~m{UPbslfIWv4 zo6wLFe>Yjm8^ouf%oDu*0)F`)~6~AF&tyq0x`P<*K0*qrv+NDouk_iYB7kXB~ z#F~(ct+y$YJ5Wm+Ww3_JG~D}Eqd-|U7%YyONyiQh382Zg^j1J|K*sX$lLBUHcKBnG zHphCh#!wJ0P72|-GBeaCrT63s+SK06#ww8fbGJ#sJEKBG^;&K8y7fq*VtPUdy&quN zmnu?DlVTc>*>e84&|DHb{$THk4O=XMK+ZNe{xKJ)9Zr)o44?0qF+cJ3)kw;R3*8pC zuV(d%%f1nsYD7w^Ih1PaXJ+MTEAvQGbj zKl#(OW_EIg@vGC;UI@Q`^n!Xne+c;z+h;5k9fH_{%O z7(nX}kM-nQRrUP&Nf7etNrJ6ONDbYLOu2Ho&B;*AdEQPX(D!LT#jCu80Ad zka-u~(Rob`$Irk1-%|b_24pqm@S{Pn=vpCB+cy#tF&*O!FttZZ`j35``Z@*?m0f*q z%%%LczE9TB513Lq^%)Xeq?lDbx6nFb|${(FzO77reQ?upjw0lUI z+mzGusq^KN!zQ0%PHWi#6K zh$Y%~Xy9z)d0xoirR(-fsFpH&$e^lG-gW5OX!JKnk+jIgY;R0-Fz7N&y^4wW{5C#E z{xqGEtq}e0Y>U$IPLIql;BH1|=__afS4TjqDQ~}T5-yH?aLoyN7mQU0#6nZ@Gu3Fv z!C8QyI3r6U$$*k+8RpB&RJgaz&<=7zP%`!65lgwc^oFD<{Tck>vt;6^QQn;ZdkRdJ zmDexe?xgb_CK;HrqnLgBB0({+i-r|(=)DhTxgl=C8{!Cc`xhP$8T!`gJ%Fe$>c!p` zTSJl6)n)zUTb%zyXl68D&QZMAVS*y9y;CS?I>BJb-Q*zx5cs$+WG?F;Jh;ycnjqiJ z&He@2gX;xL)QUpz3k;|vcM{pBc4K3?<@AK3)RWhZs#O~u5kyZc^66nilX|Ryc_J1S zfRHM2Kt<|{%_CENB?TXI;Ku9yv~adj+rd?8R4X{LGPmBC%YdpxdZ$YaNQx9NV1etz zscw#dZmcVmxa|#XA2g9Wz0393X1>FcZ@+r%R;0}*gh?Nk0$KCG&ndGC0;NpDOKn0g zqzfu{X6$khk=jQ=eGcb*8rZx#*;H8=qel)rfY8D!d+_fa4Yw07F%}4j*OsAC$Iks|7iYZ?_ z-#=#gT8V!_>nUa`TLgCxD6nSEeUSbjuC?zhf^y8qjczX`cet_;Al|ss#7kK~ij$ z&@0%WNF6zcU>c011J%6$&YpXNFTXqR%O&m$hen#K*PuvIv6>8EddH6g)=OM;`ViqE z+UZFKejGWNhZa+gA!b_z+nV?=Wj75)2mwK+q>$faPY1xx#S| z#axT(0j{;4*4g4SpFallO@*0Ly8BnMZ_VG_0w4-=Z{fZ&EaWQyaVTX#l!47v&Rs+& zUDdv{9@wToaSU-}?v?LxDpceq12%etg3EH(JY+uOITR}9Zdcl4bopI1u^S}c%$FF{ z@nNfb=qi6r%TmW=Baao5^VU3`TfS}?0EMrUvuUt@pRetldHE{-7Vgg3IQQ2QPUaVx4}y7$yULdS!^qSkCC zy2D-%e6%hN3NYhc=4>1{7wn0JyO$w`?+EL&pKyq+S_Kp19vOxor@g2ho$B=5KPb|} zQ7f7*jMLoiz~xAmFXB|-yU+%)j+zxtixk9q=UNgfo9jF9--iBqR}X)WW=XPVy;Dw9 z2GMwSGMS5LxtvCc<6}yJ$lN2E9>`C=Q9~jE>;o^{_UsN_ssS32LJ47D2S+oiznzoEIJlz zZ@=EyZ`WUHp)T7q5Vr{lW*{SdsfwN9x>rN*%*R=N$vYZPAR5qhoEuh)V8=6sA@=lZ zt9)P{fMoMfMl{Gl{)ch8yEf{n>Z6Js)m_%4qenp~ID!sizlX*0;OPW-5FZxFfRl(s z{JWApK;o>h^88gOb%17?0U}U|MJj$5LJyAEz2k)Gs=ozjLVI5mNUs6xK&Z1IX75Be zfN47aBxCo17_x)h+r>b0Ik|NVbjVv%aweJ$&{G-(XE}q}EcgIl*zxI>Fa?)sWs;Dw zM;-HH%oTQlfFO{~I|t3VIzPJ}Z>L>rgrdU{1z|+=?*_dM04?(P3NWpMI{5il=&H!` zHeG)Jp3cu5E6Od3gnJ)FMAJvY3!>2surx8A#IAjwTF8r0Jgm5MZk7K z?5426Lj?kmToq_MM}P)E$ecn625l&I)fYe{li?Q#5EfZ$9O|+!@7%m~bKua7yS0HX zZz(POAeiT{P81XxLLJN&e9b^t5j?3ea6TdA3rBE@hhXzC|H#6)#{$`8nAqZ;W_QeI zhTtrK8X(LGw{DJKMtalL_oyQ#oT2f0FOv>5x;nnvnIUrjGB$Nl=a(N@WOLF1Elj#s` zzU+p37?G}gk?`O0R{`B@=)MrWeVl-G3>(T*eQW1e&OKVa?ogLN;7q6tm*`1T6(;RUc7Z;mF7ELZYz--aPHl{nJ+Xyo-SWkPQN%rl36CH& zOGb(*27e*oPE!%PxBOBvc9R?6qGyv6LOMu5qgPE=_%CW9a9_HB@KN*jx7t!}FaK`h zp6iHx6LE+e4b7}@c;jxDUvBr^K)2?Z{SM@^JL7ljv)_RmzpV>~dY)1{lbmFDK(yQL z8VQUYaEt-28+fBU`KWeHn?8YqP#&QUKn#3*KwI|-rNd6s1?>5dz~vHdhVj$Ks;I90 zo$C475_Tm&987Pxh5-md0}`zDx9LaRz=6GT;`@&fJXDO$za6!#pN_dz=@IM|WB6VE z;4}Fa56B<7yB=66(98WU9l@Jk($Q>a(VA{P)?6%H1?3JPwUMxy6SbiX7SI%0%rG&i(SS@LywY?>qAlX60=2&G+^ulF0<0UIsWpmWX(+z9#Uf&yM3O@|zV z0aywHBF$%~0->U=sV61}|Ki)ZjA;KB?N=D`O)F@qb;R*XL{irAXmrA>nw!0AgrykGwG4&X<%=(sN?$0(&-dC_y_)$c2d zwKZm5u$>-Ot+;VkfQrw?^wiB4M--JW!+cUIB(8YJS&o@ic&u#dsb%OvHwl9qoF|iiJ2tAw2 zPcJ#!Fw%66A&|mLJ8a%;#sHEyB?oa5lPAJH5V>v8+Z!tp6fm{;opo|@#7T*;wVwwP z=X3*8+aYuT9H;%CzYR^NtKi*!@jfQ%RzGIpNUyptiypV?9sSalsrNzo2qFB8l)}z8 zH;=5ED`(BBRZ?mk`rONYu^uK1)`==@@fO`pnUbc^y`8ii03o}#AC+!%Ed2q648{KK zKb2m86kqZ0T+siPx^?KGZ{hj0g2F#PReQ4JdtMq`Pk!6iZRlV0+%yLebE*KU2 z=kjK6#!x94b&pTw&Hw`eCC2nAV;(SG+%%amvUZcE){d|Gjh}9%9SCjP=!MPrfD3#4 z(!E8+|D5?`MZB8H%jy%F=b*>j8OXd=QZT#sCw*c-fWZ{ct?}aWly-? zvx<<#jQGFv)^X_2ivp=;4jWd~+_J1WAj_(d8g>aBdX-lFHW|*98)(+@*N5zCX|kFC$K$u z$B4jvA+P)A=lS=g^pry$#8?UoE}~N8NFO;)L*$J~j&Qo%riuay8%3I6Jg?x)-RB{T z_=s__=zq|`3gxU98%P7v6%FyLcMdLi?Z0}U&;1vu)g{&E{BeGgl}L#oP; zwJjhv8E;XJxHaCcwFZM*ym6h3Noo8CQ@l8-uzcXFu(a)-A3$f>^R-YO7PK^QRulx6 zKr=}7)J(7hoX#gT4CM+*QtNV$hS+3D8m0wy>jyt5R^EYRTAOw*KPba^^@P?;U9zhN z`SMzsjkZDxdarhqF^Xlc`_tR)V4svIHcSzKA#|9(DaHxpl0UDfC=nTgW$n|xK}JP(D3-8 ziDNaVO(~p>*N>b~cXMx@IJZA+$v%D>4wjo~emjH{@^^Uu=$zR(zs{zpG9_~Mc;u$i zHb%m@8`x2_8d=u}>f@&hTlRcgow?+5|G#weA0LAvO@kMkkX0HU-3ZJRR#pOma@q(< zZ7GOUt<*nqb^4d#s!5jrwf~;_ryu=`n~$j6nQWFieX%ec3>BvVyFE(;0Jb9JPD~1j zc&Urpi!Cq!a|wBCt9C?N?L`6EY}&>E z%5%J5sfdNYo?V!u{2@o-#KQF)afjthi103B015?5S+nVpSC(nca-~s|HF8r;&Cao1 zzuapQu4=rmLtS5IVf=p6AZXoI{s1cQLpjkmJDO=NohR>=0oohrB`#nFRhjWN&pII{ zL2m<~NL(hFW~(L?3JTPk2=h63T&MIohUqe@n1zqF);b)gk3FQ=`9jTB&RMQVr(D;DzT$IVH=f|ev}|xr%|0L8aU3DM_DzQW*i&1PQD=N&Y!Fk zo2R@F?EM;Eb-w3YC+gbW1qZdSJ?`C?ucAiU-VdVtAFdCDI>`Fk4Q}gG{G`H~W(k=S z{sf&)R+KX+6Kl(xk2x~&oE!e@`+EWmy;s7Ij#Dp}pi0{g1?S}WDU)T?Zo2hj3=>KO zlnS|;Hz)K*?1x2Yns*M1$F#D+=+q_719b2<6G2SIE5a1cE-(?(9$zSz#G??`TLc4l zW927MFOGL@vTdlU{qZL{w_8uV)e&(xvRUZva0U`&5`uh8`hLN9dl_;u<0>sdNK+Li z;ch=n2b!d5VLVsE9kf5BJ16@3K#+hoVVkN9)C(Le?7NrS&b_=oI4mU--+iSBMo8;ex|iuiK3y&~Ees5C_ChPwOZV)0^QrC#U3 zy>Iuw6Ho9H7a@;>NrpKyvGE8(Kc+juNK)vt4fn>Q{8n0)+~TTj9<6jbmeD0W#5h1& zg(z%sa@HLd?VTE@%6SQ0_;x=0AlL(d8{&lre7mYH1}^@NjMrq6b)!l)o5=z zVBlFN6v7tWkvay0@5}9X_2y_a5{79S^!q(@11ow*X#<|4qif?s4_Xhl1MBPNb9-61|5OHK{9Kd{pI9$DY>#;Hm^e$Nb z1rtLjAhhkNBH`0DDt%1hwmwQ;Eh#gp|G>eQ{XTlrKb^kC*#-6OEkgUJLJfJxkXQe{ z#w62N#UHexM4lY@_-%vxP=GX@$AhbGOTV#XQy{T}-^2z=QQ--SGDZaemX3w~pd%DB zaYUDGqVjS-!k(H*Od2w>@uXma3MhhsSiO&1ikL(BQzBD9j+yfZA=}*Gi!_?G5^+Z# zeERR<*VXpJGpEGzlBbpysO=(U^Tz=c9^rWguK0#srZ#z24lm{YA zxWt%;>Q5$)!#-E`5^mBF?;Qq2%o{mWC#-}T>ypqT(FWA$TQYkn>)ze&nFh{te0TyQ-mk|Cbys%Gfhk1cJOHkzn_NT+zx z6nG#hnqZPKUQSX%gCzoGT-N;%G?^5TrAG+%N{V8kBYi;4zij~N=zOcco01@4Nk}+j zPGLN6_Sl}~GK9vsMpQ*_S9l`Pg!3s?SpeF%qE=yn0K;REa~mp>L0MrJgHNSiQ+}CW z#jaq<7bW<_>5C#9TKiL3gIN;ks2j8Htba!;untgq zIbvp85J^3MhyPOUpCKoY%#u&obt6sD%|Cz}qle-i7!8+j;6RYezFPHe{ zYVNSQ=EjtdwjS6-&eZv2+7+Uu9$z&<^v4uUz*t>mRaUKBibwV^Hy%5&{ql{8w+#_r0hcRD$u8Tn zZgD`yj6jz%J7bYAO)- zM7OjbtKD8EiDqICG~9W7qWsq0Rm%G-7X}VLFxipw1(LLkcD<8HLtctk zMeJtAz}4EqKsLOPmqt=T5b4RP9c)Jh_G%b2CKzNv2ID8dCRkaM2?%jQ#SuYGS|Mta z=))@eO{b`Ps+7{25mtbi`E9TVBlOAQ8GF96j+hF}9v;JwB=dk0)hGd`HS(z8)KBYI zD#wGKGgW+#2Sx-bZRf4xnaifkwN{ak2d3tV9w!?hdw6PwL!!_wI1et-o#eb*uAJ315Mi6>MO21thC%iaJWN3lORVLg)sQ|91!ubS#FRGNld^$JmMA&TV^3s^K&rS238Y4|3v{!Eu7Gb10_Yz&@C@YpJE#U- zwmpRUXFF&J26^fUCNcm;Qp)S7oN%-HnG+Wxwol=Gjw*wW8YY4!Av+ay*XvO?4J>#T zx4P>B8CGfB@=o*1rpuLYr=Z#iP`d<(`UIHF0NJYNt4aZQnnK7r%;JSTaUIXvaEX=x z{6AbE@XnsktBZ4oB1$AUzxNh}ipa7$&i6y>H1ll8n(>Pgazo}WbeIpj!H*4dvfx>W2H7)>P-yso$}kg%=YtPg2kMg|vyAuIwj=x+m7bZZ7&!)- z^Pvh@sE1|^zxqN0viL$xbHe7qgk#M$W@>6LRW$-?)!DW5CRYAo8ofMOk9018l3`|J zcIo*!14fJq7HmyAmm$)cVbD6!2`bFYysQMt|E-hC-VxY;18hj59*Df*J5Zv{*I?qV z2n;}9-T{eF6(tO`4*m*j{Eh2aJsTwxF7n&p#V><8gyPytd?dGQatvFr+%Ay`!gB#O z{1iR`q=*H7(EvK}(7ayA;8|>jNt`NO>RkUR1%iuO!jY0Xg&gXMl~Y}SW~MlHn=RC zeK9w)=z{GaOxO3fGFX8dAjh`+mEntQ<5-B%VtZvu);c+GK+H^Apq zqI_C1+|?~E!7iCVN=L!w+Ym75Uuc+d!o&* zNCJ1%=wM+*nRE52Zy$=_5`gsb^9WwWwBSJ9Ih>(k_A;_Z+w5wJ45;v?gWa-2{qDJm z0$w}{^TS?q1mOOAdkxkjk{#*R!{SsfTqBhGy~;S5+y@&@v>vl!oNa<31kjgN0>MLZ zjfO5cm)`ce^R2IL%de-qeqHV-0oacQ>nOP%WJ(nV@F>;5WpC z^H2^8Gg$`*Z)Jpxi)+$uxpH@M@dU6k8|3s-B8LK2TG#3F3gDK>>k+a9qiok~0`<6H zMY>29`Ra=K&_%~~g@P^z=W#Jbpk+QaPZ5~&7BFuMA!-{6N&s`Ir~F$xURCuxS4*AO z;9W|sUtH-AK`=+xyb*3alYxk?46Jbn76Out0j_Z`L;V1F0O#qAUYO~7UK+A3u)jFp z3YN?^4!#j_fQ8WW>@%lV7lxIm!XG>vg*&mqloHXhG5d^3iDxp7pVT|)(#01)9Lz=s zopzp5dHg`F5GM(b)G)nqsOg?&Hw)^W(fC&9brQsyBa5GSXrd_Ape<(31xv?7WffXlKNMg7=&`Tq_y_Ht71{Q==lxNIb0Rna zS(CYGH1Eg>SO8<#cYJqSf+Yj+V*uQaorwO`n6cSpU=2IQZamW#f&N!(FeGYSLlbd1 z^K4as&V}}9o!h0Gs!l-SxDf0FHs$Xg#XpypEv8iRqn2y#it3MQoL^v$hbt^j!HlQV zN|V#TF-3{f+3sn9Sdhg!%4>HcVnkV#cH7|hK;UG26wR@|? zRMHN;$VXY)A+Y_9Y0Nt8?m*W2k8xTxjZaRm3_h9e`|n;3(SF}Qh&2i1LIB(tAPxRG^I*s#&M1iz?DO6H z>tn>xHoJ#E%)J=UW634?Z{L{JgU#u-Ot@7b56n8X_o2sJWFgKrecZlduKo`{yKIN^ z19v3+JN{|ed4pIN1yas&4*UW$M1t0e!rs2jUK(HuBD{h#RK_PV?YV>&+Ua0$e2{SB`)v0jxMcw~MSFJ~jHlWkod~d+*+Compp- z)V+ZAb(F$X9BU;%z1SB#eQ3t?ut43*IQ7?HsM|V3Z53dnx1N_rG-Y?89Af-TB!4rA_JH zr@|}PeJd7q`m>j1IV-x`(kXUjFzN`yX?I=k26C;xDCat7o0JR*4LoV z9I-nABixv4HZqyUfB>DW;>-(t)gWNS5qPa@e1@vzK!(N8l*Uh<`L7A~Q8;oRPxi|b z*>wK$Y0}GMSh$l}fMO=}l@fUoJq3L_1wT{tZu^Hw@o)9~sh}snPok6M+&9*qjgoX) z;9f2JKSJ(@Kh&52yG?*q$$zZ@7a9+;5w-Uj!sz(M&XuhZ6#xL0}qElA`1PxFaSKDa#nl-#(E2D}fy*?HWZ(Sb3V&6pgB zLt&-BP%MGYr(`0<<7v4Q^g$*@Mmp4YcW93VE2{n_VTWup6om~K>Kt^Lx!2Wn^e$wC zZG5Cl{SIpwUW7M|o#8*69+lkB>dLI|R6&YMrDe|8Unf2mp_~@hXzv^;l(o)7XqYS8 zvl~>?q7fTzkchn96w}_VcNQgYneZ3-`Qv+G5zExw==5gfwL|yv@$Z5u;Qrk#SHupB zT_msyOXM__HC}9vj8&<*?i-~Ujxve+?V9$^CxuTpVI0wXGvkQKWiU)xw2;JVa+Qhq5J$<4&rPjbyP#e#I~rIdDy_2! zOpm%ThYu_)GWob$Hl&iMK;|B_2qQDQoP4;ze2nv!0l^~bGZA^fm8Mxl9!cr3W*@Dd zZJQU{^^nk)``}SJR0k@&b2391B{8=M*SuQ&0j`@iP_Onjmd`4%fCfW^HF*< zNTH?}Wm(HctR%WnWogR_M-i^k#9SYp|D2^UH;|!oo1Yi0Y55*uRlE))CSAL?6$ysm zNO?T4v(JqJdm$O;R*%QNhaca9E9B`I@3>l4pl2Rg-*WL{QNI~IdumOu?|41d8EpER zeg#oVPflrxx8E z<&;#C0fMg#Vc#OuVzC2RGBoW~mW;y8#wb$BL*xNkMakVmNo8%aQ3bNyC}=pey;O_| zsk=VH+^f};XE>DdwirU*=CND_RIkvLb^b_NDZ=1|%co7urA7g8P`9w^*fu{y6@3Sc z)(RahZFwEieO67k2$6^}cx*l0OIqO?9xxF%(^S9KkQbdRKEBkZEe9TkU~cWwWCSf& z#yqgrJYOY@@)+t`-{#UZBxXlyADzI$N{ilkHbu|MedZ!Q?&jqYeCgTOd!k9V3Re$6Sjs4cd>n#cGqc3nA6LHo-X)}s z(funZ$=&RnHGkDPdmK`zQh>j#opwSU1byInPN*|m6V15pyF2?=M1?A;gFhx_uGK39 zkCeR2&{=3@i+@UKL|}zY7kRT#egam%9Z>>ad1<=HLb#w0O>caDM0cR#dG5`ffPW}M zRf``^>x60r(h*)3Gh;pr{e_=nxz>;HGR;HJ5;WRVVFv>11;v-aEqi|j z!~9;lAL~(7r#diqbX?haf|t6oZKWFAilb))KYC+_2rGs;Rtv0f6;pSOCr3{o4iSy| zW(|0+9c@Xg6U7*0JoXZfta>SaG;Q$Gm0`XwXL?_=P;!`{8L`I2)Yw3xMyR>jy)*44|B^2xg$S#E6z3Etk^} z59ODB*y2Ey1yrF-Kc2``^%s38NWI=q)|vp|7yt;TK6s{*1MU4_pj22BWc}NYy%UBD zUsmG$LZ=M-EU7asqNS{ZBp5->p+b&as$wbEzHXJAXtD8D;A?__rglFzGQ^{u(LSEX@yqz3)W#TkTdA*3vu;J?CuhMO@j0y8 z6+*OD9y>#(fNyj{a|||yl-^9h?~!u^p-voouZRZ?*&-(Q#{YSQE#YM;uzBPnecT&D zi*I3?SYE(Tyu*!ilO@7Yy&8p5;)Mxwk)xPZG6J}dhgHBQ%yBBa5 zgZgz{OCGWD5y&7?~kQ-*G}1HJZ8RX^O^T zO6Ff}W;gFk=?~!jsMKh>gc+<5C1!KpwWxYdoNkl2g$KQoOE_>gUvY)J*H5#6C7G}C zS-riv+ifFAvUl;{dTaOPwvW_okhY~{LeRWcjbKbhM=9o;uUUaj zDlsP=RuijwL$rw^H3*wRuVcA2v7z}5rqgple9ioYv64AF>OUq#YL?$3P5>eEu}c*{ zS+IMfj01m~slI%UIMq2!H!?ee@CC?8CJLfG6G*O_@4-9V4_ux2Norkt=Sv&(F26ts z^JR)2rftf^>?g2PBrWgS3h*b{vo}M`Uilsjg;ppZ|_~w#K0A`7d4?ocn?nEdNhzR zz~F(2{G)K_x)M>*J`D-ljC8G0I+6dUW+OZ19)l)u;?`<-PdTnIwrOibRC~etb#iL& zDYrYb=dS!rzN`x2XKJq13p_O+r_N*-9xiDRYnSWp2m%84NYYoof&w(vkGgR_qZNWVxR`eokUw;Lj1G0!gm3(6p2@=@`h8QYvtp3D~q4~v=_kD2Yo4>onwD%90-51Nef60)|Bp2K@ z%&ibn`{yCr8gLDzRH?YF)K;pwi7fyY?l-c*BF)vX9xgJ?j1c4U8Q+3jQx{oxD~_{N@0U;OXX(nrUtauk{O zz%_ZS5nTC*NMK*|&6@-x>&$M|Cj_QMs|ZS3UfDN8mD@R=fA>WIG{z5PQk{XBhxATR zd)FT%hCp!stVSfHcP@iet;lI(E+5X{Xq4I~!&W{cc+SGZs+*gUzg*hm1k!8;=by{4WJAoz;9Wh(9`%QsoMI^& zb5*c^v~Rq6XXs{)=l(B$DWy}cKi@vIDY$=j`{9GoLPajKUeW1i-+eb(a`&WMS3vQt zm*z+ME3b%x|6AGxv1nfLJP(H!+ooW=1Mlo@CCmC|D3KvbqXan`)BUa5D|HqEj|(l& z$QH8wYUE_^%8Nba#TKsp(o!XXP_KX$B!Fi3AL^9ZwWrFC_xrwZ#u-!2@6}ha z+W#>9cE%i2fyC14W~odtCGi)OeXpEUcCqRfcklcC$8CuV% zB>P>YK1hjnMP)Q&-)KI`m!)byt+}2-n$t0A2U+qJb%$KE5;BaqENv3>FCU2~F$H-l zJv-6ijNh`Fu-e9cArB4%wJNOdW_N{Gth&r>qD%W zqvKu2nnvuBI^6Pn9xL?&bGsO|4B|gkIr@Z30^~m7@pm@!p}wSe0_5f22by=gv7M0p zt*pzYYTDo3wJK05_K-v9ver?srn;!Ly^K=pXa^oFu3mXzefSz8?+&8gat@5#`8IgT zvuDN^L&h*FKwTxbw zUBIkI_P*hA_j`uHkj^p~_zMuR0T-SMeyqNTOdXm&+ z{eV3+mE~m*1g+cIY90W2X9~W}mGY8KN}h@!EdJC7B0PmJJ+}OgB~Cq<4fyypuy5)) zRykQF-lIk2&H*m_W#uQ)0s0rG$&acP2~#y-)zD3%kb&7)pYZSkF%l8aM~W9)i09vD z9|#@}NP8VXyc4z~Xg~nP_s$t~g44gvDUuT;J;CqG!MdIH`pnn*o*;1;SY`7A@pn@XXvM)p7w-~UsdW*)iSgm9kr=(ekjp${tkx-?ZcD!2dH>T~v>YT~vFsdXw zgl6`Cw_)g}d@7xyCo^TZKL(}%$O;#5|J?bKoy#HGwE8uP>&~}In&92>rJgpp8LCoK zeDq0>#(eC!2RBgRU-Eg0_6FYS(Zkam>2Hk2*|fzWi(&EH zP3H{v!G_1c0E+ zc#7T%_!HrVN`IyJa=KB?v9;nk_%xGFs~8LsaQbEgM9sL=@%#XA7>Ny<;6UBD%AP}S zcLq?1LiKDH9q^%uotP#J0U0#ZC}|DrvgYapV?3M)hu9C?TbzAZ8PeVrw$SDB${o0D zstP#iY&(4lNWc)gNA|V?Mh70V%t|MFJ9ICp;XqQI@!GWbdr3fp84#-wLPPIPr3}L0 z7?3CD8;|ymm&CPmk9$j8;N_iBQ?`tk#CyCPwb#G?Mjy6$s!~yBEnTvmUlYM*>~?o; znecWylN$y^$N(QV*(L42^DaeN_4{@dHdyy(+ptq?3z6;6_Z`BQ=g=jNg~$uLC-y4t$a=8|( zd?LotJ5Xr$HaiU*g_mT?Lnu`!T9cRx=FkV0PXJ5$gU2MUZuIX--SM7X`8ac&-8}U7UXLDT)P>i~%#m z6okyLCMwaSLU3V^gI_Fs8Mjy!`w$!l{Q7ZhHhCGSMvj+nil49x_$l*&L9#%^wfw)pWo|m4?42sM`s0#+N#`A;drHBDt%wi8nI1pNJbAxgEJA5;O#Xfh>)xg2 z#sQ^LcDd=L3h&c`0w!6)CRr-q6LPP7OQkPFJ08bU7DWM}(v;d3%^!fL*R&wUY9Nnk zPL7+@yBP$jqI}p1Ll;eDQ=yIxQZ59-bNz!657q==JF-o`xs=FzA>;j)h$9TKO#Sy8B&*K*;dlYe&Ymdcd;)%s4+Oq> zm!GhmXsxn8q8og{?;_B;T~Emls6^g)$3;?pXOJG2ke-(g)CLXF^9-dDM59!G|9)}8 zD#N3xd?wGKeBYCohvxTV;=X^|xvt@@{CnEqhJfacQOxgzRL&>67tZU)4DwdLnMN74`zm>AM1$k8n5$mj&taIQeNC%LkJ&Zhr?iuc=pLsWj}%ZlAB z&?-{xz<+uHDxiTC$^BwFaerQ~%>U;XE{}Zj%z5FixtB{K~1 zObSG3O>EQ*C8%RRpXvoR%S_jF=snsOJ(+F-o{mS#hDwYh#SL;HX#}67e5DJeTxoOf zCbJbUu5hV&eML;m=i)mzhricZ#9$C5qJra-M@%8i8VMr!bz8lmcX7Rq?$)%}>BqM7M~cvR$)Q`;B?kukW7&(b8zEkIN5# z9s=;$S80HzbUxMKbczmH%m})E|7{R2jXX;Abhi+Rh2YJFlK^vJYCn100gLsAE9aD1 zR1?^E>^8wBJPXV*POo`86TG=h$P=OK3e_y!@(%zbh^x`K5rq8s%rJ}qm}LNjj$otM zGyX0ZqZkdwD5tqU)r8+%0+^D2F0k5+-%X+mBIq^9fD#kY>#U**WQMJYY8^Vkm}?Df zgi@jrKp;Ny=xjvfdP!sDjV~{c8>?=C__sq>`M4P@FuXGmljf~8_Pz?>EtAHx)xt0O5_wNpBaOT(DFSTKUCLwl3?RwiCsy?_;|p9hwmrK4v!93 z{3n)WrWwZEo1` zkP@W7DQY6ON*IRDJ-&bPXmQ!cjLY&Z3!7ixXxFxmTS7#=!LlpewM<6*<6P5Ky)(Fx z{vX%RHxdR)`R~LRCfc`NE4i)IymZP|tn+aQZ04SI%Q5AypJ4VPYrE3}JHq>7^glJ} zttA5aPt5?@2R#Powm^$I`>&rT&TzxTWoXafWCvSz4FlQ+gPcu0H!7lsM|!n^o3KwbW|yry$dKJvvGnh zyvv@}G=f>gLxi@eEU$XNy)KcZQrkpUdBE_|v#qByT{gNS#OIrdpfl>itT*v5-&P)9 z9iA#0p9Qgx1|%pO)xH!$AR2j@ChR06qd7tM2=hAGe8ZhFAtT)pt`v&&p5DG>XRJZF#ll$Edb(*ENVD=1(YWAMmaEIv`Hlx_b(3?3PX{iI^7J zcsi1*cJFqbL@+O}>86*e!qIC<_2yzJ{2Jm~a6wr(Gh6GiCyQ*<8()W^)U^t61|2p~fVG1rAh&sgAaxPM$&6l@Lb$9K0Lh|b_>NTGV-ZxRXHzBH?C;*qE z2?J+7+l)nf+Jic|3N|M`3@~;Ls(3Vv zk?Z4G2nM>n`fbSXnct7g-fhn^Uiiv%Gq1uhBa?MA+FZ2H1nDH}5?jy44Wd|8 znx1y@c%@F!M3Fu(k&0y=oDB}RwQ@cp z+1ShRXhbK)wE*znP_wA4@uOnfM@$}PnI4u7+LC+j9?p-|1~$qaIFW4D!(cz_Fe}7F zKa@NSL&=|zCRCWOf#jn5YjI6YtSa%+tAuKKTZZ2iPq3I$^_(0CD@tH9F;4VKx78>U z8$T>51brV@)#+wiH+BsE>+n3qw72?9%~=Ar^ksu%SS7S#OW(C@`o`qV5XOa@lml_kQP& z=`%Aa@E>VXy?0T$YQ~=t6q)CICauBR#}D4UxT$q+u-#uy!ws(4dQ|%nzhmIvI~Or% z#C=Fkz*6|Lb99*ckV>DO0gsWJinll&`#xkkq-G8c3K4=jI`f&WQSuj}b6Qs~Q4WrMTt zUtF2RLn~@;m5r{FfAL;>cE-o_eRy5;biy0ytE>S010a?w9$s8t5s|`tS#AfQ^0+e& z6)(InsHkHwUVH>%A;T~v1s?u-G2r!bW~mWh=3)eaZjmNW}_clOQ3w={->z?u*eqg0Lg0_T*f{`C`rjfWfy zdH#g)ZD%HN$`HR9@O%?>D&3?Vmrel?GbX}hBHL6Y5>2@CQh1*(%0VVb?RZE5ZLqxs z8549wRPx2Xw3Q=k5S5=(v-69zS@KQ7R@-MmN{ z7Y~t!+?zarZx;tp9!d0az9ZLuG>g{6+loHEwRfw}4pzZH{8JXuYutvHd!2xR-qS+P z{9GW28Wr-1DrEe+t~r$xGK_T~WF_)1CB0%zzc6bo4r50xWnMT5LXk~O%qp?Cv#1zm z*v_CK7hjh^&Uco;MLfMLXgvM0qVX>iHy#?7sy;3$bt)72lN>%81^frlRF z*GyzyW)BOMWT*^xZZeE}(=hJTd6o4;S1M*^j@xCLw~77yDgkXJhKU98d;oB|2tlG2 z!+Z#(z69xpx$^0C8NHSG`o!Oiw+{C8iVYAJ=0zbDqT%<|3c<%=?g0C)+1G-ADsJ0D z2co9$x)gLNWVTL4iOOP;neO0;{Yc~vVenGi`T=Q?UIdNg*BoazvSNj_zU0o~(?qOt z(g{*0g}@ir^1Q6bX`aBbmmvlTFhL)Hd&at~=q$_TOqZQvX~PUqNY+g<@Spk4$#!k} z;~}{H@pn>PVTGenZzkd-*MeuY?XQqL>_hk)Lp}+2KulX`4j2C}>^Gy3G?VAO5?4J| zBMQe3Lu@$x**Np5*l^K67a~@NnhJ;Wr3wf^T(Q~2iKGU&jMe!QAN*L=B%`6q|90{; ztIJJ-@>R*%KH{^a8kv96v_z4Bbb`_%HI^Nu`Ex4(2(0yG%$;CT=!{&?F;%S`p>ZN7 z#PD+`o#PL{^Yn&ip^$ftOk}VS`U)WO0{sM5$VrkCOq@Vmp3P(f2~JT&-z@RQ&9aez zyxYc*cbP0QtiQO5X#mm9xY1m-=D()`-WfONtC>I!*V$L;TbgyeZa{AG7N-o)vA73= zzth8HGXt4H0rsvz_Rp7j%zYH{+xM9(52b&Yw{D$ciFh;@2CBI!X@i3CK-hM9tlsi; zGPore{O&{#69$I@ao6Q7cPubpf*P76jQ8Bd^!oXW!2o|5yeib+ivDTYX4KA_xc>oGt3`Kbh;aBlv{Reg*X4@#gGdur>MdXK%aZ9 z#gsI$aiKfiL>y`U;sKlABRUs}flif-IMtljpF?N=kgt@-5WeCTxO@y{mi!c?J`3J4 zs`TKN3FObGqXrqgR~ejx0Fhw;B7-7z*0gE+4VhCqTo|bI_dqpXkB# zhl}kLY(7+AoXR~j#j{L&<^~jKqjJhPbI|~i>5VQF;Rf%(?Hu9{|F;QO36N}pQfT$C zVC&U|w{1$EmH6`z_ZPsn#nXL^Dq!WQj@b^iD*&dukWcWfQ;#jKuq0-V`v2o~h%@FN zvLRl!70tdV%0$R4ZY_GiND$)5hlFX2-N9^(0uYNFX3L}s7zc4T!8}g$4aGrxkzw?2V1~Ny71NJ-s%0LEciX!0Bbi6{{Sef3-yu9kS-|*_nWfMA` z3-%celUh|uiOBZ_l=}`fZ61w<35Jc4s#R~fvv)D!S2O2UCnff1<7n7k<=cym*7=MA{28Ch4s zM%(;6Ycf3Hle@MD-XPG{>qKp-+~l#{aVlpWgCEJqX-q^&0P!RzqdSj9+yk+cm;YG= zW0>XtlC0f_TQ>j7Ej{a8VxyE_pgOe#kB9}4Yynli&)I&Et6~*z&D*i60E9-Vk1}4m zm(o#!RJKFl{g~}7B9P04h|Bgk^xxy8FpiV0&(@ij3L!7?`7z$-R^>_nIq}5LNa{8x z7g4u}n6`})%)&zAdC$FCUhW_=w@o#HSx!DN@XuUPR4jyOh94&z%QA*@#LuV=-+@R- z3rn0h?GmMgItilwYq5zcdF9YiK6`!~2tfd*$x@APGB`UA+#J%0sLrxGn*uGe2&>g; z&S)r(@2(E74C?b~Y zGy6HOrBCYmA}JU%!YS~c{c+ei{l3bho{6TOyZ7FoO9*xVoAhe{;R3*&cB;)C>7N=5 zPMjf@z!1Pwjjsy^x>F4ws{y2;z;OU3T1v#CTv4C#p)K75U+xEcs{-y(X{<%mAw|eU z?1`$6@Rmnmkvosh{ghto1gv)ndl5*LDE+uKpX@h13YW?FiBejV`qpCDHvtF{&F*RD zQ3~+xYx$IRT+Tg=JF5uCX`Zp}Ly0^IY&QW6T|XTrNjfCp2Z^V<(C?gxrdaA*_F){_ zbF+nkw?9#gTWD5QGenO1x~h-fk_Miu5Hy9#S6_TOt3e zJr0zMfb@P``Lr0v*%ebt4f^R!XbijiO2qzcT0GbU&`Y%%pt9g6b$J;TA1-3E$HQy} z_`->Z*eLFDVs$IE+U5t}ply9JP*8@*8xF({5_w6U^^pUSm-Gb6BV%rds9N*SpXI+X zpe;H`j5wcjm`KDIJDY41Y!Q9?$*Uj;@wd)Vz=j{yOef)DMA_cgvW;KyHlN8a$WG_J z-F*^m*x1r}M&}lUXqPPPhvwu#(*pK4QSMzP1As=WChw1%&T&*8Bm+YaErYIVy;4rm zfV?puHIJEV5?n>1%0wnVT+}q4>Yqq)7!~=cAb!=t&7a6yImqeB;3qF&{29j_*+hi# zN5ri~ZRIBg3H0{Ml101~PrG^==7}A5qPsbw61jDp9tA$J{1Q(vQM$>X_f*P)$onn+-&~XC$`1SBUUxo_w$V;;%Y`SHevLF`rfI&C^6A zhHo^+2p1^}p@~kj3=tJ7W}7G~@TFBC)M`Sn-7mW`;O=;*T_>ylOvT^HHNP{T&A%uq zzp_+b<=x!swMh~6$yNUz+HBHmj2M;tkD_Zv~y3>(3>PCwiugz8@0L9~2#5IMo_{$PBS&{F+P-#sp`jouPufAZm1 z=Tj|APfM#kL04I)ef?3l^dKNs5}Qi-Y@@TUe4o0fM?#`Cr^j5pm4$*capjDsOQ)uv zKX^Lur@D-YYondv`@t3ft$z;08I`^uzWOC^@T)cQBFI3H#z>kwb6LUsq~zPs;XIr+ zR%O5hY|KRk?MTeNFiX#uMLdk!`C12xhheN;U}y@%BvU{aIzD4p3&<8WD^zeL`XnOx zaK%y*}b_Z2MD4bK#tbBZ1g~m7ru=DF|($@@6I=As5%+$47 zmGxoGa1F2dZPnT**}gg$F=Ml};S_Ap_~fmyd>UF}JuR3wNUf|li$p39ukw77Ne06EvKf+JDmc=sBC+~HJ{;(P%L~`W-^t= zipkmP&-`sORiS)!2(3bxM24PLn|KD{!!p=JcbPED&g~oApVp~?O9J3e(-qvY z2!(Ek^YWRU{eV#vA3xI*ggO+Xvv9{YF_Li_BaCGJM4bf(!EzU4wF!J)o0=$0;Df`o zlcoZ6maB)DC4b@}j+#*fyo*w>D>3rL>(}uHgvh{|$I_!xEC-19|qG#KFtlpq@e@&Nsgmxav zf^2^mQ=5LUou;%)n;{}uRSmOLMvqg;h6r(ucpve5EY$`c549r&zjtODEchZG#48lK{D{4x^TDEI4a@8W` z5+Z)}G!s}Pb*?15RyZ#m&Ugd+Z*Otzt4C+T@)}H`{BT$PF0LZ{w$FgfC`_`0{1IV* zoCyM;D1Zou;l$4B&WVV6!4$_biss@3&Wiy(Z#V6z{#YZ3Tb;kqGZRHWe~GJ2A>X=I zN1@>%inF>7c zT<;Vv>$G5im{c*H4?uQIKJ88mp^m6PWj9VuNHF%PMrg|T@ERuIKwc0w9v z4dk4XkKVQuc)9JQy(@byc^Blcg5(*|e3vb&`9YMVMaj7W$HRPaptr??5Tn>N1*_Ej zJvL&JrXUdRQp`Yo0zn?)2qzsW2JRAN$lW*DQHwduad~0PG&|6_9GK}h)GxX``bbMcSO9v+Xe zIm;OHo2Dn4Xob3+WbONlF`(D^vR;S;Nl+=+%KEBWwVuy;`PTi(dw1^2M4g=+Q4$j# z=GOpJ3;KrslN8=h`rJV=Spq(KSGk4<0Iy3@fA8XxRokwRCNxHH5zTtB#lm`KtFsr;~N=7VjB3-O^{!V-;JfaQ)1Q zMr;)B)L!HCwJcG3SgFlRXpa%aD_U0EX2o z30a`5s@I)>8OTKV>rTi^PH*bw^TjK!+%;5g@o+YN(X zEYcZ=h^`Pri@a?6KVsDS){x8(ivT8v4FfSYW|Y!MNU&wlPrw()*IT((TPEQRN(v-~ zkePU~!#6po-V7Dtj$h!A9vykQXk_`M8zOzBpw-+Kf z@ZdFkvJ)a1+jxU-|6TJ-c`a>MFSDeH8y3D~G!cVy`C6 z0KUrUbPkpU;vVBoS(Rab5$qp8Q)TDbvQqw}xK<^~w>7XiPboX!2Ngd0c@}!@M01-? z<{n56^$PMc{|q8f&)`_m!&UI`4Evly7v|5IEDB4LNZdB|IFj*V918g)$c*#*Z9<2A z|L?!b?=HR_le~Rl_p0Ld%`$)=j~`J6p98)PRA~S3d-RuRE2tj6rSD*PY@d0&Y4e-; z{2y}v@4WOs0{!3e)nn!cu*6D&M1U94#sstfK&qD-cxRASojo~ zIM%~s?0?S_bwse7Y5y|UF1kXHwPoZ+-_Y3k^ol)&jwtdEe(V5>Xe@5vEh*a<$#5qvr;IAJI7-*K0~&;iGx2{NCCo;eWQ$`Rh172aS9JUQSg z!3#en2yNimhwBTBec;8EA}z{#@&r<$j$KTGI828h(w;T#Bs9HWmQofiRQz^je*_)B z?eO^^|7?TsbMJ90qto(8xx^CtAo!OZ@1}r0y&$9&)G~RK^*SEJ*^z2&y)ch{NH{CA zt+Z%pxVd>5bwSbEvpptO?SUIg;<_hm$2#l_eJMuqzj6R#Q|xvp6G5+mn}#-Ix1+Dw zDkx(xv%whNkZ%nZEg*$&`<`ELs*2ah4KmN6cYXH1kiX~B&{vZbLs^4ILfn*O;O<`3VGE$p8rs$7)CMG{olkHK{4@%U*svdv-ppmDFeWAKXQ?*gQ zVckZ`63qONUViF66mUipCJ&(q0M*B&s-yF)21PDVUC#{s$oJK=yR zY#N>FR#KlsbL61+dZ3@NSjXq0I-zV9xkjrLV-VF?qRud1wl}@bV89lYTnBdpfG^)+ z8GWI9DzlcNhP?3w^`Dg#j zw?+VM8oSW>G*tx9_8XV&Tf8mY(Uvvh?3ROFm#R%)7g}(^ZX@4T)X`?;(2lpyR{fhT z$AZmc!Z}t=TkZ&J={|d4fel}TH6!27`J0_|frI3NgZ6?g%YyCD#yOV0g6yCo+%nlhA|A^)<-6 zfPz?8_|nGhg>~}cUPQc66dS_JSKvK=bSuAGNA$f@19(9gBs&+EINEd7XL3^yzUWjH}( zD8NK5pSAQE5cdq6ExbC^UvT|%P-dZpYwMVbJUE6MSn7#P?vr%%g=Q3l zRM6nhj%l}CS`iv^W_$K-JLgUZYlOvxhpFI<21!z! z`bZdg&Le2)`ZeCjFz3h@Bkkcv7bgISXIR7{^R*O@IrSr3DC#Bqb+59e=!zxS9oo_z zX5t{AUW#YAd^5eX;nMvj&}quauQw{608s+;#C$tHzDSPahOD-<*M)o7&||lj;^euc z$NH}rp@G{2H$OVw{K*T9=_9|3y!E;z@{NVK${q-C1ToCEm(_BWtZ1nI!Gc%J zXchUM@~Cu^L)nh4<4QBhPeO*9s6%%D;Xul+Pa-LDI8gztQ3H<9|z))!cj`#*b#gE;T#szAEwJ&j@2qJIUYbedhSEB zqQ31TIL-F0=WTTgC1ZH0${^tI64Q+b!XI5#;hK9+@pt$0MDde5f^t!f57MHO{+2!G za}pdR`xEU}Ebyz?vIf}^ej7{>(=bf1R7!eGH#qO&=n<8XU$DiMn2g9N=hZ52F4zu_ za=G*pK1PD&Mr6d&o}C&;&K$wxDIh5^3COD|zF$?hqpK52YSs!$7K}?~eVcDvRg0H2 zRa{|Jp|M=%z1UpDF+_msTX9_eoFRU<{z6F`Z$C$GNk*4iD>L}}BIU-zA93=Bm6^5Z z#g4=j{^r{;5;Jt{HaiR-~32dCQDZ_M;H*?w+s6Ttc0AV@OWHNR=aIqCC@l#jqUEqaN#U7?Aoh_Tj^^ zrh2`*ym3!HuP&77<^?*>p0Aj_d-SNx)e~86-5FYzc|zXihFvD~-d}l<_1g3&A!djT zVSfPq67gW^0sLt7p*R!ZZdgRxk&|<24y$Ocau+{(Ww3bcyvP#w0R5Vdxp09E0fCjl zkpd-oF-y0-X$M38vP@^!^#MyU_T@0q$MkNq(n8$_2(hl^oQKgw10-cRMBK~~A2~#7 zf>Q`pj-c)hgPARZncpib+`kvJD>qz){T^|M%aSn|j@`u*)3YXLJC@c-U0} z%L!6Cv!WjJC^JVR>Mfq;M!Q`>hYiy2$lug;S-c6R#eRDI{BG@{e9U6OKNQ=FWUPP( z;QSIpXj6aqj|wGc)@(TB!e&q9=G|V9rw0TYBT-41IwhrT=`a$9?-N*>$_+T5NlSKq z^#T=wvbx-hw|9*rxCZej^DV*1cM?HB?=`(0j$^@h*x0w19X%bJHeY^`fMJ@ zoKVT4$i=(Z%g;qtz0l|1^i_T}8@6ekN_gpf)9dwO_31A=54zO%PQ9VSm8MZ7DKzcu z{-q-q^;MTRijVbWmLlG*3AcJ7(AG2N?Dq+$L_o57MIF2PzH+p`Zk)lxVLwmmmM}{d!QdGgo^)!Rr65%27v1z|wAT*_VysZ0JI6-MPm|EEGeC)xl7@Jo4D> zpiVN&cqY~JEkNux0CeIxv4#=kvyC~mBl1&^!fMU2(x(UKDPEUInf#}{M_~CrQ+(=P zb*JK5dIt|`<1%Kd&%rWF#H}w+;S7Z$KkW^r9KkL%JS*1oEAL$f>a^04NRWHSpFx9| zZ+RG62Z&e9xN_#bhvV+`hz`^<&kD)ugcl z2@^YFGkq8voV^cpOO+kNT{@OjT66)xD?4cfm@%0Ef#%M*TfPGhqA&jbmSihTPZ*QzsnA)X00DsULuqTg^7o2PuTI8U zOAtXUY(J&ZH_qj526$9YYRfg%2Zjf>d~KiHg~I6fsPTwkmPDjHb5=Tu@B64I4fkcD zl~sOdJ~b5x(<7`+YX>CVk+50Zwj|h&M;1OYL@}VM57lG0Tpsfpyv6$GxFFw8D7U*=TI z>L5tzUwU=pM`L(wS9hL#5wYk3A7#dNHPdnD(#4QCA}_9OyDiL;OS-8EDpQ>Kp< zj_g&%|M?|GZF?owdm}^rCL`Y>?lk}z0G z)(fsN4mx;8hppd{z}C@rrFy6sxF@UBkpQp1E!VnLlVPH~pm2jqqDU{nRUb_Suy+E1 zR|vsCG~?28ZT;o~Fd)2%g65zx?zDB7fq`=+a?A%}7Vj<0{9{-u02beQDzTa*`56Oz%vT;b6RN@?sn9m}6MC zyvklj{j@pJIevbG{~i-+sup@D`-36Q%G6vN$AFs+5?SL3RH=B?^xuYf8I1koY1Fj@ zTjLrovt~ki@t1s42Va>k2}}EX-K5VLl>g~>Iw!nk_?coN(*f2b+vEvVJDCS10ER}# zAx@aoH14lXPoMMx174pz-7O;Z<{ecepPY~9)cR&26xUN4Y9!5l?WgR0l!Q`PH2`yF z!`f+mtK8NhK5VxW5?x`E36^CL`IF*B{!mz~$ykIBvq5B>osX|yt(DKqVVj7wa z=#jD;$gMFa3AxWc3lieR>ab?vcMIX(Vf(nJ=4^hdG1-kD<RDINUmv|{Afu{}9 z4)dgt|Em)Qzl^{eUm1A_0>m3ChamSxaxVyi&3q-ec1u{@z^2kI4ZR`s&@> zpTCooNiD40X!-_8MHATBm8PMkco_J>ocjsqeP$mr`o9}*Y$J*bJ^SmUb6(N8MbOh; zPG6(vPKgY>ua~b#60Gsod50ue4@#s`U|P2Evw}3d=Zv~cmt#GDmX~xM0FAj@Y+=e3 zI*&aTuXa2+?}EPj5^te0!mA~|=3e%4fk#kXKWsWM%^`W7Z>W2Gg`bjh4IoLGCUqi0 zKRDgeeTFqf(Ao{an8}l|H^p3zPNwumUzIKFTb^;|1N1BKZ#zIrhr|d zA8iEynqvQ?V766_Hs1;Jdj%F~l3BFH$=Wf;TuziLh%>u65lPY3L4%fT>@{6$oI}mI6VJ0IJoQVoY)nu(qB;#G`j8|^M`8G=q@bw8 z%PtAmnvz3~;)GMl(;zypO>2Id_!SG%nt(xVuj~F2BdPuN;IBXUg(h0F*#<HX3H*RS6K0YEgbv}0<<5fR&5jJYzBU}BiL zFn+rjC-*8UrKuRLqanH3kAC0JgUP;q&ot?Q3;-m3-5Ha_3QabW@r#W@W3+iAx~Lxh z&eEw-Z?!W*^OF z&%yA(p-c&4mhhS<){KW+JHzEix|?%Wdm;soS zn&Gv4JGD5S;F@A+o@-u`Z0VY5R-1M0N!D)D?JWOPQ(4NCsP(2#fl5jNBQoD;C@nWE69!c(}yke%YNq1zF%L6PPq*GdYg<|SF?MXzN_DqK0;x*<;c`tpW^ zINcO;Tz)VgFV2Zq|6S_Eq2lYhC6%rv&H*Q`n6javlA4#rLpv$7p+d55>4-VyrtHlZ zy%8gW`lq{{V0bbpEN^B=q&+G&J-S3sx=_ZP)$s?P$II~B(fHVjFmdx}|BxKkoE$)R z4tz7`$82^CqY}DSiIlyDZAO356*+XR;z-NE{EX`@LjN5?$ChB=a{BFqX>l-D577$b zjG#3sJ|$Z6Wpl-G+fMQoxW{}zUSy8eYHRe}a)Q8hKlmKJ;$lWIi)(B8+BASHc>MCvTkyyx^uhq%ytQVqS$7qVKktm zI-oIFwkRPQmsTy7Npux=vnC}qoQ@H}6M}CR6rpYHKAM#Ei97xd#e2mE3(}DB9tDN7l z$xFhCm+~A(82OQWn_{RM}zj|>8SIY?H>r}cp5B(ac8pR%oK7f44<@vI`>D3MICB zFxvTLyJ`H_gr17v$~vyGmEg%hiZt34&BK>0?2PqQ;p_zOakB(Oj4se$B#>eE4b0I)WbGl<%tqShADQ>k#fe<)ED7 zxuX6{M*R!({m=wucm1Bn0q$vH*kJOBnHtE`X~_w6vA1ly?-2H6w<~?67Czh5Ggu$l zN)eE=#i7AUOpsb9IGC&`*&mtHTGkg(pP5qscdPGpOGC~?W7w}K2mX5>UX^X@Q5se* zHwE=xiD^6n^0&!k*>VHgBOqsH&O02i_PP{$!1{{44kEy?cMP9&I8@`UT1de|OBgJvyb^QKhecQKrKJ z-hm);Uu5#1%{I3oKxb6J;1sAc1s5Z$dAdv(q$-Bw0iJH=_osN%#d_QC8^I@_MXY8laQ58B}vjbva*tpA{~*eq>|LT z@;l$(-*Dfr`@Ub-^ST~a$6iQ)c>6=j>DMjX^3x(&!Qui4FaS&-gB=L+ChQoQVyoK+ zuhkr6b^CXA1w2kJf4X9m|2^ZW;(^wRE8Vs!ReJ%a#$4rc#3HmfV13RpA_wfb)k}7V zU^x(P4&)$?;_sEe?ntNhQjJSTXm9yT8Xz2ba+552h>G6gOtc~t8_Yk7%;4kftxGO+$If(oe*fSPi z{-+n&4E-PmNtTWFR+WJA0Mg`s{aJInhI4Kp9q8A#ub!Ctt_QBoZ8+JiE`91Aeur>|2Aa84}{WRiD>lgXK`A-Ayte)+r|1Yzp(|)9LGWJ=26w{fi zNB%SVJ{C`eK#vR9$Cv;lYvddc@GrnB$EZI)WEgR^|NIr6`dxNOlC!_MhcfrPwK3RW z{D~e8WXdqtr9RU9GfW_Y{cWB=?}ZRsMx7f6tv2%S9UC3#8l0CL#Qq%^)q8yH`MFA@ z_k}X|D=8C)(eSfeSVaodV;r(FhkbrgHp+3}YhZsV>BafFSMcc|wz*tPqG|UzfkFr} zrOIpbLHZbo1_x-t2ANYI7y`hC)CYRwQeK&Z;=;w^PMxp*v??l&-aYut5@T1dQy}|^O48(-^YI{Aq7$e93!EN%KHPXO z{S|`u%0cMOjzVN??CY=-lAv>^pgskf)d~=cWB12OXYlPaIfr;9yEDOb>7v{hbb1^3Xa9{) zL(U0cQ$8e-3QiV0?;iuT$x}y#!Ej-)E@edBH|qB7jzHl{a-$)l2WD?(PZKRO_af~U z+N-B`k9be;KnAsX{;`xvNTf4B?DK26gVoPH3*0=35KjQq&;vpy3i$$H<{~gE1$M3g zYCiT(V2|=(UpYkv(mz{1&z3RMw=m_!$hCTD$a+$nlqCk=JQsW>5rxGZ z1i&Z&3mn*p0M_Tv>YT)=Z$S=`-;o0$zZDk^=0Cg{U9?q_$)qm&Q=v4>;-M|bl1gmr zfEYSu&}qu+vr(*A2#Gz0rXEd^c)37r7r#zftSz8Eg8+cWDM=A zT1zTz5sNS19|o%YFHoK2ZTyiO*F)CkJn=pG*0&iXb`Y#bgy;jn$AiHFq-r=@NV^4u zCxRd@y-^j*f7>@gvYXM$pT4+VeKY@k*8bt^?%aLXuao}w=|3M#M-`a-y*JGmC@f&? zOj*4C@JQn&EPwL@nfAk&3_HYMoq7U(^X|(5>Y~RzA;^m_d(q-hL63RxAlG0*)h2(< zqjk+DJg+eJ^C0*EhBh)luzvLWS{7cY{9DzEKa{JeUM07+Dt4^KYF%3XRaDSj~c>EX>S%@rwp zfOYS%@6k?-ae+_{2fqBjf6J%6A1!am7FZMoE*}G741#`zjO+N;=0NSdyKwxv@vXuu%+fyq#|yeZlEL+t|~ zM{GI8Z6basH|ya!;jK@@Mf-3f5F+(EKi4+f-NN`uhUZNeW1mUPk!LO&Z|=p z<;xlQ2tcMnF1a#h7~CMhA@p#mzV1ZtAXSt19OTTDd>;7t#pid5*7@k5uwB+`72lt6 z-(r$?kXrV)lrDAcrY+xp_`drZ8x7i1EJ@(=_tk6iX$*NkTnIf|HG_8dliqkty0V{T zR>s{LOFCLB$B!Z0KKG3yVzR+qZ++ZCc0g#&?*dGk+l}?^7D75`Y`L!|4K)7x_28Lc z3=Nm3QGx+NU~;oYv41t<~SAgZBG=1Zp34xR7jOU;Zzr*rRIG#>=kA zx;%shgOPP!)qrei5Ts574urAy%V?%!2BSCt^nD$G@izbnsmg{o_uvC8LD{Br4Gwww z_c&n%PF%{O{^QLd-940608TYSGz;xc^LZ#&LUufyyz-W%IZT{{zl{P5o9fVT1iA>| z23xv=DCk7?Ir%Nfg&lZ1Sm$WQjfcj4Z6U*QacW~Qpem6&2N-`)_QIvvF3Q?fR=n-5 z>)9&HCr-*fk}B!426sGibmLr)6}WYlFXkiO`h}*ex}09}hE`Bubp$MR8D>q;X;F@& znsZKjN4l}%9=`)-XjUZEp#7tBdwMvu!Kn;WK2fbO%&topb=z~2iK?BQQ30V02qT;( zkxIWMhLevx8HmAUWLkf~J4~WGp}Yn0uH{fOt()8O!540poQLWE?9>1HKi`!QddU-A z*_BkG1G0N|WkF-o-~ULCB_+^xz6^#Hn;oxA{H(fv#Aw`CIw;}QL5nEJ4MIc=4Vbw? z1Kqv6s}h?!@9`S<(F4O{ct1jd)^6qlLeuX?3ODD<&-tn5kTwQC_)2`g$H-J!iMoN{ zC&OnM_e^Myc~GbWms9p7_SlUP#UY|@t1&)2(_)3qH}TRQ7=cG|(=XgeL)EEN#bECe z&udfZxda8_<@(w%r-`hy}u>E|Odlm?V0T(2}w06_`_{!74K zkMK00N-ew~`VbR@E90=#DL_;l_u9@(XsXT%9j#7tkiSe|X+eOePJ4QJHoTZJs6 zlsD%op-)@?gdn_Ea`q(8?4!5QV1Wc-wGNsPXu4TUm(7!mVl!k37&8>)BiakV5i}Ds z)hz+O(-6==iyKbXvglcGhhu;eqzqUPp?~&K(Xr)(D^K;@3~hwmKVt;-2vH<(ud!qe zTH}Q0j4UE%QZ?-l1TtVXW+sbaA-!mD?{S9skSkQH00<_*QSu{zjL08+xCa~bql5$1 z4dlT`PCAIz3_!14!htap3b;4z;=Plim!98n{D)kSWy&tWg1JoOo)-aX=*p|n;WJP= zNKf0uM5M0YM6o2kO0J}>HaLMN>`G=75cnW5T0Ut_2Dp!*UiM5q(&N;HSCVU!x6J!A zJpO0x6|ysVD~l(O@S}p?rE0*zE40s5ZgdRpeio)CGz{MEq#j)dX;FtOR*+M5*-?mS zE<>zsE7h7E68*rKC(*`kR`=q;u^Bhf=Wxx6=o=Sg$Rmx*`!R#)QuS4b_hw?`G;0FM z`(-F#9`X%r>w2R`u`f2#tkPf0mLU3V;?QYHA+W5ZruunxcxBs}shypNO2OuLcdrh9+IKX6z{=tlNdx!#Ccrqqh zv|$UXoA?@ej`&P`j+{=IV+*acNZoebVkuh+(T%KBQIRfararxTDmI0dx|A`|(6TcQV_g<&}K)DoIe zhSkLBi?he1?pQw57YH^Xu?{2na;P9YxS4UUWbPvcuJ4KgG~#KZOEM}_RvrhB2Z)K6 z@DK-ATIXOYs+N-^lnd2Cq8kUgOEg5P57z8CjCbP;^AZbxgrr-8 z29eE|znN?77kIn5An^@{2$RVhBIhY!iT*bbW797V_tzq!;Zjhos)ry9$h_jhF?<%{ zh(_aMcUR;Mh?v#m7Z_^mIEc(pv@PjLbuq26(t+BJ=mzJy(ji*a@-ibhkSfL~^Ha6; zHBOmItH$$aU%SntmE)6AuRr%1DbXnFSJFDXtBG+0u=F4wW--X4M{Y6Cl;ON&=^B;) zLd$U_I$EoaW1NR_G!zcE2e%-A#McNP&xtBt#5XyJ=Wx;z%7CDDITWS}$B<(JE-C)8 zeD>eTN%{&$1!~U3R=nHjzsxqea<#?zm+(u+Psd*7Y~q#uwun=%zs>*Zbf6B*Vy85h zKFAwB=m+kF@ zrh4ey*H)=EVrsFn{&2xloJr@Y=!|FMKw!4a?sztliAqm7mM~wc`89rUJ^WmECt+AhB_OB!&DqA zvJiijh2tO{^vab0AlwSw7>nhEF~BWEajcW>n$^7r8D#x~&VO`Ff%}+>{`wu&H!cfFl}PQ2#kOhS?jIgR;IciYN6R9Hsy7qPPn| zo90OuODgMXydEv)64upab2U>p39MOAX`SR^gk}D{OZ#xsW!teo;7EUM?Ot8o210z- zjh)hOf*Cpy%j~>RM{jJrS>?JvvDo`jC(Md2iUX_Rb!}on305>2!C8{=ObPBNQZg)D zLf64F9d^M%>rHSPKpm2a#7W)8V<8OyF}N@+qvgjz*HXVhQB`=RmqUg+Vz4F8dE2aN ztIRS3oJj=yFZTM229h?wZ5ZS%R1A_~)9pK2Mn5!gZ^%d|0aLybuoU2hGuq`xdO{{8 zY$TZ`1m=6m#~c%;A)D!C-QYWMs6Mu5$;$&D?s2W4l3g-(qJ`NUUT~GFvDEuqETto~ z(*w*!SYAxD$GB!6L9D(Ec+B!J^B)3w8j z`aX3@SW|eb=phnOebJQe%#bfPdAaO0BwP2gzU?KG+TK(()^7ZG&n-iB+^uw1Og)^& zh%ZJpSXkhjH#Wo)_8{%V!r}Yh z;rWCdxFwDLJi`a6_qL*L|A?DH4VvExNBNB~aCD(Q-p66R!%l8OVfL4qwHN4DMEY{E zxZ9Xn#O=Ap&$g1*yPy*({hVTtv8^1Vh=S*sy$PRZ(rHfc#Z{43@u!DRWsv&{HH;s`@;9bkWHV0hOoR>Cg5%pNOuqv`G8@_Wgszt zPe>Y)0w8Q;<9BQH&48mROyzN=)C$)k=?)GL@^i?OTYd4z)SSnEbR|YPF!|LT_3Akj z-n;KTiT}OIvOYAGXk&}>y0qTl%xqYBHSV%Y_E{>D%HY`+^;w-A+Qf6%lanXrycg8$ zmjM0Dg8LyK$K?B}GNAt1_nl#QjuFT2?)O9Q0~vbcmQ=|%*DUF{6+qxn1~BESA{X!m zMaL1Pw7z4KW2PMl3=@e`xC&E~y~q5N$-s?c9wmb8_`ZgGu>CHh0yX~kkGV-W?Sp5X zFvf!3C4Uqld-VW$pMUL-X6cRvCwMjJawS>L^0`AUp`))wd#f^uK3d!ZlmXn+i_Iwi zoM)WmVm3ZWB7mDrnHReik2AT zv-`zql{gwrxZDvoBlypKb_JZfBl|8rW2$H{`18li&t`}(`Uni*7_pS_>3c7EPS5qX z{OduP`Ei@yCu;`A$Mh%nim&1V8@*n(-}Csl!$YD;nG?^gkW#KEl_CGXaPP_q9iVY%qia``1WJk?velv3gd*6|6OLkbamEZlKz9MA4>VJ%m<}RCX5r@LLnT$ z%sYmDQnsn(9z)R;q|RRwFAP#E7?2;w7-THq@nAbXSk{uEyvtC+&=sTZ$=J*JUAt3F zijXZo_`QiXu6r-qS)|v=-NGw#e{g1ADm=mm5t#-bZczOe!7-fHGo%4eO3yro)@g-! zl^kjO@e&pvy9 zu%&^c3a`Xeu1kGlvZvE9Kz$-e!_NZV3;K2ye(E4dAN%nkhiOJ+5M7yvd=?7oLG|kl zBA)>mpDx*?6A26g9IUp&Fr#$JC*6|AGjV5t6M%uwjh9KZFezd2U7AkMm`moK z*T8mFRg1`W)YYH#M;HD(ins|p<O& zv&C7@MG1Ge{)6v1uiL&^XYMj3#bT}TLq^r_W0p?Jep`R)@g*qW^v<%On#$g0c%%r- zkA{od&~z4i69KZLf(fn+q90RoGd2_mZhQl>qJW`>Wub`2BtNF*%sYGsePnYAr3{(w zqiq*0lw6}49$dW}1wJ09Wc-(*hGQ5PzR8PM~ zJbVYEm7M^pQ6|gXqtMlIPuQG-8)#+zGC-*1CtiaiI1e5gw(jAT-p8*<&m3X3b)5w% zU=nTr4Jg;QtzOaC^8L?%iRj85WP;d5xR-d zVhE!d${A8FKi}Adh5gR^`k9khRIn{S{!rm*3|YochEtmy0#W%Q{Pa|OK|z@eW1DjC zTZ^AM;2hjL0`Ai%>igMa!G5Z+bQh;MA$}x=0ob{HX6*6h%!|qy1u}5cIl2y)5q3WN zVHDMz#xz}tjd}RXj{Bmf zi~k%BbR3T{Y`gg5zunK4Mt`C-xTp1b$|(}aUw?W|>-jOuBC?|%XIJbyQ+0w_mChVW z2ist+OT3v@LfM$ZV71*HyH5;D;?FwY-?b0F$I!FrdcqH-ed`u{ z*{1+;0oC#h^NJzWyc~S>76W?y5A;1VaLU_u>6h)s9?0NTkR%+!_5xeLA@*A!9R5@>R7z2dEddvGO$x0K@H%bRymhODmSM zV#F>uXUW(m1s{lCa2RsGY8=9y)IORjS#Ea%R=uk6qQ>Qbto{KNby%L9PIwAl1y|RH zQ$HNl+hiODD-C^W>|LWOGAc&2}n{&i*~aNVF2~YZv?-)TUzasXnD6+%0HY3leoxH*&l8&MDmX)9esIK zcDPX`P0prF+C`$LF_IzCA{Dap&fijby%telfw6ACAf9GIej zy|g>FAP9Ls8u2P7fkjEh#dJ2-%O~uWYu~z&HN?JkeWH&IP&`+n>2{*1fF(wi^h%G4 z}dE>k^9)>11 z*U2}U0i7@)0!1+deQ#*Gf?Bv8S*2G?Q$qh(V}n!dRUX|Ue|@R0jArbt_DTNw*9%oU zpxxJlG=kH?XuSd&09*p2tv23_>AD+KSJ8wUP|1!h8&JMzDaa?^eykH<(>4y3yLok5 zEsCiQ5|VgY0UJ=Hsu#IN*+=^8Nx2absS-!G7h>I$A@Taf?nnMRcDfVjun~`xdTcg* z=TfATij(O}7bvDYJFb&{d#}akvCe}FVhEKvZV&oL5B0P#`J?dHSi@hssXXH!jiaJciSX-|8Un?J|Dx2~0ZS+-3mptpV z$TOt+(VQQ$_vBwMuJ5zH`z+@11J3q@>kg3BHf?Y9px^+@Xs~@i_{ooWlo}pmvy+v|tJyeNoM9X(0{nOZ51Taj4VDtv}$wc9h@7RinvB zrpg=C&k^yy!bAg*Y7FpMAb{z-DlBBrsg(Zu5w!a&{PKmS>lZ*~_}%SZRC=eVg1pL| zza2zap#%HCSfW@<#;Wz%t2n0D*}_+6YtJNmW#jbWH|+Cj;i3n^0q{mKN5QVoO2nv< zJ`BQ)*g`?&MbRT1%wpHrg$^~1hxb@Ep~9*dmscT@-Ix;oAzrkXO~7f!IMY~?4nKG# zx1{3M0~V&(^hTqi^f`=>R@8#1j3p6jPd3WR9lSWFl6iK}Nl|Q$?_o`m^kOp%w*?SW zk0=MFZ+zBX?Lx0D)Mk;NlJIm_3@+!eI2X^G9=-C2v4_Qd*UF(5o3DHpj zt}Wj6M@%zU9NO5XkOjmS#6WR?Yz0x>ZbhIa?$Tnia22emQ{{)MweNOKK~z(C@Blv$ zLPX%u>>4#ti9jihg6xew)d4CLpl~AR`YlU$p@1a^iSm0Hk91eKs=nUgT}5p_cV#6CqruJ8+ccpWSPODM8lH51rcDimm`<= zmYPp2#Gd%!@FtJw1<%fH!OLQgaUh9(7HXpLXW0X!819tj`$6()#Y+Wxz2GD(k@SA@A`(p(aNFQ zgcI86{YlS6+3ZxJ0DgLS1_&{rNx!MzxEN)1*ExV}_~RGtwm}l`2)eSNb6zOd_`)YX zMz8q72XzkZWd73vR=Rx)Ek0xDg{03o1YJM_PTruTK$%Tl=%xxz^4gE@f$8g^} z>U)f5+q9q=;xEAKy1a~H(GTjmFSuh%Ji$^bVR=ydKLRDya*v3xtsTww4-XP^eI8?W zWc|Rs88w4AR8H8bm$Ju~0Ll%+&9VXC9Lma;bc8$yO^g#dQ{)I@4P249@zl~Z7c|1k zV&WMAR%dc)^`LLEOpOv;&x;Oug&gy^H4ZhIR6+NG$BLWS(3AI7FjpS6D@!hLblONC1#iX;+cbGh?`qhNF}x3 z@zvp%$a)|{?9;WHLG|nT$00|vkjYY1AiVH5F)Rpm?9H-*n$7!-5iS4kV(%3`={&W~aEnTSRN zDO&FL`BiP!h;S}-UPEw!6xx$Iq8H}{%5v`MXz8Mn2>l5wdF3$km-lg%x!B!OiW{lU zX#SEVP=?^4v;{;u4Gox0JL3Sm=?)k9+P(Q(80wDiiub^g(@vTu@4tb4LZ{n(EF{s+d4S6b zWsC8lPi9z$*aKKMIZdRXg@P%ecc#{u07H-%TiYDT1Fq6&XIr3x?2qFienHOo_ag*^0XYk-O>qj`dC-&n`#0-z%8DFC%^YGYXW;f+ch*?nxEOSt=v2SER9Y{MjH0 z$;sT1-lUPM{;kk@YyqHvhK}_NUZY(Yqlxa)Dw+UjG!NN9LoR7}ZS1$aJ%uurqXb;z z?m2YARbxi)>1ztbuuJpK6B$06x7;u7?s`j10V=2*kd{I{+#- zGQy?_*U!jiayDEA)bFev5j|dr*>4h-Ojox2h}Cf@6j4kvi+-5vvX@D^P+cs64#H2- zC3;DHRXNR!$t%W_6%^W`88@p(tEd94>kGMGwx>E-hFw+~$Y3 zyhDs3@?7P~+s%ip(iKaIVTvoA4jC=|YxQxMfg?==HGQ{y0N|Y1=X=+NBkF6@ z`a{)ktPNdTYE0G|jKeR-#zNodWrPC|mh?pIO|mR-;<*S%vNvIH?C9CtcsvCAFHNk2 zH>=GOv;E|GnIscXsaReeIijr4@J=DB5}zqk>=W@2IQy!xB%hx4sGnyu|2FtfwLj#V zvt(L1ULZXHlr4eMQS|wGy2J|a(p4?{Y3{Sh)ytE##g2RpWGvU=gS%@D+*(d)g*2~9 z+R>nszw(?!DvmS|MLDygk$Sr4^cu9q#{$T!4A%1^y`gUlq$kd)Lw)Nze7%@ChX<+W z;@pEMe#1v5KgYOl!T^w*k0<-2k0}sgE4&xiX2*B1FE6{`t4R}kZ}8e5-$z*v6lKt) zzFm(y$IFy^A<}Z(OJ_APs1iqA6ek0VlVvuOPFn6zw;* za-9pf!Yw3;mD|#_B)JWJ^xQ0_;V?+3^@7s13)W+jrU9S6M*rJw z8ap%*oAbBTnT9=|oG11rPDKTPVX%ffCUBELg_MsilD*$dmG86yWrRR?U_EjW#$nA{ zvwyEsDYRH*VVuW{Ge2CU$h<-Wx{MY{6~}n+t7-P@blhHu+h^91MCk*2mkS;{uo2tN0>+esEP}nIXxVMcZ<~A z0L5dP*D%VGBh`IP^Tra##|(}aWqhjw3<5^lWTh;DQZv^Tj*@im01Gi3=?>r(b-K;{ z`w}hmcHygXl9{Kw+|OH0Vbw`8fy9D;M41`Vi#ebQ?v3S_rgmvh?c7tFdhadMziZWz z1lDPp2FWS^{je%-YG~B4#K`&@VGNq|UV2JsPn0UxLVD7`#h`&Q-00s?--6PPR?pue zG44UNu-aF|gmLQ1?h4ATn*c+Q`gb1uc!d(1ix>!Px<(Ali3|3NLET^ScRD**QPGsU zydU78(2$YUOX^hl-jKEyQ6VyvrQ`qNo^i9@Mp3x;d*}Wm500MKYI^j;HJl5};GzY@ zOxMICScY`3i8L0Zd(%YbjFHJT6Kji8rLFV>8ogG?{jDD(x1)sbR;?EqA!IG-@^d*4 zcyxt*vR|HoG@(wWhX)r!PhN} zC+VcOPlS#F#C7-4MB7eWG&bN-w(xuJx1le3ZB-Db4Fi?nRNzUvQsM`#%c?RQniJI< z+Eo+g_Tbd;>%f~oz0>6`{?ADs?-GUwVgrFV^+~7~O>ZCm@hKrcaJ-1beWRa0BhIBa zCpcd@u&fd94JjeYw-B*xo*b6JI=ss=1bJEk3$Z|HEJ-fB!|M8(QjaTP@}qI(w2Z^& zl1Qgz=D3GRB(bep>``8tJn*%o*q%}1golw-)lC&Wx{4Q_WeC(=|6vt56*S9t>g)Tm z4dl7fKL``xw|IxOYMjMGlh!JQ!!KO^cyeCdLWJ;e@xaz`hx3e=T(}(6F#%Z8Y$CG_ zbe50~GUthOY$g?-KhSRGvv=qG#dT=lGqY>w69IpWvFPOR!Jkq@qL|aG)KS9oqF9ml z7VxTJ*f@KAf&%sW{Xd!SMqdcW&Lr#hn=y{(t$9NPy?smV#^R<7mLY?+-&lriB3KQZ zTR@xFzpd||(Y0{Gm899B25i-OnJ0j90I|YyT8Zz;mB&Tiq_U3aUl#enxeyR&%*k z%f7+(eJFTVH|x<2?=8oFbubfkO%J-xNqWrssrRbRa2vXhz?_KVUYfn2e|@d`ODjDk zd34!WB=UYL+B$qM!xl?$Q2;RDDS>M~BSSV(!&;KU&psr*`X;vjjJlL-P;A$u%39-m z^x!~6hIJ%hW#{2D|8e5C^}64V)&5u<3D@OPNIc8yKqZ^!m|e==}lI!iz8wd8f3&b$cwHcLTNCE5seX*yN)IsB!EZ zy%O`y@a)iDB(eI~AG7q|V8us(Z5o;i6elW8+_(N22J}3eWGf-%d7Ex|=eza(1YFhj zU;jI&0SqNho;ZQm-Y_1I21&3;h2_LI*Ppbb#maJIi4C%*krb>29j)PBRG{LhmD11l z{{VYNN6SKDF$D_{20#hSlC&xccPrNNtVdI8)Q3ya9=+k2Y(Y{Ue(q0!abLEiZE$_< zOI5GzVl!7xE$IVmxW*+%+9<}fv}w}$LU4xwjOvnuwWLnc78ti=Y)`!WXS@ErMdqR1 zyMH;yc1{Huo=l5*=@4_;LsD1k%2@*ApAk&dcf73uvS)8QiSW39Ph~KE~~oX zy+Q-+GtzbyiK|2Eq)H|I{UY+ODU@gPMRkW#k;(^V(ul>pkP0*UtP>SPR?zi{dEY&L z@n^{U_GpnSDLoEhWnv9sX;pt&VTEX~beTJHy-DA%s%3C-Oq7gWAjBppd{Fz+e}TK( ztBdXVC4Yl|mxl_g%~8XIb&CEEU5Zp!MdH~R4rvA>lp2i28it9`T*EG*&H5X{o)L0f zYjRW-axl4qFgw`E43aF?PcK_xWSh;I)MTY4nL;vcLH;0NivZjLAQuAHZ~I#XkM@?n?dl6W#2B472-ZC21a(5+Q zxTWoK&pmzZ6yx>Vx*vS~j^b;k%X^?&^CrfOc`T<<^MG!K_R+11*a?%uBkNvX zp8Fo4hdf_Y-ZZmXE@$S>P_n@o7?uOj-11;QxCuyHybZD*vNXun3$H7+2r?W6)UP(J zZ+33fvU2JrjO%vP3JJywUS7_+Kicq*ge~f_?XmQ1TXyGx{NHbD?}+`kya>YoU4C~O z`FEF~gV7h?sL7K%pM>ebgN#1pn2h*&<~aQ8U}PHkc{w_1jKkH?8m%3mTxk_0hzs`E zpQHj(1KudJ`1K(3hN67M3yj`$gDOVS6(7Px9ss!ozUmS-^F6fZ-$W6@?Ut*ONx3T% znYA*CBM9^68l4!kM>HOc(_JK?rxKF{gvmv9oIh;;GrT$W`uNxpvhCIZFv=+X0O*Kv zBpWEI#jxBV1XP17UR7U+i$2CheDT==aP@8Le7sMc&G!y^h6OFB+?MRDXgD>NrQ3ov z&(4W{VCD-OT6gW#zKsGrUJK6hc;imu%Bl}K9hsn>mipB4iFd~0IRj8J2u3uu#$<`< zb+A=MfAL38@B6#;(NWZH8q47tJof9!F`!{Bv+yf?RkTTfEjHA&oV@7B2%IZ$WDr>b zuWf_^i==Zdu%|#n+MlVS_D$eC8WBPWO*|9MVPX6BdV4kN9BGLdi>BVfeocj|V+ivt zG58;1aLm_CrK<5Z=V(De;K5fF^_mY%%ox!4CORgT3|5}ZJn1jtfTnDj$mm|_Nb|)4fnWpLeZZgF=dZpA zf()1U7gxnIvSyi!erD+dqblaHQDDVxKl(Cx&ElmMsh@HaLP**~VsJo^J+XPdq}3vT z#ZB1Jv<_SyQj-VL-#Zj(KeyD>6mvaNWM6mN$Yt5sXr?T#dj6sD;B@S zU;FHJ3w}sY%e0Yze?kd~z5rB7VV5~H8ae2Y7Z@Vk9x1C;E=-{>%CAG5**eLEDfW@v z&TcXCepAxS$RzO+vMKSe`tfK2!;_dHX}3gzB^P|SyyXM2^Vzg0Uy|DNLNq;tnl?T< zSSR-dH(=*9<=q;}Y?`4$i5WPM>`LhwJzx5V*bo#2*X(cSt2ab{P$<_$OpHrld<@TP zfaBgBP->_yHyyTV-g~v)_y?f@#1q_VhS=JpXZ&i@_TQ~Q2qPFm2YKJphctxOx*!vmINxLLaCB2W+fB7dcJ{ zrTu1u?6!Dumu4E3CaBPI|GGnW+U``0JH5O`aHyli1FI+;5HP69ZMXd0&%JlM( zn*yT--$DS;rgUTH%9>V8y35~!tdQ6-0kz&5MiDYn_&S(*VQSLMz`IZXvJQU}vuLwH z7fzUYwkQ8_u!%GsnV*hekkgZ=-_S?}{y1Z7n+|AhCbEI@S#7y{Xkgfg4S94R$5-FC z@%r;{jjGx*cS=vh31F@-$g;@Ics#V2?2?lq66T){HhZQL(RaK;>lv@uom~dVRi91qZz0!!I~=!wgvj`NTDzGVPsrhpq+y^-R$i zaf5^Zo7RNdQ&oh$aqCjse9-?{c88mho$5ML(px;JHtld{@be5?!bhl1hnz2U4|k+6 ztxwko!@z8lp@gm&Vc#RO$98c6J)!RdUzX)NMTA_3d|XtLkR)jh1SNnaS01{5piXAEamu%h(f_K9u|=-l6Gu zMC$#35Jdbpx=7$S>-Ta9Y_8Sta<%xdEqnE+&d8U_gcZ<7!@Z|Q+w`hwoa+n+h&V3( zxu%H=dvm7sOy%%1RwJA)XibCr;T$F8@>&891sWgpjd_*(`5*OE)uQ4T%iL2rVL7F9 z<_>=WoM5nzPiy~B)?h1lFVUdoPsa1aR$=oKenpF5+nk21vEj=iD@k!9-5W;jH~-3k zSEpaBF5OwxGx%2oF)|(;8$Xo#mW5)_fD`L5ivGQszC$9tc)qqu85`Na6?W+l6X{3y zP=vF%pS#m1RMi0iG;}zBoUM&n$=mE>L5r!bVO|5aEXA6#{Q| zILwD1Ev@pt9l)xs(WwbdtydNI9u$wxMM)cpGPGzuTqs`{2EW_F8W|kRLbmfQbGYzs zqMvd7`&u?4L*QlwAmae2b3{}JABIL0wl5ZcxRbMT8d9Cr2OkjK1jrV8_7g?+;$lUz z0Qt!`mvYc(+@~ha*QU@g^LCw2;#<$tn7}JJXKd5`It!mGxfa_4Kwa@ijkgHasz+5f z1M0&d>34H<*igCrL)=lF4#2b@pVld~X1cx?wDAmec5DA`DB^dVOAZc08J(Cja4tt6 z?E&BbKI}3ZzZ{4BA>!n83e!szj$yI3weG_*$^_t(dLpcUd@N?X`y2WYd=ViIKOxe5 zwBw|0!n4+Md{iDl^ns2jBJPaHp`8joDzUd^2`BZ6|1=oz(~CB{0YG>3CgJaj=N{J8 z%1+YMIb_fTV`qF6IJ16mMOp!fZoY68-!hMRriv~4?<V%UQtAKx5M_(M{)ZF?-E3MXS9s>crQ~K8>4oqzHj6a? z59~+e5!Eizpf!AOj?jx~r>9ZcqMGbpW1QAwU6B`y&F27!CL;bj^$be`^MgAWjzf0i zL|JI_GMsS7=Tk*A#Ll4|TvJWX3vvDUr?ty0e7smwzmQTaO3=Jci9mU6A{%hs(kdb~ zY{d9CeG?ai$8vZRUlgFSf0Yjppfz_5dChZ_fJX_%c?7ZV)B{_thgTb=i;ZMn{fo4~gx4;t>bTtaGk72Etq21K1; z9~rn)Q#WjVTHOh;IC9hc?5FRhVPM>yL*HnkSUR(Up&7x4g;QYHa7Y8gD-%mNc~EsH zKxA#d3nUcXgTrj|;WQlO?U=P%t@Z8ipRtCRIb0PnGCZai4ru#d6&r~S2@(fcn%zTG z@$LR+BCgidUB!jCQo!t!;32TcJ9kqN+6P-SY91gO--c|W{b&8@%ru}r4}cWl3)^3| zxV}6#nutO#9Aww;ejE1vy53EWN+o&;Ic>vTO9Wd_*tJdDZ5vre5uTWE{vQR=k6#qTd{l#0+6ET|4y_zn6z&QbYQl9rlb?Pck255H!j{Nm@$u$1a$`}2I6Ky@1k7KJTxE3xMhAN*sQGVVQ9ulh6 z9;&|+x=#d6Fh8LD%BU{J+qk%S_YR2FG@wBENOAs{H}X-HkmJ&Ba#in>rjT`al$rr$ z*fq1b3=)5-jI(VK|Eu_zI1{1?fRZWTaQ5tWw$3?EuVef%kgHC>a)fbijH45Jjpp1c zT`A%s+(Q%n115G(KdDboM)t!ih=#M=j<+Ik%1K1SxVNw>8m)pE@55kuK?2i(JO82+ z?jGw7j+sx5U<DU$IJJ)@TTpIO*k5ndj)-}?(< z_uE3;M-3f*F(ey%{o#dAFR*=%7@R+*{z|CgtA8z5EkkXAVRb0f!2Zwlo0C@^j+1 zeHYM`5kRZZ8sHIPSEsz5f8s z?t5SrbgOL+l%PT9pnqV1r9hfa;tectU@TNX1-QW6PB(aHiQC8`1=3IxTRMi!`zz># zq*$>kOVJ1z?#H;~IFbMfl3=K{st~002%6x!HXs7v8gqv91B+BjrkVub@0TlFHM}K~ zIb3@EK&$6qtE+bpL>x*RbF60!d%rh)i$JZ{x-wbAL}8<@AH0=|qjS_sl3oHPnEOrn z>RDJvCJI|hf=;_Iyd;hsNddJaPynL3l6Z_+o*L1;jKKeeGkav}KxCAl5SRd-2Lgk+ zS$$l@Q~yJpu>?!pE4J8Y2#o;NnyCy_yFv%d1|Dp=qKFn|OgAR{8^ z1QVmM#)C4JB#B1@scJ$1cHq&!Knw7&Kml_|zzSeP5Z7Q4mOy_XbOpkDhV0}k z%zM0HT8zDhz{uEYQp#&!{f5fByy+w>yg(1WAYSE_tk8+ul7Ji?=5DdTFMfawiiB5S z793{|XCnOQCS2(<{GfX|+KVwH4gsqr*$*K3!>2dKy1J{qy~Md18TSAVw%X%p%w+iw zM`4^bJ{GH5qsCf8l~-BWO}1J;r;uzGym})hE+GF%mj##OG{|jPuef6ag}lo=P<514 zy6nucqsCml5>1?D2!0~$!obR7*=j4^JJuoyx!stG*+ z4mip$5z5u%M`Y>y&YTYlW_&u$Lu~6scB|85ghd{*hy2aV!C6%!ZF}^f47?`@Tp(?7 zcM)>QxAk126nGJ6ji2Z&KjTbiL!u4dKpHCmBS_+xs|?v`Vh75=2*`kssr5L^~+6e)PTcqurAh6@!iVBn|$5r+^QF(B5!fx`#JhZr?(yjY`Rj2Jj<*nr`Jh7>OZ z4Nf7mMGlymVD@aOVuXtxJ$dY0$pX~MA0vFc{Md1!0s{sJDnMw;KxxwoO%a@^fHlC0 z09?Cz{R%d$*s)}}ZvA>zK-sly+q(aK3m5KLuW93oJ#I6%Lig=j z=h{7QcLJA2>>D{@^q!IY_VgPqy1%Fq6(o!F6qK^kL3#vYL>OU=p~fHxj&TNqV?3xv zgAqdbU>IHKF@-?|X{cc!NhD~59xV_N#ST9dm7y0{AYq6hc`%Yk9{J^0-;DG*(ZnKL zpg;l$8&nX$26kD{m0Do^v4sB_Xh2YekOE|2q*q2}Af#JFJ_j2EJFt)hZB|@ig%w#` zp+z5jtdR#7e57H8Zd<&$h8F&<1fW57(x8wF4ZWZP41MZQk_{VWL{Uf>_1RELDg|f| zfK%Wh1r}DwG?Q*uBr$~^X(Um_8hjuDW|)AafkYKUl<`}ZvQb6VRjz4O-gdGYc~-5k zqK9j)W0_|bS5fK;Y_P(PrAV>H^7U6=ga{TGV$Cw^>|l*G=0|3mb@o|gkA*fGWOs;$ zt!Q%00froL0J0QTL4cqY0#*e;M;UMCMz3vISmBy$!3oCzanmJdU31S>5Z!fD31HO) z#St7`tlpgfUI5~G2W$Vs5R(_cufl5VRsGwOxSctC299`@3^g%f=& zfw&b&^if5qfK;Ic9aS{3L%zN%#ht_vL=da2vX)0{uN4o=JbJv|ig)wUPcK%nd|j_s z_R9XXZ1>)KzrFt-eKD38V~d@S{RRvZkK~w+!$3ce= z2rysy!yi_rf|dNa%XbPyKytKmyx=vAc*K)fS1QOA3`%fT%Cpt;&?A5i2tX|YxWNn- z;k8D{fDa_02uYmq1Nxv4KZ{rcf9BK@I@w8wrR&2K_^^{e1fmOFFi;rO@Sr3z2#H~E z!-Zt_pOy4sbERVm>b#(bs%eo6FbGKvv^E48*oZxhV2_S+#Dx}+U;)F!U|Za1L9ZMD z5ML039qq`32i7eEaqP+g`nVQ7a%BftkQ;B3poA)rK@WZS!WG{1CfVtM4f_Lw7198^ z*@-S{oYemiL8jPAJDrXtE3q7;X4Xk59wCxTNJAC!u!cUYatm#06CeVS20)0a3b~8} z7TPdC0v^zTfDFJNi+N0BdIgTj%-~m==}b9>g_&ZZW;LHl7Hf`0o7=?ZTDX}_Z?XlP z#wsUX6tNe)_$7OJ(Vjck>6gTyPoDC8jQQ-zzVaY0O~H~ zAe5M_YA6C@LlpVCqMbLs3psrzmQ!PIcN`Pj`q1ANFAftPxoY ziAeuy05&tOj0;ZaS_nWeLbZUCEMXm?#6X~gB@AM%W>~A-4ggmKgjJb*3}kV*f)xxH zAr67N-A?eJ2P7n62}%$XEw`YDDpb-6gS|o(WcE`IiIS5|oopv78@0*?s0xs@LLOxH zsUsMo3WcTRExYukD-;3?SNOv(7phR_hzCea0TT6Yi`(4lcDHxIi*J9c7i5j^oy2t~ zA^zf+#hCA&>tk+n?U`J~%mIGWodW=a`I~rM<}}>xZvP4k+vi}%fDw)DbJ_ri>rUmN z5KX9fpL5aj$ajNU5r75E8oi9^cPvKAZ+`{A0I^131~LL$9$;Xyk$iCm?V%}t_~8G; zm83|g1v%a6N;%4?WoU|hurTRDDM}1$u8KRA0vA|>pB3l;A|xS6f$O8P8TcSqj@R-d^5Hp|I%$fCqV!8ZSJsd%>NI=38zGR3s04{J=0E7~-K!-PA z;eNjpB*Y@{B#geLuDoruqszkRN9(Gb$GV=SFO6wT4`#W`rIx3aORdA)K@j@v%pC&f z8?4wb3tRBaxL!ToSDS{rU{G&(sRCbw29DKbphJ<@o1OX6x1$!_3J8egUtj-yl)uUb zDYG+%fDNEj4>__A7hdqij$Gu$G`de7_(0)<=(HtQ?5UV3*C^8cl!xLLvE?+BBSRn| z4=NafMLYsS7{_=4OCjC{i1VZ!fAE6h^vdlLGzc>USq)$C^#SC1EPRWmAKg-Qt8)dKWPKOGrP-FOfBouV z_xdsmUKX*R9qiRZC#A7x&f>~loqIX%aSik7|J4kS{DvvB4a=MT#x!(b};A4^mPq-Zhgp=4?9-tJPB>49PfvJ{Ne*& z&1x30C{+Lkk2EG)um(+_1z3Ouu2(xmCpdpl2vg7mzywgh(|N$L6-@zO7^NH=SW&m) zY?4M6%Fz|Jg=Aq7X%Yv5Wg&uig>@zv7KdOxF{lW^MRzoK2!#I-cR5&tzlDR}gLk0j zEQH~MoEB=2QF%_*Pt^rKu;yyj6+ifLYuIrW0#tddMsjUpg-k+d?Zr@1IC-6CF#>P_ z3S%4^1p#*xacReWMe-{sAY&k~0|&qYeDDG$Qz%~)5-T7^Da0O5Fgg=PN;DU4Y?f2U z7l_1%e5I6s6qYpq!3PL-5ek+9BLM>`qcUa02r|G06CeT=P&XljU*W`dVDV$%w{UOZ za1fV+Mqj>WWJ zRM%|m*p6t}joDX@?l_O|_<=GAgMvV5$HI@k#ZJD}gF7gYGYC(DAU=n&X+jtn-oucb zMo;TgTAv|Z{8W+a^BIL_E&;?|4HR2d$UprPNseP{4h0>+Mlcj5Y!|g1RAB)L1s){W zjsHcHw9+ugHeay9HVZ%kH=rjn)&wtr13EAggJJ^}kpeTNBQnATkHRQpmS(|djK=tj z!`OfPXO+a*Zl^;7DbP6y@d845RV@}0K42eBzyoUr-dGgowl^O3BD(8e*AO zNf1-uaXYb?THpkVDOh|qIDeoAPtZHo*c4Z>V*!AH48t887yx(Wbn=*jVzGkH(Sl%c zf+cvHxak!#nRYJN75!+O=%i_iKnMVtPIxhp%xQzqd4moa7<0Ffg&`RFlus1-ciq{9 zi#I>mg-}6Yc_L|^Gl6Pb=#lRwc>>fNN|us3mK>7DFvYWqXb}K7*)StDQf3tbL*OTT z;sY;GG9sZ7F^~dB=`~m50#yl&SQ&Fvd5jJ^e8|Xu$CqX>K$bP&0#y|e6>$+bKzod! z0!{D(6R<`RP&YFf0{k^XEjoVW#}#ORmv{fURCoXRPXhI)gD z>YT#0PB$obc83`Fxe6q-U&s0Bv=nyn|AVd_}9^aZ|XZcs|4+)9~O znVA)K1Xw^+2dD)}z_D}onY9B5SWpFD-~=*oKO)c?6opW@wiS03ryuy6U*V@=r>A>5 zvtd!Qz6q!x^c6B_J?B&`{5YupD74mNv@ocHLTjDyl#uK6w9WE^dq;%cQmGXQYb9wv zo>~EPP)Qm&Yo}qVfPkvy#hz2hsvU_x%)xZUlVci4Y!F0jZ`)CKV^$f^9X-$jKmY_0 zKmsCw0v#HbIG`sZ@d7i&2%!IySrLk@5K5ujYM~c4kWYH(GMAYy=*un1NWf{v8yQ`#&35!)AXGmv_tEv?i*rpj6n{i5;5%g?1>lHhTg1m_< zd@5<;JDfl3c9o{IGYGUqtF-a^cFDP%jq0=rdB5V5zsk~(-6MqQQ?=1msiNT-sFtP) zZVEHyCRFp8(44ypIWx=asm*b6!5ARzZ$b;fqL}_zFdL6c}l+JTgc%XoPX*SKwGHB z0>6^1kC5zkN=vln1YFIzsP%h;?W9h9Aza;)7wSW`rVNqW$xm{?saqQaMIa_@@SWdj z8j5!sn|i8w+=aR3o(Pa$V)9TF^+0V4K_9$9a$C2-sVXr1k}4;-63!*$)AgC$c=2XiLA&b9mu+w(mksyQPRF|H>iR-(>9$wK^u^V>dDI~ z%KfOQ1F4XKF;A(SPlUl47O7tQLwK|7giHu)iiaCrd%#?%s%U!xmY0hb{5!0A6`prd zt#TCz@RAM$9;`~Y*eC$P$(JL<0x7@|I8dxC-~t!%d}ZkZl=Zkd?0Y-xxWVVw{HM+# ziq6PtGUfjo1LgY8@thnQ6&-SwoBUbNPCS=@@CLmWS5+L)BejNH@wcDNBoL5*%jX1! z$-7CAfLgEul}XX9?b;a@H2}f~2I$7i2gVDH1g!^b9fcgf=4?^IEB)0K&m-K*Q_{d~ zkI0?e!;Q$wZH~;HzRum;&^^A=9o^LJn^7XD+s)lY8_6>m)QtMcKONpZ4a(>=gva%$ z!-bvNSy)$~1m5|b{RA3LJuaG8)$18~SE1EbxCI70QPIILDA^qHsU3J5(&b?l#@rku z1hZ&Z&n(cakq86T*90zLhY%sdG~BpaNxynG$ervs+Ds|Qp7 zvUR4UAN?B+bl}U;*2`wyH~ZVzEf&4GUtO-!#|`FQE>i6{$Xp@jUE^%7Hp|u(n!VXl(%Jg8rUCzO z17IxVP5`E1d<2jsrD_b$XAHSl*(i`Abi9jzGSKe4Tf03_Kd2rnK(e32{ef%Vmb+=^ z)&3U6?SXTSvueH;bROpeALeVb?*~s7eLm>OY15T9@f1I(^m{CRP~M43-sfm2W+c`k*Ps=o69u<9zIT3&sF^T0#Qrf$V2U_#)! zmfDyBB+vpf&;%yxhwT=X#`oG2DtzDE;Ul&ZC3*uG0EZJ0lrEr$2!Lqud;?9u0zaVj zPyzzZ(Ztby;~<4MTh5nmUxJe@By)l96%_>CKIOSx21mdJ&MV{rlH?N2%?-oH|=9`b^Wa0UrukfKi7Nbx4{EqNo zf%>WM@ST6>5?|Bi1o4*KzDEnxZ^P^;+5LY?G87^F7oD1Wujg|*d% z-xc7>pjrV=7W4iyKU-+kXZwZhmHqp@{jRa?v|1cMpho}f9PNt!Ex-as6Jirx_!OOg zQR)IP)B+1o0wnORY$O60&;mU`0!sl90s=4~QIN!j1px*sWY|z(h7%tYX4t?`pumP1 z9R`3Xkz+-L7d4Iy$uZ(YkO4#nu)v_@2?i&67(s$0$q^$>f>gNS#EJjSCTqNSkuuZ^ z9;8W;9#z`Z>C>i6pB7a*WylW_ebQUOpLIdhbNAz$8n`8ISutgWy;dj$q;5g=d?paKH>Cn~I`Qzj0e zm=Ji+f(!JE39b_mOi;nN5^NBr1W8z6!38T&@B|VtxM7GXq)7jYDyZ;~Dnt^W8nG!p zu4(}S5ef=mgA*c%KmZyAAi;tS1ONen8bjFZF_IoS=_9}TYDfgTg!G7_B1b|pNs}Z> z(83ewgAlJLoWSBMCwdS8f+B#B!KWsiaA7E=JcR1R65CwrDL!VnA*&tOy5NQ_ooE6G zv5MHCha--Vp@lvzJdi>QLvqlt$0QrWSx~Z*FShuC~^IvyHdnk~NOFWs`NT zS!j*(L%KWmn8Vue#4BQ_AiCoZkn`9Omksjd7?)fyt^oh!z3k$!V3XW5*ecgN^2|%? zT(ny!mo+p(V!L%#TU(or*VTmu_7LS_mpwV?o|XUh+Bw48<39$r>u!rJs0%OK;frTO z4s*!^6N2~Lov*(8@}u`&E3&A5i!$i2;D9RSg9|^n+J=zA1R0J1VFwuifr0rXmiW-R zHrRk51X_?`g(--l3Qhjo)Yz#h=s^WekU_{Wz*(Mzy^vSFt~^S13QxlMk0_G z1To}-LCQ;HEQmo)1z>|5Oj3=2MkDlLh;0-ikbx4kgCLl|X-?pS6tcFls#z^gEI>gI zFhGJG)Tsg&kQjp~bTESztY8S+U`#^DxDfvBag1u*;t=yFz^ST=RwNu2rwF7ia?w;$ zv`pnb7aPh&4s@JzO&Ui>D>JrnbF7n1>FEFXn$iUeIK8r!X#4;yLIjc!#o^6uXvZvN zC2Np`U{)h>XRSLZVP7KXP8Na(2IC=5c)81+CdC8TOVG7Gs zfgV;sz#pLC31#pR5D_4P4Md;>Ak1#&B*vIf zB|%H#g?dS_3xL2NGQ7bLnlOVEBvb`3Z~--^K!as+41g+d0SvhIgBwi11R@9meHb8s z5<~z5BFxAEKqUZ)jYJ@DY1v9w8W;b1La}fSIhgo#m|hM%WccH@Lygv2LTRMG7*I zguD%JV0Xx6k!xG2+yf-5wMkAAuam_~Wuaiwyiqcs2&lAzdA2~FE#PZ;>~bC{<)xqX zbdN13xWLKK7MG6>41Py!pa>#Rfr3b^3_WN;X^mFUAN)WDt1WHOTw7Wo_)r8Eun`ao zB7pnAr2;c5NeLE&GgJi^RrC~Yaf2JvxYY=P{lsit1YiLm5@c;6_~r*nfC23K@B9-hPEyVg~&a#$C;*wR?RTJJpM8P6xxV`Ci0OL~z-nxO=QQu$0)K=WbO zT3GtC3?N_u7hs@$3L;$+U^&YM;W7edlq2QJkG44ibB#jUK;?pTMrc;NvOB&##7cpbL${Gy}TMuJ*I8 zWu0bP^O@DR#BYP`q;z{cCQJ|Y-EFZ!lQ$58>?;YX~XJtlB?C~Os6Z$?PjdG zF>6_EQcD!SK-Mc;6DRKo`(h|VF z3wn>Gmt=o=%OakSos4Q{2~5zy4XF2m7mQI#c3NM<2{bdn3zZ#c_u z${EAoz?fXL?*S?71;ps>g;o{9EyYS5LwBb03C5pk8fJ2-1*-%gVZ|@DNXs#K*^3 z8YvM{N(D^N5%eShz<20KFS^Q)%5tTA&j<#==bfcqQ!t}w=V>9Xqes&ZfKq)R*a!LB+pUf8SZ zm%E0EB`Xe(+uYEqU31jU_jprl-f{?dzjnfJOag;*DVK9W7jt2QSBfRZ3M?U;7b44! z6X=gP_yhkQ2>>R0kG1e9$Qa=!?GL!#V0xK84Ua zsMEbJvbsn?!K|yk75p#hBfj1nIox}`;3`2fI>FaV!O7UcldC}!yg^1OKe7wIutPiY zTRW=KzOM>9(eOSioHjow7F+qkxcim4la0EIKl%GG`a`5=A&zxJvAY@$ImiO;*a<+m z0x;O58KXB%LY^!DgX>_IPzthAf~<08VMdchtnFdbREa zhyyyH18~WtY{@GH|9Mh2s>Yiql*o3NZ@#?-kmw2Kwg z>9)&>oNaSE)k&m9V#7v4q(r*E=U@Zi>BiyNBzeOtJ*>BV*^W>WC53Ci2#kYx1fKuI z8oULBM27h&-!h_pLZ1sDsljPMQ=G3Oyv0}qMpjI)AB4IfR6$_;I8J0fY(B(H!pkH~{W3yZOhsHQ&%P|h#)LswOw96J z%)+G1z$DN4G*27k#k^F{#>vcO6ix9XO)gBM*3?V^ox;*6(6T#FojgXPEKq;d~Aki^IF(Bv4vQ<-89%hy%3zw;rAg&A`Jx}b< zEZxg3tmW0@Xby$?7*oHkxRm0efEl7@ySd2W_j}=La-Pn;OS)Ala z)D+5QTv?X=Nnwq!mVHp1+)ZGy(`h9)oUM&JKo&v5Q`w0Y+Ch%kX)$^ek4fqdnD8A- zO1uM1S9Cod@kl&C#Eyg`xF}09$ZL?6D5ACmDdxJ6f%quhD}nz2NC=lIJ=Aj$k>D*^ z?b0h9((x?PSas6rYgNZgD#*mux7AgfI#s<*RlZ$SxZPDOMO9I~OaL9$1jQ->Ez`vf z)~7lrB8zOh>$q}9AlI>8-W<8?v2g-^>I+);$jyKD$l zv{hJ@UKX5HFICdHWzzYK++)=~%2iX#O;%-W-0~d_1|?SXgdL%Ao~=CE@E8v|+?M2YtRee={!k0Ha0}iAn9Ks+_lisS;?C03J%S}6QVi1WjZ*Br zVH`eE_q5L?4Zax8)fxUP#h&Y@XOAuCZJtwp=X4fXcNXVt3rdwGWuJu5P`>9g-DIGw=Y95^Cq_yN1zlAZ-BXsvXSJ~3P`?iQ z-|E0Wc$*Fw%hp}qKTa}Wd_z(CFjN*zL^y5>h+vp2!C*VSV-8k{Q#&c@)#1v7VM(53 zzx^o`&IlfU>FE_lmcCCyw&@&3w%rW3z3It(-W_&nn}+E|mgz^npR>6C2-Cy!017R517!v8(ok?*(^%Une?HxM3cFF zvY@xv46~h^mpXy99as@s!JbC!mR{b>*6c%8Z=J^M_GVa2hyANGDZVQo^%!BTjNWB9=vjq8FYlb-!BA)}pLF%4K0p6DQfOb16*1J65DT#{+zsL=G19&8-9FuRqn7Xhgw?IX z<7Cl9rSo(VxKO&l>{ttxSmP9@lKZfL=SjVKv2ME9M`pIbby7O=7FZiE?4wF=7fx*U zUUK?w;Xtm{B;RRyclUZvULlWn?N#v2{A?ixaMhNow*z?f4dSAXa?v*UqE71Z{Z(P* zT-fxs&;WBYf>Uv$;&UtZEdJly1X1Y_p6HaN{~M2VMV^04w$X85jm_|gP>EMz;^v=vuhyU^w8+Xgq)sSUQLdtp&4wrVR5 zEwL(wE2GtxH~)^VJl6wE7eIg|>3nWs-u4L8mj#FbL49klt;C#{8-o#Ezv#JdLeXI{^r(WvECHRIH@UusIr51Ywr}ElQ@TR`? zthzQnI^Q!=)>wI+Tlqo`gPolPu`9Ms{w<{7zJudo_CBEl@>t;5U0~StH+ut1LM^B-VaG-#L4j=zQj3{v;MTZRoTnw;KVup$XgB;9AkYd7t8!>wHsAwh2mMagreCZM< zOPVni*}N$;W=@Cr%(Z9f1LB0VPheK4H3}Yyk``SU4T|gaFgtb?6MLW6!RAJ9p^MsY~yEy*v5xJ5CpiT`QC{<1o zO6Zh>L>*Prh8a#(lurqk<%b|9mPHndCz6GgT45c+mW*xP;fGvzSOEbYd;tcSV1u#2 z<6lb9)tHf_K_*!dbhMGhW?5|EBuOF_76CtNU)n-&F7LI4Zc$+2*zGRkM1p^n_?pruNxsmm`5SMo%kQiSrT6IFT= zb1?I)D5sXrd~!$!HR@2#rXGYUgG@auY_AjknxNCr+Nx88RV`g%(^R|UE3?41G;D-k zOO4a9#ZK+vPiHx;U|49sl-5rQY9*{zVfmre-DiE(Rg5$Oey+K34GvehLh=R1l8gT} zR;9dj00M^OVB||VBl>gE2hlu{%|w%WyQsi3pQ!LA=Z>_>4;?L#+E8mCNhPrprhW6dgjt5#R;uoW2j zp+;ZD?(!;bEL&c<~joDm*xV- zImy`OIwiPGZcvk)hO~}M6Qfw_QnoXK;7}tX5Y?O-Ql}r*&UVvtNbw|cyx#wTBMU6;#$}#`Jw? zC;^no9{ETi`AI7+db8G7vNe_$@eM{UTHuTt$UwKuXby&JAh-ng7s*k{NTWG{XTb0y zFdRmNmfP0{SjfVE%_}mTvkYbc0SF`YO8}`^j+QDAv4{mA0~LVX4qJyyj0r?Q&;d|( zgxQ~CQU^b-AtrW=iOgpzQ$GQECN;4WO=ecdnbkbzHN~^dZ~ms6^PvuisKTrdoo{;? z`lE%ImCkhD@k8jm2|UXQHva7dC~*Xlh%O{RYHh`D*n-g^*8)jLO7Q<%52U2vd=v*j zXwXPZ5@jewIXSx6r2-_Zzy@u(xq$_M4rO@K7Ro>e)10X`V_K7JR@cjl{W4<&NlgG$ z7?I%_q=^xE;ufjbJ1>GUsLLA}P6wh>i12iY2>Gc{n|i0A%Fa_{Y*|r*$yA6a4STE7 z-uc>x#$a(ReDuUs*0!3qu4*-nVVzp{_}3wJ>T^U`6ARn!CrGTc@1DT2BTn{56R~8a zuXyXqi4J;Dgf`N!l$49Pl<)@xh(H7+Jb@LI;7L%fOAc%hOko5A26w?LbE#Aklb&RS zEfDE584Q961<)8-POM@Ri>XOsTPB-6~M{KKnX9_w{dS z^P{W%;+j=_BCAzb@yfLTXcZIrfv|01q>L6w2nV*sTj8pt9Jb)NAYg`F5*7?$<}f)q zkkXWy0~i9XVA;=}HVf`*1LFjc0olZ+U#BS;YJQnRUrJ1-tJ~N>;N%h5j;vC;6Qfk0 ztK8uxcZ$>%YIA#>Md?MAi%|vYkiS@Dh#d7HLCEe>vUk?=R+*0L3vYU3akPzxtH@7NT$<%IPFNOPykA$RXOm4J= zs$5bWKKxOAI#Mc8=&ypM<^rs-B}&1BCflg#wz738sc8$eHBkm4z#ca7c#S-q z-8$IJ6)yCS3|)}_`gaW&Km!_pfezS(ag1q520;HHD&JZ)xI`^EsD@@wb^>djWwxjM z&gsrB6WyG$5;|DnHlg;~S3}BP=eH9S$N>iQTIVL{0oQ_1ND6L(gLAjo&n0$AX0|YZ zpo0iR)0)@FrU;d_=;SO6!VDjL!=qhg1vZen3jpjf3hQM-dMGj0xh`a?-k6()8)b(i zHOW3rxyY%@@tk@bij$Wvt_?td0!SeAq9=d`KmdXWWME@?BKgdSK!hDzx8oC`^0K$9 zy;qS}eC!i1Sl5{Cua)=8-6eDHxeT{$yU(prNfsc#OBKB-{Xj*bbN>Rn5HDMBaZKzIMTUvM<>DvgE_jb@ql2zW2UEZwuSgl2%&O`(ONPq(3<#KD0HEN|xLyjb;0C~;L2N(^E}-OHmqgGW@Y!DcR1NWkjhVF%JVi?n{vI6# zpO|4;?WLFU@sm;P6Pv-rvH)HA%-7tEn>qy;Sy*AU0Tw=CpII2x_mztnf*<*T3kCUw zZ%hny zI7DUW9Iy=)k3m`H#U65n+ypvR1q%Pf;~hlg*&5{qzyx@J0*Igj6o3YB00$BP50oGR z*v1aL9tn_uK#%|tkbnRLf$Qx613uN2`NsS0;-Pwrjgno-Mr#o3w#T~An_99dgmU19ZkVcob$ zR@@Z~?L z6hZx=#{D&1>6}guOlyDBS_AWwCBjrdEfT>lJ|_`0CoEE>bUNj81|@g8pvO34 ztjSI}0i8T)W78!a9~u9h8f9a9rssR|V10IDJCbF4>ZcC+Q_xXg7yget?&VqlCfw{h`5#jxC)I#m&~? z^`gaaWNb-Qm^`JC%h}euNdurnvkZqPR0K4V4F!x9swO)&BTA=Wq|%of%(CKHPWIk(D$*0yxoBt zvVnw-VI>jTUg-Y?WO5dfV354vVP(`ylt>O|M2QuU*vy?6YhYx;;U5Di+-j_21=#6IOuJNYk8I7+VicNap2aX^SXh4w~z$r#S1yHF8)}nX9 zpq18QwIX8#Ea~fA=?-M;w_YVyqNMeFsW-Z5IQrn0aZM2F9!-!a%q=7 zgqo3Ay5iotnweM)-O#D&(7_76h8Z}PZI&@%?af#Hz=T~T62#_}v@p$k4eC1z?DY|> z!2;|#u4CRftck1}yCo{#EbhAf8Qv(E1L=ju77oTDrX<0ITpZe500R1XDrGQ97QEl& zj7$7MB$CvUz6neodQQR!qHRyon^AY=T^dL zv_bz!e%2>ge$`hcpL<=86FQ5Z_AR!(Be~Hf^4Td^P=(vnR}@0a+wi45jvL;*Sz74X z!zSwD{+R+L(BxJULxGnA$6T!X3OLLnT!&}O0kmQSAmex3vg2XOun9mkDj~hrr&qbLnV#8t_8z>l zt=O(FHM6lb!`Bm9AAZ^Coz{~d$I97^mz!mqT?TBS4y;}l?DPSyJPR&8_Zf;TYNGnH zVNooCJ@O-ei@cf39B}Gl1i>Fn8lqK@x?C0*_+iSLaO-x?L~6!o65Pr@+zYb_o3zQz z-pQO`1dZWpj@n=^`|K|RYcR{^F7NP;YJ@0$AOU=yaR#XYa6kn>01LTJ&E5Z8j-90M z3T@3C1OV)7o0`{~PIK|KEAOQ#H-nY0=<7F=t-W$h8!_K|@f99N-}|7i{<@`sR9oTJ z+2IbZ0HI1fX6&8SUlf1b_IGyaT)JWD?k;JhTcib~L%Px5?$X`e-QDTZ-Cc@^2!e{z z3i5D2f5Uxv&&iz3!MtYX;5*;zbG_e|j9zqWXnL&z=W(-G@+7`;kV`5ywkJKDnma-X zbKLrDD5?9^t8QF0d9$h>zUr8C=NBv)@v1SIs+r2FF7Zb$%|;&8F0Ka{suH%Y-|)Om zVtMlpD-VCOm5OLm^J+qb^%*=s@Io{woZKTFL3x`9_nyU8!^bnh7-dWG;kHjl_7AIV|90C7 zz6b}AJidA5Y@;1MM(4zcXjCgA+2Ux1jvwT!QUo$Ut&OAKR{6jX| zAO2%7A-&J@s3J&+ahurw=eYf=3C7ZFk}e^SqH&*mjKbu0;ZuR8YXMh^Ce6nmi@$j) zMCve^gl7`uA)DxLR>HRn?(C_skBkX=2ogsnnb6ujm5{u#3&Qzh{aNL{5o^dFfZlLlUQW><4S|3 zP4ehvr zt;ZC`P-1oE*mx?{$UF&j`3)a2GcA37m(zpjq`7UlGq*lVFyWwlTEEVy9-%3uC9j74 zNA9R7rh5}-7r;`Kx6OrH%G*=waH^*keVxD^oJjHg{MjE()nMpIdm;gdPzE*d8U8tBYshzVeeZM`?VN}Nlz-`ROT)FmF^#!xeMouuT*J+Q9 zDsMLj>=eSoTHRmd524Y!n#g;d5%(5(@p2bePN)+s{H>g6?|UEOIw8^}9C_;08~t*i z!4!mo$iLJH7@cr8tUB>_^)Y%aI{ezlKp5X|!(%)unj~{={6Ep~K%c;(t3cfK;M0|f zvW{ow5nG{*;=z+0&7#9^3gWQXVo8riiG6J}7H3HkldK7b?ykB`vQIM4x-HV9TcLBM zlw%o{H9f!Oqd{&Ne{Ifxl-!@Nb-^AG)xupSS&1eqszg z-f~y9-1j?0&bzMzey4rkP0V^ENdDt%WBJ>awutBxjpeEg(rQjs7-;-sfEX43cAy5ni4d7yOt}LDw!ePo_s#oV}5Ng+8Z|m*FsV^#I za#bd3lOh@;eNnDg*YfP1i?gtp+C`DVd~^!g;Y%CeHW+$1D}vH#n-zow<)1wt<0JV! zxvmpeKec5P(jd$U32U9|j?Al{UZlNfZDsk|i>I~e7WaK-i@1!q@x2M|8F?b;1bRQvfCcGaN8RA$D^#}9;2jF?F{nxx(e&&wq7kYf_m5T)RYJnm zYh4PWx?Ly}Ym~SmL{q+vMm&Jq)@A)+qhU>7Zq3AWWA2Ds!QhuSt{HM@`3L+@ ziKU3&fMJu`8W`6Cxd_I{|DaYD$F_}qTJ83`W`wlwpC8AgLzTBNk9|<;y0XifRmfP= z+_<`1&17bZvQrl^YP-Kh)LKfS}(BFRj-w{`=Gk;TJpC=5aT} zfjjJK;4$roe0ufj{le-bab( zJpTcKsQLR(*a0gvdr*Ce(Ivz4>%%D7@QK)|*N-{mO&s%i*mjOG7h4Nr5g_?){ZLQR zS69!H2hMtMl4Q1+4O>;Y%T^aSZpsd~@Q&5O=#7*h5qT^t7-B`mb1x^RiP$(}*;wDk zy^0!f`ck@D<`IMKReO1uCZ(Y`*`S`u8bO>_?7X~STB8-SV`nq3TxtBRuF^Tz`H2WC z!2d}#ZxS*8GZAZ5R%JqZUtxq=Xar=y0m%t)bCUN_{An}RXcN1D%@%FRruW<`<)f~M2RL(uNE+n2)v0e=2Hz}=n?vcAQ@W7E9@H+w8 z6qE1fGXAuQsO{hFL-+GTNvv@{K~QdQRPI<5EZWQwPR^p+Xr_SuD#MXn2OYswF3Qtl zrfw>ZG`>GNe9t}QY68;S2Sc)(F?0lw6m|O;!kaAwi2~uA+@Ej^P1?xk1tO*EJ`wm( zw$l>`My~{Kx1*tf81K*k91sY^_>bYa{Tq948((`nm~9ZuAbbErBL(8|&+vpSE{*Hn%r7HhX41?QU)-w9f6VuXXmX9UdO;tgjX374U{H z@h2y=`@6<>uyYYktOAnLR7iJTLfVeW>2Is*v5#=Rb>Hz1CN%DK7f^_r5SS5ez_Z zFmcL~B3I{T2U2`5d;M>R!)_-tE(ar@o<@|_v+I7JpIx!>ua!1Odm=0(Z~EV;$aCkK za9(vgPFlk*JcYj7F{GIBU%0XSwx@4T4RsJB-$STew3+uc)Lhm}ei-Yx>@d4*)j#o; z43HrCx;FRASNvDC>mmXY~bz+zG0+)5% zpOa-S>v=Bg`TmR7``#Gl9j)sVtLGc1eOb@@`1trgFYf=2|Gg)G_4pJ#(W*7W;2BXN%mx`Uy}i{mA3HA0}`@6FeZ zs;r{Iw}#VKpZP038odpvyIYF-@ZTMoL@@%Z@VPY-oo~|m9lu8Hs4O5$Bj*__M6OCJi(RFV0N-oM{ z%1-ry8fMWwUn{e%-IIdBBIAvH7Y7gA@MPmhUYoQraIUr2)O=OV2+l;-ZCEt_VB2S0 zn#;^hJ3}kUEz8%9P)zdb0Z@{saeLz~FZRAUh&ixP{E3TC&2t(GIlCF2IdUyp3pHFX zDkb5Q@cWDdd8)RIuv^@JG$tSQJIeL23%XcPDyr=keSzVY3;5G5r!KP`mfU&?Sp6v5`&ZpQOnB84@n?ns z1Tm5CVu2z=^LJIX96)$1<49^M%c957K;S#CvY+4##ohE*AvwtuU$MN|;b5VPtLk_q zHX~@?nOENYU`uv_7}vo~$gEE($q*XH2c; z8E#-vuT%`1iC%)~xa99;3?)Y6bn6N{7 zk%BHWF0_}!7y1qlJ{3AD`wcW5+dIR?Y#A_lJ=L0-7@GOBI=t`U3!V`!mf7i93iQ9^t?NZ8j%H|>-X*Ip?N%vcv<_Y3{OE;qA;db3=^5*q zBZhld{#^Z6>OaL@Ub-&~`0CRom}At6IT5NKUNqF`yr{+62&7MZXO#Z(%E@@=plpdV z0!ftZ0BIF}5)FB=2MU3D6&E$&rTorezwuaTGE~%a1yfC4bKr5B=@(yjc+R$dGj^9S z86r1kwp^3ffO=*zxE~fJ1yv@g8qXmKmh+-635-5sZj$}JYI=w6?wDk^Ir470y+XxZ zxjG7-9WKh~@tK|bYy0TgBm8GavmeNgpJt|K+OKW8SNA=2fC#_)wPk6;EAN)eExrol zj@d9in~GB?y#}0dd*rpsE$K>#8K@%99Of=NqHXfQyV3cK*xFql48E}XTn!=`7acia@x7b|O=-g^Y*Uy866*S-Zf0I!lCGFa! zc+D4A{+lCO1L-Z-bsvc{vPWs~E%Qe;S*D@SC4)6;iCLC#{253ZVX zwfs&IGOyx{Nypgztx~mpXY1J3eMryBdXLbWezzt81$}rQ+9eGORnx=A4GmJ-ln(`I zf+BiMh0@mYOWFF;9?QkNYT{{zfgk?j(raFvT2nMlSKmcUFypw+)}@Q((SOW3RN9qt zzi=R6%$Z}0yv$|&F4l$*e`7$vuh`y~{P+!jT-dqp1LYs{V%F4H+J3?E&Q_;|&fKNE zV3CRpnNu;PZBYAk)wLQM5n~5#5dkF$^6%*Dw}|6P**VT^l6@d{aJJEwK(I1V^H}Ar z$>@gvrL^mJG1JfDVCTXsPG;LK+P1^s?SiE@?q~ZS3wkw94X-}uR(=LGP)9Ve`3%|= zaC#V0?0z~DLqXn|ka>g`OM4YFm`*!J&eyGWohC-94V<|MM^`$u-wtl{{NfXp0{&(G zKw&>SO-ZxZ7kT`ZZSN9d0Bel}j*c4i{be>T#?3$fR#~2q9`q?p^WW(ZyPIO=y)0?V zDNJNcELfEN>a}FTDkjDsO&i{&77T66x%a9J{&A7`n)7gx_fL7xp1YAkZ{0|xR%2Mg zp0rSZ=eRS|pAXbU4!OG4csdMg&hz733={)bfBv>su-y*HiJGmlB`RzwYBhX z)RGQmtAgZf)j*Rf4(P@t!k((;Rtbm?rV9_*3f>5jRd0UY@ZIC__QX)`%t4qN4dr-l zm9%jiR`};JNXDViy;R_?l-+LsD!ArI?&HI8{GfBge{T_*3+>Ff@_+ygN%@-PWQd*r z1XJ3-@Ub4;bUDu>Grrgm{HifF`$olt(IGjNW;X?G?< zcnSs3huSfpVgv}ONc4Ut(e_q}W-~&t^TvqtibscSUHi$u^!71&E18bqBsTxcg2Zdl zLXMh)zx?NR^>#nNud4E0o(O_SEy9WIzo-s`+wZ{Sn=r=!1!ET0Gj>P36n}P(h{_vy zm>B;k1VKc}Ym6mnVq#+Uq!Ogm@N)u-;i_Gqz3A@qcljt#q3$ z$Z!?skCFWFg6Ly*^cZ_2vmIk%v=t$h*@Xlzdk#JEo&J+lt53p&Y>J%a3y{73mh$nF ztDbK>|6$@{q|;?~YRpA4@0LD)ji9ip{PURfAEU11aG=Kld@@et@9*gKlFsKjH#a3* zJSy4wk|eV|71|>~#t~GRkq&83e+|*yS|d;YN@ZMQC{h91Hw0Thm8*>nb;}tVRvZbK zGUYkbi6vrW)tp^=G6ieQoJ@(7yP@wS?3I^e3QYw3PD~2@le06Db;B&+RN2TA9wU=< z8o%tUu$aY;Y}_H&Cp}NSU8D@)wodG#!;$mOIrzYl;Y2i|2wU<8d+u-L-0ZO2Y)JkP zwk4Xn@mgEZwpS3Rz3~@tYVOv{0?DL-le}}~{4wX;Th{zHzv3{akY9yN>mF6e-6N5v49 z64J6#?rnW{XE<7O_e7bqjj<6b2!o$kOhYuDZEg`rjhP z>?}VA5@A@!OQe8q%XP68D5SAduOo{csd-(@Y&~$Q6mA0DH5?yA3@9G;6DPWYp810R zw$pr^%6PqPz9gwiI1!4#;l(oxvB<72F{t)ssqHoZNQ-lgaum|2^ggl{<~md@=2(^8 zXtMrsDXK+SL_;h8FqQvNABZKIP#4O&tHwFk0>_kK39_-YW!SppeY<=8{2OamY+a9( z#(SK4i|mH&KOPjTwmi(HRya9tr_(SGJmC{oG?^01)dJsx8v?uQ1X>$@OEsCY3ex&m zqshPH`K8tCK=i`7X7P{K{L>uuR!y!@^`EhZGSYhP;b#0evwUGIoTxNHqEc#Q@fm%v z2Yd6$$!n+BX6Nbh_?J!ipPH4NTG{hnc-k6+7b^^%i4ubge^s_TJWc={aOk{qV<@)b zO05SIO$v)Ef~&7}+qAvom%jU!zsYnppjXonOtPR19JEri7}Se|_#IbA%hmZPm?xN^ zm#Ec2Id+m>yS69$=QF{cU^XpyOD)+kHTJO<(-o?#la12RoaeO(j&Yr~u1pxs04W^I zlmV^XPFYg1oaiC1GHTXPU`hFA0(fdzMgVQGd1O_J|Gj7k&V!-_<;V4Pr=3DerIVrh zy@lLF)pgLinO?G`UR=TeFvYy^mUujb;(xECzFigajZ$)&RLYgijALS=a2illhmLG;A__YX^!Ko)z#_ z8CV0Euyf0~_G& zH`cCmrmhwLRFn3lmpeMOON?V&k9dp;b5w!ny|V)NiCV=FKgziXrbL0X+yMS&FdN<& zj#qbLKqo%bk;27#u&cU%9Ywes&pnhP^oTQ5Gd@Bi-ZwYXm%=mkKBSj6MSs?Oib#I| z8!?q!KUEtt)xG3ASiotZ&fVlhwxgO-n!9EcJBu!1t1QYerf(q}U z1NSp1JR+7B>g_ff$dm4P#<{kpA{lu07_0Hwoa&3~AY`&5+f~O(-2cD0arKaPa>R7) z?6le$SPC@L;s(&2gP)jfJjH;tCy2yaIdpeIt*>3jmB{Z8*L}ZtJ|=(~_lHbX?IYmd z0WX;{GT%HFQi~z-{L&Bkn9v&{d3bo z8iyAYzfqwjy9R4Ga^H`|@0RGTHO4_+2sfk?HL!`x60sytOAV}inT3d-gJhvIlme?Q z{YzY+h5p!H#>E*D#?i)4#c-!WUO*}}M1w`R?Z~OzJ8w=LqKH4|6;sAluGLq0wpnb^ zm(V~obk;}3I7_O(6~D82?YiXf9jvqmaiLq~KVNUz1lpD2)yVr2t(&I94JhFJakA`C(k zUIdpm9Q^x!z#;&7a^BFww^GRaIYE#no?&v-6Vnc?AOMynKoKUqIN5HfOxgUAp8tyRzdmZ%1s4i@o(QGUgEVPP z_|8Id7-pmrf7R8$XA%I|U?-HHjv{NxsqD{4S~esEJ6>oKsi{fbmYZNZ=q1mm)`Xlq zxyIT*{eA!OgcE!}z<&?u-Lk*CEge{oeY`xgx&zK>rt7}g6K*g5cPCoB7nvg(MnEBfNI6E74*z z?v5+>?kxM$rg;@HI78D6HLPA-3*)nGnOPe1}I0dOQFxIu#g*>!>=IMTB%7>psF0#jIV z$wT8JBLX9Mk~3~Hza}AGA{UA*Eu(eMLac=$eT>XsWAkFc z#GZPIeFXmDjgb_UA^R9~iCW%O>eaUk^ zqbEm)M>?!L=f1kAOh*>4r24huWph?0S%WF>FMREfZ*%-IUoG5c7+JStVWdPAS)hq_ zMLL9{RtxAmVd(h&5^$C+mE6A ztZ6kb@$ukx3G67{_wIl1mk|Px;& z)KcE#W3%fXC#3H}`z_`>k@+xPZFgOg;HNK$US|s#^+wMG{p1C_1TrhSU~LM~JK)1& z!qWqyf0($4mLDg|+(o8)G)FVp5`jfObH}j%x^SY=!v$(&kFVjlIv&#oJjHVBvhIqu zF(6E2CEJJ_F8E(dZXXj#HFl7D0L2-eTjX=O$K}nWFa|q(td*mbVRY=Et{5Vv%o`|P zKZ=P`ZD^u+RgA*!ITl5-JgEMVh}5kZBIm4tizko3K7>V!Y|0Y^P{J=vi{BDDm8b-U zDN+J9XwSmZv4%b?I1YRT?t%(Hu^=SWgxil^@HNQphJ1UiQ2`&hhtAQQHK;tN_=X2B zD&Lr@`pc5#`EW6sbh--fU}RiG`9};Q=M1d$MX`>SAw0N17=etNs{TFWjm5dzkEhU_ zL?U+KcV#n0zP!#P)khxRa<>1h%(s-2IOr#Eh+GRn` z#+VPN4LhuC*<}XMUGc+b%rqtt*0qoJz(zlt#fMhyP9B)>lOIolq*xH1;hy!PW~+Q& zJ;S%QEx*A0tI_re>2q%(#?o4rgkU(y33`n^Tl&x~-?=!$w5J+OLT8^qBh`}bB&KN; zzGo+?N#TTs{zYj|?SL~QsQ1F5V8+BidAUA*>^V2UvAx8V+@58vZ+fVxWw9-ib*+X1 zBxy+&QJYl{s|0!{#6}UDDmhqQSoy!V=@>&|a$oUv_{92tGo+TRquerNtU8!evOaIg zqMBFXg(EPW&XIj^ZeEEGcb>*`FP7dkK?Te|K-;It-=TusoGrO zxBg0BGnJw9yL$@hD~kXyEv07@Od%cNYG@nI3>(5C-_uYxYc@hV4|GwvqnkF&LB7 z!8hIzuIl(%Ufs7%P<&{gOq${L^AD8b6I;`PCXzV4IlS3Qr@u~QSL5)8_>k=eT`V}; zXYU9ZAtchrx&71SmwD$+a-DNx>}T2}$p*V%JA|ws3=O;a!!`ISDV+LSD7(`3y@CDc zkdO1ZBAyBHW+qI&`Oy*gAa@PCx*jelRhUjZi^kf#kEQGc$ClWq<@*T>{$N`3+=8qi zpQQ^#(P<7uzu5oc+Z`a=IGt2Lt%Wv~&S%>L$DYj=wh`l1__|#m60vQHjb4c){+%1z zQ@QtU$)im7e#%sU_~J^?UpE(%PA+DC7q zKds}}Lc*95v0(f1ZDvRk_UVR35?4N!umfai^)gr58;uIl2)9a(yiqcFOEtsi%VZ(p zIYHF&009W;(iO<^e283kscuVt=XO9+wcU=xoa2tmOi3oP%?Oww`*X?jx}+QxJ|kvV zGIqlTyA(6PcXIF9sm}>`}HtAZ(ZBHOfI47F{=ERuU7CKY7*YIDW1J zZG1@s-Qj5dBM|+W?yKV9bR0yD#6rZ=+e7Zln9}LOe@kT2l+Wo+ zV4kcp`O}Je|LvO;DbPxqOl^aWQV3-1N-ufopwPiTgTk&?lDbitybw9i24$#4wx1!L9Hh^hrQ#Qv6R zTmjL-V%Y`YFu3eV5HVRaK!y^~34aAh6hiL1h>vHRC@RW9Xim21cEQVAB-+x+>(KeNH z`4p=bubee0-hLuOgd@EYCPknrjOPTL)G+F;zK5lx{?k}#`7=C31!e!>d7IZo&Gnyp1;c(CAB8`qD9do3 zDkiGNO`Oym!eGP7RjK#*SYQtIXa*VCn9Z1usrS3nymfKBfUhhu9ML-rPft{X86-J@16qkK{ccazVQ?qXegNn}~Z?=~Na;k)^I{XM(C|`<#pmzN z+R1Mf1>&bhgtW@qW&$s$YFmWINf4*p$qBZg?3prrx0xMm^~dheGUZ(!=Xy{+4jg+W z>wp&fuw3D@-TaY-j)<1n*Yx?5c%39Q_Ai&wU&}?ljp_vb)>%8OKF_bhg%f78ASkQ> zYLf*R987!*yvGAm!w|TO;)Qn{RZ=5A+hhMp6^_@7>Y<@HX*)K0rM^@%a-7RS_5n%| z|6W`9pAZDuel6^eM08APq+aS7R4h%nQLtY@7*C&QZlTsQ1}{2kk{aG!JO?c&B_~l5 zVZyda&6O#Sy9AHRe47jm8vlUDqc1u0-W01v2 zX@e1dt}@F-a)y39@irDM$X$h5xkT3vL4?wx=~jF+sh7iA1E^9FWU+nZW+nI!{JWII z>B1zuL(7Ux27jqxfLe`(S0@GszZ-ZtVU^@qSXm)#<|bI!<;)OTB92pxpw5P~_zvI~ zr)INYa}O*x)`M085fPu-)xZ*Wc@^7w2wE5raNk?(D;)>d6OD*Y!YF8l9fDqJZQA(B|J07?ZQ%x&&Rb!Tg8Y5k;tnqDabI$ z;xQ(O$41~^?1G4~z}{m<9BSJ0W#dn{sec-Y{tdJF_RkCb5MPUEL zx8XLyKEMgugzuH_Wv4_5Y{u?mM?^3bl4j&^m+7dON*Hcgpuv_Wiypjio!7`Wm*CqX z^`mAyn6~^~;R^NgF9WHU2)7Xg$Dr)7RoEg{&S>ca>B2JcE{+p#;GXI9l7PCRUOETP z;6uuUvTS{9U(YuLc`TyJ&+I9(i4!2J(cX;Mo9Yt)a{9CSENh47_}5sIaI!`CpP+lW zcq2~wv4^<$t0slRX&vz7$ENQs&2JO>wRB6qm^X$Y8Q|(yVJ7VY2>YQd>}>M&(b%Ig z-Q$F%mEsRy6Rhe4K)a<{NQp%wKNX5<`h%sWF`c%3)trhYo*=u5`KGu_{@`2b{#rBv!@fCF z;8gTq#QS^mPs8btI2JGc$;8xbRmeTTP&FGe486MA67p=Dsxe?W96|GgKw{uy;_0V% zhf@d;_r)sh30Wcbvjh@Ub~H18~0oO(15&+vKBjQ821&IY5xkp$IW%B2^4=<*5QoCzZWYO^&8 zD3VUihV;6ZE>P-+HBAT;c~uAS=3O*JGO`%Mu`Z#n*S3h>8sw+ks;iHEVKi4^5-Vch zw0gi4C5?ayfLW@++}&WFNhFsOl5O(qAJ60Tym1vX+a4@th}!;ex_)Z*fzqBlrUAT$ zkJr$FiB+_Zb{`m|uQSt#ZRNvOzt+6H1mf0ad^(gReBhZC2y-9sl}IT_ly{tRKFLrKXp5;H+%t6N>i-+Puo?=RTES-3J5=1mVF7Bl`KB z8w)H*8B6QQy+VhLu){&#j|lsd3k|{fsi5Q&Up!W*h*q^R5{YWi3*$EDEO-RZ7lyStD1>z`12$~>ytHF;==88Y8U-TGk z8rSEqyg>kM(P)njWcxOKOKZ9CQVt&?ip^EnhID&0Jo1fG-9LbNA56?1rc4MSHvy*R zfG8RZId&ShmkHhLn_!;+kT@zdqq%e;!>Y7r=1^kX%?{%Fl0<<$e|5Rl_y`f_)sx*uyJ-oZ$aP z>Y8sj#$!VX@xzD^Df@?%e+fg`@!xsigvs5m%HIb6ObH}Bd&J#D#AjZ`1UwIZ00KO) zv!X#!MK^{&1A`s|JwM$BeZ9HjyQALyAAc=PLc=YE|Q!MeD0C}2< z$cG6_go)^du~LSWo%J$+xpCD}lj>fmBQ?ZtB%(o^l((bNsoboe5D*b*O6y_rNnqq| zNT!k4^9nDG5Wkf_B!eB>YvLP=b%@9$f+6rG8Z(Sr?Z)>NgtRJw{1)jI5SSzvRO4B* zBJ{UiHwd*cwuHs@KG_oIgd8b;KT8wR-ZVb>U+A#h-|3?J)J@RSdMV~nD){ZN`32Tj zSP*9x^Lz0J^$Oqe+rRY^_cH-+Ctn3!3q$DB{IpW>7TG%gOK_gNTGQ64t3VYe=Mzvg_nZd)1s(1FO(8`lkSnfZ$ z_^ORVrbn$;3<9H-si!chz)&clm?vPkeA|#quU62~YV41pt7e_m+c&Ub#mTgGmze4o z(nw5fVn7USKUwH7BAG_{r~<0U5>d?nJYo_EbhDTgyy{6D%k6H_Ch=F;_Ja?fPveS& zyHO$}L8SD0;msVx@GQ^l^P$h--ty)9$TxN=qj+;Rt6)M{XgaYv8{ki&k;uDl@bclV z{G%o;_IAbYDNdCKV^jK(qM>n|uL7j$)*qvU3ywcU$A8a$mB<}2xs35lD`kXGx4JVo z)foXr!1@F;r;@-L2or%6NTT0tlbhZH1Gy1m3?^#gah^&{Byoq z0dhJ&{aVlThsh74ua&q|?;k$2D?oYflg-Sd8!K}GNqL10`w;s+-Y$-sC-D8>Pm>ji zW*GPOv9<=P3J^fq&+svaw%B?jv+>Kuwx!}C0kAYn` zP>l3eYjX_4r4Za3_NJ7~+QVCYG2u)q*u6Lm5f^yMuY47~*lLaPr@{CNppD%+&TxUD z27-2@SD?%U3-A9JaPylQ|2DRd5c*j&rYQR)>!VYevwU)En>SlheL`)6xUtxr`xpmf zuiln^2yy-Js{uCmk~Cg5WlQ@nd7s>8~Ujc?C!s4*%{tf#j&m6Y&Pc zYZPVvBLA0WxL;q%SnyYz;A3t?OyQnD!Apa53^dpl)D;7!OrU^86i(>hEMHA^l82xv za@-yIw;*39*!~FA4GEkaQfT*yLgn3fmBP!fX?ffCG1j+MaZ8KoeprJbqHsjL#3BI6 zcR_QY0kBP)3!JqZ(YawU8OkC9y{qn8oUK#usaGT|?lieJT)_18^4(8MZ+tiFFuaS! zZn}9!ykv;A4_g)#^ISt|t}hP9Tupj&iontw9D{Cx2H=UH0NP}b?q-MJphA*QSMZ0^ z%-f6<6FgBZjkq8FH{mc}G;~EErb)3ntt7u(`F-zeI{wU5=~SYifZfmJrfPLKMg+1D zB>=}Cr3&$dfxZT@;2e_z%q?(q?P3Vq24?jYFz5LDZ#i|QUL?l34hAn4!K&N-dt+?^ zNwLS|-HLKUy3=NuG#7le);c*%wXqyYF?v91^duI;HhlfUW@>1a~@&>=G0yaHtR!a(+bcUo=s||Ln_-SRCbI&utdOD}Cpl^5CPv*z!_1P0j(1Z~i@jh^ddK2N9#j~@H{l|E`%FTpP&Fv*lr(*%>aw?M57 z*ss2w*(ClF@D-OyEg{dzq}R_{kxy@Y1ySPr5J^dWp@MoQy+#rSU_8 zE5qQTh!iUtLF229DHyG|Zmb9So&yR!q(bnwa3P?@`=D4eGdv?}5D_YYm9tmxQ8WEy z>0iBQ@`7)jT;F6Wom&YG0V4VnW%!&_IwJ4GeH}pqs07woi%z$Ruzc6i&-{$E(fp46 z-E@S0e55n0ljy0rT-E|xr6*776_cZTD})%Wq{>OATA>JDK45|II#Au}A|Eqt0KRXl zA`^q{naW7y1-GBRCt~D2P3xjUS#x{`S>PE01V)P~%*iOM{c8w*rVaLgwVc`jtK9Wa zlirp2@`K1Q9k$^2Dq(qQs6;pIaW_huu(|@=@i{!lOFo1SJ_P8+f*({V(5S74aLPTW zs}4|@CdwO7d4ZhqLXPgpT{j2m)6H(=BpQi;Je^%PO!C;T$un6=TY9OcyeDNrA#(-5oWJ+AP--KR-1T1Y)9U?pQkUl*rPL%i8um_2y!Pz=`F+%`jf}N zs6Z9MPDot!Zze!rZ1)9l>^m8DT<2_)qxp8Nxa#(Nw@0s9P>Js zI314s;v)008-qUnefYZbEBO?4O6cdom@_%J!qywYU(~tZ&*C}gTBc6p(g*yMi4ZM2 zp;5!O{)r#H#1^60?=NFrj)AhP{O5Z}3#_SmB~n9p%0@!G-3?e+2m z@e3F~>{y;4FgclxEDIC!ys#cDP?;8cybqutY(LKG!cLDb@m81klHU1Le#uCNocx${MVEP7~pmzDq}f450zyHA&bD1c;|e`2MN;I*;?=<#r@!V}DK zub)GY5tMKQMc@$mtu^7FVj`nLfCJAq<#Amt1=Dpv8He1OY z$8`DrKZef4pXoo2KW*--+$E{zNJ!-ll{QpJ zLMfygsZ=USB^~?u6TYACIQotzNY)vEN&9k7!Zx_jco_AkCkICt zZR@YUwM@C>z>*!CgcfkeI)RufkW7E+BY*J}l;fios)(vH*#^niM5Mt)n^aG#9rXLv zI}u;w;JsHI}Bj})Pb32pc7 z-AmX0EIF{i?tj0s{E&{x6Eo4{-Pr(yHh5xxcxHXC&3>?nIs7GiDoU{FA(qI2`vd=d zwJ|ypa$sHv>mTU13PjLsx!*^T9j8Wnb3QFlrE5SkORODD>F{}3)L$|D`7tORAJuDp zFA7VD%wMzyVLRMV6zT=F0G{u&oegKzIjRhs`Ur{sP2@_o--FkkQIk7h8zcB8$Qn(V zQ0t{+yr_6G$rRY81cr)+V?Y;{DG1FMl5fZ%z)B+Zbn1)6OtPI8P!RiwW8j|**|k6o4$ zmUwBL@LDkKwSfGE;9Vs4bO^ykS>WX;x&tJz#b=v$g_wiu@uL(Rk%_H(i(J1O=y`YT z#i2E?X4h2?6uByr1PHEEqC3ZFRm;AdhMj2^sfH^Yd0y*7_@^Lmz?q7us#Y)+Mzi;z zV*tTO5O&FjA~^}2rVt{jMKUaW302~c!&C#3_)RVx1Y)z_6Br^)d za&swg>vG3|rkm^!wDkd*^`5{s2VE78Yxjf~`0w7|ShGyKwu=$$CvX#xKfzt6m6z*i z19oHzcPLud?!Lf4B21>uzIn$MmmuiDu*C^@9TRIpE z8c9)VPbi-*mErq3XZLIx(FDb^e~!UoQGI63<=P$v+RAtGo}*_SD^E#b3L>gA!y}B^ z@t(!wjB2{)-O)T~e41D=1K@I`kNjoMF5HDV-?PK8Y}8&lCV{#wSC68>ewj}|{_DOb zL=Dc7dnt%jMKuOa<6&=j_3l42iPVU1(PK5&~>B1@2@S{e>ACx^Iw%NkvfJO|h>ybAv1e2ysGARcgN-S22c-W1n8{9~Z5n1?Q{Uk4jQ6)^x|4OpMkKtx5ZBrq&_ zM?rx8UO4%ExlE*BiKk#02d61_7;tu2XWD!j8tzlz4aMv~7Z1O>JV{7I&61zUpY+_#NN;Q8N zzP7)%z0y1W+V}3zI9?a^?6j6Hk2w0|Y4 z0GnW=PaunX5}pw@o(P#xMYfqgm}CLQB}m6q(%mNUCsdcK(g$`NBs7mu@vOy-)$Vei zw#|gLYn-5R!FzH^lk7uvFyrQbna*!0Qaw;u6pxWiLMHO92I&g)2UY)nTsTM|< z^ytPT_WZ2B=R7%T?0tYGYd}>JbrxA;IbWbkFvPt*_FOEX%1CqGgaLxImx~3*e4PZZ z80AMkeFmaUPdhL{Wt4B9lLB*?V};@0jx6qq@(MoND_tM$)%^JKS`6dq$@Ral#75Sg zMb^DWFX4BCrB?e-Ips)gnMm|dMdtZjlmS(WEI8AnTA#N+-2pKQq&qvsT^!KP{rY*|mKXzyjQRL=lZh_ttWp#j zLD!=#FzR{$Yxkuy9YP!W)=JOL?Tw?<#ml3EV0b&xNn9Us-dVI(h6``ZV-* zkdmc%i@uVhBWtM(8vJoSO+;Ai4+yQ#6<-I=CF`1YSqph`O)9@(1Ye7_Q}G7e0`6`% znoI1V$`LKicRMx+ON$5mmN!Gu1%^Vh91eMb(;nzl%XWAv7w&NLO%HZGCVgOk%0SG! z+NNj8r>1|!T|6#Cw@w4GtZojNOH%8f=~g*=y;kc{AE$gkrI-i4KbW1fw3=)ER{?n@ zifV{iA{m*ntmUJntt3^PRH=K=f+GD@Hj6M@cQM$iw~MFn-y=JTQMDk(9MY!@RK+1s zK%JRfk2w}TK}TjoRYLeNBV zHxpCyEAC6*NH_EIkZDAT1r3KG)cldSJL#12ekddtM5aphP{pNxpMIdJe63JN?XqLx z-hGZ6syb)K-bf_zD9&(`wB!mE&`CU-TG3&X@>~ehPRTGkxqA`BC{`!EwR!g+^n2ys z`QHH6Uk~e__drTxk`JX6nBbUnYBu!MwC=ZiQ!u=^iFB1oc`y?#sw>$<(jCszvb)B> zJ19>Q$ah^kZoIwUEuB3fl^J75PtZj+jaWr0@pgKKWZ-d1PR^_{T>`V8X zD%a2F-$hrc*R3-spt~^i;oI7?vR)wJ4;0=!L;82?}6w0sfq1EsMhzb4kO#xdrf5jZN zD8Pcr#r+P-7D1!AtRn5%DYL?+^iOPo_7QC+N>x(z>TPfVr@+{HC9BEEy@Ly{qBBF< zEZQg#45j7>TIB+Bt)r~@sl|k91CrY)WW-TzJZb5-Xr-?Amd90>@@KB(yruxrjh#k% z0uyrIYCp1vhyh9R4su}z?zc_4sz?q>4W5r(jcYA)?-KPtb>6L|33gBTPFo?SCD)eo zWQnO%-TVF4<47^j?)Ev!WHK{rp1c@|kjz{Y><>F35DbGDsYbdXYE}t4DyX*4B-TD9 zPrXzif9#<;B`NX|cdmq^zb8C9AHy zeZjBpudqAg;)zHwv`?c(9xnUzQc!?cGnu|xc7E;A%fj#H`6iq<w4STJ0aG3`T1|M{kVu*`?|7nXceYTqj0__BVLimE;S<4n-A1?`1TMr)zuj*be9 zUNhZ5YTa6e?wfsJj0rdL1>t=kWXpN-z?AoLC>9beC)v{52v}nEh&-L;GK_{^WG0fU1twr5LP!h2hm6M>g@k9BFm(EIN8vp!dCk^qHK(d z*R@)&2=x>QW)kpe9-g~K4mm4oBIh^NI(E>AA}bfFYBjXL#MO!B$Uy0k=;edHtMV+; zl-nUwWEQTD0~XsL1>FAqf}jT|{N!AQdTh8B@NbRx^i#j5r|g;J7} zXXFG8=d4^G>gMZj9Wn#uyChG==0Scv4(_q0NY%i7$kTO4N_Lkxi1mi$=@jffg)34^ z9B&6}uh*WBYXxr!Yf3Co5I<_J3B?f5hR9*r>*CP2?fJPOx~&Os3rBF1DvdI1@DH}%hyIw2)Um3{C^_GDUt|~P zYZ4_Ot%>!ej?LOwr$aun3Suz1#@^ncH1XgUQ?UAHiK;Q5uGw zCFgQ?rchs)2#0>K!z4QU`TzxcCEyd913WVuXI;ywQI_}n6KqLnK+A0L3=_$gdORw; zv6G9Y&G+3HU?f**jb;CBn34)l?)q$@7a~`DP}w5~nm$)?I+UGtUCs7JDGMY}OUm;+ z(5zSK1|rCA0B{3(y;w(`)c`bGv%wpiB~N%U^3g%)jC&NTE#vs38@d8+JjfVToty>rRv`+q9UeQHo#vu^e0 zF$w^ab>8A1%50<@lRs}P)_1r6)YR!E;`wsAK=ZJ$DG0mB%;ks4p-gazBEscJinTdD zC~w>q&2m16w0Ta{M8omrRaS%sTpTdcLd(iNYY~Rca0DGfNV!;DS8^-Ls_<|BuzJTj z+1~Nra@BK*H>%WuPJVa-!uC5=qK6HWPX^T;Qh<+}xETI&(6@Xct&tZu?kRJI)uuX< zC(h(mFPM$pLakI+sHhJ-sb+eq;k<$lMa(PSFum4m2vuLJd$;$?fDdK&AV}}E2*@nr zL}HfAHj{Jia}zw(AXgd59U325ZS5R-TxeSHBt7<6;(qmGGhq7Iv+ob}>b%Cymtql#l|JP5v z1;E5H(DdiLhnk3AO~LW?4Ox+)L%2W1PVnsj>-~(>#c5t*JF7Z9CVN``E!o`RaquYM z_COJYi{22GA~UAPg8+lQ98PORBvdDK21(}4G>aYjBD!NXV57vft?y+Cv?B(NH!4wM z7QC{dg^)!Q>qRjw$7Ga>|8yTBvdGBae#QFt{l=ZY&!^$aJSytb2`lN@>wof!OViYl zb!?O;dv0efC5vgjWQSH&`>2TfI0XYYQeb`>&0@3w3=djILRxg7*vzMVFoo2o1I!-% z`;zmw2Ke{+3+#)|KfezC;unD-67XK=ZxP8}OiQ64`t8PWERBuYU&9D zAbbgMgr|rTYEtV{##PWUr{tG}f&{wB*a;Z-icV9NOA2)#ky3=ZViK5WU+wXgw}24`5y`o|qybB1L*^sFJz=L~n&%m(NRrIe zb)LW=PtdR9-y~Cr>Bj%D>p-~9-!3JVcf!75iL6dKf08FuLqR=dW7{~$#gA!FN6>yp zxS0cTLlt5F>4P#u`j|R=Hn;Ri7>o|A?`x~H=RsROH`+5-t=Y{_UGY!Z;{WLqza53= zyP;0a5JB#!ym*PTZn(9h{FiKO98EJW{#ly!&5VvizHFo@h;W9n(IAMaWujj|@f!eU zBWJ1WYE(?t5_lO$Mq)b{(MN{Wx}vZ(S{KDW!(2EZJzy(s&7RSM-G5i*M8$b#1=iz; z>S4HpFKL+;j60ifRoW3F8zCTx$CWYlz(>5(NDo!rypt%pWn-RZU-eWWn14=zn&9u~ zScp9xmO#f7Qnxko&^qi@CoOt3;ep zY{wnop;rj?bQoM6;jOPwy@4zNaD69L*FWI4IXDgpvkc%qFqc2jg@#XJPk}M>^ye#; zxLSGTh}rBI3M@ugW&d@OHtE&uuxiA83U+I2@XHp?AWxE@ol3tNS&`0xzpxMM&3vE- zPz_z=x6{~&a1C#M8gN6*N<`v*ymAOEhw~}f-EVa*!keQdQI8i6vTcmj&SpYw*a+Pf zght{&D2Vusf`6(5h*lnAcE}e*H~i5Pf6WsF^!Nses2ZN&E#B==N~tf?z+AVv|8qqW zx+N7o=lCf#%aOw1rOoCR)qX@MQy{n4Xn!*C_ZPlo1vp3K??fp?j{`+N43Bfuoh$uY zMKVt5#;)XQ2yq;yO6{tv z)-%~X+k@F=E?Fi}Fd)@I2If9lV463<8Gp;j7-vaT(YhGb(<$xC^_PHgAU7NuU!a%7*McFUA7C= z`0y&*?>w0HRZZ=7H%YJQb*A_`S2<8ea{?Kd(1A!-%V**gB$+w}Y<`mg|1`UIloHFH zLe*-gyL4aPbaL+f{ABcrb1wi1;05_`j%4wWrzrf>oq}x?ygbMLXdGRof&QpM2h#UR zhz+vlv|dPZc@AJdZ+-3xBYl`#y^swVw#VFh?9q4?Zy_4>k&W)3-d74%xo}LaJBG4F z!K%LBYg3JjG{g$8O?0)x<7PEAZ4S;1#|VOBbuD9IRR^>6sD+!RT_q~}#;p03W3c`h zSU7#9K@Voe1~e%e)JEXcb=`i9PnnBmZ$a@?0wsF`OjB8W3TQtU)s9Mn+2X=SqU8ta zg2L{oow?6jRR|l-AEuGkk+?sBQD99Tba!(?C_HGd$cNLbYi4ekV2boHW5eUmg8#n$ zm;eY?P#ldDQCXD7$?Ri3&%%_z;Tr7KTha1QAHkke@VH}1XMd6?BzY5FKYAFEz+60S z6tz%oTW*9u#YS;}eS372x;s3-1AghwFhc9ui6+5mKqyik`x3x(Xg)Bb$BY}rqMm5a zpOzQ$l^6D9z3^s;)v%VIx?6f!#v8^rRjb)K!RIOdS_-fuJP^Og)!X1&y);_S2$9%$ zNoZls{ozmKOEx-kOY2M@ev9H;HX0r-W;944U+KY~BBXaeBh`tg=>{LCGNDg3kQGe* zOP(lp9KwJtV;GW>o&shaxs&CHHhYh(sR^=64tQE_r_6TE?kDAKPpbzv?9c^Qj@t7H z#~vAJ8F5gl%*B`PdE-7&<;jb)DVX_`=y5I7%Flb6HJRDyj2;r40|<^PTHH(){3HIr zlVS&sVwM|brFXHi*I1AHR1GDxGMHJhyn`O14=e75QTV zE5|=&%`}q==WO5=6x50<-+&`jArQrht7h}Pc{V;!01u9qm!&9%vl{^S1 zrQ}ZRAEnghpTQ0qVV`o4|59LYJ1ew)Rmjwgn+(K;?NshPo@}HMuUu6?JXPj)T-Pyr znea7!y9H3iLo7YL?Y9kRcW<~ua_2_031$Oeq;_ml#?dMjKN5_W*F4c+cI$&csxKZR z>2U7&ITgKgg(ePymS6+QWREAjmIC2xvay*YJ~B~Gi!!bJ0pSZYbqf{$(&#{>A9q

    RDa6yj@;vQ^-8z==<$d(sRMx7hSwp#4l!~N( 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�nRwmz+I1ZyxvM>($Rkf@%e8TUw3!Al-r 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

    i8(#?5#g08T=B*5X{Gs#@nKD{ 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%0D|DSkaGXK6Bf$%@`DycZjT8{q`N)&7HC8eoHl&m zK#Kew^v(%(wMCM%>E01}5#@ov)YqN{!5 zju5qQg#Dp*O>qm~nt9?v6sS$XSqKZ4q|)3910E2^a-tRDP@?WpzV0Rg)@I@1Zw*~< z&lwEHez&?3>a3S1ypmJ2toB{y_7W-2I$_1;Z+MMgrfF}yP3oz;msddxvy}HSd?KY6 zMNMK%S!KKjwjmjO!4C-Ei9eM=6u+OgH5 z8pc$Fs&WWZUob<0K$?|UFb5{!F^EIHKFYLIETN1JthjPFF17kLd)Lz)>Bn7hx_xSo z|9m~ezH@9K3$f&#ghB`N?`#np({+F*9spJiD*}7|UdMk=RO8MBPjN`$dn71yP9_XF z(Te6{Conr#-E*gOqm4>XT&C5t*7s~Q4NBbWubpO&QU2vKVV|%7PEfjAzK_(m{N6)Ti=C1t)oUf*6}$6qxlo-Uj5r3S9#g zDLHcA7+$b`c+I3HV}b@fy$9fF?F51KvEb8KAbXsCKOYsVDtC3t0{a#+IuYa~-2H*K zcEHR57cG-p|B1Y#WA5(iP%6fX5Uoc8M=I^XOe+*TglVv=g+k7VNOLRG3~x(rb9y(I z?~KPL%j=U6j71auC)Ug@QDB_Q1U-Tp(8+UMRykxE>DH}-R!thK7NE;pXv^y71rucJ zmFQfpZcwo?Y?x*`mJ{DspQ_55Xx)PJ(5Bh2I#>ZV{wXM&PoNtv~5!4xEsj zqYZ>w%nUP?m?CVwhC_&%`+{~U0^X=`vb1SqyKpW$W(A?Lhr@f&z*e)(r>Do#0i%v& z6#f9t4fqchO@yE+E3uYvFlublGCE?V?V5Iw7|YeM^qbf~O&5)?KG5@GCJP;)2!Odx{fo-;b--Cc@a3)!W~^q^TBTxU*Su`O8RDf>h>4Ge**&rHOxDZBoeb>I3L7|l)Sbuw{=!clMI+=z>sEWo`EP9WlC-C z$4r3!_W|hYjqd}D>m%Hk8bMNvL}SXYsZ&Cb|E@2;O0lU8@ebT?sc8YQTIB=T$VFt` z(|KW=KEMm!`DBS^K&SD9_zBP64A|9!3c2!S>I@DE8>>_+Nw=*Fihc8P=58eI@^%Xe zx_EldguMXY+LxpuwxnhF!OWRu)1BA}#^Co0P$g%nsw$yS4 zU)Ea4NndF+SotJn0~Ep&IkZLXYWi4ZdCYSF{OK;@$Q49T{s?q*k8*EHaL}*p+vUew zcG@!X3d~(?x4;vWwu(nUb##Pv0q#?QRM3Wr)*wd~e{H(y(Qo9#)0C*-nPf51AM?y- z;MMkNMSjW(yO$}B&4k*)x@PfMoaSgskd>XE&^9y5@xCT=5S{>f(fFILU_T`mjH)|z zX8Zj8FnZFi`+b?^{YQe^?+Ia4vw zVz?q~nF(+I9wf>U$L>5&7PPRBzMQ)7QAioI8!eqbIKZoH5mTmCrLQ3aiiqN2rAviq z7TJmWabr)e&hR;aQGlIm#+bNnuJ_3oCHSGEEhfDeh)p$imSAyauI%PUzKv=^Nt}JB z%mMq4lg_6enitM(o0lk3#eNw;jI8J^uzw^XSLH5Don#2+^Gf>4j8e6)*Mjn%x?iV5o7{yZ{ssWb3d?;#6PNv z98`ZOa%QgPM&FOW`iVU_mplw<^i` z)L(~?*E!9wKL&WUxT6x>I$2@>(SCcda5U^1@{+m*bEp6b#zK@f0JDdDm!MZd&3R7D zQhf?h07X2cMIdI_m7Gb1%cPSP%iywppch3l0Dq9{I{B=WO%0A;L=s|$R1idBhlL$8_Ub~YHub$87 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

    +C6LTgsL68k=}ALBZjW7P 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

    JGn; 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

    +
    (({ isLoading, emptyMessage, className, children, ...otherProps }, ref) => { - if (!isLoading && Children.count(children) === 0 && emptyMessage) { + if (!isLoading && !hasReactChildren(children) && emptyMessage) { return (
    {emptyMessage} diff --git a/app/javascript/mastodon/components/tab_list/index.tsx b/app/javascript/mastodon/components/tab_list/index.tsx new file mode 100644 index 00000000000000..98651ff4d07ce5 --- /dev/null +++ b/app/javascript/mastodon/components/tab_list/index.tsx @@ -0,0 +1,51 @@ +import type { ComponentPropsWithoutRef, FC } from 'react'; + +import classNames from 'classnames'; +import type { NavLinkProps } from 'react-router-dom'; +import { NavLink } from 'react-router-dom'; + +import classes from './styles.module.scss'; + +interface TabListProps { + /** + * Setting this will remove the default border and + * horizontal padding from the component + */ + plain?: boolean; +} + +/** + * Display a simple row of links as tabs. + * The current page will be highlighted automatically based on the link destination. + */ +export const TabList: FC> = ({ + plain, + className, + children, + ...otherProps +}) => { + return ( +
    + {children} +
    + ); +}; + +export const TabLink: FC = ({ + className, + children, + ...otherProps +}) => { + return ( + + {children} + + ); +}; diff --git a/app/javascript/mastodon/components/tab_list/styles.module.scss b/app/javascript/mastodon/components/tab_list/styles.module.scss new file mode 100644 index 00000000000000..aeadd95f08aad8 --- /dev/null +++ b/app/javascript/mastodon/components/tab_list/styles.module.scss @@ -0,0 +1,39 @@ +.tabList { + display: flex; + gap: 16px; +} + +.withSpaceAndBorder { + padding-inline: 16px; + border-bottom: 1px solid var(--color-border-primary); +} + +.tab { + display: block; + padding: 18px 0; + color: var(--color-text-primary); + font-size: 15px; + font-weight: 500; + text-decoration: none; + border-radius: 0; + transition: color 0.2s ease-in-out; + + @container (width < 500px) { + flex: 1 1 0px; + text-align: center; + } + + &:hover { + text-decoration: none; + } + + &:not(:global(.active)):is(:hover, :focus) { + color: var(--color-text-brand-soft); + } + + &:global(.active) { + color: var(--color-text-brand); + border-bottom: 4px solid var(--color-border-brand); + padding-bottom: 14px; + } +} diff --git a/app/javascript/mastodon/components/tab_list/tab_list.stories.tsx b/app/javascript/mastodon/components/tab_list/tab_list.stories.tsx new file mode 100644 index 00000000000000..56edb1b324c2bc --- /dev/null +++ b/app/javascript/mastodon/components/tab_list/tab_list.stories.tsx @@ -0,0 +1,33 @@ +import type { Meta, StoryObj } from '@storybook/react-vite'; + +import { TabList, TabLink } from './index'; + +const meta = { + title: 'Components/TabList', + component: TabList, + subcomponents: { TabLink }, +} satisfies Meta; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + render: () => ( + + Activity + Media + Featured + + ), +}; + +export const Plain: Story = { + render: () => ( + + Activity + Media + Featured + + ), +}; diff --git a/app/javascript/mastodon/features/account_timeline/components/styles.module.scss b/app/javascript/mastodon/features/account_timeline/components/styles.module.scss index 9c13026b9709f9..dc9a4459d29be7 100644 --- a/app/javascript/mastodon/features/account_timeline/components/styles.module.scss +++ b/app/javascript/mastodon/features/account_timeline/components/styles.module.scss @@ -355,48 +355,10 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; } } -.tabs, -.noTabs { - border-bottom: 1px solid var(--color-border-primary); -} - -.tabs { - display: flex; - gap: 16px; - padding: 0 16px; - - @container (width < 500px) { - a { - flex: 1 1 0px; - text-align: center; - } - } - - a { - display: block; - font-size: 15px; - font-weight: 500; - padding: 18px 0; - text-decoration: none; - color: var(--color-text-primary); - border-radius: 0; - transition: color 0.2s ease-in-out; - - &:not([aria-current='page']):is(:hover, :focus) { - color: var(--color-text-brand-soft); - } - } - - :global(.active) { - color: var(--color-text-brand); - border-bottom: 4px solid var(--color-border-brand); - padding-bottom: 14px; - } -} - .noTabs { width: 100%; border-width: 0 0 1px; + border-bottom: 1px solid var(--color-border-primary); } .bannerBase { diff --git a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx index b2970412df421d..5fc56f8e3a1823 100644 --- a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/tabs.tsx @@ -3,8 +3,8 @@ import type { FC } from 'react'; import { FormattedMessage } from 'react-intl'; import type { NavLinkProps } from 'react-router-dom'; -import { NavLink } from 'react-router-dom'; +import { TabLink, TabList } from '@/mastodon/components/tab_list'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useAccountId } from '@/mastodon/hooks/useAccountId'; @@ -28,20 +28,20 @@ export const AccountTabs: FC = () => { } return ( -
    - + + - + {show_media && ( - + - + )} {show_featured && ( - + - + )} -
    + ); }; diff --git a/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss b/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss index 5d440d62f75da3..1079d1aebf0a7f 100644 --- a/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss +++ b/app/javascript/mastodon/features/collections/components/collection_list_item.module.scss @@ -1,6 +1,5 @@ .wrapper { --list-item-padding: 16px; - --list-item-padding-block: 12px; --list-item-gap: 16px; &:not(.wrapperWithoutBorder) { diff --git a/app/javascript/mastodon/features/collections/editor/index.tsx b/app/javascript/mastodon/features/collections/editor/index.tsx index e48e8718cff604..b18091461f219d 100644 --- a/app/javascript/mastodon/features/collections/editor/index.tsx +++ b/app/javascript/mastodon/features/collections/editor/index.tsx @@ -144,7 +144,7 @@ export const CollectionEditorPage: React.FC<{ /> ) : ( - + )}
    @@ -156,9 +156,11 @@ export const CollectionEditorPage: React.FC<{ ); }; -export const MaxCollectionsCallout: React.FC = () => ( +export const MaxCollectionsCallout: React.FC<{ className?: string }> = ({ + className, +}) => ( ( + + + + +); + export function useAccountCollections(accountId: string | null | undefined) { const dispatch = useAppDispatch(); @@ -62,33 +85,11 @@ export const Collections: React.FC<{ const { collections, status } = useAccountCollections(accountId); - const emptyMessage = - status === 'error' || !accountId ? ( - - ) : ( - <> - - -
    - -
    - - - - ); - const canCreateMoreCollections = collections.length < userCollectionLimit; const isOwnCollection = accountId === me; + const showCreateButton = + isOwnCollection && status === 'idle' && canCreateMoreCollections; + const titleMessage = isOwnCollection ? messages.headingMe : messages.headingOther; @@ -100,45 +101,88 @@ export const Collections: React.FC<{ name: , }); + const tabMessage = isOwnCollection + ? messages.createdByYou + : messages.createdByAuthor; + + const errorMessage = (status === 'error' || !accountId) && ( + + ); + return ( - - - - ) - } - /> + - {status === 'idle' && !canCreateMoreCollections && ( - +
    +

    {pageTitleHtml}

    + + + {intl.formatMessage(tabMessage, { + name: , + })} + + +
    + {collections.length > 0 ? ( + <> + {status === 'idle' && ( +
    +

    + +

    + {showCreateButton && } +
    + )} + + {!canCreateMoreCollections && ( + + )} + {collections.map((item, index) => ( + + ))} + + + ) : ( + + } + message={ + + } + > + + )} - - {collections.map((item, index) => ( - - ))} -
    diff --git a/app/javascript/mastodon/features/collections/styles.module.scss b/app/javascript/mastodon/features/collections/styles.module.scss new file mode 100644 index 00000000000000..9ded10dcc2d5d6 --- /dev/null +++ b/app/javascript/mastodon/features/collections/styles.module.scss @@ -0,0 +1,35 @@ +.header { + display: flex; + flex-direction: column; + gap: 8px; + padding-top: 24px; + padding-inline: 16px; + border-bottom: 1px solid var(--color-border-primary); +} + +.heading { + font-size: 22px; + font-weight: 500; + line-height: 1.2; + overflow-wrap: break-word; +} + +.listHeader { + display: flex; + justify-content: space-between; + align-items: center; + min-height: 28px; + padding-top: 16px; + padding-inline: 16px; +} + +.subHeading { + font-size: 15px; + font-weight: 500; + line-height: 1.2; + overflow-wrap: break-word; +} + +.maxCollectionsError { + margin: 8px 16px; +} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index d72d8b986b1851..ead248f26b8214 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -387,7 +387,6 @@ "collections.create.accounts_title": "Who will you feature in this collection?", "collections.create.basic_details_title": "Basic details", "collections.create.steps": "Step {step}/{total}", - "collections.create_a_collection_hint": "Create a collection to recommend or share your favourite accounts with others.", "collections.create_collection": "Create collection", "collections.delete_collection": "Delete collection", "collections.description_length_hint": "100 characters limit", @@ -405,6 +404,10 @@ "collections.hidden_accounts_link": "{count, plural, one {# hidden account} other {# hidden accounts}}", "collections.hints.accounts_counter": "{count}/{max} accounts", "collections.last_updated_at": "Last updated: {date}", + "collections.list.collections_with_count": "{count, plural, one {# Collection} other {# Collections}}", + "collections.list.created_by_author": "Created by {name}", + "collections.list.created_by_you": "Created by you", + "collections.list.featuring_you": "Featuring you", "collections.manage_accounts": "Manage accounts", "collections.mark_as_sensitive": "Mark as sensitive", "collections.mark_as_sensitive_hint": "Hides the collection's description and accounts behind a content warning. The collection name will still be visible.", @@ -412,7 +415,6 @@ "collections.maximum_collection_count_reached": "You have created the maximum number of collections", "collections.name_length_hint": "40 characters limit", "collections.new_collection": "New collection", - "collections.no_collections_yet": "No collections yet.", "collections.remove_account": "Remove", "collections.report_collection": "Report this collection", "collections.revoke_collection_inclusion": "Remove myself from this collection", @@ -454,11 +456,11 @@ "column.list_members": "Manage list members", "column.lists": "Lists", "column.mutes": "Muted users", - "column.my_collections": "My collections", "column.notifications": "Notifications", "column.other_collections": "Collections by {name}", "column.pins": "Pinned posts", "column.public": "Federated timeline", + "column.your_collections": "Your Collections", "column_back_button.label": "Back", "column_header.hide_settings": "Hide settings", "column_header.moveLeft_settings": "Move column to the left", diff --git a/app/javascript/mastodon/utils/has_react_children.ts b/app/javascript/mastodon/utils/has_react_children.ts new file mode 100644 index 00000000000000..f02762bacec1b6 --- /dev/null +++ b/app/javascript/mastodon/utils/has_react_children.ts @@ -0,0 +1,12 @@ +import { Children } from 'react'; +import type { ReactNode } from 'react'; + +export function hasReactChildren(children: ReactNode): boolean { + if (!children) { + return false; + } + + const childrenCount = Children.toArray(children).filter(Boolean).length; + + return childrenCount > 0; +} From 4f76bdfcb7b2339d4811f3b0ef9f917b147ac01a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2026 11:39:12 +0000 Subject: [PATCH 294/335] New Crowdin Translations (automated) (#38824) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/sv.json | 13 +++++++++++++ config/locales/simple_form.de.yml | 4 ++-- config/locales/simple_form.sv.yml | 4 ++++ 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index c75413b338d336..156a202a7dcc7d 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Gå till profilen", "account.hide_reblogs": "Dölj boostar från @{name}", "account.in_memoriam": "Till minne av.", + "account.join_modal.day": "Dag", + "account.join_modal.me": "Du gick med i {server} den", + "account.join_modal.me_anniversary": "Grattis på ditt fediversum-jubileum! Du anslöt till {server} på", + "account.join_modal.me_today": "Det är din första dag på {server}!", + "account.join_modal.other": "{name} gick med i {server} den", + "account.join_modal.other_today": "Det är {name}s första dag på {server}!", + "account.join_modal.share.celebrate": "Dela ett firande inlägg", + "account.join_modal.share.intro": "Dela ett introduktionsinlägg", + "account.join_modal.share.welcome": "Dela ett välkomstinlägg", + "account.join_modal.years": "{number, plural, one {# år} other {# år}}", "account.joined_short": "Gick med", "account.languages": "Ändra vilka språk du helst vill se i ditt flöde", "account.last_active": "Senast aktiv", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Hantera konton", "collections.mark_as_sensitive": "Markera som känsligt innehåll", "collections.mark_as_sensitive_hint": "Döljer samlingens beskrivning och konton bakom en innehållsvarning. Samlingsnamnet kommer fortfarande att vara synligt.", + "collections.maximum_collection_count_description": "Din server gör det möjligt att skapa upp till {count} samlingar.", + "collections.maximum_collection_count_reached": "Du har skapat det maximala antalet samlingar", "collections.name_length_hint": "Begränsat till 40 tecken", "collections.new_collection": "Ny samling", "collections.no_collections_yet": "Inga samlingar än.", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "aktiva användare", "server_banner.administered_by": "Administrerad av:", "server_banner.is_one_of_many": "{domain} är en av de många oberoende Mastodon-servrar som du kan använda för att delta i Fediversen.", + "server_banner.more_about_this_server": "Mer om denna server", "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Skapa konto", "sign_in_banner.follow_anyone": "Följ vem som helst över Fediversum och se allt i kronologisk ordning. Inga algoritmer, annonser eller klickbeten i sikte.", diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 90f72963d88be2..b2311146e28379 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -61,9 +61,9 @@ de: setting_default_quote_policy_private: Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden. setting_default_quote_policy_unlisted: Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt. setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden – je nach Einstellung – erst nach einem zusätzlichen Klick angezeigt - setting_display_media_default: Bei der Anzeige von sensiblen Medien warnen + setting_display_media_default: Vor der Anzeige von Medien, die eine Inhaltswarnung enthalten, hinweisen setting_display_media_hide_all: Bei der Anzeige von allen Medien warnen - setting_display_media_show_all: Alle Medien ohne Warnung anzeigen + setting_display_media_show_all: Alle Medien anzeigen – auch Medien, die eine Inhaltswarnung enthalten setting_emoji_style: 'Wie Emojis dargestellt werden: „Automatisch“ verwendet native Emojis, für veraltete Browser wird jedoch Twemoji verwendet.' setting_quick_boosting_html: Dadurch wird der Beitrag beim Anklicken des %{boost_icon} Teilen-Symbols sofort geteilt, anstatt das Drop-down-Menü zu öffnen. Die Möglichkeit zum Zitieren wird dabei in %{options_icon} Mehr verschoben. setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 911622a82f244a..28aa09f441751d 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -109,6 +109,7 @@ sv: status_page_url: URL till en sida där personer kan se serverns status under ett driftavbrott theme: Tema som utloggade besökare och nya användare ser. thumbnail: En bild i cirka 2:1-proportioner som visas tillsammans med din serverinformation. + thumbnail_description: En beskrivning av bilden för att hjälpa personer med synnedsättning förstå dess innehåll. trendable_by_default: Hoppa över manuell granskning av trendande innehåll. Enskilda objekt kan ändå raderas från trender retroaktivt. trends: Trender visar vilka inlägg, hashtaggar och nyheter det pratas om på din server. wrapstodon: Erbjud lokala användare att generera en lekfull sammanfattning av deras Mastodon-användning under året. Denna funktion är tillgänglig mellan den 10 och 31 december varje år, och erbjuds till användare som gjort minst ett Offentligt eller Tyst Offentligt inlägg och använt minst en hashtag under året. @@ -160,6 +161,7 @@ sv: other: Vi måste se till att du är minst %{count} för att använda %{domain}. Vi lagrar inte denna information. role: Rollen styr vilka behörigheter användaren har. user_role: + collection_limit: Begränsar antalet samlingar som en enda användare med denna roll kan skapa. Observera att när du minskar detta antal kommer användare som redan är på denna gräns inte att förlora några samlingar. Men de kommer inte att kunna skapa ytterligare sådana. color: Färgen som ska användas för rollen i användargränssnittet, som RGB i hex-format highlighted: Detta gör rollen synlig offentligt name: Offentligt namn på rollen, om rollen är inställd på att visas som ett emblem @@ -316,6 +318,7 @@ sv: status_page_url: URL för statussida theme: Standardtema thumbnail: Serverns tumnagelbild + thumbnail_description: Miniatyrbilders alternativa text trendable_by_default: Tillåt trender utan föregående granskning trends: Aktivera trender wrapstodon: Aktivera Wrapstodon @@ -386,6 +389,7 @@ sv: role: Roll time_zone: Tidszon user_role: + collection_limit: Maximalt antal samlingar per användare color: Emblemsfärg highlighted: Visa roll som emblem på användarprofiler name: Namn From 03045425b7323e8ce4e6ce81942d798a500c655a Mon Sep 17 00:00:00 2001 From: Echo Date: Tue, 28 Apr 2026 14:37:58 +0200 Subject: [PATCH 295/335] Allow keyboard modal form submission (#38826) --- .../form_fields/text_input.module.scss | 5 ++++- .../mastodon/components/modal_shell/index.tsx | 20 ++++++++++--------- .../account_timeline/modals/join_modal.tsx | 2 +- .../confirmation_modal.tsx | 3 ++- 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/javascript/mastodon/components/form_fields/text_input.module.scss b/app/javascript/mastodon/components/form_fields/text_input.module.scss index 105b956cc55319..cbb45e0a3a04a6 100644 --- a/app/javascript/mastodon/components/form_fields/text_input.module.scss +++ b/app/javascript/mastodon/components/form_fields/text_input.module.scss @@ -1,7 +1,6 @@ .input { box-sizing: border-box; display: block; - resize: vertical; width: 100%; padding: 10px 16px; font-family: inherit; @@ -50,6 +49,10 @@ } } +textarea.input { + resize: vertical; +} + .iconWrapper { position: relative; } diff --git a/app/javascript/mastodon/components/modal_shell/index.tsx b/app/javascript/mastodon/components/modal_shell/index.tsx index 8b060875327451..df8be5ef1f1e81 100644 --- a/app/javascript/mastodon/components/modal_shell/index.tsx +++ b/app/javascript/mastodon/components/modal_shell/index.tsx @@ -1,16 +1,17 @@ import classNames from 'classnames'; +import { polymorphicForwardRef } from '@/types/polymorphic'; + interface ModalShellProps { className?: string; children?: React.ReactNode; } -export const ModalShell: React.FC = ({ - children, - className, -}) => { - return ( -
    ( + ({ as: Comp = 'form', children, className, ...restProps }, ref) => ( + = ({ )} > {children} -
    - ); -}; + + ), +); +ModalShell.displayName = 'ModalShell'; export const ModalShellBody: React.FC = ({ children, diff --git a/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx index 0d21c82482137f..e5401fbebe6d1d 100644 --- a/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx +++ b/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx @@ -97,7 +97,7 @@ export const AccountJoinModal: FC<{ }, [anniversary, handle, dispatch, isMe]); return ( - + diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx index b0397f4d7be8f1..1dbc19ea3bff13 100644 --- a/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/confirmation_modal.tsx @@ -65,7 +65,7 @@ export const ConfirmationModal: React.FC< }, [onClose, onSecondary]); return ( - +

    {title}

    {message &&

    {message}

    } @@ -99,6 +99,7 @@ export const ConfirmationModal: React.FC< {/* eslint-disable jsx-a11y/no-autofocus -- we are in a modal and thus autofocusing is justified */}
    eiy1gk@WlaY@4nUUE@SxeC8g10c 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�_ZHFxXF2m5#F!~eL* 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�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%0DF|T4`efn(w@0z1l1w| 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

    _~ki;@Te>X z7ve^PvVBEU{^h;dV!NdgYZvE20k9+jG;$5#D}ef>wMmMo`c!opg8Y!XNIH^a+x2!$ zzQ(%T;Jg($3JYa#{{XDxMtKB3h$vIy_~Sgz)p}Rr3?}n2Rw_OQcX(BpyO$KKdEBgHN$kGaO#E2t3Y7J&;@Dt?BsN%13NtuS+c@2>=T^iM znv)=iY;BqVMREd5NFq^;Aea1D>rB*KdqJaj)h(y2?uS|pLl<>?1|)|3c{k6g`W&YT zPguo;z3hquRrbkSEZH#3Z3qz^E@T6Uw37kber`kAh}*)pF(@ffRyq({Ad~HM2JX1) zk+1EfX;2w6^A0M@ z_;zZB6I)P8W#;NUTjuA&YI(JK)1YO5j`Rh?1Nxgupc{_($XWwkd->E!(LlC2G>Sp0y;8jj)3OP5Q+hwUXD5|1RtYEXj## zEsDD`CZH;Zi4)tPidv3S!`8dohMzLf0X6YlO_7%!`y6oBm&VKybKT0tiMiIUjKkvh z6tr=joPf7r$G7GrEoF;W;iE{t_F1zTedab?t2C`9YuxePdY8%FkV1r{P7@s`?G7hF zfL|!c*~)=dPrUHi(@#ZG#H|%Qu?|V>8T0q`)|w2hW1^fD=U)R;6%H(CD<;CRe&?!_ z0-E&Ve#tfO=m@el+qN&vn9nnH&5bVj_O#p(PyCt(+QRpqg(!w`8MzAa`TXVAaCJ0SQygDGIJbmefl7Qe;gd5|uiC|B`=&S1*sZ?2}6$5!hcOf|V1ctDMo$rFs9L!MfjXrEzn zt=_2!lRunLy*B$!{{rbHp2J9}kxU&tOOnC#g3as7X_elpEeymeBhmX@V`wq8Fk4e*Jl@hscEKRAu&iE1Qv$5DqqngPI0@zj6V0HCeWOP1LIPf9sA ztK7^QiRVhjF0|den=BKpHhI8uw$f=LKHgMrjn>@tyZBryhMrO5C_Dm0p(IX(_^yqi+x%V++mYL$@|sMDXBM$MdRO^?|ZGC&`jy3only zOZPdq#y}FHS@(X@AyS;_%)UF=ZWtD|9~-RHJFnyHwAQir>B@o2vJrE#P_HBU1IqBb z+ui!dnr{7AM|EovJTCH=fQRV=3Y~3xbX$Oj9o{`_IWA=4^`l_XqGFK!SNwP)Nn*+2 zYK-NtzK3@OlpHODuU8gmE&Ad4zE3GWO(7h;9#Ye&jIq-P9jMN#k)3e}2t`i=V=3p2 zqlTsqjh9fP(p~OAjYqvQ4X@6p7If<@N$1rZ48LCRMDLJfZq9n(lO3;zz;8O9<{kvV z6!rj*U0g8g#yn+-Wo(G;?horsrT8O>BvE)j{#jYDz~^Ko=u|why3QOGK;WZbtcOl656LtLLwe;9nwtOHzRb@)mGyR2yY%GqB>eEJ+Na>0qO zTugJjT4?}q>^;LzzQe_{ckXH7$)R5QBxw+**0dl>B1q7u*h$aPAOZ-YWn{hL)hu-B zQtdsvV!o1ZkU<+Av{Rx6R^fEB1h>?CCO3NFPeCbP?w>)n$Y9Ag-uPPlJ;gNbq{76g zmq#ZZnsSTrCUXCC$9Y8^>91=C5nx}tLy>2#kN#MBYcaOFw)&gZ-c!Nh8o$#Y1INSW z140Hs*Nm@G)_tQCefCWOFK__jF2lT~Vj>e+cN>w&WllCw#Wb#KibrX%6gqZ(*AQNU zP;lLH#|0jE_GO6n>@LoLK&&>WMtXcdQ+YrLGI_0bUVeL;8pSo1MXc?<<@xje44ee4 z%L^u}WMOSLkAb-67Um})!-pWQJbR3OgRygySRVf87Rysp!Qr<>o%Y=;U@{DNR|b!) zz~;A37FgMUiV;Qi7~Ykp3Yk6t9#g0kt)PF?=E^eNCIqCoa<~1Jilq?rDNy;wJrEIN zU{(&)r2%o`0EZ^VlC7!a3Q%?#WGTeyBr>%I8E7g?m8-9=i8uWNM0ekl;hy){xcD$c zyOvG1Vv=7?cU97*AMIcdYO^tderUcFJH%r29K$@I7guBTa$3KP&cbMxf|SKMU$y1z z$?YW+*}4H4iLBPaT=NhX31Bw}u0nO2!B>*ZeFGC&jSWNgC< zQ)SuHSc?Wu)`Ow}GFTJ?T7@u0d96ZQrOHpB=n8I*1rxEZ4s4KCv7^1Zu<%{k19$tmvovOeYM ztMXhUHF-*v_LgMmMTaM0dCr|x(r@BNH6+qimvM?Hgu8ui;cC}!p69=xQk@h1nJtf*G?6iit(=*a z!|hSv@~rajR0QTuetis`xP#||O`L0>4TEzSz{n!k?F5dkEK&-dgvd7$)BsHRX~yY-k;i64@1GRsJ0xDGWbY{Q#Wl&F zv)kHzqsZTz+JBO{99sMA==~$d2F}4pOQ#1x#t1ZtWl5+$xxd&9z_RZKiIUg7bu3C6 z%c2}yUd0lBLY44=*kct4iOg%EUEmO^n6N;@wOEVzdzX=rDt#x!-%>>W zsKtdXgvXcsfBN{)o}ggc1io=k zK-LM8F!r(If$hO8JNTGbx6gHVu!Vb&779EQG^}*qUujVWSq^;8olxLz0}e3kZ0ej_ z2$PQ~c{-OAS0kS5U%H^kyAb>8f>l2o;|`QjRs*CKgp?tS)Op%3?iS>CaLAy?*Pp($E z?T!n0*924!0d*Fz%TCy;bAh){df|68{-yFoie4n$syB0-PZ9hgdT*~yUgi3g?Fp@8 z7m{Aun(18Jp|$H@4Fb6=ZjR?AP|dpUYD@WuQ=15pZ0_ilJMd6C+F>e{6*&B2Kayidb zZrgq1Z^v&BRbZ1@g)O) z{LfzMuW&C3^(YwXBo1wXL@(_N^a~0XVm=6VoMt%;f*V?2zqDk{#IX!`#Uuf1(FJTp zD$;|$nY;f&*u&hR4_WkyT*`h%1c<&sPgDhVJBHq3Ti;ymezR>5T!L|{nt!wF@0-Q6 zqPCL(S3ZQ3N_p#9KqcV~xPZQ6U+8&)8sY=#;$Kp19QWUSjF}_Syr{I(hB=#j_Dz2t zPy!;~4l?F4Deg>r>=Q~k?GSXgr_BrdX>f*dmV4nG<{!YJQWU&~uI0&43_(Ej@ zgyYP)*Uu?gMOnf_DvV?z4(Hu2+%^i_lLruQPp2?6Y=EWyKm{73C$0#mYw95|}2nxt^5#4IYf&M@u z7h*gi@v=TkyPTE!=G|01O`;)d=KO2vM>mPw7XY4&A`MKWJs8gext)%kEswQeKa;+` zum}aq6fr??(;ycLH8>BT@)&MIFY{+$xNHntl)W=_Kl_HoPk$_p3s0JtZwkrZ<)s1u zDX|$g;Sw~d_&+3u;z-qX8_?eG+)_-tEacsob9}jOC%|*!&>>BezYBGk8+P5`6T!O= z8$)ap!$!)n4fRi#DPv>H9Y*AbrJ9o+>9 z--Xgr3!;4FkU}h37p%*Bt&$GBT9#xSHs_`=ri}$VEhQ~VE}Sp{Yi)s%aL{LWS!w(kVGuaYHEJ@!c8CsD>vTE=xMlcZ;zCI;=D--d^kS~8Ph7y zvF$~v_Fvkj)Md(=|3y5h1{u+%|KuUwPrV&hH;QXm?T}p?kCc857ua$+> zz9HQz9U(y`Z@q6+i*3?bz@)P5Y|QJb?u{c^3f)OcubFRM*TpaF(S>J`GJ$G2g-HGU z(o4xU&lUJKN;x^ePp1tF=)jx?_8DK&66(vbP)45B0md3W{9pfrR>G6O)cc(cH);C2 zivg8WPhLkGmHoQ|Jn;0bVVaD@nk*{|)c(4(*GxvZW9a*VYADzvCu|3GT^jaTyzx*| z*P*4?Yj(U?RT=PlmySbu%Il?2liUe+-}J@jAH+?w@XL&yAx!)hcyY|;;`#xX-%(BU z)GDiO1kwhG31Q^%0#wR1aw35WA)wR(rald#YeO*5-!MnC-tGDr5db=s-sZ*z{R#zY zxJv}@>#acMJ!;M~lm>`Vr+ii=Zv?EBeLpBCaj21fq(tWWzTJ5yyaK`RftExN_vBjs z$(ch%QT7@?PN*+PoDHIs&&)}Jj3;Z+n6brG9|!$mT@3Ix2Gkmvq4fQeUE_=;32Z_F z$r1oe2XVi#=iObovWX1k^8Hg`R{TPS4wdPi2067aEAp<6P6BWJ{5R#qT~G_QUQ>ve zvzIOnf=PQkKyc$vYY-nswk6SV!sdai8~?1@M_`98y*)NJ!;AAtTjO~uN$=6ZZoj`G z{o_UO@k1}t?2bOd?0N9&GuUbnnuHZt1%6jGX?zI%eZ%zspoj|RBqPpv)>lW5BK=anUkdyu-n^iw5+wy znzq+Ew#rru5ajdS7Oxj56fhhCgvsI)*RXwAaHwJO@|xxV8>QsglDMu#&cj$AoNa2? zcIRj~my}}krPOz1B46A7KlsyJ+op+{?xcpx9z}b`JoXmt&gV4Dd2}XJay?HdXn}JI zmGuG|k?ArGei{z(qv#d0Z`Ypb#(p2w3`{7{AfNstC=NU`I@TJVKiul2h$vT=eg==~ z$dahgWthiuus7?-7ug6aeS>J>9Ka-at*xd%XHmrz<50N}I*Ak1I-f{gU+^e@*1Ug! z)cVVEm0-jjDD(N+}T4ggq4Qbhbqac>*h+yiw#mj-b`zO`BV z+dL-1Qo8O_ol|aRPb^mKajeNYP~twxR^oiR!57FVov{`q_M0x_&vz+lbm_{$o zmT_tFACPcCM?n<3KU6{$?;Nb5$VF$Y&+QJ*CJzK3;rP#;amXxYhs96SOkqz;L=S2n z%OpSYJ8~@if=sOY^L~i$0sy9-h>fBHWzjFZ`-3~qJ0wS=1<;4T=?Du(4V4KM{ny8Tz|y{C&R<2b;>uUjSW;$G+scHql)gUM0tz3l?MdhZRo-|`wHvr$ zs~RqO^-AuH+(Bdn3m4`Z&@bU&Z*|C-(GvAojm~2{J{i}e>JC=I*m1zwP{|B|o!fyo zo2%r#_nltcw9c5=kQXIZ`fkEKg~!no@6Lpucx|a*LM(Q{2KsZ)1RrDobARnc_(QZ# zY_+?o%?QO@LPk(b`YUzRdfB~~k_X~R{pig`h`EiJgczGHM&<2T)%W$+p-DI?i`4-- zh0wAU#YMbWCG(goq9vCvPTSsM%J&GNSNjVqF~KawQWMKYe;;Z8K-QRdpG-+6MbhNO zMa6~Gw1(qh&P62qFG|wV=>Q6BFvj9jl%K<%0V%}?-6*poX9^T-on(o-dPtU^2*+x9 z(wo?vZxiVep8{F3AGnY0h;v4IG?olcey6yH3*ztBy@02aR$%35=~RaJp4DJ<4Vnp; z$>^K<2ht~0amDlj9z7@v(-JBcq%0AK3`W_agFheaJvJa4*=9NlAj8blWF-=xI_L0R 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

    uiEtM)nt}grk*&uU4z4O1DmgZvE%73Iwb&=-<*Q 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�tcqB-!DWX9B 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%0A{FX-$KXC-{BrF_4_Kw@KZ@>= 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%0AQ>}@&zRmbp3_9(Zo+{2W5VsbZ^ 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

    Ag)kk=zS8zWqP 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%0A(&ECF3Fc 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

    ); diff --git a/app/javascript/mastodon/features/account_edit/components/tag_search.tsx b/app/javascript/mastodon/features/account_edit/components/tag_search.tsx index 2dd17c2a7284cf..04befb46903e78 100644 --- a/app/javascript/mastodon/features/account_edit/components/tag_search.tsx +++ b/app/javascript/mastodon/features/account_edit/components/tag_search.tsx @@ -4,6 +4,7 @@ import { useCallback, useId, useState } from 'react'; import { defineMessages, useIntl } from 'react-intl'; import { Combobox } from '@/mastodon/components/form_fields'; +import { ComboboxMenuItem } from '@/mastodon/components/form_fields/combobox_field'; import { useSearchTags } from '@/mastodon/hooks/useSearchTags'; import type { TagSearchResult } from '@/mastodon/hooks/useSearchTags'; import { addFeaturedTags } from '@/mastodon/reducers/slices/profile_edit'; @@ -77,4 +78,6 @@ export const AccountEditTagSearch: FC = () => { ); }; -const renderItem = (item: TagSearchResult) => item.label ?? `#${item.name}`; +const renderItem = (item: TagSearchResult) => ( + {item.label ?? `#${item.name}`} +); diff --git a/app/javascript/mastodon/features/collections/editor/accounts.tsx b/app/javascript/mastodon/features/collections/editor/accounts.tsx index a51f58c236f07f..dddd0242e040c7 100644 --- a/app/javascript/mastodon/features/collections/editor/accounts.tsx +++ b/app/javascript/mastodon/features/collections/editor/accounts.tsx @@ -6,6 +6,7 @@ import { useHistory } from 'react-router-dom'; import type { Map as ImmutableMap } from 'immutable'; +import { useComboboxItemProps } from '@/mastodon/components/form_fields/combobox_field'; import type { ApiMutedAccountJSON } from 'mastodon/api_types/accounts'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import { AccountListItem } from 'mastodon/components/account_list_item'; @@ -67,18 +68,18 @@ const AddedAccountItem: React.FC<{ const SuggestedAccountItem: React.FC<{ id: string }> = ({ id }) => { const account = useAccount(id); const handle = useAccountHandle(account, domain); + const comboboxItemProps = useComboboxItemProps(); if (!account) return null; return ( - } - > - - - - +
  • + }> + + + + +
  • ); }; @@ -158,11 +159,13 @@ const renderGroupTitle = (groupKey: GroupKey, titleId: string) => { } return ( - - - {title} - - +
  • + + + {title} + + +
  • ); }; diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index ae944ba41f60d8..42ef8db97049ea 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -6,6 +6,7 @@ import { useHistory } from 'react-router-dom'; import { isFulfilled } from '@reduxjs/toolkit'; +import { ComboboxMenuItem } from '@/mastodon/components/form_fields/combobox_field'; import { languages } from '@/mastodon/initial_state'; import { hasSpecialCharacters, @@ -373,7 +374,9 @@ const TopicField: React.FC = () => { ); }; -const renderTagItem = (item: TagSearchResult) => item.label ?? `#${item.name}`; +const renderTagItem = (item: TagSearchResult) => ( + {item.label ?? `#${item.name}`} +); const LanguageField: React.FC = () => { const dispatch = useAppDispatch(); diff --git a/app/javascript/mastodon/features/collections/editor/styles.module.scss b/app/javascript/mastodon/features/collections/editor/styles.module.scss index 1befc06cc168b0..d4b1d2d7f34be4 100644 --- a/app/javascript/mastodon/features/collections/editor/styles.module.scss +++ b/app/javascript/mastodon/features/collections/editor/styles.module.scss @@ -60,17 +60,20 @@ } .suggestion { - padding: 4px 0; + cursor: pointer; + user-select: none; + border-bottom: 1px solid var(--color-border-primary); - [aria-disabled='true'] & { + &[data-highlighted='true'] { + background: var(--color-bg-overlay-highlight); + } + + &[aria-disabled='true'] { opacity: 0.6; + cursor: not-allowed; } } .suggestionGroup { - padding: 4px 0; - - // Undo default group styles: - font-weight: 400; - text-transform: none; + padding-bottom: 4px; } From a3127a146dc7dd0b10c8955fc8a08517f31b0289 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 22 Apr 2026 12:42:55 +0200 Subject: [PATCH 262/335] New Crowdin Translations (automated) (#38774) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/is.json | 42 ++++++++++++------------- app/javascript/mastodon/locales/sv.json | 4 +++ config/locales/is.yml | 4 +-- config/locales/simple_form.sv.yml | 3 ++ 4 files changed, 30 insertions(+), 23 deletions(-) diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 5b4a08cbda703b..b5aad95625eae0 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -13,12 +13,12 @@ "about.not_available": "Þessar upplýsingar hafa ekki verið gerðar aðgengilegar á þessum netþjóni.", "about.powered_by": "Dreifhýstur samskiptamiðill keyrður með {mastodon}", "about.rules": "Reglur netþjónsins", - "account.account_note_header": "Einkaminnispunktur", + "account.account_note_header": "Mínir minnispunktar", "account.activity": "Virkni", - "account.add_note": "Bæta við einkaminnispunkti", + "account.add_note": "Bæta við persónulegum minnispunkti", "account.add_or_remove_from_list": "Bæta við eða fjarlægja af listum", "account.badges.admin": "Stjóri", - "account.badges.blocked": "Lokað á", + "account.badges.blocked": "Útilokað", "account.badges.bot": "Yrki", "account.badges.domain_blocked": "Útilokað lén", "account.badges.group": "Hópur", @@ -28,13 +28,13 @@ "account.block_domain": "Útiloka lénið {domain}", "account.block_short": "Útiloka", "account.blocked": "Útilokaður", - "account.blocking": "Útilokun", + "account.blocking": "Útilokað", "account.cancel_follow_request": "Taka fylgjendabeiðni til baka", "account.copy": "Afrita tengil í notandasnið", "account.direct": "Einkaspjall við @{name}", "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn", - "account.domain_blocking": "Útiloka lén", - "account.edit_note": "Breyta einkaminnispunkti", + "account.domain_blocking": "Útilokað lén", + "account.edit_note": "Breyta persónulegum minnispunkti", "account.edit_profile": "Breyta notandasniði", "account.edit_profile_short": "Breyta", "account.enable_notifications": "Láta mig vita þegar @{name} sendir inn", @@ -55,8 +55,8 @@ "account.filters.replies_toggle": "Birta svör", "account.follow": "Fylgjast með", "account.follow_back": "Fylgjast með til baka", - "account.follow_back_short": "Fylgjast með til baka", - "account.follow_request": "Beiðni um að fylgjast með", + "account.follow_back_short": "Fylgja líka", + "account.follow_request": "Beiðni um að fylgja", "account.follow_request_cancel": "Hætta við beiðni", "account.follow_request_cancel_short": "Hætta við", "account.follow_request_short": "Beiðni", @@ -90,7 +90,7 @@ "account.menu.note.description": "Einungis sýnilegt þér", "account.menu.open_original_page": "Skoða á {domain}", "account.menu.remove_follower": "Fjarlægja fylgjanda", - "account.menu.report": "Kæra aðgang", + "account.menu.report": "Tilkynna aðgang", "account.menu.share": "Deila…", "account.menu.show_reblogs": "Sýna endurbirtingar í tímalínu", "account.menu.unblock": "Aflétta útilokun aðgangs", @@ -102,7 +102,7 @@ "account.mute_short": "Þagga niður", "account.muted": "Þaggaður", "account.muting": "Þöggun", - "account.mutual": "Þið fylgist með hvor öðrum", + "account.mutual": "Þið fylgið hvor öðrum", "account.name.copy": "Afrita kennislóð", "account.name.help.domain": "{domain} er netþjónninn sem hýsir upplýsingasnið um notandann og færslurnar hans.", "account.name.help.domain_self": "{domain} er netþjónninn þinn sem hýsir upplýsingasniðið þitt og færslurnar þínar.", @@ -125,7 +125,7 @@ "account.remove_from_followers": "Fjarlægja {name} úr fylgjendum", "account.report": "Kæra @{name}", "account.requested_follow": "{name} hefur beðið um að fylgjast með þér", - "account.requests_to_follow_you": "Bað um að fylgjast með þér", + "account.requests_to_follow_you": "Bað um að fylgja þér", "account.share": "Deila notandasniði fyrir @{name}", "account.show_reblogs": "Sýna endurbirtingar frá @{name}", "account.statuses_counter": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", @@ -402,7 +402,7 @@ "collections.new_collection": "Nýtt safn", "collections.no_collections_yet": "Engin söfn ennþá.", "collections.remove_account": "Fjarlægja", - "collections.report_collection": "Kæra þetta safn", + "collections.report_collection": "Tilkynna þetta safn", "collections.revoke_collection_inclusion": "Fjarlægja mig úr þessu safni", "collections.revoke_inclusion.confirmation": "Þú varst fjarlægð/ur úr \"{collection}\"", "collections.revoke_inclusion.error": "Upp kom villa, reyndu aftur síðar.", @@ -412,8 +412,8 @@ "collections.share_short": "Deila", "collections.suggestions.can_not_add": "Er ekki hægt að bæta við", "collections.suggestions.can_not_add_desc": "Þessir aðgangar gætu hafa skráð sig úr almennri birtingu eða gætu verið á netþjónum sem ekki styðja söfn.", - "collections.suggestions.must_follow": "Verður fyrst að fylgjast með", - "collections.suggestions.must_follow_desc": "Þessir aðgangar yfirfara allar beiðnir um að fylgjast með. Fylgjendur geta bætt þeim í söfn.", + "collections.suggestions.must_follow": "Verður fyrst að fylgja", + "collections.suggestions.must_follow_desc": "Þessir aðgangar yfirfara allar beiðnir um að fylgja þeim. Fylgjendur geta bætt þeim í söfn.", "collections.topic_hint": "Bættu við myllumerki sem hjálpar öðrum að skilja aðalefni þessa safns.", "collections.topic_special_chars_hint": "Sérstafir verða fjarlægðir við vistun", "collections.unlisted_collections_description": "Þessi birtast ekki öðrum á notandasíðunni þinni. Þeir sem eru með tengil á þau geta séð þau.", @@ -508,9 +508,9 @@ "confirmations.discard_draft.post.title": "Henda drögum að færslunni þinni?", "confirmations.discard_edit_media.confirm": "Henda", "confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?", - "confirmations.follow_to_list.confirm": "Fylgjast með og bæta á lista", - "confirmations.follow_to_list.message": "Þú þarft að fylgjast með {name} til að bæta viðkomandi á lista.", - "confirmations.follow_to_list.title": "Fylgjast með notanda?", + "confirmations.follow_to_list.confirm": "Fylgja og bæta á lista", + "confirmations.follow_to_list.message": "Þú þarft að fylgja {name} til að bæta viðkomandi á lista.", + "confirmations.follow_to_list.title": "Fylgja notanda?", "confirmations.hide_featured_tab.confirm": "Fela flipa", "confirmations.hide_featured_tab.intro": "Þú getur breytt þessu hvenær sem er í Breyta notandasniði > Stillingar notandasniðsflipa.", "confirmations.hide_featured_tab.message": "Þetta mun fela flipann fyrir notendum á {serverName} og öðrum netþjónum sem nota nýjustu útgáfuna af Mastodon. Birting í öðrum viðmótum gæti verið á ýmsan máta.", @@ -536,7 +536,7 @@ "confirmations.redraft.message": "Ertu viss um að þú viljir eyða þessari færslu og enduvinna drögin? Eftirlæti og endurbirtingar munu glatast og svör við upprunalegu færslunni munu verða munaðarlaus.", "confirmations.redraft.title": "Eyða og byrja ný drög að færslu?", "confirmations.remove_from_followers.confirm": "Fjarlægja fylgjanda", - "confirmations.remove_from_followers.message": "{name} mun hætta að fylgjast með þér. Ertu viss um að þú viljir halda áfram?", + "confirmations.remove_from_followers.message": "{name} mun hætta að fylgja þér. Ertu viss um að þú viljir halda áfram?", "confirmations.remove_from_followers.title": "Fjarlægja fylgjanda?", "confirmations.revoke_collection_inclusion.confirm": "Fjarlægja mig", "confirmations.revoke_collection_inclusion.message": "Þessi aðgerð er varanleg og umsjónaraðili safnsins mun ekki geta bætt þér aftur við síðar.", @@ -547,9 +547,9 @@ "confirmations.unblock.confirm": "Aflétta útilokun", "confirmations.unblock.title": "Aflétta útilokun á {name}?", "confirmations.unfollow.confirm": "Hætta að fylgja", - "confirmations.unfollow.title": "Hætta að fylgjast með {name}?", + "confirmations.unfollow.title": "Hætta að fylgja {name}?", "confirmations.withdraw_request.confirm": "Taka beiðni til baka", - "confirmations.withdraw_request.title": "Taka aftur beiðni um að fylgjast með {name}?", + "confirmations.withdraw_request.title": "Taka aftur beiðni um að fylgja {name}?", "content_warning.hide": "Fela færslu", "content_warning.show": "Birta samt", "content_warning.show_more": "Sýna meira", @@ -1113,7 +1113,7 @@ "report.category.title_account": "notandasnið", "report.category.title_status": "færsla", "report.close": "Lokið", - "report.collection_comment": "Hvers vegna viltu kæra þetta safn?", + "report.collection_comment": "Afhverju viltu tilkynna þetta safn?", "report.comment.title": "Er eitthvað annað sem þú heldur að við ættum að vita?", "report.forward": "Áframsenda til {target}", "report.forward_hint": "Notandaaðgangurinn er af öðrum vefþjóni. Á einnig að senda nafnlaust afrit af kærunni þangað?", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index a506b47f8df1f1..c75413b338d336 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -410,6 +410,10 @@ "collections.search_accounts_max_reached": "Du har lagt till maximalt antal konton", "collections.sensitive": "Känsligt", "collections.share_short": "Dela", + "collections.suggestions.can_not_add": "Kan inte läggas till", + "collections.suggestions.can_not_add_desc": "Dessa konton kan ha valt bort upptäckt, eller kan de vara på en server som inte stöder samlingar.", + "collections.suggestions.must_follow": "Måste följa först", + "collections.suggestions.must_follow_desc": "Dessa konton granskar alla följa förfrågningar. Följare kan lägga till dem i samlingar.", "collections.topic_hint": "Lägg till en hashtagg som hjälper andra att förstå huvudämnet i denna samling.", "collections.topic_special_chars_hint": "Specialtecken kommer att tas bort när du sparar", "collections.unlisted_collections_description": "Dessa visas inte på din profil till andra. Vem som helst med länken kan upptäcka dem.", diff --git a/config/locales/is.yml b/config/locales/is.yml index ffab72f4cbaeb8..ec09080cc3d0c8 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -679,7 +679,7 @@ is: suspend_description_html: Notandaaðgangurinn og allt efni á honum mun verða óaðgengilegt og á endanum eytt út og samskipti við aðganginn verða ekki möguleg. Hægt að afturkalla innan 30 daga. Lokar öllum kærum gagnvart þessum aðgangi. actions_description_html: Ákveddu til hvaða aðgerða eigi að taka til að leysa þessa kæru. Ef þú ákveður að refsa kærða notandaaðgangnum, verður viðkomandi send tilkynning í tölvupósti, nema ef flokkurinn Ruslpóstur sé valinn. actions_description_remote_html: Ákveddu til hvaða aðgerða eigi að taka til að leysa þessa kæru. Þetta mun aðeins hafa áhrif á hvernig netþjónninn þinn meðhöndlar þennan fjartengda aðgang og efnið á honum. - actions_no_posts: Þessi kæra er ekki með neinar tengdar færslur til að eyða + actions_no_posts: Þessi tilkynning er ekki með neinar tengdar færslur til að eyða add_to_report: Bæta fleiru í kæru already_suspended_badges: local: Þegar frystur á þessum netþjóni @@ -884,7 +884,7 @@ is: public: Allir landing_page: values: - about: Um hugbúnaðinn + about: Um local_feed: Staðbundið streymi trends: Vinsælt registrations: diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml index 737048e8908846..911622a82f244a 100644 --- a/config/locales/simple_form.sv.yml +++ b/config/locales/simple_form.sv.yml @@ -61,6 +61,9 @@ sv: setting_default_quote_policy_private: Inlägg som endast är för följare och som författats på Mastodon kan inte citeras av andra. setting_default_quote_policy_unlisted: När folk citerar dig, kommer deras inlägg också att döljas från trendande tidslinjer. setting_default_sensitive: Känslig media döljs som standard och kan visas med ett klick + setting_display_media_default: Varna innan du visar media markerad som känslig + setting_display_media_hide_all: Varna innan du visar alla medier + setting_display_media_show_all: Visa alla medier utan varning, inklusive media markerad som känslig setting_emoji_style: Hur emojier visas. "Automatiskt" kommer att försöka använda webbläsarens emojier, men faller tillbaka till Twemoji för äldre webbläsare. setting_quick_boosting_html: När aktiverad, klicka på %{boost_icon} Boost-ikonen för att omedelbart boosta istället för att öppna boost/citera-rullgardinsmenyn. Flyttar citering till %{options_icon} (Alternativ)-menyn. setting_system_scrollbars_ui: Gäller endast för webbläsare som är baserade på Safari och Chrome From 58df263159e2c7221b994521ccbeda4edb31932c Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Wed, 22 Apr 2026 12:44:36 +0200 Subject: [PATCH 263/335] Make old migration more robust (#38775) --- .../20220617202502_migrate_roles.rb | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/db/post_migrate/20220617202502_migrate_roles.rb b/db/post_migrate/20220617202502_migrate_roles.rb index 950699d9c99af5..620d7d54b9b4af 100644 --- a/db/post_migrate/20220617202502_migrate_roles.rb +++ b/db/post_migrate/20220617202502_migrate_roles.rb @@ -7,7 +7,7 @@ class UserRole < ApplicationRecord; end class User < ApplicationRecord; end def up - load Rails.root.join('db', 'seeds', '03_roles.rb') + create_user_roles owner_role = UserRole.find_by(name: 'Owner') moderator_role = UserRole.find_by(name: 'Moderator') @@ -24,4 +24,30 @@ def down User.where(role_id: [admin_role.id, owner_role.id]).in_batches.update_all(admin: true) if admin_role User.where(role_id: moderator_role.id).in_batches.update_all(moderator: true) if moderator_role end + + private + + def create_user_roles + now = Time.zone.now.to_fs(:db) + + safety_assured do + execute <<~SQL.squish + INSERT INTO user_roles ( id, permissions, created_at, updated_at ) + VALUES ( -99, 65536, '#{now}', '#{now}' ) + ON CONFLICT DO NOTHING + SQL + + [ + ['Moderator', 10, 1308], + ['Admin', 100, 983_036], + ['Owner', 1000, 1], + ].each do |name, position, permissions| + execute <<~SQL.squish + INSERT INTO user_roles ( name, position, highlighted, permissions, created_at, updated_at ) + SELECT '#{name}', #{position}, true, #{permissions}, '#{now}', '#{now}' + WHERE NOT EXISTS ( SELECT 1 FROM user_roles WHERE name = '#{name}' ) + SQL + end + end + end end From bc09d3c5f2e48895d686f550a21af6c8155f2485 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 22 Apr 2026 13:31:14 +0200 Subject: [PATCH 264/335] Removes React Toggle library (#38771) Co-authored-by: diondiondion --- .../components/form_fields/toggle.module.css | 19 +++++++------- .../components/form_fields/toggle_field.tsx | 13 ++++------ .../components/column_settings.jsx | 2 +- .../mastodon/features/lists/new.tsx | 8 +++--- .../components/checkbox_with_label.tsx | 2 +- .../components/setting_toggle.jsx | 4 +-- .../mastodon/features/onboarding/profile.tsx | 8 +++--- .../mastodon/features/report/comment.tsx | 3 +-- package.json | 2 -- yarn.lock | 26 +------------------ 10 files changed, 31 insertions(+), 56 deletions(-) diff --git a/app/javascript/mastodon/components/form_fields/toggle.module.css b/app/javascript/mastodon/components/form_fields/toggle.module.css index 997434f336e2e8..b1f7e71b9fc5d8 100644 --- a/app/javascript/mastodon/components/form_fields/toggle.module.css +++ b/app/javascript/mastodon/components/form_fields/toggle.module.css @@ -1,3 +1,13 @@ +.wrapper { + --diameter: 20px; + --padding: 2px; + --transition: 0.2s ease-in-out; + + display: inline-block; + position: relative; + height: calc(var(--diameter) + var(--padding) * 2); +} + .input { position: absolute; opacity: 0; @@ -9,10 +19,6 @@ } .toggle { - --diameter: 20px; - --padding: 2px; - --transition: 0.2s ease-in-out; - display: inline-flex; align-items: center; border-radius: 9999px; @@ -68,8 +74,3 @@ :global([dir='rtl']) .input:checked + .toggle::before { transform: translateX(calc(-1 * (var(--diameter) - (var(--padding) * 2)))); } - -.wrapper { - display: inline-block; - position: relative; -} diff --git a/app/javascript/mastodon/components/form_fields/toggle_field.tsx b/app/javascript/mastodon/components/form_fields/toggle_field.tsx index 75fdb8f21bd770..3de09823d3e19e 100644 --- a/app/javascript/mastodon/components/form_fields/toggle_field.tsx +++ b/app/javascript/mastodon/components/form_fields/toggle_field.tsx @@ -31,20 +31,17 @@ ToggleField.displayName = 'ToggleField'; export const Toggle = forwardRef( ({ className, size, ...otherProps }, ref) => ( - + -
    {hasGroups ? ( @@ -592,10 +595,20 @@ Combobox.displayName = 'Combobox'; const StatusMessageWrapper: React.FC<{ showStatus: boolean; status: string; + isLoading: boolean; children: React.ReactNode; -}> = ({ showStatus, status, children }) => { +}> = ({ showStatus, status, isLoading, children }) => { if (showStatus) { - return {status}; + return ( + + {isLoading && ( + + + + )} + {status} + + ); } return children; diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index 42ef8db97049ea..580502780cca9a 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -331,6 +331,10 @@ const TopicField: React.FC = () => { [topic], ); + const isCurrentTopicOnlySuggestion = + tags.length === 1 && tags[0]?.id === 'new'; + const hideTagSuggestions = !tags.length || isCurrentTopicOnlySuggestion; + return ( { } : undefined } - suppressMenu={!tags.length} + suppressMenu={hideTagSuggestions} /> ); }; From 5b1891a1aef0a477d598b3a2cfc128a6675abca8 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 22 Apr 2026 16:12:27 +0200 Subject: [PATCH 267/335] Fix confusing hover states in admin list items (#38782) --- app/javascript/styles/mastodon/admin.scss | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index f37aac05340b1e..47bc541cc95a09 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -1106,7 +1106,7 @@ a.name-tag, text-decoration: none; margin-bottom: 10px; - &:hover { + &:where(a):where(:hover, :focus, :active) { color: var(--color-text-brand); } } @@ -1115,14 +1115,6 @@ a.name-tag, vertical-align: middle; } - a.announcements-list__item__title { - &:hover, - &:focus, - &:active { - color: var(--color-text-primary); - } - } - &__action-bar { display: flex; justify-content: space-between; From c4eec632b92c800ae38dba111c4c76e63bb1c0de Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 22 Apr 2026 18:29:29 +0200 Subject: [PATCH 268/335] Makes Vite use browserslist (#38777) --- vite.config.mts | 2 ++ yarn.lock | 14 +++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/vite.config.mts b/vite.config.mts index 0c2b091f178d93..0b14ee8c9467bf 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -6,6 +6,7 @@ import { optimizeLodashImports } from '@optimize-lodash/rollup-plugin'; import babel from '@rolldown/plugin-babel'; import legacy from '@vitejs/plugin-legacy'; import react from '@vitejs/plugin-react'; +import browserslist from 'browserslist'; import postcssPresetEnv from 'postcss-preset-env'; import Compress from 'rollup-plugin-gzip'; import { visualizer } from 'rollup-plugin-visualizer'; @@ -182,6 +183,7 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => { legacy({ renderLegacyChunks: false, modernPolyfills: true, + modernTargets: browserslist.loadConfig({ path: process.cwd() }), }), isProdBuild && (Compress() as PluginOption), command === 'build' && diff --git a/yarn.lock b/yarn.lock index 89b98b98d50eed..141cce79d4d63c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5907,11 +5907,11 @@ __metadata: linkType: hard "baseline-browser-mapping@npm:^2.9.0": - version: 2.9.2 - resolution: "baseline-browser-mapping@npm:2.9.2" + version: 2.10.20 + resolution: "baseline-browser-mapping@npm:2.10.20" bin: - baseline-browser-mapping: dist/cli.js - checksum: 10c0/4f9be09e20261ed26f19e9b95454dcb8d8371b87983c57cd9f70b9572e9b3053577f0d8d6d91297bdb605337747680686e22f62522a6e57ae2488fcacf641188 + baseline-browser-mapping: dist/cli.cjs + checksum: 10c0/3d60c9656c4c4673593aa8d0ae9aa6b69b4e018c2f585874a0e8a40cb28d0559f57ee1b2e7e44cb1e7f6aac66f658a4a3c1285901b8836d8ae31e189e30aa816 languageName: node linkType: hard @@ -6140,9 +6140,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001759, caniuse-lite@npm:^1.0.30001766": - version: 1.0.30001770 - resolution: "caniuse-lite@npm:1.0.30001770" - checksum: 10c0/02d15a8b723af65318cb4d888a52bb090076898da7b0de99e8676d537f8d1d2ae4797e81518e1e30cbfe84c33b048c322e8bfafc5b23cfee8defb0d2bf271149 + version: 1.0.30001790 + resolution: "caniuse-lite@npm:1.0.30001790" + checksum: 10c0/eec0adc1dcb35d51e57bcfa0657493cb57ef43f0ceb03c1edcfee34d43e7a938e6beed2781118c7a5ee99d4f71d443977f08ca5a549005cf89260733af9ad3f8 languageName: node linkType: hard From fdb2563abfb9c1e2707a4d37315c41f66b90a6a5 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 23 Apr 2026 09:36:35 +0200 Subject: [PATCH 269/335] Use `/collections/:id` as canonical URL for a collection (#38783) --- app/controllers/collections_controller.rb | 16 ++++++++++++++-- app/lib/activitypub/tag_manager.rb | 2 +- app/views/admin/collections/show.html.haml | 2 +- app/views/admin/shared/_collection.html.haml | 2 +- config/routes.rb | 4 +++- spec/requests/collections_spec.rb | 18 +++++++++++++++--- .../featured_collection_serializer_spec.rb | 2 +- 7 files changed, 36 insertions(+), 10 deletions(-) diff --git a/app/controllers/collections_controller.rb b/app/controllers/collections_controller.rb index 3e2ba714702d59..70541433f00ef7 100644 --- a/app/controllers/collections_controller.rb +++ b/app/controllers/collections_controller.rb @@ -17,7 +17,10 @@ class CollectionsController < ApplicationController def show respond_to do |format| - # TODO: format.html + format.html do + expires_in expiration_duration, public: true unless user_signed_in? + render template: 'home/index' + end format.json do expires_in expiration_duration, public: true if public_fetch_mode? @@ -28,8 +31,17 @@ def show private + def set_account + if account_id_param.present? + @account = Account.local.find(account_id_param) + else + @collection = Collection.find(params[:id]) + @account = @collection.account + end + end + def set_collection - @collection = @account.collections.find(params[:id]) + @collection ||= @account.collections.find(params[:id]) authorize @collection, :show? rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError not_found diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb index 37c45d68f1a3da..8f062263adf688 100644 --- a/app/lib/activitypub/tag_manager.rb +++ b/app/lib/activitypub/tag_manager.rb @@ -32,7 +32,7 @@ def url_for(target) when :flag target.uri when :featured_collection - account_collection_url(target.account, target) + collection_url(target) end end diff --git a/app/views/admin/collections/show.html.haml b/app/views/admin/collections/show.html.haml index 8f29b26309dc32..bf3665b69a5a65 100644 --- a/app/views/admin/collections/show.html.haml +++ b/app/views/admin/collections/show.html.haml @@ -2,7 +2,7 @@ = t('admin.collections.collection_title', name: @account.pretty_acct) - content_for :heading_actions do - = link_to t('admin.collections.open'), account_collection_path(@account, @collection), class: 'button', target: '_blank', rel: 'noopener' + = link_to t('admin.collections.open'), collection_path(@collection), class: 'button', target: '_blank', rel: 'noopener' %h3= t('admin.collections.contents') diff --git a/app/views/admin/shared/_collection.html.haml b/app/views/admin/shared/_collection.html.haml index e300a986ba6f25..02f22b338be633 100644 --- a/app/views/admin/shared/_collection.html.haml +++ b/app/views/admin/shared/_collection.html.haml @@ -18,5 +18,5 @@  · = t('admin.collections.number_of_accounts', count: collection.accepted_collection_items.size)  · - = link_to account_collection_path(collection.account, collection), class: 'detailed-status__link', target: 'blank', rel: 'noopener' do + = link_to collection_path(collection), class: 'detailed-status__link', target: 'blank', rel: 'noopener' do = t('admin.collections.view_publicly') diff --git a/config/routes.rb b/config/routes.rb index ba0c308d292b17..c3a73f12f4532d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -97,7 +97,6 @@ def redirect_with_vary(path) get '/authorize_follow', to: redirect { |_, request| "/authorize_interaction?#{request.params.to_query}" } concern :account_resources do - resources :collections, only: [:show], constraints: { id: /\d+/ } resources :followers, only: [:index], controller: :follower_accounts resources :following, only: [:index], controller: :following_accounts @@ -125,6 +124,7 @@ def redirect_with_vary(path) scope path: 'ap', as: 'ap' do resources :accounts, path: 'users', only: [:show], param: :id, concerns: :account_resources do + resources :collections, only: [:show], constraints: { id: /\d+/ } resources :collection_items, only: [:show] resources :feature_authorizations, only: [:show], module: :activitypub resources :featured_collections, only: [:index], module: :activitypub @@ -141,6 +141,8 @@ def redirect_with_vary(path) end end + resources :collections, only: [:show] + resource :inbox, only: [:create], module: :activitypub resources :contexts, only: [:show], module: :activitypub, constraints: { id: /[0-9]+-[0-9]+/ } do member do diff --git a/spec/requests/collections_spec.rb b/spec/requests/collections_spec.rb index fece4b62b82af7..bdebb03f605168 100644 --- a/spec/requests/collections_spec.rb +++ b/spec/requests/collections_spec.rb @@ -3,8 +3,20 @@ require 'rails_helper' RSpec.describe 'Collections' do - describe 'GET /@:account_username/collections/:id', feature: :collections do - subject { get account_collection_path(account, collection, format: :json) } + describe 'GET /collections/:id', feature: :collections do + subject { get collection_path(collection) } + + let(:collection) { Fabricate(:collection) } + + it 'returns success' do + subject + + expect(response).to have_http_status(200) + end + end + + describe 'GET /ap/:account_id/collections/:id', feature: :collections do + subject { get ap_account_collection_path(account.id, collection, format: :json) } let(:collection) { Fabricate(:collection) } let(:account) { collection.account } @@ -80,7 +92,7 @@ context 'with "HTTP Signature" access signed by a remote account' do subject do - get account_collection_path(account, collection, format: :json), + get ap_account_collection_path(account.id, collection, format: :json), headers: nil, sign_with: remote_account end diff --git a/spec/serializers/activitypub/featured_collection_serializer_spec.rb b/spec/serializers/activitypub/featured_collection_serializer_spec.rb index ad62e7f8ad4e06..df582237ab8455 100644 --- a/spec/serializers/activitypub/featured_collection_serializer_spec.rb +++ b/spec/serializers/activitypub/featured_collection_serializer_spec.rb @@ -25,7 +25,7 @@ 'attributedTo' => ActivityPub::TagManager.instance.uri_for(collection.account), 'sensitive' => false, 'discoverable' => false, - 'url' => account_collection_url(collection.account, collection), + 'url' => collection_url(collection), 'topic' => { 'href' => match(%r{/tags/people$}), 'type' => 'Hashtag', From 5bc69ea668192f253ff032dbdc5c9213e2b0c03e Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 23 Apr 2026 09:48:00 +0200 Subject: [PATCH 270/335] Emoji loading performance (#38784) --- .../mastodon/features/account_edit/index.tsx | 3 +- .../account_edit/modals/fields_modals.tsx | 20 +++++++---- .../modals/fields_reorder_modal.tsx | 3 +- .../mastodon/features/emoji/database.ts | 5 +++ .../mastodon/features/emoji/normalize.ts | 21 +++++------ .../components/announcements/index.tsx | 3 +- .../mastodon/hooks/useCustomEmojis.ts | 35 +++++++++++++++++++ 7 files changed, 67 insertions(+), 23 deletions(-) create mode 100644 app/javascript/mastodon/hooks/useCustomEmojis.ts diff --git a/app/javascript/mastodon/features/account_edit/index.tsx b/app/javascript/mastodon/features/account_edit/index.tsx index a119e8e61da216..d3a3c967070cf1 100644 --- a/app/javascript/mastodon/features/account_edit/index.tsx +++ b/app/javascript/mastodon/features/account_edit/index.tsx @@ -17,6 +17,7 @@ import { ToggleField } from '@/mastodon/components/form_fields'; import { useElementHandledLink } from '@/mastodon/components/status/handled_link'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; +import { useCustomEmojis } from '@/mastodon/hooks/useCustomEmojis'; import { autoPlayGif } from '@/mastodon/initial_state'; import { fetchProfile, @@ -175,7 +176,7 @@ export const AccountEdit: FC = () => { }, [dispatch, profile?.bot]); // Normally we would use the account emoji, but we want all custom emojis to be available to render after editing. - const emojis = useAppSelector((state) => state.custom_emojis); + const emojis = useCustomEmojis(); const htmlHandlers = useElementHandledLink({ hashtagAccountId: profile?.id, }); diff --git a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx index d0f67ddc62c460..98324cf4dd2d9c 100644 --- a/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/fields_modals.tsx @@ -1,4 +1,10 @@ -import { forwardRef, useCallback, useImperativeHandle, useState } from 'react'; +import { + forwardRef, + useCallback, + useImperativeHandle, + useMemo, + useState, +} from 'react'; import type { FC, FocusEventHandler } from 'react'; import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; @@ -9,6 +15,7 @@ import { closeModal } from '@/mastodon/actions/modal'; import { Button } from '@/mastodon/components/button'; import type { FieldStatus } from '@/mastodon/components/form_fields'; import { EmojiTextInputField } from '@/mastodon/components/form_fields'; +import { useCustomEmojis } from '@/mastodon/hooks/useCustomEmojis'; import { removeField, selectFieldById, @@ -104,11 +111,6 @@ const selectFieldLimits = createAppSelector( const RECOMMENDED_LIMIT = 40; -const selectEmojiCodes = createAppSelector( - [(state) => state.custom_emojis], - (emojis) => emojis.map((emoji) => emoji.get('shortcode')).toArray(), -); - interface ConfirmationMessage { message: string; confirm: string; @@ -143,7 +145,11 @@ export const EditFieldModal = forwardRef< value?: FieldStatus; }>({}); - const customEmojiCodes = useAppSelector(selectEmojiCodes); + const customEmojis = useCustomEmojis(); + const customEmojiCodes = useMemo( + () => Object.keys(customEmojis ?? {}), + [customEmojis], + ); const checkField = useCallback( (value: string): FieldStatus | null => { if (!value.trim()) { diff --git a/app/javascript/mastodon/features/account_edit/modals/fields_reorder_modal.tsx b/app/javascript/mastodon/features/account_edit/modals/fields_reorder_modal.tsx index 8a94c99ac28a1d..60ec040579a9d2 100644 --- a/app/javascript/mastodon/features/account_edit/modals/fields_reorder_modal.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/fields_reorder_modal.tsx @@ -35,6 +35,7 @@ import { CSS } from '@dnd-kit/utilities'; import { CustomEmojiProvider } from '@/mastodon/components/emoji/context'; import { normalizeKey } from '@/mastodon/components/hotkeys/utils'; import { Icon } from '@/mastodon/components/icon'; +import { useCustomEmojis } from '@/mastodon/hooks/useCustomEmojis'; import type { FieldData } from '@/mastodon/reducers/slices/profile_edit'; import { patchProfile, @@ -217,7 +218,7 @@ export const ReorderFieldsModal: FC = ({ onClose }) => { void dispatch(patchProfile({ fields_attributes: newFields })).then(onClose); }, [dispatch, fieldKeys, fields, onClose]); - const emojis = useAppSelector((state) => state.custom_emojis); + const emojis = useCustomEmojis(); return ( // Add a wrapper here in the capture phase, so that it can be intercepted before the window listener in ModalRoot. diff --git a/app/javascript/mastodon/features/emoji/database.ts b/app/javascript/mastodon/features/emoji/database.ts index 79845b02e7ee9d..80bdfd12ff46f8 100644 --- a/app/javascript/mastodon/features/emoji/database.ts +++ b/app/javascript/mastodon/features/emoji/database.ts @@ -267,6 +267,11 @@ export async function searchCustomEmojisByShortcodes(shortcodes: string[]) { return results.filter((emoji) => shortcodes.includes(emoji.shortcode)); } +export async function loadAllCustomEmoji() { + const db = await loadDB(); + return db.getAll('custom'); +} + export async function loadLegacyShortcodesByShortcode(shortcode: string) { const db = await loadDB(); return db.getFromIndex( diff --git a/app/javascript/mastodon/features/emoji/normalize.ts b/app/javascript/mastodon/features/emoji/normalize.ts index f19b300f3f0760..6d2cfbb46ab176 100644 --- a/app/javascript/mastodon/features/emoji/normalize.ts +++ b/app/javascript/mastodon/features/emoji/normalize.ts @@ -185,21 +185,16 @@ export function cleanExtraEmojis(extraEmojis?: CustomEmojiMapArg | null) { if (!extraEmojis) { return null; } - if (Array.isArray(extraEmojis)) { - return extraEmojis.reduce( - (acc, emoji) => ({ ...acc, [emoji.shortcode]: emoji }), - {}, - ); + if (!Array.isArray(extraEmojis) && !isList(extraEmojis)) { + return extraEmojis; } - if (isList(extraEmojis)) { - return extraEmojis - .toJS() - .reduce( - (acc, emoji) => ({ ...acc, [emoji.shortcode]: emoji }), - {}, - ); + const emojis: ExtraCustomEmojiMap = {}; + const emojiArray = isList(extraEmojis) ? extraEmojis.toJS() : extraEmojis; + for (const emoji of emojiArray) { + emojis[emoji.shortcode] = emoji; } - return extraEmojis; + + return emojis; } /** diff --git a/app/javascript/mastodon/features/home_timeline/components/announcements/index.tsx b/app/javascript/mastodon/features/home_timeline/components/announcements/index.tsx index cb44e1d075c0c7..2e4cc0214c48ce 100644 --- a/app/javascript/mastodon/features/home_timeline/components/announcements/index.tsx +++ b/app/javascript/mastodon/features/home_timeline/components/announcements/index.tsx @@ -7,6 +7,7 @@ import elephantUIPlane from '@/images/elephant_ui_plane.svg'; import type { RenderSlideFn } from '@/mastodon/components/carousel'; import { Carousel } from '@/mastodon/components/carousel'; import { CustomEmojiProvider } from '@/mastodon/components/emoji/context'; +import { useCustomEmojis } from '@/mastodon/hooks/useCustomEmojis'; import { mascot } from '@/mastodon/initial_state'; import { createAppSelector, useAppSelector } from '@/mastodon/store'; @@ -23,7 +24,7 @@ const announcementSelector = createAppSelector( export const Announcements: FC = () => { const announcements = useAppSelector(announcementSelector); - const emojis = useAppSelector((state) => state.custom_emojis); + const emojis = useCustomEmojis(); const renderSlide: RenderSlideFn<{ id: string; diff --git a/app/javascript/mastodon/hooks/useCustomEmojis.ts b/app/javascript/mastodon/hooks/useCustomEmojis.ts new file mode 100644 index 00000000000000..df0eed613857fd --- /dev/null +++ b/app/javascript/mastodon/hooks/useCustomEmojis.ts @@ -0,0 +1,35 @@ +import { useEffect, useState } from 'react'; + +import type { ExtraCustomEmojiMap } from '../features/emoji/types'; + +let emojis: ExtraCustomEmojiMap | null = null; + +export function useCustomEmojis() { + const [, setLoaded] = useState(emojis !== null); + useEffect(() => { + if (!emojis) { + void loadEmojisIntoCache().then(() => { + setLoaded(true); + }); + } + }, []); + + return emojis; +} + +async function loadEmojisIntoCache() { + const { loadAllCustomEmoji } = await import('../features/emoji/database'); + const emojisRaw = await loadAllCustomEmoji(); + if (emojisRaw.length === 0) { + return; + } + + emojis = {}; + for (const emoji of emojisRaw) { + emojis[emoji.shortcode] = { + url: emoji.url, + shortcode: emoji.shortcode, + static_url: emoji.static_url, + }; + } +} From 1d1deaab2a10ea527732404be9a36c18e21e35cc Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 23 Apr 2026 10:28:14 +0200 Subject: [PATCH 271/335] Profile editing: Fix overflow in advanced view (#38791) --- .../mastodon/features/account_edit/components/column.tsx | 6 +++--- .../mastodon/features/account_edit/styles.module.scss | 9 ++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/components/column.tsx b/app/javascript/mastodon/features/account_edit/components/column.tsx index 9fb83e444ce455..dde74368878f30 100644 --- a/app/javascript/mastodon/features/account_edit/components/column.tsx +++ b/app/javascript/mastodon/features/account_edit/components/column.tsx @@ -23,7 +23,7 @@ export const AccountEditEmptyColumn: FC<{ } return ( - + ); @@ -38,7 +38,7 @@ export const AccountEditColumn: FC<{ return ( <> - + - {children} +
    {children}
    {title} diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index 1ca1e4646c3ee0..4991f8e7e54eb8 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -126,11 +126,6 @@ // Column component -.column { - border: 1px solid var(--color-border-primary); - border-top-width: 0; -} - .columnHeader { :global(.column-header__buttons) { align-items: center; @@ -258,6 +253,10 @@ padding: 24px; border-bottom: 1px solid var(--color-border-primary); font-size: 15px; + + &:last-child { + border-bottom: none; + } } .sectionHeader { From 540042dfe3186c52237cde3562b40f50eeb75be9 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 23 Apr 2026 10:37:22 +0200 Subject: [PATCH 272/335] Fix minor collection bugs (#38785) --- .../features/collections/components/collection_lockup.tsx | 4 ++-- .../mastodon/features/collections/editor/details.tsx | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx index d72400cb8f9df3..45cb59b089bf1a 100644 --- a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx @@ -27,10 +27,10 @@ export const AvatarGrid: React.FC<{ sensitive ? classes.avatarGridSensitive : null, )} > - {avatarIds.map((id) => ( + {avatarIds.map((id, index) => ( { [dispatch], ); + const accountId = useCurrentAccountId(); + const { acct: currentUserName } = useAccount(accountId) ?? {}; + const handleSubmit = useCallback( (e: React.FormEvent) => { e.preventDefault(); @@ -128,7 +133,7 @@ export const CollectionDetails: React.FC = () => { }), ).then((result) => { if (isFulfilled(result)) { - history.replace(`/collections`); + history.replace(`/@${currentUserName}/collections`); history.push(`/collections/${result.payload.collection.id}`, { newCollection: true, }); @@ -146,6 +151,7 @@ export const CollectionDetails: React.FC = () => { dispatch, history, accountIds, + currentUserName, ], ); From a8741495c4339ca8d9c45c538b6d326871874439 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 10:42:05 +0200 Subject: [PATCH 273/335] New Crowdin Translations (automated) (#38790) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 99 ++++++++++++++++++++++ app/javascript/mastodon/locales/fr-CA.json | 8 +- app/javascript/mastodon/locales/fr.json | 8 +- app/javascript/mastodon/locales/gl.json | 4 + app/javascript/mastodon/locales/kab.json | 7 ++ config/locales/ar.yml | 31 +++++++ config/locales/simple_form.be.yml | 2 + config/locales/simple_form.da.yml | 2 + config/locales/simple_form.de.yml | 2 + config/locales/simple_form.el.yml | 2 + config/locales/simple_form.es-AR.yml | 2 + config/locales/simple_form.es-MX.yml | 2 + config/locales/simple_form.es.yml | 2 + config/locales/simple_form.et.yml | 2 + config/locales/simple_form.fi.yml | 2 + config/locales/simple_form.gl.yml | 5 ++ config/locales/simple_form.is.yml | 2 + config/locales/simple_form.nl.yml | 2 + config/locales/simple_form.pt-BR.yml | 2 + config/locales/simple_form.sq.yml | 2 + config/locales/simple_form.zh-CN.yml | 2 + config/locales/simple_form.zh-TW.yml | 2 + 22 files changed, 184 insertions(+), 8 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 6f9a51cd853341..9b156a5fa9ceba 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -18,8 +18,12 @@ "account.add_note": "إضافة ملاحظة شخصية", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", "account.badges.admin": "مدير", + "account.badges.blocked": "محظور", "account.badges.bot": "آلي", + "account.badges.domain_blocked": "النطاق محظور", "account.badges.group": "فريق", + "account.badges.muted": "مكتوم", + "account.badges.muted_until": "مكتوم إلى غاية {until}", "account.block": "احجب @{name}", "account.block_domain": "حظر اسم النِّطاق {domain}", "account.block_short": "حظر", @@ -30,6 +34,7 @@ "account.direct": "إشارة خاصة لـ @{name}", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", "account.domain_blocking": "نطاق محظور", + "account.edit_note": "تعديل الملاحظة الشخصية", "account.edit_profile": "تعديل الملف الشخصي", "account.edit_profile_short": "تعديل", "account.enable_notifications": "أشعرني عندما ينشر @{name}", @@ -40,6 +45,8 @@ "account.featured": "معروض", "account.featured.accounts": "ملفات شخصية", "account.filters.all": "جميع الأنشطة", + "account.filters.boosts_toggle": "اعرض المعاد نشرها", + "account.filters.posts_boosts": "المنشورات والمعاد نشرها", "account.filters.posts_only": "منشورات", "account.filters.posts_replies": "المنشورات والردود", "account.filters.replies_toggle": "اعرض الردود", @@ -49,6 +56,7 @@ "account.follow_request": "طلب المتابعة", "account.follow_request_cancel": "إلغاء الطلب", "account.follow_request_cancel_short": "إلغاء", + "account.follow_request_short": "طلب المتابعة", "account.followers": "مُتابِعون", "account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.", "account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two {مُتابعانِ اِثنان} few {{counter} مُتابِعين} many {{counter} مُتابِعًا} other {{counter} مُتابع}}", @@ -62,11 +70,26 @@ "account.in_memoriam": "في الذكرى.", "account.joined_short": "انضم في", "account.languages": "تغيير اللغات المشترَك فيها", + "account.last_active": "آخر نشاط", "account.link_verified_on": "تمَّ التَّحقق مِن مِلْكيّة هذا الرابط بتاريخ {date}", "account.locked_info": "تم ضبط حالة خصوصية هذا الحساب على أنه مؤمّن. إذ يراجع صاحبه يدويًا من يُسمح له بالمتابعة.", "account.media": "وسائط", "account.mention": "أذكُر @{name}", + "account.menu.add_to_list": "إضافة إلى القائمة…", + "account.menu.block": "حظر الحساب", + "account.menu.block_domain": "حظر {domain}", + "account.menu.copied": "تم نسخ رابط الحساب إلى الحافظة", "account.menu.copy": "نسخ الرابط", + "account.menu.direct": "إشارة خاصة لـ", + "account.menu.mention": "إشارة", + "account.menu.mute": "كتم الحساب", + "account.menu.note.description": "مرئي لك فقط", + "account.menu.remove_follower": "إزالة المتابِع", + "account.menu.report": "الإبلاغ عن الحساب", + "account.menu.share": "مشاركة…", + "account.menu.unblock": "رفع الحظر عن الحساب", + "account.menu.unblock_domain": "رفع الحظر عن {domain}", + "account.menu.unmute": "إلغاء كتم الحساب", "account.moved_to": "أشار {name} إلى أن حسابه الجديد الآن:", "account.mute": "أكتم @{name}", "account.mute_notifications_short": "كتم الإشعارات", @@ -74,7 +97,11 @@ "account.muted": "مَكتوم", "account.muting": "مكتوم", "account.mutual": "أنتم تتابعون بعضكم البعض", + "account.name.copy": "نسخ المعرف", + "account.name_info": "ما معنى ذلك؟", "account.no_bio": "لم يتم تقديم وصف.", + "account.node_modal.edit_title": "تعديل الملاحظة الشخصية", + "account.node_modal.error_unknown": "تعذر حفظ الملاحظة", "account.node_modal.field_label": "ملاحظة شخصية", "account.node_modal.save": "حفظ", "account.node_modal.title": "إضافة ملاحظة شخصية", @@ -89,6 +116,8 @@ "account.share": "شارِك الملف التعريفي لـ @{name}", "account.show_reblogs": "اعرض إعادات نشر @{name}", "account.statuses_counter": "{count, plural, zero {}one {{counter} مشور} two {{counter} منشور} few {{counter} منشور} many {{counter} منشور} other {{counter} منشور}}", + "account.timeline.pinned": "مثبّت", + "account.timeline.pinned.view_all": "عرض جميع المنشورات المثبتة", "account.unblock": "إلغاء الحَظر عن @{name}", "account.unblock_domain": "إلغاء الحَظر عن النِّطاق {domain}", "account.unblock_domain_short": "رفع الحظر", @@ -98,20 +127,57 @@ "account.unmute": "إلغاء الكَتم عن @{name}", "account.unmute_notifications_short": "إلغاء كَتم الإشعارات", "account.unmute_short": "إلغاء الكتم", + "account_edit.advanced_settings.bot_label": "حساب آلي", + "account_edit.advanced_settings.title": "الإعدادات المتقدمة", "account_edit.bio.add_label": "إضافة سيرة ذاتية", + "account_edit.bio.edit_label": "تعديل السيرة الذاتية", + "account_edit.bio.title": "نبذة عنك", "account_edit.bio_modal.add_title": "إضافة سيرة ذاتية", + "account_edit.bio_modal.edit_title": "تعديل السيرة الذاتية", + "account_edit.column_button": "تمّ", + "account_edit.column_title": "تعديل الملف الشخصي", "account_edit.custom_fields.add_label": "إضافة حقل", + "account_edit.custom_fields.edit_label": "تعديل الحقل", + "account_edit.custom_fields.placeholder": "أضف ضمائر أو روابط خارجية أو أي شيء آخر ترغب في مشاركته.", + "account_edit.custom_fields.reorder_button": "إعادة ترتيب الحقول", + "account_edit.custom_fields.tip_title": "نصيحة: إضافة روابط متحقق منها", + "account_edit.custom_fields.title": "الحقول المخصصة", + "account_edit.custom_fields.verified_hint": "كيف يمكنني إضافة رابط متحقق منه؟", + "account_edit.display_name.add_label": "إضافة اسم علني", + "account_edit.display_name.edit_label": "تعديل الاسم العلني", + "account_edit.display_name.title": "الاسم العلني", + "account_edit.featured_hashtags.edit_label": "إضافة وسوم", + "account_edit.featured_hashtags.title": "الوسوم المروّجة", + "account_edit.field_actions.delete": "حذف الحقل", "account_edit.field_actions.edit": "تعديل الحقل", "account_edit.field_delete_modal.delete_button": "حذف", + "account_edit.field_delete_modal.title": "أتريد حذف الحقل المخصص؟", + "account_edit.field_edit_modal.add_title": "إضافة حقل مخصص", + "account_edit.field_edit_modal.discard_confirm": "تجاهل", + "account_edit.field_edit_modal.edit_title": "تعديل الحقل المخصص", + "account_edit.field_edit_modal.name_hint": "على سبيل المثال \"الموقع الشخصي\"", + "account_edit.field_edit_modal.name_label": "التسمية", + "account_edit.field_edit_modal.url_warning": "لإضافة رابط ، يرجى تضمين {protocol} في البداية.", + "account_edit.field_edit_modal.value_hint": "على سبيل المثال \"https://example.me\"", "account_edit.field_edit_modal.value_label": "قيمة", + "account_edit.image_alt_modal.add_title": "إضافة نص بديل", + "account_edit.image_alt_modal.edit_title": "تعديل نص بديل", "account_edit.image_alt_modal.text_label": "نص بديل", "account_edit.image_delete_modal.delete_button": "حذف", "account_edit.image_edit.add_button": "إضافة صورة", "account_edit.image_edit.alt_add_button": "إضافة نص بديل", + "account_edit.image_edit.alt_edit_button": "تعديل نص بديل", + "account_edit.image_edit.remove_button": "إزالة الصورة", + "account_edit.image_edit.replace_button": "استبدال الصورة", + "account_edit.item_list.delete": "حذف {name}", + "account_edit.item_list.edit": "تعديل {name}", + "account_edit.profile_tab.button_label": "تخصيص", "account_edit.save": "حفظ", "account_edit.upload_modal.back": "العودة", "account_edit.upload_modal.done": "تمّ", "account_edit.upload_modal.next": "التالي", + "account_edit.upload_modal.step_crop.zoom": "تكبير", + "account_edit.upload_modal.step_upload.button": "تصفح الملفات", "account_edit.upload_modal.step_upload.dragging": "إسقاط للتحميل", "account_edit.upload_modal.step_upload.header": "اختيار صورة", "account_edit.upload_modal.title_add.avatar": "إضافة صورة الملف الشخصي", @@ -119,6 +185,7 @@ "account_edit.upload_modal.title_replace.avatar": "استبدال صورة الملف الشخصي", "account_edit.upload_modal.title_replace.header": "استبدال صورة الغلاف", "account_edit_tags.add_tag": "إضافة #{tagName}", + "account_edit_tags.suggestions": "الاقتراحات:", "account_note.placeholder": "اضغط لإضافة مُلاحظة", "admin.dashboard.daily_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالأيام", "admin.dashboard.monthly_retention": "معدّل بقاء المستخدمين بعد إنشاء الحسابات، بالشهور", @@ -145,6 +212,7 @@ "annual_report.announcement.action_dismiss": "لا شكراً", "annual_report.nav_item.badge": "جديد", "annual_report.shared_page.donate": "تبرع", + "annual_report.summary.archetype.oracle.name": "الحكيم", "annual_report.summary.archetype.replier.name": "الفراشة", "annual_report.summary.close": "اغلق", "annual_report.summary.copy_link": "نسخ الرابط", @@ -186,17 +254,33 @@ "closed_registrations_modal.find_another_server": "ابحث على خادم آخر", "closed_registrations_modal.preamble": "ماستدون لامركزي، لذلك بغض النظر عن مكان إنشاء حسابك، سيكون بإمكانك المتابعة والتفاعل مع أي شخص على هذا الخادم. يمكنك حتى أن تستضيفه ذاتياً!", "closed_registrations_modal.title": "إنشاء حساب على ماستدون", + "collection.share_modal.share_link_label": "مشاركة الرابط", + "collection.share_modal.share_via_post": "نشر على ماستدون", + "collections.block_collection_owner": "حظر الحساب", + "collections.by_account": "مِن {account_handle}", "collections.collection_description": "الوصف", "collections.collection_language": "اللغة", + "collections.collection_language_none": "لا شيء", "collections.collection_name": "الاسم", "collections.collection_topic": "الموضوع", "collections.content_warning": "تحذير عن المحتوى", "collections.continue": "مواصلة", + "collections.copy_link": "نسخ الرابط", + "collections.copy_link_confirmation": "نسخ الرابط إلى الحافظة", + "collections.create.basic_details_title": "المعلومات الأساسية", "collections.create.steps": "الخطوة {step}/{total}", "collections.detail.accounts_heading": "الحسابات", + "collections.detail.revoke_inclusion": "أزلني", "collections.detail.sensitive_content": "محتوى حساس", "collections.edit_details": "تعديل التفاصيل", + "collections.hints.accounts_counter": "{count}/{max} حسابات", "collections.manage_accounts": "إدارة الحسابات", + "collections.remove_account": "إزالة", + "collections.sensitive": "حساس", + "collections.share_short": "مشاركة", + "collections.visibility_public": "للعامة", + "collections.visibility_title": "مدى الظهور", + "collections.visibility_unlisted": "غير مُدرَج", "column.about": "عن", "column.blocks": "المُستَخدِمون المَحظورون", "column.bookmarks": "الفواصل المرجعية", @@ -260,6 +344,7 @@ "confirmations.delete.message": "هل أنتَ مُتأكدٌ أنك تُريدُ حَذفَ هذا المنشور؟", "confirmations.delete.title": "أتريد حذف المنشور؟", "confirmations.delete_collection.confirm": "حذف", + "confirmations.delete_collection.title": "حذف \"{name}\"؟", "confirmations.delete_list.confirm": "حذف", "confirmations.delete_list.message": "هل أنتَ مُتأكدٌ أنكَ تُريدُ حَذفَ هذِهِ القائمة بشكلٍ دائم؟", "confirmations.delete_list.title": "أتريد حذف القائمة؟", @@ -283,6 +368,9 @@ "confirmations.missing_alt_text.secondary": "انشر على أي حال", "confirmations.missing_alt_text.title": "أضف نصًا بديلًا؟", "confirmations.mute.confirm": "أكتم", + "confirmations.private_quote_notify.cancel": "العودة إلى التحرير", + "confirmations.private_quote_notify.confirm": "نشر المنشور", + "confirmations.private_quote_notify.do_not_show_again": "لا تظهر علي هذه الرسالة مجددًا", "confirmations.quiet_post_quote_info.dismiss": "لا تُذكرني مرة أخرى", "confirmations.quiet_post_quote_info.got_it": "مفهوم", "confirmations.quiet_post_quote_info.message": "عندما تقتبس منشورا هادئا للعامة، فإن منشورك سيكون أيضا مخفيا عن الخيوط الزمنية الرائجة.", @@ -293,6 +381,7 @@ "confirmations.remove_from_followers.confirm": "إزالة المتابع", "confirmations.remove_from_followers.message": "سيتوقف {name} عن متابعتك. هل بالتأكيد تريد المتابعة؟", "confirmations.remove_from_followers.title": "إزالة المتابع؟", + "confirmations.revoke_collection_inclusion.confirm": "أزلني", "confirmations.revoke_quote.confirm": "إزالة المنشور", "confirmations.revoke_quote.message": "لا يمكن التراجع عن هذا الإجراء.", "confirmations.revoke_quote.title": "أتريد إزالة المنشور؟", @@ -343,6 +432,8 @@ "dropdown.empty": "حدد خيارا", "email_subscriptions.email": "البريد الإلكتروني", "email_subscriptions.form.action": "اشترك", + "email_subscriptions.submitted.title": "خطوة واحدة أخرى", + "email_subscriptions.validation.email.invalid": "عنوان البريد الإلكتروني غير صالح", "embed.instructions": "يمكنكم إدماج هذا المنشور على موقعكم الإلكتروني عن طريق نسخ الشفرة أدناه.", "embed.preview": "إليك ما سيبدو عليه:", "emoji_button.activity": "الأنشطة", @@ -437,6 +528,7 @@ "follow_suggestions.view_all": "عرض الكل", "follow_suggestions.who_to_follow": "حسابات للمُتابَعة", "followed_tags": "الوسوم المتابَعة", + "following.title": "يتبعه {name}", "footer.about": "عن", "footer.about_mastodon": "عن ماستدون", "footer.about_server": "عن {domain}", @@ -750,12 +842,14 @@ "notifications_permission_banner.title": "لا تفوت شيئاً أبداً", "onboarding.follows.back": "عودة", "onboarding.follows.empty": "نأسف، لا يمكن عرض نتائج في الوقت الحالي. جرب البحث أو انتقل لصفحة الاستكشاف لإيجاد أشخاص للمتابعة، أو حاول مرة أخرى.", + "onboarding.follows.next": "التالي: إعداد ملفك الشخصي", "onboarding.follows.search": "بحث", "onboarding.follows.title": "للبدء قم بمتابعة أشخاص", "onboarding.profile.discoverable": "اجعل ملفي الشخصي قابلاً للاكتشاف", "onboarding.profile.discoverable_hint": "عندما تختار تفعيل إمكانية الاكتشاف على ماستدون، قد تظهر منشوراتك في نتائج البحث والمواضيع الرائجة، وقد يتم اقتراح ملفك الشخصي لأشخاص ذوي اهتمامات مماثلة معك.", "onboarding.profile.display_name": "الاسم العلني", "onboarding.profile.display_name_hint": "اسمك الكامل أو اسمك المرح…", + "onboarding.profile.finish": "إنهاء", "onboarding.profile.note": "نبذة عنك", "onboarding.profile.note_hint": "يمكنك @ذِكر أشخاص آخرين أو استعمال #الوسوم…", "onboarding.profile.title": "إعداد الملف الشخصي", @@ -896,6 +990,7 @@ "sign_in_banner.mastodon_is": "ماستودون هو أفضل وسيلة لمواكبة الأحداث.", "sign_in_banner.sign_in": "تسجيل الدخول", "sign_in_banner.sso_redirect": "تسجيل الدخول أو إنشاء حساب", + "skip_links.skip_to_content": "تخطي إلى المحتوى الرئيسي", "status.admin_account": "افتح الواجهة الإدارية لـ @{name}", "status.admin_domain": "فتح واجهة الإشراف لـ {domain}", "status.admin_status": "افتح هذا المنشور على واجهة الإشراف", @@ -905,6 +1000,10 @@ "status.cancel_reblog_private": "إلغاء إعادة النشر", "status.cannot_quote": "غير مصرح لك باقتباس هذا المنشور", "status.cannot_reblog": "لا يمكن إعادة نشر هذا المنشور", + "status.contains_quote": "يحتوي على اقتباس", + "status.context.loading": "تحميل المزيد من الردود", + "status.context.loading_success": "تم تحميل ردود جديدة", + "status.context.more_replies_found": "تم العثور على المزيد من الردود", "status.context.retry": "حاول مجددًا", "status.context.show": "إظهار", "status.continued_thread": "تكملة للخيط", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index ee4e012b0a8390..61efa55cad0374 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -327,8 +327,8 @@ "block_modal.title": "Bloquer l'utilisateur·ice ?", "block_modal.you_wont_see_mentions": "Vous ne verrez plus les messages qui le ou la mentionnent.", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour sauter ceci la prochaine fois", - "boost_modal.reblog": "Booster le message ?", - "boost_modal.undo_reblog": "Annuler le boost du message ?", + "boost_modal.reblog": "Partager le message ?", + "boost_modal.undo_reblog": "Annuler le partage du message ?", "bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur", "bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela pourrait être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.", "bundle_column_error.error.title": "Oh non!", @@ -343,7 +343,7 @@ "bundle_modal_error.retry": "Réessayer", "callout.dismiss": "Rejeter", "carousel.current": "Diapositive {current, number} / {max, number}", - "carousel.slide": "Diapositive {current, number} de {max, number}", + "carousel.slide": "Diapositive {current, number} sur {max, number}", "character_counter.recommended": "{currentLength}/{maxLength} caractères recommandés", "character_counter.required": "{currentLength}/{maxLength} caractères", "closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.", @@ -949,7 +949,7 @@ "notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.quoted_update": "{name} a modifié un message que vous avez cité", "notification.reblog": "{name} a boosté votre message", - "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont boosté votre message", + "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont 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.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 4d14f9e550b1e6..49b0f9ae5f9b84 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -327,8 +327,8 @@ "block_modal.title": "Bloquer l'utilisateur·ice ?", "block_modal.you_wont_see_mentions": "Vous ne verrez plus les messages qui le ou la mentionnent.", "boost_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois", - "boost_modal.reblog": "Booster le message ?", - "boost_modal.undo_reblog": "Annuler le boost du message ?", + "boost_modal.reblog": "Partager le message ?", + "boost_modal.undo_reblog": "Annuler le partage du message ?", "bundle_column_error.copy_stacktrace": "Copier le rapport d'erreur", "bundle_column_error.error.body": "La page demandée n'a pas pu être affichée. Cela peut être dû à un bogue dans notre code, ou à un problème de compatibilité avec le navigateur.", "bundle_column_error.error.title": "Oh non !", @@ -343,7 +343,7 @@ "bundle_modal_error.retry": "Réessayer", "callout.dismiss": "Rejeter", "carousel.current": "Diapositive {current, number} / {max, number}", - "carousel.slide": "Diapositive {current, number} de {max, number}", + "carousel.slide": "Diapositive {current, number} sur {max, number}", "character_counter.recommended": "{currentLength}/{maxLength} caractères recommandés", "character_counter.required": "{currentLength}/{maxLength} caractères", "closed_registrations.other_server_instructions": "Puisque Mastodon est décentralisé, vous pouvez créer un compte sur un autre serveur et interagir quand même avec celui-ci.", @@ -949,7 +949,7 @@ "notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.quoted_update": "{name} a modifié un message que vous avez cité", "notification.reblog": "{name} a partagé votre message", - "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont boosté votre message", + "notification.reblog.name_and_others_with_link": "{name} et {count, plural, one {# autre} other {# autres}} ont 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.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 82f90d3f4d8501..1c02792935109d 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -410,6 +410,10 @@ "collections.search_accounts_max_reached": "Acadaches o máximo de contas permitidas", "collections.sensitive": "Sensible", "collections.share_short": "Compartir", + "collections.suggestions.can_not_add": "Non se pode engadir", + "collections.suggestions.can_not_add_desc": "Estas contas optaron por poder ser engadidas, ou pode que estean nun servidor que aínda non é compatible coas coleccións.", + "collections.suggestions.must_follow": "Primeiro tes que seguila", + "collections.suggestions.must_follow_desc": "Estas contas revisan todas as solicitudes de seguimento. As seguidoras poden engadilas a coleccións.", "collections.topic_hint": "Engadir un cancelo para que axudar a que outras persoas coñezan a temática desta colección.", "collections.topic_special_chars_hint": "Vanse eliminar os caracteres especiais ao gardar", "collections.unlisted_collections_description": "Estas non se mostran no teu perfil, pero calquera que coñeza a ligazón pode velas.", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 5eccceff31320c..5c102a4f3eb8a6 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -231,6 +231,7 @@ "bundle_column_error.routing.title": "404", "bundle_modal_error.close": "Mdel", "bundle_modal_error.retry": "Ɛreḍ tikelt-nniḍen", + "callout.dismiss": "Zgel-it", "closed_registrations_modal.description": "Asnulfu n umiḍan deg {domain} mačči d ayen izemren ad yili, maca ttxil-k·m, err deg lbal-ik·im belli ur teḥwaǧeḍ ara amiḍan s wudem ibanen ɣef {domain} akken ad tesqedceḍ Mastodon.", "closed_registrations_modal.find_another_server": "Aff-d aqeddac nniḍen", "closed_registrations_modal.title": "Ajerred deg Masṭudun", @@ -241,6 +242,7 @@ "collection.share_modal.title_new": "Zuzer talkensit-ik·im tamaynut!", "collections.account_count": "{count, plural, one {# n umiḍan} other {# n imiḍanen}}", "collections.accounts.empty_title": "Talkensit-a d tilemt", + "collections.block_collection_owner": "Sewḥel amiḍan", "collections.by_account": "sɣur {account_handle}", "collections.collection_description": "Aglam", "collections.collection_language": "Tutlayt", @@ -248,6 +250,7 @@ "collections.collection_name": "Isem", "collections.collection_topic": "Asentel", "collections.continue": "Kemmel", + "collections.copy_link": "Nɣel aseɣwen", "collections.create.steps": "Asurif wis {step}/{total}", "collections.create_collection": "Snulfu-d talkensit", "collections.delete_collection": "Kkes talkensit", @@ -259,12 +262,16 @@ "collections.detail.sensitive_content": "Agbur amḥulfu", "collections.detail.share": "Zuzer talkensit-a", "collections.edit_details": "Ẓreg talqayt", + "collections.hidden_accounts_link": "{count, plural, one {# n umiḍan uffir} other {# n imiḍanen yettwaffaren}}", + "collections.hints.accounts_counter": "{count}/{max} n imiḍanen", "collections.manage_accounts": "Sefrek imiḍanen", "collections.name_length_hint": "talast n 40 n yisekkilen", "collections.new_collection": "Talkensit tamaynut", "collections.no_collections_yet": "Ur ɛad llant tilkensa.", + "collections.remove_account": "Kkes", "collections.report_collection": "Cetki ɣef telkensit-a", "collections.revoke_collection_inclusion": "Kkes-iyi seg telkensit-a", + "collections.share_short": "Bḍu", "collections.view_collection": "Wali talkensit", "collections.visibility_public": "Azayaz", "collections.visibility_title": "Abani", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 0f3bc7d763658f..70aabf1d5b697c 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -201,6 +201,7 @@ ar: create_relay: إنشاء خادم ترحيل create_unavailable_domain: إنشاء نطاق غير متوفر create_user_role: انشاء دور + create_username_block: إنشاء قاعدة اسم المستخدم demote_user: إنزال رتبة المستخدم destroy_announcement: احذف الإعلان destroy_canonical_email_block: إلغاء حظر لبريد إلكتروني @@ -756,6 +757,7 @@ ar: resolved_msg: تمت معالجة الشكوى بنجاح! skip_to_actions: تخطي إلى الإجراءات status: الحالة + statuses: المنشورات (%{count}) statuses_description_html: سيشار إلى المحتوى المخالف في الاتصال بالحساب المبلغ عنه summary: action_preambles: @@ -825,6 +827,7 @@ ar: manage_blocks_description: السماح للمستخدمين بحظر مقدمي خدمات البريد الإلكتروني وعناوين IP manage_custom_emojis: إدارة الرموز التعبيريّة المخصصة manage_custom_emojis_description: السماح للمستخدمين بإدارة الرموز التعبيريّة المخصصة على الخادم + manage_email_subscriptions: إدارة اشتراكات البريد الإلكتروني manage_federation: إدارة الفديرالية manage_federation_description: يسمح للمستخدمين بحظر أو السماح للاتحاد مع النطاقات الأخرى، والتحكم في إمكانية التسليم manage_invites: إدارة الدعوات @@ -902,9 +905,13 @@ ar: all: للجميع disabled: لا أحد users: للمستخدمين المتصلين محليا + feed_access: + modes: + public: الجميع landing_page: values: about: عن + local_feed: الخيط المحلي trends: المتداوَلة registrations: moderation_recommandation: الرجاء التأكد من أن لديك فريق إشراف كافي وفعال قبل فتح التسجيلات للجميع! @@ -1321,6 +1328,7 @@ ar: progress: confirm: تأكيد عنوان البريد الإلكتروني details: تفاصيلك + list: تقدم التسجيل review: رأيُنا rules: قبول القواعد providers: @@ -1385,6 +1393,7 @@ ar: light: فاتح contrast: auto: تلقائي + high: عالٍ crypto: errors: invalid_key: ليس بمفتاح Ed25519 أو Curve25519 صالح @@ -1457,9 +1466,22 @@ ar: other: أخرى email_subscription_mailer: confirmation: + action: تأكيد عنوان البريد الإلكتروني subject: تأكيد عنوان بريدك الإلكتروني notification: create_account: إنشاء حساب ماستدون + subject: + plural: منشورات جديدة من %{name} + singular: 'منشور جديد: "%{excerpt}"' + email_subscriptions: + active: نشط + confirmations: + show: + changed_your_mind: هل غيرت رأيك؟ + unsubscribe: إلغاء الاشتراك + inactive: غير نشط + status: الحالة + subscribers: المشتركون emoji_styles: auto: تلقائي native: محلي @@ -1754,6 +1776,7 @@ ar: link_preview: author_html: مِن %{name} potentially_sensitive_content: + action: اضغط للعرض hide_button: إخفاء lists: errors: @@ -1897,6 +1920,7 @@ ar: posting_defaults: التفضيلات الافتراضية للنشر public_timelines: الخيوط الزمنية العامة privacy: + email_subscriptions: إرسال المنشورات عبر البريد الإلكتروني hint_html: "قم بتخصيص الطريقة التي تريد بها أن يُكتَشَف ملفك الشخصي ومنشوراتك. يمكن لمجموعة متنوعة من الميزات في Mastodon أن تساعدك في الوصول إلى جمهور أوسع عند تفعيلها. خذ بعض الوقت لمراجعة هذه الإعدادات للتأكد من أنها تناسب حالة الاستخدام الخاصة بك." privacy: الخصوصية privacy_hint_html: تحكم في مقدار ما ترغب في الكشف عنه لصالح الآخرين. يكتشف الأشخاص الملفات الشخصية المثيرة والتطبيقات الرائعة من خلال تصفح متابعات الأشخاص الآخرين ورؤية التطبيقات التي ينشرونها، ولكن قد تفضل الاحتفاظ بها مخفية. @@ -2080,10 +2104,14 @@ ar: limit: لقد بلغت الحد الأقصى للمنشورات المثبتة ownership: لا يمكن تثبيت منشور نشره شخص آخر reblog: لا يمكن تثبيت إعادة نشر + quote_error: + not_available: المنشور غير متوفر + revoked: تمت إزالة المنشور من قبل صاحبه quote_policies: followers: للمتابِعين فقط nobody: لي فقط public: أيا كان + quote_post_author: اقتبس منشور من قبل %{acct} title: '%{name}: "%{quote}"' visibilities: direct: إشارة خاصة @@ -2165,6 +2193,9 @@ ar: recovery_codes_regenerated: تم إعادة توليد رموز الاسترجاع الاحتياطية بنجاح recovery_instructions_html: إن فقدت الوصول إلى هاتفك، يمكنك استخدام أحد رموز الاسترداد أدناه لاستعادة الوصول إلى حسابك. حافظ على رموز الاسترداد بأمان. يمكنك ، على سبيل المثال ، طباعتها وتخزينها مع مستندات أخرى هامة. webauthn: مفاتيح الأمان + unsubscriptions: + create: + action: الذهاب إلى الصفحة الرئيسية للخادم user_mailer: announcement_published: description: 'يقوم مديرو %{domain} بإصدار إعلان:' diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index 48e121650ef3e1..e41996f7ee88ac 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -162,6 +162,7 @@ be: other: Нам трэба ўпэўніцца, што Вы як мінімум %{count} чалавекі з тых, хто карыстаецца %{domain}. Мы не будзем захоўваць гэту інфармацыю. role: Роля кантралюе тое, якія дазволы мае карыстальнік. user_role: + collection_limit: Абмяжоўвае колькасць Калекцый, якія можа стварыць адзін карыстальнік гэтай ролі. Майце на ўвазе, калі ласка, што калі Вы зменшыце гэтую колькасць, то карыстальнікі, у якіх быў дасягнуты папярэдні ліміт, не страцяць нічога. Але новыя Калекцыі яны стварыць не змогуць. color: Колер, які будзе выкарыстоўвацца для гэтай ролі па ўсім UI, у фармаце RGB ці hex highlighted: Гэта робіць ролю публічна бачнай name: Публічная назва ролі, калі роля дэманструецца як значок у профілю @@ -388,6 +389,7 @@ be: role: Роля time_zone: Часавы пояс user_role: + collection_limit: Максімальная колькасць Калекцый на карыстальніка color: Колер значка highlighted: Паказваць ролю як значок у профілях name: Назва diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index d76ee44eda0c75..a325affdc9f364 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -160,6 +160,7 @@ da: other: Vi skal sikre os, at du er mindst %{count} for at kunne bruge %{domain}. Informationen gemmes ikke. role: Rollen styrer, hvilke tilladelser brugeren er tildelt. user_role: + collection_limit: Begrænser antallet af samlinger, som en enkelt bruger med denne rolle kan oprette. Bemærk, at hvis du reducerer dette antal, vil brugere, der allerede har nået denne grænse, ikke miste nogen samlinger. De vil dog ikke kunne oprette flere. color: Farven, i RGB hex-format, der skal bruges til rollen i hele UI'en highlighted: Dette gør rollen offentligt synlig name: Offentligt rollennavn, hvis rollen er opsat til fremstå som et badge @@ -386,6 +387,7 @@ da: role: Rolle time_zone: Tidszone user_role: + collection_limit: Maksimalt antal samlinger pr. bruger color: Badge-farve highlighted: Vis rolle som badge på brugerprofiler name: Navn diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index 12ec5d1568529a..d5fea20e4331ac 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -156,6 +156,7 @@ de: other: Wir müssen sicherstellen, dass du mindestens %{count} Jahre alt bist, um %{domain} verwenden zu können. Wir werden diese Information nicht aufbewahren. role: Die Rolle bestimmt, welche Berechtigungen das Konto hat. user_role: + collection_limit: Begrenzt die Anzahl an Sammlungen, die Profile mit dieser Rolle erstellen können. Solltest du die Anzahl verringern, verlieren Konten, die die maximal Anzahl bereits erreicht haben, zwar keine Sammlungen – aber sie können keine weiteren erstellen. color: Farbe, die für diese Rolle im Webinterface verwendet wird, als RGB im Hexadezimalsystem highlighted: Moderative/administrative Rolle im öffentlichen Profil anzeigen name: Name der Rolle, der auch öffentlich als Badge angezeigt wird, sofern dies unten aktiviert ist @@ -382,6 +383,7 @@ de: role: Rolle time_zone: Zeitzone user_role: + collection_limit: Höchstzahl an Sammlungen pro Profil color: Badge-Farbe highlighted: Badge im Profil name: Name diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index e44e033c869fdb..c7f74ea9e80e20 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -160,6 +160,7 @@ el: other: Πρέπει να βεβαιωθούμε ότι είσαι τουλάχιστον %{count} για να χρησιμοποιήσεις το %{domain}. Δε θα το αποθηκεύσουμε. role: Ο ρόλος ελέγχει ποια δικαιώματα έχει ο χρήστης. user_role: + collection_limit: Περιορίζει τον αριθμό των Συλλογών που μπορεί να δημιουργήσει ένας μόνο χρήστης με αυτόν τον ρόλο. Παρακαλούμε σημειώστε ότι όταν μειώσετε αυτόν τον αριθμό, οι χρήστες που βρίσκονται ήδη σε αυτό το όριο δεν θα χάσουν καμία Συλλογή. Αλλά δεν θα μπορούν να δημιουργήσουν επιπρόσθετες. color: Το χρώμα που θα χρησιμοποιηθεί για το ρόλο σε ολόκληρη τη διεπαφή, ως RGB σε δεκαεξαδική μορφή highlighted: Αυτό καθιστά το ρόλο δημόσια ορατό name: Δημόσιο όνομα του ρόλου, εάν ο ρόλος έχει οριστεί να εμφανίζεται ως σήμα @@ -386,6 +387,7 @@ el: role: Ρόλος time_zone: Ζώνη ώρας user_role: + collection_limit: Μέγιστος αριθμός Συλλογών ανά χρήστη color: Χρώμα σήματος highlighted: Εμφάνιση ρόλου ως σήμα στα προφίλ χρηστών name: Όνομα diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 62da9d55741884..92de10b6c878cd 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -160,6 +160,7 @@ es-AR: other: Tenemos que asegurarnos de que al menos tenés %{count} años de edad para usar %{domain}. No almacenaremos esta información. role: El rol controla qué permisos tiene el usuario. user_role: + collection_limit: Limita el número de colecciones que un solo usuario con este rol puede crear. Por favor, tené en cuenta que cuando disminuya este número, los usuarios que ya están en este límite no perderán ninguna colección. Pero no podrán crear otras más. color: Color que se utilizará para el rol a lo largo de la interface de usuario, como RGB en formato hexadecimal highlighted: Esto hace que el rol sea públicamente visible name: Nombre público del rol, si el rol se establece para que se muestre como una insignia @@ -386,6 +387,7 @@ es-AR: role: Rol time_zone: Zona horaria user_role: + collection_limit: Número máximo de colecciones por usuario color: Color de Insignia highlighted: Mostrar rol como insignia en perfiles de usuario name: Nombre diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index e1d366c1a20e23..e380d46bb4467a 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -160,6 +160,7 @@ es-MX: other: Tenemos que asegurarnos de que tienes al menos %{count} para usar %{domain}. No almacenaremos esta información. role: El rol controla qué permisos tiene el usuario. user_role: + collection_limit: Limita el número de colecciones que puede crear un solo usuario con este rol. Ten en cuenta que, si reduces este número, los usuarios que ya hayan alcanzado este límite no perderán ninguna de sus colecciones, pero no podrán crear otras nuevas. color: Color que se usará para el rol en toda la interfaz de usuario, como RGB en formato hexadecimal highlighted: Esto hace que el rol sea públicamente visible name: Nombre público del rol, si el rol se establece para que se muestre como una insignia @@ -386,6 +387,7 @@ es-MX: role: Rol time_zone: Zona horaria user_role: + collection_limit: Número máximo de colecciones por usuario color: Color de insignia highlighted: Mostrar rol como insignia en perfiles de usuario name: Nombre diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index fe9c7a1ac7d418..939554e6d35092 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -160,6 +160,7 @@ es: other: Tenemos que asegurarnos de que tienes al menos %{count} para usar %{domain}. No guardaremos esta información. role: El rol controla qué permisos tiene el usuario. user_role: + collection_limit: Limita el número de Colecciones que un usuario con este rol puede crear. Ten en cuenta que, al reducir este número, los usuarios que superen este límite no perderán ninguna Colección, pero tampoco podrán crear más. color: Color que se utilizará para el rol a lo largo de la interfaz de usuario, como RGB en formato hexadecimal highlighted: Esto hace que el rol sea públicamente visible name: Nombre público del rol, si el rol se establece para que se muestre como una insignia @@ -386,6 +387,7 @@ es: role: Rol time_zone: Zona horaria user_role: + collection_limit: Número máximo de Colecciones por usuario color: Color de insignia highlighted: Mostrar rol como insignia en perfiles de usuario name: Nombre diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 906209ded403a7..0253de08651657 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -160,6 +160,7 @@ et: other: "%{domain} saidi teenuste kasutamiseks pead olema vähemalt %{count} aastat vana. Me ei salvesta neid andmeid." role: Rollid määravad, millised õigused kasutajal on. user_role: + collection_limit: Piirab sellise rolliga kasutaja poolt loodavate kogumike arvu. Pane tähele, et kui vähendad seda arvu, ei kaota kasutajad, kes on juba piirmäära saavutanud, ühtegi kogumikku, aga nad ei saa luua uusi kogumikke. color: Rolli tähistamise värvus üle kasutajaliidese, RGB 16nd-formaadis highlighted: Teeb rolli avalikult nähtavaks name: Rolli avalik nimi, kui roll on märgitud avalikuks kuvamiseks märgina @@ -386,6 +387,7 @@ et: role: Roll time_zone: Ajavöönd user_role: + collection_limit: Kogumike maksimumarv kasutaja kohta color: Märgi värv highlighted: Kuva roll kasutajaprofiilidel märgina name: Nimi diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 7d0a16b34d56b6..d8e16d658ce741 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -160,6 +160,7 @@ fi: other: Meidän tulee varmistaa, että olet vähintään %{count}, jotta voit käyttää %{domain}. Emme tallenna tätä. role: Rooli määrää, millaiset käyttöoikeudet käyttäjällä on. user_role: + collection_limit: Rajoittaa kokoelmien määrää, jonka yksittäinen käyttäjä, jolla on tämä rooli, voi luoda. Huomaa, että kun pienennät tätä lukua, käyttäjät, jotka ovat jo tällä rajalla, eivät menetä yhtäkään kokoelmaa. He eivät kuitenkaan voi luoda uusia rooleja. color: Väri, jota käytetään roolille kaikkialla käyttöliittymässä, RGB-heksadesimaalimuodossa highlighted: Tämä tekee roolista julkisesti näkyvän name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi merkkinä @@ -386,6 +387,7 @@ fi: role: Rooli time_zone: Aikavyöhyke user_role: + collection_limit: Kokoelmien käyttäjäkohtainen enimmäismäärä color: Merkin väri highlighted: Näytä rooli merkkinä käyttäjäprofiileissa name: Nimi diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index df60cf38e5fe80..dd27292e25632d 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -61,6 +61,9 @@ gl: setting_default_quote_policy_private: As publicacións só para seguidoras creadas con Mastodon non poden ser citadas. setting_default_quote_policy_unlisted: Cando alguén te cite, a súa publicación non aparecerá nas cronoloxías de popularidade. setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click + setting_display_media_default: Aviso antes de mostrar multimedia marcado como sensible + setting_display_media_hide_all: Aviso antes de mostrar calquera multimedia + setting_display_media_show_all: Mostrar todo o multimedia sen avisar, incluíndo o multimedia marcado como sensible setting_emoji_style: Forma de mostrar emojis. «Auto» intentará usar os emojis nativos, e se falla recurrirase a Twemoji en navegadores antigos. setting_quick_boosting_html: Se está activo, ao premer na icona %{boost_icon} Promover farase automáticamente a promoción no lugar de abrir o menú despregable promover/citar. Sitúa a acción de citar no menú %{options_icon} (Opcións). setting_system_scrollbars_ui: Aplícase só en navegadores de escritorio baseados en Safari e Chrome @@ -157,6 +160,7 @@ gl: other: Temos que confirmar que tes %{count} anos polo menos para usar %{domain}. Non gardamos este dato. role: Os roles establecen os permisos que ten a usuaria. user_role: + collection_limit: Limita o número de coleccións que unha única usuaria con este rol pode crear. Ten en conta que cando diminúes este número as usuarias que xa acadasen o límite non perderán ningunha colección, mais non poderán crear ningunha nova. color: Cor que se usará para o rol a través da IU, como RGB en formato hex highlighted: Isto fai o rol publicamente visible name: Nome público do rol, se o rol se mostra como unha insignia @@ -383,6 +387,7 @@ gl: role: Rol time_zone: Fuso horario user_role: + collection_limit: Número máximo de coleccións por usuaria color: Cor da insignia highlighted: Mostrar rol como insignia en perfís de usuarias name: Nome diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index be7c7b7d1de75e..85af5ce952002c 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -160,6 +160,7 @@ is: other: Við verðum að ganga úr skugga um að þú hafir náð %{count} aldri til að nota %{domain}. Við munum ekki geyma þessar upplýsingar. role: Hlutverk stýrir hvaða heimildir notandinn hefur. user_role: + collection_limit: Takmarkar fjöldi safna sem hver notandi með þetta hlutverk getur útbúið. Athugaðu að með því að minnka þennan fjölda, þá munu notendur sem þegar eru við þessi mörk ekki missa nein söfn. En þeir munu ekki geta útbúið nein í viðbót. color: Litur sem notaður er fyrir hlutverkið allsstaðar í viðmótinu, sem RGB-gildi á hex-sniði highlighted: Þetta gerir hlutverk sýnilegt opinberlega name: Opinbert heiti hlutverks, ef birta á hlutverk sem merki @@ -386,6 +387,7 @@ is: role: Hlutverk time_zone: Tímabelti user_role: + collection_limit: Hámarksfjöldi safna á hvern notanda color: Litur merkis highlighted: Birta hlutverk sem merki á notandaauðkenni name: Nafn diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 70ba5590946072..3dbd7148db0857 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -160,6 +160,7 @@ nl: other: We moeten er zeker van zijn dat je tenminste %{count} bent om %{domain} te mogen gebruiken. Deze informatie wordt niet door ons opgeslagen. role: De rol bepaalt welke rechten de gebruiker heeft. user_role: + collection_limit: Beperkt het aantal verzamelingen dat een gebruiker met deze rol kan aanmaken. Houd er rekening mee dat wanneer je dit aantal verlaagt, gebruikers die al over deze limiet zijn geen Verzamelingen zullen verliezen. Zij zullen echter niet in staat zijn om er nog meer aan te maken. color: Kleur die gebruikt wordt voor de rol in de UI, als RGB in hexadecimale formaat highlighted: Dit maakt de rol openbaar zichtbaar name: Openbare naam van de rol, wanneer de rol als badge op profielpagina's wordt getoond @@ -386,6 +387,7 @@ nl: role: Rol time_zone: Tijdzone user_role: + collection_limit: Maximum aantal verzamelingen per gebruiker color: Kleur van badge highlighted: Rol als badge op profielpagina's tonen name: Naam diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 3c6c35eb1f9eea..4aa526b97d2bfe 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -160,6 +160,7 @@ pt-BR: other: Temos que ter certeza de que você é pelo menos %{count} para usar o %{domain} Não vamos armazenar isso. role: A função controla quais permissões o usuário tem. user_role: + collection_limit: Limita o número de Coleções que um único usuário com este cargo pode criar. Note que caso reduza o número, usuários que já estavam no limite permitido não perderão nenhuma de suas Coleções. Mas não conseguirão criar Coleções adicionais. color: Cor a ser usada para o cargo em toda a interface do usuário, como RGB no formato hexadecimal highlighted: Isso torna o cargo publicamente visível name: Nome público do cargo, se ele for definido para ser exibido como um distintivo @@ -386,6 +387,7 @@ pt-BR: role: Cargo time_zone: Fuso horário user_role: + collection_limit: Número máximo de Coleções por usuário color: Cor do emblema highlighted: Exibir cargo como distintivo nos perfis de usuários name: Nome diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 227749474ab3f0..508ab46763ad84 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -159,6 +159,7 @@ sq: other: Na duhet të sigurohemi se jeni të paktën %{count} që të përdorni %{domain}. S’do ta depozitojmë këtë. role: Roli kontrollon cilat leje ka përdoruesi. user_role: + collection_limit: Kufizon numrin e Koleksioneve që mund të krijojë një përdorues me këtë rol. Ju lutemi, kini parasysh se kur zvogëloni këtë numër, përdoruesit që janë tashmë në këtë kufi, s’do të humbin ndonjë Koleksion. Por s’do të jenë në gjendje të krijojnë të rinj të tjerë. color: Ngjyrë për t’u përdorur për rolin nëpër UI, si RGB në format gjashtëmbëdhjetësh highlighted: Kjo e bën rolin të dukshëm publikisht name: Emër publik për rolin, nëse roli është ujdisur të shfaqet si një stemë @@ -385,6 +386,7 @@ sq: role: Rol time_zone: Zonë kohore user_role: + collection_limit: Numër maksimum Koleksionesh për përdorues color: Ngjyrë steme highlighted: Shfaqe rolin si një stemë në profile përdoruesish name: Emër diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 3761465e1daa11..7bfe37803fdeb6 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -159,6 +159,7 @@ zh-CN: other: 我们必须确保你至少年满 %{count} 岁才能使用 %{domain}。我们不会存储此信息。 role: 角色用于控制用户拥有的权限。 user_role: + collection_limit: 限制具备此角色的单个用户可创建的收藏列表数量。请注意,当你减少这个数字的时候,已经达到该限制的用户并不会因此失去任何收藏列表,只是会不能再创建新的收藏列表。 color: 在界面各处用于标记该角色的颜色,以十六进制 RGB 格式表示 highlighted: 使角色公开可见 name: 角色的公开名称,将在外显为徽章时使用 @@ -385,6 +386,7 @@ zh-CN: role: 角色 time_zone: 时区 user_role: + collection_limit: 每个用户收藏列表的最大数量 color: 徽章颜色 highlighted: 在用户资料中显示角色徽章 name: 名称 diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index 48e46e03a89415..c48b057a46b8c7 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -159,6 +159,7 @@ zh-TW: other: 我們必須確認您至少年滿 %{count} 以使用 %{domain}。我們不會儲存此資料。 role: 角色控制使用者有哪些權限。 user_role: + collection_limit: 限制此角色單一使用者能建立收藏名單之數量。請注意,當您降低此數值時,已超過此限制之使用者將不會失去任何收藏名單,但將無法新增更多。 color: 於整個使用者介面中用於角色的顏色,十六進位格式的 RGB highlighted: 這將使角色公開可見 name: 角色的公開名稱,如果角色設定為顯示為徽章 @@ -385,6 +386,7 @@ zh-TW: role: 角色 time_zone: 時區 user_role: + collection_limit: 每位使用者收藏名單數量上限 color: 識別顏色 highlighted: 於使用者個人檔案中顯示角色徽章 name: 名稱 From 478dae0ab3420853d1d9ff2f6b3efcb85b322fd3 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 23 Apr 2026 11:16:54 +0200 Subject: [PATCH 274/335] Show collection preview cards and open collections links locally (#38643) --- .../mastodon/api_types/collections.ts | 5 ++-- app/javascript/mastodon/components/status.jsx | 24 ++++++++++----- .../components/status/handled_link.tsx | 13 +++++++++ .../mastodon/components/status_content.jsx | 21 ++++++-------- .../components/collection_lockup.tsx | 4 ++- .../components/collection_menu.tsx | 5 ++-- .../features/collections/editor/details.tsx | 4 ++- .../mastodon/features/collections/utils.ts | 2 ++ .../status/components/detailed_status.tsx | 29 ++++++++++++++----- app/javascript/mastodon/models/status.ts | 3 ++ app/javascript/mastodon/utils/compare_urls.ts | 14 +++++++++ 11 files changed, 92 insertions(+), 32 deletions(-) create mode 100644 app/javascript/mastodon/utils/compare_urls.ts diff --git a/app/javascript/mastodon/api_types/collections.ts b/app/javascript/mastodon/api_types/collections.ts index 3edaa64c95fcce..2ba20eb514c6a0 100644 --- a/app/javascript/mastodon/api_types/collections.ts +++ b/app/javascript/mastodon/api_types/collections.ts @@ -11,7 +11,8 @@ export interface ApiCollectionJSON { account_id: string; id: string; - uri: string | null; + uri: string; + url: string; local: boolean; item_count: number; @@ -56,7 +57,7 @@ export interface CollectionAccountItem { id: string; account_id?: string; // Only present when state is 'accepted' (or the collection is your own) state: 'pending' | 'accepted' | 'rejected' | 'revoked'; - position: number; + created_at: string; } export interface WrappedCollectionAccountItem { diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index 5685a5a891c3d1..a21063496db335 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -547,13 +547,23 @@ class Status extends ImmutablePureComponent { ); } } else if (status.get('card') && !status.get('quote')) { - media = ( - - ); + const cardUrl = status.getIn(['card', 'url']); + + const taggedCollection = ( + status.get('tagged_collections') + ).find((item) => compareUrls(item.get('url'), cardUrl)); + + if (taggedCollection) { + media = ; + } else { + media = ( + + ); + } } const {statusContentProps, hashtagBar} = getHashtagBarForStatus(status); diff --git a/app/javascript/mastodon/components/status/handled_link.tsx b/app/javascript/mastodon/components/status/handled_link.tsx index 5fcea5f8b9841a..55d3c954359f6f 100644 --- a/app/javascript/mastodon/components/status/handled_link.tsx +++ b/app/javascript/mastodon/components/status/handled_link.tsx @@ -4,7 +4,9 @@ import type { ComponentProps, FC } from 'react'; import classNames from 'classnames'; import { Link } from 'react-router-dom'; +import type { ApiCollectionJSON } from '@/mastodon/api_types/collections'; import type { ApiMentionJSON } from '@/mastodon/api_types/statuses'; +import { getCollectionPath } from '@/mastodon/features/collections/utils'; import type { OnElementHandler } from '@/mastodon/utils/html'; export interface HandledLinkProps { @@ -13,6 +15,7 @@ export interface HandledLinkProps { prevText?: string; hashtagAccountId?: string; mention?: Pick; + collection?: Pick; } export const HandledLink: FC> = ({ @@ -21,6 +24,7 @@ export const HandledLink: FC> = ({ prevText, hashtagAccountId, mention, + collection, className, children, ...props @@ -57,6 +61,15 @@ export const HandledLink: FC> = ({ {children} ); + } else if (collection) { + return ( + + {children} + + ); } // Non-absolute paths treated as internal links. This shouldn't happen, but just in case. diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index dbbac833145b1e..920bdbf14e6020 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -18,6 +18,7 @@ import { languages as preloadedLanguages } from 'mastodon/initial_state'; import { EmojiHTML } from './emoji/html'; import { injectIntl } from './intl'; import { HandledLink } from './status/handled_link'; +import { compareUrls } from '../utils/compare_urls'; const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) @@ -71,17 +72,6 @@ const mapStateToProps = state => ({ languages: state.getIn(['server', 'translationLanguages', 'items']), }); -const compareUrls = (href1, href2) => { - try { - const url1 = new URL(href1); - const url2 = new URL(href2); - - return url1.origin === url2.origin && url1.pathname === url2.pathname && url1.search === url2.search; - } catch { - return false; - } -}; - class StatusContent extends PureComponent { static propTypes = { identity: identityContextPropShape, @@ -166,7 +156,13 @@ class StatusContent extends PureComponent { handleElement = (element, { key, ...props }, children) => { if (element instanceof HTMLAnchorElement) { - const mention = this.props.status.get('mentions').find(item => compareUrls(element.href, item.get('url'))); + const mention = this.props.status.get('mentions').find( + item => compareUrls(element.href, item.get('url')) + ); + const taggedCollection = this.props.status.get('tagged_collections').find( + item => compareUrls(element.href, item.get('url')) + ) + return ( {children} diff --git a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx index 45cb59b089bf1a..bbcde0c3bd3d38 100644 --- a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx @@ -13,6 +13,8 @@ import { RelativeTimestamp } from 'mastodon/components/relative_timestamp'; import { useAccount } from 'mastodon/hooks/useAccount'; import { domain } from 'mastodon/initial_state'; +import { getCollectionPath } from '../utils'; + import classes from './collection_lockup.module.scss'; export const AvatarGrid: React.FC<{ @@ -67,7 +69,7 @@ export const CollectionLockup: React.FC = ({ />

    - + {name}

    diff --git a/app/javascript/mastodon/features/collections/components/collection_menu.tsx b/app/javascript/mastodon/features/collections/components/collection_menu.tsx index 661e879df518dd..f5cc518fb8a308 100644 --- a/app/javascript/mastodon/features/collections/components/collection_menu.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_menu.tsx @@ -15,6 +15,7 @@ import type { MenuItem } from 'mastodon/models/dropdown_menu'; import { useAppDispatch } from 'mastodon/store'; import { messages as editorMessages } from '../editor'; +import { getCollectionPath } from '../utils'; const messages = defineMessages({ view: { @@ -120,7 +121,7 @@ export const CollectionMenu: React.FC<{ const menu = useMemo(() => { const viewCollectionItem: MenuItem = { text: intl.formatMessage(messages.view), - to: `/collections/${id}`, + to: getCollectionPath(id), }; const shareItems: MenuItem[] = [ { @@ -130,7 +131,7 @@ export const CollectionMenu: React.FC<{ { text: intl.formatMessage(messages.copyLink), action: () => { - void navigator.clipboard.writeText(`/collections/${id}`); + void navigator.clipboard.writeText(getCollectionPath(id)); dispatch(showAlert({ message: messages.copyLinkConfirmation })); }, }, diff --git a/app/javascript/mastodon/features/collections/editor/details.tsx b/app/javascript/mastodon/features/collections/editor/details.tsx index fe8a17bb342eff..de568137e81ada 100644 --- a/app/javascript/mastodon/features/collections/editor/details.tsx +++ b/app/javascript/mastodon/features/collections/editor/details.tsx @@ -38,6 +38,8 @@ import { } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { getCollectionPath } from '../utils'; + import classes from './styles.module.scss'; import { WizardStepTitle } from './wizard_step_title'; @@ -134,7 +136,7 @@ export const CollectionDetails: React.FC = () => { ).then((result) => { if (isFulfilled(result)) { history.replace(`/@${currentUserName}/collections`); - history.push(`/collections/${result.payload.collection.id}`, { + history.push(getCollectionPath(result.payload.collection.id), { newCollection: true, }); } diff --git a/app/javascript/mastodon/features/collections/utils.ts b/app/javascript/mastodon/features/collections/utils.ts index 60eb5133cb240f..1905edfef1f0a3 100644 --- a/app/javascript/mastodon/features/collections/utils.ts +++ b/app/javascript/mastodon/features/collections/utils.ts @@ -3,3 +3,5 @@ import { isServerFeatureEnabled } from '@/mastodon/utils/environment'; export function areCollectionsEnabled() { return isServerFeatureEnabled('collections'); } + +export const getCollectionPath = (id: string) => `/collections/${id}`; diff --git a/app/javascript/mastodon/features/status/components/detailed_status.tsx b/app/javascript/mastodon/features/status/components/detailed_status.tsx index b85841098a745a..ded57f02d0d404 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.tsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.tsx @@ -29,9 +29,12 @@ import StatusContent from 'mastodon/components/status_content'; import { QuotedStatus } from 'mastodon/components/status_quoted'; import { VisibilityIcon } from 'mastodon/components/visibility_icon'; import { Audio } from 'mastodon/features/audio'; +import { CollectionPreviewCard } from 'mastodon/features/collections/components/collection_preview_card'; import scheduleIdleTask from 'mastodon/features/ui/util/schedule_idle_task'; import { Video } from 'mastodon/features/video'; import { useIdentity } from 'mastodon/identity_context'; +import type { CollectionAttachment } from 'mastodon/models/status'; +import { compareUrls } from 'mastodon/utils/compare_urls'; import Card from './card'; @@ -260,13 +263,25 @@ export const DetailedStatus: React.FC<{ ); } } else if (status.get('card') && !status.get('quote')) { - media = ( - - ); + const cardUrl: string = status.getIn(['card', 'url']); + + const taggedCollection = status + .get('tagged_collections') + .find((item: CollectionAttachment) => + compareUrls(item.get('url'), cardUrl), + ); + + if (taggedCollection) { + media = ; + } else { + media = ( + + ); + } } if (status.get('application')) { diff --git a/app/javascript/mastodon/models/status.ts b/app/javascript/mastodon/models/status.ts index b043edb9ca65d6..668546ea261ad8 100644 --- a/app/javascript/mastodon/models/status.ts +++ b/app/javascript/mastodon/models/status.ts @@ -1,5 +1,6 @@ import type { RecordOf } from 'immutable'; +import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import type { ApiPreviewCardJSON } from 'mastodon/api_types/statuses'; export type { StatusVisibility } from 'mastodon/api_types/statuses'; @@ -10,3 +11,5 @@ export type Status = Immutable.Map; export type Card = RecordOf; export type MediaAttachment = Immutable.Map; + +export type CollectionAttachment = RecordOf; diff --git a/app/javascript/mastodon/utils/compare_urls.ts b/app/javascript/mastodon/utils/compare_urls.ts new file mode 100644 index 00000000000000..de4f6220e84a5c --- /dev/null +++ b/app/javascript/mastodon/utils/compare_urls.ts @@ -0,0 +1,14 @@ +export function compareUrls(href1: string, href2: string) { + try { + const url1 = new URL(href1); + const url2 = new URL(href2); + + return ( + url1.origin === url2.origin && + url1.pathname === url2.pathname && + url1.search === url2.search + ); + } catch { + return false; + } +} From d7b60a2cb6496938d86b17a707e0b49a7fae3a9b Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 23 Apr 2026 13:47:31 +0200 Subject: [PATCH 275/335] Fix preview for local collection links (#38793) --- app/javascript/mastodon/components/status.jsx | 8 ++++++++ .../collections/components/collection_preview_card.tsx | 4 +++- .../features/status/components/detailed_status.tsx | 7 +++++++ app/javascript/styles/mastodon/components.scss | 9 ++++++--- 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx index a21063496db335..a68138125dafd2 100644 --- a/app/javascript/mastodon/components/status.jsx +++ b/app/javascript/mastodon/components/status.jsx @@ -31,6 +31,7 @@ import { getHashtagBarForStatus } from './hashtag_bar'; import StatusActionBar from './status_action_bar'; import StatusContent from './status_content'; import { StatusThreadLabel } from './status_thread_label'; +import { CollectionPreviewCard } from '../features/collections/components/collection_preview_card'; const domParser = new DOMParser(); @@ -564,6 +565,13 @@ class Status extends ImmutablePureComponent { /> ); } + } else if (status.get('tagged_collections').size) { + const firstLinkedCollection = status.get('tagged_collections').first(); + if (firstLinkedCollection) { + media = ( + + ); + } } const {statusContentProps, hashtagBar} = getHashtagBarForStatus(status); diff --git a/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx b/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx index cb7e02f19ddd0b..204e2767c53ba5 100644 --- a/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx @@ -1,3 +1,5 @@ +import classNames from 'classnames'; + import type { CollectionLockupProps } from 'mastodon/features/collections/components/collection_lockup'; import { CollectionLockup } from 'mastodon/features/collections/components/collection_lockup'; @@ -13,7 +15,7 @@ export const CollectionPreviewCard: React.FC = ({ ...otherProps }) => { return ( -
    +
    ); diff --git a/app/javascript/mastodon/features/status/components/detailed_status.tsx b/app/javascript/mastodon/features/status/components/detailed_status.tsx index ded57f02d0d404..03505087626fef 100644 --- a/app/javascript/mastodon/features/status/components/detailed_status.tsx +++ b/app/javascript/mastodon/features/status/components/detailed_status.tsx @@ -282,6 +282,13 @@ export const DetailedStatus: React.FC<{ /> ); } + } else if (status.get('tagged_collections').size) { + const firstLinkedCollection = status.get('tagged_collections').first(); + if (firstLinkedCollection) { + media = ( + + ); + } } if (status.get('application')) { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 2349bc74de09d2..2a491560ba36e6 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1499,8 +1499,9 @@ body > [data-popper-placement] { .media-gallery, .video-player, .audio-player, - .attachment-list { - margin-top: 16px; + .attachment-list, + .collection-preview { + margin-top: 14px; } &--in-thread { @@ -1517,6 +1518,7 @@ body > [data-popper-placement] { & > .picture-in-picture-placeholder, & > .more-from-author, & > .status-card, + & > .collection-preview, & > .hashtag-bar, & > .content-warning, & > .filter-warning, @@ -1787,7 +1789,8 @@ body > [data-popper-placement] { .media-gallery, .video-player, - .audio-player { + .audio-player, + .collection-preview { margin-top: 16px; } From 2f0db28aa4f3813ceddfc588cf1b25169e52bde3 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 23 Apr 2026 14:44:30 +0200 Subject: [PATCH 276/335] Implement collection limit on frontend (#38786) --- .../features/account_featured/index.tsx | 14 ++---- .../features/collections/editor/index.tsx | 46 +++++++++++++++++-- .../collections/editor/styles.module.scss | 4 ++ .../mastodon/features/collections/index.tsx | 38 ++++++++++----- app/javascript/mastodon/initial_state.ts | 1 + app/javascript/mastodon/locales/en.json | 2 + 6 files changed, 79 insertions(+), 26 deletions(-) diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 9acb7ff65c99f6..439016cf9c3a62 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -25,12 +25,9 @@ import Column from 'mastodon/features/ui/components/column'; import { useAccount } from 'mastodon/hooks/useAccount'; import { useAccountId } from 'mastodon/hooks/useAccountId'; import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; -import { - fetchAccountCollections, - selectAccountCollections, -} from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { useAccountCollections } from '../collections'; import { CollectionListItem } from '../collections/components/collection_list_item'; import { areCollectionsEnabled } from '../collections/utils'; @@ -59,10 +56,6 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ useEffect(() => { if (accountId) { void dispatch(fetchEndorsedAccounts({ accountId })); - - if (collectionsEnabled) { - void dispatch(fetchAccountCollections({ accountId })); - } } }, [accountId, dispatch]); @@ -73,9 +66,8 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ ImmutableList(), ) as ImmutableList, ); - const { collections, status: collectionsLoadStatus } = useAppSelector( - (state) => selectAccountCollections(state, accountId ?? null), - ); + const { collections, status: collectionsLoadStatus } = + useAccountCollections(accountId); const { listedCollections = [], unlistedCollections = [] } = Object.groupBy( collections, diff --git a/app/javascript/mastodon/features/collections/editor/index.tsx b/app/javascript/mastodon/features/collections/editor/index.tsx index 63a9e4171e437c..e48e8718cff604 100644 --- a/app/javascript/mastodon/features/collections/editor/index.tsx +++ b/app/javascript/mastodon/features/collections/editor/index.tsx @@ -1,6 +1,6 @@ import { useEffect } from 'react'; -import { defineMessages, useIntl } from 'react-intl'; +import { defineMessages, FormattedMessage, useIntl } from 'react-intl'; import { Helmet } from 'react-helmet'; import { @@ -12,6 +12,9 @@ import { useLocation, } from 'react-router-dom'; +import { Callout } from '@/mastodon/components/callout'; +import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; +import { initialState } from '@/mastodon/initial_state'; import ListAltIcon from '@/material-icons/400-24px/list_alt.svg?react'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; @@ -22,8 +25,11 @@ import { } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; +import { useAccountCollections } from '..'; + import { CollectionAccounts } from './accounts'; import { CollectionDetails } from './details'; +import classes from './styles.module.scss'; export const messages = defineMessages({ create: { @@ -61,11 +67,14 @@ function usePageTitle(id: string | null) { } } +export const userCollectionLimit = initialState?.role?.collection_limit ?? 0; + export const CollectionEditorPage: React.FC<{ multiColumn?: boolean; }> = ({ multiColumn }) => { const intl = useIntl(); const dispatch = useAppDispatch(); + const accountId = useCurrentAccountId(); const { id = null } = useParams<{ id?: string }>(); const { path } = useRouteMatch(); const collection = useAppSelector((state) => @@ -73,7 +82,18 @@ export const CollectionEditorPage: React.FC<{ ); const editorStateId = useAppSelector((state) => state.collections.editor.id); const isEditMode = !!id; - const isLoading = isEditMode && !collection; + + // When creating a new collection, we load the current account's collections + // to determine if they're allowed to create more. + const { collections: collectionList, status: collectionListStatus } = + useAccountCollections(isEditMode ? null : accountId); + + const isLoading = + (isEditMode && !collection) || + (!isEditMode && collectionListStatus === 'loading'); + + const canCreateMoreCollections = + isEditMode || collectionList.length < userCollectionLimit; useEffect(() => { if (id) { @@ -108,7 +128,7 @@ export const CollectionEditorPage: React.FC<{
    {isLoading ? ( - ) : ( + ) : canCreateMoreCollections ? ( } /> + ) : ( + )}
    @@ -133,3 +155,21 @@ export const CollectionEditorPage: React.FC<{ ); }; + +export const MaxCollectionsCallout: React.FC = () => ( + + } + > + + +); diff --git a/app/javascript/mastodon/features/collections/editor/styles.module.scss b/app/javascript/mastodon/features/collections/editor/styles.module.scss index d4b1d2d7f34be4..d1111e746929c9 100644 --- a/app/javascript/mastodon/features/collections/editor/styles.module.scss +++ b/app/javascript/mastodon/features/collections/editor/styles.module.scss @@ -77,3 +77,7 @@ .suggestionGroup { padding-bottom: 4px; } + +.maxCollectionsError { + margin: 16px; +} diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index 200a58620af01f..51848970dd066f 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -25,7 +25,12 @@ import { import { useAppSelector, useAppDispatch } from 'mastodon/store'; import { CollectionListItem } from './components/collection_list_item'; -import { messages as editorMessages } from './editor'; +import { + messages as editorMessages, + MaxCollectionsCallout, + userCollectionLimit, +} from './editor'; +import { areCollectionsEnabled } from './utils'; const messages = defineMessages({ headingMe: { id: 'column.my_collections', defaultMessage: 'My collections' }, @@ -35,24 +40,27 @@ const messages = defineMessages({ }, }); +export function useAccountCollections(accountId: string | null | undefined) { + const dispatch = useAppDispatch(); + + useEffect(() => { + if (accountId && areCollectionsEnabled()) { + void dispatch(fetchAccountCollections({ accountId })); + } + }, [dispatch, accountId]); + + return useAppSelector((state) => selectAccountCollections(state, accountId)); +} + export const Collections: React.FC<{ multiColumn?: boolean; }> = ({ multiColumn }) => { - const dispatch = useAppDispatch(); const intl = useIntl(); const me = useCurrentAccountId(); const accountId = useAccountId(); const account = useAccount(accountId); - const { collections, status } = useAppSelector((state) => - selectAccountCollections(state, accountId), - ); - - useEffect(() => { - if (accountId) { - void dispatch(fetchAccountCollections({ accountId })); - } - }, [dispatch, accountId]); + const { collections, status } = useAccountCollections(accountId); const emptyMessage = status === 'error' || !accountId ? ( @@ -79,6 +87,7 @@ export const Collections: React.FC<{ ); + const canCreateMoreCollections = collections.length < userCollectionLimit; const isOwnCollection = accountId === me; const titleMessage = isOwnCollection ? messages.headingMe @@ -99,7 +108,9 @@ export const Collections: React.FC<{ iconComponent={CollectionsFilledIcon} multiColumn={multiColumn} extraButton={ - isOwnCollection && ( + isOwnCollection && + status === 'idle' && + canCreateMoreCollections && ( + {status === 'idle' && !canCreateMoreCollections && ( + + )} {collections.map((item, index) => ( Date: Thu, 23 Apr 2026 14:47:01 +0200 Subject: [PATCH 277/335] Profile redesign: Show full join date (#38687) --- app/javascript/images/anniversary.svg | 1 + app/javascript/mastodon/actions/compose.js | 3 +- .../components/number_fields/index.tsx | 7 +- .../number_fields/styles.module.scss | 12 + .../components/number_fields.tsx | 31 +- .../account_timeline/modals/field_modal.tsx | 2 +- .../account_timeline/modals/join_modal.tsx | 270 ++++++++++++++++++ .../account_timeline/modals/note_modal.tsx | 2 +- .../account_timeline/modals/styles.module.css | 32 --- .../modals/styles.module.scss | 108 +++++++ .../features/ui/components/modal_root.jsx | 1 + app/javascript/mastodon/locales/en.json | 10 + app/javascript/mastodon/reducers/compose.js | 5 +- .../styles/mastodon/components.scss | 2 +- 14 files changed, 438 insertions(+), 48 deletions(-) create mode 100644 app/javascript/images/anniversary.svg create mode 100644 app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx delete mode 100644 app/javascript/mastodon/features/account_timeline/modals/styles.module.css create mode 100644 app/javascript/mastodon/features/account_timeline/modals/styles.module.scss diff --git a/app/javascript/images/anniversary.svg b/app/javascript/images/anniversary.svg new file mode 100644 index 00000000000000..8663dea7c23786 --- /dev/null +++ b/app/javascript/images/anniversary.svg @@ -0,0 +1 @@ + diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 6e39db4756c857..447612477f5c1c 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -153,10 +153,11 @@ export function resetCompose() { }; } -export const focusCompose = (defaultText = '') => (dispatch, getState) => { +export const focusCompose = (defaultText = '', caretStart = false) => (dispatch, getState) => { dispatch({ type: COMPOSE_FOCUS, defaultText, + caretStart, }); ensureComposeIsVisible(getState); diff --git a/app/javascript/mastodon/components/number_fields/index.tsx b/app/javascript/mastodon/components/number_fields/index.tsx index 3363b210cbc663..3fce23dfd7108d 100644 --- a/app/javascript/mastodon/components/number_fields/index.tsx +++ b/app/javascript/mastodon/components/number_fields/index.tsx @@ -24,9 +24,14 @@ export const NumberFieldsItem: React.FC = ({ link, children, className, + ...restProps }) => { return ( -
  • +
  • {label} {link ? ( diff --git a/app/javascript/mastodon/components/number_fields/styles.module.scss b/app/javascript/mastodon/components/number_fields/styles.module.scss index f8739f7c104c08..f71f690e9caeab 100644 --- a/app/javascript/mastodon/components/number_fields/styles.module.scss +++ b/app/javascript/mastodon/components/number_fields/styles.module.scss @@ -14,6 +14,7 @@ } a, + button, strong { display: block; font-weight: 600; @@ -25,10 +26,21 @@ a { padding: 0; text-decoration: none; + } + a, + button { &:hover, &:focus { text-decoration: underline; } } + + button { + appearance: none; + background: none; + border: none; + display: block; + padding: 0; + } } diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx index 414fd313a48da4..fb6301952f7d76 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx @@ -1,8 +1,9 @@ -import { useMemo } from 'react'; +import { useCallback, useMemo } from 'react'; import type { FC } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; +import { openModal } from '@/mastodon/actions/modal'; import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; import { NumberFields, @@ -10,6 +11,7 @@ import { } from '@/mastodon/components/number_fields'; import { ShortNumber } from '@/mastodon/components/short_number'; import { useAccount } from '@/mastodon/hooks/useAccount'; +import { useAppDispatch } from '@/mastodon/store'; export const AccountNumberFields: FC<{ accountId: string }> = ({ accountId, @@ -21,6 +23,13 @@ export const AccountNumberFields: FC<{ accountId: string }> = ({ [account?.created_at], ); + const dispatch = useAppDispatch(); + const showJoinModal = useCallback(() => { + dispatch( + openModal({ modalType: 'ACCOUNT_JOIN_DATE', modalProps: { accountId } }), + ); + }, [accountId, dispatch]); + if (!account) { return null; } @@ -60,15 +69,17 @@ export const AccountNumberFields: FC<{ accountId: string }> = ({ } hint={intl.formatDate(account.created_at)} > - {createdThisYear ? ( - - ) : ( - - )} + ); diff --git a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx index 9c09be8e2bf36f..d2b05703c2fbac 100644 --- a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx +++ b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx @@ -13,7 +13,7 @@ import { import type { AccountField } from '../common'; import { useFieldHtml } from '../hooks/useFieldHtml'; -import classes from './styles.module.css'; +import classes from './styles.module.scss'; export const AccountFieldModal: FC<{ onClose: () => void; diff --git a/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx new file mode 100644 index 00000000000000..0d21c82482137f --- /dev/null +++ b/app/javascript/mastodon/features/account_timeline/modals/join_modal.tsx @@ -0,0 +1,270 @@ +import { useCallback, useMemo } from 'react'; +import type { FC } from 'react'; + +import { defineMessage, FormattedMessage, useIntl } from 'react-intl'; + +import AnniversaryImage from '@/images/anniversary.svg?react'; +import { focusCompose, resetCompose } from '@/mastodon/actions/compose'; +import { closeModal } from '@/mastodon/actions/modal'; +import { Button } from '@/mastodon/components/button'; +import { DisplayNameSimple } from '@/mastodon/components/display_name/simple'; +import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; +import { IconButton } from '@/mastodon/components/icon_button'; +import { ModalShell, ModalShellBody } from '@/mastodon/components/modal_shell'; +import { useAccount } from '@/mastodon/hooks/useAccount'; +import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; +import { + createAppSelector, + useAppDispatch, + useAppSelector, +} from '@/mastodon/store'; +import CloseIcon from '@/material-icons/400-24px/close.svg?react'; + +import classes from './styles.module.scss'; + +const closeMessage = defineMessage({ + id: 'lightbox.close', + defaultMessage: 'Close', +}); + +const selectServerName = createAppSelector( + [ + (state) => state.accounts, + (_, accountId: string) => accountId, + (state) => state.server.getIn(['server', 'domain']) as string | undefined, + ], + (accounts, accountId, serverDomain) => { + const acct = accounts.getIn([accountId, 'acct']) as string | undefined; + if (!acct) { + return undefined; + } + + const domain = acct.split('@').at(1); + if (domain) { + return domain; + } + + return serverDomain; + }, +); + +export const AccountJoinModal: FC<{ + accountId: string; + onClose: () => void; +}> = ({ accountId, onClose }) => { + const intl = useIntl(); + const account = useAccount(accountId); + const currentId = useCurrentAccountId(); + const isMe = accountId === currentId; + + const createdAtStr = account?.created_at; + const anniversary = useMemo(() => { + if (!createdAtStr) { + return null; + } + const now = new Date(); + const createdAt = new Date(createdAtStr); + if ( + now.getMonth() === createdAt.getMonth() && + now.getDate() === createdAt.getDate() + ) { + return now.getFullYear() - createdAt.getFullYear(); + } + return null; + }, [createdAtStr]); + + const domain = useAppSelector((state) => selectServerName(state, accountId)); + + const dispatch = useAppDispatch(); + const handle = account?.acct; + const handleShare = useCallback(() => { + if (anniversary === null) { + return; + } + + let shareText = '#Fediversary'; + if (anniversary === 0) { + shareText = isMe ? '#firstday' : '#welcome'; + } + + if (!isMe && handle) { + shareText = `@${handle} ${shareText}`; + } + + dispatch(resetCompose()); + dispatch(focusCompose(`\n\n${shareText}`, true)); + dispatch(closeModal({ modalType: 'ACCOUNT_JOIN_DATE', ignoreFocus: true })); + }, [anniversary, handle, dispatch, isMe]); + + return ( + + + + +
    + } + isMe={isMe} + serverName={domain} + anniversary={anniversary} + /> +

    + +

    +
    + + + + +
    +
    + ); +}; + +const AccountJoinMessage: FC<{ + name: React.JSX.Element; + isMe: boolean; + serverName?: string; + anniversary: number | null; +}> = ({ name, isMe, serverName, anniversary }) => { + if (anniversary === 0) { + if (isMe) { + return ( + + ); + } + return ( + + ); + } + + if (isMe) { + if (anniversary !== null && anniversary > 0) { + return ( + + ); + } + return ( + + ); + } + + return ( + + ); +}; + +const AccountAnniversaryImage: FC<{ anniversary: number | null }> = ({ + anniversary, +}) => { + if (anniversary === null) { + return null; + } + + return ( +
    + +

    {anniversary || 1}

    + {anniversary === 0 && ( + + )} + {anniversary > 0 && ( + + )} +
    + ); +}; + +const AccountAnniversaryShare: FC<{ + anniversary: number | null; + onShare: () => void; + isMe: boolean; +}> = ({ anniversary, onShare, isMe }) => { + if (anniversary === null) { + return null; + } + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/account_timeline/modals/note_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/note_modal.tsx index d108a14fd695a4..b8875be037047d 100644 --- a/app/javascript/mastodon/features/account_timeline/modals/note_modal.tsx +++ b/app/javascript/mastodon/features/account_timeline/modals/note_modal.tsx @@ -13,7 +13,7 @@ import { useAppDispatch, useAppSelector } from '@/mastodon/store'; import { ConfirmationModal } from '../../ui/components/confirmation_modals'; -import classes from './styles.module.css'; +import classes from './styles.module.scss'; const messages = defineMessages({ newTitle: { diff --git a/app/javascript/mastodon/features/account_timeline/modals/styles.module.css b/app/javascript/mastodon/features/account_timeline/modals/styles.module.css deleted file mode 100644 index 6266551e2db2dd..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/modals/styles.module.css +++ /dev/null @@ -1,32 +0,0 @@ -.noteCallout { - margin-bottom: 16px; -} - -.noteInput { - min-height: 70px; - width: 100%; - padding: 8px; - border-radius: 8px; - box-sizing: border-box; - background: var(--color-bg-primary); - border: 1px solid var(--color-border-primary); - appearance: none; - resize: none; - margin-top: 4px; -} - -.noteInput:focus-visible { - outline: var(--outline-focus-default); - outline-offset: 2px; -} - -.fieldName, -.fieldValue { - word-break: break-all; -} - -.fieldValue { - color: var(--color-text-primary); - font-weight: 600; - margin-top: 4px; -} diff --git a/app/javascript/mastodon/features/account_timeline/modals/styles.module.scss b/app/javascript/mastodon/features/account_timeline/modals/styles.module.scss new file mode 100644 index 00000000000000..67a4f43d44ee2d --- /dev/null +++ b/app/javascript/mastodon/features/account_timeline/modals/styles.module.scss @@ -0,0 +1,108 @@ +@use '@/styles/mastodon/variables' as *; + +.noteCallout { + margin-bottom: 16px; +} + +.noteInput { + min-height: 70px; + width: 100%; + padding: 8px; + border-radius: 8px; + box-sizing: border-box; + background: var(--color-bg-primary); + border: 1px solid var(--color-border-primary); + appearance: none; + resize: none; + margin-top: 4px; +} + +.noteInput:focus-visible { + outline: var(--outline-focus-default); + outline-offset: 2px; +} + +.fieldName, +.fieldValue { + word-break: break-all; +} + +.fieldValue { + color: var(--color-text-primary); + font-weight: 600; + margin-top: 4px; +} + +@media screen and (min-width: ($mobile-breakpoint + 1)) { + .joinShell { + > :global(.safety-action-modal__top) { + border-bottom-left-radius: 16px; + border-bottom-right-radius: 16px; + border-bottom-width: 1px; + } + } +} + +.joinWrapper { + display: flex; + flex-direction: column; + color: var(--color-text-primary); + align-items: center; + justify-content: center; + position: relative; + min-height: 120px; + gap: 16px; + + p, + h1 { + text-align: center; + } + + p { + font-size: 13px; + } + + h1 { + margin-top: 8px; + margin-bottom: 0; + font-size: 17px; + font-weight: 600; + } +} + +.joinBanner { + width: 120px; + height: 110px; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + + svg { + width: 100%; + position: absolute; + top: 0; + left: 0; + } + + h2 { + font-size: 40px; + font-weight: 600; + line-height: 40px; + margin-top: 8px; + } + + h3 { + font-size: 13px; + color: var(--color-text-secondary); + text-transform: uppercase; + } +} + +.joinClose { + position: absolute; + top: 0; + right: 0; + z-index: 1; +} diff --git a/app/javascript/mastodon/features/ui/components/modal_root.jsx b/app/javascript/mastodon/features/ui/components/modal_root.jsx index ee59e3f8cfb97d..8938223c538e98 100644 --- a/app/javascript/mastodon/features/ui/components/modal_root.jsx +++ b/app/javascript/mastodon/features/ui/components/modal_root.jsx @@ -93,6 +93,7 @@ export const MODAL_COMPONENTS = { 'COMPOSE_PRIVACY': () => Promise.resolve({ default: VisibilityModal }), 'ACCOUNT_NOTE': () => import('@/mastodon/features/account_timeline/modals/note_modal').then(module => ({ default: module.AccountNoteModal })), 'ACCOUNT_FIELD_OVERFLOW': () => import('@/mastodon/features/account_timeline/modals/field_modal').then(module => ({ default: module.AccountFieldModal })), + 'ACCOUNT_JOIN_DATE': () => import('@/mastodon/features/account_timeline/modals/join_modal').then(module => ({ default: module.AccountJoinModal })), 'ACCOUNT_EDIT_NAME': accountEditModal('NameModal'), 'ACCOUNT_EDIT_BIO': accountEditModal('BioModal'), 'ACCOUNT_EDIT_PROFILE_DISPLAY': accountEditModal('ProfileDisplayModal'), diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index e711bdf5e3e645..e8b58bd39551bf 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", "account.in_memoriam": "In Memoriam.", + "account.join_modal.day": "Day", + "account.join_modal.me": "You joined {server} on", + "account.join_modal.me_anniversary": "Happy Fediversary! You joined {server} on", + "account.join_modal.me_today": "It’s your first day on {server}!", + "account.join_modal.other": "{name} joined {server} on", + "account.join_modal.other_today": "It’s {name}’s first day on {server}!", + "account.join_modal.share.celebrate": "Share a celebratory post", + "account.join_modal.share.intro": "Share an intro post", + "account.join_modal.share.welcome": "Share a welcome post", + "account.join_modal.years": "{number, plural, one {year} other {years}}", "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.last_active": "Last active", diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js index 705b3186ba225d..3606eea4e665a5 100644 --- a/app/javascript/mastodon/reducers/compose.js +++ b/app/javascript/mastodon/reducers/compose.js @@ -610,7 +610,10 @@ export const composeReducer = (state = initialState, action) => { case COMPOSE_LANGUAGE_CHANGE: return state.set('language', action.language); case COMPOSE_FOCUS: - return state.set('focusDate', new Date()).update('text', text => text.length > 0 ? text : action.defaultText); + return state + .set('focusDate', new Date()) + .update('text', text => text.length > 0 ? text : action.defaultText) + .update('caretPosition', position => action.caretStart ? 0 : position); case COMPOSE_CHANGE_MEDIA_ORDER: return state.update('media_attachments', list => { const indexA = list.findIndex(x => x.get('id') === action.a); diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 2a491560ba36e6..e498ab20496800 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -6370,7 +6370,7 @@ a.status-card { &__top { border-radius: 16px 16px 0 0; - border-bottom: 0; + border-bottom-width: 0; gap: 16px; } From 7c1d6ab1146d9cf98533c270d724c16468799e46 Mon Sep 17 00:00:00 2001 From: Shlee Date: Thu, 23 Apr 2026 23:02:12 +0930 Subject: [PATCH 278/335] Role "collection limit" setting missing in params (#38794) --- app/controllers/admin/roles_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/roles_controller.rb b/app/controllers/admin/roles_controller.rb index 238d75bf798842..abaa54b4a90e3a 100644 --- a/app/controllers/admin/roles_controller.rb +++ b/app/controllers/admin/roles_controller.rb @@ -62,7 +62,7 @@ def set_role def resource_params params - .expect(user_role: [:name, :color, :highlighted, :position, :require_2fa, permissions_as_keys: []]) + .expect(user_role: [:name, :color, :highlighted, :position, :require_2fa, :collection_limit, permissions_as_keys: []]) end end end From 0142a4a9debcd7eafd29da9c91c15561ecc1d682 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 23 Apr 2026 15:55:35 +0200 Subject: [PATCH 279/335] Update dependency ox to v2.14.24 (#38760) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 86ab28d0443797..b543a1fcc64c5c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -587,7 +587,7 @@ GEM opentelemetry-api (~> 1.0) orm_adapter (0.5.0) ostruct (0.6.3) - ox (2.14.23) + ox (2.14.24) bigdecimal (>= 3.0) parallel (1.28.0) parser (3.3.11.1) From be4ba1495c80d659cd1cddbaa8a683d5fb2ce9c4 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 23 Apr 2026 16:26:19 +0200 Subject: [PATCH 280/335] Remove unused devise strategies (#38795) --- config/initializers/devise.rb | 5 ----- 1 file changed, 5 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index cb3fd28be84f57..2047b091572356 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -98,11 +98,6 @@ def session_cookie manager.default_strategies(scope: :user).unshift :two_factor_ldap_authenticatable if Devise.ldap_authentication manager.default_strategies(scope: :user).unshift :two_factor_pam_authenticatable if Devise.pam_authentication manager.default_strategies(scope: :user).unshift :session_activation_rememberable - - unless ENV['DISABLE_DEVISE_TWO_STRATEGIES'] == 'true' - manager.default_strategies(scope: :user).unshift :two_factor_authenticatable - manager.default_strategies(scope: :user).unshift :two_factor_backupable - end end # The secret key used by Devise. Devise uses this key to generate From a217b633b7ff8ce8c3d7b45e1173e01fbbd0970c Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 23 Apr 2026 19:46:50 +0200 Subject: [PATCH 281/335] Allow defining alt text for server thumbnail (#38796) --- app/models/form/admin_settings.rb | 2 ++ app/serializers/rest/instance_serializer.rb | 1 + app/views/admin/settings/branding/show.html.haml | 5 +++++ config/locales/simple_form.en.yml | 2 ++ config/settings.yml | 1 + 5 files changed, 11 insertions(+) diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb index 29523be542ea23..35e35d5ad5f204 100644 --- a/app/models/form/admin_settings.rb +++ b/app/models/form/admin_settings.rb @@ -22,6 +22,7 @@ class Form::AdminSettings custom_css profile_directory thumbnail + thumbnail_description mascot trends trendable_by_default @@ -109,6 +110,7 @@ class Form::AdminSettings validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) } validates :min_age, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@min_age) } validates :site_short_description, length: { maximum: DESCRIPTION_LIMIT }, if: -> { defined?(@site_short_description) } + validates :thumbnail_description, length: { maximum: DESCRIPTION_LIMIT }, if: -> { defined?(@thumbnail_description) } validates :status_page_url, url: true, allow_blank: true validate :validate_site_uploads validates :landing_page, inclusion: { in: LANDING_PAGE }, if: -> { defined?(@landing_page) } diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 52d7f2b3632eca..1c6252d27a54b1 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -26,6 +26,7 @@ def thumbnail '@1x': full_asset_url(object.thumbnail.file.url(:'@1x')), '@2x': full_asset_url(object.thumbnail.file.url(:'@2x')), }, + description: Setting.thumbnail_description, } else { diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml index 10bb28c20687f1..65aae77d5f0db5 100644 --- a/app/views/admin/settings/branding/show.html.haml +++ b/app/views/admin/settings/branding/show.html.haml @@ -33,6 +33,11 @@ = f.input :thumbnail, as: :file, wrapper: :with_block_label + - if @admin_settings.thumbnail.persisted? + = f.input :thumbnail_description, + as: :text, + input_html: { rows: 2, maxlength: Form::AdminSettings::DESCRIPTION_LIMIT }, + wrapper: :with_block_label .fields-row__column.fields-row__column-6.fields-group - if @admin_settings.thumbnail.persisted? = image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail' diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 249c8202d13cac..7bfc998249a138 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -109,6 +109,7 @@ en: status_page_url: URL of a page where people can see the status of this server during an outage theme: Theme that logged out visitors and new users see. thumbnail: A roughly 2:1 image displayed alongside your server information. + thumbnail_description: A description of the image to help people with visual impairments understand its content. trendable_by_default: Skip manual review of trending content. Individual items can still be removed from trends after the fact. trends: Trends show which posts, hashtags and news stories are gaining traction on your server. wrapstodon: Offer local users to generate a playful summary of their Mastodon use during the year. This feature is available between the 10th and 31st of December of each year, and is offered to users who made at least one Public or Quiet Public post and used at least one hashtag within the year. @@ -317,6 +318,7 @@ en: status_page_url: Status page URL theme: Default theme thumbnail: Server thumbnail + thumbnail_description: Thumbnail alt text trendable_by_default: Allow trends without prior review trends: Enable trends wrapstodon: Enable Wrapstodon diff --git a/config/settings.yml b/config/settings.yml index 3292034f0babcd..9185d24a68d66d 100644 --- a/config/settings.yml +++ b/config/settings.yml @@ -20,6 +20,7 @@ defaults: &defaults preview_sensitive_media: false noindex: false theme: 'default' + thumbnail_description: '' trends: true trendable_by_default: false disallowed_hashtags: # space separated string or list of hashtags without the hash From ff57ef2c9b838ab799bc7262c846d19e5f3355a6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:31:22 +0200 Subject: [PATCH 282/335] Update dependency ox to v2.14.25 (#38798) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index b543a1fcc64c5c..4aee0fb8c4bbe4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -587,7 +587,7 @@ GEM opentelemetry-api (~> 1.0) orm_adapter (0.5.0) ostruct (0.6.3) - ox (2.14.24) + ox (2.14.25) bigdecimal (>= 3.0) parallel (1.28.0) parser (3.3.11.1) From a4e5c3244f88071dbb0179042de4fd6de190aec7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Apr 2026 08:46:34 +0000 Subject: [PATCH 283/335] New Crowdin Translations (automated) (#38800) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 4 ++++ app/javascript/mastodon/locales/da.json | 12 ++++++++++++ app/javascript/mastodon/locales/de.json | 12 ++++++++++++ app/javascript/mastodon/locales/el.json | 12 ++++++++++++ app/javascript/mastodon/locales/es-AR.json | 12 ++++++++++++ app/javascript/mastodon/locales/es-MX.json | 12 ++++++++++++ app/javascript/mastodon/locales/es.json | 12 ++++++++++++ app/javascript/mastodon/locales/et.json | 4 ++++ app/javascript/mastodon/locales/fi.json | 12 ++++++++++++ app/javascript/mastodon/locales/ga.json | 12 ++++++++++++ app/javascript/mastodon/locales/gl.json | 12 ++++++++++++ app/javascript/mastodon/locales/is.json | 12 ++++++++++++ app/javascript/mastodon/locales/it.json | 12 ++++++++++++ app/javascript/mastodon/locales/tr.json | 12 ++++++++++++ app/javascript/mastodon/locales/vi.json | 12 ++++++++++++ app/javascript/mastodon/locales/zh-CN.json | 12 ++++++++++++ app/javascript/mastodon/locales/zh-TW.json | 10 ++++++++++ config/locales/fi.yml | 2 +- config/locales/simple_form.da.yml | 2 ++ config/locales/simple_form.de.yml | 2 ++ config/locales/simple_form.el.yml | 2 ++ config/locales/simple_form.es-AR.yml | 2 ++ config/locales/simple_form.es-MX.yml | 2 ++ config/locales/simple_form.es.yml | 2 ++ config/locales/simple_form.fi.yml | 4 +++- config/locales/simple_form.fr-CA.yml | 2 ++ config/locales/simple_form.fr.yml | 2 ++ config/locales/simple_form.ga.yml | 2 ++ config/locales/simple_form.gl.yml | 2 ++ config/locales/simple_form.is.yml | 2 ++ config/locales/simple_form.it.yml | 4 ++++ config/locales/simple_form.tr.yml | 2 ++ config/locales/simple_form.zh-CN.yml | 2 ++ 33 files changed, 220 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index c89ce40da1f768..fecd161acba854 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -71,6 +71,8 @@ "account.go_to_profile": "Перайсці да профілю", "account.hide_reblogs": "Схаваць пашырэнні ад @{name}", "account.in_memoriam": "У памяць.", + "account.join_modal.me": "Вы далучыліся да {server}", + "account.join_modal.years": "{number, plural, one {# год} few {# гады} many {# гадоў} other {# гады}}", "account.joined_short": "Далучыўся", "account.languages": "Змяніць выбраныя мовы", "account.last_active": "Апошняя актыўнасць", @@ -398,6 +400,8 @@ "collections.manage_accounts": "Кіраванне ўліковымі запісамі", "collections.mark_as_sensitive": "Пазначыць як адчувальную", "collections.mark_as_sensitive_hint": "Схаваць апісанне калекцыі і ўліковыя запісы за банерам з папярэджаннем. Назва калекцыі застанецца бачнай.", + "collections.maximum_collection_count_description": "Ваш сервер дазваляе ствараць да {count} калекцый.", + "collections.maximum_collection_count_reached": "Вы стварылі максімальную колькасць калекцый", "collections.name_length_hint": "Максімум 40 сімвалаў", "collections.new_collection": "Новая калекцыя", "collections.no_collections_yet": "Пакуль няма калекцый.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index ad4ee951d15f16..c03fb903a8fb19 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Gå til profil", "account.hide_reblogs": "Skjul fremhævelser fra @{name}", "account.in_memoriam": "Til minde om.", + "account.join_modal.day": "Dag", + "account.join_modal.me": "Du tilmeldte dig {server}", + "account.join_modal.me_anniversary": "Tillykke med dit fedivers-jubilæum! Du tilmeldte dig {server}", + "account.join_modal.me_today": "Det er din første dag på {server}!", + "account.join_modal.other": "{name} tilmeldte sig {server}", + "account.join_modal.other_today": "Det er {name}’s første dag på {server}!", + "account.join_modal.share.celebrate": "Del et indlæg for at fejre begivenheden", + "account.join_modal.share.intro": "Del et introindlæg", + "account.join_modal.share.welcome": "Del et velkomstindlæg", + "account.join_modal.years": "{number, plural, one {år} other {år}}", "account.joined_short": "Oprettet", "account.languages": "Skift abonnementssprog", "account.last_active": "Senest aktiv", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Administrer konti", "collections.mark_as_sensitive": "Markér som sensitiv", "collections.mark_as_sensitive_hint": "Skjuler samlingens beskrivelse og konti bag en indholdsadvarsel. Samlingens navn vil stadig være synligt.", + "collections.maximum_collection_count_description": "Din server tillader oprettelse af op til {count} samlinger.", + "collections.maximum_collection_count_reached": "Du har oprettet det maksimale antal samlinger", "collections.name_length_hint": "Begrænset til 40 tegn", "collections.new_collection": "Ny samling", "collections.no_collections_yet": "Ingen samlinger endnu.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 31f9b5ecba3291..98b281e5cfbbdd 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Profil aufrufen", "account.hide_reblogs": "Geteilte Beiträge von @{name} ausblenden", "account.in_memoriam": "Zum Andenken.", + "account.join_modal.day": "Tag", + "account.join_modal.me": "Du bist auf {server} dabei seit", + "account.join_modal.me_anniversary": "Happy Fediversary! Du bist auf {server} dabei seit", + "account.join_modal.me_today": "Dein erster Tag auf {server}!", + "account.join_modal.other": "{name} ist auf {server} dabei seit", + "account.join_modal.other_today": "{name} ist seit einem Tag auf {server}!", + "account.join_modal.share.celebrate": "Teile die Feierlichkeit", + "account.join_modal.share.intro": "Teile einen Einblick über dich", + "account.join_modal.share.welcome": "Teile ein herzliches Willkommen", + "account.join_modal.years": "{number, plural, one {Jahr} other {Jahre}}", "account.joined_short": "Dabei seit", "account.languages": "Sprachen verwalten", "account.last_active": "Zuletzt aktiv", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Profile verwalten", "collections.mark_as_sensitive": "Mit Inhaltswarnung versehen", "collections.mark_as_sensitive_hint": "Die Beschreibung sowie enthaltenen Profile werden durch eine Inhaltswarnung ausgeblendet. Der Titel bleibt weiterhin sichtbar.", + "collections.maximum_collection_count_description": "Auf deinem Server darfst du bis zu {count} Sammlungen erstellen.", + "collections.maximum_collection_count_reached": "Du hast die Höchstzahl an Sammlungen erreicht", "collections.name_length_hint": "Maximal 40 Zeichen", "collections.new_collection": "Neue Sammlung", "collections.no_collections_yet": "Bisher keine Sammlungen vorhanden.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 863cb4f03cd148..581b0bc6a72697 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Μετάβαση στο προφίλ", "account.hide_reblogs": "Απόκρυψη ενισχύσεων από @{name}", "account.in_memoriam": "Εις μνήμην.", + "account.join_modal.day": "Ημέρα", + "account.join_modal.me": "Έγινες μέλος στο {server} στις", + "account.join_modal.me_anniversary": "Ευτυχισμένο Fediversary! Έγινες μέλος στο {server} στις", + "account.join_modal.me_today": "Είναι η πρώτη σου μέρα στο {server}!", + "account.join_modal.other": "Ο/Η {name} έγινε μέλος στο {server} στις", + "account.join_modal.other_today": "Είναι η πρώτη μέρα του/της {name} στο {server}!", + "account.join_modal.share.celebrate": "Μοιράσου μια εορταστική ανάρτηση", + "account.join_modal.share.intro": "Μοιράσου μια εισαγωγική ανάρτηση", + "account.join_modal.share.welcome": "Μοιράσου μια ανάρτηση καλωσορίσματος", + "account.join_modal.years": "{number, plural, one {χρόνος} other {χρόνια}}", "account.joined_short": "Έγινε μέλος", "account.languages": "Αλλαγή εγγεγραμμένων γλωσσών", "account.last_active": "Τελευταία ενεργός", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Διαχείριση λογαριασμών", "collections.mark_as_sensitive": "Σήμανση ως ευαίσθητο", "collections.mark_as_sensitive_hint": "Κρύβει την περιγραφή και τους λογαριασμούς της συλλογής πίσω από μια προειδοποίηση περιεχομένου. Το όνομα της συλλογής θα είναι ακόμη ορατό.", + "collections.maximum_collection_count_description": "Ο εξυπηρετητής σου επιτρέπει την δημιουργία μέχρι {count} συλλογών.", + "collections.maximum_collection_count_reached": "Έχεις δημιουργήσει τον μέγιστο αριθμό συλλογών", "collections.name_length_hint": "Όριο 40 χαρακτήρων", "collections.new_collection": "Νέα συλλογή", "collections.no_collections_yet": "Καμία συλλογή ακόμη.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 32ae1b26fc6f01..d89ec3d6427f91 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar adhesiones de @{name}", "account.in_memoriam": "Cuenta conmemorativa.", + "account.join_modal.day": "Día", + "account.join_modal.me": "Te uniste a {server} el", + "account.join_modal.me_anniversary": "¡Feliz Fediversario! Te uniste a {server} el", + "account.join_modal.me_today": "¡Es tu primer día en {server}!", + "account.join_modal.other": "{name} se unió a {server} el", + "account.join_modal.other_today": "¡Es el primer día de {name} en {server}!", + "account.join_modal.share.celebrate": "Compartí un mensaje conmemorativo", + "account.join_modal.share.intro": "Compartí un mensaje introductorio", + "account.join_modal.share.welcome": "Compartí un mensaje de bienvenida", + "account.join_modal.years": "{number, plural, one {# año} other {# años}}", "account.joined_short": "En este servidor desde el", "account.languages": "Cambiar idiomas suscritos", "account.last_active": "Última actividad", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Administrar cuentas", "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta la descripción de la colección y las cuentas detrás de una advertencia de contenido. El nombre de la colección seguirá siendo visible.", + "collections.maximum_collection_count_description": "Tu servidor permite creaciones de hasta {count} colecciones.", + "collections.maximum_collection_count_reached": "Creaste el número máximo de colecciones", "collections.name_length_hint": "Límite de 40 caracteres", "collections.new_collection": "Nueva colección", "collections.no_collections_yet": "No hay colecciones aún.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 29b3fd0964e1e5..fbc9821486f7d0 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar impulsos de @{name}", "account.in_memoriam": "En memoria.", + "account.join_modal.day": "Día", + "account.join_modal.me": "Te uniste a {server} el", + "account.join_modal.me_anniversary": "¡Feliz Fediversario! Te uniste a {server} el", + "account.join_modal.me_today": "¡Es tu primer día en {server}!", + "account.join_modal.other": "{name} se unió a {server} el", + "account.join_modal.other_today": "¡Es el primer día de {name} en {server}!", + "account.join_modal.share.celebrate": "Compartir una publicación para celebrarlo", + "account.join_modal.share.intro": "Compartir una publicación de presentación", + "account.join_modal.share.welcome": "Compartir una publicación de bienvenida", + "account.join_modal.years": "{number, plural, one {año} other {# años}}", "account.joined_short": "Se unió", "account.languages": "Cambiar idiomas suscritos", "account.last_active": "Última actividad", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Administrar cuentas", "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta la descripción y las cuentas de la colección detrás de una advertencia de contenido. El nombre de la colección seguirá siendo visible.", + "collections.maximum_collection_count_description": "Tu servidor permite la creación de hasta {count} colecciones.", + "collections.maximum_collection_count_reached": "Has creado el número máximo de colecciones", "collections.name_length_hint": "Limitado a 40 caracteres", "collections.new_collection": "Nueva colección", "collections.no_collections_yet": "No hay colecciones todavía.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index ed6e43e5cf4029..fa35354502d77b 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ir al perfil", "account.hide_reblogs": "Ocultar impulsos de @{name}", "account.in_memoriam": "Cuenta conmemorativa.", + "account.join_modal.day": "Día", + "account.join_modal.me": "Te uniste a {server} el", + "account.join_modal.me_anniversary": "¡Feliz Fediversario! Te uniste a {server} el", + "account.join_modal.me_today": "¡Es tu primer día en {server}!", + "account.join_modal.other": "{name} se unió a {server} el", + "account.join_modal.other_today": "¡Es el primer día de {name} en {server}!", + "account.join_modal.share.celebrate": "Compartir una publicación para celebrarlo", + "account.join_modal.share.intro": "Compartir una publicación de presentación", + "account.join_modal.share.welcome": "Compartir una publicación de bienvenida", + "account.join_modal.years": "{number, plural, one {año} other {# años}}", "account.joined_short": "Se unió", "account.languages": "Cambiar idiomas suscritos", "account.last_active": "Última actividad", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Administrar cuentas", "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta la descripción de la colección y las cuentas detrás de una advertencia de contenido. El nombre de la colección seguirá siendo visible.", + "collections.maximum_collection_count_description": "Tu servidor permite la creación de hasta {count} colecciones.", + "collections.maximum_collection_count_reached": "Has creado el número máximo de colecciones", "collections.name_length_hint": "Límite de 40 caracteres", "collections.new_collection": "Nueva colección", "collections.no_collections_yet": "Aún no hay colecciones.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index b70fc916c07b08..72b17ffcce2d43 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -71,6 +71,10 @@ "account.go_to_profile": "Vaata profiili", "account.hide_reblogs": "Peida @{name} jagamised", "account.in_memoriam": "In Memoriam.", + "account.join_modal.day": "Päev", + "account.join_modal.me": "Ühinesid {server} kohas", + "account.join_modal.me_anniversary": "Rõõmsat Födiversumist! Ühinesid {server} kohas", + "account.join_modal.me_today": "See on sinu esimene päev kohas {server}!", "account.joined_short": "Liitus", "account.languages": "Muuda tellitud keeli", "account.last_active": "Viimati aktiivne", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index fca636214918ba..19d13bc4365173 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Siirry profiiliin", "account.hide_reblogs": "Piilota käyttäjän @{name} tehostukset", "account.in_memoriam": "Muistoissamme.", + "account.join_modal.day": "päivä", + "account.join_modal.me": "Liityit palvelimelle {server}", + "account.join_modal.me_anniversary": "Hyvää fediversumin vuosipäivää! Liityit palvelimelle {server}", + "account.join_modal.me_today": "On ensimmäinen päiväsi palvelimella {server}!", + "account.join_modal.other": "{name} liittyi palvelimelle {server}", + "account.join_modal.other_today": "On käyttäjän {name} ensimmäinen päivä palvelimella {server}!", + "account.join_modal.share.celebrate": "Jaa juhlajulkaisu", + "account.join_modal.share.intro": "Jaa esittelyjulkaisu", + "account.join_modal.share.welcome": "Jaa tervetulojulkaisu", + "account.join_modal.years": "{number, plural, one {vuosi} other {vuotta}}", "account.joined_short": "Liittynyt", "account.languages": "Vaihda tilattuja kieliä", "account.last_active": "Viimeksi aktiivisena", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Hallitse tilejä", "collections.mark_as_sensitive": "Merkitse arkaluonteiseksi", "collections.mark_as_sensitive_hint": "Piilottaa kokoelman kuvauksen ja tilit sisältövaroituksen taakse. Kokoelman nimi jää esiin.", + "collections.maximum_collection_count_description": "Palvelimesi sallii enintään {count} kokoelman luomisen.", + "collections.maximum_collection_count_reached": "Olet luonut enimmäismäärän kokoelmia", "collections.name_length_hint": "40 merkin rajoitus", "collections.new_collection": "Uusi kokoelma", "collections.no_collections_yet": "Ei vielä kokoelmia.", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 411829b61f140c..3193dce5d8edde 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Téigh go dtí próifíl", "account.hide_reblogs": "Folaigh moltaí ó @{name}", "account.in_memoriam": "Ón tseanaimsir.", + "account.join_modal.day": "Lá", + "account.join_modal.me": "Chuaigh tú isteach i {server} ar", + "account.join_modal.me_anniversary": "Lá Féile sona duit! Chuaigh tú isteach i {server} ar", + "account.join_modal.me_today": "Seo é do chéad lá ar {server}!", + "account.join_modal.other": "Chuaigh {name} isteach i {server} ar", + "account.join_modal.other_today": "Seo é an chéad lá ag {name} ar {server}!", + "account.join_modal.share.celebrate": "Roinn post ceiliúrtha", + "account.join_modal.share.intro": "Comhroinn post réamhrá", + "account.join_modal.share.welcome": "Roinn post fáilte", + "account.join_modal.years": "{number, plural, one {bliain} two {blianta} few {blianta} many {blianta} other {blianta}}", "account.joined_short": "Cláraithe", "account.languages": "Athraigh teangacha foscríofa", "account.last_active": "Gníomhach deireanach", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Bainistigh cuntais", "collections.mark_as_sensitive": "Marcáil mar íogair", "collections.mark_as_sensitive_hint": "Folaíonn sé cur síos agus cuntais an bhailiúcháin taobh thiar de rabhadh ábhair. Beidh ainm an bhailiúcháin le feiceáil fós.", + "collections.maximum_collection_count_description": "Ceadaíonn do fhreastalaí cruthú suas le {count} bailiúchán.", + "collections.maximum_collection_count_reached": "Tá an líon uasta bailiúcháin cruthaithe agat", "collections.name_length_hint": "Teorainn 40 carachtar", "collections.new_collection": "Bailiúchán nua", "collections.no_collections_yet": "Gan aon bhailiúcháin fós.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 1c02792935109d..4e8e27e1704376 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ir ao perfil", "account.hide_reblogs": "Agochar promocións de @{name}", "account.in_memoriam": "Lembranzas.", + "account.join_modal.day": "Día", + "account.join_modal.me": "Unícheste a {server} o", + "account.join_modal.me_anniversary": "Feliz Fediversario! Chegaches a {server} o", + "account.join_modal.me_today": "É o teu primeiro día en {server}!", + "account.join_modal.other": "{name} uníuse a {server} o", + "account.join_modal.other_today": "É o primeiro día de {name} en {server}!", + "account.join_modal.share.celebrate": "Comparte unha mensaxe de celebración", + "account.join_modal.share.intro": "Comparte unha mensaxe de presentación", + "account.join_modal.share.welcome": "Comparte unha mensaxe de benvida", + "account.join_modal.years": "{number, plural, one {ano} other {anos}}", "account.joined_short": "Uniuse", "account.languages": "Modificar os idiomas subscritos", "account.last_active": "Última actividade", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Xestionar contas", "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta a descrición e contas da colección detrás dun aviso sobre o contido. O nome da colección permanece visible.", + "collections.maximum_collection_count_description": "O teu servidor permíteche crear ata {count} coleccións.", + "collections.maximum_collection_count_reached": "Creaches o número máximo de coleccións", "collections.name_length_hint": "Límite de 40 caracteres", "collections.new_collection": "Nova colección", "collections.no_collections_yet": "Aínda non tes coleccións.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index b5aad95625eae0..5d1fa4e1f76435 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Fara í notandasnið", "account.hide_reblogs": "Fela endurbirtingar fyrir @{name}", "account.in_memoriam": "Minning.", + "account.join_modal.day": "daginn", + "account.join_modal.me": "Þú skráðir þig á {server} þann", + "account.join_modal.me_anniversary": "Til hamingju með daginn! Þú skráðir þig á {server} þann", + "account.join_modal.me_today": "Þetta er fyrsti dagurinn þinn á {server}!", + "account.join_modal.other": "{name} skráði sig á {server} þann", + "account.join_modal.other_today": "Þetta er fyrsti dagurinn hjá {name} á {server}!", + "account.join_modal.share.celebrate": "Deila fagnaðarfærslu", + "account.join_modal.share.intro": "Deila kynningarfærslu", + "account.join_modal.share.welcome": "Deila móttökufærslu", + "account.join_modal.years": "{number, plural, one {ár} other {ár}}", "account.joined_short": "Gerðist þátttakandi", "account.languages": "Breyta tungumálum í áskrift", "account.last_active": "Síðasta virkni", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Sýsla með notandaaðganga", "collections.mark_as_sensitive": "Merkja sem viðkvæmt", "collections.mark_as_sensitive_hint": "Felur lýsingu safnsins og notendur á bakvið aðvörun vegna efnis. Nafn safnsins verður áfram sýnilegt.", + "collections.maximum_collection_count_description": "Netþjónninn þinn leyfir gerð á allt að {count} söfnum.", + "collections.maximum_collection_count_reached": "Þú hefur útbúið leyfilegan hámarksfjölda safna", "collections.name_length_hint": "40 stafa takmörk", "collections.new_collection": "Nýtt safn", "collections.no_collections_yet": "Engin söfn ennþá.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index a297a95f1009b2..973a13aede610d 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Vai al profilo", "account.hide_reblogs": "Nascondi condivisioni da @{name}", "account.in_memoriam": "In memoria.", + "account.join_modal.day": "Giorno", + "account.join_modal.me": "Ti sei iscritto/a su {server} il", + "account.join_modal.me_anniversary": "Buon Fediversario! Ti sei iscritto/a su {server} il", + "account.join_modal.me_today": "È il tuo primo giorno su {server}!", + "account.join_modal.other": "{name} si è iscritto/a su {server} il", + "account.join_modal.other_today": "È il primo giorno di {name} su {server}!", + "account.join_modal.share.celebrate": "Condividi un post celebrativo", + "account.join_modal.share.intro": "Condividi un post introduttivo", + "account.join_modal.share.welcome": "Condividi un post di benvenuto", + "account.join_modal.years": "{number, plural, one {anno} other {anni}}", "account.joined_short": "Iscritto", "account.languages": "Modifica le lingue d'iscrizione", "account.last_active": "Ultima attività", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Gestisci account", "collections.mark_as_sensitive": "Segna come sensibile", "collections.mark_as_sensitive_hint": "Nasconde la descrizione e gli account della collezione dietro un avviso di contenuto. Il nome della collezione rimarrà visibile.", + "collections.maximum_collection_count_description": "Il tuo server consente la creazione di un massimo di {count} collezioni.", + "collections.maximum_collection_count_reached": "Hai creato il numero massimo di collezioni", "collections.name_length_hint": "Limite di 40 caratteri", "collections.new_collection": "Nuova collezione", "collections.no_collections_yet": "Nessuna collezione ancora.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index e83b289fe82093..76d1402e439cea 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Profile git", "account.hide_reblogs": "@{name} kişisinin yeniden paylaşımlarını gizle", "account.in_memoriam": "Hatırasına.", + "account.join_modal.day": "Gün", + "account.join_modal.me": "{server} sunucusuna katıldığınız tarih", + "account.join_modal.me_anniversary": "Fediversary kutlu olsun! {server} sunucusuna katıldığınız tarih", + "account.join_modal.me_today": "{server} sunucusunda ilk gününüz!", + "account.join_modal.other": "{name}, {server} sunucusuna katıldığı tarih", + "account.join_modal.other_today": "{name} kişisinin {server} sunucusunda ilk günü!", + "account.join_modal.share.celebrate": "Kutlama amaçlı bir paylaşım yapın", + "account.join_modal.share.intro": "Tanıtım için bir paylaşım yapın", + "account.join_modal.share.welcome": "Bir hoşgeldiniz paylaşımı yapın", + "account.join_modal.years": "{number, plural, one {yıl} other {yıl}}", "account.joined_short": "Katıldı", "account.languages": "Abone olunan dilleri değiştir", "account.last_active": "Son etkin", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Hesapları yönet", "collections.mark_as_sensitive": "Hassas olarak işaretle", "collections.mark_as_sensitive_hint": "Koleksiyonun açıklamasını ve hesaplarını içerik uyarısının arkasında gizler. Koleksiyon adı hala görünür olacaktır.", + "collections.maximum_collection_count_description": "Sunucusunuz en fazla {count} koleksiyon oluşturmanıza izin veriyor.", + "collections.maximum_collection_count_reached": "Maksimum koleksiyon sayısına ulaştınız", "collections.name_length_hint": "40 karakterle sınırlı", "collections.new_collection": "Yeni koleksiyon", "collections.no_collections_yet": "Henüz hiçbir koleksiyon yok.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 9a4eace0bfc1a1..d21c45687afeb0 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Xem hồ sơ", "account.hide_reblogs": "Ẩn tút @{name} đăng lại", "account.in_memoriam": "Tưởng Niệm.", + "account.join_modal.day": "Ngày", + "account.join_modal.me": "Bạn đã tham gia {server} vào", + "account.join_modal.me_anniversary": "Happy Fediversary! Bạn đã tham gia {server} vào", + "account.join_modal.me_today": "Đó là ngày đầu tiên của bạn trên {server}!", + "account.join_modal.other": "{name} đã tham gia {server} vào", + "account.join_modal.other_today": "Đó là ngày đầu tiên của {name} trên {server}!", + "account.join_modal.share.celebrate": "Chia sẻ một tút kỷ niệm", + "account.join_modal.share.intro": "Chia sẻ một tút giới thiệu", + "account.join_modal.share.welcome": "Chia sẻ một tút chào mừng", + "account.join_modal.years": "{number, plural, other {năm}}", "account.joined_short": "Năm", "account.languages": "Đổi ngôn ngữ mong muốn", "account.last_active": "Hoạt động lần cuối", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Quản lý tài khoản", "collections.mark_as_sensitive": "Đánh dấu nhạy cảm", "collections.mark_as_sensitive_hint": "Ẩn phần mô tả và các tài khoản của gói khởi đầu phía sau cảnh báo nội dung. Tên gói khởi đầu vẫn hiển thị.", + "collections.maximum_collection_count_description": "Máy chủ của bạn cho phép tạo tối đa {count} gói khởi đầu.", + "collections.maximum_collection_count_reached": "Bạn đã đạt đến số lượng gói khởi đầu tối đa", "collections.name_length_hint": "Giới hạn 40 ký tự", "collections.new_collection": "Gói khởi đầu mới", "collections.no_collections_yet": "Chưa có gói khởi đầu.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 1a0ea677aeea2f..22ea5db0d75f1b 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -71,6 +71,16 @@ "account.go_to_profile": "前往个人资料页", "account.hide_reblogs": "隐藏来自 @{name} 的转嘟", "account.in_memoriam": "谨此悼念。", + "account.join_modal.day": "天", + "account.join_modal.me": "你加入 {server} 的时间为", + "account.join_modal.me_anniversary": "加入 Mastodon 一周年快乐!你加入 {server} 的时间为", + "account.join_modal.me_today": "这是你加入 {server} 的第一天!", + "account.join_modal.other": "{name} 加入 {server} 的时间为", + "account.join_modal.other_today": "这是 {name} 加入 {server} 的第一天!", + "account.join_modal.share.celebrate": "分享纪念嘟文", + "account.join_modal.share.intro": "分享介绍嘟文", + "account.join_modal.share.welcome": "分享欢迎嘟文", + "account.join_modal.years": "{number, plural, other {年}}", "account.joined_short": "加入于", "account.languages": "更改订阅语言", "account.last_active": "上次活跃", @@ -398,6 +408,8 @@ "collections.manage_accounts": "管理账号", "collections.mark_as_sensitive": "标记为敏感内容", "collections.mark_as_sensitive_hint": "将此收藏列表的说明用内容警告隐藏。此收藏列表的名称仍将可见。", + "collections.maximum_collection_count_description": "你的服务器最多只支持创建 {count} 个收藏列表。", + "collections.maximum_collection_count_reached": "你创建的收藏列表数量已达上限", "collections.name_length_hint": "40 字限制", "collections.new_collection": "新建收藏列表", "collections.no_collections_yet": "尚无收藏列表。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 1bad27521ce7ca..c0804f32e980b7 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -71,6 +71,16 @@ "account.go_to_profile": "前往個人檔案", "account.hide_reblogs": "隱藏來自 @{name} 之轉嘟", "account.in_memoriam": "謹此悼念。", + "account.join_modal.day": "日", + "account.join_modal.me": "您加入 {server} 的時間為", + "account.join_modal.me_anniversary": "聯邦宇宙週年快了!您加入 {server} 的時間為", + "account.join_modal.me_today": "這是您在 {server} 的第一天!", + "account.join_modal.other": "{name} 加入 {server} 的時間為", + "account.join_modal.other_today": "這是 {name} 在 {server} 的第一天!", + "account.join_modal.share.celebrate": "分享慶祝嘟文", + "account.join_modal.share.intro": "分享介紹嘟文", + "account.join_modal.share.welcome": "分享歡迎嘟文", + "account.join_modal.years": "{number, plural, other {年}}", "account.joined_short": "加入時間", "account.languages": "變更訂閱的語言", "account.last_active": "上次活躍時間", diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 72d82b37fe0218..1ab60ce642f53e 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -2200,7 +2200,7 @@ fi: feature_audience_title: Rakenna yleisöäsi luottavaisin mielin feature_control: Tiedät itse parhaiten, mitä haluat nähdä kotisyötteessäsi. Ei algoritmeja eikä mainoksia tuhlaamassa aikaasi. Seuraa yhdellä tilillä ketä tahansa, miltä tahansa Mastodon-palvelimelta, vastaanota heidän julkaisunsa aikajärjestyksessä ja tee omasta internetin nurkastasi hieman enemmän omanlaisesi. feature_control_title: Pidä aikajanasi hallussasi - feature_creativity: Mastodon tukee ääni-, video- ja kuvajulkaisuja, saavutettavuuskuvauksia, äänestyksiä, sisältövaroituksia, animoituja avattaria, mukautettuja emojeita, pienoiskuvien rajauksen hallintaa ja paljon muuta, mikä auttaa ilmaisemaan itseäsi verkossa. Julkaisetpa sitten taidetta, musiikkia tai podcastia, Mastodon on sinua varten. + feature_creativity: Mastodon tukee ääni-, video- ja kuvajulkaisuja, saavutettavuuskuvauksia, äänestyksiä, sisältövaroituksia, animoituja avattaria, mukautettuja emojeita, pikkukuvien rajauksen hallintaa ja paljon muuta, mikä auttaa ilmaisemaan itseäsi verkossa. Julkaisetpa sitten taidetta, musiikkia tai podcastia, Mastodon on sinua varten. feature_creativity_title: Luovuutta vertaansa vailla feature_moderation: Mastodon palauttaa päätöksenteon käsiisi. Jokainen palvelin luo omat sääntönsä ja määräyksensä, joita valvotaan paikallisesti eikä ylhäältä alas kuten kaupallisessa sosiaalisessa mediassa, mikä tekee siitä joustavimman vastaamaan eri ihmisryhmien tarpeisiin. Liity palvelimelle, jonka säännöt sopivat sinulle, tai ylläpidä omaa palvelinta. feature_moderation_title: Moderointi juuri kuten sen pitäisi olla diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml index a325affdc9f364..99e4525106f8d4 100644 --- a/config/locales/simple_form.da.yml +++ b/config/locales/simple_form.da.yml @@ -109,6 +109,7 @@ da: status_page_url: URL'en til en side, hvor status for denne server kan ses under en afbrydelse theme: Tema, som udloggede besøgende og nye brugere ser. thumbnail: Et ca. 2:1 billede vist sammen med dine serveroplysninger. + thumbnail_description: En beskrivelse af billedet, der hjælper personer med synshandicap med at forstå dets indhold. trendable_by_default: Spring manuel gennemgang af trendindhold over. Individuelle elementer kan stadig fjernes fra trends efter kendsgerningen. trends: Trends viser, hvilke indlæg, hashtags og nyhedshistorier der opnår momentum på din server. wrapstodon: Tilbyd lokale brugere at generere en sjov oversigt over deres brug af Mastodon i løbet af året. Denne funktion er tilgængelig mellem den 10. og 31. december hvert år og tilbydes til brugere, der har lavet mindst ét offentligt eller stille offentligt indlæg og brugt mindst ét hashtag i løbet af året. @@ -317,6 +318,7 @@ da: status_page_url: Statusside-URL theme: Standardtema thumbnail: Serverminiaturebillede + thumbnail_description: Alt-tekst til miniaturebillede trendable_by_default: Tillad ikke-reviderede trends trends: Aktivér trends wrapstodon: Aktivér Wrapstodon diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index d5fea20e4331ac..e845fcc833575f 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -106,6 +106,7 @@ de: status_page_url: Link zu einer Internetseite, auf der der Serverstatus während eines Ausfalls angezeigt wird theme: Das Design, das nicht angemeldete Personen sehen. thumbnail: Ein Bild ungefähr im 2:1-Format, das neben den Server-Informationen angezeigt wird. + thumbnail_description: Eine Beschreibung des Bildes, damit Menschen, die blind oder sehbehindert sind, den Inhalt besser verstehen und einordnen können. trendable_by_default: Manuelles Überprüfen angesagter Inhalte überspringen. Einzelne Elemente können später noch aus den Trends entfernt werden. trends: Trends zeigen, welche Beiträge, Hashtags und Nachrichten auf deinem Server immer beliebter werden. wrapstodon: Ermöglicht Nutzer*innen dieses Servers einen spielerischen Jahresrückblick ihrer Mastodon-Aktivität zu erstellen. Diese Funktion ist jedes Jahr zwischen dem 10. und 31. Dezember verfügbar und wird Nutzer*innen angeboten, die innerhalb des Jahres mindestens einen öffentlichen oder stillen Beitrag verfasst und mindestens einen Hashtag verwendet haben. @@ -313,6 +314,7 @@ de: status_page_url: Statusseite (URL) theme: Standard-Design thumbnail: Vorschaubild des Servers + thumbnail_description: Bildbeschreibung des Vorschaubilds trendable_by_default: Trends ohne vorherige Überprüfung erlauben trends: Trends aktivieren wrapstodon: Wrapstodon aktivieren diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml index c7f74ea9e80e20..2a346840dcb3ca 100644 --- a/config/locales/simple_form.el.yml +++ b/config/locales/simple_form.el.yml @@ -109,6 +109,7 @@ el: status_page_url: Το URL μιας σελίδας όπου κάποιος μπορεί να δει την κατάσταση αυτού του διακομιστή κατά τη διάρκεια μιας διακοπής λειτουργίας theme: Θέμα που βλέπουν αποσυνδεδεμένοι επισκέπτες ή νέοι χρήστες. thumbnail: Μια εικόνα περίπου 2:1 που εμφανίζεται παράλληλα με τις πληροφορίες του διακομιστή σου. + thumbnail_description: Μια περιγραφή της εικόνας για να βοηθήσει τα άτομα με προβλήματα όρασης να κατανοήσουν το περιεχόμενό της. trendable_by_default: Παράλειψη χειροκίνητου ελέγχου του περιεχομένου σε τάση. Μεμονωμένα στοιχεία μπορούν ακόμη να αφαιρεθούν από τις τάσεις μετέπειτα. trends: Τάσεις δείχνουν ποιες αναρτήσεις, ετικέτες και ειδήσεις προκαλούν έλξη στο διακομιστή σας. wrapstodon: Πρόσφερε στους τοπικούς χρήστες τη δυνατότητα να δημιουργήσουν μια παιχνιδιάρικη σύνοψη της χρήσης τους του Mastodon κατά τη διάρκεια του έτους. Αυτή η λειτουργία είναι διαθέσιμη μεταξύ της 10ης και της 31ης Δεκεμβρίου κάθε έτους, και προσφέρεται σε χρήστες που έκαναν τουλάχιστον μία δημόσια ή ήσυχα δημόσια ανάρτηση και χρησιμοποίησαν τουλάχιστον μία ετικέτα εντός του έτους. @@ -317,6 +318,7 @@ el: status_page_url: URL σελίδας κατάστασης theme: Προεπιλεγμένο θέμα thumbnail: Μικρογραφία διακομιστή + thumbnail_description: Εναλλακτικό κείμενο μικρογραφίας trendable_by_default: Επίτρεψε τις τάσεις χωρίς προηγούμενο έλεγχο trends: Ενεργοποίηση τάσεων wrapstodon: Ενεργοποίηση Wrapstodon diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml index 92de10b6c878cd..0988e6b91084f8 100644 --- a/config/locales/simple_form.es-AR.yml +++ b/config/locales/simple_form.es-AR.yml @@ -109,6 +109,7 @@ es-AR: status_page_url: Dirección web de una página donde la gente puede ver el estado de este servidor durante un apagón theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. + thumbnail_description: Una descripción de la imagen para ayudar a personas con discapacidades visuales a entender su contenido. trendable_by_default: Omití la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. wrapstodon: Ofrecer a los usuarios locales un resumen lúdico de su uso en Mastodon durante el año. Esta función está disponible entre los días 10 y 31 de diciembre de cada año, y se ofrece a los usuarios que enviaron a Mastodon, al menos, un mensaje público o un mensaje público pero silencioso, y que utilizaron, al menos, una etiqueta durante el año. @@ -317,6 +318,7 @@ es-AR: status_page_url: Dirección web de la página de estado theme: Tema predeterminado thumbnail: Miniatura del servidor + thumbnail_description: Texto alternativo de miniatura trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias wrapstodon: Habilitar MastodonAnual diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index e380d46bb4467a..555562d955a526 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -109,6 +109,7 @@ es-MX: status_page_url: URL de una página donde las personas pueden ver el estado de este servidor durante una interrupción theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. + thumbnail_description: Una descripción de la imagen para ayudar a las personas con discapacidades visuales a entender su contenido. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. wrapstodon: Ofrece a los usuarios locales la posibilidad de generar un resumen divertido de su uso de Mastodon durante el año. Esta función está disponible entre el 10 y el 31 de diciembre de cada año, y se ofrece a los usuarios que hayan publicado al menos una publicación pública o pública silenciosa y hayan utilizado al menos una etiqueta durante el año. @@ -317,6 +318,7 @@ es-MX: status_page_url: URL de página de estado theme: Tema por defecto thumbnail: Miniatura del servidor + thumbnail_description: Texto alternativo de miniatura trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias wrapstodon: Habilitar Wrapstodon diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml index 939554e6d35092..07ba58d25ef8c8 100644 --- a/config/locales/simple_form.es.yml +++ b/config/locales/simple_form.es.yml @@ -109,6 +109,7 @@ es: status_page_url: URL de una página donde se pueda ver el estado de este servidor durante una incidencia theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. + thumbnail_description: Una descripción de la imagen para ayudar a las personas con discapacidades visuales a entender su contenido. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué publicaciones, etiquetas y noticias están ganando tracción en tu servidor. wrapstodon: Ofrecer a los usuarios locales un resumen lúdico de su uso en Mastodon durante el año. Esta característica está disponible entre los días 10 y 31 de diciembre de cada año, y se ofrece a los usuarios que hicieron al menos una publicación Pública o Pública Silenciosa y utilizaron al menos una etiqueta durante el año. @@ -317,6 +318,7 @@ es: status_page_url: URL de página de estado theme: Tema por defecto thumbnail: Miniatura del servidor + thumbnail_description: Texto alternativo de miniatura trendable_by_default: Permitir tendencias sin revisión previa trends: Habilitar tendencias wrapstodon: Habilitar Wrapstodon diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index d8e16d658ce741..33e826cf14a422 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -109,6 +109,7 @@ fi: status_page_url: URL-osoite sivulle, josta tämän palvelimen tilan voi ongelmatilanteissa tarkistaa theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät. thumbnail: Noin 2:1 kuva näkyy palvelimen tietojen ohessa. + thumbnail_description: Kuvan kuvaus, joka auttaa näkövammallisia ymmärtämään kuvan sisällön. trendable_by_default: Ohita suositun sisällön manuaalinen tarkastus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen. trends: Trendit osoittavat, mitkä julkaisut, aihetunnisteet ja uutiset keräävät huomiota palvelimellasi. wrapstodon: Tarjoa paikallisille käyttäjille mahdollisuus luoda leikkisä koonti heidän Mastodonin käytöstään vuoden aikana. Tämä ominaisuus on saatavilla vuosittain 10.–⁠31. joulukuuta, ja sitä tarjotaan käyttäjille, jotka ovat laatineet ainakin yhden julkisen tai vaihvihkaa julkisen julkaisun ja käyttäneet ainakin yhtä aihetunnistetta vuoden aikana. @@ -316,7 +317,8 @@ fi: site_title: Palvelimen nimi status_page_url: Tilasivun URL-osoite theme: Oletusteema - thumbnail: Palvelimen pienoiskuva + thumbnail: Palvelimen pikkukuva + thumbnail_description: Pikkukuvan tekstivastine trendable_by_default: Salli trendit ilman ennakkotarkastusta trends: Ota trendit käyttöön wrapstodon: Ota Wrapstodon käyttöön diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index 7934a418b23ae8..f8e2fd8001fd81 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -160,6 +160,7 @@ fr-CA: other: Nous devons vérifier que vous avez au moins %{count} ans pour utiliser %{domain}. Cette information ne sera pas conservée. role: Le rôle définit les autorisations de l'utilisateur⋅rice. user_role: + collection_limit: Limite le nombre de collections qu'un compte avec ce rôle peut créer. Veuillez noter que si vous diminuez cette limite, les comptes qui la dépassent ne perdront pas de collections. Mais ile ne pourront pas en créer de nouvelles. color: Couleur à attribuer au rôle dans l'interface, au format hexadécimal RVB highlighted: Cela rend le rôle visible publiquement name: Nom public du rôle, si le rôle est configuré pour être affiché avec un badge @@ -386,6 +387,7 @@ fr-CA: role: Rôle time_zone: Fuseau horaire user_role: + collection_limit: Nombre maximum de collections par compte color: Couleur du badge highlighted: Afficher le rôle avec un badge sur les profils des utilisateur·rice·s name: Nom diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index cd792087917510..66a9866d4351a2 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -160,6 +160,7 @@ fr: other: Nous devons vérifier que vous avez au moins %{count} ans pour utiliser %{domain}. Cette information ne sera pas conservée. role: Le rôle définit les autorisations de l'utilisateur⋅rice. user_role: + collection_limit: Limite le nombre de collections qu'un compte avec ce rôle peut créer. Veuillez noter que si vous diminuez cette limite, les comptes qui la dépassent ne perdront pas de collections. Mais ile ne pourront pas en créer de nouvelles. color: Couleur à attribuer au rôle dans l'interface, au format hexadécimal RVB highlighted: Cela rend le rôle visible publiquement name: Nom public du rôle, si le rôle est configuré pour être affiché en tant que badge @@ -386,6 +387,7 @@ fr: role: Rôle time_zone: Fuseau horaire user_role: + collection_limit: Nombre maximum de collections par compte color: Couleur du badge highlighted: Afficher le rôle en tant que badge sur les profils des utilisateur·rice·s name: Nom diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index 0e24ae5d86f496..555be7012abaa7 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -163,6 +163,7 @@ ga: two: Caithfimid a chinntiú go bhfuil tú %{count} ar a laghad chun %{domain} a úsáid. Ní stórálfaimid é seo. role: Rialaíonn an ról na ceadanna atá ag an úsáideoir. user_role: + collection_limit: Cuireann sé teorainn le líon na mbailiúchán is féidir le húsáideoir aonair leis an ról seo a chruthú. Tabhair faoi deara, le do thoil, nuair a laghdaíonn tú an líon seo, nach gcaillfidh úsáideoirí atá ag an teorainn seo cheana féin aon bhailiúcháin. Ach ní bheidh siad in ann cinn bhreise a chruthú. color: Dath le húsáid don ról ar fud an Chomhéadain, mar RGB i bhformáid heicsidheachúlach highlighted: Déanann sé seo an ról le feiceáil go poiblí name: Ainm poiblí an róil, má tá an ról socraithe le taispeáint mar shuaitheantas @@ -389,6 +390,7 @@ ga: role: Ról time_zone: Crios ama user_role: + collection_limit: Uasmhéid na mBailiúchán in aghaidh an úsáideora color: Dath suaitheantas highlighted: Taispeáin ról mar shuaitheantas ar phróifílí úsáideora name: Ainm diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index dd27292e25632d..3283190387f4f1 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -109,6 +109,7 @@ gl: status_page_url: URL dunha páxina onde se pode ver o estado deste servidor cando non está a funcionar theme: Decorado que verán visitantes e novas usuarias. thumbnail: Imaxe con proporcións 2:1 mostrada xunto á información sobre o servidor. + thumbnail_description: A descrición da imaxe axuda ás persoas con problemas de visión a comprender o seu contido. trendable_by_default: Omitir a revisión manual dos contidos populares. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo. trends: As tendencias mostran publicacións, cancelos e novas historias que teñen popularidade no teu servidor. wrapstodon: Ofrecerlle ás usuarias locais crear un divertido resumo do seu uso de Mastodon durante o ano. Esta ferramenta está dispoñible entre o 10 e o 31 de Decembro de cada ano, e ofréceselle ás usuarias que publicaron polo menos unha mensaxe Pública ou Pública Limitada e utilizaron polo menos un cancelo durante o ano. @@ -317,6 +318,7 @@ gl: status_page_url: URL da páxina do estado theme: Decorado predeterminado thumbnail: Icona do servidor + thumbnail_description: Texto alternativo da miniatura trendable_by_default: Permitir tendencias sen aprobación previa trends: Activar tendencias wrapstodon: Activar Wrapstodon diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml index 85af5ce952002c..bc863a8d912db1 100644 --- a/config/locales/simple_form.is.yml +++ b/config/locales/simple_form.is.yml @@ -109,6 +109,7 @@ is: status_page_url: Slóð á síðu þar sem fólk getur séð ástand netþjónsins þegar vandræði koma upp theme: Þema sem útskráðir gestir og nýjir notendur sjá. thumbnail: Mynd um það bil 2:1 sem birtist samhliða upplýsingum um netþjóninn þinn. + thumbnail_description: Lýsing á myndinni sem hjálpar sjónskertu fólki að skilja efni hennar. trendable_by_default: Sleppa handvirkri yfirferð á vinsælu efni. Áfram verður hægt að fjarlægja stök atriði úr vinsældarlistum. trends: Vinsældir sýna hvaða færslur, myllumerki og fréttasögur séu í umræðunni á netþjóninum þínum. wrapstodon: Býður notendum á netþjóninum upp á skemmtilega samantekt um notkun þeirra á Mastodon á árinu sem er að líða. Þessi eiginleiki er í boði á milli 10. og 31. desember ár hvert og býðst þeim notendum sem hafa gert að minnsta kosti eina opinbera eða hljóðlega opinbera færslu og notað a. m. k. eitt myllumerki á árinu. @@ -317,6 +318,7 @@ is: status_page_url: Slóð á ástandssíðu theme: Sjálfgefið þema thumbnail: Smámynd vefþjóns + thumbnail_description: Hjálpartexti smámynda trendable_by_default: Leyfa vinsælt efni án undanfarandi yfirferðar trends: Virkja vinsælt wrapstodon: Virkja Ársuppgjörið diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml index cc95fd0fbf2e23..ea609dd40d9621 100644 --- a/config/locales/simple_form.it.yml +++ b/config/locales/simple_form.it.yml @@ -109,6 +109,7 @@ it: status_page_url: URL di una pagina in cui le persone possono visualizzare lo stato di questo server durante un disservizio theme: Tema visualizzato dai visitatori e dai nuovi utenti disconnessi. thumbnail: Un'immagine approssimativamente 2:1 visualizzata insieme alle informazioni del tuo server. + thumbnail_description: Una descrizione dell'immagine per aiutare le persone con disabilità visive a comprenderne il contenuto. trendable_by_default: Salta la revisione manuale dei contenuti di tendenza. I singoli elementi possono ancora essere rimossi dalle tendenze dopo il fatto. trends: Le tendenze mostrano quali post, hashtag e notizie stanno guadagnando popolarità sul tuo server. wrapstodon: Offri agli utenti locali la possibilità di generare un riassunto giocoso del loro utilizzo di Mastodon durante l’anno. Questa funzione è disponibile dal 10 al 31 dicembre di ogni anno ed è offerta agli utenti che hanno pubblicato almeno un post pubblico o pubblico silenzioso e utilizzato almeno un hashtag nell’arco dell’anno. @@ -160,6 +161,7 @@ it: other: Dobbiamo assicurarci che tu abbia almeno %{count} anni per utilizzare %{domain}. Non memorizzeremo questo dato. role: Il ruolo controlla quali permessi ha l'utente. user_role: + collection_limit: Limita il numero di collezioni che un singolo utente con questo ruolo può creare. Si prega di tenere presente che, quando diminuisci questo numero, gli utenti che hanno già raggiunto questo limite, non perderanno alcuna collezione. Ma non potranno crearne di nuove. color: Colore da usare per il ruolo in tutta l'UI, come RGB in formato esadecimale highlighted: Rende il ruolo visibile name: Nome pubblico del ruolo, se il ruolo è impostato per essere visualizzato come distintivo @@ -316,6 +318,7 @@ it: status_page_url: URL della pagina di stato theme: Tema predefinito thumbnail: Miniatura del server + thumbnail_description: Testo alternativo dell'immagine in miniatura trendable_by_default: Consenti le tendenze senza revisione preventiva trends: Abilita le tendenze wrapstodon: Abilita Wrapstodon @@ -386,6 +389,7 @@ it: role: Ruolo time_zone: Fuso orario user_role: + collection_limit: Numero massimo di collezioni per utente color: Colore distintivo highlighted: Mostra il ruolo come distintivo sui profili utente name: Nome diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index ee9068e5db3884..a27228a41ef029 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -160,6 +160,7 @@ tr: other: "%{domain} kullanmak için en az %{count} yaşında olduğunuzdan emin olmalıyız. Bu bilgiyi saklamıyoruz." role: Rol, kullanıcıların sahip olduğu izinleri denetler. user_role: + collection_limit: Bu role sahip tek bir kullanıcının oluşturabileceği Koleksiyon sayısını sınırlar. Bu sayıyı azalttığınızda, halihazırda bu sınıra ulaşmış olan kullanıcıların mevcut Koleksiyonlarını kaybetmeyeceklerini lütfen unutmayın. Ancak bu kullanıcılar yeni Koleksiyonlar oluşturamayacaklardır. color: Arayüz boyunca rol için kullanılacak olan renk, hex biçiminde RGB highlighted: Bu rolü herkese açık hale getirir name: Rolün, eğer rozet olarak görüntülenmesi ayarlandıysa kullanılacak herkese açık ismi @@ -386,6 +387,7 @@ tr: role: Rol time_zone: Zaman dilimi user_role: + collection_limit: Bir kullanıcının sahip olabileceği maksimum Koleksiyon sayısı color: Rozet rengi highlighted: Rolü kullanıcıların profilinde rozet olarak görüntüle name: Ad diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 7bfe37803fdeb6..84c7e271b35b47 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -109,6 +109,7 @@ zh-CN: status_page_url: 配置一个网址,当服务中断时,人们可以通过该网址查看服务器的状态。 theme: 给未登录访客和新用户使用的主题。 thumbnail: 与服务器信息一并展示的约 2:1 比例的图像。 + thumbnail_description: 一段图像描述,可以帮助视力障碍人士理解其内容。 trendable_by_default: 跳过对热门内容的手工审核。个别项目仍可在之后从趋势中删除。 trends: 热门页中会显示正在你服务器上受到关注的嘟文、标签和新闻故事。 wrapstodon: 为本站用户提供生成他们过去一年使用 Mastodon 情况的趣味总结的功能。此功能在每年12月10日至12月31日提供给这一年发布过至少1条公开嘟文(无论是否设置为在时间线上显示)及至少使用过1个话题标签的用户。 @@ -316,6 +317,7 @@ zh-CN: status_page_url: 状态页网址 theme: 默认主题 thumbnail: 本站缩略图 + thumbnail_description: 缩略图替代文本 trendable_by_default: 允许在未审核的情况下将话题置为热门 trends: 启用热门 wrapstodon: 启用 Wrapstodon 年度回顾 From 3473b8a65278783bc74ce2738aea98cca0c7a5ed Mon Sep 17 00:00:00 2001 From: diondiondion Date: Fri, 24 Apr 2026 12:28:04 +0200 Subject: [PATCH 284/335] Add server thumbnail alt text to frontend (#38801) --- .../components/alt_text_badge/index.tsx | 11 +++++++---- .../mastodon/components/server_banner.jsx | 14 ++++++++++---- .../index.tsx} | 19 +++++++++++++------ .../server_hero_image/styles.module.scss | 5 +++++ .../mastodon/features/about/index.jsx | 9 ++++++++- app/javascript/mastodon/locales/en.json | 1 + 6 files changed, 44 insertions(+), 15 deletions(-) rename app/javascript/mastodon/components/{server_hero_image.tsx => server_hero_image/index.tsx} (53%) create mode 100644 app/javascript/mastodon/components/server_hero_image/styles.module.scss diff --git a/app/javascript/mastodon/components/alt_text_badge/index.tsx b/app/javascript/mastodon/components/alt_text_badge/index.tsx index ecfb29fd529f98..a33325dee53ef7 100644 --- a/app/javascript/mastodon/components/alt_text_badge/index.tsx +++ b/app/javascript/mastodon/components/alt_text_badge/index.tsx @@ -2,6 +2,8 @@ import { useState, useCallback, useRef, useId } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; +import classNames from 'classnames'; + import type { OffsetValue, UsePopperOptions, @@ -18,9 +20,10 @@ import classes from './styles.module.scss'; const offset = [0, 4] as OffsetValue; const popperConfig = { strategy: 'fixed' } as UsePopperOptions; -export const AltTextBadge: React.FC<{ description: string }> = ({ - description, -}) => { +export const AltTextBadge: React.FC<{ + description: string; + className?: string; +}> = ({ description, className }) => { const intl = useIntl(); const uniqueId = useId(); const popoverId = `${uniqueId}-popover`; @@ -48,7 +51,7 @@ export const AltTextBadge: React.FC<{ description: string }> = ({
  • - - - + + +
    {isLoading ? ( diff --git a/app/javascript/mastodon/components/server_hero_image.tsx b/app/javascript/mastodon/components/server_hero_image/index.tsx similarity index 53% rename from app/javascript/mastodon/components/server_hero_image.tsx rename to app/javascript/mastodon/components/server_hero_image/index.tsx index 68b7f03df39744..d1926260b83c87 100644 --- a/app/javascript/mastodon/components/server_hero_image.tsx +++ b/app/javascript/mastodon/components/server_hero_image/index.tsx @@ -2,9 +2,14 @@ import { useCallback, useState } from 'react'; import classNames from 'classnames'; -import { Blurhash } from './blurhash'; +import { AltTextBadge } from '../alt_text_badge'; +import { Blurhash } from '../blurhash'; + +import classes from './styles.module.scss'; interface Props { + withAltBadge?: boolean; + alt: string; src: string; srcSet?: string; blurhash?: string; @@ -12,9 +17,11 @@ interface Props { } export const ServerHeroImage: React.FC = ({ + alt, src, srcSet, blurhash, + withAltBadge, className, }) => { const [loaded, setLoaded] = useState(false); @@ -24,12 +31,12 @@ export const ServerHeroImage: React.FC = ({ }, [setLoaded]); return ( -
    +
    {blurhash && } - + {alt} + {withAltBadge && alt && ( + + )}
    ); }; diff --git a/app/javascript/mastodon/components/server_hero_image/styles.module.scss b/app/javascript/mastodon/components/server_hero_image/styles.module.scss new file mode 100644 index 00000000000000..7af71d26416c88 --- /dev/null +++ b/app/javascript/mastodon/components/server_hero_image/styles.module.scss @@ -0,0 +1,5 @@ +.altBadge { + position: absolute; + bottom: 8px; + inset-inline-end: 8px; +} diff --git a/app/javascript/mastodon/features/about/index.jsx b/app/javascript/mastodon/features/about/index.jsx index a1db8889f2647f..e666e26abc5f1c 100644 --- a/app/javascript/mastodon/features/about/index.jsx +++ b/app/javascript/mastodon/features/about/index.jsx @@ -82,7 +82,14 @@ class About extends PureComponent {
    - `${value} ${key.replace('@', '')}`).join(', ')} className='about__header__hero' /> + `${value} ${key.replace('@', '')}`).join(', ')} + className='about__header__hero' + />

    {isLoading ? : server.get('domain')}

    Mastodon }} />

    diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index e8b58bd39551bf..d72d8b986b1851 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "active users", "server_banner.administered_by": "Administered by:", "server_banner.is_one_of_many": "{domain} is one of the many independent Mastodon servers you can use to participate in the fediverse.", + "server_banner.more_about_this_server": "More about this server", "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.follow_anyone": "Follow anyone across the fediverse and see it all in chronological order. No algorithms, ads, or clickbait in sight.", From 45221070cc89b545c86f71a1be2750ebd5124e58 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 09:53:04 +0200 Subject: [PATCH 285/335] Update crowdin/github-action digest to 8868a33 (#38814) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/crowdin-download-stable.yml | 2 +- .github/workflows/crowdin-download.yml | 2 +- .github/workflows/crowdin-upload.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/crowdin-download-stable.yml b/.github/workflows/crowdin-download-stable.yml index 297e1c2f3c3a41..65e8cc7f80a3fc 100644 --- a/.github/workflows/crowdin-download-stable.yml +++ b/.github/workflows/crowdin-download-stable.yml @@ -24,7 +24,7 @@ jobs: # Download the translation files from Crowdin - name: crowdin action - uses: crowdin/github-action@b4b468cffefb50bdd99dd83e5d2eaeb63c880380 # v2 + uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/crowdin-download.yml b/.github/workflows/crowdin-download.yml index 1851b26a3a55f6..710af7b46159d8 100644 --- a/.github/workflows/crowdin-download.yml +++ b/.github/workflows/crowdin-download.yml @@ -26,7 +26,7 @@ jobs: # Download the translation files from Crowdin - name: crowdin action - uses: crowdin/github-action@b4b468cffefb50bdd99dd83e5d2eaeb63c880380 # v2 + uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index faf01e41b4acbd..2b9a4c899bda62 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - name: crowdin action - uses: crowdin/github-action@b4b468cffefb50bdd99dd83e5d2eaeb63c880380 # v2 + uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2 with: upload_sources: true upload_translations: false From 74d5f99ba376900c2d80a69f4a5aff1831b5af07 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 07:55:00 +0000 Subject: [PATCH 286/335] Update dependency strong_migrations to v2.7.0 (#38808) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4aee0fb8c4bbe4..3e70715e17add1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -353,7 +353,7 @@ GEM azure-blob (~> 0.5.2) hashie (~> 5.0) jmespath (1.6.2) - json (2.19.3) + json (2.19.4) json-canonicalization (1.0.0) json-jwt (1.17.0) activesupport (>= 4.2) @@ -450,7 +450,7 @@ GEM mime-types-data (3.2026.0414) mini_mime (1.1.5) mini_portile2 (2.8.9) - minitest (6.0.4) + minitest (6.0.5) drb (~> 2.0) prism (~> 1.5) msgpack (1.8.0) @@ -852,7 +852,7 @@ GEM concurrent-ruby zeitwerk stringio (3.2.0) - strong_migrations (2.6.0) + strong_migrations (2.7.0) activerecord (>= 7.2) swd (2.0.3) activesupport (>= 3) From b1cea4a3d382aa0864ef25a86fd9227916c1041d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 07:56:23 +0000 Subject: [PATCH 287/335] Update dependency tzinfo-data to v1.2026.2 (#38807) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3e70715e17add1..de97b60df9bf4b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -889,7 +889,7 @@ GEM unf (~> 0.1.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - tzinfo-data (1.2026.1) + tzinfo-data (1.2026.2) tzinfo (>= 1.0.0) unf (0.1.4) unf_ext From c53bb2fcd6ed85d959ed3db5addf1bcb1f912c3e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2026 08:09:16 +0000 Subject: [PATCH 288/335] New Crowdin Translations (automated) (#38805) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/az.json | 56 +++++++++++++++++ app/javascript/mastodon/locales/be.json | 9 +++ app/javascript/mastodon/locales/da.json | 1 + app/javascript/mastodon/locales/de.json | 3 +- app/javascript/mastodon/locales/el.json | 1 + app/javascript/mastodon/locales/en-GB.json | 13 ++++ app/javascript/mastodon/locales/es-AR.json | 1 + app/javascript/mastodon/locales/es-MX.json | 3 +- app/javascript/mastodon/locales/es.json | 1 + app/javascript/mastodon/locales/et.json | 45 +++++++------ app/javascript/mastodon/locales/fi.json | 1 + app/javascript/mastodon/locales/fr-CA.json | 15 ++++- app/javascript/mastodon/locales/fr.json | 15 ++++- app/javascript/mastodon/locales/ga.json | 1 + app/javascript/mastodon/locales/gl.json | 1 + app/javascript/mastodon/locales/he.json | 17 ++++- app/javascript/mastodon/locales/is.json | 1 + app/javascript/mastodon/locales/it.json | 3 +- app/javascript/mastodon/locales/nan-TW.json | 14 +++++ app/javascript/mastodon/locales/nl.json | 13 ++++ app/javascript/mastodon/locales/pt-BR.json | 33 +++++++--- app/javascript/mastodon/locales/sq.json | 13 ++++ app/javascript/mastodon/locales/tr.json | 1 + app/javascript/mastodon/locales/vi.json | 1 + app/javascript/mastodon/locales/zh-CN.json | 1 + app/javascript/mastodon/locales/zh-TW.json | 11 ++-- config/locales/az.yml | 12 ++++ config/locales/cy.yml | 70 ++++++++++++++++++++- config/locales/de.yml | 11 ++++ config/locales/ja.yml | 2 +- config/locales/simple_form.az.yml | 2 + config/locales/simple_form.be.yml | 2 + config/locales/simple_form.cy.yml | 12 ++++ config/locales/simple_form.de.yml | 4 ++ config/locales/simple_form.en-GB.yml | 4 ++ config/locales/simple_form.es-MX.yml | 2 +- config/locales/simple_form.et.yml | 4 +- config/locales/simple_form.fr-CA.yml | 2 + config/locales/simple_form.fr.yml | 2 + config/locales/simple_form.ga.yml | 2 + config/locales/simple_form.he.yml | 4 ++ config/locales/simple_form.nl.yml | 2 + config/locales/simple_form.pt-BR.yml | 2 + config/locales/simple_form.sq.yml | 2 + config/locales/simple_form.tr.yml | 2 + config/locales/simple_form.vi.yml | 4 ++ config/locales/simple_form.zh-TW.yml | 2 + 47 files changed, 380 insertions(+), 43 deletions(-) diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index 88e27d38e3547b..aa3feb6222bfcf 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -14,9 +14,16 @@ "about.powered_by": "{mastodon} tərəfindən təchiz edilən desentralizasiya edilmiş sosial media", "about.rules": "Server qaydaları", "account.account_note_header": "Şəxsi qeyd", + "account.activity": "Fəaliyyət", + "account.add_note": "Fərdi bir not əlavə et", "account.add_or_remove_from_list": "Siyahılara əlavə et və ya sil", + "account.badges.admin": "Admin", + "account.badges.blocked": "Əngəlləndi", "account.badges.bot": "Avtomatlaşdırılmış", + "account.badges.domain_blocked": "Əngəllənmiş domen", "account.badges.group": "Qrup", + "account.badges.muted": "Səssizdə", + "account.badges.muted_until": "{until} qədər səssizdə", "account.block": "@{name} istifadəçisini blokla", "account.block_domain": "{domain} domenini blokla", "account.block_short": "Blok", @@ -27,7 +34,9 @@ "account.direct": "@{name} istifadəçisini fərdi olaraq etiketlə", "account.disable_notifications": "@{name} paylaşım edəndə mənə bildiriş göndərməyi dayandır", "account.domain_blocking": "Domenin bloklanması", + "account.edit_note": "Fərdi nota düzəliş", "account.edit_profile": "Profili redaktə et", + "account.edit_profile_short": "Düzəliş", "account.enable_notifications": "@{name} paylaşım edəndə mənə bildiriş göndər", "account.endorse": "Profildə seçilmişlərə əlavə et", "account.familiar_followers_many": "{name1}, {name2} və tanıdığınız digər {othersCount, plural, one {digər bir nəfər} other {# nəfər}} izləyir", @@ -35,8 +44,22 @@ "account.familiar_followers_two": "{name1} və {name2} izləyir", "account.featured": "Seçilmiş", "account.featured.accounts": "Profillər", + "account.featured.collections": "Kolleksiyalar", + "account.featured.new_collection": "Yeni kolleksiya", + "account.field_overflow": "Tam məzmunu göstər", + "account.filters.all": "Bütün fəaliyyət", + "account.filters.boosts_toggle": "Təkrar paylaşmaları göstər", + "account.filters.posts_boosts": "Göndərişlər və təkrar paylaşmalar", + "account.filters.posts_only": "Göndərişlər", + "account.filters.posts_replies": "Göndərişlər və cavablar", + "account.filters.replies_toggle": "Cavabları göstər", "account.follow": "İzlə", "account.follow_back": "Sən də izlə", + "account.follow_back_short": "Geri izlə", + "account.follow_request": "İzləmə istəyi", + "account.follow_request_cancel": "İstəyi ləğv et", + "account.follow_request_cancel_short": "İmtina", + "account.follow_request_short": "İstək", "account.followers": "İzləyicilər", "account.followers.empty": "Bu istifadəçini hələ ki, heç kim izləmir.", "account.followers_counter": "{count, plural, one {{counter} izləyici} other {{counter} izləyici}}", @@ -48,12 +71,39 @@ "account.go_to_profile": "Profilə get", "account.hide_reblogs": "@{name} - təkrar paylaşımlarını gizlət", "account.in_memoriam": "Xatirə.", + "account.join_modal.day": "Gün", + "account.join_modal.me": "{server} - qoşuldunuz", + "account.join_modal.me_anniversary": "Fediversary-niz mübarək! {server} - qoşuldunuz", + "account.join_modal.me_today": "{server} üzərində ilk gününüzdür!", + "account.join_modal.other": "{name}, {server} serverinə qoşuldu", + "account.join_modal.other_today": "{name} - {server} serverində ilk günüdür!", + "account.join_modal.share.celebrate": "Qeyd etmək üçün göndəriş paylaş", + "account.join_modal.share.intro": "Tanıtım üçün göndəriş paylaş", + "account.join_modal.share.welcome": "Xoş gəlmisiniz göndərişi paylaş", + "account.join_modal.years": "{number, plural, one {il} other {il}}", "account.joined_short": "Qoşulub", "account.languages": "Abunə olunmuş dilləri dəyiş", + "account.last_active": "Son aktivlik", "account.link_verified_on": "Bu linkin dəqiqliyi {date} tarixində yoxlanılıb", "account.locked_info": "Bu hesabın məxfilik statusu kilidlənib. Sahibi, onu kimin izləyə biləcəyini manual olaraq incələyir.", "account.media": "Media", "account.mention": "@{name} istifadəçisini teq et", + "account.menu.add_to_list": "Siyahıya əlavə et…", + "account.menu.block": "Hesabı əngəllə", + "account.menu.block_domain": "{domain} - əngəllə", + "account.menu.copied": "Hesab keçidi lövhəyə kopyalandı", + "account.menu.copy": "Keçidi kopyala", + "account.menu.direct": "Adını özəl olaraq çək", + "account.menu.hide_reblogs": "Zaman xəttində təkrar paylaşmaları gizlət", + "account.menu.mention": "Adçəkmə", + "account.menu.mute": "Hesabı səssizə al", + "account.menu.note.description": "Yalnız sizə görünəndir", + "account.menu.open_original_page": "Burada bax: {domain}", + "account.menu.remove_follower": "İzləyicini çıxart", + "account.menu.report": "Hesabı bildir", + "account.menu.share": "Paylaş…", + "account.menu.show_reblogs": "Zaman xəttində təkrar paylaşmaları göstər", + "account.menu.unblock": "Hesabın əngəlini götür", "account.moved_to": "{name} onun yeni hesabının artıq bu olduğunu bildirdi:", "account.mute": "@{name} istifadəçisini susdur", "account.mute_notifications_short": "Bildirişləri səssizləşdir", @@ -80,6 +130,12 @@ "account.unmute": "@{name} səssizləşdirmədən çıxart", "account.unmute_notifications_short": "Bildirişlərin səsini aç", "account.unmute_short": "Səssizləşdirmədən çıxart", + "account_edit.field_delete_modal.title": "Özəl xananı sil?", + "account_edit.field_edit_modal.add_title": "Özəl xana əlavə et", + "account_edit.field_edit_modal.discard_confirm": "İmtina", + "account_edit.field_edit_modal.discard_message": "Saxlanılmamış dəyişiklikləriniz var. Onları silmək istədiyinizə əminsiniz?", + "account_edit.field_edit_modal.edit_title": "Özəl xanaya düzəliş", + "account_edit.field_edit_modal.length_warning": "Tövsiyə edilən xarakter limiti aşıldı. Mobil istifadəçilər xananızın tamamını görməyə bilər.", "account_note.placeholder": "Qeyd əlavə etmək üçün kliklə", "admin.dashboard.daily_retention": "Qeydiyyatdan sonrakı günə görə istifadəçi qalma dərəcəsi", "admin.dashboard.monthly_retention": "Qeydiyyatdan sonrakı aya görə istifadəçi qalma dərəcəsi", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index fecd161acba854..b00d49bdef1320 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -71,7 +71,15 @@ "account.go_to_profile": "Перайсці да профілю", "account.hide_reblogs": "Схаваць пашырэнні ад @{name}", "account.in_memoriam": "У памяць.", + "account.join_modal.day": "Дзень", "account.join_modal.me": "Вы далучыліся да {server}", + "account.join_modal.me_anniversary": "З гадавінай! Вы далучыліся да {server}", + "account.join_modal.me_today": "Сёння Ваш першы дзень на {server}!", + "account.join_modal.other": "{name} далучыў(-ла)ся да {server}", + "account.join_modal.other_today": "Сёння першы дзень {name} на {server}!", + "account.join_modal.share.celebrate": "Абагуліць урачысты допіс", + "account.join_modal.share.intro": "Абагуліць допіс, каб прадставіцца", + "account.join_modal.share.welcome": "Абагуліць прывітальны допіс", "account.join_modal.years": "{number, plural, one {# год} few {# гады} many {# гадоў} other {# гады}}", "account.joined_short": "Далучыўся", "account.languages": "Змяніць выбраныя мовы", @@ -1188,6 +1196,7 @@ "server_banner.active_users": "актыўныя карыстальнікі", "server_banner.administered_by": "Адміністратар:", "server_banner.is_one_of_many": "{domain} - гэта адзін з многіх незалежных сервераў Mastodon, які Вы можаце выкарыстоўваць для ўдзелу ў федэральным сусвеце.", + "server_banner.more_about_this_server": "Падрабязней пра гэты сервер", "server_banner.server_stats": "Статыстыка сервера:", "sign_in_banner.create_account": "Стварыць уліковы запіс", "sign_in_banner.follow_anyone": "Падпісвайцеся на каго захочаце ва ўсім федэральным сусвеце і глядзіце ўсё ў храналагічным парадку. Ніякіх алгарытмаў, рэкламы або клікбэйту.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index c03fb903a8fb19..af6e6b16ab5e3b 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "aktive brugere", "server_banner.administered_by": "Administreret af:", "server_banner.is_one_of_many": "{domain} er en af de mange uafhængige Mastodon-servere, du kan bruge for at deltage i fediverset.", + "server_banner.more_about_this_server": "Mere om denne server", "server_banner.server_stats": "Serverstatstik:", "sign_in_banner.create_account": "Opret konto", "sign_in_banner.follow_anyone": "Følg alle på tværs af fediverset og se alt i kronologisk rækkefølge. Ingen algoritmer, annoncer eller clickbait i syne.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 98b281e5cfbbdd..7fcae45073f27f 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -73,7 +73,7 @@ "account.in_memoriam": "Zum Andenken.", "account.join_modal.day": "Tag", "account.join_modal.me": "Du bist auf {server} dabei seit", - "account.join_modal.me_anniversary": "Happy Fediversary! Du bist auf {server} dabei seit", + "account.join_modal.me_anniversary": "Alles Gute zum Fediläum! Auf {server} bist du seit", "account.join_modal.me_today": "Dein erster Tag auf {server}!", "account.join_modal.other": "{name} ist auf {server} dabei seit", "account.join_modal.other_today": "{name} ist seit einem Tag auf {server}!", @@ -1196,6 +1196,7 @@ "server_banner.active_users": "aktive Profile", "server_banner.administered_by": "Verwaltet von:", "server_banner.is_one_of_many": "{domain} ist einer von vielen unabhängigen Mastodon-Servern, mit dem du dich im Fediverse beteiligen kannst.", + "server_banner.more_about_this_server": "Mehr über diesen Server", "server_banner.server_stats": "Serverstatistik:", "sign_in_banner.create_account": "Konto erstellen", "sign_in_banner.follow_anyone": "Du kannst jedem im Fediverse folgen und alles in chronologischer Reihenfolge sehen. Keine Algorithmen, Werbung oder Clickbaits vorhanden.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 581b0bc6a72697..1a5a448b057cf1 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "ενεργοί χρήστες", "server_banner.administered_by": "Διαχειριστής:", "server_banner.is_one_of_many": "Το {domain} είναι ένας από τους πολλούς ανεξάρτητους διακομιστές Mastodon που μπορείς να χρησιμοποιήσεις για να συμμετάσχεις στο fediverse.", + "server_banner.more_about_this_server": "Περισσότερα για αυτόν τον διακομιστή", "server_banner.server_stats": "Στατιστικά διακομιστή:", "sign_in_banner.create_account": "Δημιουργία λογαριασμού", "sign_in_banner.follow_anyone": "Ακολούθησε οποιονδήποτε κατά μήκος του fediverse και δες τα όλα με χρονολογική σειρά. Δεν υπάρχουν αλγόριθμοι, διαφημίσεις ή clickbait ούτε για δείγμα.", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 071872595152a2..00a68df78b1c47 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Go to profile", "account.hide_reblogs": "Hide boosts from @{name}", "account.in_memoriam": "In Memoriam.", + "account.join_modal.day": "Day", + "account.join_modal.me": "You joined {server} on", + "account.join_modal.me_anniversary": "Happy Fediversary! You joined {server} on", + "account.join_modal.me_today": "It’s your first day on {server}!", + "account.join_modal.other": "{name} joined {server} on", + "account.join_modal.other_today": "It’s {name}’s first day on {server}!", + "account.join_modal.share.celebrate": "Share a celebratory post", + "account.join_modal.share.intro": "Share an intro post", + "account.join_modal.share.welcome": "Share a welcome post", + "account.join_modal.years": "{number, plural, one {year} other {years}}", "account.joined_short": "Joined", "account.languages": "Change subscribed languages", "account.last_active": "Last active", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Manage accounts", "collections.mark_as_sensitive": "Mark as sensitive", "collections.mark_as_sensitive_hint": "Hides the collection's description and accounts behind a content warning. The collection name will still be visible.", + "collections.maximum_collection_count_description": "Your server allows creation of up to {count} collections.", + "collections.maximum_collection_count_reached": "You have created the maximum number of collections", "collections.name_length_hint": "40 characters limit", "collections.new_collection": "New collection", "collections.no_collections_yet": "No collections yet.", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "active users", "server_banner.administered_by": "Administered by:", "server_banner.is_one_of_many": "{domain} is one of the many independent Mastodon servers you can use to participate in the Fediverse.", + "server_banner.more_about_this_server": "More about this server", "server_banner.server_stats": "Server stats:", "sign_in_banner.create_account": "Create account", "sign_in_banner.follow_anyone": "Follow anyone across the Fediverse and see it all in chronological order. No algorithms, ads, or clickbait in sight.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index d89ec3d6427f91..e9a943c2a043ea 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "usuarios activos", "server_banner.administered_by": "Administrado por:", "server_banner.is_one_of_many": "{domain} es uno de los muchos servidores de Mastodon independientes que podés usar para participar en el Fediverso.", + "server_banner.more_about_this_server": "Más acerca de este servidor", "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.follow_anyone": "Seguí a cualquiera cuenta a través del Fediverso y leé todo en orden cronológico. Nada de algoritmos, publicidad o titulares engañosos.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index fbc9821486f7d0..cc93beda774bbc 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -409,7 +409,7 @@ "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta la descripción y las cuentas de la colección detrás de una advertencia de contenido. El nombre de la colección seguirá siendo visible.", "collections.maximum_collection_count_description": "Tu servidor permite la creación de hasta {count} colecciones.", - "collections.maximum_collection_count_reached": "Has creado el número máximo de colecciones", + "collections.maximum_collection_count_reached": "Has alcanzado el número máximo de colecciones", "collections.name_length_hint": "Limitado a 40 caracteres", "collections.new_collection": "Nueva colección", "collections.no_collections_yet": "No hay colecciones todavía.", @@ -1196,6 +1196,7 @@ "server_banner.active_users": "usuarios activos", "server_banner.administered_by": "Administrado por:", "server_banner.is_one_of_many": "{domain} es uno de los varios servidores independientes de Mastodon que puedes usar para participar en el fediverso.", + "server_banner.more_about_this_server": "Más información sobre este servidor", "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.follow_anyone": "Sigue a cualquier persona en el fediverso y velo todo en orden cronológico. Sin algoritmos, sin anuncios o titulares engañosos.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index fa35354502d77b..1ecaa9f5f9b8e7 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "usuarios activos", "server_banner.administered_by": "Administrado por:", "server_banner.is_one_of_many": "{domain} es uno de los varios servidores independientes de Mastodon que puedes usar para participar en el fediverso.", + "server_banner.more_about_this_server": "Más información acerca de este servidor", "server_banner.server_stats": "Estadísticas del servidor:", "sign_in_banner.create_account": "Crear cuenta", "sign_in_banner.follow_anyone": "Sigue a cualquier persona en el fediverso y velo todo en orden cronológico. Sin algoritmos, sin anuncios o titulares engañosos.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 72b17ffcce2d43..257edd25766fd9 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -69,16 +69,22 @@ "account.follows.empty": "See kasutaja ei jälgi veel mitte kedagi.", "account.follows_you": "Jälgib sind", "account.go_to_profile": "Vaata profiili", - "account.hide_reblogs": "Peida @{name} jagamised", + "account.hide_reblogs": "Peida kasutaja @{name} hooandmised", "account.in_memoriam": "In Memoriam.", "account.join_modal.day": "Päev", - "account.join_modal.me": "Ühinesid {server} kohas", - "account.join_modal.me_anniversary": "Rõõmsat Födiversumist! Ühinesid {server} kohas", - "account.join_modal.me_today": "See on sinu esimene päev kohas {server}!", + "account.join_modal.me": "Ühinesid {server} serveriga aadressil", + "account.join_modal.me_anniversary": "Sinu tähtpäev Födiversumis! Ühinesid {server} serveriga aadressil", + "account.join_modal.me_today": "See on sinu esimene päev {server} serveris!", + "account.join_modal.other": "{name} liitus {server} severiga", + "account.join_modal.other_today": "Kasutajale {name} on see esimene päev serveris {server}!", + "account.join_modal.share.celebrate": "Koosta postitus, mis selle ära märgib", + "account.join_modal.share.intro": "Koosta sissejuhatav postitus", + "account.join_modal.share.welcome": "Koosta tervituspostitus", + "account.join_modal.years": "{number, plural, one {aasta} other {aastat}}", "account.joined_short": "Liitus", "account.languages": "Muuda tellitud keeli", "account.last_active": "Viimati aktiivne", - "account.link_verified_on": "Selle lingi autorsust kontrolliti {date}", + "account.link_verified_on": "Selle lingi autorsus on kontrollitud {date}", "account.locked_info": "Selle konto privaatsussätteks on lukustatud. Omanik vaatab käsitsi üle, kes teda jälgida saab.", "account.media": "Meedium", "account.mention": "Maini @{name}", @@ -179,11 +185,11 @@ "account_edit.field_edit_modal.discard_confirm": "Loobu", "account_edit.field_edit_modal.discard_message": "Sul on salvestamata muudatusi. Kas soovid tõesti neist loobuda?", "account_edit.field_edit_modal.edit_title": "Muuda kohandatud välja", - "account_edit.field_edit_modal.length_warning": "Soovitatud tähemärkide piir on ületatud. Mobiilikasutajad ei pruugi välja tervikuna näha.", - "account_edit.field_edit_modal.link_emoji_warning": "Soovitame vältida kohandatud emojide kasutamist koos Url-aadressidega. Mõlemat sisaldavad kohandatud väljad kuvatakse segaduse vältimiseks ainult tekstina, mitte lingina.", + "account_edit.field_edit_modal.length_warning": "Soovitatud tähemärkide piir on ületatud. Mobiilikasutajad ei pruugi seda välja tervikuna näha.", + "account_edit.field_edit_modal.link_emoji_warning": "Soovitame vältida kohandatud emojide kasutamist koos võrguaadressidega. Mõlemat sisaldavad kohandatud väljad kuvatakse segaduse vältimiseks ainult tekstina, mitte lingina.", "account_edit.field_edit_modal.name_hint": "Näit. \"Isiklik veebileht\"", "account_edit.field_edit_modal.name_label": "Silt", - "account_edit.field_edit_modal.url_warning": "Lingi lisamiseks lisa palun algusesse {protocol}.", + "account_edit.field_edit_modal.url_warning": "Lingi lisamisel lisa palun algusesse {protocol}.", "account_edit.field_edit_modal.value_hint": "Näit. \"https://naiteks.me\"", "account_edit.field_edit_modal.value_label": "Väärtus", "account_edit.field_reorder_modal.drag_cancel": "Lohistamine tühistati. Väli \"{item}\" kukutati.", @@ -229,20 +235,20 @@ "account_edit.upload_modal.next": "Edasi", "account_edit.upload_modal.step_crop.zoom": "Suum", "account_edit.upload_modal.step_upload.button": "Sirvi faile", - "account_edit.upload_modal.step_upload.dragging": "Üleslaadimiseks kukuta", + "account_edit.upload_modal.step_upload.dragging": "Sisu üleslaadimiseks lohista ta siia", "account_edit.upload_modal.step_upload.header": "Vali pilt", "account_edit.upload_modal.step_upload.hint": "WEBP-, PNG-, GIF- või JPG-vormingus, maksimaalselt {limit} MB.{br}Pilt skaleeritakse mõõtmeteni {width}x{height} pikselit.", - "account_edit.upload_modal.title_add.avatar": "Lisa profiilifoto", - "account_edit.upload_modal.title_add.header": "Lisa kaanefoto", - "account_edit.upload_modal.title_replace.avatar": "Asenda profiilifoto", - "account_edit.upload_modal.title_replace.header": "Asenda kaanefoto", - "account_edit.verified_modal.details": "Tõsta oma Mastodoni profiili usaldusväärsust, kinnitades lingid isiklikele veebisaitidele. See toimib järgmiselt:", - "account_edit.verified_modal.invisible_link.details": "Lisa link oma päisesse. Oluline on atribuut rel=\"me\", mis takistab identiteedivargust kasutajate loodud sisuga veebisaitidel. Lehe päises võib kasutada isegi silti link {tag} asemel, kuid HTML peab olema kättesaadav ka ilma JavaScripti käivitamiseta.", + "account_edit.upload_modal.title_add.avatar": "Lisa profiilipilt", + "account_edit.upload_modal.title_add.header": "Lisa kaanepilt", + "account_edit.upload_modal.title_replace.avatar": "Profiilipildi vahetamine", + "account_edit.upload_modal.title_replace.header": "Kaanepildi vahetamine", + "account_edit.verified_modal.details": "Paranda oma Mastodoni profiili usaldusväärsust, kinnitades isiklike veebisaitide lingid. See toimib järgmiselt:", + "account_edit.verified_modal.invisible_link.details": "Lisa link oma saidi päisesse. Oluline on atribuut rel=\"me\", mis takistab identiteedivargust kasutajate loodud sisuga veebisaitides. Lehe päises võid {tag} elemendi asemel kasutada isegi silti link, kuid HTML peab olema kättesaadav ka ilma JavaScripti käivitamiseta.", "account_edit.verified_modal.invisible_link.summary": "Kuidas ma muudan lingi nähtamatuks?", - "account_edit.verified_modal.step1.header": "Kopeeri allpool olev HTML-kood ja kleebi oma veebisaidi päisesse", + "account_edit.verified_modal.step1.header": "Kopeeri allpool olev HTML-kood ja aseta oma veebisaidi päisesse", "account_edit.verified_modal.step2.details": "Kui oled oma veebisaidi kohandatud väljana juba lisanud, pead kinnitamise käivitamiseks selle kustutama ja uuesti lisama.", - "account_edit.verified_modal.step2.header": "Lisa oma veebileht kohandatud väljana", - "account_edit.verified_modal.title": "Kuidas lisada kinnitatud link", + "account_edit.verified_modal.step2.header": "Lisa oma veebisait kohandatud väljana", + "account_edit.verified_modal.title": "Kuidas toimib kinnitatud lingi lisamine", "account_edit_tags.add_tag": "Lisa #{tagName}", "account_edit_tags.column_title": "Muuda silte", "account_edit_tags.help_text": "Esiletõstetud teemaviited aitavad kasutajatel sinu profiili leida ja sellega suhestuda. Need kuvatakse filtritena sinu profiili lehe tegevuste vaates.", @@ -402,6 +408,8 @@ "collections.manage_accounts": "Halda kasutajakontosid", "collections.mark_as_sensitive": "Märgi delikaatseks", "collections.mark_as_sensitive_hint": "Peidab kogumiku kirjelduse ja kontod sisuhoiatuse taha. Kogumiku nimi ise on sellele vaatamata nähtav.", + "collections.maximum_collection_count_description": "Sinu server lubab luua kuni {count} kogumikku.", + "collections.maximum_collection_count_reached": "Sa oled loonud nii palju kogumikke, kui on lubatud", "collections.name_length_hint": "40 märgi piir", "collections.new_collection": "Uus kogumik", "collections.no_collections_yet": "Kogumikke veel pole.", @@ -1188,6 +1196,7 @@ "server_banner.active_users": "aktiivset kasutajaid", "server_banner.administered_by": "Administraator:", "server_banner.is_one_of_many": "{domain} on üks paljudest sõltumatutest Mastodoni serveritest, mida saab fediversumis osalemiseks kasutada.", + "server_banner.more_about_this_server": "Rohkem selle serveri kohta", "server_banner.server_stats": "Serveri statistika:", "sign_in_banner.create_account": "Loo konto", "sign_in_banner.follow_anyone": "Jälgi ükskõik keda kogu fediversumist ja näe kõike ajalises järjestuses. Ei mingeid algoritme, reklaame või klikipüüdjaid segamas.", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 19d13bc4365173..47a7e6ea5a5130 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "aktiivista käyttäjää", "server_banner.administered_by": "Ylläpitäjä:", "server_banner.is_one_of_many": "{domain} on yksi monista itsenäisistä Mastodon-palvelimista, joiden välityksellä voit toimia fediversumissa.", + "server_banner.more_about_this_server": "Lisää tästä palvelimesta", "server_banner.server_stats": "Palvelimen tilastot:", "sign_in_banner.create_account": "Luo tili", "sign_in_banner.follow_anyone": "Seuraa kenen tahansa julkaisuja fediversumissa ja näe ne kaikki aikajärjestyksessä. Ei algoritmeja, mainoksia eikä klikkausten kalastelua.", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 61efa55cad0374..8a6cc5e67a506f 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Voir ce profil", "account.hide_reblogs": "Masquer les boosts de @{name}", "account.in_memoriam": "En souvenir de", + "account.join_modal.day": "Jour", + "account.join_modal.me": "Vous avez rejoint {server} le", + "account.join_modal.me_anniversary": "Joyeux Fédiversaire ! Vous avez rejoint {server} le", + "account.join_modal.me_today": "C'est votre premier jour sur {server} !", + "account.join_modal.other": "{name} a rejoint {server} le", + "account.join_modal.other_today": "C'est le premier jour de {name} sur {server} !", + "account.join_modal.share.celebrate": "Partager un message de célébration", + "account.join_modal.share.intro": "Partager un message d'introduction", + "account.join_modal.share.welcome": "Partager un message de bienvenue", + "account.join_modal.years": "{number, plural, one {an} other {ans}}", "account.joined_short": "Inscrit·e", "account.languages": "Changer les langues abonnées", "account.last_active": "Dernière activité", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Gérer les comptes", "collections.mark_as_sensitive": "Marquer comme sensible", "collections.mark_as_sensitive_hint": "Masque la description et les comptes de la collection derrière un avertissement au public. Le titre reste visible.", + "collections.maximum_collection_count_description": "Votre serveur permet la création de {count} collections au maximum.", + "collections.maximum_collection_count_reached": "Vous avez créé le nombre maximum de collections", "collections.name_length_hint": "Maximum 40 caractères", "collections.new_collection": "Nouvelle collection", "collections.no_collections_yet": "Aucune collection pour le moment.", @@ -622,7 +634,7 @@ "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant.", "empty_column.account_featured_self.no_collections_button": "Créer une collection", "empty_column.account_featured_self.no_collections_hide_tab": "Cacher cet onglet", - "empty_column.account_featured_self.pre_collections": "Restez à l'écoute pour les collections", + "empty_column.account_featured_self.pre_collections": "Restez connecté pour les collections", "empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) permettent d'organiser vos propres listes de comptes à recommander aux autres.", "empty_column.account_featured_self.showcase_accounts": "Présentez vos comptes préférés", "empty_column.account_featured_self.showcase_accounts_desc": "Les collections sont des listes de comptes sélectionnés pour aider les autres à découvrir le Fédivers.", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "comptes actifs", "server_banner.administered_by": "Administré par:", "server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédivers.", + "server_banner.more_about_this_server": "En savoir plus sur ce serveur", "server_banner.server_stats": "Statistiques du serveur:", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 49b0f9ae5f9b84..9c9eab09e6d2f2 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Voir le profil", "account.hide_reblogs": "Masquer les partages de @{name}", "account.in_memoriam": "En mémoire.", + "account.join_modal.day": "Jour", + "account.join_modal.me": "Vous avez rejoint {server} le", + "account.join_modal.me_anniversary": "Joyeux Fédiversaire ! Vous avez rejoint {server} le", + "account.join_modal.me_today": "C'est votre premier jour sur {server} !", + "account.join_modal.other": "{name} a rejoint {server} le", + "account.join_modal.other_today": "C'est le premier jour de {name} sur {server} !", + "account.join_modal.share.celebrate": "Partager un message de célébration", + "account.join_modal.share.intro": "Partager un message d'introduction", + "account.join_modal.share.welcome": "Partager un message de bienvenue", + "account.join_modal.years": "{number, plural, one {an} other {ans}}", "account.joined_short": "Ici depuis", "account.languages": "Modifier les langues d'abonnements", "account.last_active": "Dernière activité", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Gérer les comptes", "collections.mark_as_sensitive": "Marquer comme sensible", "collections.mark_as_sensitive_hint": "Masque la description et les comptes de la collection derrière un avertissement au public. Le titre reste visible.", + "collections.maximum_collection_count_description": "Votre serveur permet la création de {count} collections au maximum.", + "collections.maximum_collection_count_reached": "Vous avez créé le nombre maximum de collections", "collections.name_length_hint": "Maximum 40 caractères", "collections.new_collection": "Nouvelle collection", "collections.no_collections_yet": "Aucune collection pour le moment.", @@ -622,7 +634,7 @@ "empty_column.account_featured.other": "{acct} n'a pas encore mis de contenu en avant.", "empty_column.account_featured_self.no_collections_button": "Créer une collection", "empty_column.account_featured_self.no_collections_hide_tab": "Cacher cet onglet", - "empty_column.account_featured_self.pre_collections": "Restez à l'écoute pour les collections", + "empty_column.account_featured_self.pre_collections": "Restez connecté pour les collections", "empty_column.account_featured_self.pre_collections_desc": "Les collections (à venir dans Mastodon 4.6) permettent d'organiser vos propres listes de comptes à recommander aux autres.", "empty_column.account_featured_self.showcase_accounts": "Présentez vos comptes préférés", "empty_column.account_featured_self.showcase_accounts_desc": "Les collections sont des listes de comptes sélectionnés pour aider les autres à découvrir le Fédivers.", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "comptes actifs", "server_banner.administered_by": "Administré par :", "server_banner.is_one_of_many": "{domain} est l'un des nombreux serveurs Mastodon indépendants que vous pouvez utiliser pour participer au fédivers.", + "server_banner.more_about_this_server": "En savoir plus sur ce serveur", "server_banner.server_stats": "Statistiques du serveur :", "sign_in_banner.create_account": "Créer un compte", "sign_in_banner.follow_anyone": "Suivez n'importe qui à travers le fédivers et affichez tout dans un ordre chronologique. Ni algorithmes, ni publicités, ni appâts à clics en perspective.", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 3193dce5d8edde..9b87fab82cf17d 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "úsáideoirí gníomhacha", "server_banner.administered_by": "Arna riar ag:", "server_banner.is_one_of_many": "Tá {domain} ar cheann de na freastalaithe Mastodon neamhspleácha go leor is féidir leat a úsáid chun páirt a ghlacadh sa feiliúnach.", + "server_banner.more_about_this_server": "Tuilleadh faoin bhfreastalaí seo", "server_banner.server_stats": "Staitisticí freastalaí:", "sign_in_banner.create_account": "Cruthaigh cuntas", "sign_in_banner.follow_anyone": "Lean aon duine ar fud an fhealsúnachta agus féach ar fad in ord croineolaíoch. Gan algartam, fógraí, nó clickbait i radharc.", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 4e8e27e1704376..a73f67dc35df0d 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "usuarias activas", "server_banner.administered_by": "Administrada por:", "server_banner.is_one_of_many": "{domain} é un dos moitos servidores Mastodon independentes que podes usar para participar do Fediverso.", + "server_banner.more_about_this_server": "Máis info sobre este servidor", "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Crear conta", "sign_in_banner.follow_anyone": "Sigue a quen queiras no Fediverso e le as publicacións en orde cronolóxica. Sen algoritmos, publicidade nin titulares enganosos.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 9c4e4a5439e0db..81ab07b802b127 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -71,6 +71,16 @@ "account.go_to_profile": "מעבר לפרופיל", "account.hide_reblogs": "להסתיר הידהודים מאת @{name}", "account.in_memoriam": "פרופיל זכרון.", + "account.join_modal.day": "יום", + "account.join_modal.me": "הצטרפת אל {server} בתאריך", + "account.join_modal.me_anniversary": "פדילדת שמח! הצטרפת אל {server} בתאריך", + "account.join_modal.me_today": "זהו יומך הראשון על {server}!", + "account.join_modal.other": "{name} הצטרפו אל {server} בתאריך", + "account.join_modal.other_today": "זהו היום הראשון של {name} על {server}!", + "account.join_modal.share.celebrate": "שתפו הודעה לחגיגת האירוע", + "account.join_modal.share.intro": "שתפו הודעת היכרות", + "account.join_modal.share.welcome": "שתפו הודעת קבלת פנים", + "account.join_modal.years": "{number, plural, one {שנה} two {שנתיים} other {# שנים}}", "account.joined_short": "תאריך הצטרפות", "account.languages": "שנה רישום לשפות", "account.last_active": "פעילות אחרונה", @@ -398,6 +408,8 @@ "collections.manage_accounts": "ניהול חשבונות", "collections.mark_as_sensitive": "מסומנים כרגישים", "collections.mark_as_sensitive_hint": "הסתרת תיאור וחשבונות האוסף מאחורי אזהרת תוכן. שם האוסף עדיין ישאר גלוי.", + "collections.maximum_collection_count_description": "השרת שלך מגביל יצירה של עד {count} אוספים.", + "collections.maximum_collection_count_reached": "יצרת את מספר האוספים המירבי", "collections.name_length_hint": "מגבלה של 40 תווים", "collections.new_collection": "אוסף חדש", "collections.no_collections_yet": "עוד אין אוספים.", @@ -785,7 +797,7 @@ "interaction_modal.on_this_server": "על שרת זה", "interaction_modal.title": "יש להזדהות כדי להמשיך", "interaction_modal.username_prompt": "למשל {example}", - "intervals.full.days": "{number, plural, one {# יום} other {# ימים}}", + "intervals.full.days": "{number, plural, one {יום} two {יומיים} other {# ימים}}", "intervals.full.hours": "{number, plural, one {# שעה} other {# שעות}}", "intervals.full.minutes": "{number, plural, one {# דקה} other {# דקות}}", "keyboard_shortcuts.back": "ניווט חזרה", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "משתמשים פעילים", "server_banner.administered_by": "מנוהל ע\"י:", "server_banner.is_one_of_many": "{domain} הוא שרת אחד משרתי מסטודון עצמאיים רבים שדרגם תוכלו להשתתף בפדיוורס (רשת חברתית מבוזרת).", + "server_banner.more_about_this_server": "עוד אודות שרת זה", "server_banner.server_stats": "סטטיסטיקות שרת:", "sign_in_banner.create_account": "יצירת חשבון", "sign_in_banner.follow_anyone": "תוכלו לעקוב אחרי כל משמתמש בפדיוורס ולקרוא הכל לפי סדר הפרסום בציר הזמן. אין אלגוריתמים, פרסומות, או קליקבייט מטעם בעלי הרשת.", @@ -1298,7 +1311,7 @@ "terms_of_service.effective_as_of": "בתוקף החל מתאריך {date}", "terms_of_service.title": "תנאי השירות", "terms_of_service.upcoming_changes_on": "שינויים עתידיים שיחולו ביום {date}", - "time_remaining.days": "נותרו {number, plural, one {# יום} other {# ימים}}", + "time_remaining.days": "נותרו {number, plural, one {יום} two {יומיים} other {# ימים}}", "time_remaining.hours": "נותרו {number, plural, one {# שעה} other {# שעות}}", "time_remaining.minutes": "נותרו {number, plural, one {# דקה} other {# דקות}}", "time_remaining.moments": "רגעים נותרו", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 5d1fa4e1f76435..cc2629bc57f317 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "virkir notendur", "server_banner.administered_by": "Stýrt af:", "server_banner.is_one_of_many": "{domain} er einn af fjölmörgum óháðum Mastodon-þjónum sem þú getur notað til að taka þátt í fediverse-samfélaginu.", + "server_banner.more_about_this_server": "Nánar um þennan netþjón", "server_banner.server_stats": "Tölfræði þjóns:", "sign_in_banner.create_account": "Búa til notandaaðgang", "sign_in_banner.follow_anyone": "Fylgstu með hverjum sem er í þessum samtvinnaða heimi og skoðaðu allt í tímaröð. Engin reiknirit, auglýsingar eða smellbeitur.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index 973a13aede610d..0b9d4dfc3d41ac 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -149,7 +149,7 @@ "account.unfollow": "Smetti di seguire", "account.unmute": "Riattiva @{name}", "account.unmute_notifications_short": "Riattiva notifiche", - "account.unmute_short": "Attiva audio", + "account.unmute_short": "Riattiva", "account_edit.advanced_settings.bot_hint": "Segnala ad altri che l'account esegue principalmente azioni automatizzate e potrebbe non essere monitorato", "account_edit.advanced_settings.bot_label": "Account automatizzato", "account_edit.advanced_settings.title": "Impostazioni avanzate", @@ -1196,6 +1196,7 @@ "server_banner.active_users": "utenti attivi", "server_banner.administered_by": "Amministrato da:", "server_banner.is_one_of_many": "{domain} è uno dei tanti server Mastodon indipendenti che puoi usare per partecipare al fediverso.", + "server_banner.more_about_this_server": "Maggiori informazioni su questo server", "server_banner.server_stats": "Statistiche del server:", "sign_in_banner.create_account": "Crea un profilo", "sign_in_banner.follow_anyone": "Segui chiunque nel fediverso e vedi tutto in ordine cronologico. Nessun algoritmo, annunci o clickbait in vista.", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index 96d3d0fd1dbbbc..843376ae28681f 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -71,6 +71,16 @@ "account.go_to_profile": "行kàu個人資料", "account.hide_reblogs": "Tshàng tuì @{name} 來ê轉PO", "account.in_memoriam": "佇tsia追悼。", + "account.join_modal.day": "Kang", + "account.join_modal.me": "Lí加入 {server} 佇", + "account.join_modal.me_anniversary": "加入聯邦宇宙周年快樂!Lí加入 {server} 佇", + "account.join_modal.me_today": "Che是lí加入 {server} ê頭一kang!", + "account.join_modal.other": "{name} 加入 {server} 佇", + "account.join_modal.other_today": "Che是 {name} 加入 {server} ê頭一kang!", + "account.join_modal.share.celebrate": "分享慶祝ê PO文", + "account.join_modal.share.intro": "分享介紹ê PO文", + "account.join_modal.share.welcome": "分享歡迎ê PO文", + "account.join_modal.years": "{number, plural, other {年}}", "account.joined_short": "加入ê時", "account.languages": "變更訂閱的語言", "account.last_active": "頂kái活動ê時間", @@ -398,6 +408,8 @@ "collections.manage_accounts": "管理口座", "collections.mark_as_sensitive": "標做敏感ê", "collections.mark_as_sensitive_hint": "Kā收藏ê描述kap口座tshàng佇內容警告ê後壁。收藏ê名猶原會當看。", + "collections.maximum_collection_count_description": "Lí ê服侍器允准增加kàu上tsē {count} ê收藏。", + "collections.maximum_collection_count_reached": "Lí已經建立kàu收藏數ê盡磅ah", "collections.name_length_hint": "限制 40 字", "collections.new_collection": "新ê收藏", "collections.no_collections_yet": "Iáu無收藏。", @@ -416,6 +428,8 @@ "collections.suggestions.must_follow_desc": "Tsiah ê口座審查所有跟tuè ê請求。跟tuè ê tsiah通kā in加入去收藏內底。", "collections.topic_hint": "加 hashtag,幫tsān別lâng了解tsit ê收藏ê主題。", "collections.topic_special_chars_hint": "儲存ê時陣ê suá掉特殊字元", + "collections.unlisted_collections_description": "Chiah ê buē佇lí ê個人資料顯示予別lâng看。毋koh有tsit ê連結ê ē當發現in。", + "collections.unlisted_collections_with_count": "無公開ê收藏({count})", "collections.view_collection": "看收藏", "collections.visibility_public": "公共ê", "collections.visibility_public_hint": "佇tshiau-tshuē結果kap別位有推薦ê所在通發現。", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 2edc5a6a07e434..1017c975ed5f51 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ga naar profiel", "account.hide_reblogs": "Boosts van @{name} verbergen", "account.in_memoriam": "In memoriam.", + "account.join_modal.day": "Dag", + "account.join_modal.me": "Je bent op {server} sinds", + "account.join_modal.me_anniversary": "Fijne Fediversary! Je bent op {server} sinds", + "account.join_modal.me_today": "Het is je eerste dag op {server}!", + "account.join_modal.other": "{name} is op {server} sinds", + "account.join_modal.other_today": "Het is voor {name} de eerste dag op {server}!", + "account.join_modal.share.celebrate": "Deel een feestelijk bericht", + "account.join_modal.share.intro": "Deel een introductie", + "account.join_modal.share.welcome": "Deel een welkomstbericht", + "account.join_modal.years": "{number, plural, one {jaar} other {jaar}}", "account.joined_short": "Sinds", "account.languages": "Getoonde talen wijzigen", "account.last_active": "Laatst actief", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Accounts beheren", "collections.mark_as_sensitive": "Als gevoelig markeren", "collections.mark_as_sensitive_hint": "Verbergt de omschrijving en de accounts van de verzameling achter een waarschuwing. De naam van de verzameling blijft zichtbaar.", + "collections.maximum_collection_count_description": "Je server maakt het mogelijk om maximaal {count} verzamelingen aan te maken.", + "collections.maximum_collection_count_reached": "Je hebt het maximum aantal lijsten aangemaakt", "collections.name_length_hint": "Limiet van 40 tekens", "collections.new_collection": "Nieuwe verzameling", "collections.no_collections_yet": "Nog geen verzamelingen.", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "actieve gebruikers", "server_banner.administered_by": "Beheerd door:", "server_banner.is_one_of_many": "{domain} is een van de vele onafhankelijke Mastodon-servers die je kunt gebruiken om deel te nemen aan de fediverse.", + "server_banner.more_about_this_server": "Meer informatie over deze server", "server_banner.server_stats": "Serverstats:", "sign_in_banner.create_account": "Registreren", "sign_in_banner.follow_anyone": "Volg iedereen in de fediverse en zie het allemaal in chronologische volgorde. Geen algoritmes, advertenties of clickbaits.", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 0d654a1fba0e2a..09826d89dc6482 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Ir ao perfil", "account.hide_reblogs": "Ocultar impulsos de @{name}", "account.in_memoriam": "In Memoriam.", + "account.join_modal.day": "Dia", + "account.join_modal.me": "Você uniu-se a {server} em", + "account.join_modal.me_anniversary": "Feliz Fediversário! Você uniu-se a {server} em", + "account.join_modal.me_today": "É o seu primeiro dia em {server}!", + "account.join_modal.other": "{name} uniu-se a {server} em", + "account.join_modal.other_today": "Este é o primeiro dia de {name} em {server}!", + "account.join_modal.share.celebrate": "Compartilhe uma postagem comemorativa", + "account.join_modal.share.intro": "Compartilhe uma postagem de introdução", + "account.join_modal.share.welcome": "Compartilhe uma postagem de boas-vindas", + "account.join_modal.years": "{number, plural, one {ano} other {anos}}", "account.joined_short": "Entrou", "account.languages": "Mudar idiomas inscritos", "account.last_active": "Última atividade", @@ -95,7 +105,7 @@ "account.menu.show_reblogs": "Mostrar impulsos na linha do tempo", "account.menu.unblock": "Desbloquear conta", "account.menu.unblock_domain": "Desbloquear {domain}", - "account.menu.unmute": "Dessilenciar conta", + "account.menu.unmute": "Deixar de silenciar a conta", "account.moved_to": "{name} indicou que sua nova conta agora é:", "account.mute": "Silenciar @{name}", "account.mute_notifications_short": "Silenciar notificações", @@ -145,7 +155,7 @@ "account_edit.advanced_settings.title": "Configurações avançadas", "account_edit.bio.add_label": "Adicionar biografia", "account_edit.bio.edit_label": "Editar Biografia", - "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar os outros a lhe identificar.", + "account_edit.bio.placeholder": "Insira uma breve introdução para ajudar as outras pessoas a te identificar.", "account_edit.bio.title": "Bio", "account_edit.bio_modal.add_title": "Adicionar biografia", "account_edit.bio_modal.edit_title": "Editar biografia", @@ -179,12 +189,12 @@ "account_edit.field_edit_modal.link_emoji_warning": "Recomendamos não utilizar emojis personalizados combinados com URLs. Campos personalizados contendo ambos serão exibidos apenas como texto em vez de link, para evitar confusão dos usuários.", "account_edit.field_edit_modal.name_hint": "Ex. \"Site pessoal\"", "account_edit.field_edit_modal.name_label": "Descrição", - "account_edit.field_edit_modal.url_warning": "Para adicionar um link, por favor inclia {protocol} no início.", + "account_edit.field_edit_modal.url_warning": "Para adicionar um link, inclua {protocol} no início.", "account_edit.field_edit_modal.value_hint": "Ex.: \"https://example.me\"", "account_edit.field_edit_modal.value_label": "Valor", "account_edit.field_reorder_modal.drag_cancel": "O arrasto foi cancelado. O campo \"{item}\" foi descartado.", "account_edit.field_reorder_modal.drag_end": "O campo \"{item}\" foi descartado.", - "account_edit.field_reorder_modal.drag_instructions": "Para reordenar campos personalizados, pressione espaço ou enter. Enquanto arrasta, utilize as teclas de seta para mover o campo para cima ou para baixo. Pressione espaço ou enter novamente para colocar o campo em sua nova posição, ou pressione Esc para cancelar.", + "account_edit.field_reorder_modal.drag_instructions": "Para reordenar campos personalizados, pressione espaço ou enter. Enquanto arrasta, utilize as teclas de seta para mover o campo para cima ou para baixo. Pressione espaço ou enter novamente para colocar o campo em sua nova posição, ou pressione 'Esc' para cancelar.", "account_edit.field_reorder_modal.drag_move": "Campo \"{item}\" foi movido.", "account_edit.field_reorder_modal.drag_over": "Campo \"{item}\" foi movido para \"{over}\".", "account_edit.field_reorder_modal.drag_start": "Campo \"{item}\" foi pego.", @@ -209,7 +219,7 @@ "account_edit.name_modal.add_title": "Inserir nome de exibição", "account_edit.name_modal.edit_title": "Editar nome de exibição", "account_edit.profile_tab.button_label": "Personalizar", - "account_edit.profile_tab.hint.description": "Essas configurações definem o que os usuários veem no {servidor} nos apps oficiais, mas podem não se aplicar a usuários em servidores e apps de terceiros.", + "account_edit.profile_tab.hint.description": "Essas configurações definem o que os usuários veem no {server} nos apps oficiais, mas podem não se aplicar a usuários em servidores e apps de terceiros.", "account_edit.profile_tab.hint.title": "Exibições divergem", "account_edit.profile_tab.show_featured.description": "'Em Destaque' é uma aba opcional onde você pode exibir outras contas.", "account_edit.profile_tab.show_featured.title": "Mostrar aba \"Destaque\"", @@ -353,7 +363,7 @@ "closed_registrations_modal.title": "Inscrevendo-se no Mastodon", "collection.share_modal.share_link_label": "Compartilhar link", "collection.share_modal.share_via_post": "Postar no Mastodon", - "collection.share_modal.share_via_system": "Enviar para...", + "collection.share_modal.share_via_system": "Enviar para…", "collection.share_modal.title": "Compartilhar coleção", "collection.share_modal.title_new": "Compartilhe sua nova coleção!", "collection.share_template_other": "Confira esta coleção incrível: {link}", @@ -398,6 +408,8 @@ "collections.manage_accounts": "Gerenciar contas", "collections.mark_as_sensitive": "Marcar como sensível", "collections.mark_as_sensitive_hint": "Oculta a descrição e as contas da coleção por trás de um aviso de conteúdo. O nome da coleção ainda será visível.", + "collections.maximum_collection_count_description": "Seu servidor permite a criação de, no máximo, {count} coleções.", + "collections.maximum_collection_count_reached": "Você criou a quantidade máxima de coleções", "collections.name_length_hint": "limite de 40 caracteres", "collections.new_collection": "Nova coleção", "collections.no_collections_yet": "Ainda não há coleções.", @@ -407,7 +419,7 @@ "collections.revoke_inclusion.confirmation": "Você foi removido de \"{collection}\"", "collections.revoke_inclusion.error": "Houve um erro, por favor tente novamente mais tarde.", "collections.search_accounts_label": "Pesquisar por uma conta para adicionar", - "collections.search_accounts_max_reached": "Você acrescentou o numero máximo de contas", + "collections.search_accounts_max_reached": "Você acrescentou o número máximo de contas", "collections.sensitive": "Sensível", "collections.share_short": "Compartilhar", "collections.suggestions.can_not_add": "Não pôde ser adicionado", @@ -623,9 +635,9 @@ "empty_column.account_featured_self.no_collections_button": "Criar uma coleção", "empty_column.account_featured_self.no_collections_hide_tab": "Ocultar esta aba em vez disso", "empty_column.account_featured_self.pre_collections": "Acompanhe este espaço para Coleções", - "empty_column.account_featured_self.pre_collections_desc": "Coleções (chegando no mastodon 4.6) permitem que você crie sua própria lista curada de contas para recomendar aos outros.", + "empty_column.account_featured_self.pre_collections_desc": "Coleções (chegando no Mastodon 4.6) permitem que você crie sua própria lista curada de contas para recomendar aos outros.", "empty_column.account_featured_self.showcase_accounts": "Exibir suas contas favoritas", - "empty_column.account_featured_self.showcase_accounts_desc": "Coleçòes são listas curadas de contas que ajudam os outros a descobrir mais do Fediverso.", + "empty_column.account_featured_self.showcase_accounts_desc": "Coleções são listas curadas de contas que ajudam os outros a descobrir mais do Fediverso.", "empty_column.account_featured_unknown.other": "Esta conta ainda não pôs nada em destaque.", "empty_column.account_hides_collections": "A pessoa optou por não disponibilizar esta informação", "empty_column.account_suspended": "Conta suspensa", @@ -716,7 +728,7 @@ "following.hide_other_following": "Este usuário escolheu não deixar visíveis aqueles a quem segue", "following.title": "Seguido por {name}", "footer.about": "Sobre", - "footer.about_mastodon": "Sobre o mastodon", + "footer.about_mastodon": "Sobre o Mastodon", "footer.about_server": "Sobre {domain}", "footer.about_this_server": "Sobre", "footer.directory": "Diretório de perfis", @@ -1184,6 +1196,7 @@ "server_banner.active_users": "usuários ativos", "server_banner.administered_by": "Administrado por:", "server_banner.is_one_of_many": "{domain} é um dos muitos servidores Mastodon independentes que você pode usar para participar do fediverso.", + "server_banner.more_about_this_server": "Saiba mais sobre este servidor", "server_banner.server_stats": "Estatísticas do servidor:", "sign_in_banner.create_account": "Criar conta", "sign_in_banner.follow_anyone": "Siga alguém pelo fediverso e veja tudo em ordem cronológica. Sem algoritmos, anúncios ou clickbait à vista.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 4bcf8287353819..c6255c47dc9734 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -71,6 +71,16 @@ "account.go_to_profile": "Kalo te profili", "account.hide_reblogs": "Fshih përforcime nga @{name}", "account.in_memoriam": "In Memoriam.", + "account.join_modal.day": "Ditë", + "account.join_modal.me": "U bëtë pjesë e {server} më", + "account.join_modal.me_anniversary": "Gëzuar përvjetorin në Fedivers! U bëtë pjesë e {server} më", + "account.join_modal.me_today": "Është dita jua e parë në {server}!", + "account.join_modal.other": "{name} erdhi në {server} më", + "account.join_modal.other_today": "Është dita e parë në {server} për {name}!", + "account.join_modal.share.celebrate": "Ndani me të tjerë një postim kremtimi", + "account.join_modal.share.intro": "Ndani me të tjerë një postim hyrës", + "account.join_modal.share.welcome": "Mdani me të tjerë një postim mirëseardhjeje", + "account.join_modal.years": "{number, plural, one {vit} other {vjet}}", "account.joined_short": "U bë pjesë", "account.languages": "Ndryshoni gjuhë pajtimesh", "account.last_active": "Aktiv së fundi më", @@ -393,6 +403,8 @@ "collections.manage_accounts": "Administroni llogari", "collections.mark_as_sensitive": "Vëri shenjë si rezervat", "collections.mark_as_sensitive_hint": "Bën fshehjen e përshkrimit të koleksionit dhe llogarive prapa një sinjalizimi lënde. Emri i koleksionit do të jetë ende i dukshëm.", + "collections.maximum_collection_count_description": "Shërbyesi juaj lejon krijimin e deri në {count} koleksioneve.", + "collections.maximum_collection_count_reached": "Keni krijuar një numër maksimum koleksionesh", "collections.name_length_hint": "Kufi 40 shenja", "collections.new_collection": "Koleksion i ri", "collections.no_collections_yet": "Ende pa koleksione.", @@ -1179,6 +1191,7 @@ "server_banner.active_users": "përdorues aktivë", "server_banner.administered_by": "Administruar nga:", "server_banner.is_one_of_many": "{domain} është një nga mjaft shërbyes të pavarur Mastodon te të cilët mund të merrni pjesë në Fedivers.", + "server_banner.more_about_this_server": "Më tepër rreth këtij shërbyesi", "server_banner.server_stats": "Statistika shërbyesi:", "sign_in_banner.create_account": "Krijoni llogari", "sign_in_banner.follow_anyone": "Ndiqni këdo në Fedivers dhe shihni gjithçka në rend kohor. Pa algortime, apo marifete.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 76d1402e439cea..dfea97cf317b41 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "etkin kullanıcılar", "server_banner.administered_by": "Yönetici:", "server_banner.is_one_of_many": "{domain} fediverse katılımı için kullanabileceğiniz birçok bağımsız Mastodon sunucusundan biridir.", + "server_banner.more_about_this_server": "Bu sunucu hakkında daha fazla bilgi", "server_banner.server_stats": "Sunucu istatistikleri:", "sign_in_banner.create_account": "Hesap oluştur", "sign_in_banner.follow_anyone": "Fediverse çapında herhangi bir kimseyi takip edin ve tümünü kronolojik sırada görüntüleyin. Algoritma, reklam veya tıklama tuzağı yok.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index d21c45687afeb0..6a80dcb03aad55 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "người hoạt động", "server_banner.administered_by": "Vận hành:", "server_banner.is_one_of_many": "{domain} là một trong nhiều máy chủ Mastodon độc lập mà bạn có thể sử dụng để tham gia vào Fediverse.", + "server_banner.more_about_this_server": "Về máy chủ này", "server_banner.server_stats": "Thống kê:", "sign_in_banner.create_account": "Đăng ký", "sign_in_banner.follow_anyone": "Theo dõi bất kỳ ai trên Fediverse và đọc tút theo thứ tự thời gian. Không thuật toán, quảng cáo hoặc clickbait.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 22ea5db0d75f1b..756258d989fba9 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -1196,6 +1196,7 @@ "server_banner.active_users": "活跃用户", "server_banner.administered_by": "本站管理员:", "server_banner.is_one_of_many": "{domain} 是可用于参与联邦宇宙的众多独立 Mastodon 站点之一。", + "server_banner.more_about_this_server": "关于此服务器的更多信息", "server_banner.server_stats": "服务器统计数据:", "sign_in_banner.create_account": "创建账号", "sign_in_banner.follow_anyone": "关注联邦宇宙中的任何人,并按时间顺序查看全部内容。没有算法、广告或诱导链接。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index c0804f32e980b7..118d3d0036b39c 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -73,13 +73,13 @@ "account.in_memoriam": "謹此悼念。", "account.join_modal.day": "日", "account.join_modal.me": "您加入 {server} 的時間為", - "account.join_modal.me_anniversary": "聯邦宇宙週年快了!您加入 {server} 的時間為", + "account.join_modal.me_anniversary": "歡慶聯邦宇宙週年!您加入 {server} 的時間為", "account.join_modal.me_today": "這是您在 {server} 的第一天!", "account.join_modal.other": "{name} 加入 {server} 的時間為", "account.join_modal.other_today": "這是 {name} 在 {server} 的第一天!", - "account.join_modal.share.celebrate": "分享慶祝嘟文", - "account.join_modal.share.intro": "分享介紹嘟文", - "account.join_modal.share.welcome": "分享歡迎嘟文", + "account.join_modal.share.celebrate": "發一則慶祝嘟文", + "account.join_modal.share.intro": "發一則介紹嘟文", + "account.join_modal.share.welcome": "發一則歡迎嘟文", "account.join_modal.years": "{number, plural, other {年}}", "account.joined_short": "加入時間", "account.languages": "變更訂閱的語言", @@ -408,6 +408,8 @@ "collections.manage_accounts": "管理帳號", "collections.mark_as_sensitive": "標記為敏感內容", "collections.mark_as_sensitive_hint": "將此收藏名單之說明隱藏於內容警告之後。此收藏名單名稱仍將可見。", + "collections.maximum_collection_count_description": "您的伺服器允許新增至多 {count} 個收藏名單。", + "collections.maximum_collection_count_reached": "您所建立之收藏名單數量已達上限", "collections.name_length_hint": "40 字限制", "collections.new_collection": "新增收藏名單", "collections.no_collections_yet": "您沒有任何收藏名單。", @@ -1194,6 +1196,7 @@ "server_banner.active_users": "活躍使用者", "server_banner.administered_by": "管理者:", "server_banner.is_one_of_many": "{domain} 為許多獨立的 Mastodon 伺服器之一,您能透過該伺服器參與聯邦宇宙。", + "server_banner.more_about_this_server": "更多關於此伺服器", "server_banner.server_stats": "伺服器統計:", "sign_in_banner.create_account": "新增帳號", "sign_in_banner.follow_anyone": "跟隨聯邦宇宙中的任何人,並且以時間順序瀏覽所有內容。沒有演算法、廣告、或騙點擊連結。", diff --git a/config/locales/az.yml b/config/locales/az.yml index 69478ccf39e29d..facf81ea5892ab 100644 --- a/config/locales/az.yml +++ b/config/locales/az.yml @@ -63,6 +63,7 @@ az: create: Moderasiya notu əlavə et description_html: Notlara baxın, gələcəkdə özünüz və digər moderatorlar üçün notlar buraxın title: Moderasiya notları + totals_time_period_hint_html: Aşağıdakı cəmlərə bütün vaxtlardakı verilər daxildir. reports: actions: suspend_description_html: Hesab və onun bütün məzmunları əlçatmaz olacaq və nəticədə silinəcək və onunla əlaqə qurmaq mümkün olmayacaq. 30 gün ərzində geri qaytarıla bilər. Bu hesaba aid bütün hesabatları bağlayır. @@ -128,6 +129,7 @@ az: destroyed: Tətbiq uğurla silindi regenerate_token: Erişim tokenini təkrar yarat token_regenerated: Erişim tokeni uğurla yaradıldı + warning: Bu verilərə çox diqqətlə yanaşın. Bunları heç kəslə paylaşmayın! your_token: Erişim tokeniniz auth: captcha_confirmation: @@ -170,6 +172,12 @@ az: confirm_password: Kimliyinizi doğrulamaq üçün hazırkı parolunuzu daxil edin proceed: Hesabı sil success_msg: Hesabınız uğurla silindi + warning: + data_removal: Göndərişləriniz və digər veriləriniz həmişəlik silinəcək + email_subscription_mailer: + notification: + footer: + privacy_html: E-poçtlar, Mastodon tərəfindən dəstəklənən %{domain} serverindən göndərilir. Bu serverin fərdi verilərinizi necə emal etdiyini anlamaq üçün Məxfilik Siyasətinə baxın. exports: archive_takeout: hint_html: "Göndərişlərinizin və yüklədiyiniz medianın bir arxivini tələb edə bilərsiniz. Xaricə köçürülmüş verilər, istənilən uyumlu yazılım tərəfindən oxuna bilən ActivityPub formatında olacaq. Hər 7 gündə bir dəfə arxiv tələb edə bilərsiniz." @@ -196,6 +204,7 @@ az: errors: incompatible_type: Seçilmiş daxilə köçürmə növü ilə uyumlu deyil preface: Başqa serverdən xaricə köçürdüyünüz veriləri (məsələn, izlədiyiniz və ya əngəllədiyiniz insanların siyahısını) daxilə köçürə bilərsiniz. + success: Veriləriniz uğurla yüklənib və zamanla emal olunacaq type_groups: constructive: İzlənilənlər və Əlfəcinlər invites: @@ -214,6 +223,7 @@ az: proceed_with_move: İzləyiciləri daşı warning: disabled_account: Hazırkı hesabınız daha sonra istifadəyə yararsız olacaq. Ancaq, verilərin xaricə köçürülməsinə, həmçinin təkrar aktivləşdirmə prosesinə erişə biləcəksiniz. + other_data: Başqa (göndərişləriniz və izlədiyiniz hesabların siyahısı daxil olmaqla) heç bir veri avtomatik olaraq danışmayacaq moderation: title: Moderasiya notification_mailer: @@ -246,6 +256,8 @@ az: remove_selected_followers: Seçilmiş izləyiciləri çıxart remove_selected_follows: Seçilmiş istifadəçiləri izləmədən çıxart status: Hesab statusu + self_destruct: + lead_html: Təəssüf ki, %{domain} həmişəlik bağlanır. Əgər orda bir hesabınız varsa, onu istifadə etməyə davam edə bilməyəcəksiniz, ancaq hələ də verilərinizin bir nüsxəsini istəyə bilərsiniz. sessions: browsers: edge: Microsoft Edge diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 333a5dd4964afe..df3d3fb75c78f1 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -822,6 +822,7 @@ cy: categories: administration: Gweinyddiaeth devops: DevOps + email: E-bost invites: Gwahoddiadau moderation: Cymedroli special: Arbennig @@ -842,6 +843,8 @@ cy: administrator_description: Bydd defnyddwyr sydd â'r caniatâd hwn yn osgoi pob caniatâd delete_user_data: Dileu Data Defnyddiwr delete_user_data_description: Yn caniatáu i ddefnyddwyr ddileu data defnyddwyr eraill yn ddi-oed + invite_bypass_approval: Gwahodd Defnyddwyr heb adolygiad + invite_bypass_approval_description: Yn caniatáu i bob sydd wedi'u gwahodd i'r gweinydd gan y defnyddwyr hyn i hepgor cymeradwyaeth cymedroli invite_users: Gwahodd Defnyddwyr invite_users_description: Yn caniatáu i ddefnyddwyr wahodd pobl newydd i'r gweinydd manage_announcements: Rheoli Cyhoeddiadau @@ -852,6 +855,8 @@ cy: manage_blocks_description: Yn caniatáu i ddefnyddwyr rwystro darparwyr e-bost a chyfeiriadau IP manage_custom_emojis: Rheoli Emojis Cyfaddas manage_custom_emojis_description: Yn caniatáu i ddefnyddwyr reoli emojis cyfaddas ar y gweinydd + manage_email_subscriptions: Rheoli Tanysgrifiadau E-bost + manage_email_subscriptions_description: Caniatáu i ddefnyddwyr danysgrifio i ddefnyddwyr sydd â'r caniatâd hwn drwy e-bost manage_federation: Rheoli Ffederasiwn manage_federation_description: Yn caniatáu i ddefnyddwyr rwystro neu ganiatáu ffedereiddio â pharthau eraill, a rheoli'r gallu i gyflawni manage_invites: Rheoli Gwahoddiadau @@ -1498,6 +1503,45 @@ cy: your_appeal_rejected: Mae eich apêl wedi'i gwrthod edit_profile: other: Arall + redesign_body: Mae modd golygu proffiliau’n uniongyrchol o’r dudalen proffil nawr. + redesign_button: Ewch yno + redesign_title: Mae profiad golygu proffil newydd + email_subscription_mailer: + confirmation: + action: Cadarnhau cyfeiriad e-bost + instructions_to_confirm: Cadarnhewch eich bod am dderbyn e-byst gan %{name} (@%{acct}) pan fyddan nhw'n cyhoeddi postiadau newydd. + instructions_to_ignore: Os nad ydych chi'n siŵr pam y gwnaethoch chi dderbyn yr e-bost hwn, gallwch ei ddileu. Fyddwch chi heb danysgrifio os nad ydych wedi clicio ar y ddolen uchod. + subject: Cadarnhewch eich cyfeiriad e-bost + title: Derbyn diweddariadau e-bost gan %{name}? + notification: + create_account: Creu cyfrif Mastodon + footer: + privacy_html: Mae negeseuon e-bost yn cael eu hanfon o %{domain}, gweinydd sy'n cael ei bweru gan Mastodon. I ddeall sut mae'r gweinydd hwn yn prosesu eich data personol, cyfeiriwch at y Polisi Preifatrwydd . + reason_for_email_html: Rydych chi'n derbyn yr e-bost hwn oherwydd eich bod wedi dewis derbyn diweddariadau e-bost gan %{name}. Ddim eisiau derbyn yr e-byst hyn? Dad-danysgrifiwch + interact_with_this_post: + few: Rhyngweithio â'r postiadau hyn a darganfod rhagor. + many: Rhyngweithio â'r postiadau hyn a darganfod rhagor. + one: Rhyngweithio â'r postiad hwn a darganfod fwy yn debyg iddo. + other: Rhyngweithio â'r postiadau hyn a darganfod rhagor. + two: Rhyngweithio â'r postiadau hyn a darganfod rhagor. + zero: Rhyngweithio â'r postiadau hyn a darganfod rhagor. + subject: + plural: Postiadau newydd gan %{name} + singular: 'Postiad newydd: "%{excerpt}"' + title: + plural: Postiadau newydd gan %{name} + singular: 'Postiad newydd: "%{excerpt}"' + email_subscriptions: + active: Gweithredol + confirmations: + show: + changed_your_mind: Wedi newid eich meddwl? + success_html: Byddwch nawr yn dechrau derbyn negeseuon e-bost pan fydd %{name} yn cyhoeddi postiadau newydd. Ychwanegwch %{sender} at eich cysylltiadau fel nad yw'r postiadau hyn yn mynd i'ch ffolder Sbam. + title: Rydych chi wedi cofrestru + unsubscribe: Dad-danysgrifio + inactive: Anweithredol + status: Statws + subscribers: Tanysgrifwyr emoji_styles: auto: Awto native: Cynhenid @@ -1947,6 +1991,8 @@ cy: posting_defaults: Rhagosodiadau postio public_timelines: Ffrydiau cyhoeddus privacy: + email_subscriptions: Anfon postiadau drwy e-bost + email_subscriptions_hint_html: Ychwanegwch ffurflen gofrestru e-bost at eich proffil sy'n ymddangos i ddefnyddwyr sydd wedi allgofnodi. Pan fydd ymwelwyr yn nodi eu cyfeiriad e-bost ac yn cofrestru, bydd Mastodon yn anfon diweddariadau e-bost ar gyfer eich postiadau cyhoeddus. hint_html: "Cyfaddaswch sut rydych chi am i'ch proffil a'ch postiadau gael eu canfod. Gall amrywiaeth o nodweddion yn Mastodon eich helpu i gyrraedd cynulleidfa ehangach pan fyddwch wedi'ch eu galluogi. Cymerwch eiliad i adolygu'r gosodiadau hyn i sicrhau eu bod yn cyd-fynd â'ch pwrpas defnydd." privacy: Preifatrwydd privacy_hint_html: Rheolwch faint rydych chi am ei ddatgelu er budd eraill. Mae pobl yn darganfod proffiliau diddorol ac apiau difyr trwy bori trwy ddilynwyr pobl eraill a gweld o ba apiau maen nhw'n postio, ond efallai y byddai'n well gennych ei gadw'n gudd. @@ -2014,7 +2060,7 @@ cy: firefox: Firefox generic: Porwr anhysbys huawei_browser: Porwr Huawei - ie: Nid yw'r rhaglen hon yn gydnaws ag Internet Explorer + ie: Internet Explorer micro_messenger: MicroMessenger nokia: Porwr Nokia S40 Ovi opera: Opera @@ -2226,6 +2272,28 @@ cy: resume_app_authorization: Ailddechrau awdurdodi rhaglen role_requirement: Mae %{domain} yn gofyn i chi osod Dilysu Dau Ffactor cyn y gallwch ddefnyddio Mastodon. webauthn: Allweddi diogelwch + unsubscriptions: + create: + action: Ewch i gartref y gweinydd + email_subscription: + confirmation_html: Fyddwch chi ddim yn derbyn negeseuon e-bost gan %{name} bellach. + title: Rydych chi wedi dad-danysgrifio + user: + confirmation_html: Fyddwch chi ddim yn derbyn %{type} gan Mastodon ar %{domain} bellach. + notification_emails: + favourite: e-bost hysbysu hoffi + follow: e-byst hysbysu dilyn + follow_request: e-byst ceisiadau dilyn + mention: e-byst hysbysu crybwyll + reblog: e-byst hysbysiadau hybu + show: + action: Dad-danysgrifio + email_subscription: + confirmation_html: Byddwch chi ddim yn derbyn e-byst pan fydd y cyfrif hwn yn cyhoeddi postiadau newydd. + title: Dad-danysgrifio o %{name}? + user: + confirmation_html: Byddwch chi ddim yn derbyn %{type} gan Mastodon ar %{domain}. + title: Dad-danysgrifio o %{type}? user_mailer: announcement_published: description: 'Mae gweinyddwyr %{domain} yn gwneud cyhoeddiad:' diff --git a/config/locales/de.yml b/config/locales/de.yml index 353f262fbdd0fc..8873ea820ce6a6 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1825,6 +1825,7 @@ de: public_timelines: Öffentliche Timelines privacy: email_subscriptions: Sende Beiträge per E-Mail + email_subscriptions_hint_html: Füge deinem Profil ein E-Mail-Formular für nicht angemeldete Personen hinzu. Dadurch können sie von Mastodon E-Mails über deine neuen öffentlichen Beiträge erhalten. hint_html: "Bestimme selbst, wie dein Profil und deine Beiträge gefunden werden sollen. Zahlreiche Mastodon-Funktionen können dir für eine größere Reichweite behilflich sein. Nimm dir einen Moment Zeit, um diese Einstellungen zu überprüfen." privacy: Datenschutz privacy_hint_html: Bestimme, wie viele Informationen du für andere preisgeben möchtest. Viele Menschen entdecken interessante Profile und coole Apps, indem sie die Follower anderer Profile durchstöbern und die Apps sehen, über die Beiträge veröffentlicht wurden – möglicherweise möchtest du diese Informationen ausblenden. @@ -2094,11 +2095,21 @@ de: email_subscription: confirmation_html: Du erhältst keine E-Mails mehr von %{name}. title: Du wurdest abgemeldet + user: + confirmation_html: Du erhältst von Mastodon zukünftig keine %{type} auf %{domain}. + notification_emails: + favourite: E-Mail-Benachrichtigungen über neue Favoriten + follow: E-Mail-Benachrichtigungen über neue Follower + follow_request: E-Mail-Benachrichtigungen über neue Follower-Anfragen + mention: E-Mail-Benachrichtigungen über neue Erwähnungen + reblog: E-Mail-Benachrichtigungen über geteilte Beiträge show: action: Abbestellen email_subscription: + confirmation_html: Du wirst bei neuen Beiträgen keine E-Mails mehr erhalten. title: "%{name} abbestellen?" user: + confirmation_html: Du wirst von Mastodon zukünftig keine %{type} auf %{domain} erhalten. title: "%{type} abbestellen?" user_mailer: announcement_published: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 38fa5b2decd2b2..e3111821d4efc5 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1870,7 +1870,7 @@ ja: private: フォロワーのみ public: 公開 public_long: すべての人 (Mastodon以外も含む) - unlisted: 非表示 + unlisted: ひかえめな公開 unlisted_long: Mastodonの検索結果、トレンド、公開タイムラインに表示しない statuses_cleanup: enabled: 古い投稿を自動的に削除する diff --git a/config/locales/simple_form.az.yml b/config/locales/simple_form.az.yml index 245709514319a9..44044e9dbb6a8d 100644 --- a/config/locales/simple_form.az.yml +++ b/config/locales/simple_form.az.yml @@ -13,6 +13,8 @@ az: setting_system_scrollbars_ui: Yalnız Safari və Chrome əaslı masaüstü brauzerlərinə tətbiq olunur setting_use_blurhash: Meyillər, gizli vizualların rənglərinə əsaslanır, ancaq detalları gizlədir setting_use_pending_items: Lenti avtomatik diyirləmək əvəzinə, zaman xətti güncəlləmələrini tək bir kliklə gizlət + domain_allow: + domain: Bu domen, bu serverdən veri ala biləcək və ondan gələn verilər emal olunacaq və saxlanılanacaq featured_tag: name: 'Budur, təzəlikcə istifadə etdiyiniz mövzu etiketlərindən bəziləri:' form_admin_settings: diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml index e41996f7ee88ac..a16e2a6f23fa75 100644 --- a/config/locales/simple_form.be.yml +++ b/config/locales/simple_form.be.yml @@ -109,6 +109,7 @@ be: status_page_url: URL старонкі, дзе людзі могуць бачыць стан гэтага сервера падчас збою theme: Тэма, што бачаць новыя карыстальнікі ды наведвальнікі, якія выйшлі. thumbnail: Выява памерамі прыкладна 2:1, якая паказваецца побач з інфармацыяй пра ваш сервер. + thumbnail_description: Апісанне відарысу, каб дапамагчы людзям з парушэннямі зроку зразумець, што на ім. trendable_by_default: Прапусціць ручны агляд трэндавага змесціва. Асобныя элементы ўсё яшчэ можна будзе выдаліць з трэндаў пастфактум. trends: Трэнды паказваюць, якія допісы, хэштэгі і навіны набываюць папулярнасць на вашым серверы. wrapstodon: Прапанаваць мясцовым карыстальнікам інтэрактыўную зводку іх выкарыстання Mastodon на працягу года. Гэта функцыя даступная паміж 10-ым і 31-ым снежня кожнага года і прапаноўваецца карыстальнікам, якія зрабілі хаця б адзін публічны або ціхі публічны допіс, а таксама выкарысталі хаця б адзін хэштэг на працягу года. @@ -319,6 +320,7 @@ be: status_page_url: URL старонкі статусу theme: Тэма па змаўчанні thumbnail: Мініяцюра сервера + thumbnail_description: Альтэрнатыўны тэкст мініяцюры trendable_by_default: Дазваляць трэнды без папярэдняй праверкі trends: Уключыць трэнды wrapstodon: Уключыць Вынікадон diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml index 6923f0809338e1..b1cbd97ef8682b 100644 --- a/config/locales/simple_form.cy.yml +++ b/config/locales/simple_form.cy.yml @@ -4,6 +4,7 @@ cy: hints: account: attribution_domains: Un i bob llinell. Yn diogelu rhag priodoli ffug. + discoverable: Efallai y byddwch chi'n cael eich cynnwys mewn casgliadau wedi'u creu gan ddefnyddwyr eraill. Efallai y byddwch chi a'ch postiadau cyhoeddus hefyd yn cael eu hawgrymu i ddefnyddwyr mewn profiadau darganfod eraill ledled Mastodon. display_name: Eich enw llawn neu'ch enw hwyl. fields: Eich tudalen cartref, rhagenwau, oed, neu unrhyw beth. indexable: Mae'n bosib y bydd eich postiadau cyhoeddus yn ymddangos yng nghanlyniadau chwilio ar Mastodon. Mae'n bosibl y bydd pobl sydd wedi rhyngweithio â'ch postiadau yn dal i allu eu chwilio. @@ -60,6 +61,9 @@ cy: setting_default_quote_policy_private: Does dim modd dyfynnu postiadau sydd wedi'u hysgrifennu ar Mastodon ar gyfer dim ond dilynwyr. setting_default_quote_policy_unlisted: Pan fydd pobl yn eich dyfynnu, bydd eu postiad hefyd yn cael ei guddio rhag llinellau amser sy'n trendio. setting_default_sensitive: Mae cyfryngau sensitif wedi'u cuddio yn rhagosodedig a gellir eu datgelu trwy glicio + setting_display_media_default: Rhybuddio cyn dangos cyfryngau sydd wedi'u marcio fel rhai sensitif + setting_display_media_hide_all: Rhybuddio cyn dangos yr holl gyfryngau + setting_display_media_show_all: Dangos yr holl gyfryngau heb rybudd, gan gynnwys cyfryngau sydd wedi'u marcio fel rhai sensitif setting_emoji_style: Sut i arddangos emojis. Bydd "Awto" yn ceisio defnyddio emoji cynhenid, ond mae'n disgyn yn ôl i Twemoji ar gyfer porwyr traddodiadol. setting_quick_boosting_html: Pan fydd wedi'i alluogi, bydd clicio ar yr eicon Hwb %{boost_icon} yn rhoi hwb ar unwaith yn lle agor y gwymplen hwb/dyfynnu. Mae'n symud y weithred dyfynnu i'r ddewislen %{options_icon} (Dewisiadau). setting_system_scrollbars_ui: Yn berthnasol i borwyr bwrdd gwaith yn seiliedig ar Safari a Chrome yn unig @@ -105,6 +109,7 @@ cy: status_page_url: URL tudalen lle gall pobl weld statws y gweinydd hwn yn ystod cyfnod o doriad gwasanaeth theme: Thema sy'n allgofnodi ymwelwyr a defnyddwyr newydd yn gweld. thumbnail: Delwedd tua 2:1 yn cael ei dangos ochr yn ochr â manylion eich gweinydd. + thumbnail_description: Disgrifiad o'r ddelwedd i helpu pobl â nam ar eu golwg i ddeall ei chynnwys. trendable_by_default: Hepgor adolygiad llaw o gynnwys sy'n tueddu. Gall eitemau unigol gael eu tynnu o dueddiadau o hyd ar ôl y ffaith. trends: Mae pynciau llosg yn dangos y postiadau, hashnodau, a newyddion sy'n denu sylw ar eich gweinydd. wrapstodon: Cynigiwch i ddefnyddwyr lleol greu crynodeb chwareus o'u defnydd o Mastodon yn ystod y flwyddyn. Mae'r nodwedd hon ar gael rhwng y 10fed a'r 31ain o Ragfyr bob blwyddyn, ac mae'n cael ei gynig i ddefnyddwyr a wnaeth o leiaf un postiad Cyhoeddus neu Gyhoeddus Tawel ac sydd wedi defnyddio o leiaf un hashnod o fewn y flwyddyn. @@ -130,6 +135,7 @@ cy: otp: 'Mewnbynnwch y cod dau gam a gynhyrchwyd gan eich ap ffôn neu defnyddiwch un o''ch codau adfer:' webauthn: Os mai allwedd USB ydyw, gwnewch yn siŵr ei fewnosod ac, os oes angen, tapiwch ef. settings: + email_subscriptions: Mae analluogi yn cadw tanysgrifwyr presennol ond yn atal anfon e-byst. indexable: Mae'n bosib y bydd eich tudalen broffil yn ymddangos mewn canlyniadau chwilio ar Google, Bing ac eraill. show_application: Byddwch bob amser yn gallu gweld pa ap a gyhoeddodd eich postiad beth bynnag. tag: @@ -149,6 +155,7 @@ cy: jurisdiction: Rhestrwch y wlad lle mae pwy bynnag sy'n talu'r biliau yn byw. Os yw'n gwmni neu'n endid arall, rhestrwch y wlad lle mae wedi'i ymgorffori, a'r ddinas, rhanbarth, tiriogaeth neu wladwriaeth fel y bo'n briodol. min_age: Ni ddylai fod yn is na'r isafswm oedran sy'n ofynnol gan gyfreithiau eich awdurdodaeth. user: + chosen_languages: Pan gaiff ei dicio, dim ond postiadau mewn ieithoedd penodol fydd yn cael eu dangos mewn llinellau amser cyhoeddus. Dyw'r gosodiad hwn ddim yn effeithio ar eich llinell amser a'ch rhestrau Cartref. date_of_birth: few: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn. many: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn. @@ -158,6 +165,7 @@ cy: zero: Mae'n rhaid i ni sicrhau eich bod chi yn o leiaf %{count} oed i ddefnyddio %{domain}. Fyddwn ni ddim yn cadw hyn. role: Mae'r rôl yn rheoli pa ganiatâd sydd gan y defnyddiwr. user_role: + collection_limit: Yn cyfyngu ar nifer y Casgliadau y gall un defnyddiwr gyda'r rôl hon eu creu. Cofiwch, pan fyddwch chi'n lleihau'r nifer hwn, bydd y defnyddwyr sydd eisoes ar y terfyn hwn ddim yn colli unrhyw Gasgliadau. Ond fyddan nhw ddim yn gallu creu rhai ychwanegol. color: Lliw i'w ddefnyddio ar gyfer y rôl drwy'r UI, fel RGB mewn fformat hecs highlighted: Mae hyn yn gwneud y rôl yn weladwy i'r cyhoedd name: Enw cyhoeddus y rôl, os yw'r rôl wedi'i gosod i'w dangos fel bathodyn @@ -175,6 +183,7 @@ cy: labels: account: attribution_domains: Gwefannau sy'n cael caniatâd i'ch cydnabod chi + discoverable: Dangoswch fi mewn profiadau darganfod fields: name: Label value: Cynnwys @@ -313,6 +322,7 @@ cy: status_page_url: URL tudalen statws theme: Thema ragosodedig thumbnail: Bawdlun y gweinydd + thumbnail_description: Testun amgen llun bach trendable_by_default: Caniatáu pynciau llosg heb adolygiad trends: Galluogi pynciau llosg wrapstodon: Galluogi Wrapstodon @@ -354,6 +364,7 @@ cy: hint: Gwybodaeth ychwanegol text: Rheol settings: + email_subscriptions: Galluogi cofrestru e-bost indexable: Cynnwys tudalen proffil mewn peiriannau chwilio show_application: Dangoswch o ba ap yr anfonoch chi bostiad tag: @@ -382,6 +393,7 @@ cy: role: Rôl time_zone: Cylchfa amser user_role: + collection_limit: Uchafswm nifer y Casgliadau fesul defnyddiwr color: Lliw bathodyn highlighted: Dangos rôl fel bathodyn ar broffiliau defnyddwyr name: Enw diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml index e845fcc833575f..90f72963d88be2 100644 --- a/config/locales/simple_form.de.yml +++ b/config/locales/simple_form.de.yml @@ -61,6 +61,9 @@ de: setting_default_quote_policy_private: Beiträge, die nur für deine Follower bestimmt sind und auf Mastodon verfasst wurden, können nicht von anderen zitiert werden. setting_default_quote_policy_unlisted: Sollten dich andere zitieren, werden ihre zitierten Beiträge ebenfalls nicht in den Trends und öffentlichen Timelines angezeigt. setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden – je nach Einstellung – erst nach einem zusätzlichen Klick angezeigt + setting_display_media_default: Bei der Anzeige von sensiblen Medien warnen + setting_display_media_hide_all: Bei der Anzeige von allen Medien warnen + setting_display_media_show_all: Alle Medien ohne Warnung anzeigen setting_emoji_style: 'Wie Emojis dargestellt werden: „Automatisch“ verwendet native Emojis, für veraltete Browser wird jedoch Twemoji verwendet.' setting_quick_boosting_html: Dadurch wird der Beitrag beim Anklicken des %{boost_icon} Teilen-Symbols sofort geteilt, anstatt das Drop-down-Menü zu öffnen. Die Möglichkeit zum Zitieren wird dabei in %{options_icon} Mehr verschoben. setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren @@ -132,6 +135,7 @@ de: otp: 'Gib den Zwei-Faktor-Code von deinem Smartphone ein oder verwende einen deiner Wiederherstellungscodes:' webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst. settings: + email_subscriptions: Wenn deaktiviert, werden zukünftig keine E-Mails mehr versendet. Bestehende Abonnements bleiben jedoch erhalten. indexable: Deine Profilseite kann in Suchergebnissen auf Google, Bing und anderen erscheinen. show_application: Du wirst immer sehen können, über welche App dein Beitrag veröffentlicht wurde. tag: diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml index 71c2b7dd769db9..3e819c02f0f8b3 100644 --- a/config/locales/simple_form.en-GB.yml +++ b/config/locales/simple_form.en-GB.yml @@ -109,6 +109,7 @@ en-GB: status_page_url: URL of a page where people can see the status of this server during an outage theme: Theme that logged out visitors and new users see. thumbnail: A roughly 2:1 image displayed alongside your server information. + thumbnail_description: A description of the image to help people with visual impairments understand its content. trendable_by_default: Skip manual review of trending content. Individual items can still be removed from trends after the fact. trends: Trends show which posts, hashtags, and news stories are gaining traction on your server. wrapstodon: Offer local users to generate a playful summary of their Mastodon use during the year. This feature is available between the 10th and 31st of December of each year, and is offered to users who made at least one Public or Quiet Public post and used at least one hashtag within the year. @@ -160,6 +161,7 @@ en-GB: other: We have to make sure you're at least %{count} to use %{domain}. We won't store this. role: The role controls which permissions the user has. user_role: + collection_limit: Limits the number of Collections that a single user with this role can create. Please note that when you decrease this number, users who are already at this limit will not lose any Collections. But they will not be able to create additional ones. color: Colour to be used for the role throughout the UI, as RGB in hex format highlighted: This makes the role publicly visible name: Public name of the role, if role is set to be displayed as a badge @@ -316,6 +318,7 @@ en-GB: status_page_url: Status page URL theme: Default theme thumbnail: Server thumbnail + thumbnail_description: Thumbnail alt text trendable_by_default: Allow trends without prior review trends: Enable trends wrapstodon: Enable Wrapstodon @@ -386,6 +389,7 @@ en-GB: role: Role time_zone: Time Zone user_role: + collection_limit: Maximum number of Collections per user color: Badge colour highlighted: Display role as badge on user profiles name: Name diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml index 555562d955a526..f9d4a7a6f0f6db 100644 --- a/config/locales/simple_form.es-MX.yml +++ b/config/locales/simple_form.es-MX.yml @@ -109,7 +109,7 @@ es-MX: status_page_url: URL de una página donde las personas pueden ver el estado de este servidor durante una interrupción theme: El tema que los visitantes no registrados y los nuevos usuarios ven. thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor. - thumbnail_description: Una descripción de la imagen para ayudar a las personas con discapacidades visuales a entender su contenido. + thumbnail_description: Una descripción de la imagen para ayudar a las personas con discapacidad visual a comprender su contenido. trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias. trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor. wrapstodon: Ofrece a los usuarios locales la posibilidad de generar un resumen divertido de su uso de Mastodon durante el año. Esta función está disponible entre el 10 y el 31 de diciembre de cada año, y se ofrece a los usuarios que hayan publicado al menos una publicación pública o pública silenciosa y hayan utilizado al menos una etiqueta durante el año. diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml index 0253de08651657..7ea286ab4fbda5 100644 --- a/config/locales/simple_form.et.yml +++ b/config/locales/simple_form.et.yml @@ -9,7 +9,7 @@ et: fields: Su koduleht, sugu, vanus. Mistahes, mida soovid. indexable: Sinu avalikud postitused võivad ilmuda Mastodoni otsingutulemustes. Inimesed, kes on sinu postitustele reageerinud, saavad neid otsida nii või naa. note: 'Saad @mainida teisi inimesi või #teemaviiteid.' - show_collections: Inimesed saavad sirvida su jälgijaid ja jälgitavaid. Inimesed, keda sa jälgid, näevad seda sõltumata häälestuse valikust. + show_collections: Inimesed saavad sirvida su jälgijaid ja jälgitavaid. Inimesed, keda sa jälgid, näevad seda sõltumata seadistusest. unlocked: Teised kasutajad saavad sind jälgima hakata nõusolekut küsimata. Eemalda märge, kui soovid jälgimistaotlusi üle vaadata ja valida, kas nõustuda või keelduda uute jälgijatega. account_alias: acct: Sisesta konto kasutajanimi@domeen, mille soovid siia ümber kolida @@ -109,6 +109,7 @@ et: status_page_url: Lehe URL, kus saab serveri maas oleku ajal näha serveri olekut theme: Teema, mida näevad sisenemata ning uued kasutajad. thumbnail: Umbes 2:1 mõõdus pilt serveri informatsiooni kõrval. + thumbnail_description: Pildi selgitus, mis aitab nägemispuudega inimestel aru saada pildi sisust. trendable_by_default: Populaarse sisu ülevaatuse vahele jätmine. Pärast seda on siiski võimalik üksikuid üksusi trendidest eemaldada. trends: Trendid näitavad, millised postitused, teemaviited ja uudislood koguvad sinu serveris tähelepanu. wrapstodon: Paku kohalikele kasutajatele luua nende Mastodoni kasutamise aastast mänguline kokkuvõte. See võimalus on saadaval igal aastal 10. ja 31. detsembri vahel ja seda pakutakse kasutajatele, kes tegid vähemalt ühe avaliku või vaikse avaliku postituse ja kes kasutas aasta jooksul vähemalt ühte teemaviidet. @@ -317,6 +318,7 @@ et: status_page_url: Oleku lehe URL theme: Vaikmisi teema thumbnail: Serveri pisipilt + thumbnail_description: Pisipildi selgitustekst trendable_by_default: Luba trendid eelneva ülevaatuseta trends: Luba trendid wrapstodon: Luba Wrapstodon diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index f8e2fd8001fd81..c64aee9147da1e 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -109,6 +109,7 @@ fr-CA: status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s. thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur. + thumbnail_description: Une description de l'image pour aider les personnes ayant une déficience visuelle à comprendre son contenu. trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup. trends: Les tendances montrent quelles publications, hashtags et actualités sont en train de gagner en traction sur votre serveur. wrapstodon: Offrez aux comptes locaux de générer un récapitulatif annuel de leur utilisation de Mastodon. Cette fonctionnalité est disponible chaque année du 10 au 31 décembre, et est accessible pour les comptes ayant publié au moins un message Public ou Public discret et utilisé au moins un hashtag dans l'année. @@ -317,6 +318,7 @@ fr-CA: status_page_url: URL de la page de l'état du serveur theme: Thème par défaut thumbnail: Miniature du serveur + thumbnail_description: Texte alternatif de la miniature trendable_by_default: Autoriser les tendances sans révision préalable trends: Activer les tendances wrapstodon: Activer Wrapstodon diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 66a9866d4351a2..38b36df70e4f42 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -109,6 +109,7 @@ fr: status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s. thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur. + thumbnail_description: Une description de l'image pour aider les personnes ayant une déficience visuelle à comprendre son contenu. trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup. trends: Les tendances montrent quels messages, hashtags et actualités gagnent en popularité sur votre serveur. wrapstodon: Offrez aux comptes locaux de générer un récapitulatif annuel de leur utilisation de Mastodon. Cette fonctionnalité est disponible chaque année du 10 au 31 décembre, et est accessible pour les comptes ayant publié au moins un message Public ou Public discret et utilisé au moins un hashtag dans l'année. @@ -317,6 +318,7 @@ fr: status_page_url: URL de la page de l'état du serveur theme: Thème par défaut thumbnail: Miniature du serveur + thumbnail_description: Texte alternatif de la miniature trendable_by_default: Autoriser les tendances sans révision préalable trends: Activer les tendances wrapstodon: Activer Wrapstodon diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml index 555be7012abaa7..8ce7bf11aca0da 100644 --- a/config/locales/simple_form.ga.yml +++ b/config/locales/simple_form.ga.yml @@ -109,6 +109,7 @@ ga: status_page_url: URL leathanach inar féidir le daoine stádas an fhreastalaí seo a fheiceáil le linn briseadh amach theme: Téama a fheiceann cuairteoirí logáilte amach agus úsáideoirí nua. thumbnail: Íomhá thart ar 2:1 ar taispeáint taobh le faisnéis do fhreastalaí. + thumbnail_description: Cur síos ar an íomhá chun cabhrú le daoine le lagú radhairc a hábhar a thuiscint. trendable_by_default: Léim ar athbhreithniú láimhe ar ábhar treochta. Is féidir míreanna aonair a bhaint as treochtaí fós tar éis an fhíric. trends: Léiríonn treochtaí cé na postálacha, hashtags agus scéalta nuachta atá ag tarraingt ar do fhreastalaí. wrapstodon: Iarr ar úsáideoirí áitiúla achoimre spraíúil a ghiniúint ar a n-úsáid Mastodon i rith na bliana. Bíonn an ghné seo ar fáil idir an 10ú agus an 31ú Nollaig gach bliain, agus tairgtear é d’úsáideoirí a rinne post Poiblí nó Ciúin Poiblí amháin ar a laghad agus a d’úsáid hais clib amháin ar a laghad laistigh den bhliain. @@ -320,6 +321,7 @@ ga: status_page_url: URL an leathanaigh stádais theme: Téama réamhshocraithe thumbnail: Mionsamhail freastalaí + thumbnail_description: Téacs malartach mionsamhail trendable_by_default: Ceadaigh treochtaí gan athbhreithniú roimh ré trends: Cumasaigh treochtaí wrapstodon: Cumasaigh Wrapstodon diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 2887739f2c2ede..a7b8cb17f2d144 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -109,6 +109,7 @@ he: status_page_url: כתובת לבדיקת מצב שרת זה בעת תקלה theme: ערכת המראה שיראו משתמשים חדשים ומשתמשים שאינם מחוברים. thumbnail: תמונה ביחס 2:1 בערך שתוצג ליד המידע על השרת שלך. + thumbnail_description: תיאור התמונה יסיע לא.נשים עם לקויות ראיה להבין את ההקשר. trendable_by_default: לדלג על בדיקה ידנית של התכנים החמים. פריטים ספציפיים עדיין ניתנים להסרה לאחר מעשה. trends: נושאים חמים יציגו אילו הודעות, תגיות וידיעות חדשות צוברות חשיפה על השרת שלך. wrapstodon: אפשר למשתמשיך המקומיים.ות ליצור סיכום חביב של פעילותם במסטודון בשנה האחרונה. התכונה מאופשרת בין 10 ועד 31 בדצמבר כל שנה, ומצעת למשתמשים שיצרו לפחות הודעה ציבורית אחת והשתמשו לפחות בתגית אחת במשך השנה. @@ -162,6 +163,7 @@ he: two: עלינו לוודא שגילך לפחות %{count} כדי להשתמש בשרת %{domain}. המידע לא ישמר אצלנו. role: התפקיד שולט על אילו הרשאות יש למשתמש. user_role: + collection_limit: מגביל את מספר האוספים שיכולים משתמשים בתפקיד זה ליצור. יש לשים לב שעם הורדת המספר הזה, משתמשים שכבר הגיעו לרף המירבי לא יאבדו את האוספים שיצרו, אך לא יוכלו ליצור נוספים. color: צבע לתפקיד בממשק המשתמש, כ RGB בפורמט הקסדצימלי highlighted: מאפשר נראות ציבורית של התפקיד name: שם ציבורי של התפקיד, במידה והתפקיד מוגדר ככזה שמופיע כתג @@ -318,6 +320,7 @@ he: status_page_url: URL של עמוד סטטוס חיצוני theme: ערכת נושא ברירת מחדל thumbnail: תמונה ממוזערת מהשרת + thumbnail_description: תיאור תמונה מוקטנת trendable_by_default: הרשאה לפריטים להופיע בנושאים החמים ללא אישור מוקדם trends: אפשר פריטים חמים (טרנדים) wrapstodon: הפעלת סיכומודון @@ -388,6 +391,7 @@ he: role: תפקיד time_zone: אזור זמן user_role: + collection_limit: מספר האוספים המירבי לחשבון color: צבע תג highlighted: הצג תפקיד כתג בפרופיל משתמש name: שם diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 3dbd7148db0857..85b9f9d79598b7 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -109,6 +109,7 @@ nl: status_page_url: URL van een pagina waar mensen de status van deze server kunnen zien tijdens een storing theme: Thema die (niet ingelogde) bezoekers en nieuwe gebruikers zien. thumbnail: Een afbeelding van ongeveer een verhouding van 2:1 die naast jouw serverinformatie wordt getoond. + thumbnail_description: Een omschrijving van de afbeelding om mensen met een visuele beperking te helpen de inhoud ervan te begrijpen. trendable_by_default: Handmatige beoordeling van trends overslaan. Individuele items kunnen later alsnog worden afgekeurd. trends: Trends laten zien welke berichten, hashtags en nieuwsberichten op jouw server aan populariteit winnen. wrapstodon: Lokale gebruikers de mogelijkheid geven om een speelse samenvatting van hun Mastodon-gebruik over het afgelopen jaar aan te maken. Deze functie is elk jaar beschikbaar tussen 10 en 31 december, en wordt aangeboden aan gebruikers die tijdens het afgelopen jaar ten minste één openbaar of minder openbaar bericht hebben geplaatst en ten minste één hashtag hebben gebruikt. @@ -317,6 +318,7 @@ nl: status_page_url: URL van statuspagina theme: Standaardthema thumbnail: Server-miniatuur + thumbnail_description: Alt-tekst thumbnail trendable_by_default: Trends goedkeuren zonder voorafgaande beoordeling trends: Trends inschakelen wrapstodon: Wrapstodon inschakelen diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml index 4aa526b97d2bfe..d390c262d7ed96 100644 --- a/config/locales/simple_form.pt-BR.yml +++ b/config/locales/simple_form.pt-BR.yml @@ -109,6 +109,7 @@ pt-BR: status_page_url: URL de uma página onde as pessoas podem ver o status deste servidor durante uma interrupção theme: Tema que visitantes e novos usuários veem. thumbnail: Uma imagem de aproximadamente 2:1 exibida ao lado da informação de sua instância. + thumbnail_description: Uma descrição da imagem para auxiliar pessoas com deficiências visuais a entenderem seu conteúdo. trendable_by_default: Pular a revisão manual do conteúdo em tendência. Itens individuais ainda poderão ser removidos das tendências após a sua exibição. trends: Tendências mostram quais publicações, hashtags e notícias estão ganhando destaque na sua instância. wrapstodon: Oferece aos usuários locais gerar um resumo divertido do Mastodon deles durante o ano. Este recurso está disponível entre 10 e 31 de dezembro de cada ano e é oferecido aos usuários que fizeram ao menos uma publicação Pública ou Silenciosa e usou ao menos uma hashtag no ano. @@ -317,6 +318,7 @@ pt-BR: status_page_url: Endereço da página de status theme: Tema padrão thumbnail: Miniatura do servidor + thumbnail_description: Texto alternativo da miniatura trendable_by_default: Permitir tendências sem revisão prévia trends: Habilitar tendências wrapstodon: Ativar Wrapstodon diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml index 508ab46763ad84..0785e9a1bf41eb 100644 --- a/config/locales/simple_form.sq.yml +++ b/config/locales/simple_form.sq.yml @@ -108,6 +108,7 @@ sq: status_page_url: URL e faqe ku njerëzit mund të shohin gjendjen e këtij shërbyesi, gjatë një ndërprerje të funksionimit theme: Temë që shohin vizitorët që kanë bërë daljen dhe përdorues të rinj. thumbnail: Një figurë afërsisht 2:1 e shfaqur tok me hollësi mbi shërbyesin tuaj. + thumbnail_description: Një përshkrim i figurës, për të ndihmuar persona me probleme të pari të kuptojnë ç’përmban. trendable_by_default: Anashkalo shqyrtim dorazi lënde në modë. Gjëra individuale prapë mund të hiqen nga lëndë në modë pas publikimi. trends: Gjërat në modë shfaqin cilat postime, hashtagë dhe histori të reja po tërheqin vëmendjen në shërbyesin tuaj. wrapstodon: Jepuni përdoruesve vendorë mundësinë të prodhojnë një përmbledhje lojcake të përdorimit të Mastodon-it prej tyre përgjatë vitit. Kjo veçori është e përdorshme mes 10 dhe 31 dhjetorit të çdo viti dhe u ofrohet përdoruesve që kanë për të paktën një postim Publik, ose Publik të Heshtur dhe që kanë përdorur të paktën një hashtag brenda vitit. @@ -316,6 +317,7 @@ sq: status_page_url: URL faqeje gjendjesh theme: Temë parazgjedhje thumbnail: Miniaturë shërbyesi + thumbnail_description: Tekst alternativ miniature trendable_by_default: Lejoni gjëra në modë pa shqyrtim paraprak trends: Aktivizo gjëra në modë wrapstodon: Aktivizo Përmbledhjedon-in diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml index a27228a41ef029..c3630cf6155c3f 100644 --- a/config/locales/simple_form.tr.yml +++ b/config/locales/simple_form.tr.yml @@ -109,6 +109,7 @@ tr: status_page_url: İnsanların bir kesinti halinde sunucunun durumunu görebilecekleri bir sayfanın URL'si theme: Giriş yapmamış ziyaretçilerin ve yeni kullanıcıların gördüğü tema. thumbnail: Sunucu bilginizin yanında gösterilen yaklaşık 2:1'lik görüntü. + thumbnail_description: Görme engelli kişilerin resmin içeriğini anlamasına yardımcı olacak bir açıklama. trendable_by_default: Öne çıkan içeriğin elle incelenmesini atla. Tekil öğeler sonrada öne çıkanlardan kaldırılabilir. trends: Öne çıkanlar, sunucunuzda ilgi toplayan gönderileri, etiketleri ve haber yazılarını gösterir. wrapstodon: Yerel kullanıcılara, yıl boyunca Mastodon kullanımlarının eğlenceli bir özetini oluşturma imkanı sunun. Bu özellik, her yıl 10 Aralık ile 31 Aralık tarihleri arasında kullanılabilir ve yıl içinde en az bir adet Halka Açık veya Sessiz Halka Açık gönderi paylaşan ve en az bir hashtag kullanan kullanıcılara sunulur. @@ -317,6 +318,7 @@ tr: status_page_url: Durum sayfası URL'si theme: Öntanımlı tema thumbnail: Sunucu küçük resmi + thumbnail_description: Küçük resim alternatif metni trendable_by_default: Ön incelemesiz öne çıkanlara izin ver trends: Öne çıkanları etkinleştir wrapstodon: Wrapstodonu Etkinleştir diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml index 255fde4bd441a3..a476526a01c639 100644 --- a/config/locales/simple_form.vi.yml +++ b/config/locales/simple_form.vi.yml @@ -109,6 +109,7 @@ vi: status_page_url: URL của trang nơi mọi người có thể xem trạng thái của máy chủ này khi ngừng hoạt động theme: Chủ đề mà khách truy cập đăng xuất và người mới nhìn thấy. thumbnail: 'Một hình ảnh tỉ lệ 2: 1 được hiển thị cùng với thông tin máy chủ của bạn.' + thumbnail_description: Mô tả hình ảnh để giúp người khiếm thị hiểu nội dung của hình ảnh. trendable_by_default: Bỏ qua việc duyệt thủ công nội dung xu hướng. Các mục riêng lẻ vẫn có thể bị xóa khỏi xu hướng sau này. trends: Hiển thị những tút, hashtag và tin tức đang được thảo luận nhiều trên máy chủ của bạn. wrapstodon: Cho phép người dùng máy chủ tạo bản tóm tắt vui nhộn về việc sử dụng Mastodon của họ trong năm. Tính năng này có sẵn từ ngày 10 đến ngày 31 tháng 12 hàng năm, và được cung cấp cho người dùng đã đăng ít nhất một tút Công khai hoặc Riêng tư và sử dụng ít nhất một hashtag trong năm. @@ -159,6 +160,7 @@ vi: other: Chúng tôi phải đảm bảo rằng bạn ít nhất %{count} tuổi để tham gia %{domain}. Thông tin này không lưu trữ sau khi đăng ký. role: Vai trò kiểm soát những quyền mà người dùng có. user_role: + collection_limit: Giới hạn số lượng Gói khởi đầu mà một tài khoản có vai trò này có thể tạo. Xin lưu ý rằng khi bạn giảm số lượng này, những người dùng đã đạt đến giới hạn này sẽ không bị mất bất kỳ Gói khởi đầu nào. Nhưng họ sẽ không thể tạo thêm nữa. color: Màu được sử dụng cho vai trò trong toàn bộ giao diện người dùng, dưới dạng RGB ở định dạng hex highlighted: Vai trò sẽ hiển thị công khai name: Tên công khai của vai trò, nếu vai trò được đặt để hiển thị dưới dạng huy hiệu @@ -315,6 +317,7 @@ vi: status_page_url: URL trang trạng thái theme: Chủ đề mặc định thumbnail: Hình thu nhỏ của máy chủ + thumbnail_description: Văn bản thay thế cho hình thu nhỏ trendable_by_default: Cho phép lên xu hướng mà không cần duyệt trước trends: Bật xu hướng wrapstodon: Bật Wrapstodon @@ -385,6 +388,7 @@ vi: role: Vai trò time_zone: Múi giờ user_role: + collection_limit: Số lượng Gói khởi đầu tối đa cho mỗi tài khoản color: Màu huy hiệu highlighted: Hiển thị huy hiệu vai trò trên hồ sơ người dùng name: Tên diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml index c48b057a46b8c7..7e5a65f020aa9b 100644 --- a/config/locales/simple_form.zh-TW.yml +++ b/config/locales/simple_form.zh-TW.yml @@ -109,6 +109,7 @@ zh-TW: status_page_url: 當服務中斷時,可以提供使用者了解伺服器資訊頁面之 URL theme: 未登入之訪客或新使用者所見之佈景主題。 thumbnail: 大約 2:1 圖片會顯示於您伺服器資訊之旁。 + thumbnail_description: 用以幫助視覺障礙者理解圖片內容之描述。 trendable_by_default: 跳過手動審核熱門內容。您仍能於登上熱門趨勢後移除個別內容。 trends: 熱門趨勢將顯示於您伺服器上正在吸引大量注意力之嘟文、主題標籤、或新聞。 wrapstodon: 提供替本站使用者產生他們過去一年使用 Mastodon 的趣味總結。此功能於每年十二月十號至三十一號提供至於年中發過至少一則公開嘟文(無論顯示於時間軸與否)及至少使用一則主題標籤之使用者。 @@ -316,6 +317,7 @@ zh-TW: status_page_url: 狀態頁面 URL theme: 預設佈景主題 thumbnail: 伺服器縮圖 + thumbnail_description: 圖片預覽 ALT 說明文字 trendable_by_default: 允許熱門趨勢直接顯示,不需經過審核 trends: 啟用熱門趨勢 wrapstodon: 啟用 Mastodon 年度回顧 From 2b93a2211fbf8bceb521b8f2bc4f5c768c8ad9ed Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 27 Apr 2026 11:11:07 +0200 Subject: [PATCH 289/335] Increase clickable area around collection items, refactor `ListItem` component (#38776) --- .../mastodon/components/list_item/index.tsx | 111 +++++++++-------- .../list_item/list_item.stories.tsx | 19 ++- .../components/list_item/styles.module.scss | 38 +++++- .../components/truncated_list/index.tsx | 15 ++- .../collection_list_item.module.scss | 11 +- .../components/collection_list_item.tsx | 29 +++-- .../components/collection_lockup.module.scss | 34 +---- .../components/collection_lockup.tsx | 117 +++++++++--------- .../collection_preview_card.module.scss | 10 +- .../components/collection_preview_card.tsx | 27 +++- 10 files changed, 237 insertions(+), 174 deletions(-) diff --git a/app/javascript/mastodon/components/list_item/index.tsx b/app/javascript/mastodon/components/list_item/index.tsx index 263e206fb9c30d..3e8d406752607f 100644 --- a/app/javascript/mastodon/components/list_item/index.tsx +++ b/app/javascript/mastodon/components/list_item/index.tsx @@ -1,6 +1,8 @@ import classNames from 'classnames'; import { Link } from 'react-router-dom'; +import { polymorphicForwardRef } from '@/types/polymorphic'; + import classes from './styles.module.scss'; interface WrapperProps extends Omit< @@ -8,7 +10,7 @@ interface WrapperProps extends Omit< 'title' > { icon?: React.ReactNode; - iconEnd?: React.ReactNode; + sideContent?: React.ReactNode; } /** @@ -20,7 +22,7 @@ interface WrapperProps extends Omit< */ export const ListItemWrapper: React.FC = ({ icon, - iconEnd, + sideContent, children, className, ...otherProps @@ -29,69 +31,68 @@ export const ListItemWrapper: React.FC = ({
    {icon}
    {children}
    - {iconEnd && {iconEnd}} + {sideContent && ( + {sideContent} + )}
    ); }; -interface WithSubtitle { +interface ContentProps { subtitle?: React.ReactNode; + subtitleId?: string; } -interface ContentProps - extends React.ComponentPropsWithoutRef<'h3'>, WithSubtitle {} - -export const ListItemContent: React.FC = ({ - subtitle, - children, - ...otherProps -}) => { - return ( - <> -

    - {children} -

    - {subtitle &&
    {subtitle}
    } - - ); -}; +export const ListItemContent = polymorphicForwardRef<'h3', ContentProps>( + ( + { as: Component = 'h3', subtitle, subtitleId, children, ...otherProps }, + ref, + ) => { + return ( + <> + + {children} + + {subtitle && ( +
    + {subtitle} +
    + )} + + ); + }, +); interface LinkProps - extends React.ComponentPropsWithoutRef, WithSubtitle {} + extends React.ComponentPropsWithoutRef, ContentProps {} -export const ListItemLink: React.FC = ({ - subtitle, - children, - className, - ...otherProps -}) => { - return ( - - - {children} - - - ); -}; +export const ListItemLink = polymorphicForwardRef<'h3', LinkProps>( + ({ as, subtitle, children, className, ...otherProps }, ref) => { + return ( + + + {children} + + + ); + }, +); interface ButtonProps - extends React.ComponentPropsWithoutRef<'button'>, WithSubtitle {} + extends React.ComponentPropsWithoutRef<'button'>, ContentProps {} -export const ListItemButton: React.FC = ({ - subtitle, - children, - className, - ...otherProps -}) => { - return ( - - - - ); -}; +export const ListItemButton = polymorphicForwardRef<'h3', ButtonProps>( + ({ as, subtitle, children, className, ...otherProps }, ref) => { + return ( + + + + ); + }, +); diff --git a/app/javascript/mastodon/components/list_item/list_item.stories.tsx b/app/javascript/mastodon/components/list_item/list_item.stories.tsx index dd066683c936cb..a191f8e4ed3784 100644 --- a/app/javascript/mastodon/components/list_item/list_item.stories.tsx +++ b/app/javascript/mastodon/components/list_item/list_item.stories.tsx @@ -5,6 +5,8 @@ import KeyboardArrowDownIcon from '@/material-icons/400-24px/keyboard_arrow_down import VisibilityIcon from '@/material-icons/400-24px/visibility.svg?react'; import VisibilityOffIcon from '@/material-icons/400-24px/visibility_off.svg?react'; +import { AvatarById } from '../avatar'; +import { Button } from '../button'; import { Icon } from '../icon'; import { @@ -36,7 +38,7 @@ export const WithButton: Story = { render: () => ( } - iconEnd={} + sideContent={} > 3 hidden accounts @@ -49,9 +51,22 @@ export const WithLink: Story = { render: () => ( } - iconEnd={} + sideContent={} > View more ), }; + +export const WithInteractiveSideContent: Story = { + render: () => ( + } + sideContent={} + > + + Test account + + + ), +}; diff --git a/app/javascript/mastodon/components/list_item/styles.module.scss b/app/javascript/mastodon/components/list_item/styles.module.scss index 42542d5a229e6b..8a90234f931d49 100644 --- a/app/javascript/mastodon/components/list_item/styles.module.scss +++ b/app/javascript/mastodon/components/list_item/styles.module.scss @@ -1,11 +1,15 @@ .wrapper { + --list-item-padding: 16px; + --list-item-padding-block: var(--list-item-padding); + --list-item-gap: 12px; + box-sizing: border-box; position: relative; display: flex; align-items: center; width: 100%; - gap: 12px; - padding: 16px; + gap: var(--list-item-gap); + padding: var(--list-item-padding-block) var(--list-item-padding); font-size: 15px; color: var(--color-text-primary); } @@ -29,7 +33,7 @@ &::before { content: ''; position: absolute; - inset: 0; + inset: var(--clickable-area-spread, 0); } } } @@ -39,6 +43,32 @@ color: var(--color-text-secondary); } -.iconEnd { +.sideContent { + display: flex; + gap: var(--list-item-gap); + align-self: stretch; + align-items: center; margin-inline-start: auto; + + &:has(button, a) { + // If the sideContent has interactive children, move it + // above the clickable area of the .title content + position: relative; + z-index: 1; + + // Cover up the .title content's clickable area in the + // padding box around the sideContent + &::before { + content: ''; + position: absolute; + inset-block: calc(-1 * var(--list-item-padding-block)); + inset-inline: calc(-1 * var(--list-item-padding)); + z-index: -1; + } + } + + // Improve vertical alignment of slotted icons + & > .icon { + vertical-align: middle; + } } diff --git a/app/javascript/mastodon/components/truncated_list/index.tsx b/app/javascript/mastodon/components/truncated_list/index.tsx index 75e5a4ee2503a8..898900fc296834 100644 --- a/app/javascript/mastodon/components/truncated_list/index.tsx +++ b/app/javascript/mastodon/components/truncated_list/index.tsx @@ -1,4 +1,4 @@ -import { useCallback, useState } from 'react'; +import { useCallback, useId, useState } from 'react'; import { Article } from '@/mastodon/components/scrollable_list/components'; import KeyboardArrowDownIcon from '@/material-icons/400-24px/keyboard_arrow_down.svg?react'; @@ -42,6 +42,8 @@ export const TruncatedListItems = ({ toggleButton, renderListItem, }: TruncatedListProps) => { + const toggleButtonId = useId(); + const toggleButtonDescId = `${toggleButtonId}-desc`; const [showTruncatedItems, setShowTruncatedItems] = useState(false); const toggleTruncatedItems = useCallback(() => { setShowTruncatedItems((prev) => !prev); @@ -65,14 +67,19 @@ export const TruncatedListItems = ({ }); })} {hasHiddenAccounts && ( -
    +
    ) } - iconEnd={ + sideContent={ ({ } > { withoutBorder?: boolean; positionInList: number; listSize: number; @@ -20,6 +23,7 @@ export const CollectionListItem: React.FC = ({ withoutBorder, positionInList, listSize, + className, ...otherProps }) => { const uniqueId = useId(); @@ -29,21 +33,26 @@ export const CollectionListItem: React.FC = ({ return (
    - - - + } + {...otherProps} />
    ); diff --git a/app/javascript/mastodon/features/collections/components/collection_lockup.module.scss b/app/javascript/mastodon/features/collections/components/collection_lockup.module.scss index b658b490de469e..cdd5b18368561d 100644 --- a/app/javascript/mastodon/features/collections/components/collection_lockup.module.scss +++ b/app/javascript/mastodon/features/collections/components/collection_lockup.module.scss @@ -1,11 +1,5 @@ -.content { - position: relative; - flex-grow: 1; - display: flex; - align-items: center; - column-gap: 12px; - color: var(--color-text-primary); - line-height: 1.3; +.wrapper { + --list-item-padding: 0px; } .avatarGrid { @@ -36,27 +30,3 @@ fill: var(--color-text-primary); background: var(--color-bg-warning-softest); } - -.link { - display: block; - font-size: 15px; - font-weight: 500; - text-decoration: none; - color: var(--color-text-primary); - - &:hover { - color: var(--color-text-brand); - } - - &::after { - // Increase clickable area by extending link across parent - content: ''; - position: absolute; - inset: 0; - } -} - -.info { - font-size: 13px; - color: var(--color-text-secondary); -} diff --git a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx index bbcde0c3bd3d38..9593f02e2d94ac 100644 --- a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx @@ -1,10 +1,8 @@ -import { useId } from 'react'; - import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; -import { Link } from 'react-router-dom'; +import { ListItemLink, ListItemWrapper } from '@/mastodon/components/list_item'; import WarningIcon from '@/material-icons/400-24px/warning.svg?react'; import type { ApiCollectionJSON } from 'mastodon/api_types/collections'; import { AvatarById } from 'mastodon/components/avatar'; @@ -47,71 +45,78 @@ export interface CollectionLockupProps { collection: ApiCollectionJSON; withAuthorHandle?: boolean; withTimestamp?: boolean; + sideContent?: React.ReactNode; + className?: string; } export const CollectionLockup: React.FC = ({ collection, withAuthorHandle = true, withTimestamp, + sideContent, + className, }) => { const { id, name } = collection; - const uniqueId = useId(); - const linkId = `${uniqueId}-link`; - const infoId = `${uniqueId}-info`; const authorAccount = useAccount(collection.account_id); const authorHandle = useAccountHandle(authorAccount, domain); - return ( -
    - item.account_id)} - sensitive={collection.sensitive} - /> -
    -

    - - {name} - -

    -
      - {collection.sensitive && ( -
    • - -
    • - )} - {withAuthorHandle && authorAccount && ( - - )} + const collectionInfo = ( +
        + {collection.sensitive && ( +
      • - {withTimestamp && ( - - ), - }} - tagName='li' - /> - )} -
      -
    -
    + + )} + {withAuthorHandle && authorAccount && ( + + )} + + {withTimestamp && ( + , + }} + tagName='li' + /> + )} + + ); + + return ( + item.account_id)} + sensitive={collection.sensitive} + /> + } + sideContent={sideContent} + > + + {name} + + ); }; diff --git a/app/javascript/mastodon/features/collections/components/collection_preview_card.module.scss b/app/javascript/mastodon/features/collections/components/collection_preview_card.module.scss index 16b883b72b4491..26eb44539e4305 100644 --- a/app/javascript/mastodon/features/collections/components/collection_preview_card.module.scss +++ b/app/javascript/mastodon/features/collections/components/collection_preview_card.module.scss @@ -1,8 +1,10 @@ .wrapper { - display: flex; - align-items: start; - padding: 12px; - gap: 12px; + --list-item-padding: 12px; + border-radius: 12px; border: 1px solid var(--color-border-primary); } + +.removeButton { + align-self: start; +} diff --git a/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx b/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx index 204e2767c53ba5..83dc3e8a61e5c8 100644 --- a/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_preview_card.tsx @@ -1,5 +1,9 @@ +import { useIntl } from 'react-intl'; + import classNames from 'classnames'; +import CloseIcon from '@/material-icons/400-24px/close.svg?react'; +import { IconButton } from 'mastodon/components/icon_button'; import type { CollectionLockupProps } from 'mastodon/features/collections/components/collection_lockup'; import { CollectionLockup } from 'mastodon/features/collections/components/collection_lockup'; @@ -14,9 +18,26 @@ export const CollectionPreviewCard: React.FC = ({ onRemove, ...otherProps }) => { + const intl = useIntl(); + const removeButton = onRemove && ( + + ); + return ( -
    - -
    + ); }; From 2dd630bc581dfd73950b45f6c3b1f47619b7ea6c Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Mon, 27 Apr 2026 15:15:53 +0200 Subject: [PATCH 290/335] Only update FASP availability if it actually changed (#38818) --- app/workers/fasp/base_worker.rb | 12 +++++++----- .../examples/workers/fasp/delivery_failure.rb | 7 +++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/app/workers/fasp/base_worker.rb b/app/workers/fasp/base_worker.rb index 4916e83f470d5a..de38f6ade2a369 100644 --- a/app/workers/fasp/base_worker.rb +++ b/app/workers/fasp/base_worker.rb @@ -10,10 +10,12 @@ class Fasp::BaseWorker def with_provider(provider) return unless provider.confirmed? && provider.available? - yield - rescue *Mastodon::HTTP_CONNECTION_ERRORS - raise if provider.available? - ensure - provider.update_availability! + begin + yield + rescue *Mastodon::HTTP_CONNECTION_ERRORS + raise if provider.available? + ensure + provider.update_availability! + end end end diff --git a/spec/support/examples/workers/fasp/delivery_failure.rb b/spec/support/examples/workers/fasp/delivery_failure.rb index 006d93e80d8f77..aeb6364dbe3755 100644 --- a/spec/support/examples/workers/fasp/delivery_failure.rb +++ b/spec/support/examples/workers/fasp/delivery_failure.rb @@ -2,15 +2,18 @@ RSpec.shared_examples 'worker handling fasp delivery failures' do context 'when provider is not available' do + let(:delivery_last_failed_at) { 1.minute.ago.beginning_of_minute } + before do - provider.update(delivery_last_failed_at: 1.minute.ago) + provider.update(delivery_last_failed_at:) domain = Addressable::URI.parse(provider.base_url).normalized_host UnavailableDomain.create!(domain:) end - it 'does not attempt connecting and does not fail the job' do + it 'does not attempt connecting, does not fail the job and does not update the provider' do expect { subject }.to_not raise_error expect(stubbed_request).to_not have_been_made + expect(provider.reload.delivery_last_failed_at).to eq delivery_last_failed_at end end From d5f8b08d69c75304ccaafc44f17a14d5072b59df Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Tue, 28 Apr 2026 13:09:43 +0200 Subject: [PATCH 291/335] Add collections to `Flag` activities (#38817) --- app/lib/activitypub/activity.rb | 4 +++ app/lib/activitypub/activity/flag.rb | 3 ++ .../activitypub/flag_serializer.rb | 16 +++++++++- spec/lib/activitypub/activity/flag_spec.rb | 29 +++++++++++++++++- .../activitypub/flag_serializer_spec.rb | 30 +++++++++++++++++++ 5 files changed, 80 insertions(+), 2 deletions(-) diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb index 57fd41dcb3eb4c..60f723eeab4d9f 100644 --- a/app/lib/activitypub/activity.rb +++ b/app/lib/activitypub/activity.rb @@ -75,6 +75,10 @@ def account_from_uri(uri) ActivityPub::TagManager.instance.uri_to_resource(uri, Account) end + def collection_from_uri(uri) + ActivityPub::TagManager.instance.uri_to_resource(uri, Collection) + end + def object_uri @object_uri ||= uri_from_bearcap(value_or_id(@object)) end diff --git a/app/lib/activitypub/activity/flag.rb b/app/lib/activitypub/activity/flag.rb index b7a412485c07e7..bc25e5c29fffd0 100644 --- a/app/lib/activitypub/activity/flag.rb +++ b/app/lib/activitypub/activity/flag.rb @@ -8,9 +8,11 @@ def perform target_accounts = object_uris.filter_map { |uri| account_from_uri(uri) } target_statuses_by_account = object_uris.filter_map { |uri| status_from_uri(uri) }.group_by(&:account_id) + target_collections_by_account = object_uris.filter_map { |uri| collection_from_uri(uri) }.group_by(&:account_id) target_accounts.each do |target_account| target_statuses = target_statuses_by_account[target_account.id] + target_collections = target_collections_by_account.fetch(target_account.id, []) replied_to_accounts = target_statuses.nil? ? [] : Account.local.where(id: target_statuses.filter_map(&:in_reply_to_account_id)) next if target_account.suspended? || (!target_account.local? && replied_to_accounts.none?) @@ -19,6 +21,7 @@ def perform @account, target_account, status_ids: target_statuses.nil? ? [] : target_statuses.map(&:id), + collection_ids: target_collections.map(&:id), comment: report_comment, uri: report_uri ) diff --git a/app/serializers/activitypub/flag_serializer.rb b/app/serializers/activitypub/flag_serializer.rb index 2f2a707d362997..fe6f26d23d8cee 100644 --- a/app/serializers/activitypub/flag_serializer.rb +++ b/app/serializers/activitypub/flag_serializer.rb @@ -17,10 +17,24 @@ def actor end def virtual_object - [ActivityPub::TagManager.instance.uri_for(object.target_account)] + object.statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s) } + target_account_uris + status_uris + collection_uris end def content object.comment end + + private + + def target_account_uris + [ActivityPub::TagManager.instance.uri_for(object.target_account)] + end + + def status_uris + object.statuses.map { |s| ActivityPub::TagManager.instance.uri_for(s) } + end + + def collection_uris + object.collections.map { |c| ActivityPub::TagManager.instance.uri_for(c) } + end end diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb index be1bd42a14a810..54f76c9badb5b6 100644 --- a/spec/lib/activitypub/activity/flag_spec.rb +++ b/spec/lib/activitypub/activity/flag_spec.rb @@ -143,7 +143,34 @@ end end - context 'when an account is passed but no status' do + context 'when the activity includes and account and a collection' do + let(:collection) { Fabricate(:collection, account: flagged) } + let(:json) do + { + '@context' => 'https://www.w3.org/ns/activitystreams', + 'id' => flag_id, + 'type' => 'Flag', + 'content' => 'Boo!!', + 'actor' => ActivityPub::TagManager.instance.uri_for(sender), + 'object' => [ + ActivityPub::TagManager.instance.uri_for(flagged), + ActivityPub::TagManager.instance.uri_for(collection), + ], + } + end + + it 'creates a report with an attached collection' do + subject.perform + + report = Report.find_by(account: sender, target_account: flagged) + + expect(report).to_not be_nil + expect(report.comment).to eq 'Boo!!' + expect(report.collections).to contain_exactly(collection) + end + end + + context 'when an account is passed but no status or collection' do let(:mentioned) { Fabricate(:account) } let(:json) do diff --git a/spec/serializers/activitypub/flag_serializer_spec.rb b/spec/serializers/activitypub/flag_serializer_spec.rb index 75f787a73a9fc4..a66a49bc87670a 100644 --- a/spec/serializers/activitypub/flag_serializer_spec.rb +++ b/spec/serializers/activitypub/flag_serializer_spec.rb @@ -22,4 +22,34 @@ expect(subject).to_not have_key('cc') expect(subject).to_not have_key('target') end + + context 'with status' do + let(:target_account) { Fabricate(:account) } + let(:status) { Fabricate(:status, account: target_account) } + let(:report) { Fabricate(:report, target_account:, status_ids: [status.id]) } + + it 'includes the status URI in `object`' do + expect(subject).to include({ + 'object' => [ + tag_manager.uri_for(target_account), + tag_manager.uri_for(status), + ], + }) + end + end + + context 'with collection', feature: :collections do + let(:target_account) { Fabricate(:account) } + let(:collection) { Fabricate(:collection, account: target_account) } + let(:report) { Fabricate(:report, target_account:, collections: [collection]) } + + it 'includes the collection URI in `object`' do + expect(subject).to include({ + 'object' => [ + tag_manager.uri_for(target_account), + tag_manager.uri_for(collection), + ], + }) + end + end end From 1f1653e0392622e8cf827ddb1e28c5f8de50b3d6 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Tue, 28 Apr 2026 13:10:25 +0200 Subject: [PATCH 292/335] Remove rejected and revoked collection items (#38792) --- app/lib/activitypub/activity/reject.rb | 2 +- app/models/collection_item.rb | 7 +++--- .../collection_item_cleanup_scheduler.rb | 16 +++++++++++++ config/sidekiq.yml | 4 ++++ ...1611_add_index_to_collection_item_state.rb | 9 ++++++++ db/schema.rb | 3 ++- spec/lib/activitypub/activity/reject_spec.rb | 7 ++++-- .../collection_item_cleanup_scheduler_spec.rb | 23 +++++++++++++++++++ 8 files changed, 63 insertions(+), 8 deletions(-) create mode 100644 app/workers/scheduler/collection_item_cleanup_scheduler.rb create mode 100644 db/migrate/20260423141611_add_index_to_collection_item_state.rb create mode 100644 spec/workers/scheduler/collection_item_cleanup_scheduler_spec.rb diff --git a/app/lib/activitypub/activity/reject.rb b/app/lib/activitypub/activity/reject.rb index b6195cd199f1b1..e5684367a28b48 100644 --- a/app/lib/activitypub/activity/reject.rb +++ b/app/lib/activitypub/activity/reject.rb @@ -51,7 +51,7 @@ def reject_feature_request! collection_item = feature_request_from_object return unless collection_item.account == @account && collection_item.local? - collection_item.destroy! + collection_item.reject! end def relay diff --git a/app/models/collection_item.rb b/app/models/collection_item.rb index cc7758367405da..bbb0343ebe6901 100644 --- a/app/models/collection_item.rb +++ b/app/models/collection_item.rb @@ -25,6 +25,9 @@ class CollectionItem < ApplicationRecord { pending: 0, accepted: 1, rejected: 2, revoked: 3 }, validate: true + alias reject! rejected! + alias revoke! revoked! + delegate :local?, :remote?, to: :collection validates :account_id, uniqueness: { scope: :collection_id } @@ -45,10 +48,6 @@ class CollectionItem < ApplicationRecord scope :accepted_partial, ->(account) { joins(:account).merge(Account.local).accepted.where(uri: nil, account_id: account.id) } scope :pending_or_accepted, -> { where(state: [:pending, :accepted]) } - def revoke! - update!(state: :revoked) - end - def with_local_account? account&.local? end diff --git a/app/workers/scheduler/collection_item_cleanup_scheduler.rb b/app/workers/scheduler/collection_item_cleanup_scheduler.rb new file mode 100644 index 00000000000000..f70b3ee8f06722 --- /dev/null +++ b/app/workers/scheduler/collection_item_cleanup_scheduler.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class Scheduler::CollectionItemCleanupScheduler + include Sidekiq::Worker + + RETENTION_PERIOD = 24.hours + + sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i + + def perform + CollectionItem + .where(state: [:rejected, :revoked]) + .where(updated_at: ...(RETENTION_PERIOD.ago)) + .destroy_all + end +end diff --git a/config/sidekiq.yml b/config/sidekiq.yml index fb85343d942ee2..5beb95a3f8b3e5 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -72,3 +72,7 @@ interval: 1 day class: Scheduler::Fasp::FollowRecommendationCleanupScheduler queue: scheduler + collection_item_cleanup_scheduler: + interval: 1 hour + class: Scheduler::CollectionItemCleanupScheduler + queue: scheduler diff --git a/db/migrate/20260423141611_add_index_to_collection_item_state.rb b/db/migrate/20260423141611_add_index_to_collection_item_state.rb new file mode 100644 index 00000000000000..498dbc7eb8b9ff --- /dev/null +++ b/db/migrate/20260423141611_add_index_to_collection_item_state.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddIndexToCollectionItemState < ActiveRecord::Migration[8.1] + disable_ddl_transaction! + + def change + add_index :collection_items, :state, where: 'state IN (2, 3)', algorithm: :concurrently + end +end diff --git a/db/schema.rb b/db/schema.rb index 8523182b5e3cd1..62eff610c638c4 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.1].define(version: 2026_04_20_124030) do +ActiveRecord::Schema[8.1].define(version: 2026_04_23_141611) do # These are extensions that must be enabled in order to support this database enable_extension "pg_catalog.plpgsql" @@ -373,6 +373,7 @@ t.index ["account_id", "collection_id"], name: "index_collection_items_on_account_id_and_collection_id", unique: true t.index ["approval_uri"], name: "index_collection_items_on_approval_uri", unique: true, where: "(approval_uri IS NOT NULL)" t.index ["collection_id"], name: "index_collection_items_on_collection_id" + t.index ["state"], name: "index_collection_items_on_state", where: "(state = ANY (ARRAY[2, 3]))" t.index ["uri"], name: "index_collection_items_on_uri", unique: true, where: "(uri IS NOT NULL)" end diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb index 8f58f02c71c3a9..d4ef898c25210a 100644 --- a/spec/lib/activitypub/activity/reject_spec.rb +++ b/spec/lib/activitypub/activity/reject_spec.rb @@ -161,8 +161,11 @@ } end - it 'deletes the collection item' do - expect { subject.perform }.to change(collection.collection_items, :count).by(-1) + it 'sets the collection item state to `rejected`' do + expect do + subject.perform + collection_item.reload + end.to change(collection_item, :state).to('rejected') end end end diff --git a/spec/workers/scheduler/collection_item_cleanup_scheduler_spec.rb b/spec/workers/scheduler/collection_item_cleanup_scheduler_spec.rb new file mode 100644 index 00000000000000..0a13053f81d3e7 --- /dev/null +++ b/spec/workers/scheduler/collection_item_cleanup_scheduler_spec.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Scheduler::CollectionItemCleanupScheduler do + let(:worker) { described_class.new } + + describe '#perform' do + let!(:old_rejected_item) { Fabricate(:collection_item, state: :rejected, updated_at: 25.hours.ago) } + let!(:old_revoked_item) { Fabricate(:collection_item, state: :revoked, updated_at: 26.hours.ago) } + let!(:new_revoked_item) { Fabricate(:collection_item, state: :revoked, updated_at: 2.hours.ago) } + let!(:accepted_item) { Fabricate(:collection_item, state: :accepted, updated_at: 30.hours.ago) } + + it 'deletes the rejected and revoked items older than 24 hours' do + expect { subject.perform }.to change(CollectionItem, :count).by(-2) + + expect { old_rejected_item.reload }.to raise_error(ActiveRecord::RecordNotFound) + expect { old_revoked_item.reload }.to raise_error(ActiveRecord::RecordNotFound) + expect { new_revoked_item.reload }.to_not raise_error + expect { accepted_item.reload }.to_not raise_error + end + end +end From 3d5cb624ba1bf861d41f4bf42f7ecf02b010718e Mon Sep 17 00:00:00 2001 From: diondiondion Date: Tue, 28 Apr 2026 13:32:27 +0200 Subject: [PATCH 293/335] Update design of Collections list page (#38822) --- .../mastodon/components/column_header.tsx | 6 +- .../components/scrollable_list/components.tsx | 6 +- .../mastodon/components/tab_list/index.tsx | 51 ++++++ .../components/tab_list/styles.module.scss | 39 ++++ .../components/tab_list/tab_list.stories.tsx | 33 ++++ .../components/styles.module.scss | 40 +---- .../account_timeline/components/tabs.tsx | 18 +- .../collection_list_item.module.scss | 1 - .../features/collections/editor/index.tsx | 8 +- .../mastodon/features/collections/index.tsx | 170 +++++++++++------- .../features/collections/styles.module.scss | 35 ++++ app/javascript/mastodon/locales/en.json | 8 +- .../mastodon/utils/has_react_children.ts | 12 ++ 13 files changed, 305 insertions(+), 122 deletions(-) create mode 100644 app/javascript/mastodon/components/tab_list/index.tsx create mode 100644 app/javascript/mastodon/components/tab_list/styles.module.scss create mode 100644 app/javascript/mastodon/components/tab_list/tab_list.stories.tsx create mode 100644 app/javascript/mastodon/features/collections/styles.module.scss create mode 100644 app/javascript/mastodon/utils/has_react_children.ts diff --git a/app/javascript/mastodon/components/column_header.tsx b/app/javascript/mastodon/components/column_header.tsx index b8ab2bbe54c460..076ca3085e914f 100644 --- a/app/javascript/mastodon/components/column_header.tsx +++ b/app/javascript/mastodon/components/column_header.tsx @@ -276,9 +276,11 @@ export const ColumnHeader: React.FC = ({ ); + const HeadingElement = hasTitle ? 'h1' : 'div'; + const component = (
    -

    + {hasTitle && ( <> {backButton} @@ -311,7 +313,7 @@ export const ColumnHeader: React.FC = ({ {extraButton} {collapseButton}

    -
    - {collection && ( - - - - ), - subtitle: ( - - ), - }} - renderListItem={renderListItem} - /> - - - )} + + + + ), + subtitle: ( + + ), + }} + renderListItem={renderListItem} + /> + + ); }; diff --git a/app/javascript/mastodon/features/collections/detail/index.tsx b/app/javascript/mastodon/features/collections/detail/index.tsx index ff18320341ed47..12701d1fd42f96 100644 --- a/app/javascript/mastodon/features/collections/detail/index.tsx +++ b/app/javascript/mastodon/features/collections/detail/index.tsx @@ -23,6 +23,7 @@ import { DisplayName } from 'mastodon/components/display_name'; import { useAccountHandle } from 'mastodon/components/display_name/default'; import { FormattedDateWrapper } from 'mastodon/components/formatted_date'; import { IconButton } from 'mastodon/components/icon_button'; +import { LoadingIndicator } from 'mastodon/components/loading_indicator'; import { Scrollable } from 'mastodon/components/scrollable_list/components'; import { useAccount } from 'mastodon/hooks/useAccount'; import { domain, me } from 'mastodon/initial_state'; @@ -218,7 +219,6 @@ export const CollectionDetailPage: React.FC<{ const collection = useAppSelector((state) => id ? state.collections.collections[id] : undefined, ); - const isLoading = !!id && !collection; useEffect(() => { if (id) { @@ -239,8 +239,14 @@ export const CollectionDetailPage: React.FC<{ /> - {collection && } - + {collection ? ( + <> + + + + ) : ( + + )} diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index 5b6d50a3ebae2d..7561849fc0c561 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -6,6 +6,7 @@ import { Helmet } from 'react-helmet'; import { Link } from 'react-router-dom'; import { EmptyState } from '@/mastodon/components/empty_state'; +import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; import { TabLink, TabList } from '@/mastodon/components/tab_list'; import AddIcon from '@/material-icons/400-24px/add.svg?react'; import { Column } from 'mastodon/components/column'; @@ -128,9 +129,10 @@ export const Collections: React.FC<{ - {collections.length > 0 ? ( - <> - {status === 'idle' && ( + {status === 'loading' && } + {status === 'idle' && + (collections.length > 0 ? ( + <>

    {showCreateButton && }

    - )} - - {!canCreateMoreCollections && ( - + {!canCreateMoreCollections && ( + + )} + {collections.map((item, index) => ( + + ))} + + + ) : ( + - )} - {collections.map((item, index) => ( - - ))} - - - ) : ( - - } - message={ - - } - > - - - )} + } + > + + + ))} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index db68bb9b75260c..8019566ef6fa41 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -391,7 +391,6 @@ "collections.create_collection": "Create collection", "collections.delete_collection": "Delete collection", "collections.description_length_hint": "100 characters limit", - "collections.detail.accounts_heading": "Accounts", "collections.detail.author_added_you_on_date": "{author} added you on {date}", "collections.detail.loading": "Loading collection…", "collections.detail.revoke_inclusion": "Remove me", From 5b395774c05d7deb619e7fef725bfe957615f452 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 29 Apr 2026 17:53:29 +0200 Subject: [PATCH 310/335] Add fallback attributes to notifications for new and infrequent notifications (#38832) --- .../api/v1/notifications_controller.rb | 8 +- .../api/v2/notifications_controller.rb | 8 +- app/lib/text_formatter.rb | 16 ++-- app/models/notification.rb | 17 ++++ .../concerns/notification_fallback_concern.rb | 96 +++++++++++++++++++ .../rest/notification_group_serializer.rb | 6 ++ .../rest/notification_serializer.rb | 6 ++ config/locales/en.yml | 21 ++++ .../notification_group_serializer_spec.rb | 32 ++++++- .../rest/notification_serializer_spec.rb | 29 +++++- 10 files changed, 225 insertions(+), 14 deletions(-) create mode 100644 app/serializers/concerns/notification_fallback_concern.rb diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 13919b400df6a3..91995f8421aa11 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -16,7 +16,7 @@ def index @relationships = StatusRelationshipsPresenter.new(target_statuses_from_notifications, current_user&.account_id) end - render json: @notifications, each_serializer: REST::NotificationSerializer, relationships: @relationships + render json: @notifications, each_serializer: REST::NotificationSerializer, relationships: @relationships, supported_notification_types: params[:supported_types] end def unread_count @@ -29,7 +29,7 @@ def unread_count def show @notification = current_account.notifications.without_suspended.find(params[:id]) - render json: @notification, serializer: REST::NotificationSerializer + render json: @notification, serializer: REST::NotificationSerializer, supported_notification_types: params[:supported_types] end def clear @@ -89,6 +89,8 @@ def browserable_params end def pagination_params(core_params) - params.slice(:limit, :account_id, :types, :exclude_types, :include_filtered).permit(:limit, :account_id, :include_filtered, types: [], exclude_types: []).merge(core_params) + params.slice(:limit, :account_id, :types, :exclude_types, :include_filtered, :supported_types) + .permit(:limit, :account_id, :include_filtered, types: [], exclude_types: [], supported_types: []) + .merge(core_params) end end diff --git a/app/controllers/api/v2/notifications_controller.rb b/app/controllers/api/v2/notifications_controller.rb index 848c361cfc321f..f54cd230b7aaa1 100644 --- a/app/controllers/api/v2/notifications_controller.rb +++ b/app/controllers/api/v2/notifications_controller.rb @@ -33,7 +33,7 @@ def index 'app.notification_grouping.expand_accounts_param' => expand_accounts_param ) - render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, expand_accounts: expand_accounts_param + render json: @presenter, serializer: REST::DedupNotificationGroupSerializer, relationships: @relationships, expand_accounts: expand_accounts_param, supported_notification_types: params[:supported_types] end end @@ -48,7 +48,7 @@ def unread_count def show @notification = current_account.notifications.without_suspended.by_group_key(params[:group_key]).take! presenter = GroupedNotificationsPresenter.new(NotificationGroup.from_notifications([@notification])) - render json: presenter, serializer: REST::DedupNotificationGroupSerializer + render json: presenter, serializer: REST::DedupNotificationGroupSerializer, supported_notification_types: params[:supported_types] end def clear @@ -138,7 +138,9 @@ def browserable_params end def pagination_params(core_params) - params.slice(:limit, :include_filtered, :types, :exclude_types, :grouped_types).permit(:limit, :include_filtered, types: [], exclude_types: [], grouped_types: []).merge(core_params) + params.slice(:limit, :include_filtered, :types, :exclude_types, :grouped_types, :supported_types) + .permit(:limit, :include_filtered, types: [], exclude_types: [], grouped_types: [], supported_types: []) + .merge(core_params) end def expand_accounts_param diff --git a/app/lib/text_formatter.rb b/app/lib/text_formatter.rb index 10f007ff370dcd..597135314b8624 100644 --- a/app/lib/text_formatter.rb +++ b/app/lib/text_formatter.rb @@ -76,6 +76,15 @@ def shortened_link(url, rel_me: false) rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError h(url) end + + def link_to_mention(account, with_domain: false) + url = ActivityPub::TagManager.instance.url_for(account) + display_username = with_domain ? account.pretty_acct : account.username + + <<~HTML.squish + @#{h(display_username)} + HTML + end end private @@ -136,12 +145,7 @@ def link_to_mention(entity) return "@#{h(entity[:screen_name])}" if account.nil? - url = ActivityPub::TagManager.instance.url_for(account) - display_username = same_username_hits&.positive? || with_domains? ? account.pretty_acct : account.username - - <<~HTML.squish - @#{h(display_username)} - HTML + TextFormatter.link_to_mention(account, with_domain: same_username_hits&.positive? || with_domains?) end def entity_cache diff --git a/app/models/notification.rb b/app/models/notification.rb index a54788dd2ed7bd..9a1a36686905fc 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -37,54 +37,71 @@ class Notification < ApplicationRecord PROPERTIES = { mention: { filterable: true, + baseline: true, }.freeze, status: { filterable: false, + baseline: true, }.freeze, reblog: { filterable: true, + baseline: true, }.freeze, follow: { filterable: true, + baseline: true, }.freeze, follow_request: { filterable: true, + baseline: true, }.freeze, favourite: { filterable: true, + baseline: true, }.freeze, poll: { filterable: false, + baseline: true, }.freeze, update: { filterable: false, + baseline: true, }.freeze, severed_relationships: { filterable: false, + baseline: false, }.freeze, moderation_warning: { filterable: false, + baseline: false, }.freeze, annual_report: { filterable: false, + baseline: true, }.freeze, 'admin.sign_up': { filterable: false, + baseline: false, }.freeze, 'admin.report': { filterable: false, + baseline: false, }.freeze, quote: { filterable: true, + baseline: true, }.freeze, quoted_update: { filterable: false, + baseline: true, }.freeze, added_to_collection: { filterable: true, + baseline: false, }.freeze, collection_update: { filterable: false, + baseline: false, }.freeze, }.freeze diff --git a/app/serializers/concerns/notification_fallback_concern.rb b/app/serializers/concerns/notification_fallback_concern.rb new file mode 100644 index 00000000000000..a3fbf4f5691a57 --- /dev/null +++ b/app/serializers/concerns/notification_fallback_concern.rb @@ -0,0 +1,96 @@ +# frozen_string_literal: true + +module NotificationFallbackConcern + extend ActiveSupport::Concern + + def fallback + { + title: fallback_title, + summary: fallback_summary, + description: nil, + } + end + + def needs_fallback? + return false if instance_options[:supported_notification_types].nil? + return false if Notification::PROPERTIES.dig(object.type, :baseline) || instance_options[:supported_notification_types].include?(object.type.to_s) + + # In rare cases, a notification might be missing its activity, in which case we can't do much + case object.type + when :severed_relationships + object.account_relationship_severance_event.present? + when :'admin.report' + object.report.present? + when :added_to_collection, :collection_update + object.target_collection.present? + else + true + end + end + + def fallback_title + account = object.is_a?(NotificationGroup) ? object.sample_accounts.first : object.from_account + + case object.type + when :severed_relationships + I18n.t( + 'notification_fallbacks.severed_relationships.title', + name: object.account_relationship_severance_event.target_name + ) + when :moderation_warning + I18n.t('notification_fallbacks.moderation_warning.title') + when :'admin.sign_up' + count = object.is_a?(NotificationGroup) ? object.sample_accounts.count : 1 + if count > 1 + I18n.t( + 'notification_fallbacks.admin_sign_up.title_and_others_html', + name: TextFormatter.link_to_mention(account), + count: count - 1 + ) + else + I18n.t( + 'notification_fallbacks.admin_sign_up.title_html', + name: TextFormatter.link_to_mention(account) + ) + end + when :'admin.report' + I18n.t( + 'notification_fallbacks.admin_report.title_html', + name: account.remote? ? account.domain : TextFormatter.link_to_mention(account), + target: TextFormatter.link_to_mention(object.report.target_account) + ) + when :added_to_collection + I18n.t( + 'notification_fallbacks.added_to_collection.title_html', + name: TextFormatter.link_to_mention(account) + ) + when :collection_update + I18n.t( + 'notification_fallbacks.collection_update.title_html', + name: account + ) + end + end + + def fallback_summary + case object.type + when :severed_relationships + I18n.t( + 'notification_fallbacks.severed_relationships.summary_html', + from: Rails.configuration.x.local_domain, + target: object.account_relationship_severance_event.target_name, + link: link_to(I18n.t('notification_fallbacks.generic.sign_in'), severed_relationships_url) + ) + when :moderation_warning + I18n.t( + 'notification_fallbacks.moderation_warning.summary_html', + link: link_to(I18n.t('notification_fallbacks.generic.sign_in'), disputes_strike_url(object.account_warning.id)) + ) + when :'admin.sign_up', :'admin.report', :added_to_collection, :collection_update + I18n.t( + 'notification_fallbacks.generic.summary_html', + link: link_to(I18n.t('notification_fallbacks.generic.sign_in'), root_url) + ) + end + end +end diff --git a/app/serializers/rest/notification_group_serializer.rb b/app/serializers/rest/notification_group_serializer.rb index 3f95d78fc42840..b47ff41cec8087 100644 --- a/app/serializers/rest/notification_group_serializer.rb +++ b/app/serializers/rest/notification_group_serializer.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true class REST::NotificationGroupSerializer < ActiveModel::Serializer + include RoutingHelper + include ActionView::Helpers::UrlHelper + include NotificationFallbackConcern + # Please update app/javascript/mastodon/api_types/notifications.ts when making changes to the attributes attributes :group_key, :notifications_count, :type, :most_recent_notification_id @@ -8,6 +12,8 @@ class REST::NotificationGroupSerializer < ActiveModel::Serializer attribute :page_max_id, if: :paginated? attribute :latest_page_notification_at, if: :paginated? + attribute :fallback, if: :needs_fallback? + attribute :sample_account_ids attribute :status_id, if: :status_type? belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb index f337aab943ae2a..0fb809fcb08e2b 100644 --- a/app/serializers/rest/notification_serializer.rb +++ b/app/serializers/rest/notification_serializer.rb @@ -1,11 +1,17 @@ # frozen_string_literal: true class REST::NotificationSerializer < ActiveModel::Serializer + include RoutingHelper + include ActionView::Helpers::UrlHelper + include NotificationFallbackConcern + # Please update app/javascript/mastodon/api_types/notifications.ts when making changes to the attributes attributes :id, :type, :created_at, :group_key attribute :filtered, if: :filtered? + attribute :fallback, if: :needs_fallback? + belongs_to :from_account, key: :account, serializer: REST::AccountSerializer belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer diff --git a/config/locales/en.yml b/config/locales/en.yml index 2c92862102acb0..7904388db38675 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1731,6 +1731,27 @@ en: copy_account_note_text: 'This user moved from %{acct}, here were your previous notes about them:' navigation: toggle_menu: Toggle menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} added you to a collection" + admin_report: + title_html: "%{name} reported %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} and one other signed up" + other: "%{name} and %{count} others signed up" + title_html: "%{name} signed up" + collection_update: + title_html: "%{name} updated a collection you are in" + generic: + sign_in: Sign in to the Mastodon web app + summary_html: You're on an app that does not support the most recent version of Mastodon. %link for full functionality. + moderation_warning: + summary_html: You're on an app that does not support the most recent version of Mastodon. %link + title: You have received a moderation warning. + severed_relationships: + summary_html: An admin from %{from} has suspended %{target}, which means you can no longer receive updates from them or interact with them. %{link} to retrieve a list of the lost relationships. + title: Lost connections with %{name} notification_mailer: admin: report: diff --git a/spec/serializers/rest/notification_group_serializer_spec.rb b/spec/serializers/rest/notification_group_serializer_spec.rb index 01fd8ce0a1fe43..bd9bbe0fc7d7be 100644 --- a/spec/serializers/rest/notification_group_serializer_spec.rb +++ b/spec/serializers/rest/notification_group_serializer_spec.rb @@ -6,10 +6,16 @@ subject do serialized_record_json( notification_group, - described_class + described_class, + options: { + scope: current_user, + scope_name: :current_user, + supported_notification_types: [], + } ) end + let(:current_user) { Fabricate(:user) } let(:notification_group) { NotificationGroup.new pagination_data: { latest_notification_at: 3.days.ago }, notification: Fabricate(:notification), sample_accounts: [] } context 'when latest_page_notification_at is populated' do @@ -20,4 +26,28 @@ ) end end + + shared_examples 'with fallback notifications' do |type, fabricators| + let(:activities) { fabricators.map { |fabricator| Fabricate(fabricator) } } + let(:notifications) { activities.map { |activity| Fabricate(:notification, type:, activity:, account: current_user.account) } } + let(:notification_group) { NotificationGroup.new(notification: notifications.last, sample_accounts: notifications.map(&:from_account)) } + + it 'renders correctly' do + expect(subject) + .to include( + 'type' => type, + 'fallback' => include( + 'title' => anything, + 'summary' => anything + ) + ) + end + end + + it_behaves_like 'with fallback notifications', 'severed_relationships', [:account_relationship_severance_event] + it_behaves_like 'with fallback notifications', 'moderation_warning', [:account_warning] + it_behaves_like 'with fallback notifications', 'admin.report', [:report] + it_behaves_like 'with fallback notifications', 'admin.report', [:report, :report] + it_behaves_like 'with fallback notifications', 'added_to_collection', [:collection_item] + it_behaves_like 'with fallback notifications', 'collection_update', [:collection] end diff --git a/spec/serializers/rest/notification_serializer_spec.rb b/spec/serializers/rest/notification_serializer_spec.rb index b833bcb6e1a095..377efdb93b6749 100644 --- a/spec/serializers/rest/notification_serializer_spec.rb +++ b/spec/serializers/rest/notification_serializer_spec.rb @@ -6,10 +6,16 @@ subject do serialized_record_json( notification, - described_class + described_class, + options: { + scope: current_user, + scope_name: :current_user, + supported_notification_types: [], + } ) end + let(:current_user) { Fabricate(:user) } let(:notification) { Fabricate :notification } context 'when created_at is populated' do @@ -20,4 +26,25 @@ ) end end + + shared_examples 'with fallback notifications' do |type, fabricator| + let(:notification) { Fabricate(:notification, type:, activity: Fabricate(fabricator), account: current_user.account) } + + it 'renders correctly' do + expect(subject) + .to include( + 'type' => type, + 'fallback' => include( + 'title' => anything, + 'summary' => anything + ) + ) + end + end + + it_behaves_like 'with fallback notifications', 'severed_relationships', :account_relationship_severance_event + it_behaves_like 'with fallback notifications', 'moderation_warning', :account_warning + it_behaves_like 'with fallback notifications', 'admin.report', :report + it_behaves_like 'with fallback notifications', 'added_to_collection', :collection_item + it_behaves_like 'with fallback notifications', 'collection_update', :collection end From a47ed3104718ce6f69bca2c028b267988a28c26b Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 29 Apr 2026 21:44:42 +0200 Subject: [PATCH 311/335] Fixes custom emoji not appearing in autocomplete (#38854) Co-authored-by: Copilot --- app/javascript/mastodon/actions/compose.js | 16 ++-- .../mastodon/features/emoji/emoji_picker.tsx | 82 ++---------------- .../mastodon/features/emoji/picker.ts | 85 +++++++++++++++++++ 3 files changed, 101 insertions(+), 82 deletions(-) create mode 100644 app/javascript/mastodon/features/emoji/picker.ts diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 447612477f5c1c..f43ca0039b7b70 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -8,6 +8,7 @@ import { browserHistory } from 'mastodon/components/router'; import { countableText } from 'mastodon/features/compose/util/counter'; import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light'; import { tagHistory } from 'mastodon/settings'; +import { fetchCustomEmojiData } from '@/mastodon/features/emoji/picker'; import { showAlert, showAlertForError } from './alerts'; import { useEmoji } from './emojis'; @@ -563,7 +564,7 @@ export function clearComposeSuggestions() { }; } -const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => { +const fetchComposeSuggestionsAccounts = throttle((dispatch, token) => { if (fetchComposeSuggestionsAccountsController) { fetchComposeSuggestionsAccountsController.abort(); } @@ -590,12 +591,13 @@ const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => }); }, 200, { leading: true, trailing: true }); -const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => { - const results = emojiSearch(token.replace(':', ''), { maxResults: 5 }); +const fetchComposeSuggestionsEmojis = async (dispatch, token) => { + const custom = await fetchCustomEmojiData(); + const results = emojiSearch(token.replace(':', ''), { maxResults: 5, custom }); dispatch(readyComposeSuggestionsEmojis(token, results)); }; -const fetchComposeSuggestionsTags = throttle((dispatch, getState, token) => { +const fetchComposeSuggestionsTags = throttle((dispatch, token) => { if (fetchComposeSuggestionsTagsController) { fetchComposeSuggestionsTagsController.abort(); } @@ -629,14 +631,14 @@ export function fetchComposeSuggestions(token) { return (dispatch, getState) => { switch (token[0]) { case ':': - fetchComposeSuggestionsEmojis(dispatch, getState, token); + void fetchComposeSuggestionsEmojis(dispatch, token); break; case '#': case '#': - fetchComposeSuggestionsTags(dispatch, getState, token); + fetchComposeSuggestionsTags(dispatch, token); break; default: - fetchComposeSuggestionsAccounts(dispatch, getState, token); + fetchComposeSuggestionsAccounts(dispatch, token); break; } }; diff --git a/app/javascript/mastodon/features/emoji/emoji_picker.tsx b/app/javascript/mastodon/features/emoji/emoji_picker.tsx index a9a93aa87d6f78..233c451aadd0e9 100644 --- a/app/javascript/mastodon/features/emoji/emoji_picker.tsx +++ b/app/javascript/mastodon/features/emoji/emoji_picker.tsx @@ -1,39 +1,19 @@ import type { FC } from 'react'; -import { useEffect, useState } from 'react'; -import type { - CategoryName, - CustomEmoji, - EmojiProps, - PickerProps, -} from 'emoji-mart'; +import type { EmojiProps, PickerProps } from 'emoji-mart'; import EmojiRaw from 'emoji-mart/dist-es/components/emoji/nimble-emoji'; import PickerRaw from 'emoji-mart/dist-es/components/picker/nimble-picker'; -import { autoPlayGif } from '@/mastodon/initial_state'; -import { assetHost } from 'mastodon/utils/config'; +import { assetHost } from '@/mastodon/utils/config'; import { EMOJI_MODE_NATIVE } from './constants'; import EmojiData from './emoji_data.json'; import { useEmojiAppState } from './mode'; -import { emojiLogger } from './utils'; +import { usePickerEmojis } from './picker'; const backgroundImageFnDefault = () => `${assetHost}/emoji/sheet_16_0.png`; -let customEmojis: CustomEmoji[] | null = null; -let customCategories = [ - 'recent', - 'people', - 'nature', - 'foods', - 'activity', - 'places', - 'objects', - 'symbols', - 'flags', -] as CategoryName[]; - -const log = emojiLogger('picker'); +export { fetchCustomEmojiData as loadCustomEmojiData } from './picker'; export const Picker: FC = ({ set = 'twitter', @@ -44,24 +24,16 @@ export const Picker: FC = ({ ...props }) => { const { mode } = useEmojiAppState(); - const [isLoaded, setLoaded] = useState(customEmojis !== null); - - useEffect(() => { - if (customEmojis === null) { - void loadCustomEmojiData().then(() => { - setLoaded(true); - }); - } - }, []); + const { customCategories, customEmojis } = usePickerEmojis(); - if (!isLoaded) { + if (!customEmojis) { return null; } return ( = ({ ); }; -export async function loadCustomEmojiData() { - const { loadAllCustomEmoji } = await import('./database'); - const emojisRaw = await loadAllCustomEmoji(); - if (emojisRaw.length === 0) { - return; - } - - const categories = new Set(['custom']); - const emojis = []; - for (const emoji of emojisRaw) { - const name = emoji.shortcode.replaceAll(':', ''); - emojis.push({ - name, - id: name, - custom: true, - short_names: [name], - imageUrl: autoPlayGif ? emoji.url : emoji.static_url, - customCategory: emoji.category, - }); - - if (emoji.category) { - categories.add(`custom-${emoji.category}`); - } - } - - customEmojis = emojis.toSorted((a, b) => { - return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); - }); - customCategories = customCategories.toSpliced( - 1, - 0, - ...(Array.from(categories).toSorted() as CategoryName[]), - ); - log( - 'loaded %d custom emojis in %d categories', - customEmojis.length, - categories.size, - ); -} - export const Emoji: FC = ({ set = 'twitter', sheetSize = 32, diff --git a/app/javascript/mastodon/features/emoji/picker.ts b/app/javascript/mastodon/features/emoji/picker.ts new file mode 100644 index 00000000000000..b40a3020e46791 --- /dev/null +++ b/app/javascript/mastodon/features/emoji/picker.ts @@ -0,0 +1,85 @@ +import { useEffect, useState } from 'react'; + +import type { CategoryName, CustomEmoji } from 'emoji-mart'; + +import { autoPlayGif } from '@/mastodon/initial_state'; + +import { emojiLogger } from './utils'; + +const log = emojiLogger('picker'); + +let customEmojis: CustomEmoji[] | null = null; +let customCategories = [ + 'recent', + 'people', + 'nature', + 'foods', + 'activity', + 'places', + 'objects', + 'symbols', + 'flags', +] as CategoryName[]; + +export async function fetchCustomEmojiData() { + if (customEmojis !== null) { + return customEmojis; + } + + const { loadAllCustomEmoji } = await import('./database'); + const emojisRaw = await loadAllCustomEmoji(); + if (emojisRaw.length === 0) { + return []; + } + + const categories = new Set(['custom']); + const emojis = []; + for (const emoji of emojisRaw) { + const name = emoji.shortcode.replaceAll(':', ''); + emojis.push({ + name, + id: name, + custom: true, + short_names: [name], + imageUrl: autoPlayGif ? emoji.url : emoji.static_url, + customCategory: emoji.category, + }); + + if (emoji.category) { + categories.add(`custom-${emoji.category}`); + } + } + + customEmojis = emojis.toSorted((a, b) => { + return a.name.toLowerCase().localeCompare(b.name.toLowerCase()); + }); + customCategories = customCategories.toSpliced( + 1, + 0, + ...(Array.from(categories).toSorted() as CategoryName[]), + ); + log( + 'loaded %d custom emojis in %d categories', + customEmojis.length, + categories.size, + ); + + return customEmojis; +} + +export function usePickerEmojis() { + const [, setLoaded] = useState(customEmojis !== null); + + useEffect(() => { + if (customEmojis === null) { + void fetchCustomEmojiData().then(() => { + setLoaded(true); + }); + } + }, []); + + return { + customEmojis, + customCategories, + }; +} From deb72a4c91f379c29dd8ab12d36a90b13401a918 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 10:21:13 +0200 Subject: [PATCH 312/335] New Crowdin Translations (automated) (#38859) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 1 - app/javascript/mastodon/locales/be.json | 1 - app/javascript/mastodon/locales/cy.json | 1 - app/javascript/mastodon/locales/da.json | 1 - app/javascript/mastodon/locales/de.json | 3 +-- app/javascript/mastodon/locales/el.json | 13 +++++------ app/javascript/mastodon/locales/en-GB.json | 1 - app/javascript/mastodon/locales/es-AR.json | 1 - app/javascript/mastodon/locales/es-MX.json | 9 +++++++- app/javascript/mastodon/locales/es.json | 1 - app/javascript/mastodon/locales/et.json | 1 - app/javascript/mastodon/locales/fi.json | 9 +++++++- app/javascript/mastodon/locales/fo.json | 1 - app/javascript/mastodon/locales/fr-CA.json | 9 ++++---- app/javascript/mastodon/locales/fr.json | 9 ++++---- app/javascript/mastodon/locales/ga.json | 3 ++- app/javascript/mastodon/locales/gd.json | 1 - app/javascript/mastodon/locales/gl.json | 1 - app/javascript/mastodon/locales/he.json | 9 +++++++- app/javascript/mastodon/locales/hu.json | 1 - app/javascript/mastodon/locales/is.json | 1 - app/javascript/mastodon/locales/it.json | 1 - app/javascript/mastodon/locales/ja.json | 1 - app/javascript/mastodon/locales/kab.json | 1 - app/javascript/mastodon/locales/nan-TW.json | 1 - app/javascript/mastodon/locales/nl.json | 3 +-- app/javascript/mastodon/locales/nn.json | 1 - app/javascript/mastodon/locales/pt-BR.json | 1 - app/javascript/mastodon/locales/pt-PT.json | 1 - app/javascript/mastodon/locales/ru.json | 1 - app/javascript/mastodon/locales/sq.json | 1 - app/javascript/mastodon/locales/sv.json | 1 - app/javascript/mastodon/locales/tr.json | 4 +++- app/javascript/mastodon/locales/uk.json | 1 - app/javascript/mastodon/locales/vi.json | 1 - app/javascript/mastodon/locales/zh-CN.json | 1 - app/javascript/mastodon/locales/zh-TW.json | 1 - config/locales/da.yml | 21 +++++++++++++++++ config/locales/de.yml | 18 +++++++++++++++ config/locales/el.yml | 25 +++++++++++++++++++-- config/locales/es-AR.yml | 21 +++++++++++++++++ config/locales/et.yml | 12 ++++++++++ config/locales/fi.yml | 18 +++++++++++++++ config/locales/ga.yml | 24 ++++++++++++++++++++ config/locales/is.yml | 21 +++++++++++++++++ config/locales/it.yml | 20 +++++++++++++++++ config/locales/nl.yml | 21 +++++++++++++++++ config/locales/sq.yml | 21 +++++++++++++++++ config/locales/zh-TW.yml | 5 +++++ 49 files changed, 272 insertions(+), 53 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 9b156a5fa9ceba..6d60b8410a0a3f 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -269,7 +269,6 @@ "collections.copy_link_confirmation": "نسخ الرابط إلى الحافظة", "collections.create.basic_details_title": "المعلومات الأساسية", "collections.create.steps": "الخطوة {step}/{total}", - "collections.detail.accounts_heading": "الحسابات", "collections.detail.revoke_inclusion": "أزلني", "collections.detail.sensitive_content": "محتوى حساس", "collections.edit_details": "تعديل التفاصيل", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index e4f7a388a211b0..2ce501c5744be7 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -390,7 +390,6 @@ "collections.create_collection": "Стварыць калекцыю", "collections.delete_collection": "Выдаліць калекцыю", "collections.description_length_hint": "Максімум 100 сімвалаў", - "collections.detail.accounts_heading": "Уліковыя запісы", "collections.detail.author_added_you_on_date": "{author} дадаў(-ла) Вас {date}", "collections.detail.loading": "Загружаецца калекцыя…", "collections.detail.revoke_inclusion": "Прыбраць сябе", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index fb17d26e33e41f..c32c47a3037e35 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -342,7 +342,6 @@ "collections.create_collection": "Creu casgliad", "collections.delete_collection": "Dileu casgliad", "collections.description_length_hint": "Terfyn o 100 nod", - "collections.detail.accounts_heading": "Cyfrifon", "collections.detail.loading": "Yn llwytho casgliad…", "collections.detail.revoke_inclusion": "Tynnu fi", "collections.detail.sensitive_note": "Mae'r casgliad hwn yn cynnwys cyfrifon a chynnwys a allai fod yn sensitif i rai defnyddwyr.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index b23dec384cd88e..3ac4a400581835 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -391,7 +391,6 @@ "collections.create_collection": "Opret samling", "collections.delete_collection": "Slet samling", "collections.description_length_hint": "Begrænset til 100 tegn", - "collections.detail.accounts_heading": "Konti", "collections.detail.author_added_you_on_date": "{author} tilføjede dig {date}", "collections.detail.loading": "Indlæser samling…", "collections.detail.revoke_inclusion": "Fjern mig", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 0721a4bd74d93a..53e0105deafd6b 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -391,7 +391,6 @@ "collections.create_collection": "Sammlung erstellen", "collections.delete_collection": "Sammlung löschen", "collections.description_length_hint": "Maximal 100 Zeichen", - "collections.detail.accounts_heading": "Konten", "collections.detail.author_added_you_on_date": "{author} fügte dich am {date} hinzu", "collections.detail.loading": "Sammlung wird geladen …", "collections.detail.revoke_inclusion": "Mich entfernen", @@ -640,7 +639,7 @@ "empty_column.account_featured_self.no_collections_button": "Sammlung erstellen", "empty_column.account_featured_self.no_collections_hide_tab": "Diesen Tab ausblenden", "empty_column.account_featured_self.pre_collections": "Sammlungen sind bald verfügbar", - "empty_column.account_featured_self.pre_collections_desc": "Mit Sammlungen (ab Mastodon v4.6) kannst du eigene Liste kuratieren, um auf empfehlenswerte Profile hinzuweisen.", + "empty_column.account_featured_self.pre_collections_desc": "Mit Sammlungen (ab Mastodon v4.6) kannst du eigene Listen kuratieren, um auf empfehlenswerte Profile hinzuweisen.", "empty_column.account_featured_self.showcase_accounts": "Präsentiere deine liebsten Konten", "empty_column.account_featured_self.showcase_accounts_desc": "Sammlungen sind kuratierte Listen, die anderen helfen, mehr Konten im Fediverse zu entdecken.", "empty_column.account_featured_unknown.other": "Dieser Account hat noch nichts vorgestellt.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 00000819169c3d..cea0c1ce718a46 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -391,7 +391,6 @@ "collections.create_collection": "Δημιουργία συλλογής", "collections.delete_collection": "Διαγραφή συλλογής", "collections.description_length_hint": "Όριο 100 χαρακτήρων", - "collections.detail.accounts_heading": "Λογαριασμοί", "collections.detail.author_added_you_on_date": "Ο χρήστης {author} σας πρόσθεσε στις {date}", "collections.detail.loading": "Γίνεται φόρτωση της συλλογής…", "collections.detail.revoke_inclusion": "Αφαίρεσε με", @@ -964,16 +963,16 @@ "notification.moderation_warning.action_suspend": "Ο λογαριασμός σου έχει ανασταλεί.", "notification.own_poll": "Η δημοσκόπησή σου έληξε", "notification.poll": "Μία ψηφοφορία στην οποία συμμετείχες έχει τελειώσει", - "notification.quoted_update": "Ο χρήστης {name} επεξεργάστηκε μία ανάρτηση που παρέθεσες", + "notification.quoted_update": "{name} επεξεργάστηκε μία ανάρτηση που παρέθεσες", "notification.reblog": "Ο/Η {name} ενίσχυσε την ανάρτηση σου", "notification.reblog.name_and_others_with_link": "{name} και {count, plural, one {# ακόμα} other {# ακόμα}} ενίσχυσαν την ανάρτησή σου", - "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": "Χάθηκαν συνδέσεις με το {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.user_domain_block": "Έχεις αποκλείσει τον λογαριασμό {target}, αφαιρώντας {followersCount} από τους ακόλουθούς σου και {followingCount, plural, one {# λογαριασμό} other {# λογαριασμοί}} που ακολουθείς.", + "notification.relationships_severance_event.user_domain_block": "Έχεις αποκλείσει τον λογαριασμό {target}, αφαιρώντας {followersCount} από τους ακόλουθούς σου και {followingCount, plural, one {# λογαριασμό} other {# λογαριασμούς}} που ακολουθείς.", "notification.status": "Ο/Η {name} μόλις ανέρτησε κάτι", - "notification.update": "Ο/Η {name} επεξεργάστηκε μια ανάρτηση", + "notification.update": "{name} επεξεργάστηκε μια ανάρτηση", "notification_requests.accept": "Αποδοχή", "notification_requests.accept_multiple": "{count, plural, one {Αποδοχή # αιτήματος…} other {Αποδοχή # αιτημάτων…}}", "notification_requests.confirm_accept_multiple.button": "{count, plural, one {Αποδοχή αιτήματος} other {Αποδοχή αιτημάτων}}", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index e2f17d6775687e..0a3e18eea39e78 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -390,7 +390,6 @@ "collections.create_collection": "Create collection", "collections.delete_collection": "Delete collection", "collections.description_length_hint": "100 characters limit", - "collections.detail.accounts_heading": "Accounts", "collections.detail.author_added_you_on_date": "{author} added you on {date}", "collections.detail.loading": "Loading collection…", "collections.detail.revoke_inclusion": "Remove me", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 1a128ab72cf53c..e8619efe46fd91 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -391,7 +391,6 @@ "collections.create_collection": "Crear colección", "collections.delete_collection": "Eliminar colección", "collections.description_length_hint": "Límite de 100 caracteres", - "collections.detail.accounts_heading": "Cuentas", "collections.detail.author_added_you_on_date": "{author} te agregó el {date}", "collections.detail.loading": "Cargando colección…", "collections.detail.revoke_inclusion": "Quitarme", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d4c77a25cc1a08..2ce5593c79c0f3 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -131,6 +131,7 @@ "account.note.edit_button": "Editar", "account.note.title": "Nota personal (visible solo para ti)", "account.open_original_page": "Abrir página original", + "account.pending": "Pendiente", "account.posts": "Publicaciones", "account.remove_from_followers": "Eliminar {name} de tus seguidores", "account.report": "Denunciar a @{name}", @@ -390,7 +391,6 @@ "collections.create_collection": "Crear colección", "collections.delete_collection": "Eliminar colección", "collections.description_length_hint": "Limitado a 100 caracteres", - "collections.detail.accounts_heading": "Cuentas", "collections.detail.author_added_you_on_date": "{author} te agregó el {date}", "collections.detail.loading": "Cargando colección…", "collections.detail.revoke_inclusion": "Excluirme", @@ -404,6 +404,10 @@ "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} cuentas", "collections.last_updated_at": "Última actualización: {date}", + "collections.list.collections_with_count": "{count, plural,one {# Colección} other {# Colecciones}}", + "collections.list.created_by_author": "Creado por {name}", + "collections.list.created_by_you": "Creado por ti", + "collections.list.featuring_you": "Con tu partipación", "collections.manage_accounts": "Administrar cuentas", "collections.mark_as_sensitive": "Marcar como sensible", "collections.mark_as_sensitive_hint": "Oculta la descripción y las cuentas de la colección detrás de una advertencia de contenido. El nombre de la colección seguirá siendo visible.", @@ -411,6 +415,8 @@ "collections.maximum_collection_count_reached": "Has alcanzado el número máximo de colecciones", "collections.name_length_hint": "Limitado a 40 caracteres", "collections.new_collection": "Nueva colección", + "collections.pending_accounts.message": "Las cuentas pueden aparecer como pendientes cuando estamos esperando una respuesta del usuario o de su servidor. Solo tú puedes ver las cuentas pendientes.", + "collections.pending_accounts.title": "¿Por qué estoy viendo cuentas pendientes?", "collections.remove_account": "Eliminar", "collections.report_collection": "Reportar esta colección", "collections.revoke_collection_inclusion": "Excluirme de esta colección", @@ -456,6 +462,7 @@ "column.other_collections": "Colecciones de {name}", "column.pins": "Publicaciones fijadas", "column.public": "Cronología federada", + "column.your_collections": "Tus colecciones", "column_back_button.label": "Atrás", "column_header.hide_settings": "Ocultar configuración", "column_header.moveLeft_settings": "Mover columna a la izquierda", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 0a8933007c1b6c..c2766672f1a582 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -390,7 +390,6 @@ "collections.create_collection": "Crear colección", "collections.delete_collection": "Eliminar colección", "collections.description_length_hint": "Limitado a 100 caracteres", - "collections.detail.accounts_heading": "Cuentas", "collections.detail.author_added_you_on_date": "{author} te agregó el {date}", "collections.detail.loading": "Cargando colección…", "collections.detail.revoke_inclusion": "Sácame de aquí", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 01cd1cab98d4ee..27faa635ad59ad 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -391,7 +391,6 @@ "collections.create_collection": "Loo kogumik", "collections.delete_collection": "Kustuta kogumik", "collections.description_length_hint": "Kuni 100 tähemärki", - "collections.detail.accounts_heading": "Kontod", "collections.detail.author_added_you_on_date": "{author} lisas sind ajal {date}", "collections.detail.loading": "Kogumiku laadimine…", "collections.detail.revoke_inclusion": "Eemalda mind", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 1db5148791e49f..fb33c91a8dbeac 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -131,6 +131,7 @@ "account.note.edit_button": "Muokkaa", "account.note.title": "Henkilökohtainen muistiinpano (näkyy vain sinulle)", "account.open_original_page": "Avaa alkuperäinen sivu", + "account.pending": "Odottava", "account.posts": "Julkaisut", "account.remove_from_followers": "Poista {name} seuraajista", "account.report": "Raportoi @{name}", @@ -390,7 +391,6 @@ "collections.create_collection": "Luo kokoelma", "collections.delete_collection": "Poista kokoelma", "collections.description_length_hint": "100 merkin rajoitus", - "collections.detail.accounts_heading": "Tilit", "collections.detail.author_added_you_on_date": "{author} lisäsi sinut {date}", "collections.detail.loading": "Ladataan kokoelmaa…", "collections.detail.revoke_inclusion": "Poista minut", @@ -404,6 +404,10 @@ "collections.hidden_accounts_link": "{count, plural, one {# piilotettu tili} other {# piilotettua tiliä}}", "collections.hints.accounts_counter": "{count}/{max} tiliä", "collections.last_updated_at": "Päivitetty viimeksi {date}", + "collections.list.collections_with_count": "{count, plural, one {# kokoelma} other {# kokoelmaa}}", + "collections.list.created_by_author": "Luonut {name}", + "collections.list.created_by_you": "Itse luomasi", + "collections.list.featuring_you": "Esittelevät sinua", "collections.manage_accounts": "Hallitse tilejä", "collections.mark_as_sensitive": "Merkitse arkaluonteiseksi", "collections.mark_as_sensitive_hint": "Piilottaa kokoelman kuvauksen ja tilit sisältövaroituksen taakse. Kokoelman nimi jää esiin.", @@ -411,6 +415,8 @@ "collections.maximum_collection_count_reached": "Olet luonut enimmäismäärän kokoelmia", "collections.name_length_hint": "40 merkin rajoitus", "collections.new_collection": "Uusi kokoelma", + "collections.pending_accounts.message": "Tilit saattavat näkyä odottavina, kun odotetaan vastausta käyttäjältä tai hänen palvelimeltaan. Vain sinä voit nähdä odottavat tilit.", + "collections.pending_accounts.title": "Miksi näen odottavia tilejä?", "collections.remove_account": "Poista", "collections.report_collection": "Raportoi tämä kokoelma", "collections.revoke_collection_inclusion": "Poista itseni tästä kokoelmasta", @@ -456,6 +462,7 @@ "column.other_collections": "Käyttäjän {name} kokoelmat", "column.pins": "Kiinnitetyt julkaisut", "column.public": "Yleinen aikajana", + "column.your_collections": "Omat kokoelmat", "column_back_button.label": "Takaisin", "column_header.hide_settings": "Piilota asetukset", "column_header.moveLeft_settings": "Siirrä saraketta vasemmalle", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 660b61a5f1fff7..7da52f6c2bb4d5 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -291,7 +291,6 @@ "collections.create_collection": "Ger savn", "collections.delete_collection": "Strika savn", "collections.description_length_hint": "Í mesta lagi 100 tekn", - "collections.detail.accounts_heading": "Kontur", "collections.detail.loading": "Innlesi savn…", "collections.detail.share": "Deil hetta savnið", "collections.edit_details": "Rætta smálutir", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index bfcb84873d292e..10d172890f38b9 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -391,7 +391,6 @@ "collections.create_collection": "Créer une collection", "collections.delete_collection": "Supprimer la collection", "collections.description_length_hint": "Maximum 100 caractères", - "collections.detail.accounts_heading": "Comptes", "collections.detail.author_added_you_on_date": "{author} vous a ajouté·e le {date}", "collections.detail.loading": "Chargement de la collection…", "collections.detail.revoke_inclusion": "Me retirer", @@ -416,6 +415,8 @@ "collections.maximum_collection_count_reached": "Vous avez créé le nombre maximum de collections", "collections.name_length_hint": "Maximum 40 caractères", "collections.new_collection": "Nouvelle collection", + "collections.pending_accounts.message": "Des comptes peuvent apparaître en attente lorsque nous attendons une réponse de l'utilisateur·ice ou de son serveur. Les comptes en attente sont visibles uniquement pour vous.", + "collections.pending_accounts.title": "Pourquoi est-ce que je vois des comptes en attente ?", "collections.remove_account": "Supprimer", "collections.report_collection": "Signaler cette collection", "collections.revoke_collection_inclusion": "Me retirer de cette collection", @@ -858,13 +859,13 @@ "lists.add_to_list": "Ajouter à la liste", "lists.add_to_lists": "Ajouter {name} aux listes", "lists.create": "Créer", - "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil", + "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre fil d'actualité", "lists.create_list": "Créer une liste", "lists.delete": "Supprimer la liste", "lists.done": "Terminé", "lists.edit": "Modifier la liste", - "lists.exclusive": "Cacher les membres de la page d'accueil", - "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", + "lists.exclusive": "Cacher les membres du fil d'actualité", + "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil d'actualité pour éviter de voir leurs messages deux fois.", "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", "lists.list_members_count": "{count, plural, one {# membre} other {# membres}}", "lists.list_name": "Nom de la liste", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index e61ec97fbbbf44..056be2b6f7d9b4 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -391,7 +391,6 @@ "collections.create_collection": "Créer une collection", "collections.delete_collection": "Supprimer la collection", "collections.description_length_hint": "Maximum 100 caractères", - "collections.detail.accounts_heading": "Comptes", "collections.detail.author_added_you_on_date": "{author} vous a ajouté·e le {date}", "collections.detail.loading": "Chargement de la collection…", "collections.detail.revoke_inclusion": "Me retirer", @@ -416,6 +415,8 @@ "collections.maximum_collection_count_reached": "Vous avez créé le nombre maximum de collections", "collections.name_length_hint": "Maximum 40 caractères", "collections.new_collection": "Nouvelle collection", + "collections.pending_accounts.message": "Des comptes peuvent apparaître en attente lorsque nous attendons une réponse de l'utilisateur·ice ou de son serveur. Les comptes en attente sont visibles uniquement pour vous.", + "collections.pending_accounts.title": "Pourquoi est-ce que je vois des comptes en attente ?", "collections.remove_account": "Supprimer", "collections.report_collection": "Signaler cette collection", "collections.revoke_collection_inclusion": "Me retirer de cette collection", @@ -858,13 +859,13 @@ "lists.add_to_list": "Ajouter à la liste", "lists.add_to_lists": "Ajouter {name} aux listes", "lists.create": "Créer", - "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre Page d'accueil", + "lists.create_a_list_to_organize": "Créer une nouvelle liste pour organiser votre fil d'actualité", "lists.create_list": "Créer une liste", "lists.delete": "Supprimer la liste", "lists.done": "Terminé", "lists.edit": "Modifier la liste", - "lists.exclusive": "Cacher les membres de la page d'accueil", - "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil pour éviter de voir leurs messages deux fois.", + "lists.exclusive": "Cacher les membres du fil d'actualité", + "lists.exclusive_hint": "Si quelqu'un est dans cette liste, les cacher dans votre fil d'actualité pour éviter de voir leurs messages deux fois.", "lists.find_users_to_add": "Trouver des utilisateurs à ajouter", "lists.list_members_count": "{count, plural, one {# membre} other {# membres}}", "lists.list_name": "Nom de la liste", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 752cb9c34f219f..ee569593b3bd79 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -391,7 +391,6 @@ "collections.create_collection": "Cruthaigh bailiúchán", "collections.delete_collection": "Scrios bailiúchán", "collections.description_length_hint": "Teorainn 100 carachtar", - "collections.detail.accounts_heading": "Cuntais", "collections.detail.author_added_you_on_date": "Chuir {author} leis thú ar {date}", "collections.detail.loading": "Ag lódáil an bhailiúcháin…", "collections.detail.revoke_inclusion": "Bain mé", @@ -416,6 +415,8 @@ "collections.maximum_collection_count_reached": "Tá an líon uasta bailiúcháin cruthaithe agat", "collections.name_length_hint": "Teorainn 40 carachtar", "collections.new_collection": "Bailiúchán nua", + "collections.pending_accounts.message": "Seans go bhfeicfear cuntais mar atá ar feitheamh agus muid ag fanacht ar fhreagra ón úsáideoir nó ón bhfreastalaí. Ní féidir ach leatsa cuntais atá ar feitheamh a fheiceáil.", + "collections.pending_accounts.title": "Cén fáth a bhfuil cuntais ar feitheamh á bhfaca mé?", "collections.remove_account": "Bain", "collections.report_collection": "Tuairiscigh an bailiúchán seo", "collections.revoke_collection_inclusion": "Bain mé féin as an mbailiúchán seo", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 8af4983b44c721..ff41be72e70f53 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -372,7 +372,6 @@ "collections.create_collection": "Cruthaich cruinneachadh", "collections.delete_collection": "Sguab an cruinneachadh às", "collections.description_length_hint": "Crìoch de 100 caractar", - "collections.detail.accounts_heading": "Cunntasan", "collections.detail.author_added_you_on_date": "Chuir {author} ris thu {date}", "collections.detail.loading": "A’ luchdadh a’ chruinneachaidh…", "collections.detail.revoke_inclusion": "Thoir air falbh mi", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 079955e8a55cfd..a0c35926c1b5ab 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -391,7 +391,6 @@ "collections.create_collection": "Crear colección", "collections.delete_collection": "Eliminar colección", "collections.description_length_hint": "Límite de 100 caracteres", - "collections.detail.accounts_heading": "Contas", "collections.detail.author_added_you_on_date": "{author} engadiute o {date}", "collections.detail.loading": "Cargando colección…", "collections.detail.revoke_inclusion": "Quítame de aí", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index d6156c6cfcb21f..364d7d8a19d77a 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -131,6 +131,7 @@ "account.note.edit_button": "עריכה", "account.note.title": "הערה פרטית (זמין רק לך)", "account.open_original_page": "לפתיחת העמוד המקורי", + "account.pending": "בהמתנה", "account.posts": "פוסטים", "account.remove_from_followers": "הסרת {name} מעוקבי", "account.report": "דווח על @{name}", @@ -390,7 +391,6 @@ "collections.create_collection": "יצירת אוסף", "collections.delete_collection": "מחיקת האוסף", "collections.description_length_hint": "מגבלה של 100 תווים", - "collections.detail.accounts_heading": "חשבונות", "collections.detail.author_added_you_on_date": "{author} הוסיפו אותך בתאריך {date}", "collections.detail.loading": "טוען אוסף…", "collections.detail.revoke_inclusion": "הסירוני", @@ -404,6 +404,10 @@ "collections.hidden_accounts_link": "{count, plural, one {חשבון מוסתר אחד} other {# חשבונות מוסתרים}}", "collections.hints.accounts_counter": "{count} \\ {max} חשבונות", "collections.last_updated_at": "עדכון אחרון: {date}", + "collections.list.collections_with_count": "{count, plural, one {אוסף אחד} other {# אוספים}}", + "collections.list.created_by_author": "נוצר בידי {name}", + "collections.list.created_by_you": "נוצר על ידיך", + "collections.list.featuring_you": "כולל אותך", "collections.manage_accounts": "ניהול חשבונות", "collections.mark_as_sensitive": "מסומנים כרגישים", "collections.mark_as_sensitive_hint": "הסתרת תיאור וחשבונות האוסף מאחורי אזהרת תוכן. שם האוסף עדיין ישאר גלוי.", @@ -411,6 +415,8 @@ "collections.maximum_collection_count_reached": "יצרת את מספר האוספים המירבי", "collections.name_length_hint": "מגבלה של 40 תווים", "collections.new_collection": "אוסף חדש", + "collections.pending_accounts.message": "חשבונות יסומנו כממתינים כאשר מחכים לתגובה מהמשתמשים בשרת שלהם. רק אתם יכולים לראות חשבונות בהמתנה לאישור.", + "collections.pending_accounts.title": "מדוע אני רואה חשבונות ממתינים לאישור?", "collections.remove_account": "הסרה", "collections.report_collection": "דיווח על אוסף זה", "collections.revoke_collection_inclusion": "הסירוני מאוסף זה", @@ -456,6 +462,7 @@ "column.other_collections": "אוספים מאת {name}", "column.pins": "חיצרוצים נעוצים", "column.public": "פיד כללי (כל השרתים)", + "column.your_collections": "האוספים שלך", "column_back_button.label": "בחזרה", "column_header.hide_settings": "הסתרת הגדרות", "column_header.moveLeft_settings": "הזזת טור לשמאל", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 09be94672c1a2c..2f9ca59ce57478 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -390,7 +390,6 @@ "collections.create_collection": "Gyűjtemény létrehozása", "collections.delete_collection": "Gyűjtemény törlése", "collections.description_length_hint": "100 karakteres korlát", - "collections.detail.accounts_heading": "Fiókok", "collections.detail.author_added_you_on_date": "{author} hozzáadott ekkor: {date}", "collections.detail.loading": "Gyűjtemény betöltése…", "collections.detail.revoke_inclusion": "Saját magam eltávolítása", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index e6274563c6759b..16c5d4c584888f 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -391,7 +391,6 @@ "collections.create_collection": "Búa til safn", "collections.delete_collection": "Eyða safni", "collections.description_length_hint": "100 stafa takmörk", - "collections.detail.accounts_heading": "Aðgangar", "collections.detail.author_added_you_on_date": "{author} bætti þér við þann {date}", "collections.detail.loading": "Hleð inn safni…", "collections.detail.revoke_inclusion": "Fjarlægja mig", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index b9bb6f2685a1e8..b415981c2d6ef6 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -391,7 +391,6 @@ "collections.create_collection": "Crea la collezione", "collections.delete_collection": "Cancella la collezione", "collections.description_length_hint": "Limite di 100 caratteri", - "collections.detail.accounts_heading": "Account", "collections.detail.author_added_you_on_date": "{author} ti ha aggiunto/a in data: {date}", "collections.detail.loading": "Caricamento della collezione…", "collections.detail.revoke_inclusion": "Rimuovimi", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index b22488e8f364a4..18e6d09a8c3c92 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -206,7 +206,6 @@ "collections.create_collection": "コレクションを作成", "collections.delete_collection": "コレクションを削除", "collections.description_length_hint": "100 文字まで", - "collections.detail.accounts_heading": "アカウント", "collections.detail.author_added_you_on_date": "{author} があなたを {date} に追加しました", "collections.detail.loading": "コレクションを読み込み中…", "collections.detail.share": "コレクションを共有", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index ef3e2d0fa3e72d..f775d2ff9a1ca7 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -255,7 +255,6 @@ "collections.create_collection": "Snulfu-d talkensit", "collections.delete_collection": "Kkes talkensit", "collections.description_length_hint": "talast n 100 n yisekkilen", - "collections.detail.accounts_heading": "Imiḍanen", "collections.detail.author_added_you_on_date": "{author} yerna-k·em ass n {date}", "collections.detail.loading": "Aɛebbi n telkensit…", "collections.detail.revoke_inclusion": "Kkes-iyi", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index a14b19d83730ac..eb81c301335e34 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -390,7 +390,6 @@ "collections.create_collection": "建立收藏", "collections.delete_collection": "Thâi掉收藏", "collections.description_length_hint": "限制 100 字", - "collections.detail.accounts_heading": "口座", "collections.detail.author_added_you_on_date": "{author} 佇 {date} kā lí加入", "collections.detail.loading": "載入收藏……", "collections.detail.revoke_inclusion": "Kā我suá掉", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index a5f264306b4e92..a79684a31ccf5b 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -391,7 +391,6 @@ "collections.create_collection": "Verzameling aanmaken", "collections.delete_collection": "Verzameling verwijderen", "collections.description_length_hint": "Maximaal 100 karakters", - "collections.detail.accounts_heading": "Accounts", "collections.detail.author_added_you_on_date": "{author} heeft je op {date} toegevoegd", "collections.detail.loading": "Verzameling laden…", "collections.detail.revoke_inclusion": "Verwijder mij", @@ -968,7 +967,7 @@ "notification.reblog": "{name} boostte jouw bericht", "notification.reblog.name_and_others_with_link": "{name} en {count, plural, one {# ander persoon} other {# andere personen}} hebben jouw bericht geboost", "notification.relationships_severance_event": "Verloren verbindingen met {name}", - "notification.relationships_severance_event.account_suspension": "Een beheerder van {from} heeft {target} geschorst, wat betekent dat je geen updates meer van hen kunt ontvangen of met hen kunt communiceren.", + "notification.relationships_severance_event.account_suspension": "Een beheerder van {from} heeft {target} geschorst, wat betekent dat je geen updates meer van deze gebruiker kunt ontvangen of met deze gebruiker kunt communiceren.", "notification.relationships_severance_event.domain_block": "Een beheerder van {from} heeft {target} geblokkeerd, inclusief {followersCount} van jouw volgers en {followingCount, plural, one {# account} other {# accounts}} die je volgt.", "notification.relationships_severance_event.learn_more": "Meer informatie", "notification.relationships_severance_event.user_domain_block": "Je hebt {target} geblokkeerd, waarmee je {followersCount} van je volgers en {followingCount, plural, one {# account} other {# accounts}} die je volgt, bent verloren.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 44e0d5bbde41fa..f3f8c415df0a1d 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -372,7 +372,6 @@ "collections.create_collection": "Lag ei samling", "collections.delete_collection": "Slett samlinga", "collections.description_length_hint": "Maks 100 teikn", - "collections.detail.accounts_heading": "Kontoar", "collections.detail.author_added_you_on_date": "{author} la deg til {date}", "collections.detail.loading": "Lastar inn samling…", "collections.detail.revoke_inclusion": "Fjern meg", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 2376955f72e189..0dc511b80c7cdb 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -390,7 +390,6 @@ "collections.create_collection": "Criar coleção", "collections.delete_collection": "Eliminar coleção", "collections.description_length_hint": "Limite de 100 caracteres", - "collections.detail.accounts_heading": "Contas", "collections.detail.author_added_you_on_date": "{author} te adicionou em {date}", "collections.detail.loading": "Carregando coleção…", "collections.detail.revoke_inclusion": "Remover-me", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 5c992cbcbb0fc2..2962359da22f6b 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -380,7 +380,6 @@ "collections.create_collection": "Criar coleção", "collections.delete_collection": "Eliminar coleção", "collections.description_length_hint": "Limite de 100 caracteres", - "collections.detail.accounts_heading": "Contas", "collections.detail.author_added_you_on_date": "{author} adicionou-o em {date}", "collections.detail.loading": "A carregar a coleção…", "collections.detail.revoke_inclusion": "Remover-me", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index c78429d240df2f..880935504a228d 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -346,7 +346,6 @@ "collections.create_collection": "Создать подборку", "collections.delete_collection": "Удалить подборку", "collections.description_length_hint": "Не более 100 символов", - "collections.detail.accounts_heading": "Аккаунты", "collections.detail.author_added_you_on_date": "{author} добавил(а) вас {date}", "collections.detail.sensitive_content": "Чувствительный контент", "collections.edit_details": "Изменить параметры", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index a6459aedccd79a..e7017f1d461a77 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -386,7 +386,6 @@ "collections.create_collection": "Krijoni koleksion", "collections.delete_collection": "Fshije koleksionin", "collections.description_length_hint": "Kufi prej 100 shenjash", - "collections.detail.accounts_heading": "Llogari", "collections.detail.author_added_you_on_date": "{author} ju shtoi më {date}", "collections.detail.loading": "Po ngarkohet koleksion…", "collections.detail.revoke_inclusion": "Hiqmëni", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index d1ca2f61c3d848..3e2c3ed69ce8ea 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -390,7 +390,6 @@ "collections.create_collection": "Skapa samling", "collections.delete_collection": "Radera samling", "collections.description_length_hint": "Begränsat till 100 tecken", - "collections.detail.accounts_heading": "Konton", "collections.detail.author_added_you_on_date": "{author} lade till dig {date}", "collections.detail.loading": "Laddar samling…", "collections.detail.revoke_inclusion": "Ta bort mig", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 3778252f4afad5..08c777ff9911dc 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -131,6 +131,7 @@ "account.note.edit_button": "Düzenle", "account.note.title": "Kişisel not (sadece siz görüntüleyebilirsiniz)", "account.open_original_page": "Asıl sayfayı aç", + "account.pending": "Beklemede", "account.posts": "Gönderiler", "account.remove_from_followers": "{name} takipçilerinden kaldır", "account.report": "@{name} adlı kişiyi bildir", @@ -390,7 +391,6 @@ "collections.create_collection": "Koleksiyon oluştur", "collections.delete_collection": "Koleksiyonu sil", "collections.description_length_hint": "100 karakterle sınırlı", - "collections.detail.accounts_heading": "Hesaplar", "collections.detail.author_added_you_on_date": "{author}, sizi {date} tarihinde ekledi", "collections.detail.loading": "Koleksiyon yükleniyor…", "collections.detail.revoke_inclusion": "Beni çıkar", @@ -415,6 +415,8 @@ "collections.maximum_collection_count_reached": "Maksimum koleksiyon sayısına ulaştınız", "collections.name_length_hint": "40 karakterle sınırlı", "collections.new_collection": "Yeni koleksiyon", + "collections.pending_accounts.message": "Kullanıcıdan veya sunucusundan yanıt beklediğimizde hesaplar \"beklemede\" olarak görünebilir. Beklemede olan hesapları yalnızca siz görebilirsiniz.", + "collections.pending_accounts.title": "Neden beklemede olan hesapları görüyorum?", "collections.remove_account": "Kaldır", "collections.report_collection": "Bu koleksiyonu bildir", "collections.revoke_collection_inclusion": "Beni bu koleksiyondan çıkar", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index f643718e5e680c..a4548ba1d93179 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -189,7 +189,6 @@ "closed_registrations_modal.find_another_server": "Знайти інший сервер", "closed_registrations_modal.preamble": "Mastodon децентралізований, тож незалежно від того, де ви створюєте свій обліковий запис, ви зможете слідкувати та взаємодіяти з будь-ким на цьому сервері. Ви навіть можете розмістити його самостійно!", "closed_registrations_modal.title": "Реєстрація на Mastodon", - "collections.detail.accounts_heading": "Облікові записи", "collections.edit_details": "Редагувати подробиці", "column.about": "Про застосунок", "column.blocks": "Заблоковані користувачі", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index 1c8351b273d116..bc328d410c988d 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -391,7 +391,6 @@ "collections.create_collection": "Tạo gói khởi đầu", "collections.delete_collection": "Xóa gói khởi đầu", "collections.description_length_hint": "Giới hạn 100 ký tự", - "collections.detail.accounts_heading": "Tài khoản", "collections.detail.author_added_you_on_date": "{author} đã thêm bạn vào {date}", "collections.detail.loading": "Đang tải gói khởi đầu…", "collections.detail.revoke_inclusion": "Xóa tôi", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 870f6ad1ee0988..9888349380dc3e 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -391,7 +391,6 @@ "collections.create_collection": "创建收藏列表", "collections.delete_collection": "删除收藏列表", "collections.description_length_hint": "100字限制", - "collections.detail.accounts_heading": "账号", "collections.detail.author_added_you_on_date": "{author} 于 {date} 将你加入", "collections.detail.loading": "正在加载收藏列表…", "collections.detail.revoke_inclusion": "移除我", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index faf6ab8d7c6d2e..25dd456e8e46c4 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -391,7 +391,6 @@ "collections.create_collection": "建立收藏名單", "collections.delete_collection": "刪除收藏名單", "collections.description_length_hint": "100 字限制", - "collections.detail.accounts_heading": "帳號", "collections.detail.author_added_you_on_date": "{author} 於 {date} 將您加入", "collections.detail.loading": "讀取收藏名單中...", "collections.detail.revoke_inclusion": "移除我", diff --git a/config/locales/da.yml b/config/locales/da.yml index b26cce9c12acad..8a0c8cc9f98532 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1731,6 +1731,27 @@ da: copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:' navigation: toggle_menu: Åbn/luk menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} tilføjede dig til en samling" + admin_report: + title_html: "%{name} anmeldte %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} og en anden tilmeldte sig" + other: "%{name} og %{count} andre tilmeldte sig" + title_html: "%{name} tilmeldte sig" + collection_update: + title_html: "%{name} opdaterede en samling, du er med i" + generic: + sign_in: Log ind på Mastodon web-appen + summary_html: Du er på en app, der ikke understøtter den seneste version af Mastodon. %link for fuld funktionalitet. + moderation_warning: + summary_html: Du er på en app, der ikke understøtter den seneste version af Mastodon. %link + title: Du har modtaget en moderationsadvarsel. + severed_relationships: + summary_html: En administrator fra %{from} har suspenderet %{target}, hvilket betyder, at du ikke længere kan modtage opdateringer fra dem eller interagere med dem. %{link} for at hente en liste over de tabte forhold. + title: Mistede forbindelser med %{name} notification_mailer: admin: report: diff --git a/config/locales/de.yml b/config/locales/de.yml index 8873ea820ce6a6..f6775491d090e5 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1731,6 +1731,24 @@ de: copy_account_note_text: 'Dieses Konto ist von %{acct} umgezogen. Hier deine damals verfassten Notizen zum Profil:' navigation: toggle_menu: Menü ein-/ausblenden + notification_fallbacks: + added_to_collection: + title_html: "%{name} fügte dich zu einer Sammlung hinzu" + admin_report: + title_html: "%{name} meldete %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} und noch jemand anderes registrierten sich" + other: "%{name} und %{count} weitere registrierten sich" + title_html: "%{name} registrierte sich" + collection_update: + title_html: "%{name} aktualisierte eine Sammlung, in der du vorgestellt wirst" + generic: + sign_in: In der Mastodon-Web-App anmelden + summary_html: Du verwendest eine App, die noch nicht die aktuellste Version von Mastodon unterstützt. %link für vollständige Funktionalität. + moderation_warning: + summary_html: Du verwendest eine App, die noch nicht die aktuellste Version von Mastodon unterstützt. %link + title: Die Moderator*innen haben dich verwarnt. notification_mailer: admin: report: diff --git a/config/locales/el.yml b/config/locales/el.yml index ab9434bc6b0f43..514f713081a551 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1731,6 +1731,27 @@ el: copy_account_note_text: 'Ο χρήστης μετακόμισε από τον %{acct}, ορίστε οι προηγούμενες σημειώσεις σου για εκείνον:' navigation: toggle_menu: Εμφάνιση/Απόκρυψη μενού + notification_fallbacks: + added_to_collection: + title_html: "%{name} σας πρόσθεσε σε μια συλλογή" + admin_report: + title_html: Ο/Η %{name} ανέφερε τον/την %{target} + admin_sign_up: + title_and_others_html: + one: Ο/Η %{name} και ένας ακόμα έχουν εγγραφεί + other: Ο/Η %{name} και %{count} ακόμα έχουν εγγραφεί + title_html: Ο/Η %{name} έχει εγγραφεί + collection_update: + title_html: "%{name} ενημέρωσε μια συλλογή στην οποία περιλαμβάνεσαι" + generic: + sign_in: Συνδεθείτε στην εφαρμογή ιστού Mastodon + summary_html: Είστε σε μια εφαρμογή που δεν υποστηρίζει την πιο πρόσφατη έκδοση του Mastodon. %link για πλήρη λειτουργικότητα. + moderation_warning: + summary_html: Είστε σε μια εφαρμογή που δεν υποστηρίζει την πιο πρόσφατη έκδοση του Mastodon. %link + title: Έχετε λάβει μία προειδοποίηση συντονισμού. + severed_relationships: + summary_html: Ένας διαχειριστής από το %{from} έχει αναστείλει το %{target}, το οποίο σημαίνει ότι δεν μπορείς πλέον να λαμβάνεις ενημερώσεις από αυτούς ή να αλληλεπιδράς μαζί τους. %{link} για να λάβετε μια λίστα με τις χαμένες σχέσεις. + title: Χαμένες συνδέσεις με το %{name} notification_mailer: admin: report: @@ -1764,7 +1785,7 @@ el: subject: Ο/Η %{name} έκανε παράθεση της ανάρτησής σου title: Νέα παράθεση quoted_update: - subject: Ο/Η %{name} επεξεργάστηκε μία ανάρτηση που παρέθεσες + subject: "%{name} επεξεργάστηκε μία ανάρτηση που παρέθεσες" reblog: body: 'Η ανάρτησή σου ενισχύθηκε από %{name}:' subject: Ο/Η %{name} ενίσχυσε την ανάρτηση σου @@ -1955,7 +1976,7 @@ el: event_type: account_suspension: Αναστολή λογαριασμού (%{target_name}) domain_block: Αναστολή διακομιστή (%{target_name}) - user_domain_block: Απέκλεισες τον χρήστη %{target_name} + user_domain_block: Απέκλεισες το %{target_name} lost_followers: Χαμένοι ακόλουθοι lost_follows: Χαμένες ακολουθήσεις preamble: Μπορεί να χάσεις ακολουθήσεις και ακόλουθους όταν αποκλείεις έναν τομέα ή όταν οι συντονιστές σου αποφασίζουν να αναστείλουν έναν απομακρυσμένο διακομιστή. Όταν συμβεί αυτό, θα είσαι σε θέση να κατεβάσεις λίστες των αποκομμένων σχέσεων, για να επιθεωρηθούν και ενδεχομένως να εισαχθούν σε άλλον διακομιστή. diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 2b4900848f4713..edcdb118745f76 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1731,6 +1731,27 @@ es-AR: copy_account_note_text: 'Este usuario se mudó desde %{acct}, acá están tus notas previas sobre él/ella:' navigation: toggle_menu: Cambiar menú + notification_fallbacks: + added_to_collection: + title_html: "%{name} te agregó a una colección" + admin_report: + title_html: "%{name} denunció a %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} y alguien más se registraron" + other: "%{name} y otras %{count} cuentas más se registraron" + title_html: Se registró %{name} + collection_update: + title_html: "%{name} editó una colección en la que estás" + generic: + sign_in: Iniciar sesión en la aplicación web de Mastodon + summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %link para una funcionalidad completa. + moderation_warning: + summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %link + title: Recibiste una advertencia de moderación. + severed_relationships: + summary_html: Un administrador de %{from} suspendió %{target}, lo que significa que ya no podés recibir actualizaciones de ellos o interactuar con ellos. %{link} para recuperar una lista de las relaciones perdidas. + title: Conexiones perdidas con %{name} notification_mailer: admin: report: diff --git a/config/locales/et.yml b/config/locales/et.yml index 21e7de44ba5b37..45fbe7629d2e49 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -1731,6 +1731,18 @@ et: copy_account_note_text: 'Kasutaja kolis kontolt %{acct}, kus olid eelnevad märkmed tema kohta:' navigation: toggle_menu: Menüü lülimine + notification_fallbacks: + added_to_collection: + title_html: "%{name} lisas sind kogumikku" + admin_report: + title_html: "%{name} rapor %{target} kohta" + admin_sign_up: + title_and_others_html: + one: "%{name} ja veel üks registreerus" + other: "%{name} ja veel %{count} registreerus" + title_html: "%{name} registreerus" + collection_update: + title_html: "%{name} uuendas kogumikku, kuhu kuulud" notification_mailer: admin: report: diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 1ab60ce642f53e..f36f0af02b0a92 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1731,6 +1731,24 @@ fi: copy_account_note_text: 'Tämä käyttäjä siirtyi tililtä %{acct}. Nämä olivat muistiinpanosi hänestä:' navigation: toggle_menu: Avaa/sulje valikko + notification_fallbacks: + added_to_collection: + title_html: "%{name} lisäsi sinut kokoelmaan" + admin_report: + title_html: "%{name} raportoi käyttäjän %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} ja 1 muu rekisteröityivät" + other: "%{name} ja %{count} muuta rekisteröityivät" + title_html: "%{name} rekisteröityi" + collection_update: + title_html: "%{name} päivitti kokoelman, jossa olet" + generic: + sign_in: Rekisteröidy Mastodonin selainsovelluksessa + summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %link täyden toiminnallisuuden mahdollistamiseksi. + moderation_warning: + summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %link + title: Olet saanut moderointivaroituksen. notification_mailer: admin: report: diff --git a/config/locales/ga.yml b/config/locales/ga.yml index f530105c4ba5e6..0abd6fdda43f0d 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1859,6 +1859,30 @@ ga: copy_account_note_text: 'Bhog an úsáideoir seo ó %{acct}, seo do nótaí roimhe seo fúthu:' navigation: toggle_menu: Scoránaigh roghchlár + notification_fallbacks: + added_to_collection: + title_html: Chuir %{name} le bailiúchán thú + admin_report: + title_html: Thuairiscigh %{name} %{target} + admin_sign_up: + title_and_others_html: + few: Chláraigh %{name} agus %{count} eile + many: Chláraigh %{name} agus %{count} eile + one: Chláraigh %{name} agus duine amháin eile + other: Chláraigh %{name} agus %{count} eile + two: Chláraigh %{name} agus %{count} eile + title_html: Chláraigh %{name} + collection_update: + title_html: Nuashonraigh %{name} bailiúchán ina bhfuil tú + generic: + sign_in: Sínigh isteach ar an app gréasáin Mastodon + summary_html: Tá tú ar aip nach dtacaíonn leis an leagan is déanaí de Mastodon. %link le haghaidh feidhmiúlacht iomlán. + moderation_warning: + summary_html: Tá tú ar aip nach dtacaíonn leis an leagan is déanaí de Mastodon. %link + title: Tá rabhadh modhnóireachta faighte agat. + severed_relationships: + summary_html: Chuir riarthóir ó %{from} %{target} ar fionraí, rud a chiallaíonn nach féidir leat nuashonruithe a fháil uathu nó idirghníomhú leo a thuilleadh. %{link} chun liosta de na gaolta caillte a fháil. + title: Caillte ceangail le %{name} notification_mailer: admin: report: diff --git a/config/locales/is.yml b/config/locales/is.yml index ec09080cc3d0c8..ec1628c6fe2d06 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1735,6 +1735,27 @@ is: copy_account_note_text: 'Þessi notandi fluttist frá %{acct}, hér eru fyrri minnispunktar þínir um hann:' navigation: toggle_menu: Víxla valmynd af/á + notification_fallbacks: + added_to_collection: + title_html: "%{name} bætti þér í safn" + admin_report: + title_html: "%{name} kærði %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} og einn í viðbót skráðu sig" + other: "%{name} og %{count} í viðbót skráðu sig" + title_html: "%{name} nýskráði sig" + collection_update: + title_html: "%{name} uppfærði safn sem þú ert í" + generic: + sign_in: Skráðu þig inn á Mastodon-vefforritið + summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %link til að fá alla eiginleikana. + moderation_warning: + summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %link + title: Þú hefur fengið aðvörun frá umsjónarmanni. + severed_relationships: + summary_html: Stjórnandi á %{from} hefur sett %{target} í frysti, sem þýðir að þú getur ekki lengur fengið upplýsingar frá eða átt í samskiptum við viðkomandi. %{link} til að ná í lista yfir þau tengsl sem hafa rofnað. + title: Missti tengingar við %{name} notification_mailer: admin: report: diff --git a/config/locales/it.yml b/config/locales/it.yml index b9c26de4f53dc6..8a40842dada1b3 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1731,6 +1731,26 @@ it: copy_account_note_text: 'Questo utente si è spostato da %{acct}, ecco le tue note precedenti su di loro:' navigation: toggle_menu: Cambia menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} ti ha aggiunto/a a una collezione" + admin_report: + title_html: "%{name} ha segnalato %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} e un altro si sono iscritti" + other: "%{name} e altri %{count} si sono iscritti" + title_html: "%{name} si è iscritto/a" + collection_update: + title_html: "%{name} ha aggiornato una collezione in cui sei presente" + generic: + sign_in: Accedi alla web app Mastodon + summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %link per la piena funzionalità. + moderation_warning: + summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %link + title: Hai ricevuto un avviso di moderazione. + severed_relationships: + title: Connessioni perse con %{name} notification_mailer: admin: report: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 02bbc49a08cc45..17c40e7f4f91b6 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1731,6 +1731,27 @@ nl: copy_account_note_text: 'Deze gebruiker is verhuisd vanaf %{acct}. Je hebt de volgende opmerkingen over dat account gemaakt:' navigation: toggle_menu: Menu tonen/verbergen + notification_fallbacks: + added_to_collection: + title_html: "%{name} heeft jou aan een verzameling toegevoegd" + admin_report: + title_html: "%{name} rapporteerde %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} en één ander hebben zich geregistreerd" + other: "%{name} en %{count} anderen hebben zich geregistreerd" + title_html: "%{name} heeft zich geregistreerd" + collection_update: + title_html: "%{name} werkte een verzameling bij waar jij in zit" + generic: + sign_in: In de Mastodon web-app inloggen + summary_html: Je gebruikt een app die de meest recente versie van Mastodon niet ondersteunt. Ga naar %link voor de volledige functionaliteit. + moderation_warning: + summary_html: Je gebruikt een app die de meest recente versie van Mastodon niet ondersteunt. %link + title: Je hebt een moderatie-waarschuwing ontvangen. + severed_relationships: + summary_html: Een beheerder van %{from} heeft %{target} geschorst, wat betekent dat je geen updates meer van deze gebruiker kunt ontvangen of met deze gebruiker kunt communiceren. Ga naar %{link} voor een overzicht van verloren verbindingen. + title: Verloren verbindingen met %{name} notification_mailer: admin: report: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 2a734d28759971..5803aab0a526ea 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1716,6 +1716,27 @@ sq: copy_account_note_text: 'Ky përdorues ka ikur prej %{acct}, ja ku janë shënimet tuaja të mëparshme mbi të:' navigation: toggle_menu: Shfaq/Fshih menunë + notification_fallbacks: + added_to_collection: + title_html: "%{name} ju shtoi te një koleksion" + admin_report: + title_html: "%{name} raportoi %{target}" + admin_sign_up: + title_and_others_html: + one: U regjistrua %{name} dhe një tjetër + other: U regjistruan %{name} dhe %{count} të tjerë + title_html: U regjistrua %{name} + collection_update: + title_html: "%{name} përditësoi një koleksion në të cilin gjendeni" + generic: + sign_in: Bëni hyrjen te aplikacioni web Mastodon + summary_html: Gjendeni në një aplikacion i cili s’mbulon versionin më të ri të Mastodon-it. %link për funksionim të plotë. + moderation_warning: + summary_html: Gjendeni në një aplikacion i cili s’mbulon versionin më të ri të Mastodon-it. %link + title: Keni marrë një sinjalizim moderimi. + severed_relationships: + summary_html: Një përgjegjës prej %{from} ka pezulluar %{target}, që do të thotë se s’mund të merrni më përditësime prej tij, apo të ndërveproni me të. %{link} që të merrni një listë të marrëdhënieve të humbura. + title: U humbën lidhje me %{name} notification_mailer: admin: report: diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index daa3d4597b5c1a..50ded2f32b30e6 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1691,6 +1691,11 @@ zh-TW: copy_account_note_text: 此使用者轉移自 %{acct},以下是您之前關於他們的備註: navigation: toggle_menu: 切換選單 + notification_fallbacks: + added_to_collection: + title_html: "%{name} 將您加入至收藏名單" + admin_report: + title_html: "%{name} 已檢舉 %{target}" notification_mailer: admin: report: From 1df259f8c92927b838799dea0910678706b612e1 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 30 Apr 2026 11:18:32 +0200 Subject: [PATCH 313/335] Fix translation string of some fallback notifications (#38860) --- config/locales/en.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 7904388db38675..176017f5324672 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1745,9 +1745,9 @@ en: title_html: "%{name} updated a collection you are in" generic: sign_in: Sign in to the Mastodon web app - summary_html: You're on an app that does not support the most recent version of Mastodon. %link for full functionality. + summary_html: You're on an app that does not support the most recent version of Mastodon. %{link} for full functionality. moderation_warning: - summary_html: You're on an app that does not support the most recent version of Mastodon. %link + summary_html: You're on an app that does not support the most recent version of Mastodon. %{link}. title: You have received a moderation warning. severed_relationships: summary_html: An admin from %{from} has suspended %{target}, which means you can no longer receive updates from them or interact with them. %{link} to retrieve a list of the lost relationships. From 6dbad32d655561d12af6b64e6a5d43337a4d3ac7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:21:23 +0000 Subject: [PATCH 314/335] Update actions/setup-node digest to 48b55a0 (#38483) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/actions/setup-javascript/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup-javascript/action.yml b/.github/actions/setup-javascript/action.yml index f326d0dee415fa..03f5c1b2547ed7 100644 --- a/.github/actions/setup-javascript/action.yml +++ b/.github/actions/setup-javascript/action.yml @@ -9,7 +9,7 @@ runs: using: 'composite' steps: - name: Set up Node.js - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6 + uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 with: node-version-file: '.nvmrc' From 5288abfb03a07bb9795edae114d0e1e65c7a8b26 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:22:31 +0000 Subject: [PATCH 315/335] Update dependency axios to v1.15.2 (#38613) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 141cce79d4d63c..1814c223f7c051 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5814,13 +5814,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.15.0 - resolution: "axios@npm:1.15.0" + version: 1.15.2 + resolution: "axios@npm:1.15.2" dependencies: follow-redirects: "npm:^1.15.11" form-data: "npm:^4.0.5" proxy-from-env: "npm:^2.1.0" - checksum: 10c0/47e0f860e98d4d7aa145e89ce0cae00e1fb0f1d2485f065c21fce955ddb1dba4103a46bd0e47acd18a27208a7f62c96249e620db575521b92a968619ab133409 + checksum: 10c0/4eeae0feeaa7fdc1ef24f81f8b378fdadedf4aebdd6bf224484675160f8744cf17b9b0d1c215279979940f7e8ce463beffa2f713099612e428eac238515c81d5 languageName: node linkType: hard From 9c5ef8f3f66bba068d310ae74a335251fa1b705e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:23:40 +0000 Subject: [PATCH 316/335] Update dependency aws-sdk-core to v3.246.0 (#38742) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7b16cf38f6a144..8db9b63aa8a4d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,8 +99,8 @@ GEM ast (2.4.3) attr_required (1.0.2) aws-eventstream (1.4.0) - aws-partitions (1.1238.0) - aws-sdk-core (3.244.0) + aws-partitions (1.1240.0) + aws-sdk-core (3.246.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) aws-sigv4 (~> 1.9) From 84566167933fa36d0fabfdbc9f68210cc02d30e7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:24:55 +0000 Subject: [PATCH 317/335] Update actions/cache digest to 27d5ce7 (#38746) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/actions/setup-javascript/action.yml | 2 +- .github/workflows/test-ruby.yml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/setup-javascript/action.yml b/.github/actions/setup-javascript/action.yml index 03f5c1b2547ed7..7f29265c1c5fab 100644 --- a/.github/actions/setup-javascript/action.yml +++ b/.github/actions/setup-javascript/action.yml @@ -23,7 +23,7 @@ runs: shell: bash run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index a8695cae8c53e1..f4b45edcbae323 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -43,7 +43,7 @@ jobs: onlyProduction: 'true' - name: Cache assets from compilation - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 with: path: | public/assets @@ -151,7 +151,7 @@ jobs: bin/flatware fan bin/rails db:test:prepare - name: Cache RSpec persistence file - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 with: path: | tmp/rspec/examples.txt @@ -247,7 +247,7 @@ jobs: - name: Cache Playwright Chromium browser id: playwright-cache - uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5 + uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5 with: path: ~/.cache/ms-playwright key: playwright-browsers-${{ runner.os }}-${{ hashFiles('yarn.lock') }} From d4e60dae9a35db9e295d42346ca5bfc38a4839c4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:25:22 +0000 Subject: [PATCH 318/335] Update codecov/codecov-action digest to 75cd116 (#38747) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/test-ruby.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml index f4b45edcbae323..b8c525d9d426ac 100644 --- a/.github/workflows/test-ruby.yml +++ b/.github/workflows/test-ruby.yml @@ -167,7 +167,7 @@ jobs: - name: Upload coverage reports to Codecov if: matrix.ruby-version == '.ruby-version' - uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5 + uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5 with: files: coverage/lcov/*.lcov env: From c18db972547ad52bb823a294bf1db790627573a9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 11:52:13 +0200 Subject: [PATCH 319/335] Update dependency stoplight to v5.8.2 (#38752) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8db9b63aa8a4d7..7e1b70d521eed6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -848,7 +848,7 @@ GEM stackprof (0.2.28) starry (0.2.0) base64 - stoplight (5.8.0) + stoplight (5.8.2) concurrent-ruby zeitwerk stringio (3.2.0) From 88b21e587c4f7cbd0ecc7768950b6fe59b14c09d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 09:53:20 +0000 Subject: [PATCH 320/335] Update dependency irb to v1.18.0 (#38773) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7e1b70d521eed6..7cc6ce6f437be6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -226,7 +226,7 @@ GEM elasticsearch-dsl (0.1.10) email_validator (2.2.4) activemodel - erb (6.0.3) + erb (6.0.4) erubi (1.13.1) et-orbi (1.4.0) tzinfo @@ -343,7 +343,7 @@ GEM activesupport (>= 3.0) nokogiri (>= 1.6) io-console (0.8.2) - irb (1.17.0) + irb (1.18.0) pp (>= 0.6.0) prism (>= 1.3.0) rdoc (>= 4.0.0) From 20e3265f3b670ca230146ecb903fdf62b1155fb0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:32:25 +0200 Subject: [PATCH 321/335] New Crowdin Translations (automated) (#38864) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/de.json | 4 ++-- app/javascript/mastodon/locales/hu.json | 2 ++ config/locales/da.yml | 4 ++-- config/locales/de.yml | 13 ++++++++----- config/locales/el.yml | 2 -- config/locales/es-AR.yml | 4 ++-- config/locales/fi.yml | 4 ++-- config/locales/fr-CA.yml | 19 +++++++++++++++++++ config/locales/fr.yml | 19 +++++++++++++++++++ config/locales/ga.yml | 2 -- config/locales/gl.yml | 12 ++++++++++++ config/locales/he.yml | 21 +++++++++++++++++++++ config/locales/is.yml | 4 ++-- config/locales/it.yml | 5 +++-- config/locales/nl.yml | 2 -- config/locales/sq.yml | 2 -- config/locales/zh-CN.yml | 20 ++++++++++++++++++++ 17 files changed, 114 insertions(+), 25 deletions(-) diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 53e0105deafd6b..779d186f15a316 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -428,7 +428,7 @@ "collections.share_short": "Teilen", "collections.suggestions.can_not_add": "Kann nicht hinzugefügt werden", "collections.suggestions.can_not_add_desc": "Diese Konten möchten möglicherweise nicht entdeckt werden oder deren Server unterstützt noch keine Sammlungen.", - "collections.suggestions.must_follow": "Zuerst Profil folgen", + "collections.suggestions.must_follow": "Profil muss gefolgt werden", "collections.suggestions.must_follow_desc": "Diese Konten überprüfen ihre Follower-Anfragen manuell. Follower können sie zu Sammlungen hinzufügen.", "collections.topic_hint": "Ein Hashtag für diese Sammlung kann anderen dabei helfen, dein Anliegen besser einordnen zu können.", "collections.topic_special_chars_hint": "Sonderzeichen werden beim Speichern entfernt", @@ -966,7 +966,7 @@ "notification.quoted_update": "{name} bearbeitete einen von dir zitierten Beitrag", "notification.reblog": "{name} teilte deinen Beitrag", "notification.reblog.name_and_others_with_link": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} teilten deinen Beitrag", - "notification.relationships_severance_event": "Verbindungen mit {name} verloren", + "notification.relationships_severance_event": "Verbindung zu {name} verloren", "notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.", "notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} gesperrt – darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.", "notification.relationships_severance_event.learn_more": "Mehr erfahren", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 2f9ca59ce57478..e636d354e6b699 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -131,6 +131,7 @@ "account.note.edit_button": "Szerkesztés", "account.note.title": "Személyes megjegyzés (csak te látod)", "account.open_original_page": "Eredeti oldal megnyitása", + "account.pending": "Függőben", "account.posts": "Bejegyzések", "account.remove_from_followers": "{name} eltávolítása a követők közül", "account.report": "@{name} jelentése", @@ -414,6 +415,7 @@ "collections.maximum_collection_count_reached": "Elérted a gyűjtemények maximális számát", "collections.name_length_hint": "40 karakteres korlát", "collections.new_collection": "Új gyűjtemény", + "collections.pending_accounts.title": "Miért látom a függőben lévő fiókokat?", "collections.remove_account": "Eltávolítás", "collections.report_collection": "Gyűjtemény jelentése", "collections.revoke_collection_inclusion": "Saját magam eltávolítása ebből a gyűjteményből", diff --git a/config/locales/da.yml b/config/locales/da.yml index 8a0c8cc9f98532..9cc6120ef86c4e 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1745,9 +1745,9 @@ da: title_html: "%{name} opdaterede en samling, du er med i" generic: sign_in: Log ind på Mastodon web-appen - summary_html: Du er på en app, der ikke understøtter den seneste version af Mastodon. %link for fuld funktionalitet. + summary_html: Du bruger på en app, der ikke understøtter den seneste version af Mastodon. %{link} for fuld funktionalitet. moderation_warning: - summary_html: Du er på en app, der ikke understøtter den seneste version af Mastodon. %link + summary_html: Du bruger en app, der ikke understøtter den seneste version af Mastodon. %{link}. title: Du har modtaget en moderationsadvarsel. severed_relationships: summary_html: En administrator fra %{from} har suspenderet %{target}, hvilket betyder, at du ikke længere kan modtage opdateringer fra dem eller interagere med dem. %{link} for at hente en liste over de tabte forhold. diff --git a/config/locales/de.yml b/config/locales/de.yml index f6775491d090e5..6604c28fd5ae3a 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1744,11 +1744,14 @@ de: collection_update: title_html: "%{name} aktualisierte eine Sammlung, in der du vorgestellt wirst" generic: - sign_in: In der Mastodon-Web-App anmelden - summary_html: Du verwendest eine App, die noch nicht die aktuellste Version von Mastodon unterstützt. %link für vollständige Funktionalität. + sign_in: Auf der Mastodon-Website anmelden + summary_html: Deine App unterstützt nicht die neueste Mastodon-Version. Rufe %{link} auf, um alle Funktionen nutzen zu können. moderation_warning: - summary_html: Du verwendest eine App, die noch nicht die aktuellste Version von Mastodon unterstützt. %link + summary_html: Deine App unterstützt nicht die neueste Mastodon-Version. %{link}. title: Die Moderator*innen haben dich verwarnt. + severed_relationships: + summary_html: Administrator*innen von %{from} haben den Zugriff auf den externen Server %{target} gesperrt. Das bedeutet, dass du keine Inhalte mehr von dort erhältst. Du kannst auch nicht mehr mit den Profilen dieses Servers interagieren. Rufe %{link} auf, um alle Profile, denen du folgtest und die dir folgten, einzusehen. + title: Verbindung zu %{name} verloren notification_mailer: admin: report: @@ -1964,7 +1967,7 @@ de: preferences: Einstellungen profile: Öffentliches Profil relationships: Follower und Folge ich - severed_relationships: Getrennte Beziehungen + severed_relationships: Getrennte Verbindungen statuses_cleanup: Automatisiertes Löschen strikes: Maßnahmen two_factor_authentication: Zwei-Faktor-Authentisierung @@ -1977,7 +1980,7 @@ de: user_domain_block: Du hast %{target_name} blockiert lost_followers: Verlorene Follower lost_follows: Konten entfolgt - preamble: Möglicherweise verlierst du Follower und entfolgst Konten, wenn du eine Domain blockierst oder Moderator*innen externe Server sperren. Sollte das der Fall sein, wirst du eine Liste mit den getrennten Beziehungen herunterladen können. Dadurch kannst du die Änderungen einsehen oder die Liste auf einen anderen Server importieren. + preamble: Möglicherweise verlierst du Follower und entfolgst Konten, wenn du eine Domain blockierst oder Moderator*innen externe Server sperren. Sollte das der Fall sein, wirst du eine Liste mit den getrennten Verbindungen einsehen und herunterladen können. Dadurch kannst du die Änderungen einsehen oder die Liste auf einen anderen Server importieren. purged: Informationen über diesen Server wurden von deinen Server-Administrator*innen entfernt. type: Ereignis statuses: diff --git a/config/locales/el.yml b/config/locales/el.yml index 514f713081a551..7ddeb4601ed0fb 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1745,9 +1745,7 @@ el: title_html: "%{name} ενημέρωσε μια συλλογή στην οποία περιλαμβάνεσαι" generic: sign_in: Συνδεθείτε στην εφαρμογή ιστού Mastodon - summary_html: Είστε σε μια εφαρμογή που δεν υποστηρίζει την πιο πρόσφατη έκδοση του Mastodon. %link για πλήρη λειτουργικότητα. moderation_warning: - summary_html: Είστε σε μια εφαρμογή που δεν υποστηρίζει την πιο πρόσφατη έκδοση του Mastodon. %link title: Έχετε λάβει μία προειδοποίηση συντονισμού. severed_relationships: summary_html: Ένας διαχειριστής από το %{from} έχει αναστείλει το %{target}, το οποίο σημαίνει ότι δεν μπορείς πλέον να λαμβάνεις ενημερώσεις από αυτούς ή να αλληλεπιδράς μαζί τους. %{link} για να λάβετε μια λίστα με τις χαμένες σχέσεις. diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index edcdb118745f76..19b6ffcee4357e 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1745,9 +1745,9 @@ es-AR: title_html: "%{name} editó una colección en la que estás" generic: sign_in: Iniciar sesión en la aplicación web de Mastodon - summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %link para una funcionalidad completa. + summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %{link} para una funcionalidad completa. moderation_warning: - summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %link + summary_html: Estás en una aplicación que no soporta la versión más reciente de Mastodon. %{link}. title: Recibiste una advertencia de moderación. severed_relationships: summary_html: Un administrador de %{from} suspendió %{target}, lo que significa que ya no podés recibir actualizaciones de ellos o interactuar con ellos. %{link} para recuperar una lista de las relaciones perdidas. diff --git a/config/locales/fi.yml b/config/locales/fi.yml index f36f0af02b0a92..50e65f71d2129c 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1745,9 +1745,9 @@ fi: title_html: "%{name} päivitti kokoelman, jossa olet" generic: sign_in: Rekisteröidy Mastodonin selainsovelluksessa - summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %link täyden toiminnallisuuden mahdollistamiseksi. + summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %{link} täyden toiminnallisuuden mahdollistamiseksi. moderation_warning: - summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %link + summary_html: Olet sovelluksessa, joka ei tue uusinta Mastodonin versiota. %{link}. title: Olet saanut moderointivaroituksen. notification_mailer: admin: diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index ca1742bc5010fd..2ce37faa47a7d3 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1731,6 +1731,25 @@ fr-CA: copy_account_note_text: 'Cet·te utilisateur·rice est parti·e de %{acct}, voici vos notes précédentes à son sujet :' navigation: toggle_menu: Basculer l'affichage du menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} vous a ajouté·e à une collection" + admin_report: + title_html: "%{name} a signalé %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} et un·e autre se sont inscrit·e·s" + other: "%{name} et %{count} autres se sont inscrit·e·s" + title_html: "%{name} s'est inscrit·e" + collection_update: + title_html: "%{name} a mis à jour une collection dans laquelle vous figurez" + generic: + sign_in: Connectez-vous à l'application Web Mastodon + moderation_warning: + title: Vous avez reçu un avertissement de la modération. + severed_relationships: + summary_html: L'équipe d'administration de %{from} a suspendu %{target}, ce qui signifie que vous ne pouvez plus recevoir de notifications de leur part ou interagir avec. %{link} pour récupérer la liste des relations perdues. + title: Connexions perdues avec %{name} notification_mailer: admin: report: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index d9ccfed3fa2834..47bf7904b2fd8f 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1731,6 +1731,25 @@ fr: copy_account_note_text: 'Cet·te utilisateur·rice est parti·e de %{acct}, voici vos notes précédentes à son sujet :' navigation: toggle_menu: Basculer l'affichage du menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} vous a ajouté·e à une collection" + admin_report: + title_html: "%{name} a signalé %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} et un·e autre se sont inscrit·e·s" + other: "%{name} et %{count} autres se sont inscrit·e·s" + title_html: "%{name} s'est inscrit·e" + collection_update: + title_html: "%{name} a mis à jour une collection dans laquelle vous figurez" + generic: + sign_in: Connectez-vous à l'application Web Mastodon + moderation_warning: + title: Vous avez reçu un avertissement de la modération. + severed_relationships: + summary_html: L'équipe d'administration de %{from} a suspendu %{target}, ce qui signifie que vous ne pouvez plus recevoir de notifications de leur part ou interagir avec. %{link} pour récupérer la liste des relations perdues. + title: Connexions perdues avec %{name} notification_mailer: admin: report: diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 0abd6fdda43f0d..35738a449e7448 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1876,9 +1876,7 @@ ga: title_html: Nuashonraigh %{name} bailiúchán ina bhfuil tú generic: sign_in: Sínigh isteach ar an app gréasáin Mastodon - summary_html: Tá tú ar aip nach dtacaíonn leis an leagan is déanaí de Mastodon. %link le haghaidh feidhmiúlacht iomlán. moderation_warning: - summary_html: Tá tú ar aip nach dtacaíonn leis an leagan is déanaí de Mastodon. %link title: Tá rabhadh modhnóireachta faighte agat. severed_relationships: summary_html: Chuir riarthóir ó %{from} %{target} ar fionraí, rud a chiallaíonn nach féidir leat nuashonruithe a fháil uathu nó idirghníomhú leo a thuilleadh. %{link} chun liosta de na gaolta caillte a fháil. diff --git a/config/locales/gl.yml b/config/locales/gl.yml index ce50173b5c8a3b..6cbd087063d2b0 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1731,6 +1731,18 @@ gl: copy_account_note_text: 'Esta usuaria chegou desde %{acct}, aquí están as túas notas previas acerca dela:' navigation: toggle_menu: Activa o menú + notification_fallbacks: + added_to_collection: + title_html: "%{name} engadíute a unha colección" + admin_report: + title_html: "%{name} denunciou a %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} e outra persoa crearon a conta" + other: "%{name} e outras %{count} persoas crearon a conta" + title_html: "%{name} creou a conta" + collection_update: + title_html: "%{name} actualizou unha colección da que es parte" notification_mailer: admin: report: diff --git a/config/locales/he.yml b/config/locales/he.yml index 974be319b7741f..7269270cf95644 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1815,6 +1815,27 @@ he: copy_account_note_text: 'חשבון זה הועבר מ-%{acct}, הנה הערותיך הקודמות לגביהם:' navigation: toggle_menu: הצגת\הסתרת תפריט + notification_fallbacks: + added_to_collection: + title_html: "%{name} הוסיפו אותך לאוסף" + admin_report: + title_html: "%{name} דיווח.ה על %{target}" + admin_sign_up: + title_and_others_html: + many: "%{name} ועוד %{count} נרשמו" + one: "%{name} ועוד אחד נרשמו" + other: "%{name} ועוד %{count} נרשמו" + two: "%{name} ועוד שניים נרשמו" + title_html: "%{name} נרשמו" + collection_update: + title_html: "%{name} עדכנו אוסף הכולל אותך" + generic: + sign_in: התחברו ליישומון הווב של מסטודון + moderation_warning: + title: קיבלת אזהרת מנהל. + severed_relationships: + summary_html: מנהל מאתר %{from} הקפיא את %{target}, כלומר לא תוכלו לקבל יותר עדכונים מהם או להתכתב איתם. %{link} כדי לקבל רשימת מערכות יחסים שאבדו. + title: הקשר אבד עם %{name} notification_mailer: admin: report: diff --git a/config/locales/is.yml b/config/locales/is.yml index ec1628c6fe2d06..8d82adf06154a5 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1749,9 +1749,9 @@ is: title_html: "%{name} uppfærði safn sem þú ert í" generic: sign_in: Skráðu þig inn á Mastodon-vefforritið - summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %link til að fá alla eiginleikana. + summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %{link} til að fá alla eiginleikana. moderation_warning: - summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %link + summary_html: Þú ert að nota forrit sem styður ekki nýjustu útgáfuna af Mastodon. %{link}. title: Þú hefur fengið aðvörun frá umsjónarmanni. severed_relationships: summary_html: Stjórnandi á %{from} hefur sett %{target} í frysti, sem þýðir að þú getur ekki lengur fengið upplýsingar frá eða átt í samskiptum við viðkomandi. %{link} til að ná í lista yfir þau tengsl sem hafa rofnað. diff --git a/config/locales/it.yml b/config/locales/it.yml index 8a40842dada1b3..92ed0fb6d00ebc 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1745,11 +1745,12 @@ it: title_html: "%{name} ha aggiornato una collezione in cui sei presente" generic: sign_in: Accedi alla web app Mastodon - summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %link per la piena funzionalità. + summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %{link} per la piena funzionalità. moderation_warning: - summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %link + summary_html: Stai utilizzando un'app che non supporta la versione più recente di Mastodon. %{link}. title: Hai ricevuto un avviso di moderazione. severed_relationships: + summary_html: Un amministratore/trice da %{from} ha sospeso %{target}, il che significa che non puoi più ricevere aggiornamenti o interagire con esso. Fai clic su %{link} per recuperare un elenco delle relazioni perse. title: Connessioni perse con %{name} notification_mailer: admin: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 17c40e7f4f91b6..2baf36f4e599ca 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1745,9 +1745,7 @@ nl: title_html: "%{name} werkte een verzameling bij waar jij in zit" generic: sign_in: In de Mastodon web-app inloggen - summary_html: Je gebruikt een app die de meest recente versie van Mastodon niet ondersteunt. Ga naar %link voor de volledige functionaliteit. moderation_warning: - summary_html: Je gebruikt een app die de meest recente versie van Mastodon niet ondersteunt. %link title: Je hebt een moderatie-waarschuwing ontvangen. severed_relationships: summary_html: Een beheerder van %{from} heeft %{target} geschorst, wat betekent dat je geen updates meer van deze gebruiker kunt ontvangen of met deze gebruiker kunt communiceren. Ga naar %{link} voor een overzicht van verloren verbindingen. diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 5803aab0a526ea..6b2a166153b173 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1730,9 +1730,7 @@ sq: title_html: "%{name} përditësoi një koleksion në të cilin gjendeni" generic: sign_in: Bëni hyrjen te aplikacioni web Mastodon - summary_html: Gjendeni në një aplikacion i cili s’mbulon versionin më të ri të Mastodon-it. %link për funksionim të plotë. moderation_warning: - summary_html: Gjendeni në një aplikacion i cili s’mbulon versionin më të ri të Mastodon-it. %link title: Keni marrë një sinjalizim moderimi. severed_relationships: summary_html: Një përgjegjës prej %{from} ka pezulluar %{target}, që do të thotë se s’mund të merrni më përditësime prej tij, apo të ndërveproni me të. %{link} që të merrni një listë të marrëdhënieve të humbura. diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 4690b07d393d30..4ab6db6749a88a 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1689,6 +1689,26 @@ zh-CN: copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注: navigation: toggle_menu: 隐藏/显示菜单 + notification_fallbacks: + added_to_collection: + title_html: "%{name} 将你添加到了收藏列表" + admin_report: + title_html: "%{name} 举报了 %{target}" + admin_sign_up: + title_and_others_html: + other: "%{name} 及另外 %{count} 个人注册了" + title_html: "%{name} 注册了" + collection_update: + title_html: "%{name} 更新了你所在的收藏列表" + generic: + sign_in: 登录到 Mastodon 网页应用 + summary_html: 你使用的应用程序不支持最新版本的 Mastodon。要使用完整功能,%{link}。 + moderation_warning: + summary_html: 你使用的应用程序不支持最新版本的 Mastodon。%{link}。 + title: 你收到了一条管理警告。 + severed_relationships: + summary_html: "%{from} 的管理员封禁了 %{target},这意味着你将无法再收到对方的更新或与其互动。要获取失去的关系列表,%{link}。" + title: 与 %{name} 的联系已断开 notification_mailer: admin: report: From d4e7af910cf2d908e06ede1357302feb99bce65c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 14:59:56 +0200 Subject: [PATCH 322/335] Update dependency vite to v8.0.10 (#38748) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 211 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 109 insertions(+), 102 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1814c223f7c051..d644177a6edb01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1924,22 +1924,22 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:1.9.2, @emnapi/core@npm:^1.4.3": - version: 1.9.2 - resolution: "@emnapi/core@npm:1.9.2" +"@emnapi/core@npm:1.10.0, @emnapi/core@npm:^1.4.3": + version: 1.10.0 + resolution: "@emnapi/core@npm:1.10.0" dependencies: "@emnapi/wasi-threads": "npm:1.2.1" tslib: "npm:^2.4.0" - checksum: 10c0/5500393f953951bad0768fafaa9191f2d938956b20c6d6a79e5ab696a613a25ce6ad23422bc18e86e6ce8deb147619d8d0d7d413a69f84adc01a6633cc353cd9 + checksum: 10c0/f51d08227857b60632de7714d708124f0e100a1462dde6df8221760939aa3204a73193830371830fac0716f3ccd2129f2cac1b17cd7d7958bc4da9018a296edb languageName: node linkType: hard -"@emnapi/runtime@npm:1.9.2, @emnapi/runtime@npm:^1.4.3": - version: 1.9.2 - resolution: "@emnapi/runtime@npm:1.9.2" +"@emnapi/runtime@npm:1.10.0, @emnapi/runtime@npm:^1.4.3": + version: 1.10.0 + resolution: "@emnapi/runtime@npm:1.10.0" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/61c3a59e0c36784558b8d58eb02bd04815aa5fb0dbfbaf84d1b3050a78aa0cc63ea129ae806bd1e48062bfeb7fc36eb0e5431740d62f64ea51bdf426404b8caa + checksum: 10c0/953f14991d1aefb92ee6f8eb27dea725e484791a53a0cb5f47d9e0087b9a2c929ff2e92adf95af15d6ad456db6300c6b761ebf72b50a875b874a83520b3ba093 languageName: node linkType: hard @@ -3075,15 +3075,15 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^1.1.2, @napi-rs/wasm-runtime@npm:^1.1.3": - version: 1.1.3 - resolution: "@napi-rs/wasm-runtime@npm:1.1.3" +"@napi-rs/wasm-runtime@npm:^1.1.2, @napi-rs/wasm-runtime@npm:^1.1.4": + version: 1.1.4 + resolution: "@napi-rs/wasm-runtime@npm:1.1.4" dependencies: "@tybys/wasm-util": "npm:^0.10.1" peerDependencies: "@emnapi/core": ^1.7.1 "@emnapi/runtime": ^1.7.1 - checksum: 10c0/745bb32a023b95095a18d93658bf4564403c2283ca0500a043afcf566ac6082bd0611792f14636276bab07dc2ce6d862591c8aabddae02ec697245b05bc6f144 + checksum: 10c0/2e88e1955258949ccf2d18c79975821ad38071b465ef126a5e14110977b97868867b016c1ad046e963cccc42c0bd9db6c8ff5fd1ebb61b87bb3487f339041658 languageName: node linkType: hard @@ -3331,7 +3331,14 @@ __metadata: languageName: node linkType: hard -"@oxc-project/types@npm:=0.124.0, @oxc-project/types@npm:^0.124.0": +"@oxc-project/types@npm:=0.127.0": + version: 0.127.0 + resolution: "@oxc-project/types@npm:0.127.0" + checksum: 10c0/52c0947ac64a9ca119fe971f947e784a35ecd14a072fa3f542a58a5f6c42010b53f2bf92731e39b9899b83c990a9517bbd29d1e5a5b7b489e52616685c6a9278 + languageName: node + linkType: hard + +"@oxc-project/types@npm:^0.124.0": version: 0.124.0 resolution: "@oxc-project/types@npm:0.124.0" checksum: 10c0/9564ee3ce41f4b87802ffd0d62a7602d27f4503fbd39c1bedab98d54fde06e2ac254a8f85d8f679af1281a26e8fc7aa053fadbb3e09e786b38178eb38a8e2fb3 @@ -3742,111 +3749,111 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-android-arm64@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.15" +"@rolldown/binding-android-arm64@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-android-arm64@npm:1.0.0-rc.17" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.15" +"@rolldown/binding-darwin-arm64@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-darwin-arm64@npm:1.0.0-rc.17" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-x64@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.15" +"@rolldown/binding-darwin-x64@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-darwin-x64@npm:1.0.0-rc.17" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.15" +"@rolldown/binding-freebsd-x64@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-freebsd-x64@npm:1.0.0-rc.17" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.15" +"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.0-rc.17" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.15" +"@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.0-rc.17" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.15" +"@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.0-rc.17" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.15" +"@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.0-rc.17" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.15" +"@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.0-rc.17" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.15" +"@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.0-rc.17" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.15" +"@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.0-rc.17" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.15" +"@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.0-rc.17" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.15" +"@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.0-rc.17" dependencies: - "@emnapi/core": "npm:1.9.2" - "@emnapi/runtime": "npm:1.9.2" - "@napi-rs/wasm-runtime": "npm:^1.1.3" + "@emnapi/core": "npm:1.10.0" + "@emnapi/runtime": "npm:1.10.0" + "@napi-rs/wasm-runtime": "npm:^1.1.4" conditions: cpu=wasm32 languageName: node linkType: hard -"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.15" +"@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.0-rc.17" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.15" +"@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.0-rc.17" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3873,10 +3880,10 @@ __metadata: languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "@rolldown/pluginutils@npm:1.0.0-rc.15" - checksum: 10c0/15eef6a65ee6b2d07405c16999c2333c40d8aeea60bbc35e04957992fe6477c7b278d3f02679688bb928ad2ef3fbd3a6149c116d7dc9928ebf8d1434a0591674 +"@rolldown/pluginutils@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "@rolldown/pluginutils@npm:1.0.0-rc.17" + checksum: 10c0/5e840b20cc531910c093c1ca36e550952cf4936465a50d89f0a98fc9d0dfd7d319d06a10a5f4376209d89e9bf4d60af6cc8363ebf0dcc5e60842f7fef438b2f0 languageName: node linkType: hard @@ -11714,14 +11721,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.0.0, postcss@npm:^8.4.35, postcss@npm:^8.5.6, postcss@npm:^8.5.8": - version: 8.5.8 - resolution: "postcss@npm:8.5.8" +"postcss@npm:^8.0.0, postcss@npm:^8.4.35, postcss@npm:^8.5.10, postcss@npm:^8.5.6": + version: 8.5.12 + resolution: "postcss@npm:8.5.12" dependencies: nanoid: "npm:^3.3.11" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/dd918f7127ee7c60a0295bae2e72b3787892296e1d1c3c564d7a2a00c68d8df83cadc3178491259daa19ccc54804fb71ed8c937c6787e08d8bd4bedf8d17044c + checksum: 10c0/5baebaf574c567bc1b3d61197f38af4ce5920b8f611c887fb6bc3dcc14af00253c169dbf19897bc889cce0b0d9818ab5eb4ea0caedf02b0bab10da8a43ce8c12 languageName: node linkType: hard @@ -12626,27 +12633,27 @@ __metadata: languageName: node linkType: hard -"rolldown@npm:1.0.0-rc.15": - version: 1.0.0-rc.15 - resolution: "rolldown@npm:1.0.0-rc.15" - dependencies: - "@oxc-project/types": "npm:=0.124.0" - "@rolldown/binding-android-arm64": "npm:1.0.0-rc.15" - "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.15" - "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.15" - "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.15" - "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.15" - "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.15" - "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.15" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.15" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.15" - "@rolldown/pluginutils": "npm:1.0.0-rc.15" +"rolldown@npm:1.0.0-rc.17": + version: 1.0.0-rc.17 + resolution: "rolldown@npm:1.0.0-rc.17" + dependencies: + "@oxc-project/types": "npm:=0.127.0" + "@rolldown/binding-android-arm64": "npm:1.0.0-rc.17" + "@rolldown/binding-darwin-arm64": "npm:1.0.0-rc.17" + "@rolldown/binding-darwin-x64": "npm:1.0.0-rc.17" + "@rolldown/binding-freebsd-x64": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-arm64-gnu": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-arm64-musl": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-s390x-gnu": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-x64-gnu": "npm:1.0.0-rc.17" + "@rolldown/binding-linux-x64-musl": "npm:1.0.0-rc.17" + "@rolldown/binding-openharmony-arm64": "npm:1.0.0-rc.17" + "@rolldown/binding-wasm32-wasi": "npm:1.0.0-rc.17" + "@rolldown/binding-win32-arm64-msvc": "npm:1.0.0-rc.17" + "@rolldown/binding-win32-x64-msvc": "npm:1.0.0-rc.17" + "@rolldown/pluginutils": "npm:1.0.0-rc.17" dependenciesMeta: "@rolldown/binding-android-arm64": optional: true @@ -12680,7 +12687,7 @@ __metadata: optional: true bin: rolldown: bin/cli.mjs - checksum: 10c0/95df21125dafd2a0ce6ae9a89d926540e47900684023126c84632e18123371020da8f6b3235a188c45af0e4f9a5b963235de33bd9658ee5db9f3ff5862200eed + checksum: 10c0/bb99abc62ece4e34edd06d2b8eb9ffb7194dc2f0465a4329bb106cbde3006a10f1575e3580b198b793341109a2109581aed623c537c12b0c3a4ba0d72169b2fb languageName: node linkType: hard @@ -13963,13 +13970,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" +"tinyglobby@npm:^0.2.10, tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.16": + version: 0.2.16 + resolution: "tinyglobby@npm:0.2.16" dependencies: fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + picomatch: "npm:^4.0.4" + checksum: 10c0/f2e09fd93dd95c41e522113b686ff6f7c13020962f8698a864a257f3d7737599afc47722b7ab726e12f8a813f779906187911ff8ee6701ede65072671a7e934b languageName: node linkType: hard @@ -14719,15 +14726,15 @@ __metadata: linkType: hard "vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0-0, vite@npm:^8.0.0": - version: 8.0.8 - resolution: "vite@npm:8.0.8" + version: 8.0.10 + resolution: "vite@npm:8.0.10" dependencies: fsevents: "npm:~2.3.3" lightningcss: "npm:^1.32.0" picomatch: "npm:^4.0.4" - postcss: "npm:^8.5.8" - rolldown: "npm:1.0.0-rc.15" - tinyglobby: "npm:^0.2.15" + postcss: "npm:^8.5.10" + rolldown: "npm:1.0.0-rc.17" + tinyglobby: "npm:^0.2.16" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 "@vitejs/devtools": ^0.1.0 @@ -14771,7 +14778,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/63474b399612ccf087d0aa025d7eb5c0d675012b6257b7f64332ff39579d4af4d5d7f0ac330906fc99b101abbf592c756adf143bb5748a02aec08f7d3639054d + checksum: 10c0/92188b82654f856dbe562a1b679de695bb6ca18c0f43c4c276f84a869fb78e22dedb7c2df83b5617d6afdca979c059d654b5f61a0936a45f49917f352b9325ca languageName: node linkType: hard From a8c261ae7c592ad95eb2fc66838cb42733370eff Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:22:03 +0200 Subject: [PATCH 323/335] Update dependency aws-sdk-s3 to v1.220.0 (#38788) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7cc6ce6f437be6..c7dd46def80b2e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM ast (2.4.3) attr_required (1.0.2) aws-eventstream (1.4.0) - aws-partitions (1.1240.0) + aws-partitions (1.1242.0) aws-sdk-core (3.246.0) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.992.0) @@ -108,10 +108,10 @@ GEM bigdecimal jmespath (~> 1, >= 1.6.1) logger - aws-sdk-kms (1.123.0) + aws-sdk-kms (1.124.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.219.0) + aws-sdk-s3 (1.220.0) aws-sdk-core (~> 3, >= 3.244.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) From 3021cd80027ab4b494efa9c06ad41ca00b5e96f0 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 30 Apr 2026 09:28:15 -0400 Subject: [PATCH 324/335] Update puma to version 8.0.1 (#38738) --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6d22ed3e190c19..f5d72aed1b1b43 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' ruby '>= 3.3.0', '< 4.1.0' gem 'propshaft' -gem 'puma', '~> 7.0' +gem 'puma' gem 'rails', '~> 8.1.0' gem 'thor', '~> 1.2' diff --git a/Gemfile.lock b/Gemfile.lock index c7dd46def80b2e..b020f49a67bdf6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -625,7 +625,7 @@ GEM date stringio public_suffix (7.0.5) - puma (7.2.0) + puma (8.0.1) nio4r (~> 2.0) pundit (2.5.2) activesupport (>= 3.0.0) @@ -1045,7 +1045,7 @@ DEPENDENCIES prometheus_exporter (~> 2.2) propshaft public_suffix (~> 7.0) - puma (~> 7.0) + puma pundit (~> 2.3) rack-attack (~> 6.6) rack-cors From 945ac23910dff9e7d901f5faa6ee55292812f032 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 30 Apr 2026 15:58:22 +0200 Subject: [PATCH 325/335] Remove and move profile code (#38863) --- .../account_header}/badges.tsx | 9 +- .../account_header}/buttons.tsx | 7 +- .../account_header}/fields.tsx | 26 ++- .../account_header/index.tsx} | 12 +- .../account_header}/memorial_note.tsx | 0 .../account_header}/menu.tsx | 3 +- .../account_header}/moved_note.tsx | 7 +- .../account_header/name.tsx} | 9 +- .../account_header}/note.tsx | 5 +- .../account_header}/number_fields.tsx | 10 +- .../account_header}/styles.module.scss | 0 .../account_header/subscription_form.tsx} | 15 +- .../account_header}/tabs.tsx | 3 +- .../components/limited_account_hint.tsx | 9 +- .../mastodon/components/status_list.jsx | 2 +- .../components/empty_message.tsx | 2 +- .../features/account_featured/index.tsx | 32 +-- .../features/account_gallery/index.tsx | 26 +-- .../features/account_timeline/common.ts | 7 - .../{v2 => components}/featured_tags.tsx | 4 +- .../{v2 => components}/filters.tsx | 7 +- .../account_timeline/components/info.tsx | 68 ------ .../components/pinned_statuses.tsx | 55 +++++ .../{v2 => components}/tags_suggestions.tsx | 2 +- .../useAccountContext.ts} | 40 ++-- .../account_timeline/hooks/usePinned.ts | 58 ++++++ .../features/account_timeline/index.jsx | 197 ------------------ .../account_timeline/{v2 => }/index.tsx | 30 +-- .../account_timeline/modals/field_modal.tsx | 2 +- .../{v2 => }/styles.module.scss | 0 .../account_timeline/v2/pinned_statuses.tsx | 110 ---------- .../account_timeline/v2/status_header.tsx | 52 ----- .../features/followers/components/empty.tsx | 2 +- .../features/ui/util/async-components.js | 2 +- app/javascript/mastodon/locales/en.json | 4 - 35 files changed, 248 insertions(+), 569 deletions(-) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/badges.tsx (98%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/buttons.tsx (95%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/fields.tsx (93%) rename app/javascript/mastodon/{features/account_timeline/components/account_header.tsx => components/account_header/index.tsx} (94%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/memorial_note.tsx (100%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/menu.tsx (99%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/moved_note.tsx (87%) rename app/javascript/mastodon/{features/account_timeline/components/account_name.tsx => components/account_header/name.tsx} (96%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/note.tsx (93%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/number_fields.tsx (91%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/styles.module.scss (100%) rename app/javascript/mastodon/{features/account_timeline/components/account_subscription_form.tsx => components/account_header/subscription_form.tsx} (92%) rename app/javascript/mastodon/{features/account_timeline/components => components/account_header}/tabs.tsx (95%) rename app/javascript/mastodon/{features/account_timeline => }/components/limited_account_hint.tsx (78%) delete mode 100644 app/javascript/mastodon/features/account_timeline/common.ts rename app/javascript/mastodon/features/account_timeline/{v2 => components}/featured_tags.tsx (96%) rename app/javascript/mastodon/features/account_timeline/{v2 => components}/filters.tsx (95%) delete mode 100644 app/javascript/mastodon/features/account_timeline/components/info.tsx create mode 100644 app/javascript/mastodon/features/account_timeline/components/pinned_statuses.tsx rename app/javascript/mastodon/features/account_timeline/{v2 => components}/tags_suggestions.tsx (98%) rename app/javascript/mastodon/features/account_timeline/{v2/context.tsx => hooks/useAccountContext.ts} (82%) create mode 100644 app/javascript/mastodon/features/account_timeline/hooks/usePinned.ts delete mode 100644 app/javascript/mastodon/features/account_timeline/index.jsx rename app/javascript/mastodon/features/account_timeline/{v2 => }/index.tsx (85%) rename app/javascript/mastodon/features/account_timeline/{v2 => }/styles.module.scss (100%) delete mode 100644 app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx delete mode 100644 app/javascript/mastodon/features/account_timeline/v2/status_header.tsx diff --git a/app/javascript/mastodon/features/account_timeline/components/badges.tsx b/app/javascript/mastodon/components/account_header/badges.tsx similarity index 98% rename from app/javascript/mastodon/features/account_timeline/components/badges.tsx rename to app/javascript/mastodon/components/account_header/badges.tsx index ec8b00f5ac3dfa..401f0d0fb1f399 100644 --- a/app/javascript/mastodon/features/account_timeline/components/badges.tsx +++ b/app/javascript/mastodon/components/account_header/badges.tsx @@ -4,6 +4,10 @@ import type { FC } from 'react'; import { FormattedMessage } from 'react-intl'; import { fetchRelationships } from '@/mastodon/actions/accounts'; +import { useAccount } from '@/mastodon/hooks/useAccount'; +import type { AccountRole } from '@/mastodon/models/account'; +import { useAppDispatch, useAppSelector } from '@/mastodon/store'; + import { AdminBadge, AutomatedBadge, @@ -11,10 +15,7 @@ import { BlockedBadge, GroupBadge, MutedBadge, -} from '@/mastodon/components/badge'; -import { useAccount } from '@/mastodon/hooks/useAccount'; -import type { AccountRole } from '@/mastodon/models/account'; -import { useAppDispatch, useAppSelector } from '@/mastodon/store'; +} from '../badge'; import classes from './styles.module.scss'; diff --git a/app/javascript/mastodon/features/account_timeline/components/buttons.tsx b/app/javascript/mastodon/components/account_header/buttons.tsx similarity index 95% rename from app/javascript/mastodon/features/account_timeline/components/buttons.tsx rename to app/javascript/mastodon/components/account_header/buttons.tsx index 0c24207b6abfc1..737a3b9ca5a302 100644 --- a/app/javascript/mastodon/features/account_timeline/components/buttons.tsx +++ b/app/javascript/mastodon/components/account_header/buttons.tsx @@ -6,9 +6,6 @@ import { defineMessages, useIntl } from 'react-intl'; import classNames from 'classnames'; import { followAccount } from '@/mastodon/actions/accounts'; -import { CopyIconButton } from '@/mastodon/components/copy_icon_button'; -import { FollowButton } from '@/mastodon/components/follow_button'; -import { IconButton } from '@/mastodon/components/icon_button'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { getAccountHidden } from '@/mastodon/selectors/accounts'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; @@ -16,6 +13,10 @@ import NotificationsIcon from '@/material-icons/400-24px/notifications.svg?react import NotificationsActiveIcon from '@/material-icons/400-24px/notifications_active-fill.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; +import { CopyIconButton } from '../copy_icon_button'; +import { FollowButton } from '../follow_button'; +import { IconButton } from '../icon_button'; + import { AccountMenu } from './menu'; const messages = defineMessages({ diff --git a/app/javascript/mastodon/features/account_timeline/components/fields.tsx b/app/javascript/mastodon/components/account_header/fields.tsx similarity index 93% rename from app/javascript/mastodon/features/account_timeline/components/fields.tsx rename to app/javascript/mastodon/components/account_header/fields.tsx index 38e93b100fb61f..ce2fe9d3225d1a 100644 --- a/app/javascript/mastodon/features/account_timeline/components/fields.tsx +++ b/app/javascript/mastodon/components/account_header/fields.tsx @@ -7,21 +7,21 @@ import classNames from 'classnames'; import IconVerified from '@/images/icons/icon_verified.svg?react'; import { openModal } from '@/mastodon/actions/modal'; -import { CustomEmojiProvider } from '@/mastodon/components/emoji/context'; -import type { EmojiHTMLProps } from '@/mastodon/components/emoji/html'; -import { EmojiHTML } from '@/mastodon/components/emoji/html'; -import { Icon } from '@/mastodon/components/icon'; -import { IconButton } from '@/mastodon/components/icon_button'; -import { MiniCard } from '@/mastodon/components/mini_card'; -import { useElementHandledLink } from '@/mastodon/components/status/handled_link'; +import { useFieldHtml } from '@/mastodon/features/account_timeline/hooks/useFieldHtml'; +import { cleanExtraEmojis } from '@/mastodon/features/emoji/normalize'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useResizeObserver } from '@/mastodon/hooks/useObserver'; +import type { AccountFieldShape } from '@/mastodon/models/account'; import { useAppDispatch } from '@/mastodon/store'; import MoreIcon from '@/material-icons/400-24px/more_horiz.svg?react'; -import { cleanExtraEmojis } from '../../emoji/normalize'; -import type { AccountField } from '../common'; -import { useFieldHtml } from '../hooks/useFieldHtml'; +import { CustomEmojiProvider } from '../emoji/context'; +import type { EmojiHTMLProps } from '../emoji/html'; +import { EmojiHTML } from '../emoji/html'; +import { Icon } from '../icon'; +import { IconButton } from '../icon_button'; +import { MiniCard } from '../mini_card'; +import { useElementHandledLink } from '../status/handled_link'; import classes from './styles.module.scss'; @@ -37,6 +37,12 @@ const dateFormatOptions: Intl.DateTimeFormatOptions = { minute: '2-digit', }; +export interface AccountField extends AccountFieldShape { + nameHasEmojis: boolean; + value_plain: string; + valueHasEmojis: boolean; +} + export const AccountHeaderFields: FC<{ accountId: string }> = ({ accountId, }) => { diff --git a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx b/app/javascript/mastodon/components/account_header/index.tsx similarity index 94% rename from app/javascript/mastodon/features/account_timeline/components/account_header.tsx rename to app/javascript/mastodon/components/account_header/index.tsx index 174f8623652e9b..9222d0eb320232 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_header.tsx +++ b/app/javascript/mastodon/components/account_header/index.tsx @@ -4,9 +4,6 @@ import classNames from 'classnames'; import { Helmet } from 'react-helmet'; import { openModal } from '@/mastodon/actions/modal'; -import { AccountBio } from '@/mastodon/components/account_bio'; -import { Avatar } from '@/mastodon/components/avatar'; -import { AnimateEmojiProvider } from '@/mastodon/components/emoji/context'; import FollowRequestNoteContainer from '@/mastodon/features/account/containers/follow_request_note_container'; import { useLayout } from '@/mastodon/hooks/useLayout'; import { useVisibility } from '@/mastodon/hooks/useVisibility'; @@ -19,17 +16,20 @@ import type { Account } from '@/mastodon/models/account'; import { getAccountHidden } from '@/mastodon/selectors/accounts'; import { useAppSelector, useAppDispatch } from '@/mastodon/store'; -import { FamiliarFollowers } from '../../../components/familiar_followers'; +import { AccountBio } from '../account_bio'; +import { Avatar } from '../avatar'; +import { AnimateEmojiProvider } from '../emoji/context'; +import { FamiliarFollowers } from '../familiar_followers'; -import { AccountName } from './account_name'; -import { AccountSubscriptionForm } from './account_subscription_form'; import { AccountButtons } from './buttons'; import { AccountHeaderFields } from './fields'; import { MemorialNote } from './memorial_note'; import { MovedNote } from './moved_note'; +import { AccountName } from './name'; import { AccountNote } from './note'; import { AccountNumberFields } from './number_fields'; import classes from './styles.module.scss'; +import { AccountSubscriptionForm } from './subscription_form'; import { AccountTabs } from './tabs'; const titleFromAccount = (account: Account) => { diff --git a/app/javascript/mastodon/features/account_timeline/components/memorial_note.tsx b/app/javascript/mastodon/components/account_header/memorial_note.tsx similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/memorial_note.tsx rename to app/javascript/mastodon/components/account_header/memorial_note.tsx diff --git a/app/javascript/mastodon/features/account_timeline/components/menu.tsx b/app/javascript/mastodon/components/account_header/menu.tsx similarity index 99% rename from app/javascript/mastodon/features/account_timeline/components/menu.tsx rename to app/javascript/mastodon/components/account_header/menu.tsx index 366115ee290bb1..936609e91fdf21 100644 --- a/app/javascript/mastodon/features/account_timeline/components/menu.tsx +++ b/app/javascript/mastodon/components/account_header/menu.tsx @@ -21,7 +21,6 @@ import { import { openModal } from '@/mastodon/actions/modal'; import { initMuteModal } from '@/mastodon/actions/mutes'; import { initReport } from '@/mastodon/actions/reports'; -import { Dropdown } from '@/mastodon/components/dropdown_menu'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useIdentity } from '@/mastodon/identity_context'; import type { Account } from '@/mastodon/models/account'; @@ -40,6 +39,8 @@ import PersonRemoveIcon from '@/material-icons/400-24px/person_remove.svg?react' import ReportIcon from '@/material-icons/400-24px/report.svg?react'; import ShareIcon from '@/material-icons/400-24px/share.svg?react'; +import { Dropdown } from '../dropdown_menu'; + import classes from './styles.module.scss'; export const AccountMenu: FC<{ accountId: string }> = ({ accountId }) => { diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx b/app/javascript/mastodon/components/account_header/moved_note.tsx similarity index 87% rename from app/javascript/mastodon/features/account_timeline/components/moved_note.tsx rename to app/javascript/mastodon/components/account_header/moved_note.tsx index f2457dedd74712..153c206bbc96c5 100644 --- a/app/javascript/mastodon/features/account_timeline/components/moved_note.tsx +++ b/app/javascript/mastodon/components/account_header/moved_note.tsx @@ -2,9 +2,10 @@ import { FormattedMessage } from 'react-intl'; import { Link } from 'react-router-dom'; -import { DisplayName } from '@/mastodon/components/display_name'; -import { AvatarOverlay } from 'mastodon/components/avatar_overlay'; -import { useAppSelector } from 'mastodon/store'; +import { useAppSelector } from '@/mastodon/store'; + +import { AvatarOverlay } from '../avatar_overlay'; +import { DisplayName } from '../display_name'; export const MovedNote: React.FC<{ accountId: string; diff --git a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx b/app/javascript/mastodon/components/account_header/name.tsx similarity index 96% rename from app/javascript/mastodon/features/account_timeline/components/account_name.tsx rename to app/javascript/mastodon/components/account_header/name.tsx index 9f7dc528ea42d7..4f2bbcc3178ab7 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_name.tsx +++ b/app/javascript/mastodon/components/account_header/name.tsx @@ -8,10 +8,6 @@ import classNames from 'classnames'; import Overlay from 'react-overlays/esm/Overlay'; import { showAlert } from '@/mastodon/actions/alerts'; -import { FollowsYouBadge } from '@/mastodon/components/badge'; -import { Button } from '@/mastodon/components/button'; -import { DisplayName } from '@/mastodon/components/display_name'; -import { Icon } from '@/mastodon/components/icon'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useRelationship } from '@/mastodon/hooks/useRelationship'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; @@ -20,6 +16,11 @@ import ContentCopyIcon from '@/material-icons/400-24px/content_copy.svg?react'; import HelpIcon from '@/material-icons/400-24px/help.svg?react'; import DomainIcon from '@/material-icons/400-24px/language.svg?react'; +import { FollowsYouBadge } from '../badge'; +import { Button } from '../button'; +import { DisplayName } from '../display_name'; +import { Icon } from '../icon'; + import { AccountBadges } from './badges'; import classes from './styles.module.scss'; diff --git a/app/javascript/mastodon/features/account_timeline/components/note.tsx b/app/javascript/mastodon/components/account_header/note.tsx similarity index 93% rename from app/javascript/mastodon/features/account_timeline/components/note.tsx rename to app/javascript/mastodon/components/account_header/note.tsx index 6bd727791ad91b..d58c37aec94620 100644 --- a/app/javascript/mastodon/features/account_timeline/components/note.tsx +++ b/app/javascript/mastodon/components/account_header/note.tsx @@ -5,11 +5,12 @@ import { defineMessages, useIntl } from 'react-intl'; import { fetchRelationships } from '@/mastodon/actions/accounts'; import { openModal } from '@/mastodon/actions/modal'; -import { Callout } from '@/mastodon/components/callout'; -import { IconButton } from '@/mastodon/components/icon_button'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; import EditIcon from '@/material-icons/400-24px/edit_square.svg?react'; +import { Callout } from '../callout'; +import { IconButton } from '../icon_button'; + import classes from './styles.module.scss'; const messages = defineMessages({ diff --git a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx b/app/javascript/mastodon/components/account_header/number_fields.tsx similarity index 91% rename from app/javascript/mastodon/features/account_timeline/components/number_fields.tsx rename to app/javascript/mastodon/components/account_header/number_fields.tsx index fb6301952f7d76..50f7f67aabeec2 100644 --- a/app/javascript/mastodon/features/account_timeline/components/number_fields.tsx +++ b/app/javascript/mastodon/components/account_header/number_fields.tsx @@ -4,15 +4,13 @@ import type { FC } from 'react'; import { FormattedMessage, useIntl } from 'react-intl'; import { openModal } from '@/mastodon/actions/modal'; -import { FormattedDateWrapper } from '@/mastodon/components/formatted_date'; -import { - NumberFields, - NumberFieldsItem, -} from '@/mastodon/components/number_fields'; -import { ShortNumber } from '@/mastodon/components/short_number'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useAppDispatch } from '@/mastodon/store'; +import { FormattedDateWrapper } from '../formatted_date'; +import { NumberFields, NumberFieldsItem } from '../number_fields'; +import { ShortNumber } from '../short_number'; + export const AccountNumberFields: FC<{ accountId: string }> = ({ accountId, }) => { diff --git a/app/javascript/mastodon/features/account_timeline/components/styles.module.scss b/app/javascript/mastodon/components/account_header/styles.module.scss similarity index 100% rename from app/javascript/mastodon/features/account_timeline/components/styles.module.scss rename to app/javascript/mastodon/components/account_header/styles.module.scss diff --git a/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx b/app/javascript/mastodon/components/account_header/subscription_form.tsx similarity index 92% rename from app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx rename to app/javascript/mastodon/components/account_header/subscription_form.tsx index e3fc8146e6c746..f78077bef76910 100644 --- a/app/javascript/mastodon/features/account_timeline/components/account_subscription_form.tsx +++ b/app/javascript/mastodon/components/account_header/subscription_form.tsx @@ -8,16 +8,17 @@ import { Link } from 'react-router-dom'; import { AxiosError } from 'axios'; -import { apiSubscribeByEmail } from 'mastodon/api/accounts'; +import { apiSubscribeByEmail } from '@/mastodon/api/accounts'; import type { ValidationErrorResponse, ValidationError, -} from 'mastodon/api_types/errors'; -import { Button } from 'mastodon/components/button'; -import { DisplayName } from 'mastodon/components/display_name'; -import type { FieldStatus } from 'mastodon/components/form_fields'; -import { TextInputField } from 'mastodon/components/form_fields/text_input_field'; -import { useAppSelector } from 'mastodon/store'; +} from '@/mastodon/api_types/errors'; +import { useAppSelector } from '@/mastodon/store'; + +import { Button } from '../button'; +import { DisplayName } from '../display_name'; +import type { FieldStatus } from '../form_fields'; +import { TextInputField } from '../form_fields/text_input_field'; import classes from './styles.module.scss'; diff --git a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx b/app/javascript/mastodon/components/account_header/tabs.tsx similarity index 95% rename from app/javascript/mastodon/features/account_timeline/components/tabs.tsx rename to app/javascript/mastodon/components/account_header/tabs.tsx index 5fc56f8e3a1823..f2f4ebbe278ed9 100644 --- a/app/javascript/mastodon/features/account_timeline/components/tabs.tsx +++ b/app/javascript/mastodon/components/account_header/tabs.tsx @@ -4,10 +4,11 @@ import { FormattedMessage } from 'react-intl'; import type { NavLinkProps } from 'react-router-dom'; -import { TabLink, TabList } from '@/mastodon/components/tab_list'; import { useAccount } from '@/mastodon/hooks/useAccount'; import { useAccountId } from '@/mastodon/hooks/useAccountId'; +import { TabLink, TabList } from '../tab_list'; + import classes from './styles.module.scss'; const isActive: Required['isActive'] = (match, location) => diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.tsx b/app/javascript/mastodon/components/limited_account_hint.tsx similarity index 78% rename from app/javascript/mastodon/features/account_timeline/components/limited_account_hint.tsx rename to app/javascript/mastodon/components/limited_account_hint.tsx index f06bf574a77810..b780e802e5f112 100644 --- a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.tsx +++ b/app/javascript/mastodon/components/limited_account_hint.tsx @@ -2,10 +2,11 @@ import { useCallback } from 'react'; import { FormattedMessage } from 'react-intl'; -import { revealAccount } from 'mastodon/actions/accounts_typed'; -import { Button } from 'mastodon/components/button'; -import { domain } from 'mastodon/initial_state'; -import { useAppDispatch } from 'mastodon/store'; +import { revealAccount } from '@/mastodon/actions/accounts_typed'; +import { domain } from '@/mastodon/initial_state'; +import { useAppDispatch } from '@/mastodon/store'; + +import { Button } from './button'; export const LimitedAccountHint: React.FC<{ accountId: string }> = ({ accountId, diff --git a/app/javascript/mastodon/components/status_list.jsx b/app/javascript/mastodon/components/status_list.jsx index 817a9e9ce4be8f..5e2c960ed15294 100644 --- a/app/javascript/mastodon/components/status_list.jsx +++ b/app/javascript/mastodon/components/status_list.jsx @@ -8,7 +8,7 @@ import { debounce } from 'lodash'; import { TIMELINE_GAP, TIMELINE_PINNED_VIEW_ALL, TIMELINE_SUGGESTIONS } from 'mastodon/actions/timelines'; import { RegenerationIndicator } from 'mastodon/components/regeneration_indicator'; import { InlineFollowSuggestions } from 'mastodon/features/home_timeline/components/inline_follow_suggestions'; -import { PinnedShowAllButton } from '@/mastodon/features/account_timeline/v2/pinned_statuses'; +import { PinnedShowAllButton } from '@/mastodon/features/account_timeline/components/pinned_statuses'; import { StatusQuoteManager } from '../components/status_quoted'; diff --git a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx index e1de024a695f0f..19ced4ce23cade 100644 --- a/app/javascript/mastodon/features/account_featured/components/empty_message.tsx +++ b/app/javascript/mastodon/features/account_featured/components/empty_message.tsx @@ -8,7 +8,7 @@ import { Link } from 'react-router-dom'; import { openModal } from '@/mastodon/actions/modal'; import { Button } from '@/mastodon/components/button'; import { EmptyState } from '@/mastodon/components/empty_state'; -import { LimitedAccountHint } from '@/mastodon/features/account_timeline/components/limited_account_hint'; +import { LimitedAccountHint } from '@/mastodon/components/limited_account_hint'; import { areCollectionsEnabled } from '@/mastodon/features/collections/utils'; import { useCurrentAccountId } from '@/mastodon/hooks/useAccountId'; import { useAppDispatch } from '@/mastodon/store'; diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index 439016cf9c3a62..f6a9288e214e31 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -6,26 +6,26 @@ import { useHistory } from 'react-router'; import { List as ImmutableList } from 'immutable'; -import AddIcon from '@/material-icons/400-24px/add.svg?react'; -import { fetchEndorsedAccounts } from 'mastodon/actions/accounts'; -import { AccountListItem } from 'mastodon/components/account_list_item'; -import { ColumnBackButton } from 'mastodon/components/column_back_button'; -import { LoadingIndicator } from 'mastodon/components/loading_indicator'; -import { RemoteHint } from 'mastodon/components/remote_hint'; +import { fetchEndorsedAccounts } from '@/mastodon/actions/accounts'; +import { AccountHeader } from '@/mastodon/components/account_header'; +import { AccountListItem } from '@/mastodon/components/account_list_item'; +import { ColumnBackButton } from '@/mastodon/components/column_back_button'; +import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; +import { RemoteHint } from '@/mastodon/components/remote_hint'; import { Article, ItemList, Scrollable, -} from 'mastodon/components/scrollable_list/components'; -import type { TruncatedListItemInfo } from 'mastodon/components/truncated_list'; -import { TruncatedListItems } from 'mastodon/components/truncated_list'; -import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header'; -import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; -import Column from 'mastodon/features/ui/components/column'; -import { useAccount } from 'mastodon/hooks/useAccount'; -import { useAccountId } from 'mastodon/hooks/useAccountId'; -import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; -import { useAppDispatch, useAppSelector } from 'mastodon/store'; +} from '@/mastodon/components/scrollable_list/components'; +import type { TruncatedListItemInfo } from '@/mastodon/components/truncated_list'; +import { TruncatedListItems } from '@/mastodon/components/truncated_list'; +import BundleColumnError from '@/mastodon/features/ui/components/bundle_column_error'; +import Column from '@/mastodon/features/ui/components/column'; +import { useAccount } from '@/mastodon/hooks/useAccount'; +import { useAccountId } from '@/mastodon/hooks/useAccountId'; +import { useAccountVisibility } from '@/mastodon/hooks/useAccountVisibility'; +import { useAppDispatch, useAppSelector } from '@/mastodon/store'; +import AddIcon from '@/material-icons/400-24px/add.svg?react'; import { useAccountCollections } from '../collections'; import { CollectionListItem } from '../collections/components/collection_list_item'; diff --git a/app/javascript/mastodon/features/account_gallery/index.tsx b/app/javascript/mastodon/features/account_gallery/index.tsx index 069f1242f701a3..feba6f454d5e52 100644 --- a/app/javascript/mastodon/features/account_gallery/index.tsx +++ b/app/javascript/mastodon/features/account_gallery/index.tsx @@ -4,23 +4,23 @@ import { FormattedMessage } from 'react-intl'; import { List as ImmutableList, isList } from 'immutable'; -import { openModal } from 'mastodon/actions/modal'; -import { expandAccountMediaTimeline } from 'mastodon/actions/timelines'; -import { ColumnBackButton } from 'mastodon/components/column_back_button'; -import { RemoteHint } from 'mastodon/components/remote_hint'; -import ScrollableList from 'mastodon/components/scrollable_list'; -import { AccountHeader } from 'mastodon/features/account_timeline/components/account_header'; -import { LimitedAccountHint } from 'mastodon/features/account_timeline/components/limited_account_hint'; -import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; -import Column from 'mastodon/features/ui/components/column'; -import { useAccountId } from 'mastodon/hooks/useAccountId'; -import { useAccountVisibility } from 'mastodon/hooks/useAccountVisibility'; -import type { MediaAttachment } from 'mastodon/models/media_attachment'; +import { openModal } from '@/mastodon/actions/modal'; +import { expandAccountMediaTimeline } from '@/mastodon/actions/timelines'; +import { AccountHeader } from '@/mastodon/components/account_header'; +import { ColumnBackButton } from '@/mastodon/components/column_back_button'; +import { LimitedAccountHint } from '@/mastodon/components/limited_account_hint'; +import { RemoteHint } from '@/mastodon/components/remote_hint'; +import ScrollableList from '@/mastodon/components/scrollable_list'; +import BundleColumnError from '@/mastodon/features/ui/components/bundle_column_error'; +import Column from '@/mastodon/features/ui/components/column'; +import { useAccountId } from '@/mastodon/hooks/useAccountId'; +import { useAccountVisibility } from '@/mastodon/hooks/useAccountVisibility'; +import type { MediaAttachment } from '@/mastodon/models/media_attachment'; import { useAppSelector, useAppDispatch, createAppSelector, -} from 'mastodon/store'; +} from '@/mastodon/store'; import { MediaItem } from './components/media_item'; diff --git a/app/javascript/mastodon/features/account_timeline/common.ts b/app/javascript/mastodon/features/account_timeline/common.ts deleted file mode 100644 index b036530e14dd72..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/common.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { AccountFieldShape } from '@/mastodon/models/account'; - -export interface AccountField extends AccountFieldShape { - nameHasEmojis: boolean; - value_plain: string; - valueHasEmojis: boolean; -} diff --git a/app/javascript/mastodon/features/account_timeline/v2/featured_tags.tsx b/app/javascript/mastodon/features/account_timeline/components/featured_tags.tsx similarity index 96% rename from app/javascript/mastodon/features/account_timeline/v2/featured_tags.tsx rename to app/javascript/mastodon/features/account_timeline/components/featured_tags.tsx index b8061fced433d4..c4d43bb2b9f841 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/featured_tags.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/featured_tags.tsx @@ -13,8 +13,8 @@ import { useOverflowButton } from '@/mastodon/hooks/useOverflow'; import { selectAccountFeaturedTags } from '@/mastodon/selectors/accounts'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; -import { useAccountContext } from './context'; -import classes from './styles.module.scss'; +import { useAccountContext } from '../hooks/useAccountContext'; +import classes from '../styles.module.scss'; export const FeaturedTags: FC<{ accountId: string }> = ({ accountId }) => { // Fetch tags. diff --git a/app/javascript/mastodon/features/account_timeline/v2/filters.tsx b/app/javascript/mastodon/features/account_timeline/components/filters.tsx similarity index 95% rename from app/javascript/mastodon/features/account_timeline/v2/filters.tsx rename to app/javascript/mastodon/features/account_timeline/components/filters.tsx index 2dc8254a201024..e24ca642093fb4 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/filters.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/filters.tsx @@ -7,14 +7,13 @@ import { useParams } from 'react-router'; import Overlay from 'react-overlays/esm/Overlay'; +import { AccountTabs } from '@/mastodon/components/account_header/tabs'; import { Toggle } from '@/mastodon/components/form_fields'; import { Icon } from '@/mastodon/components/icon'; import KeyboardArrowDownIcon from '@/material-icons/400-24px/keyboard_arrow_down.svg?react'; -import { AccountTabs } from '../components/tabs'; - -import { useAccountContext } from './context'; -import classes from './styles.module.scss'; +import { useAccountContext } from '../hooks/useAccountContext'; +import classes from '../styles.module.scss'; export const AccountFilters: FC = () => { const { acct } = useParams<{ acct: string }>(); diff --git a/app/javascript/mastodon/features/account_timeline/components/info.tsx b/app/javascript/mastodon/features/account_timeline/components/info.tsx deleted file mode 100644 index bb99999c41e0d9..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/components/info.tsx +++ /dev/null @@ -1,68 +0,0 @@ -import type { FC } from 'react'; - -import { FormattedMessage } from 'react-intl'; - -import type { Relationship } from '@/mastodon/models/relationship'; - -export const AccountInfo: FC<{ relationship?: Relationship }> = ({ - relationship, -}) => { - if (!relationship) { - return null; - } - return ( -
    - {(relationship.followed_by || relationship.requested_by) && ( - - - - )} - {relationship.blocking && ( - - - - )} - {relationship.muting && ( - - - - )} - {relationship.domain_blocking && ( - - - - )} -
    - ); -}; - -const AccountInfoFollower: FC<{ relationship: Relationship }> = ({ - relationship, -}) => { - if ( - relationship.followed_by && - (relationship.following || relationship.requested) - ) { - return ( - - ); - } else if (relationship.followed_by) { - return ( - - ); - } else if (relationship.requested_by) { - return ( - - ); - } - return null; -}; diff --git a/app/javascript/mastodon/features/account_timeline/components/pinned_statuses.tsx b/app/javascript/mastodon/features/account_timeline/components/pinned_statuses.tsx new file mode 100644 index 00000000000000..11de336002b057 --- /dev/null +++ b/app/javascript/mastodon/features/account_timeline/components/pinned_statuses.tsx @@ -0,0 +1,55 @@ +import type { FC } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import classNames from 'classnames'; + +import IconPinned from '@/images/icons/icon_pinned.svg?react'; +import { Badge } from '@/mastodon/components/badge'; +import { Button } from '@/mastodon/components/button'; +import { Icon } from '@/mastodon/components/icon'; +import { StatusHeader } from '@/mastodon/components/status/header'; +import type { StatusHeaderRenderFn } from '@/mastodon/components/status/header'; + +import { useAccountContext } from '../hooks/useAccountContext'; +import classes from '../styles.module.scss'; + +export const renderPinnedStatusHeader: StatusHeaderRenderFn = ({ + featured, + ...args +}) => { + if (!featured) { + return ; + } + return ( + + } + label={ + + } + /> + + ); +}; + +export const PinnedShowAllButton: FC = () => { + const { onShowAllPinned } = useAccountContext(); + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx b/app/javascript/mastodon/features/account_timeline/components/tags_suggestions.tsx similarity index 98% rename from app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx rename to app/javascript/mastodon/features/account_timeline/components/tags_suggestions.tsx index f3ac52ca3bca61..555dc6e7c9ae7b 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/tags_suggestions.tsx +++ b/app/javascript/mastodon/features/account_timeline/components/tags_suggestions.tsx @@ -20,7 +20,7 @@ import { createAppSelector, } from '@/mastodon/store'; -import classes from './styles.module.scss'; +import classes from '../styles.module.scss'; const MAX_SUGGESTED_TAGS = 3; diff --git a/app/javascript/mastodon/features/account_timeline/v2/context.tsx b/app/javascript/mastodon/features/account_timeline/hooks/useAccountContext.ts similarity index 82% rename from app/javascript/mastodon/features/account_timeline/v2/context.tsx rename to app/javascript/mastodon/features/account_timeline/hooks/useAccountContext.ts index c95eba37339d8b..46595425bd3408 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/context.tsx +++ b/app/javascript/mastodon/features/account_timeline/hooks/useAccountContext.ts @@ -1,4 +1,3 @@ -import type { FC, ReactNode } from 'react'; import { createContext, useCallback, @@ -10,7 +9,7 @@ import { import { useStorageState } from '@/mastodon/hooks/useStorage'; interface AccountTimelineContextValue { - accountId: string; + accountId: string | null; boosts: boolean; replies: boolean; showAllPinned: boolean; @@ -19,13 +18,20 @@ interface AccountTimelineContextValue { onShowAllPinned: () => void; } -const AccountTimelineContext = +export const AccountTimelineContext = createContext(null); -export const AccountTimelineProvider: FC<{ - accountId: string; - children: ReactNode; -}> = ({ accountId, children }) => { +export function useAccountContext() { + const values = useContext(AccountTimelineContext); + if (!values) { + throw new Error( + 'useAccountFilters must be used within an AccountTimelineProvider', + ); + } + return values; +} + +export const useAccountContextValue = (accountId?: string | null) => { const storageOptions = { type: 'local', prefix: 'account-filters', @@ -62,9 +68,9 @@ export const AccountTimelineProvider: FC<{ }, []); // Memoize the context value to avoid unnecessary re-renders. - const value = useMemo( + return useMemo( () => ({ - accountId, + accountId: accountId ?? null, boosts, replies, showAllPinned, @@ -82,20 +88,4 @@ export const AccountTimelineProvider: FC<{ showAllPinned, ], ); - - return ( - - {children} - - ); }; - -export function useAccountContext() { - const values = useContext(AccountTimelineContext); - if (!values) { - throw new Error( - 'useAccountFilters must be used within an AccountTimelineProvider', - ); - } - return values; -} diff --git a/app/javascript/mastodon/features/account_timeline/hooks/usePinned.ts b/app/javascript/mastodon/features/account_timeline/hooks/usePinned.ts new file mode 100644 index 00000000000000..2ff2c16965e3fb --- /dev/null +++ b/app/javascript/mastodon/features/account_timeline/hooks/usePinned.ts @@ -0,0 +1,58 @@ +import { useEffect, useMemo } from 'react'; + +import { TIMELINE_PINNED_VIEW_ALL } from '@/mastodon/actions/timelines'; +import { + expandTimelineByKey, + timelineKey, +} from '@/mastodon/actions/timelines_typed'; +import { selectTimelineByKey } from '@/mastodon/selectors/timelines'; +import { useAppDispatch, useAppSelector } from '@/mastodon/store'; + +import { useAccountContext } from './useAccountContext'; + +export function usePinnedStatusIds({ + accountId, + tagged, + forceEmptyState = false, +}: { + accountId: string; + tagged?: string; + forceEmptyState?: boolean; +}) { + const pinnedKey = timelineKey({ + type: 'account', + userId: accountId, + tagged, + pinned: true, + replies: true, + }); + + const dispatch = useAppDispatch(); + useEffect(() => { + dispatch(expandTimelineByKey({ key: pinnedKey })); + }, [dispatch, pinnedKey]); + + const pinnedTimeline = useAppSelector((state) => + selectTimelineByKey(state, pinnedKey), + ); + + const { showAllPinned } = useAccountContext(); + + const pinnedTimelineItems = pinnedTimeline?.items; // Make a const to avoid the React Compiler complaining. + const pinnedStatusIds = useMemo(() => { + if (!pinnedTimelineItems || forceEmptyState) { + return undefined; + } + + if (pinnedTimelineItems.size <= 1 || showAllPinned) { + return pinnedTimelineItems; + } + return pinnedTimelineItems.slice(0, 1).push(TIMELINE_PINNED_VIEW_ALL); + }, [forceEmptyState, pinnedTimelineItems, showAllPinned]); + + return { + statusIds: pinnedStatusIds, + isLoading: !!pinnedTimeline?.isLoading, + showAllPinned, + }; +} diff --git a/app/javascript/mastodon/features/account_timeline/index.jsx b/app/javascript/mastodon/features/account_timeline/index.jsx deleted file mode 100644 index 70e607d5f2d009..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/index.jsx +++ /dev/null @@ -1,197 +0,0 @@ -import PropTypes from 'prop-types'; - -import { FormattedMessage } from 'react-intl'; - -import { List as ImmutableList } from 'immutable'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import ImmutablePureComponent from 'react-immutable-pure-component'; -import { connect } from 'react-redux'; - -import BundleColumnError from 'mastodon/features/ui/components/bundle_column_error'; -import { me } from 'mastodon/initial_state'; -import { normalizeForLookup } from 'mastodon/reducers/accounts_map'; -import { getAccountHidden } from 'mastodon/selectors/accounts'; - -import { lookupAccount, fetchAccount } from '../../actions/accounts'; -import { expandAccountFeaturedTimeline, expandAccountTimeline, connectTimeline, disconnectTimeline } from '../../actions/timelines'; -import { ColumnBackButton } from '../../components/column_back_button'; -import { LoadingIndicator } from '../../components/loading_indicator'; -import StatusList from '../../components/status_list'; -import Column from '../ui/components/column'; -import { RemoteHint } from 'mastodon/components/remote_hint'; - -import { AccountHeader } from './components/account_header'; -import { LimitedAccountHint } from './components/limited_account_hint'; -import { FeaturedCarousel } from '@/mastodon/components/featured_carousel'; - -const emptyList = ImmutableList(); - -const mapStateToProps = (state, { params: { acct, id, tagged }, withReplies = false }) => { - const accountId = id || state.accounts_map[normalizeForLookup(acct)]; - - if (accountId === null) { - return { - isLoading: false, - isAccount: false, - statusIds: emptyList, - }; - } else if (!accountId) { - return { - isLoading: true, - statusIds: emptyList, - }; - } - - const path = withReplies ? `${accountId}:with_replies` : `${accountId}${tagged ? `:${tagged}` : ''}`; - - return { - accountId, - isAccount: !!state.getIn(['accounts', accountId]), - statusIds: state.getIn(['timelines', `account:${path}`, 'items'], emptyList), - isLoading: state.getIn(['timelines', `account:${path}`, 'isLoading']), - hasMore: state.getIn(['timelines', `account:${path}`, 'hasMore']), - suspended: state.getIn(['accounts', accountId, 'suspended'], false), - hidden: getAccountHidden(state, accountId), - blockedBy: state.getIn(['relationships', accountId, 'blocked_by'], false), - }; -}; - -class AccountTimeline extends ImmutablePureComponent { - - static propTypes = { - params: PropTypes.shape({ - acct: PropTypes.string, - id: PropTypes.string, - tagged: PropTypes.string, - }).isRequired, - accountId: PropTypes.string, - dispatch: PropTypes.func.isRequired, - statusIds: ImmutablePropTypes.list, - isLoading: PropTypes.bool, - hasMore: PropTypes.bool, - withReplies: PropTypes.bool, - blockedBy: PropTypes.bool, - isAccount: PropTypes.bool, - suspended: PropTypes.bool, - hidden: PropTypes.bool, - multiColumn: PropTypes.bool, - }; - - _load () { - const { accountId, withReplies, params: { tagged }, dispatch } = this.props; - - dispatch(fetchAccount(accountId)); - - if (!withReplies) { - dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); - } - - dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); - - if (accountId === me) { - dispatch(connectTimeline(`account:${me}`)); - } - } - - componentDidMount () { - const { params: { acct }, accountId, dispatch } = this.props; - - if (accountId) { - this._load(); - } else { - dispatch(lookupAccount(acct)); - } - } - - componentDidUpdate (prevProps) { - const { params: { acct, tagged }, accountId, withReplies, dispatch } = this.props; - - if (prevProps.accountId !== accountId && accountId) { - this._load(); - } else if (prevProps.params.acct !== acct) { - dispatch(lookupAccount(acct)); - } else if (prevProps.params.tagged !== tagged) { - if (!withReplies) { - dispatch(expandAccountFeaturedTimeline(accountId, { tagged })); - } - dispatch(expandAccountTimeline(accountId, { withReplies, tagged })); - } - - if (prevProps.accountId === me && accountId !== me) { - dispatch(disconnectTimeline({ timeline: `account:${me}` })); - } - } - - componentWillUnmount () { - const { dispatch, accountId } = this.props; - - if (accountId === me) { - dispatch(disconnectTimeline({ timeline: `account:${me}` })); - } - } - - handleLoadMore = maxId => { - this.props.dispatch(expandAccountTimeline(this.props.accountId, { maxId, withReplies: this.props.withReplies, tagged: this.props.params.tagged })); - }; - - render () { - const { accountId, statusIds, isLoading, hasMore, blockedBy, suspended, isAccount, hidden, multiColumn, remote, remoteUrl, params: { tagged } } = this.props; - - if (isLoading && statusIds.isEmpty()) { - return ( - - - - ); - } else if (!isLoading && !isAccount) { - return ( - - ); - } - - let emptyMessage; - - const forceEmptyState = suspended || blockedBy || hidden; - - if (suspended) { - emptyMessage = ; - } else if (hidden) { - emptyMessage = ; - } else if (blockedBy) { - emptyMessage = ; - } else if (remote && statusIds.isEmpty()) { - emptyMessage = ; - } else { - emptyMessage = ; - } - - return ( - - - - - - {!forceEmptyState && } - - } - alwaysPrepend - append={} - scrollKey='account_timeline' - statusIds={forceEmptyState ? emptyList : statusIds} - isLoading={isLoading} - hasMore={!forceEmptyState && hasMore} - onLoadMore={this.handleLoadMore} - emptyMessage={emptyMessage} - bindToDocument={!multiColumn} - timelineId='account' - withCounters - /> - - ); - } - -} - -export default connect(mapStateToProps)(AccountTimeline); diff --git a/app/javascript/mastodon/features/account_timeline/v2/index.tsx b/app/javascript/mastodon/features/account_timeline/index.tsx similarity index 85% rename from app/javascript/mastodon/features/account_timeline/v2/index.tsx rename to app/javascript/mastodon/features/account_timeline/index.tsx index 693813bdbe9f6b..ce1e99a45fadaf 100644 --- a/app/javascript/mastodon/features/account_timeline/v2/index.tsx +++ b/app/javascript/mastodon/features/account_timeline/index.tsx @@ -12,8 +12,10 @@ import { expandTimelineByKey, timelineKey, } from '@/mastodon/actions/timelines_typed'; +import { AccountHeader } from '@/mastodon/components/account_header'; import { Column } from '@/mastodon/components/column'; import { ColumnBackButton } from '@/mastodon/components/column_back_button'; +import { LimitedAccountHint } from '@/mastodon/components/limited_account_hint'; import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; import { RemoteHint } from '@/mastodon/components/remote_hint'; import StatusList from '@/mastodon/components/status_list'; @@ -26,23 +28,23 @@ import { useAccountVisibility } from '@/mastodon/hooks/useAccountVisibility'; import { selectTimelineByKey } from '@/mastodon/selectors/timelines'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; -import { AccountHeader } from '../components/account_header'; -import { LimitedAccountHint } from '../components/limited_account_hint'; - -import { AccountTimelineProvider, useAccountContext } from './context'; -import { FeaturedTags } from './featured_tags'; -import { AccountFilters } from './filters'; +import { FeaturedTags } from './components/featured_tags'; +import { AccountFilters } from './components/filters'; +import { renderPinnedStatusHeader } from './components/pinned_statuses'; +import { TagSuggestions } from './components/tags_suggestions'; import { - renderPinnedStatusHeader, - usePinnedStatusIds, -} from './pinned_statuses'; + AccountTimelineContext, + useAccountContext, + useAccountContextValue, +} from './hooks/useAccountContext'; +import { usePinnedStatusIds } from './hooks/usePinned'; import classes from './styles.module.scss'; -import { TagSuggestions } from './tags_suggestions'; const emptyList = ImmutableList(); -const AccountTimelineV2: FC<{ multiColumn: boolean }> = ({ multiColumn }) => { +const AccountTimeline: FC<{ multiColumn: boolean }> = ({ multiColumn }) => { const accountId = useAccountId(); + const accountContext = useAccountContextValue(accountId); // Null means accountId does not exist (e.g. invalid acct). Undefined means loading. if (accountId === null) { @@ -59,13 +61,13 @@ const AccountTimelineV2: FC<{ multiColumn: boolean }> = ({ multiColumn }) => { // Add this key to remount the timeline when accountId changes. return ( - + - + ); }; @@ -183,4 +185,4 @@ const EmptyMessage: FC<{ accountId: string }> = ({ accountId }) => { }; // eslint-disable-next-line import/no-default-export -export default AccountTimelineV2; +export default AccountTimeline; diff --git a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx index d2b05703c2fbac..baf0c70f76289d 100644 --- a/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx +++ b/app/javascript/mastodon/features/account_timeline/modals/field_modal.tsx @@ -2,6 +2,7 @@ import type { FC } from 'react'; import { FormattedMessage } from 'react-intl'; +import type { AccountField } from '@/mastodon/components/account_header/fields'; import { Button } from '@/mastodon/components/button'; import { EmojiHTML } from '@/mastodon/components/emoji/html'; import { @@ -10,7 +11,6 @@ import { ModalShellBody, } from '@/mastodon/components/modal_shell'; -import type { AccountField } from '../common'; import { useFieldHtml } from '../hooks/useFieldHtml'; import classes from './styles.module.scss'; diff --git a/app/javascript/mastodon/features/account_timeline/v2/styles.module.scss b/app/javascript/mastodon/features/account_timeline/styles.module.scss similarity index 100% rename from app/javascript/mastodon/features/account_timeline/v2/styles.module.scss rename to app/javascript/mastodon/features/account_timeline/styles.module.scss diff --git a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx b/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx deleted file mode 100644 index 78dad7247828e7..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/v2/pinned_statuses.tsx +++ /dev/null @@ -1,110 +0,0 @@ -import type { FC } from 'react'; -import { useEffect, useMemo } from 'react'; - -import { FormattedMessage } from 'react-intl'; - -import classNames from 'classnames'; - -import IconPinned from '@/images/icons/icon_pinned.svg?react'; -import { TIMELINE_PINNED_VIEW_ALL } from '@/mastodon/actions/timelines'; -import { - expandTimelineByKey, - timelineKey, -} from '@/mastodon/actions/timelines_typed'; -import { Badge } from '@/mastodon/components/badge'; -import { Button } from '@/mastodon/components/button'; -import { Icon } from '@/mastodon/components/icon'; -import { StatusHeader } from '@/mastodon/components/status/header'; -import type { StatusHeaderRenderFn } from '@/mastodon/components/status/header'; -import { selectTimelineByKey } from '@/mastodon/selectors/timelines'; -import { useAppDispatch, useAppSelector } from '@/mastodon/store'; - -import { useAccountContext } from './context'; -import classes from './styles.module.scss'; - -export function usePinnedStatusIds({ - accountId, - tagged, - forceEmptyState = false, -}: { - accountId: string; - tagged?: string; - forceEmptyState?: boolean; -}) { - const pinnedKey = timelineKey({ - type: 'account', - userId: accountId, - tagged, - pinned: true, - replies: true, - }); - - const dispatch = useAppDispatch(); - useEffect(() => { - dispatch(expandTimelineByKey({ key: pinnedKey })); - }, [dispatch, pinnedKey]); - - const pinnedTimeline = useAppSelector((state) => - selectTimelineByKey(state, pinnedKey), - ); - - const { showAllPinned } = useAccountContext(); - - const pinnedTimelineItems = pinnedTimeline?.items; // Make a const to avoid the React Compiler complaining. - const pinnedStatusIds = useMemo(() => { - if (!pinnedTimelineItems || forceEmptyState) { - return undefined; - } - - if (pinnedTimelineItems.size <= 1 || showAllPinned) { - return pinnedTimelineItems; - } - return pinnedTimelineItems.slice(0, 1).push(TIMELINE_PINNED_VIEW_ALL); - }, [forceEmptyState, pinnedTimelineItems, showAllPinned]); - - return { - statusIds: pinnedStatusIds, - isLoading: !!pinnedTimeline?.isLoading, - showAllPinned, - }; -} - -export const renderPinnedStatusHeader: StatusHeaderRenderFn = ({ - featured, - ...args -}) => { - if (!featured) { - return ; - } - return ( - - } - label={ - - } - /> - - ); -}; - -export const PinnedShowAllButton: FC = () => { - const { onShowAllPinned } = useAccountContext(); - - return ( - - ); -}; diff --git a/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx b/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx deleted file mode 100644 index 5f0ff886857866..00000000000000 --- a/app/javascript/mastodon/features/account_timeline/v2/status_header.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import type { FC } from 'react'; - -import { Link } from 'react-router-dom'; - -import { RelativeTimestamp } from '@/mastodon/components/relative_timestamp'; -import type { StatusHeaderProps } from '@/mastodon/components/status/header'; -import { - StatusDisplayName, - StatusEditedAt, - StatusVisibility, -} from '@/mastodon/components/status/header'; -import type { Account } from '@/mastodon/models/account'; - -export const AccountStatusHeader: FC = ({ - status, - account, - children, - avatarSize = 48, - wrapperProps, - onHeaderClick, -}) => { - const statusAccount = status.get('account') as Account | undefined; - const editedAt = status.get('edited_at') as string; - - return ( - /* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */ -
    - - - - {editedAt && } - - - - - {children} -
    - ); -}; diff --git a/app/javascript/mastodon/features/followers/components/empty.tsx b/app/javascript/mastodon/features/followers/components/empty.tsx index 3fb92c1061e84f..edb675e80aef8f 100644 --- a/app/javascript/mastodon/features/followers/components/empty.tsx +++ b/app/javascript/mastodon/features/followers/components/empty.tsx @@ -2,7 +2,7 @@ import type { FC, ReactNode } from 'react'; import { FormattedMessage } from 'react-intl'; -import { LimitedAccountHint } from '@/mastodon/features/account_timeline/components/limited_account_hint'; +import { LimitedAccountHint } from '@/mastodon/components/limited_account_hint'; import { useAccountVisibility } from '@/mastodon/hooks/useAccountVisibility'; import type { Account } from '@/mastodon/models/account'; diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index f976604a4ef318..a6685587e924af 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -77,7 +77,7 @@ export function PinnedStatuses () { } export function AccountTimeline () { - return import('../../account_timeline/v2'); + return import('../../account_timeline'); } export function AccountGallery () { diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 8019566ef6fa41..7e49de02bfebab 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -28,12 +28,10 @@ "account.block_domain": "Block domain {domain}", "account.block_short": "Block", "account.blocked": "Blocked", - "account.blocking": "Blocking", "account.cancel_follow_request": "Cancel follow", "account.copy": "Copy link to profile", "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocking": "Blocking domain", "account.edit_note": "Edit personal note", "account.edit_profile": "Edit profile", "account.edit_profile_short": "Edit", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Mute notifications", "account.mute_short": "Mute", "account.muted": "Muted", - "account.muting": "Muting", "account.mutual": "You follow each other", "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Remove {name} from followers", "account.report": "Report @{name}", "account.requested_follow": "{name} has requested to follow you", - "account.requests_to_follow_you": "Requests to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} posts}}", From b076808fd288df8e0c50e3b8fd03cab1cace8bdd Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 30 Apr 2026 16:10:25 +0200 Subject: [PATCH 326/335] Add "Featuring you" tab to Collections page (#38865) --- app/javascript/mastodon/api/collections.ts | 7 +- .../empty_state/empty_state.module.scss | 1 + .../mastodon/components/empty_state/index.tsx | 6 +- .../components/tab_list/styles.module.scss | 6 + .../features/account_featured/index.tsx | 4 +- .../components/collection_lockup.tsx | 2 +- .../features/collections/editor/index.tsx | 4 +- .../mastodon/features/collections/index.tsx | 138 +++----------- .../collections/overview/created_by_you.tsx | 133 +++++++++++++ .../collections/overview/featuring_you.tsx | 87 +++++++++ .../features/collections/styles.module.scss | 4 + app/javascript/mastodon/locales/en.json | 3 +- .../mastodon/reducers/slices/collections.ts | 175 ++++++++++++------ 13 files changed, 398 insertions(+), 172 deletions(-) create mode 100644 app/javascript/mastodon/features/collections/overview/created_by_you.tsx create mode 100644 app/javascript/mastodon/features/collections/overview/featuring_you.tsx diff --git a/app/javascript/mastodon/api/collections.ts b/app/javascript/mastodon/api/collections.ts index 862f98b60a688d..7f39651f02ad60 100644 --- a/app/javascript/mastodon/api/collections.ts +++ b/app/javascript/mastodon/api/collections.ts @@ -34,11 +34,16 @@ export const apiGetCollection = (collectionId: string) => `v1_alpha/collections/${collectionId}`, ); -export const apiGetAccountCollections = (accountId: string) => +export const apiGetCollectionsCreatedByAccount = (accountId: string) => apiRequestGet( `v1_alpha/accounts/${accountId}/collections`, ); +export const apiGetCollectionsFeaturingAccount = (accountId: string) => + apiRequestGet( + `v1_alpha/accounts/${accountId}/in_collections`, + ); + export const apiAddCollectionItem = (collectionId: string, accountId: string) => apiRequestPost( `v1_alpha/collections/${collectionId}/items`, diff --git a/app/javascript/mastodon/components/empty_state/empty_state.module.scss b/app/javascript/mastodon/components/empty_state/empty_state.module.scss index b58c565ac5d143..96aea81d1ccedd 100644 --- a/app/javascript/mastodon/components/empty_state/empty_state.module.scss +++ b/app/javascript/mastodon/components/empty_state/empty_state.module.scss @@ -2,6 +2,7 @@ display: flex; flex-direction: column; align-items: center; + justify-content: center; max-width: 600px; padding: 24px; gap: 16px; diff --git a/app/javascript/mastodon/components/empty_state/index.tsx b/app/javascript/mastodon/components/empty_state/index.tsx index 0ef0d67995703a..e332aaedb5ce49 100644 --- a/app/javascript/mastodon/components/empty_state/index.tsx +++ b/app/javascript/mastodon/components/empty_state/index.tsx @@ -1,5 +1,7 @@ import { FormattedMessage } from 'react-intl'; +import classNames from 'classnames'; + import ElephantImage from '@/images/elephant_ui.svg?react'; import classes from './empty_state.module.scss'; @@ -19,6 +21,7 @@ export const EmptyState: React.FC<{ title?: React.ReactNode; message?: React.ReactNode; children?: React.ReactNode; + className?: string; }> = ({ image = 'default', title = ( @@ -26,11 +29,12 @@ export const EmptyState: React.FC<{ ), message, children, + className, }) => { const imageToRender = typeof image === 'string' ? images[image] : image; return ( -
    +
    {(title || message || imageToRender) && (
    {imageToRender} diff --git a/app/javascript/mastodon/components/tab_list/styles.module.scss b/app/javascript/mastodon/components/tab_list/styles.module.scss index aeadd95f08aad8..95a71114fd7e3f 100644 --- a/app/javascript/mastodon/components/tab_list/styles.module.scss +++ b/app/javascript/mastodon/components/tab_list/styles.module.scss @@ -27,6 +27,12 @@ text-decoration: none; } + &:focus { + // Override silly global border radius on focused links + border-radius: 0; + outline-offset: 2px; + } + &:not(:global(.active)):is(:hover, :focus) { color: var(--color-text-brand-soft); } diff --git a/app/javascript/mastodon/features/account_featured/index.tsx b/app/javascript/mastodon/features/account_featured/index.tsx index f6a9288e214e31..d4b36ae7471d68 100644 --- a/app/javascript/mastodon/features/account_featured/index.tsx +++ b/app/javascript/mastodon/features/account_featured/index.tsx @@ -27,8 +27,8 @@ import { useAccountVisibility } from '@/mastodon/hooks/useAccountVisibility'; import { useAppDispatch, useAppSelector } from '@/mastodon/store'; import AddIcon from '@/material-icons/400-24px/add.svg?react'; -import { useAccountCollections } from '../collections'; import { CollectionListItem } from '../collections/components/collection_list_item'; +import { useCollectionsCreatedBy } from '../collections/overview/created_by_you'; import { areCollectionsEnabled } from '../collections/utils'; import { EmptyMessage } from './components/empty_message'; @@ -67,7 +67,7 @@ const AccountFeatured: React.FC<{ multiColumn: boolean }> = ({ ) as ImmutableList, ); const { collections, status: collectionsLoadStatus } = - useAccountCollections(accountId); + useCollectionsCreatedBy(accountId); const { listedCollections = [], unlistedCollections = [] } = Object.groupBy( collections, diff --git a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx index 9593f02e2d94ac..22c584559f6166 100644 --- a/app/javascript/mastodon/features/collections/components/collection_lockup.tsx +++ b/app/javascript/mastodon/features/collections/components/collection_lockup.tsx @@ -111,7 +111,7 @@ export const CollectionLockup: React.FC = ({ sideContent={sideContent} > diff --git a/app/javascript/mastodon/features/collections/editor/index.tsx b/app/javascript/mastodon/features/collections/editor/index.tsx index b18091461f219d..beb4719a3eb579 100644 --- a/app/javascript/mastodon/features/collections/editor/index.tsx +++ b/app/javascript/mastodon/features/collections/editor/index.tsx @@ -25,7 +25,7 @@ import { } from 'mastodon/reducers/slices/collections'; import { useAppDispatch, useAppSelector } from 'mastodon/store'; -import { useAccountCollections } from '..'; +import { useCollectionsCreatedBy } from '../overview/created_by_you'; import { CollectionAccounts } from './accounts'; import { CollectionDetails } from './details'; @@ -86,7 +86,7 @@ export const CollectionEditorPage: React.FC<{ // When creating a new collection, we load the current account's collections // to determine if they're allowed to create more. const { collections: collectionList, status: collectionListStatus } = - useAccountCollections(isEditMode ? null : accountId); + useCollectionsCreatedBy(isEditMode ? null : accountId); const isLoading = (isEditMode && !collection) || diff --git a/app/javascript/mastodon/features/collections/index.tsx b/app/javascript/mastodon/features/collections/index.tsx index 7561849fc0c561..0b1e6445f8aa98 100644 --- a/app/javascript/mastodon/features/collections/index.tsx +++ b/app/javascript/mastodon/features/collections/index.tsx @@ -1,38 +1,19 @@ -import { useEffect } from 'react'; - -import { defineMessages, useIntl, FormattedMessage } from 'react-intl'; +import { defineMessages, useIntl } from 'react-intl'; import { Helmet } from 'react-helmet'; -import { Link } from 'react-router-dom'; +import { Route, Switch, useRouteMatch } from 'react-router-dom'; -import { EmptyState } from '@/mastodon/components/empty_state'; -import { LoadingIndicator } from '@/mastodon/components/loading_indicator'; import { TabLink, TabList } from '@/mastodon/components/tab_list'; -import AddIcon from '@/material-icons/400-24px/add.svg?react'; import { Column } from 'mastodon/components/column'; import { ColumnHeader } from 'mastodon/components/column_header'; import { DisplayNameSimple } from 'mastodon/components/display_name/simple'; -import { Icon } from 'mastodon/components/icon'; -import { - ItemList, - Scrollable, -} from 'mastodon/components/scrollable_list/components'; +import { Scrollable } from 'mastodon/components/scrollable_list/components'; import { useAccount } from 'mastodon/hooks/useAccount'; import { useAccountId, useCurrentAccountId } from 'mastodon/hooks/useAccountId'; -import { - fetchAccountCollections, - selectAccountCollections, -} from 'mastodon/reducers/slices/collections'; -import { useAppSelector, useAppDispatch } from 'mastodon/store'; -import { CollectionListItem } from './components/collection_list_item'; -import { - messages as editorMessages, - MaxCollectionsCallout, - userCollectionLimit, -} from './editor'; +import { CollectionsCreatedByYou } from './overview/created_by_you'; +import { CollectionsFeaturingYou } from './overview/featuring_you'; import classes from './styles.module.scss'; -import { areCollectionsEnabled } from './utils'; const messages = defineMessages({ headingMe: { @@ -57,25 +38,6 @@ const messages = defineMessages({ }, }); -const CreateButton: React.FC = () => ( - - - - -); - -export function useAccountCollections(accountId: string | null | undefined) { - const dispatch = useAppDispatch(); - - useEffect(() => { - if (accountId && areCollectionsEnabled()) { - void dispatch(fetchAccountCollections({ accountId })); - } - }, [dispatch, accountId]); - - return useAppSelector((state) => selectAccountCollections(state, accountId)); -} - export const Collections: React.FC<{ multiColumn?: boolean; }> = ({ multiColumn }) => { @@ -83,15 +45,11 @@ export const Collections: React.FC<{ const me = useCurrentAccountId(); const accountId = useAccountId(); const account = useAccount(accountId); + const { path } = useRouteMatch(); - const { collections, status } = useAccountCollections(accountId); - - const canCreateMoreCollections = collections.length < userCollectionLimit; - const isOwnCollection = accountId === me; - const showCreateButton = - isOwnCollection && status === 'idle' && canCreateMoreCollections; + const isOwnCollectionsPage = accountId === me; - const titleMessage = isOwnCollection + const titleMessage = isOwnCollectionsPage ? messages.headingMe : messages.headingOther; @@ -102,18 +60,10 @@ export const Collections: React.FC<{ name: , }); - const tabMessage = isOwnCollection + const createdByTabMessage = isOwnCollectionsPage ? messages.createdByYou : messages.createdByAuthor; - const errorMessage = (status === 'error' || !accountId) && ( - - ); - return ( @@ -123,64 +73,28 @@ export const Collections: React.FC<{

    {pageTitleHtml}

    - {intl.formatMessage(tabMessage, { + {intl.formatMessage(createdByTabMessage, { name: , })} + {isOwnCollectionsPage && ( + + {intl.formatMessage(messages.featuringYou)} + + )} - {status === 'loading' && } - {status === 'idle' && - (collections.length > 0 ? ( - <> -
    -

    - -

    - {showCreateButton && } -
    - - {!canCreateMoreCollections && ( - - )} - {collections.map((item, index) => ( - - ))} - - - ) : ( - - } - message={ - - } - > - - - ))} + + + + diff --git a/app/javascript/mastodon/features/collections/overview/created_by_you.tsx b/app/javascript/mastodon/features/collections/overview/created_by_you.tsx new file mode 100644 index 00000000000000..25b812e9bd9f0e --- /dev/null +++ b/app/javascript/mastodon/features/collections/overview/created_by_you.tsx @@ -0,0 +1,133 @@ +import { useEffect } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { Link } from 'react-router-dom'; + +import AddIcon from '@/material-icons/400-24px/add.svg?react'; +import { EmptyState } from 'mastodon/components/empty_state'; +import { Icon } from 'mastodon/components/icon'; +import { LoadingIndicator } from 'mastodon/components/loading_indicator'; +import { ItemList } from 'mastodon/components/scrollable_list/components'; +import { useAccountId, useCurrentAccountId } from 'mastodon/hooks/useAccountId'; +import { + fetchCollectionsCreatedByAccount, + selectAccountCollections, +} from 'mastodon/reducers/slices/collections'; +import { useAppSelector, useAppDispatch } from 'mastodon/store'; + +import { CollectionListItem } from '../components/collection_list_item'; +import { + messages as editorMessages, + MaxCollectionsCallout, + userCollectionLimit, +} from '../editor'; +import classes from '../styles.module.scss'; +import { areCollectionsEnabled } from '../utils'; + +const CreateButton: React.FC = () => ( + + + + +); + +export const CollectionListError: React.FC = () => ( + + } + /> +); + +export function useCollectionsCreatedBy(accountId: string | null | undefined) { + const dispatch = useAppDispatch(); + + useEffect(() => { + if (accountId && areCollectionsEnabled()) { + void dispatch(fetchCollectionsCreatedByAccount({ accountId })); + } + }, [dispatch, accountId]); + + return useAppSelector((state) => + selectAccountCollections(state, accountId, 'createdBy'), + ); +} + +export const CollectionsCreatedByYou: React.FC = () => { + const me = useCurrentAccountId(); + const accountId = useAccountId(); + + const { collections, status } = useCollectionsCreatedBy(accountId); + + const canCreateMoreCollections = collections.length < userCollectionLimit; + const isOwnCollectionPage = accountId === me; + const showCreateButton = + isOwnCollectionPage && status === 'idle' && canCreateMoreCollections; + + if (status === 'error' || !accountId) { + return ; + } + + if (status === 'loading') { + return ; + } + + if (collections.length === 0) { + return ( + + } + message={ + + } + > + + + ); + } + + return ( + <> +
    +

    + +

    + {showCreateButton && } +
    + + {!canCreateMoreCollections && ( + + )} + {collections.map((item, index) => ( + + ))} + + + ); +}; diff --git a/app/javascript/mastodon/features/collections/overview/featuring_you.tsx b/app/javascript/mastodon/features/collections/overview/featuring_you.tsx new file mode 100644 index 00000000000000..3fb93bbfc916f0 --- /dev/null +++ b/app/javascript/mastodon/features/collections/overview/featuring_you.tsx @@ -0,0 +1,87 @@ +import { useEffect } from 'react'; + +import { FormattedMessage } from 'react-intl'; + +import { EmptyState } from 'mastodon/components/empty_state'; +import { LoadingIndicator } from 'mastodon/components/loading_indicator'; +import { ItemList } from 'mastodon/components/scrollable_list/components'; +import { useAccountId } from 'mastodon/hooks/useAccountId'; +import { + fetchCollectionsFeaturingAccount, + selectAccountCollections, +} from 'mastodon/reducers/slices/collections'; +import { useAppSelector, useAppDispatch } from 'mastodon/store'; + +import { CollectionListItem } from '../components/collection_list_item'; +import classes from '../styles.module.scss'; +import { areCollectionsEnabled } from '../utils'; + +import { CollectionListError } from './created_by_you'; + +function useCollectionsFeaturing(accountId: string | null | undefined) { + const dispatch = useAppDispatch(); + + useEffect(() => { + if (accountId && areCollectionsEnabled()) { + void dispatch(fetchCollectionsFeaturingAccount({ accountId })); + } + }, [dispatch, accountId]); + + return useAppSelector((state) => + selectAccountCollections(state, accountId, 'featuring'), + ); +} + +export const CollectionsFeaturingYou: React.FC = () => { + const accountId = useAccountId(); + + const { collections, status } = useCollectionsFeaturing(accountId); + + if (status === 'error' || !accountId) { + return ; + } + + if (status === 'loading') { + return ; + } + + if (collections.length === 0) { + return ( + + } + /> + ); + } + + return ( + <> +
    +

    + +

    +
    + + {collections.map((item, index) => ( + + ))} + + + ); +}; diff --git a/app/javascript/mastodon/features/collections/styles.module.scss b/app/javascript/mastodon/features/collections/styles.module.scss index 9ded10dcc2d5d6..ed2ba13a09f295 100644 --- a/app/javascript/mastodon/features/collections/styles.module.scss +++ b/app/javascript/mastodon/features/collections/styles.module.scss @@ -33,3 +33,7 @@ .maxCollectionsError { margin: 8px 16px; } + +.error { + flex-grow: 1; +} diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 7e49de02bfebab..b2a77f0d822008 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -395,7 +395,7 @@ "collections.detail.share": "Share this collection", "collections.detail.you_are_in_this_collection": "You're featured in this collection", "collections.edit_details": "Edit details", - "collections.error_loading_collections": "There was an error when trying to load your collections.", + "collections.error_loading_collections": "There was an error when trying to load these collections.", "collections.hidden_accounts_description": "You’ve blocked or muted {count, plural, one {this user} other {these users}}", "collections.hidden_accounts_link": "{count, plural, one {# hidden account} other {# hidden accounts}}", "collections.hints.accounts_counter": "{count}/{max} accounts", @@ -645,6 +645,7 @@ "empty_column.account_unavailable": "Profile unavailable", "empty_column.blocks": "You haven't blocked any users yet.", "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.", + "empty_column.collections.featured_in": "You have not been added to any collections yet.", "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!", "empty_column.direct": "You don't have any private mentions yet. When you send or receive one, it will show up here.", "empty_column.disabled_feed": "This feed has been disabled by your server administrators.", diff --git a/app/javascript/mastodon/reducers/slices/collections.ts b/app/javascript/mastodon/reducers/slices/collections.ts index b7a65891d2a0ef..c07a904ceea035 100644 --- a/app/javascript/mastodon/reducers/slices/collections.ts +++ b/app/javascript/mastodon/reducers/slices/collections.ts @@ -4,7 +4,8 @@ import { createSlice } from '@reduxjs/toolkit'; import { importFetchedAccounts } from '@/mastodon/actions/importer'; import { apiCreateCollection, - apiGetAccountCollections, + apiGetCollectionsCreatedByAccount, + apiGetCollectionsFeaturingAccount, apiUpdateCollection, apiGetCollection, apiDeleteCollection, @@ -28,17 +29,22 @@ import { inputToHashtag } from '@/mastodon/utils/hashtags'; type QueryStatus = 'idle' | 'loading' | 'error'; +// Lists of collection ids and their loading status mapped by account id +type CollectionsByAccountId = Record< + string, + { + collectionIds: string[]; + status: QueryStatus; + } +>; + interface CollectionState { - // Collections mapped by collection id + // Full collections mapped by collection id collections: Record; - // Lists of collection ids mapped by account id - accountCollections: Record< - string, - { - collectionIds: string[]; - status: QueryStatus; - } - >; + // Collections created by an account, mapped by account id + createdBy: CollectionsByAccountId; + // Collections that feature an account, mapped by account id + featuring: CollectionsByAccountId; editor: EditorState; } @@ -70,7 +76,8 @@ interface UpdateEditorFieldPayload { const initialState: CollectionState = { collections: {}, - accountCollections: {}, + createdBy: {}, + featuring: {}, editor: { id: null, name: '', @@ -114,44 +121,101 @@ const collectionSlice = createSlice({ }, extraReducers(builder) { /** - * Fetching account collections + * Fetching collections created by account */ - builder.addCase(fetchAccountCollections.pending, (state, action) => { - const { accountId } = action.meta.arg; - state.accountCollections[accountId] ??= { - status: 'loading', - collectionIds: [], - }; - state.accountCollections[accountId].status = 'loading'; - }); - - builder.addCase(fetchAccountCollections.rejected, (state, action) => { - const { accountId } = action.meta.arg; - state.accountCollections[accountId] = { - status: 'error', - collectionIds: [], - }; - }); + builder.addCase( + fetchCollectionsCreatedByAccount.pending, + (state, action) => { + const { accountId } = action.meta.arg; + state.createdBy[accountId] ??= { + status: 'loading', + collectionIds: [], + }; + state.createdBy[accountId].status = 'loading'; + }, + ); - builder.addCase(fetchAccountCollections.fulfilled, (state, action) => { - const { collections } = action.payload; + builder.addCase( + fetchCollectionsCreatedByAccount.rejected, + (state, action) => { + const { accountId } = action.meta.arg; + state.createdBy[accountId] = { + status: 'error', + collectionIds: [], + }; + }, + ); - const collectionsMap: Record = - state.collections; - const collectionIds: string[] = []; + builder.addCase( + fetchCollectionsCreatedByAccount.fulfilled, + (state, action) => { + const { collections } = action.payload; + + const collectionsMap: Record = + state.collections; + const collectionIds: string[] = []; + + collections.forEach((collection) => { + const { id } = collection; + collectionsMap[id] = collection; + collectionIds.push(id); + }); + + state.collections = collectionsMap; + state.createdBy[action.meta.arg.accountId] = { + collectionIds, + status: 'idle', + }; + }, + ); + /** + * Fetching collections featuring an account + */ + builder.addCase( + fetchCollectionsFeaturingAccount.pending, + (state, action) => { + const { accountId } = action.meta.arg; + state.featuring[accountId] ??= { + status: 'loading', + collectionIds: [], + }; + state.featuring[accountId].status = 'loading'; + }, + ); - collections.forEach((collection) => { - const { id } = collection; - collectionsMap[id] = collection; - collectionIds.push(id); - }); + builder.addCase( + fetchCollectionsFeaturingAccount.rejected, + (state, action) => { + const { accountId } = action.meta.arg; + state.featuring[accountId] = { + status: 'error', + collectionIds: [], + }; + }, + ); - state.collections = collectionsMap; - state.accountCollections[action.meta.arg.accountId] = { - collectionIds, - status: 'idle', - }; - }); + builder.addCase( + fetchCollectionsFeaturingAccount.fulfilled, + (state, action) => { + const { collections } = action.payload; + + const collectionsMap: Record = + state.collections; + const collectionIds: string[] = []; + + collections.forEach((collection) => { + const { id } = collection; + collectionsMap[id] = collection; + collectionIds.push(id); + }); + + state.collections = collectionsMap; + state.featuring[action.meta.arg.accountId] = { + collectionIds, + status: 'idle', + }; + }, + ); /** * Fetching a single collection @@ -181,7 +245,7 @@ const collectionSlice = createSlice({ // eslint-disable-next-line @typescript-eslint/no-dynamic-delete delete state.collections[collectionId]; if (me) { - let accountCollectionIds = state.accountCollections[me]?.collectionIds; + let accountCollectionIds = state.createdBy[me]?.collectionIds; if (accountCollectionIds) { accountCollectionIds = accountCollectionIds.filter( (id) => id !== collectionId, @@ -200,12 +264,12 @@ const collectionSlice = createSlice({ state.collections[collection.id] = collection; state.editor = initialState.editor; - if (state.accountCollections[collection.account_id]) { - state.accountCollections[collection.account_id]?.collectionIds.unshift( + if (state.createdBy[collection.account_id]) { + state.createdBy[collection.account_id]?.collectionIds.unshift( collection.id, ); } else { - state.accountCollections[collection.account_id] = { + state.createdBy[collection.account_id] = { collectionIds: [collection.id], status: 'idle', }; @@ -253,9 +317,16 @@ const collectionSlice = createSlice({ }, }); -export const fetchAccountCollections = createDataLoadingThunk( - `${collectionSlice.name}/fetchAccountCollections`, - ({ accountId }: { accountId: string }) => apiGetAccountCollections(accountId), +export const fetchCollectionsCreatedByAccount = createDataLoadingThunk( + `${collectionSlice.name}/fetchCollectionsCreatedByAccount`, + ({ accountId }: { accountId: string }) => + apiGetCollectionsCreatedByAccount(accountId), +); + +export const fetchCollectionsFeaturingAccount = createDataLoadingThunk( + `${collectionSlice.name}/fetchCollectionsFeaturingAccount`, + ({ accountId }: { accountId: string }) => + apiGetCollectionsFeaturingAccount(accountId), ); export const fetchCollection = createDataLoadingThunk( @@ -323,7 +394,7 @@ interface AccountCollectionQuery { export const selectAccountCollections = createAppSelector( [ (_, accountId?: string | null) => accountId, - (state) => state.collections.accountCollections, + (state, _, query: 'createdBy' | 'featuring') => state.collections[query], (state) => state.collections.collections, ], (accountId, collectionsByAccountId, collectionsMap) => { From b1703467f17247cef175fc81bd6ee2f934c5f213 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 30 Apr 2026 10:16:15 -0400 Subject: [PATCH 327/335] Use bundler version 4.0.11 (#38867) --- Gemfile.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b020f49a67bdf6..57879896e964e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -132,7 +132,7 @@ GEM binding_of_caller (2.0.0) debug_inspector (>= 1.2.0) blurhash (0.1.8) - bootsnap (1.23.0) + bootsnap (1.24.1) msgpack (~> 1.2) brakeman (8.0.4) racc @@ -178,7 +178,7 @@ GEM bigdecimal rexml crass (1.0.6) - css_parser (2.0.0) + css_parser (2.1.0) addressable csv (3.3.5) database_cleaner-active_record (2.2.2) @@ -264,7 +264,7 @@ GEM excon (~> 1.0) formatador (>= 0.2, < 2.0) mime-types - fog-json (1.2.0) + fog-json (1.3.0) fog-core multi_json (~> 1.10) fog-openstack (1.1.5) @@ -314,7 +314,7 @@ GEM http-cookie (~> 1.0) http-form_data (~> 2.2) llhttp-ffi (~> 0.5.0) - http-cookie (1.1.4) + http-cookie (1.1.6) domain_name (~> 0.5) http-form_data (2.3.0) http_accept_language (2.1.1) @@ -458,7 +458,7 @@ GEM mutex_m (0.3.0) net-http (0.6.0) uri - net-imap (0.6.3) + net-imap (0.6.4) date net-protocol net-ldap (0.20.0) @@ -471,7 +471,7 @@ GEM net-smtp (0.5.1) net-protocol nio4r (2.7.5) - nokogiri (1.19.2) + nokogiri (1.19.3) mini_portile2 (~> 2.8.2) racc (~> 1.4) omniauth (2.1.4) @@ -691,7 +691,7 @@ GEM tsort (>= 0.2) zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.4.1) + rake (13.4.2) rdf (3.3.4) bcp47_spec (~> 0.2) bigdecimal (~> 3.1, >= 3.1.5) @@ -1100,4 +1100,4 @@ RUBY VERSION ruby 4.0.3 BUNDLED WITH - 4.0.10 + 4.0.11 From c270634565a3dcf311857bfac6d59c27ac67e9be Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 30 Apr 2026 16:16:30 +0200 Subject: [PATCH 328/335] Profile editing: Control follower/following list visibility (#38845) --- .../mastodon/features/account_edit/index.tsx | 4 +-- .../modals/profile_display_modal.tsx | 22 +++++++++++- .../features/followers/components/header.tsx | 34 +++++++++++++++++++ .../features/followers/styles.module.scss | 6 +++- app/javascript/mastodon/locales/en.json | 7 ++-- app/views/settings/privacy/show.html.haml | 3 -- 6 files changed, 67 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/features/account_edit/index.tsx b/app/javascript/mastodon/features/account_edit/index.tsx index d3a3c967070cf1..0199c3efa45aa1 100644 --- a/app/javascript/mastodon/features/account_edit/index.tsx +++ b/app/javascript/mastodon/features/account_edit/index.tsx @@ -107,11 +107,11 @@ export const messages = defineMessages({ }, profileTabTitle: { id: 'account_edit.profile_tab.title', - defaultMessage: 'Profile tab settings', + defaultMessage: 'Profile display settings', }, profileTabSubtitle: { id: 'account_edit.profile_tab.subtitle', - defaultMessage: 'Customize the tabs on your profile and what they display.', + defaultMessage: 'Customize how your profile is displayed.', }, advancedSettingsTitle: { id: 'account_edit.advanced_settings.title', diff --git a/app/javascript/mastodon/features/account_edit/modals/profile_display_modal.tsx b/app/javascript/mastodon/features/account_edit/modals/profile_display_modal.tsx index dc2d961c69b199..d832fe00e3233e 100644 --- a/app/javascript/mastodon/features/account_edit/modals/profile_display_modal.tsx +++ b/app/javascript/mastodon/features/account_edit/modals/profile_display_modal.tsx @@ -27,7 +27,8 @@ export const ProfileDisplayModal: FC = ({ onClose }) => { const handleToggleChange: ChangeEventHandler = useCallback( (event) => { const { name, checked } = event.target; - void dispatch(patchProfile({ [name]: checked })); + const targetChecked = name === 'hide_collections' ? !checked : checked; + void dispatch(patchProfile({ [name]: targetChecked })); }, [dispatch], ); @@ -101,6 +102,25 @@ export const ProfileDisplayModal: FC = ({ onClose }) => { /> } /> + + + } + hint={ + + } + />
    = ({ accountId, total, titleText }) => { const intl = useIntl(); const account = useAccount(accountId); + const currentId = useCurrentAccountId(); return ( <>

    @@ -31,6 +36,35 @@ export const AccountListHeader: FC<{ />

    )} + {accountId === currentId && account?.hide_collections && ( + + {chunks}, + page: ( + + ), + modal: ( + + ), + field: ( + + ), + }} + /> + + )} ); }; diff --git a/app/javascript/mastodon/features/followers/styles.module.scss b/app/javascript/mastodon/features/followers/styles.module.scss index f58b345becbe40..6294044c3bbba5 100644 --- a/app/javascript/mastodon/features/followers/styles.module.scss +++ b/app/javascript/mastodon/features/followers/styles.module.scss @@ -4,8 +4,12 @@ margin: 20px 16px 10px; } +.subtitle, +.callout { + margin: 10px 16px; +} + .subtitle { font-size: 14px; color: var(--color-text-secondary); - margin: 10px 16px; } diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index b2a77f0d822008..3fd338e6390b37 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -224,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "Show ‘Media’ tab", "account_edit.profile_tab.show_media_replies.description": "When enabled, Media tab shows both your posts and replies to other people’s posts.", "account_edit.profile_tab.show_media_replies.title": "Include replies on ‘Media’ tab", - "account_edit.profile_tab.subtitle": "Customize the tabs on your profile and what they display.", - "account_edit.profile_tab.title": "Profile tab settings", + "account_edit.profile_tab.show_relations.description": "Shows accounts you follow and followers to other users in your profile. People will still be able to see if you are following them.", + "account_edit.profile_tab.show_relations.title": "Show ‘Followers’ and ‘Following’", + "account_edit.profile_tab.subtitle": "Customize how your profile is displayed.", + "account_edit.profile_tab.title": "Profile display settings", "account_edit.save": "Save", "account_edit.upload_modal.back": "Back", "account_edit.upload_modal.done": "Done", @@ -253,6 +255,7 @@ "account_edit_tags.search_placeholder": "Enter a hashtag…", "account_edit_tags.suggestions": "Suggestions:", "account_edit_tags.tag_status_count": "{count, plural, one {# post} other {# posts}}", + "account_list.hidden_notice": "This is only visible to you. To show this list to others, go to {page} > {modal} > {field}.", "account_list.total": "{total, plural, one {# account} other {# accounts}}", "account_note.placeholder": "Click to add note", "admin.dashboard.daily_retention": "User retention rate by day after sign-up", diff --git a/app/views/settings/privacy/show.html.haml b/app/views/settings/privacy/show.html.haml index 282f63f19e7abd..47880f1f6c3452 100644 --- a/app/views/settings/privacy/show.html.haml +++ b/app/views/settings/privacy/show.html.haml @@ -34,9 +34,6 @@ %p.lead= t('privacy.privacy_hint_html') - .fields-group - = f.input :show_collections, as: :boolean, wrapper: :with_label - = f.simple_fields_for :settings, current_user.settings do |ff| .fields-group = ff.input :show_application, wrapper: :with_label From 59f3d8a9933514ab925fe678496cdf1fc0593809 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 30 Apr 2026 12:03:55 -0400 Subject: [PATCH 329/335] Handle IPv6 scenario in custom `Request::Socket` (#38866) --- app/lib/request.rb | 2 +- spec/lib/request/socket_spec.rb | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 spec/lib/request/socket_spec.rb diff --git a/app/lib/request.rb b/app/lib/request.rb index 376a37638cd0dd..d405fb5009a3b0 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -303,7 +303,7 @@ def open(host, *args) addresses.each do |address| check_private_address(address, host) - sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0) + sock = ::Socket.new(address.match?(Resolv::IPv6::Regex) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0) sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s) sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1) diff --git a/spec/lib/request/socket_spec.rb b/spec/lib/request/socket_spec.rb new file mode 100644 index 00000000000000..2c6a12a304771e --- /dev/null +++ b/spec/lib/request/socket_spec.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe Request::Socket do + describe '.open' do + context 'when an IPv6 only host lookup' do + let(:resolv_service) { instance_double(Resolv) } + let(:socket_service) { instance_double(Socket).as_null_object } + + before do + allow(Resolv).to receive(:new).and_return(resolv_service) + allow(Socket).to receive(:new).and_return(socket_service) + allow(resolv_service).to receive(:getaddresses).with('example.com').and_return(%w(2001:4860:4860::8844)) + end + + it 'returns a valid socket' do + described_class.open('example.com') + + expect(Socket) + .to have_received(:new) + .with(Socket::AF_INET6, Socket::SOCK_STREAM, 0) + end + end + end +end From d63ca75422b3d087e5bd3cd7fef7f87135d8d17a Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 30 Apr 2026 18:17:14 +0200 Subject: [PATCH 330/335] Fixes minor profile visual glitches (#38870) --- .../mastodon/components/account_header/name.tsx | 1 - .../components/account_header/styles.module.scss | 11 ++++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/javascript/mastodon/components/account_header/name.tsx b/app/javascript/mastodon/components/account_header/name.tsx index 4f2bbcc3178ab7..72707a1f2faebc 100644 --- a/app/javascript/mastodon/components/account_header/name.tsx +++ b/app/javascript/mastodon/components/account_header/name.tsx @@ -112,7 +112,6 @@ const AccountNameHelp: FC<{ aria-controls={accessibilityId} > {handle} - svg { width: 16px; @@ -199,6 +200,9 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; .noteContent { white-space-collapse: preserve-breaks; + overflow-wrap: break-word; + word-break: break-all; + hyphens: auto; } .noteEditButton { @@ -271,10 +275,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; &.fieldItem { border-color: var(--color-border-success-soft); - } - - dt { - padding-right: 24px; + padding-right: 32px; // 8px padding + 16px for the icon + 8px gap } } From 322ada898ffbadfd7a1a500ad92885bd6c3b067e Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 30 Apr 2026 18:21:38 +0200 Subject: [PATCH 331/335] Update dependency `minimatch` (#38869) --- yarn.lock | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/yarn.lock b/yarn.lock index d644177a6edb01..3da9b034d3f726 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5979,21 +5979,21 @@ __metadata: languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.2 - resolution: "brace-expansion@npm:2.0.2" +"brace-expansion@npm:^2.0.1, brace-expansion@npm:^2.0.2": + version: 2.1.0 + resolution: "brace-expansion@npm:2.1.0" dependencies: balanced-match: "npm:^1.0.0" - checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + checksum: 10c0/439cedf3e23d7993b37919f1d6fdc653ec21a42437ec3e7460bea9ca8b17edf7a24a633273c31d61aa4335877cf29a443f1871814131c87997a1e6223e1f1502 languageName: node linkType: hard -"brace-expansion@npm:^5.0.2": - version: 5.0.4 - resolution: "brace-expansion@npm:5.0.4" +"brace-expansion@npm:^5.0.5": + version: 5.0.5 + resolution: "brace-expansion@npm:5.0.5" dependencies: balanced-match: "npm:^4.0.2" - checksum: 10c0/359cbcfa80b2eb914ca1f3440e92313fbfe7919ee6b274c35db55bec555aded69dac5ee78f102cec90c35f98c20fa43d10936d0cd9978158823c249257e1643a + checksum: 10c0/4d238e14ed4f5cc9c07285550a41cef23121ca08ba99fa9eb5b55b580dcb6bf868b8210aa10526bdc9f8dc97f33ca2a7259039c4cc131a93042beddb424c48e3 languageName: node linkType: hard @@ -10147,38 +10147,38 @@ __metadata: linkType: hard "minimatch@npm:^10.1.1, minimatch@npm:^10.2.2": - version: 10.2.4 - resolution: "minimatch@npm:10.2.4" + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" dependencies: - brace-expansion: "npm:^5.0.2" - checksum: 10c0/35f3dfb7b99b51efd46afd378486889f590e7efb10e0f6a10ba6800428cf65c9a8dedb74427d0570b318d749b543dc4e85f06d46d2858bc8cac7e1eb49a95945 + brace-expansion: "npm:^5.0.5" + checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd languageName: node linkType: hard "minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 languageName: node linkType: hard "minimatch@npm:^5.0.1": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" + version: 5.1.9 + resolution: "minimatch@npm:5.1.9" dependencies: brace-expansion: "npm:^2.0.1" - checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 + checksum: 10c0/4202718683815a7288b13e470160a4f9560cf392adef4f453927505817e01ef6b3476ecde13cfcaed17e7326dd3b69ad44eb2daeb19a217c5500f9277893f1d6 languageName: node linkType: hard "minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" + version: 9.0.9 + resolution: "minimatch@npm:9.0.9" dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + brace-expansion: "npm:^2.0.2" + checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86 languageName: node linkType: hard From c79bd3123425ff8bcd1f08d1a718852d9f18bdbf Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 30 Apr 2026 18:32:48 +0200 Subject: [PATCH 332/335] Change handle explainer to refer to the Fediverse (#38872) --- app/javascript/mastodon/components/account_header/name.tsx | 2 +- app/javascript/mastodon/locales/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/mastodon/components/account_header/name.tsx b/app/javascript/mastodon/components/account_header/name.tsx index 72707a1f2faebc..2b3f1907b4d36e 100644 --- a/app/javascript/mastodon/components/account_header/name.tsx +++ b/app/javascript/mastodon/components/account_header/name.tsx @@ -178,7 +178,7 @@ const AccountNameHelp: FC<{ diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 3fd338e6390b37..95a664987199d5 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -113,7 +113,7 @@ "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", "account.name.help.domain_self": "{domain} is your server that hosts your profile and posts.", - "account.name.help.footer": "Just like you can send emails to people using different email providers, you can interact with people on other Mastodon servers, and with anyone on other Mastodon-compatible social apps.", + "account.name.help.footer": "Just like you can send emails to people using different email providers, you can interact with people on other Mastodon servers, and with anyone on other Fediverse apps.", "account.name.help.header": "A handle is like an email address", "account.name.help.username": "{username} is this account’s username on their server. Someone on another server might have the same username.", "account.name.help.username_self": "{username} is your username on this server. Someone on another server might have the same username.", From c6facd27ed191177afb003640b8ee7d0742c7f63 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 30 Apr 2026 18:44:20 +0200 Subject: [PATCH 333/335] New Crowdin Translations (automated) (#38871) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 4 ---- app/javascript/mastodon/locales/az.json | 4 ---- app/javascript/mastodon/locales/be.json | 7 ------- app/javascript/mastodon/locales/bg.json | 4 ---- app/javascript/mastodon/locales/br.json | 4 ---- app/javascript/mastodon/locales/ca.json | 5 ----- app/javascript/mastodon/locales/cs.json | 4 ---- app/javascript/mastodon/locales/cy.json | 7 ------- app/javascript/mastodon/locales/da.json | 14 ++++++------- app/javascript/mastodon/locales/de.json | 16 +++++++------- app/javascript/mastodon/locales/el.json | 7 ------- app/javascript/mastodon/locales/en-GB.json | 23 --------------------- app/javascript/mastodon/locales/eo.json | 5 ----- app/javascript/mastodon/locales/es-AR.json | 7 ------- app/javascript/mastodon/locales/es-MX.json | 7 ------- app/javascript/mastodon/locales/es.json | 7 ------- app/javascript/mastodon/locales/et.json | 7 ------- app/javascript/mastodon/locales/eu.json | 4 ---- app/javascript/mastodon/locales/fa.json | 4 ---- app/javascript/mastodon/locales/fi.json | 7 ------- app/javascript/mastodon/locales/fil.json | 4 ---- app/javascript/mastodon/locales/fo.json | 7 ------- app/javascript/mastodon/locales/fr-CA.json | 7 ------- app/javascript/mastodon/locales/fr.json | 7 ------- app/javascript/mastodon/locales/fy.json | 4 ---- app/javascript/mastodon/locales/ga.json | 7 ------- app/javascript/mastodon/locales/gd.json | 7 ------- app/javascript/mastodon/locales/gl.json | 7 ------- app/javascript/mastodon/locales/he.json | 14 ++++++------- app/javascript/mastodon/locales/hi.json | 2 -- app/javascript/mastodon/locales/hr.json | 1 - app/javascript/mastodon/locales/hu.json | 8 +------ app/javascript/mastodon/locales/ia.json | 4 ---- app/javascript/mastodon/locales/id.json | 2 -- app/javascript/mastodon/locales/io.json | 5 ----- app/javascript/mastodon/locales/is.json | 14 ++++++------- app/javascript/mastodon/locales/it.json | 14 ++++++------- app/javascript/mastodon/locales/ja.json | 4 ---- app/javascript/mastodon/locales/kab.json | 1 - app/javascript/mastodon/locales/kk.json | 4 ---- app/javascript/mastodon/locales/ko.json | 4 ---- app/javascript/mastodon/locales/ku.json | 2 -- app/javascript/mastodon/locales/la.json | 2 -- app/javascript/mastodon/locales/lad.json | 4 ---- app/javascript/mastodon/locales/lt.json | 4 ---- app/javascript/mastodon/locales/lv.json | 4 ---- app/javascript/mastodon/locales/ms.json | 2 -- app/javascript/mastodon/locales/nan-TW.json | 7 ------- app/javascript/mastodon/locales/ne.json | 3 --- app/javascript/mastodon/locales/nl.json | 7 ------- app/javascript/mastodon/locales/nn.json | 7 ------- app/javascript/mastodon/locales/no.json | 4 ---- app/javascript/mastodon/locales/oc.json | 2 -- app/javascript/mastodon/locales/pa.json | 3 --- app/javascript/mastodon/locales/pl.json | 4 ---- app/javascript/mastodon/locales/pt-BR.json | 7 ------- app/javascript/mastodon/locales/pt-PT.json | 7 ------- app/javascript/mastodon/locales/ro.json | 1 - app/javascript/mastodon/locales/ru.json | 6 ------ app/javascript/mastodon/locales/sc.json | 4 ---- app/javascript/mastodon/locales/si.json | 4 ---- app/javascript/mastodon/locales/sk.json | 4 ---- app/javascript/mastodon/locales/sl.json | 4 ---- app/javascript/mastodon/locales/sq.json | 7 ------- app/javascript/mastodon/locales/sv.json | 7 ------- app/javascript/mastodon/locales/th.json | 4 ---- app/javascript/mastodon/locales/tok.json | 4 ---- app/javascript/mastodon/locales/tr.json | 7 ------- app/javascript/mastodon/locales/tt.json | 2 -- app/javascript/mastodon/locales/ug.json | 1 - app/javascript/mastodon/locales/uk.json | 1 - app/javascript/mastodon/locales/vi.json | 9 ++------ app/javascript/mastodon/locales/zh-CN.json | 14 ++++++------- app/javascript/mastodon/locales/zh-HK.json | 4 ---- app/javascript/mastodon/locales/zh-TW.json | 7 ------- config/locales/gl.yml | 9 ++++++++ config/locales/he.yml | 2 ++ config/locales/hu.yml | 21 +++++++++++++++++++ config/locales/vi.yml | 20 ++++++++++++++++++ config/locales/zh-CN.yml | 4 ++-- 80 files changed, 100 insertions(+), 389 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 6d60b8410a0a3f..fb08a71ee6ef48 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -28,12 +28,10 @@ "account.block_domain": "حظر اسم النِّطاق {domain}", "account.block_short": "حظر", "account.blocked": "محظور", - "account.blocking": "محظور", "account.cancel_follow_request": "إلغاء طلب المتابعة", "account.copy": "نسخ الرابط إلى الملف الشخصي", "account.direct": "إشارة خاصة لـ @{name}", "account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}", - "account.domain_blocking": "نطاق محظور", "account.edit_note": "تعديل الملاحظة الشخصية", "account.edit_profile": "تعديل الملف الشخصي", "account.edit_profile_short": "تعديل", @@ -95,7 +93,6 @@ "account.mute_notifications_short": "كتم الإشعارات", "account.mute_short": "اكتم", "account.muted": "مَكتوم", - "account.muting": "مكتوم", "account.mutual": "أنتم تتابعون بعضكم البعض", "account.name.copy": "نسخ المعرف", "account.name_info": "ما معنى ذلك؟", @@ -112,7 +109,6 @@ "account.remove_from_followers": "إزالة {name} من المتابعين", "account.report": "الإبلاغ عن @{name}", "account.requested_follow": "لقد طلب {name} متابعتك", - "account.requests_to_follow_you": "طلبات المتابعة", "account.share": "شارِك الملف التعريفي لـ @{name}", "account.show_reblogs": "اعرض إعادات نشر @{name}", "account.statuses_counter": "{count, plural, zero {}one {{counter} مشور} two {{counter} منشور} few {{counter} منشور} many {{counter} منشور} other {{counter} منشور}}", diff --git a/app/javascript/mastodon/locales/az.json b/app/javascript/mastodon/locales/az.json index aa3feb6222bfcf..41dc1c7d402bfd 100644 --- a/app/javascript/mastodon/locales/az.json +++ b/app/javascript/mastodon/locales/az.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain} domenini blokla", "account.block_short": "Blok", "account.blocked": "Bloklanıb", - "account.blocking": "Əngəlləmə", "account.cancel_follow_request": "İzləməni ləğv et", "account.copy": "Profil linkini kopyala", "account.direct": "@{name} istifadəçisini fərdi olaraq etiketlə", "account.disable_notifications": "@{name} paylaşım edəndə mənə bildiriş göndərməyi dayandır", - "account.domain_blocking": "Domenin bloklanması", "account.edit_note": "Fərdi nota düzəliş", "account.edit_profile": "Profili redaktə et", "account.edit_profile_short": "Düzəliş", @@ -109,7 +107,6 @@ "account.mute_notifications_short": "Bildirişləri səssizləşdir", "account.mute_short": "Səssizləşdir", "account.muted": "Səssizləşdirilib", - "account.muting": "Səssizə alınır", "account.mutual": "Bir-birinizi izləyirsiniz", "account.no_bio": "Təsvir göstərilməyib.", "account.open_original_page": "Orijinal səhifəni aç", @@ -117,7 +114,6 @@ "account.remove_from_followers": "{name} - izləyicilərdən çıxart", "account.report": "@{name} istifadəçisini şikayət et", "account.requested_follow": "{name} sizi izləmək sorğusu göndərib", - "account.requests_to_follow_you": "Sizi izləmək istəyir", "account.share": "@{name} profilini paylaş", "account.show_reblogs": "@{name} - təkrar paylaşımlarını göstər", "account.statuses_counter": "{count, plural, one {{counter} paylaşım} other {{counter} paylaşım}}", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 2ce501c5744be7..e0c3b8792b5ae5 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -28,12 +28,10 @@ "account.block_domain": "Заблакіраваць дамен {domain}", "account.block_short": "Заблакіраваць", "account.blocked": "Заблакіраваны", - "account.blocking": "Блакіраванне", "account.cancel_follow_request": "Скасаваць запыт на падпіску", "account.copy": "Скапіраваць спасылку на профіль", "account.direct": "Згадаць прыватна @{name}", "account.disable_notifications": "Не паведамляць мне пра публікацыі @{name}", - "account.domain_blocking": "Блакіраванне дамена", "account.edit_note": "Рэдагаваць асабістую нататку", "account.edit_profile": "Рэдагаваць профіль", "account.edit_profile_short": "Рэдагаваць", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Не апавяшчаць", "account.mute_short": "Ігнараваць", "account.muted": "Ігнаруецца", - "account.muting": "Ігнараванне", "account.mutual": "Вы падпісаныя адно на аднаго", "account.name.copy": "Скапір. ідэнтыфікатар", "account.name.help.domain": "{domain} — сервер, які ўтрымлівае профіль і допісы гэтага карыстальніка.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Выдаліць {name} з падпісчыкаў", "account.report": "Паскардзіцца на @{name}", "account.requested_follow": "{name} адправіў(-ла) запыт на падпіску", - "account.requests_to_follow_you": "Хоча падпісацца на вас", "account.share": "Абагуліць профіль @{name}", "account.show_reblogs": "Паказаць падштурхоўванні ад @{name}", "account.statuses_counter": "{count, plural, one {{counter} допіс} few {{counter} допісы} many {{counter} допісаў} other {{counter} допісу}}", @@ -227,8 +223,6 @@ "account_edit.profile_tab.show_media.title": "Паказваць укладку \"Медыя\"", "account_edit.profile_tab.show_media_replies.description": "Калі ўключыць, укладка \"Медыя\" будзе адлюстроўваць як Вашыя допісы, гэтак і Вашыя адказы на допісы іншых людзей.", "account_edit.profile_tab.show_media_replies.title": "Змяшчаць адказы ва ўкладцы \"Медыя\"", - "account_edit.profile_tab.subtitle": "Змяняйце на свой густ укладкі свайго профілю і тое, што яны паказваюць.", - "account_edit.profile_tab.title": "Налады ўкладкі профілю", "account_edit.save": "Захаваць", "account_edit.upload_modal.back": "Назад", "account_edit.upload_modal.done": "Гатова", @@ -398,7 +392,6 @@ "collections.detail.share": "Падзяліцца гэтай калекцыяй", "collections.detail.you_are_in_this_collection": "Вас уключылі ў гэтую калекцыю", "collections.edit_details": "Рэдагаваць падрабязнасці", - "collections.error_loading_collections": "Адбылася памылка падчас загрузкі Вашых калекцый.", "collections.hidden_accounts_description": "Вы заблакіравалі або ігнаруеце {count, plural, one {гэтага карыстальніка} other {гэтых карыстальнікаў}}", "collections.hidden_accounts_link": "{count, plural, one {# схаваны ўліковы запіс} few {# схаваныя ўліковыя запісы} other {# схаваных уліковых запісаў}}", "collections.hints.accounts_counter": "{count}/{max} уліковых запісаў", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 750c54459da58a..7281a4cb34355e 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -21,12 +21,10 @@ "account.block_domain": "Блокиране на домейн {domain}", "account.block_short": "Блокиране", "account.blocked": "Блокирани", - "account.blocking": "Блокиране", "account.cancel_follow_request": "Оттегляне на заявката за последване", "account.copy": "Копиране на връзка към профила", "account.direct": "Частно споменаване на @{name}", "account.disable_notifications": "Спиране на известяване при публикуване от @{name}", - "account.domain_blocking": "Блокиране на домейн", "account.edit_profile": "Редактиране на профила", "account.edit_profile_short": "Редактиране", "account.enable_notifications": "Известяване при публикуване от @{name}", @@ -63,7 +61,6 @@ "account.mute_notifications_short": "Заглушаване на известията", "account.mute_short": "Заглушаване", "account.muted": "Заглушено", - "account.muting": "Заглушаване", "account.mutual": "Взаимно се следвате", "account.no_bio": "Няма представен опис.", "account.open_original_page": "Отваряне на първообразната страница", @@ -71,7 +68,6 @@ "account.remove_from_followers": "Премахване на {name} от последователи", "account.report": "Докладване на @{name}", "account.requested_follow": "{name} поиска да ви последва", - "account.requests_to_follow_you": "Заявки да ви последват", "account.share": "Споделяне на профила на @{name}", "account.show_reblogs": "Показване на подсилвания от @{name}", "account.statuses_counter": "{count, plural, one {{counter} публикация} other {{counter} публикации}}", diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json index 6dbfeb291c4b3f..f43050e09b4d8d 100644 --- a/app/javascript/mastodon/locales/br.json +++ b/app/javascript/mastodon/locales/br.json @@ -21,12 +21,10 @@ "account.block_domain": "Stankañ an domani {domain}", "account.block_short": "Stankañ", "account.blocked": "Stanket", - "account.blocking": "Stanket", "account.cancel_follow_request": "Nullañ ar reked heuliañ", "account.copy": "Eilañ al liamm war-zu ho profil", "account.direct": "Menegiñ @{name} ent-prevez", "account.disable_notifications": "Paouez d'am c'hemenn pa vez embannet traoù gant @{name}", - "account.domain_blocking": "Domani stanket", "account.edit_profile": "Kemmañ ar profil", "account.edit_profile_short": "Kemmañ", "account.enable_notifications": "Ma c'hemenn pa vez embannet traoù gant @{name}", @@ -62,7 +60,6 @@ "account.mute_notifications_short": "Kuzhat ar c'hemennoù", "account.mute_short": "Kuzhat", "account.muted": "Kuzhet", - "account.muting": "O kuzhat", "account.mutual": "Heuliañ a rit an eil egile", "account.no_bio": "Deskrivadur ebet da gaout.", "account.open_original_page": "Digeriñ ar bajenn orin", @@ -70,7 +67,6 @@ "account.remove_from_followers": "Dilemel {name} eus an heulierien·ezed", "account.report": "Disklêriañ @{name}", "account.requested_follow": "Gant {name} eo bet goulennet ho heuliañ", - "account.requests_to_follow_you": "Rekedoù d'ho heuliañ", "account.share": "Skignañ profil @{name}", "account.show_reblogs": "Diskouez skignadennoù @{name}", "account.statuses_counter": "{count, plural, one {{counter} embannadur} two {{counter} embannadur} few {{counter} embannadur} many {{counter} embannadur} other {{counter} embannadur}}", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 2d3b3b4cf15810..9946756b6279f2 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -27,12 +27,10 @@ "account.block_domain": "Bloca el domini {domain}", "account.block_short": "Bloca", "account.blocked": "Blocat", - "account.blocking": "Blocat", "account.cancel_follow_request": "Cancel·la el seguiment", "account.copy": "Copia l'enllaç al perfil", "account.direct": "Menciona privadament @{name}", "account.disable_notifications": "Deixa de notificar-me els tuts de @{name}", - "account.domain_blocking": "Bloquem el domini", "account.edit_note": "Edita una nota personal", "account.edit_profile": "Edita el perfil", "account.edit_profile_short": "Edita", @@ -95,7 +93,6 @@ "account.mute_notifications_short": "Silencia les notificacions", "account.mute_short": "Silencia", "account.muted": "Silenciat", - "account.muting": "Silenciem", "account.mutual": "Us seguiu l'un a l'altre", "account.no_bio": "No s'ha proporcionat cap descripció.", "account.node_modal.callout": "Ningú més pot veure les vostres notes personals.", @@ -111,7 +108,6 @@ "account.remove_from_followers": "Elimina {name} dels seguidors", "account.report": "Informa sobre @{name}", "account.requested_follow": "{name} ha demanat de seguir-te", - "account.requests_to_follow_you": "Peticions de seguir-vos", "account.share": "Comparteix el perfil de @{name}", "account.show_reblogs": "Mostra els impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicació} other {{counter} publicacions}}", @@ -208,7 +204,6 @@ "collections.create_collection": "Crea una coŀlecció", "collections.delete_collection": "Elimina la coŀlecció", "collections.description_length_hint": "Límit de 100 caràcters", - "collections.error_loading_collections": "Hi ha hagut un error en carregar les vostres coŀleccions.", "collections.last_updated_at": "Última actualització: {date}", "collections.mark_as_sensitive": "Marcar com a sensible", "collections.mark_as_sensitive_hint": "Amaga la descripció i els comptes de la coŀlecció rere un avís de contingut. El nom de la coŀlecció serà encara visible.", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index 18658825214b91..87428e5c204099 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokovat doménu {domain}", "account.block_short": "Zablokovat", "account.blocked": "Blokovaný", - "account.blocking": "Blokovaní", "account.cancel_follow_request": "Zrušit sledování", "account.copy": "Kopírovat odkaz na profil", "account.direct": "Soukromě zmínit @{name}", "account.disable_notifications": "Přestat mě upozorňovat, když @{name} zveřejní příspěvek", - "account.domain_blocking": "Blokované domény", "account.edit_note": "Upravit vlastní poznámku", "account.edit_profile": "Upravit profil", "account.edit_profile_short": "Upravit", @@ -97,7 +95,6 @@ "account.mute_notifications_short": "Ztlumit upozornění", "account.mute_short": "Ztlumit", "account.muted": "Skrytý", - "account.muting": "Ztlumení", "account.mutual": "Sledujete se navzájem", "account.name.help.domain": "{domain} je server, který hostuje profily a příspěvky uživatelů.", "account.name.help.domain_self": "{domain} je váš server, který hostuje váš profil a příspěvky.", @@ -119,7 +116,6 @@ "account.remove_from_followers": "Odebrat {name} ze sledujících", "account.report": "Nahlásit @{name}", "account.requested_follow": "{name} tě požádal o sledování", - "account.requests_to_follow_you": "Žádosti o sledování", "account.share": "Sdílet profil @{name}", "account.show_reblogs": "Zobrazit boosty od @{name}", "account.statuses_counter": "{count, plural, one {{counter} příspěvek} few {{counter} příspěvky} many {{counter} příspěvků} other {{counter} příspěvků}}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index c32c47a3037e35..a1252a4b93c448 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -28,12 +28,10 @@ "account.block_domain": "Rhwystro'r parth {domain}", "account.block_short": "Rhwystro", "account.blocked": "Wedi'i rwystro", - "account.blocking": "Yn Rhwystro", "account.cancel_follow_request": "Tynnu cais i ddilyn", "account.copy": "Copïo dolen i'r proffil", "account.direct": "Crybwyll yn breifat @{name}", "account.disable_notifications": "Stopiwch fy hysbysu pan fydd @{name} yn postio", - "account.domain_blocking": "Parthau'n cael eu rhwystro", "account.edit_note": "Golygu nodyn personol", "account.edit_profile": "Golygu'r proffil", "account.edit_profile_short": "Golygu", @@ -99,7 +97,6 @@ "account.mute_notifications_short": "Diffodd hysbysiadau", "account.mute_short": "Anwybyddu", "account.muted": "Wedi anwybyddu", - "account.muting": "Tewi", "account.mutual": "Rydych chi'n dilyn eich gilydd", "account.name.help.domain": "{domain} yw'r gweinydd sy'n cynnal proffil a phostiadau'r defnyddiwr.", "account.name.help.domain_self": "{domain} yw eich gweinydd sy'n cynnal eich proffil a'ch postiadau.", @@ -121,7 +118,6 @@ "account.remove_from_followers": "Tynnu {name} o'ch dilynwyr", "account.report": "Adrodd @{name}", "account.requested_follow": "Mae {name} wedi gwneud cais i'ch dilyn", - "account.requests_to_follow_you": "Ceisiadau i'ch dilyn", "account.share": "Rhannu proffil @{name}", "account.show_reblogs": "Dangos hybiau gan @{name}", "account.statuses_counter": "{count, plural, one {{counter} postiad} two {{counter} bostiad} few {{counter} phostiad} many {{counter} postiad} other {{counter} postiad}}", @@ -195,8 +191,6 @@ "account_edit.profile_tab.show_media.title": "Dangos y tab ‘Cyfryngau’", "account_edit.profile_tab.show_media_replies.description": "Pan fydd wedi'i alluogi, mae'r tab Cyfryngau yn dangos eich postiadau ac atebion i bostiadau pobl eraill.", "account_edit.profile_tab.show_media_replies.title": "Cynhwyswch atebion ar y tab ‘Cyfryngau’", - "account_edit.profile_tab.subtitle": "Cyfaddaswch y tabiau ar eich proffil a'r hyn maen nhw'n ei ddangos.", - "account_edit.profile_tab.title": "Gosodiadau tab proffil", "account_edit.save": "Cadw", "account_edit.upload_modal.back": "Nôl", "account_edit.upload_modal.done": "Gorffen", @@ -347,7 +341,6 @@ "collections.detail.sensitive_note": "Mae'r casgliad hwn yn cynnwys cyfrifon a chynnwys a allai fod yn sensitif i rai defnyddwyr.", "collections.detail.share": "Rhannu'r casgliad hwn", "collections.edit_details": "Golygu manylion", - "collections.error_loading_collections": "Bu gwall wrth geisio llwytho eich casgliadau.", "collections.last_updated_at": "Diweddarwyd ddiwethaf: {date}", "collections.manage_accounts": "Rheoli cyfrifon", "collections.mark_as_sensitive": "Marcio fel sensitif", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 3ac4a400581835..f4e69924c59918 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokér domænet {domain}", "account.block_short": "Bloker", "account.blocked": "Blokeret", - "account.blocking": "Blokering", "account.cancel_follow_request": "Annullér anmodning om at følge", "account.copy": "Kopiér link til profil", "account.direct": "Nævn @{name} privat", "account.disable_notifications": "Giv mig ikke længere en notifikation, når @{name} laver indlæg", - "account.domain_blocking": "Blokerer domæne", "account.edit_note": "Rediger personlig note", "account.edit_profile": "Redigér profil", "account.edit_profile_short": "Rediger", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Sluk for notifikationer", "account.mute_short": "Skjul", "account.muted": "Skjult", - "account.muting": "Skjuler", "account.mutual": "I følger hinanden", "account.name.copy": "Kopiér handle", "account.name.help.domain": "{domain} er den server, der er vært for brugerens profil og indlæg.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Fjern {name} fra følgere", "account.report": "Anmeld @{name}", "account.requested_follow": "{name} har anmodet om at følge dig", - "account.requests_to_follow_you": "Anmoder om at følge dig", "account.share": "Del @{name}s profil", "account.show_reblogs": "Vis fremhævelser fra @{name}", "account.statuses_counter": "{count, plural, one {{counter} indlæg} other {{counter} indlæg}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "Vis fanebladet ‘Medier‘", "account_edit.profile_tab.show_media_replies.description": "Når aktiveret, viser fanen Medier både dine indlæg og svar på andres indlæg.", "account_edit.profile_tab.show_media_replies.title": "Inkludér svar på fanen 'Medier'", - "account_edit.profile_tab.subtitle": "Tilpas fanerne på din profil og det, de viser.", - "account_edit.profile_tab.title": "Indstillinger for profil-fane", + "account_edit.profile_tab.show_relations.description": "Viser de konti, du følger, samt dine følgere for andre brugere på din profil. Andre kan stadig se, om du følger dem.", + "account_edit.profile_tab.show_relations.title": "Vis ‘Følgere‘ og ‘Fulgte’", + "account_edit.profile_tab.subtitle": "Tilpas, hvordan din profil vises.", + "account_edit.profile_tab.title": "Indstillinger for profilvisning", "account_edit.save": "Gem", "account_edit.upload_modal.back": "Tilbage", "account_edit.upload_modal.done": "Færdig", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "Angiv et hashtag…", "account_edit_tags.suggestions": "Forslag:", "account_edit_tags.tag_status_count": "{count, plural, one {# indlæg} other {# indlæg}}", + "account_list.hidden_notice": "Dette kan kun ses af dig. Hvis du vil vise denne liste for andre, skal du gå til {page} > {modal} > {field}.", "account_list.total": "{total, plural, one {# konto} other {# konti}}", "account_note.placeholder": "Klik for at tilføje notat", "admin.dashboard.daily_retention": "Brugerfastholdelsesrate pr. dag efter tilmelding", @@ -399,7 +398,7 @@ "collections.detail.share": "Del denne samling", "collections.detail.you_are_in_this_collection": "Du er med i denne samling", "collections.edit_details": "Rediger detaljer", - "collections.error_loading_collections": "Der opstod en fejl under indlæsning af dine samlinger.", + "collections.error_loading_collections": "Der opstod en fejl under indlæsning af disse samlinger.", "collections.hidden_accounts_description": "Du har blokeret eller skjult {count, plural, one {denne bruger} other {disse brugere}}", "collections.hidden_accounts_link": "{count, plural, one {# skjult konto} other {# skjulte konti}}", "collections.hints.accounts_counter": "{count}/{max} konti", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "Profil utilgængelig", "empty_column.blocks": "Du har ikke blokeret nogle brugere endnu.", "empty_column.bookmarked_statuses": "Du har ingen bogmærkede indlæg endnu. Når du bogmærker ét, vil det dukke op hér.", + "empty_column.collections.featured_in": "Du er ikke blevet tilføjet til nogen samlinger endnu.", "empty_column.community": "Den lokale tidslinje er tom. Skriv noget offentligt for at sætte tingene i gang!", "empty_column.direct": "Du har ikke nogen private omtaler endnu. Når du sender eller modtager en, vil den blive vist her.", "empty_column.disabled_feed": "Dette feed er blevet deaktiveret af dine serveradministratorer.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 779d186f15a316..77fbc6dd05ffd5 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain} blockieren", "account.block_short": "Blockieren", "account.blocked": "Blockiert", - "account.blocking": "Blockiert", "account.cancel_follow_request": "Anfrage zurückziehen", "account.copy": "Link zum Profil kopieren", "account.direct": "@{name} privat erwähnen", "account.disable_notifications": "Benachrichtige mich nicht mehr, wenn @{name} etwas veröffentlicht", - "account.domain_blocking": "Domain blockiert", "account.edit_note": "Persönliche Notiz bearbeiten", "account.edit_profile": "Profil bearbeiten", "account.edit_profile_short": "Bearbeiten", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Benachrichtigungen stummschalten", "account.mute_short": "Stummschalten", "account.muted": "Stummgeschaltet", - "account.muting": "Stummgeschaltet", "account.mutual": "Ihr folgt einander", "account.name.copy": "Adresse kopieren", "account.name.help.domain": "{domain} ist der Server, auf dem das Profil registriert ist und die Beiträge verwaltet werden.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "@{name} als Follower entfernen", "account.report": "@{name} melden", "account.requested_follow": "{name} möchte dir folgen", - "account.requests_to_follow_you": "Möchte dir folgen", "account.share": "Profil von @{name} teilen", "account.show_reblogs": "Geteilte Beiträge von @{name} anzeigen", "account.statuses_counter": "{count, plural, one {{counter} Beitrag} other {{counter} Beiträge}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "„Medien“-Tab anzeigen", "account_edit.profile_tab.show_media_replies.description": "Durch das Aktivieren werden sowohl deine Beiträge als auch deine Antworten auf Beiträge anderer im „Medien“-Tab angezeigt.", "account_edit.profile_tab.show_media_replies.title": "Antworten im „Medien“-Tab anzeigen", - "account_edit.profile_tab.subtitle": "Passe die Tabs deines Profils und deren Inhalte an.", - "account_edit.profile_tab.title": "Profil-Tab-Einstellungen", + "account_edit.profile_tab.show_relations.description": "Dadurch werden die Konten, die dir folgen, und die Profile, denen du folgst, für andere sichtbar. Sie werden immer sehen können, ob du ihnen folgst.", + "account_edit.profile_tab.show_relations.title": "Follower und „Folge ich“ anzeigen", + "account_edit.profile_tab.subtitle": "Passe die Darstellung deines Profils an.", + "account_edit.profile_tab.title": "Einstellungen für die Profilübersicht", "account_edit.save": "Speichern", "account_edit.upload_modal.back": "Zurück", "account_edit.upload_modal.done": "Fertig", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "Gib einen Hashtag ein …", "account_edit_tags.suggestions": "Vorschläge:", "account_edit_tags.tag_status_count": "{count, plural, one {# Beitrag} other {# Beiträge}}", + "account_list.hidden_notice": "Die Liste ist nur für dich sichtbar. Damit sie für andere zugänglich wird, rufe {page} > {modal}> {field} auf.", "account_list.total": "{total, plural, one {# Konto} other {# Konten}}", "account_note.placeholder": "Klicken, um private Anmerkung hinzuzufügen", "admin.dashboard.daily_retention": "Verweildauer der Nutzer*innen pro Tag seit der Registrierung", @@ -399,7 +398,7 @@ "collections.detail.share": "Sammlung teilen", "collections.detail.you_are_in_this_collection": "Du bist ein Teil dieser Sammlung", "collections.edit_details": "Details bearbeiten", - "collections.error_loading_collections": "Beim Laden deiner Sammlungen ist ein Fehler aufgetreten.", + "collections.error_loading_collections": "Beim Laden dieser Sammlungen ist ein Fehler aufgetreten.", "collections.hidden_accounts_description": "Du hast {count, plural, one {dieses Profil} other {diese Profile}} blockiert oder stummgeschaltet", "collections.hidden_accounts_link": "{count, plural, one {# Konto ausgeblendet} other {# Konten ausgeblendet}}", "collections.hints.accounts_counter": "{count}/{max} Konten", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "Profil nicht verfügbar", "empty_column.blocks": "Du hast bisher keine Profile blockiert.", "empty_column.bookmarked_statuses": "Du hast bisher keine Beiträge als Lesezeichen abgelegt. Sobald du einen Beitrag als Lesezeichen speicherst, wird er hier erscheinen.", + "empty_column.collections.featured_in": "Du wurdest noch keiner Sammlung hinzugefügt.", "empty_column.community": "Die lokale Timeline ist leer. Schreibe einen öffentlichen Beitrag, um den Stein ins Rollen zu bringen!", "empty_column.direct": "Du hast noch keine privaten Erwähnungen. Sobald du eine sendest oder erhältst, wird sie hier erscheinen.", "empty_column.disabled_feed": "Diesen Feed haben deine Server-Administrator*innen deaktiviert.", @@ -967,7 +967,7 @@ "notification.reblog": "{name} teilte deinen Beitrag", "notification.reblog.name_and_others_with_link": "{name} und {count, plural, one {# weiteres Profil} other {# weitere Profile}} teilten deinen Beitrag", "notification.relationships_severance_event": "Verbindung zu {name} verloren", - "notification.relationships_severance_event.account_suspension": "Ein Admin von {from} hat {target} gesperrt. Du wirst von diesem Profil keine Updates mehr erhalten und auch nicht mit ihm interagieren können.", + "notification.relationships_severance_event.account_suspension": "Administrator*innen von {from} haben den Zugriff auf den externen Server {target} gesperrt. Das bedeutet, dass du keine Inhalte mehr von dort erhältst. Du kannst auch nicht mehr mit den Profilen dieses Servers interagieren.", "notification.relationships_severance_event.domain_block": "Ein Admin von {from} hat {target} gesperrt – darunter {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst.", "notification.relationships_severance_event.learn_more": "Mehr erfahren", "notification.relationships_severance_event.user_domain_block": "Du hast {target} blockiert – {followersCount} deiner Follower und {followingCount, plural, one {# Konto, dem} other {# Konten, denen}} du folgst, wurden entfernt.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index cea0c1ce718a46..60c1a17c45eaf2 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -28,12 +28,10 @@ "account.block_domain": "Αποκλεισμός τομέα {domain}", "account.block_short": "Αποκλεισμός", "account.blocked": "Αποκλεισμένος/η", - "account.blocking": "Αποκλείεται", "account.cancel_follow_request": "Απόσυρση αιτήματος παρακολούθησης", "account.copy": "Αντιγραφή συνδέσμου προφίλ", "account.direct": "Ιδιωτική επισήμανση @{name}", "account.disable_notifications": "Σταμάτα να με ειδοποιείς όταν δημοσιεύει ο @{name}", - "account.domain_blocking": "Αποκλείεται ο τομέας", "account.edit_note": "Επεξεργασία προσωπικής σημείωσης", "account.edit_profile": "Επεξεργασία προφίλ", "account.edit_profile_short": "Επεξεργασία", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Σίγαση ειδοποιήσεων", "account.mute_short": "Σίγαση", "account.muted": "Σε σίγαση", - "account.muting": "Σίγαση", "account.mutual": "Ακολουθείτε ο ένας τον άλλο", "account.name.copy": "Αντιγραφή πλήρους ονόματος χρήστη", "account.name.help.domain": "Το {domain} είναι ο διακομιστής που φιλοξενεί το προφίλ και τις αναρτήσεις του χρήστη.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Κατάργηση {name} από τους ακόλουθους", "account.report": "Αναφορά @{name}", "account.requested_follow": "Ο/Η {name} αιτήθηκε να σε ακολουθήσει", - "account.requests_to_follow_you": "Αιτήματα για να σε ακολουθήσουν", "account.share": "Κοινοποίηση του προφίλ @{name}", "account.show_reblogs": "Εμφάνιση ενισχύσεων από @{name}", "account.statuses_counter": "{count, plural, one {{counter} ανάρτηση} other {{counter} αναρτήσεις}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Εμφάνιση καρτέλας «Πολυμέσα»", "account_edit.profile_tab.show_media_replies.description": "Όταν ενεργοποιηθεί, η καρτέλα Πολυμέσα εμφανίζει τόσο τις αναρτήσεις σας όσο και τις απαντήσεις σας σε αναρτήσεις άλλων ατόμων.", "account_edit.profile_tab.show_media_replies.title": "Συμπερίληψη απαντήσεων στην καρτέλα «Πολυμέσα»", - "account_edit.profile_tab.subtitle": "Προσαρμόστε τις καρτέλες στο προφίλ σας και τι εμφανίζουν.", - "account_edit.profile_tab.title": "Ρυθμίσεις καρτελών προφίλ", "account_edit.save": "Αποθήκευση", "account_edit.upload_modal.back": "Πίσω", "account_edit.upload_modal.done": "Έγινε", @@ -399,7 +393,6 @@ "collections.detail.share": "Κοινοποιήστε αυτήν τη συλλογή", "collections.detail.you_are_in_this_collection": "Είστε αναδεδειγμένοι σε αυτήν τη συλλογή", "collections.edit_details": "Επεξεργασία λεπτομερειών", - "collections.error_loading_collections": "Παρουσιάστηκε σφάλμα κατά την προσπάθεια φόρτωσης των συλλογών σας.", "collections.hidden_accounts_description": "Έχετε αποκλείσει ή κάνει σίγαση {count, plural, one {αυτόν τον χρήστη} other {αυτούς τους χρήστες}}", "collections.hidden_accounts_link": "{count, plural, one {# κρυμμένος λογαριασμός} other {# κρυμμένοι λογαριασμοί}}", "collections.hints.accounts_counter": "{count}/{max} λογαριασμοί", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 0a3e18eea39e78..366ba8a25e9b80 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -28,12 +28,10 @@ "account.block_domain": "Block domain {domain}", "account.block_short": "Block", "account.blocked": "Blocked", - "account.blocking": "Blocking", "account.cancel_follow_request": "Cancel follow", "account.copy": "Copy link to profile", "account.direct": "Privately mention @{name}", "account.disable_notifications": "Stop notifying me when @{name} posts", - "account.domain_blocking": "Blocking domain", "account.edit_note": "Edit personal note", "account.edit_profile": "Edit profile", "account.edit_profile_short": "Edit", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Mute notifications", "account.mute_short": "Mute", "account.muted": "Muted", - "account.muting": "Muting", "account.mutual": "You follow each other", "account.name.copy": "Copy handle", "account.name.help.domain": "{domain} is the server that hosts the user’s profile and posts.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Remove {name} from followers", "account.report": "Report @{name}", "account.requested_follow": "{name} has requested to follow you", - "account.requests_to_follow_you": "Requests to follow you", "account.share": "Share @{name}'s profile", "account.show_reblogs": "Show boosts from @{name}", "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} posts}}", @@ -153,7 +149,6 @@ "account_edit.advanced_settings.bot_hint": "Signal to others that the account mainly performs automated actions and might not be monitored", "account_edit.advanced_settings.bot_label": "Automated account", "account_edit.advanced_settings.title": "Advanced settings", - "account_edit.bio.add_label": "", "account_edit.bio.edit_label": "Edit bio", "account_edit.bio.placeholder": "Add a short introduction to help others identify you.", "account_edit.bio.title": "Bio", @@ -169,23 +164,16 @@ "account_edit.custom_fields.tip_title": "Tip: adding verified links", "account_edit.custom_fields.title": "Custom fields", "account_edit.custom_fields.verified_hint": "How do I add a verified link?", - "account_edit.display_name.add_label": "He", - "account_edit.display_name.edit_label": "Xs", "account_edit.display_name.placeholder": "Your display name is how your name appears on your profile and in timelines.", "account_edit.display_name.title": "Display name", "account_edit.featured_hashtags.edit_label": "Add hashtags", "account_edit.featured_hashtags.placeholder": "Help others identify, and have quick access to, your favourite topics.", "account_edit.featured_hashtags.title": "Featured hashtags", - "account_edit.field_actions.delete": "Delete", - "account_edit.field_actions.edit": "Edit", "account_edit.field_delete_modal.confirm": "Are you sure you want to delete this custom field? This action can’t be undone.", "account_edit.field_delete_modal.delete_button": "Delete", "account_edit.field_delete_modal.title": "Delete custom field?", "account_edit.field_edit_modal.add_title": "Add custom field", - "account_edit.field_edit_modal.discard_confirm": "Confirm", - "account_edit.field_edit_modal.discard_message": "Discord them", "account_edit.field_edit_modal.edit_title": "Edit custom field", - "account_edit.field_edit_modal.length_warning": "Lenght_warning", "account_edit.field_edit_modal.link_emoji_warning": "We recommend against the use of custom emoji in combination with URLs. Custom fields containing both will display as text only instead of as a link, in order to prevent user confusion.", "account_edit.field_edit_modal.name_hint": "Eg “Personal website”", "account_edit.field_edit_modal.name_label": "Label", @@ -200,7 +188,6 @@ "account_edit.field_reorder_modal.drag_start": "Picked up field \"{item}\".", "account_edit.field_reorder_modal.handle_label": "Drag field \"{item}\"", "account_edit.field_reorder_modal.title": "Rearrange fields", - "account_edit.image_alt_modal.add_title": "Iphone xs", "account_edit.image_alt_modal.details_content": "DO:
    • Describe yourself as pictured
    • Use third person language (e.g. “Alex” instead of “me”)
    • Be succinct – a few words is often enough
    DON’T:
    • Start with “Photo of” – it’s redundant for screen readers
    EXAMPLE:
    • “Alex wearing a green shirt and glasses”
    ", "account_edit.image_alt_modal.details_title": "Tips: Alt text for profile photos", "account_edit.image_alt_modal.edit_title": "Edit alt text", @@ -214,8 +201,6 @@ "account_edit.image_edit.alt_edit_button": "Edit alt text", "account_edit.image_edit.remove_button": "Remove image", "account_edit.image_edit.replace_button": "Replace image", - "account_edit.item_list.delete": "Rifat Chowdhury", - "account_edit.item_list.edit": "Anas Chowdhury", "account_edit.name_modal.add_title": "Add display name", "account_edit.name_modal.edit_title": "Edit display name", "account_edit.profile_tab.button_label": "Customise", @@ -227,17 +212,11 @@ "account_edit.profile_tab.show_media.title": "Show ‘Media’ tab", "account_edit.profile_tab.show_media_replies.description": "When enabled, Media tab shows both your posts and replies to other people’s posts.", "account_edit.profile_tab.show_media_replies.title": "Include replies on ‘Media’ tab", - "account_edit.profile_tab.subtitle": "Customise the tabs on your profile and what they display.", - "account_edit.profile_tab.title": "Profile tab settings", "account_edit.save": "Save", - "account_edit.upload_modal.back": "Iphone xs", "account_edit.upload_modal.done": "Done", "account_edit.upload_modal.next": "Next", - "account_edit.upload_modal.step_crop.zoom": "I'm ", - "account_edit.upload_modal.step_upload.button": "The only way", "account_edit.upload_modal.step_upload.dragging": "Drop to upload", "account_edit.upload_modal.step_upload.header": "Choose an image", - "account_edit.upload_modal.step_upload.hint": "The only way I could do that was if you had to do a lot more work and then you would be done ", "account_edit.upload_modal.title_add.avatar": "Add profile photo", "account_edit.upload_modal.title_add.header": "Add cover photo", "account_edit.upload_modal.title_replace.avatar": "Replace profile photo", @@ -373,7 +352,6 @@ "collections.accounts.empty_editor_title": "No one is in this collection yet", "collections.accounts.empty_title": "This collection is empty", "collections.block_collection_owner": "Block account", - "collections.by_account": "Delete", "collections.collection_description": "Description", "collections.collection_language": "Language", "collections.collection_language_none": "None", @@ -398,7 +376,6 @@ "collections.detail.share": "Share this collection", "collections.detail.you_are_in_this_collection": "You're featured in this collection", "collections.edit_details": "Edit details", - "collections.error_loading_collections": "There was an error when trying to load your collections.", "collections.hidden_accounts_description": "You’ve blocked or muted {count, plural, one {this user} other {these users}}", "collections.hidden_accounts_link": "{count, plural, one {# hidden account} other {# hidden accounts}}", "collections.hints.accounts_counter": "{count}/{max} accounts", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 97ab396897a07c..ae0f37e8eb350a 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -22,12 +22,10 @@ "account.block_domain": "Bloki la domajnon {domain}", "account.block_short": "Bloko", "account.blocked": "Blokita", - "account.blocking": "Bloko", "account.cancel_follow_request": "Nuligi peton por sekvado", "account.copy": "Kopii ligilon al profilo", "account.direct": "Private mencii @{name}", "account.disable_notifications": "Ĉesu sciigi min kiam @{name} afiŝas", - "account.domain_blocking": "Blokas domajnon", "account.edit_profile": "Redakti la profilon", "account.edit_profile_short": "Redakti", "account.enable_notifications": "Sciigu min kiam @{name} afiŝos", @@ -65,7 +63,6 @@ "account.mute_notifications_short": "Silentigu sciigojn", "account.mute_short": "Silentigu", "account.muted": "Silentigita", - "account.muting": "Silentas", "account.mutual": "Vi sekvas unu la alian", "account.no_bio": "Neniu priskribo estas provizita.", "account.node_modal.field_label": "Persona noto", @@ -74,7 +71,6 @@ "account.remove_from_followers": "Forigi {name}-n de sekvantoj", "account.report": "Raporti @{name}", "account.requested_follow": "{name} petis sekvi vin", - "account.requests_to_follow_you": "Petoj sekvi vin", "account.share": "Diskonigi la profilon de @{name}", "account.show_reblogs": "Montri diskonigojn de @{name}", "account.statuses_counter": "{count, plural,one {{counter} afiŝo} other {{counter} afiŝoj}}", @@ -156,7 +152,6 @@ "closed_registrations_modal.title": "Registriĝi en Mastodon", "collections.create_collection": "Krei kolekton", "collections.delete_collection": "Forigi kolekton", - "collections.error_loading_collections": "Okazis eraro provante ŝargi viajn kolektojn.", "column.about": "Pri", "column.blocks": "Blokitaj uzantoj", "column.bookmarks": "Legosignoj", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index e8619efe46fd91..c80e61ae952a2d 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear dominio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueado", - "account.blocking": "Bloqueo", "account.cancel_follow_request": "Dejar de seguir", "account.copy": "Copiar enlace al perfil", "account.direct": "Mención privada a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} envíe mensajes", - "account.domain_blocking": "Dominio bloqueado", "account.edit_note": "Editar nota personal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenciar notificaciones", "account.mute_short": "Silenciar", "account.muted": "Silenciado", - "account.muting": "Silenciada", "account.mutual": "Se siguen mutuamente", "account.name.copy": "Copiar alias", "account.name.help.domain": "«{domain}» es el servidor que hospeda el perfil y los mensajes del usuario.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Quitar a {name} de tus seguidores", "account.report": "Denunciar a @{name}", "account.requested_follow": "{name} solicitó seguirte", - "account.requests_to_follow_you": "Solicita seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar adhesiones de @{name}", "account.statuses_counter": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar pestaña «Medios»", "account_edit.profile_tab.show_media_replies.description": "Cuando está habilitada, la pestaña «Medios» muestra tanto tus mensajes como tus respuestas a otras cuentas.", "account_edit.profile_tab.show_media_replies.title": "Incluir respuestas en la pestaña «Medios»", - "account_edit.profile_tab.subtitle": "Personalizá las pestañas en tu perfil y qué van a mostrar.", - "account_edit.profile_tab.title": "Configuración de pestaña de perfil", "account_edit.save": "Guardar", "account_edit.upload_modal.back": "Volver", "account_edit.upload_modal.done": "Listo", @@ -399,7 +393,6 @@ "collections.detail.share": "Compartir esta colección", "collections.detail.you_are_in_this_collection": "Te destacaron en esta colección", "collections.edit_details": "Editar detalles", - "collections.error_loading_collections": "Hubo un error al intentar cargar tus colecciones.", "collections.hidden_accounts_description": "Bloqueaste o silenciaste a {count, plural, one {este usuario} other {estos usuarios}}", "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} cuentas", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 2ce5593c79c0f3..67d866a1c3e2ed 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear dominio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueado", - "account.blocking": "Bloqueando", "account.cancel_follow_request": "Cancelar seguimiento", "account.copy": "Copiar enlace al perfil", "account.direct": "Mención privada @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", - "account.domain_blocking": "Bloqueando dominio", "account.edit_note": "Editar nota personal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenciar notificaciones", "account.mute_short": "Silenciar", "account.muted": "Silenciado", - "account.muting": "Silenciando", "account.mutual": "Se siguen el uno al otro", "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} es el servidor que aloja el perfil y las publicaciones del usuario.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Eliminar {name} de tus seguidores", "account.report": "Denunciar a @{name}", "account.requested_follow": "{name} ha solicitado seguirte", - "account.requests_to_follow_you": "Solicita seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar pestaña «Multimedia»", "account_edit.profile_tab.show_media_replies.description": "Cuando está habilitada, la pestaña Multimedia muestra tanto tus publicaciones como tus respuestas a las publicaciones de otras personas.", "account_edit.profile_tab.show_media_replies.title": "Incluir respuestas en la pestaña «Multimedia»", - "account_edit.profile_tab.subtitle": "Personaliza las pestañas de tu perfil y lo que muestran.", - "account_edit.profile_tab.title": "Configuración de la pestaña de perfil", "account_edit.save": "Guardar", "account_edit.upload_modal.back": "Volver", "account_edit.upload_modal.done": "Hecho", @@ -399,7 +393,6 @@ "collections.detail.share": "Compartir esta colección", "collections.detail.you_are_in_this_collection": "Apareces en esta colección", "collections.edit_details": "Editar detalles", - "collections.error_loading_collections": "Se produjo un error al intentar cargar tus colecciones.", "collections.hidden_accounts_description": "Has bloqueado o silenciado {count, plural, one {a este usuario} other {a estos usuarios}}", "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} cuentas", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index c2766672f1a582..e58e6598ba3c06 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear dominio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueado", - "account.blocking": "Bloqueando", "account.cancel_follow_request": "Retirar solicitud de seguimiento", "account.copy": "Copiar enlace al perfil", "account.direct": "Mención privada a @{name}", "account.disable_notifications": "Dejar de notificarme cuando @{name} publique algo", - "account.domain_blocking": "Bloqueando dominio", "account.edit_note": "Eidtar nota personal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenciar notificaciones", "account.mute_short": "Silenciar", "account.muted": "Silenciado", - "account.muting": "Silenciando", "account.mutual": "Os seguís mutuamente", "account.name.copy": "Copiar alias", "account.name.help.domain": "{domain} es el servidor que alberga el perfil y las publicaciones del usuario.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Eliminar {name} de tus seguidores", "account.report": "Reportar a @{name}", "account.requested_follow": "{name} ha solicitado seguirte", - "account.requests_to_follow_you": "Solicita seguirte", "account.share": "Compartir el perfil de @{name}", "account.show_reblogs": "Mostrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicaciones}}", @@ -227,8 +223,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar pestaña «Multimedia»", "account_edit.profile_tab.show_media_replies.description": "Cuando está activado, la pestaña Multimedia muestra tanto tus publicaciones como tus respuestas a las publicaciones de otras personas.", "account_edit.profile_tab.show_media_replies.title": "Incluir respuestas en la pestaña «Multimedia»", - "account_edit.profile_tab.subtitle": "Personaliza las pestañas de tu perfil y lo que muestran.", - "account_edit.profile_tab.title": "Configuración de la pestaña de perfil", "account_edit.save": "Guardar", "account_edit.upload_modal.back": "Atrás", "account_edit.upload_modal.done": "Hecho", @@ -398,7 +392,6 @@ "collections.detail.share": "Compartir esta colección", "collections.detail.you_are_in_this_collection": "Apareces en esta colección", "collections.edit_details": "Editar detalles", - "collections.error_loading_collections": "Se ha producido un error al intentar cargar tus colecciones.", "collections.hidden_accounts_description": "Has bloqueado o silenciado {count, plural,one {a este usuario}other {a estos usuarios}}", "collections.hidden_accounts_link": "{count, plural, one {# cuenta oculta} other {# cuentas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} cuentas", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 27faa635ad59ad..3ed32e176700b1 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokeeri kõik domeenist {domain}", "account.block_short": "Blokeeri", "account.blocked": "Blokeeritud", - "account.blocking": "Blokeeritud kasutaja", "account.cancel_follow_request": "Võta jälgimissoov tagasi", "account.copy": "Kopeeri profiili link", "account.direct": "Maini privaatselt kasutajat @{name}", "account.disable_notifications": "Ära teavita, kui @{name} postitab", - "account.domain_blocking": "Blokeeritud domeen", "account.edit_note": "Muuda isiklikku märget", "account.edit_profile": "Muuda profiili", "account.edit_profile_short": "Muuda", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Summuta teavitused", "account.mute_short": "Summuta", "account.muted": "Summutatud", - "account.muting": "Summutatud konto", "account.mutual": "Te jälgite teineteist", "account.name.copy": "Kopeeri kasutajatunnus", "account.name.help.domain": "{domain} on server, kus antud konto koos profiiliga asub ning kust postitused saavad alguse.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Eemalda {name} jälgijate seast", "account.report": "Teata kasutajast {name}", "account.requested_follow": "{name} on soovinud sinu jälgimist", - "account.requests_to_follow_you": "soovib sind jälgida", "account.share": "Jaga @{name} profiili", "account.show_reblogs": "Näita @{name} jagamisi", "account.statuses_counter": "{count, plural, one {{counter} postitus} other {{counter} postitust}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Näita multimeedia vahekaarti", "account_edit.profile_tab.show_media_replies.description": "Sisselülitatuna näitab mediumi vahekaart, nii sinu postitusi kui su vastuseid teiste kasutajate postitustele.", "account_edit.profile_tab.show_media_replies.title": "Kaasa vahekaardile „Meedium“ ka vastused", - "account_edit.profile_tab.subtitle": "Kohanda oma profiili vahekaarte ja nende sisu.", - "account_edit.profile_tab.title": "Profiili vahekaartide seadistused", "account_edit.save": "Salvesta", "account_edit.upload_modal.back": "Tagasi", "account_edit.upload_modal.done": "Valmis", @@ -399,7 +393,6 @@ "collections.detail.share": "Jaga seda kogumikku", "collections.detail.you_are_in_this_collection": "Sa oled selles kogumikus esile tõstetud", "collections.edit_details": "Muuda üksikasju", - "collections.error_loading_collections": "Sinu kogumike laadimisel tekkis viga.", "collections.hidden_accounts_description": "Oled blokeerinud või vaigistanud {count, plural, one {selle kasutaja} other {need kasutajad}}", "collections.hidden_accounts_link": "{count, plural, one {# peidetud konto} other {# peidetud kontot}}", "collections.hints.accounts_counter": "{count}/{max} kontot", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 16107dd9568a73..dc58b8d677b6ab 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -21,12 +21,10 @@ "account.block_domain": "Blokeatu {domain} domeinua", "account.block_short": "Blokeatu", "account.blocked": "Blokeatuta", - "account.blocking": "Eragotzitakoak", "account.cancel_follow_request": "Baztertu jarraitzeko eskaera", "account.copy": "Kopiatu profilerako esteka", "account.direct": "Aipatu pribatuki @{name}", "account.disable_notifications": "Utzi jakinarazteari @{name} erabiltzaileak argitaratzean", - "account.domain_blocking": "Eragotzitako domeinua", "account.edit_profile": "Editatu profila", "account.edit_profile_short": "Editatu", "account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean", @@ -65,7 +63,6 @@ "account.mute_notifications_short": "Mututu jakinarazpenak", "account.mute_short": "Mututu", "account.muted": "Mutututa", - "account.muting": "Isilarazitakoak", "account.mutual": "Elkar jarraitzen duzue", "account.no_bio": "Ez da deskribapenik eman.", "account.open_original_page": "Ireki jatorrizko orria", @@ -73,7 +70,6 @@ "account.remove_from_followers": "Kendu {name} zure jarraitzaileengandik", "account.report": "Salatu @{name}", "account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du", - "account.requests_to_follow_you": "Zu jarraitzeko eskaera egin du", "account.share": "Partekatu @{name} erabiltzailearen profila", "account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak", "account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index a6cd1c20a8252b..389a78798dd796 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -21,12 +21,10 @@ "account.block_domain": "انسداد دامنهٔ {domain}", "account.block_short": "انسداد", "account.blocked": "مسدود", - "account.blocking": "مسدود کرده", "account.cancel_follow_request": "رد کردن درخواست پی‌گیری", "account.copy": "رونوشت از پیوند به نمایه", "account.direct": "اشارهٔ خصوصی به ‪@{name}‬", "account.disable_notifications": "آگاه کردن من هنگام فرسته‌های ‎@{name} را متوقّف کن", - "account.domain_blocking": "دامنهٔ مسدود کرده", "account.edit_profile": "ویرایش نمایه", "account.edit_profile_short": "ویرایش", "account.enable_notifications": "هنگام فرسته‌های ‎@{name} مرا آگاه کن", @@ -65,7 +63,6 @@ "account.mute_notifications_short": "خموشی آگاهی‌ها", "account.mute_short": "خموشی", "account.muted": "خموش", - "account.muting": "خموشش کرده‌اید", "account.mutual": "یکدیگر را پی می‌گیرید", "account.no_bio": "شرحی فراهم نشده.", "account.open_original_page": "گشودن صفحهٔ اصلی", @@ -73,7 +70,6 @@ "account.remove_from_followers": "برداشتن {name} از پی‌گیران", "account.report": "گزارش ‎@{name}", "account.requested_follow": "{name} درخواست پی‌گیریتان را داد", - "account.requests_to_follow_you": "درخواست پی‌گیریتان را دارد", "account.share": "هم‌رسانی نمایهٔ ‎@{name}", "account.show_reblogs": "نمایش تقویت‌های ‎@{name}", "account.statuses_counter": "{count, plural, one {{counter} فرسته} other {{counter} فرسته}}", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index fb33c91a8dbeac..aca15536ba34f0 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -28,12 +28,10 @@ "account.block_domain": "Estä verkkotunnus {domain}", "account.block_short": "Estä", "account.blocked": "Estetty", - "account.blocking": "Estetty", "account.cancel_follow_request": "Peruuta seurantapyyntö", "account.copy": "Kopioi linkki profiiliin", "account.direct": "Mainitse @{name} yksityisesti", "account.disable_notifications": "Lopeta ilmoittamasta minulle, kun @{name} julkaisee", - "account.domain_blocking": "Verkkotunnus estetty", "account.edit_note": "Muokkaa henkilökohtaista muistiinpanoa", "account.edit_profile": "Muokkaa profiilia", "account.edit_profile_short": "Muokkaa", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Mykistä ilmoitukset", "account.mute_short": "Mykistä", "account.muted": "Mykistetty", - "account.muting": "Mykistetty", "account.mutual": "Seuraatte toisianne", "account.name.copy": "Kopioi käyttäjätunnus", "account.name.help.domain": "{domain} on palvelin, jolla käyttäjän profiili ja julkaisut sijaitsevat.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Poista {name} seuraajista", "account.report": "Raportoi @{name}", "account.requested_follow": "{name} on pyytänyt lupaa seurata sinua", - "account.requests_to_follow_you": "Pyynnöt seurata sinua", "account.share": "Jaa käyttäjän @{name} profiili", "account.show_reblogs": "Näytä käyttäjän @{name} tehostukset", "account.statuses_counter": "{count, plural, one {{counter} julkaisu} other {{counter} julkaisua}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Näytä Media-välilehti", "account_edit.profile_tab.show_media_replies.description": "Kun käytössä, Media-välilehti näyttää sekä julkaisusi että vastauksesi muiden julkaisuihin.", "account_edit.profile_tab.show_media_replies.title": "Sisällytä vastaukset Media-välilehdelle", - "account_edit.profile_tab.subtitle": "Mukauta profiilisi välilehtiä ja sitä, mitä niissä näkyy.", - "account_edit.profile_tab.title": "Profiilin välilehtien asetukset", "account_edit.save": "Tallenna", "account_edit.upload_modal.back": "Takaisin", "account_edit.upload_modal.done": "Valmis", @@ -399,7 +393,6 @@ "collections.detail.share": "Jaa tämä kokoelma", "collections.detail.you_are_in_this_collection": "Esiinnyt tässä kokoelmassa", "collections.edit_details": "Muokkaa tietoja", - "collections.error_loading_collections": "Kokoelmien latauksessa tapahtui virhe.", "collections.hidden_accounts_description": "Olet estänyt tai mykistänyt {count, plural, one {tämän käyttäjän} other {nämä käyttäjät}}", "collections.hidden_accounts_link": "{count, plural, one {# piilotettu tili} other {# piilotettua tiliä}}", "collections.hints.accounts_counter": "{count}/{max} tiliä", diff --git a/app/javascript/mastodon/locales/fil.json b/app/javascript/mastodon/locales/fil.json index 44b6500fcedfe4..6899544b2f1485 100644 --- a/app/javascript/mastodon/locales/fil.json +++ b/app/javascript/mastodon/locales/fil.json @@ -21,12 +21,10 @@ "account.block_domain": "Hadlangan ang domain na {domain}", "account.block_short": "Hadlangan", "account.blocked": "Hinadlangan", - "account.blocking": "Pagharang", "account.cancel_follow_request": "I-kansela ang pagsunod", "account.copy": "I-sipi ang kawing sa profile", "account.direct": "Palihim banggitin si @{name}", "account.disable_notifications": "I-tigil ang pagpapaalam sa akin tuwing nagpopost si @{name}", - "account.domain_blocking": "Pag-block ng domain", "account.edit_profile": "Baguhin ang profile", "account.edit_profile_short": "I-edit", "account.enable_notifications": "Ipaalam sa akin kapag nag-post si @{name}", @@ -65,7 +63,6 @@ "account.mute_notifications_short": "I-mute ang mga abiso", "account.mute_short": "I-mute", "account.muted": "Naka-mute", - "account.muting": "Pag-mute", "account.mutual": "Pina-follow nyo ang isa't-isa", "account.no_bio": "Walang nakalaan na paglalarawan.", "account.open_original_page": "Buksan ang pinagmulang pahina", @@ -73,7 +70,6 @@ "account.remove_from_followers": "Alisin si {name} sa mga follower", "account.report": "I-ulat si/ang @{name}", "account.requested_follow": "Hinihiling ni {name} na sundan ka", - "account.requests_to_follow_you": "Mga Request para i-fillow ka", "account.share": "Ibahagi ang profile ni @{name}", "account.show_reblogs": "Ipakita ang mga pagpapalakas mula sa/kay {name}", "account.statuses_counter": "{count,plural,one {{counter} i-post} other {{counter} mga post}}", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index 7da52f6c2bb4d5..54353cb277f7fd 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -28,12 +28,10 @@ "account.block_domain": "Banna økisnavnið {domain}", "account.block_short": "Banna", "account.blocked": "Bannað/ur", - "account.blocking": "Banni", "account.cancel_follow_request": "Strika fylgjaraumbøn", "account.copy": "Avrita leinki til vangan", "account.direct": "Umrøð @{name} privat", "account.disable_notifications": "Ikki boða mær frá, tá @{name} skrivar", - "account.domain_blocking": "Banni økisnavn", "account.edit_note": "Rætta persónliga notu", "account.edit_profile": "Broyt vanga", "account.edit_profile_short": "Rætta", @@ -99,7 +97,6 @@ "account.mute_notifications_short": "Sløkk fráboðanir", "account.mute_short": "Doyv", "account.muted": "Sløkt/ur", - "account.muting": "Doyvir", "account.mutual": "Tit fylgja hvønn annan", "account.name.help.domain": "{domain} er ambætarin, sum hýsir vangan og postarnar hjá brúkaranum.", "account.name.help.domain_self": "{domain} er tín ambætari, sum hýsir tín vanga og postar.", @@ -121,7 +118,6 @@ "account.remove_from_followers": "Strika {name} av fylgjaralista", "account.report": "Melda @{name}", "account.requested_follow": "{name} hevur biðið um at fylgja tær", - "account.requests_to_follow_you": "Umbønir um at fylgja tær", "account.share": "Deil vanga @{name}'s", "account.show_reblogs": "Vís stimbran frá @{name}", "account.statuses_counter": "{count, plural, one {{counter} postur} other {{counter} postar}}", @@ -159,8 +155,6 @@ "account_edit.profile_tab.show_media.title": "Vís 'Miðlar' spjaldur", "account_edit.profile_tab.show_media_replies.description": "Tá tað er virkið, vísir Miðlar spjaldrið bæði tínar postar og svar til postar hjá øðrum.", "account_edit.profile_tab.show_media_replies.title": "Írokna svar á 'Miðlar' spjaldrinum", - "account_edit.profile_tab.subtitle": "Tillaga spjøldrini á vanganum hjá tær og tað, tey vísa.", - "account_edit.profile_tab.title": "Stillingar fyri spjøldur á vanga", "account_edit.save": "Goym", "account_edit_tags.add_tag": "Legg #{tagName} afturat", "account_edit_tags.help_text": "Sermerkt frámerki hjálpa brúkarum at varnast og virka saman við vanga tínum. Tey síggjast sum filtur á virksemisvísingini av vanga tínum.", @@ -294,7 +288,6 @@ "collections.detail.loading": "Innlesi savn…", "collections.detail.share": "Deil hetta savnið", "collections.edit_details": "Rætta smálutir", - "collections.error_loading_collections": "Ein feilur hendi, tá tú royndi at finna fram søvnini hjá tær.", "collections.last_updated_at": "Seinast dagført: {date}", "collections.manage_accounts": "Umsit kontur", "collections.mark_as_sensitive": "Merk sum viðkvæmt", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 10d172890f38b9..455f3ef0bb536b 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquer le domaine {domain}", "account.block_short": "Bloquer", "account.blocked": "Bloqué·e", - "account.blocking": "Bloqué·e", "account.cancel_follow_request": "Retirer cette demande d'abonnement", "account.copy": "Copier le lien du profil", "account.direct": "Mention privée @{name}", "account.disable_notifications": "Ne plus me notifier quand @{name} publie", - "account.domain_blocking": "Domaine bloqué", "account.edit_note": "Modifier la note personnelle", "account.edit_profile": "Modifier le profil", "account.edit_profile_short": "Modifier", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Rendre les notifications muettes", "account.mute_short": "Rendre muet", "account.muted": "Masqué·e", - "account.muting": "Masqué·e", "account.mutual": "Vous vous suivez mutuellement", "account.name.copy": "Copier l’identifiant", "account.name.help.domain": "{domain} est le serveur qui héberge le profil et les messages du compte.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Retirer {name} des abonnés", "account.report": "Signaler @{name}", "account.requested_follow": "{name} a demandé à vous suivre", - "account.requests_to_follow_you": "Demande à vous suivre", "account.share": "Partager le profil de @{name}", "account.show_reblogs": "Afficher les boosts de @{name}", "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Afficher l'onglet « Média »", "account_edit.profile_tab.show_media_replies.description": "En activant cette option l'onglet « Média » affiche à la fois vos messages et vos réponses aux messages d'autres personnes.", "account_edit.profile_tab.show_media_replies.title": "Inclure les réponses dans l'onglet « Média »", - "account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.", - "account_edit.profile_tab.title": "Paramètres de l'onglet du profil", "account_edit.save": "Enregistrer", "account_edit.upload_modal.back": "Retour", "account_edit.upload_modal.done": "Terminé", @@ -399,7 +393,6 @@ "collections.detail.share": "Partager la collection", "collections.detail.you_are_in_this_collection": "Vous faites partie de cette collection", "collections.edit_details": "Modifier les détails", - "collections.error_loading_collections": "Une erreur s'est produite durant le chargement de vos collections.", "collections.hidden_accounts_description": "Vous avez bloqué ou masqué {count, plural, one {ce compte} other {ces comptes}}", "collections.hidden_accounts_link": "{count, plural, one {# compte caché} other {# comptes cachés}}", "collections.hints.accounts_counter": "{count}/{max} comptes", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 056be2b6f7d9b4..ae425aefde5e1f 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquer le domaine {domain}", "account.block_short": "Bloquer", "account.blocked": "Bloqué·e", - "account.blocking": "Bloqué·e", "account.cancel_follow_request": "Annuler l'abonnement", "account.copy": "Copier le lien du profil", "account.direct": "Mentionner @{name} en privé", "account.disable_notifications": "Ne plus me notifier les publications de @{name}", - "account.domain_blocking": "Domaine bloqué", "account.edit_note": "Modifier la note personnelle", "account.edit_profile": "Modifier le profil", "account.edit_profile_short": "Modifier", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Désactiver les notifications", "account.mute_short": "Masquer", "account.muted": "Masqué·e", - "account.muting": "Masqué·e", "account.mutual": "Vous vous suivez mutuellement", "account.name.copy": "Copier l’identifiant", "account.name.help.domain": "{domain} est le serveur qui héberge le profil et les messages du compte.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Retirer {name} des abonnés", "account.report": "Signaler @{name}", "account.requested_follow": "{name} a demandé à vous suivre", - "account.requests_to_follow_you": "Demande à vous suivre", "account.share": "Partager le profil de @{name}", "account.show_reblogs": "Afficher les partages de @{name}", "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Afficher l'onglet « Média »", "account_edit.profile_tab.show_media_replies.description": "En activant cette option l'onglet « Média » affiche à la fois vos messages et vos réponses aux messages d'autres personnes.", "account_edit.profile_tab.show_media_replies.title": "Inclure les réponses dans l'onglet « Média »", - "account_edit.profile_tab.subtitle": "Personnaliser les onglets de votre profil et leur contenu.", - "account_edit.profile_tab.title": "Paramètres de l'onglet du profil", "account_edit.save": "Enregistrer", "account_edit.upload_modal.back": "Retour", "account_edit.upload_modal.done": "Terminé", @@ -399,7 +393,6 @@ "collections.detail.share": "Partager la collection", "collections.detail.you_are_in_this_collection": "Vous faites partie de cette collection", "collections.edit_details": "Modifier les détails", - "collections.error_loading_collections": "Une erreur s'est produite durant le chargement de vos collections.", "collections.hidden_accounts_description": "Vous avez bloqué ou masqué {count, plural, one {ce compte} other {ces comptes}}", "collections.hidden_accounts_link": "{count, plural, one {# compte caché} other {# comptes cachés}}", "collections.hints.accounts_counter": "{count}/{max} comptes", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index b998c1a826afde..81e0b4edd3a9a4 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -21,12 +21,10 @@ "account.block_domain": "Domein {domain} blokkearje", "account.block_short": "Blokkearje", "account.blocked": "Blokkearre", - "account.blocking": "Blokkearre", "account.cancel_follow_request": "Folchfersyk annulearje", "account.copy": "Keppeling nei profyl kopiearje", "account.direct": "Privee fermelde @{name}", "account.disable_notifications": "Jou gjin melding mear wannear @{name} in berjocht pleatst", - "account.domain_blocking": "Domein blokkearre", "account.edit_profile": "Profyl bewurkje", "account.enable_notifications": "Jou in melding mear wannear @{name} in berjocht pleatst", "account.endorse": "Op profyl werjaan", @@ -59,7 +57,6 @@ "account.mute_notifications_short": "Meldingen negearje", "account.mute_short": "Negearje", "account.muted": "Negearre", - "account.muting": "Dôve", "account.mutual": "Jim folgje inoar", "account.no_bio": "Gjin omskriuwing opjûn.", "account.open_original_page": "Orizjinele side iepenje", @@ -67,7 +64,6 @@ "account.remove_from_followers": "{name} as folger fuortsmite", "account.report": "@{name} rapportearje", "account.requested_follow": "{name} hat dy in folchfersyk stjoerd", - "account.requests_to_follow_you": "Fersiken om jo te folgjen", "account.share": "Profyl fan @{name} diele", "account.show_reblogs": "Boosts fan @{name} toane", "account.statuses_counter": "{count, plural, one {{counter} berjocht} other {{counter} berjochten}}", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index ee569593b3bd79..64c8d0967a0834 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -28,12 +28,10 @@ "account.block_domain": "Bac ainm fearainn {domain}", "account.block_short": "Bac", "account.blocked": "Bactha", - "account.blocking": "Ag Blocáil", "account.cancel_follow_request": "Cealaigh leanúint", "account.copy": "Cóipeáil nasc chuig an bpróifíl", "account.direct": "Luaigh @{name} go príobháideach", "account.disable_notifications": "Stop ag cur in iúl dom nuair a dhéanann @{name} postáil", - "account.domain_blocking": "Fearann a bhlocáil", "account.edit_note": "Cuir nóta pearsanta in eagar", "account.edit_profile": "Cuir an phróifíl in eagar", "account.edit_profile_short": "Cuir in Eagar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Balbhaigh fógraí", "account.mute_short": "Balbhaigh", "account.muted": "Balbhaithe", - "account.muting": "Ag balbhaigh", "account.mutual": "Leanann sibh a chéile", "account.name.copy": "Láimhseáil chóipeála", "account.name.help.domain": "Is é {domain} an freastalaí a óstálann próifíl agus poist an úsáideora.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Bain {name} de na leantóirí", "account.report": "Tuairiscigh @{name}", "account.requested_follow": "D'iarr {name} ort do chuntas a leanúint", - "account.requests_to_follow_you": "Iarratais chun tú a leanúint", "account.share": "Roinn próifíl @{name}", "account.show_reblogs": "Taispeáin moltaí ó @{name}", "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} poist}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Taispeáin an cluaisín ‘Meáin’", "account_edit.profile_tab.show_media_replies.description": "Nuair a bhíonn sé cumasaithe, taispeánann an cluaisín Meáin do phoist agus freagraí ar phoist daoine eile araon.", "account_edit.profile_tab.show_media_replies.title": "Cuir freagraí san áireamh ar an táb ‘Meáin’", - "account_edit.profile_tab.subtitle": "Saincheap na cluaisíní ar do phróifíl agus a bhfuil á thaispeáint iontu.", - "account_edit.profile_tab.title": "Socruithe an chluaisín próifíle", "account_edit.save": "Sábháil", "account_edit.upload_modal.back": "Ar ais", "account_edit.upload_modal.done": "Déanta", @@ -399,7 +393,6 @@ "collections.detail.share": "Comhroinn an bailiúchán seo", "collections.detail.you_are_in_this_collection": "Tá tú le feiceáil sa bhailiúchán seo", "collections.edit_details": "Cuir sonraí in eagar", - "collections.error_loading_collections": "Tharla earráid agus iarracht á déanamh do bhailiúcháin a luchtú.", "collections.hidden_accounts_description": "Tá bac nó múchadh déanta agat ar {count, plural, one {an t-úsáideoir seo} two {na húsáideoirí seo} few {na húsáideoirí seo} many {na húsáideoirí seo} other {na húsáideoirí seo}}", "collections.hidden_accounts_link": "{count, plural, one {# cuntas folaithe} two {# cuntais folaithe} few {# cuntais folaithe} many {# cuntais folaithe} other {# cuntais folaithe}}", "collections.hints.accounts_counter": "cuntais {count}/{max}", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index ff41be72e70f53..ffb9a2c11b0ee4 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -28,12 +28,10 @@ "account.block_domain": "Bac an àrainn {domain}", "account.block_short": "Bac", "account.blocked": "’Ga bhacadh", - "account.blocking": "’Ga bhacadh", "account.cancel_follow_request": "Sguir dhen leantainn", "account.copy": "Dèan lethbhreac dhen cheangal dhan phròifil", "account.direct": "Thoir iomradh air @{name} gu prìobhaideach", "account.disable_notifications": "Na cuir brath thugam tuilleadh nuair a chuireas @{name} post ris", - "account.domain_blocking": "Àrainn ’ga bacadh", "account.edit_note": "Deasaich an nòta pearsanta", "account.edit_profile": "Deasaich a’ phròifil", "account.edit_profile_short": "Deasaich", @@ -100,7 +98,6 @@ "account.mute_notifications_short": "Mùch na brathan", "account.mute_short": "Mùch", "account.muted": "’Ga mhùchadh", - "account.muting": "’Ga mhùchadh", "account.mutual": "A’ leantainn càch a chèile", "account.name.copy": "Dèan lethbhreac dhen aithnichear", "account.name.help.domain": "Is {domain} am frithealaiche a tha ag òstadh pròifil ’s postaichean a’ chleachdaiche.", @@ -123,7 +120,6 @@ "account.remove_from_followers": "Thoir {name} air falbh on luchd-leantainn", "account.report": "Dèan gearan mu @{name}", "account.requested_follow": "Dh’iarr {name} ’gad leantainn", - "account.requests_to_follow_you": "Iarrtasan leantainn", "account.share": "Co-roinn a’ phròifil aig @{name}", "account.show_reblogs": "Seall na brosnachaidhean o @{name}", "account.statuses_counter": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", @@ -215,8 +211,6 @@ "account_edit.profile_tab.show_media.title": "Seall an taba “Meadhanan”", "account_edit.profile_tab.show_media_replies.description": "Nuair a bhios seo an comas, seallaidh an taba “Meadhanan” an dà chuid na postaichean agad agus na freagairtean a rinn thu do phostaichean càich.", "account_edit.profile_tab.show_media_replies.title": "Gabh a-staigh freagairtean air an taba “Meadhanan”", - "account_edit.profile_tab.subtitle": "Gnàthaich na tabaichean air a’ phròifil agad is na sheallas iad.", - "account_edit.profile_tab.title": "Roghainnean tabaichean na pròifile", "account_edit.save": "Sàbhail", "account_edit.upload_modal.back": "Air ais", "account_edit.upload_modal.done": "Deiseil", @@ -380,7 +374,6 @@ "collections.detail.share": "Co-roinn an cruinneachadh seo", "collections.detail.you_are_in_this_collection": "Thathar do bhrosnachadh sa chruinneachadh seo", "collections.edit_details": "Deasaich am fiosrachadh", - "collections.error_loading_collections": "Thachair mearachd nuair a dh’fheuch sinn ris a’ chruinneachaidhean agad a luchdadh.", "collections.last_updated_at": "An tùrachadh mu dheireadh: {date}", "collections.manage_accounts": "Stiùirich na cunntasan", "collections.mark_as_sensitive": "Cuir comharra gu bheil e frionasach", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index a0c35926c1b5ab..05b2fb9b2b33e2 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear o dominio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueada", - "account.blocking": "Bloqueos", "account.cancel_follow_request": "Desbotar a solicitude de seguimento", "account.copy": "Copiar ligazón ao perfil", "account.direct": "Mencionar de xeito privado a @{name}", "account.disable_notifications": "Deixar de notificarme cando @{name} publica", - "account.domain_blocking": "Bloqueo do dominio", "account.edit_note": "Editar a nota persoal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenciar notificacións", "account.mute_short": "Acalar", "account.muted": "Acalada", - "account.muting": "Silenciamento", "account.mutual": "Seguimento mútuo", "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} é o servidor que aloxa o perfil e as publicacións da usuaria.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Retirar a {name} das seguidoras", "account.report": "Informar sobre @{name}", "account.requested_follow": "{name} solicitou seguirte", - "account.requests_to_follow_you": "Solicita seguirte", "account.share": "Compartir o perfil de @{name}", "account.show_reblogs": "Amosar compartidos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicación} other {{counter} publicacións}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar pestana 'Multimedia'", "account_edit.profile_tab.show_media_replies.description": "Ao activala, a pestana Multimedia mostra tanto as túas publicacións como as respostas a outras persoas.", "account_edit.profile_tab.show_media_replies.title": "Incluír respostas na pestana 'Multimedia'", - "account_edit.profile_tab.subtitle": "Personaliza as pestanas e o seu contido no teu perfil.", - "account_edit.profile_tab.title": "Perfil e axustes das pestanas", "account_edit.save": "Gardar", "account_edit.upload_modal.back": "Volver", "account_edit.upload_modal.done": "Feito", @@ -399,7 +393,6 @@ "collections.detail.share": "Compartir esta colección", "collections.detail.you_are_in_this_collection": "Engadíronte a esta colección", "collections.edit_details": "Editar detalles", - "collections.error_loading_collections": "Houbo un erro ao intentar cargar as túas coleccións.", "collections.hidden_accounts_description": "Bloqueaches ou silenciaches {count, plural, one {esta conta} other {estas contas}}", "collections.hidden_accounts_link": "{count, plural, one {# conta oculta} other {# contas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} contas", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 364d7d8a19d77a..928c48261a426d 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -28,12 +28,10 @@ "account.block_domain": "חסמו את קהילת {domain}", "account.block_short": "לחסום", "account.blocked": "חסום", - "account.blocking": "רשימת החשבונות החסומים", "account.cancel_follow_request": "משיכת בקשת מעקב", "account.copy": "להעתיק קישור לפרופיל", "account.direct": "הודעה פרטית אל @{name}", "account.disable_notifications": "הפסק לשלוח לי התראות כש@{name} מפרסמים", - "account.domain_blocking": "רשימת השרתים החסומים", "account.edit_note": "עריכת הערה פרטית", "account.edit_profile": "עריכת פרופיל", "account.edit_profile_short": "עריכה", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "השתקת התראות", "account.mute_short": "השתקה", "account.muted": "מושתק", - "account.muting": "רשימת החשבונות המושתקים", "account.mutual": "אתם עוקביםות הדדית", "account.name.copy": "העתקת הכינוי", "account.name.help.domain": "{domain} הוא השרת שמארח את פרופיל המשתמש(ת) וההודעות שכתב(ה).", @@ -136,7 +133,6 @@ "account.remove_from_followers": "הסרת {name} מעוקבי", "account.report": "דווח על @{name}", "account.requested_follow": "{name} ביקשו לעקוב אחריך", - "account.requests_to_follow_you": "ביקשו לעקוב אחריך", "account.share": "שתף את הפרופיל של @{name}", "account.show_reblogs": "הצג הדהודים מאת @{name}", "account.statuses_counter": "{count, plural, one {הודעה אחת} two {הודעותיים} many {{counter} הודעות} other {{counter} הודעות}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "הצגת כרטיסיית \"מדיה\"", "account_edit.profile_tab.show_media_replies.description": "כשמאופשר, כרטיסיית המדיה מציגה גם הודעות מקוריות וגם תשובות להודעות של אחרים.", "account_edit.profile_tab.show_media_replies.title": "לכלול תגובות בכרטיסיית המדיה", - "account_edit.profile_tab.subtitle": "התאימו את הכרטיסיות בפרופיל שלכם ומה שהן יציגו.", - "account_edit.profile_tab.title": "הגדרות כרטיסיות לפרופיל", + "account_edit.profile_tab.show_relations.description": "מראה את העוקבים והנעקבים שלכם בפרופיל. אחרים יוכלו לראות אם אתם עוקבים אחריהם.", + "account_edit.profile_tab.show_relations.title": "לחשוף עוקבים ונעקבים", + "account_edit.profile_tab.subtitle": "בחרו בהתאמה אישית איך תרצו שהפרופיל שלכם יוצג.", + "account_edit.profile_tab.title": "הגדרות הצגת פרופיל", "account_edit.save": "שמירה", "account_edit.upload_modal.back": "חזרה", "account_edit.upload_modal.done": "בוצע", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "הזנת תגית…", "account_edit_tags.suggestions": "הצעות:", "account_edit_tags.tag_status_count": "{count, plural, one {הודעה אחת} two {הודעותיים} other {# הודעות}}", + "account_list.hidden_notice": "הרשימה גלויה רק לך. כדי לחשוף אותה לאחרים, יש ללכת אל {page} < {modal} < {field}.", "account_list.total": "{total, plural, one {חשבון אחד} other {# חשבונות}}", "account_note.placeholder": "יש ללחוץ כדי להוסיף הערות", "admin.dashboard.daily_retention": "קצב שימור משתמשים יומי אחרי ההרשמה", @@ -399,7 +398,7 @@ "collections.detail.share": "שיתוף אוסף", "collections.detail.you_are_in_this_collection": "אתם מופיעים באוסף זה", "collections.edit_details": "עריכת פרטים", - "collections.error_loading_collections": "חלה שגיאה בנסיון לטעון את אוספיך.", + "collections.error_loading_collections": "חלה שגיאה בנסיון לטעון אוספים אלו.", "collections.hidden_accounts_description": "חסמת או השתקת {count, plural,one {המשתמש.ת}other {המשתמשים}} האלו", "collections.hidden_accounts_link": "{count, plural, one {חשבון מוסתר אחד} other {# חשבונות מוסתרים}}", "collections.hints.accounts_counter": "{count} \\ {max} חשבונות", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "פרופיל לא זמין", "empty_column.blocks": "עדיין לא חסמתם משתמשים אחרים.", "empty_column.bookmarked_statuses": "אין עדיין הודעות שחיבבת. כשתחבב את הראשונה, היא תופיע כאן.", + "empty_column.collections.featured_in": "עוד לא הוסיפו אותך לאף אוסף.", "empty_column.community": "פיד השרת המקומי ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!", "empty_column.direct": "אין לך שום הודעות פרטיות עדיין. כשתשלחו או תקבלו אחת, היא תופיע כאן.", "empty_column.disabled_feed": "פיד זה נחסם לשימוש על ידי מנהלי השרת שלך.", diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json index 55780f03f5680d..b5c49b217ec348 100644 --- a/app/javascript/mastodon/locales/hi.json +++ b/app/javascript/mastodon/locales/hi.json @@ -21,12 +21,10 @@ "account.block_domain": "{domain} के सारी चीज़े छुपाएं", "account.block_short": "ब्लॉक किया गया", "account.blocked": "ब्लॉक", - "account.blocking": "प्रतिबंधित करना", "account.cancel_follow_request": "फॉलो रिक्वेस्ट वापस लें", "account.copy": "प्रोफाइल पर लिंक कॉपी करें", "account.direct": "निजि तरीके से उल्लेख करे @{name}", "account.disable_notifications": "@{name} पोस्ट के लिए मुझे सूचित मत करो", - "account.domain_blocking": "डोमेन ब्लॉक करें", "account.edit_profile": "प्रोफ़ाइल संपादित करें", "account.edit_profile_short": "संपादित करें", "account.enable_notifications": "जब @{name} पोस्ट मौजूद हो सूचित करें", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 93901adc5af89a..9bfd365db407d9 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -81,7 +81,6 @@ "account_edit.column_title": "Uredi profil", "account_edit.custom_fields.title": "Prilagođena polja", "account_edit.featured_hashtags.title": "Istaknuti hashtagovi", - "account_edit.profile_tab.title": "Prikaz kartice profila", "account_edit.save": "Spremi", "account_note.placeholder": "Kliknite za dodavanje bilješke", "admin.dashboard.daily_retention": "Stopa zadržavanja korisnika po danu nakon prijave", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index e636d354e6b699..675e147bd31b32 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -28,12 +28,10 @@ "account.block_domain": "Domain letiltása: {domain}", "account.block_short": "Letiltás", "account.blocked": "Letiltva", - "account.blocking": "Tiltás", "account.cancel_follow_request": "Követési kérés visszavonása", "account.copy": "Hivatkozás másolása a profilba", "account.direct": "@{name} személyes említése", "account.disable_notifications": "Ne figyelmeztessen, ha @{name} bejegyzést tesz közzé", - "account.domain_blocking": "Domain tiltás", "account.edit_note": "Személyes megjegyzés szerkesztése", "account.edit_profile": "Profil szerkesztése", "account.edit_profile_short": "Szerkesztés", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Értesítések némítása", "account.mute_short": "Némítás", "account.muted": "Némítva", - "account.muting": "Némítás", "account.mutual": "Követitek egymást", "account.name.copy": "Fióknév másolása", "account.name.help.domain": "A(z) {domain} a kiszolgáló, amely a felhasználó profilját és bejegyzéseit szolgálja ki.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "{name} eltávolítása a követők közül", "account.report": "@{name} jelentése", "account.requested_follow": "{name} kérte, hogy követhessen", - "account.requests_to_follow_you": "Kéri, hogy követhessen", "account.share": "@{name} profiljának megosztása", "account.show_reblogs": "@{name} megtolásainak mutatása", "account.statuses_counter": "{count, plural, one {{counter} bejegyzés} other {{counter} bejegyzés}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "„Média” lap megjelenítése", "account_edit.profile_tab.show_media_replies.description": "Ha engedélyezve van, akkor a Média lap megjeleníti a bejegyzéseidet és a mások bejegyzéseihez írt válaszaidat.", "account_edit.profile_tab.show_media_replies.title": "Válaszok megjelenítése a „Média” lapon", - "account_edit.profile_tab.subtitle": "Szabd testre a profilodon látható lapokat, és a megjelenített tartalmukat.", - "account_edit.profile_tab.title": "Profil lap beállításai", "account_edit.save": "Mentés", "account_edit.upload_modal.back": "Vissza", "account_edit.upload_modal.done": "Kész", @@ -399,7 +393,6 @@ "collections.detail.share": "Gyűjtemény megosztása", "collections.detail.you_are_in_this_collection": "Kiemeltek téged ebben a gyűjteményhez", "collections.edit_details": "Részletek szerkesztése", - "collections.error_loading_collections": "Hiba történt a gyűjtemények betöltése során.", "collections.hidden_accounts_description": "Blokkoltad vagy letiltottad {count, plural, one {ezt a felhasználót} other {ezeket a felhasználókat}}", "collections.hidden_accounts_link": "{count, plural, one {# rejtett fiók} other {# rejtett fiók}}", "collections.hints.accounts_counter": "{count}/{max} fiók", @@ -415,6 +408,7 @@ "collections.maximum_collection_count_reached": "Elérted a gyűjtemények maximális számát", "collections.name_length_hint": "40 karakteres korlát", "collections.new_collection": "Új gyűjtemény", + "collections.pending_accounts.message": "A fiókok függőben lévőként jelenhetnek meg, ha a felhasználó vagy a kiszolgálója válaszára várunk. Csak te láthatod a függőben lévő fiókokat.", "collections.pending_accounts.title": "Miért látom a függőben lévő fiókokat?", "collections.remove_account": "Eltávolítás", "collections.report_collection": "Gyűjtemény jelentése", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index 96e5e2bbd2e6b9..f4c473a6880d17 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -21,12 +21,10 @@ "account.block_domain": "Blocar dominio {domain}", "account.block_short": "Blocar", "account.blocked": "Blocate", - "account.blocking": "Blocate", "account.cancel_follow_request": "Cancellar sequimento", "account.copy": "Copiar ligamine a profilo", "account.direct": "Mentionar privatemente @{name}", "account.disable_notifications": "Non plus notificar me quando @{name} publica", - "account.domain_blocking": "Dominio blocate", "account.edit_profile": "Modificar profilo", "account.edit_profile_short": "Modificar", "account.enable_notifications": "Notificar me quando @{name} publica", @@ -65,7 +63,6 @@ "account.mute_notifications_short": "Silentiar le notificationes", "account.mute_short": "Silentiar", "account.muted": "Silentiate", - "account.muting": "Silentiate", "account.mutual": "Sequimento mutue", "account.no_bio": "Nulle description fornite.", "account.open_original_page": "Aperir le pagina original", @@ -73,7 +70,6 @@ "account.remove_from_followers": "Remover {name} del sequitores", "account.report": "Reportar @{name}", "account.requested_follow": "{name} ha requestate de sequer te", - "account.requests_to_follow_you": "Requestas de sequer te", "account.share": "Compartir profilo de @{name}", "account.show_reblogs": "Monstrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} message} other {{counter} messages}}", diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 203a2b575564d0..833ce291928b8a 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -21,12 +21,10 @@ "account.block_domain": "Blokir domain {domain}", "account.block_short": "Blokir", "account.blocked": "Terblokir", - "account.blocking": "Memblokir", "account.cancel_follow_request": "Batalkan permintaan ikut", "account.copy": "Salin tautan ke profil", "account.direct": "Sebut secara pribadi @{name}", "account.disable_notifications": "Berhenti memberitahu saya ketika @{name} memposting", - "account.domain_blocking": "Memblokir domain", "account.edit_profile": "Ubah profil", "account.enable_notifications": "Beritahu saya saat @{name} memposting", "account.endorse": "Tampilkan di profil", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 11513f613d0ffa..512717621fb83f 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokusar {domain}", "account.block_short": "Blokusar", "account.blocked": "Blokusita", - "account.blocking": "Blokusas", "account.cancel_follow_request": "Desendez sequodemando", "account.copy": "Kopiez ligilo al profilo", "account.direct": "Private mencionez @{name}", "account.disable_notifications": "Cesez avizar me kande @{name} postas", - "account.domain_blocking": "Blokusas domeno", "account.edit_note": "Redaktez personala noto", "account.edit_profile": "Redaktar profilo", "account.edit_profile_short": "Redaktez", @@ -89,7 +87,6 @@ "account.mute_notifications_short": "Silencigez avizi", "account.mute_short": "Silencigez", "account.muted": "Silencigata", - "account.muting": "Silencigas", "account.name.help.header": "Nometo esas kam retpostadreso", "account.no_bio": "Deskriptajo ne provizesis.", "account.open_original_page": "Apertez originala pagino", @@ -129,8 +126,6 @@ "account_edit.profile_tab.show_media.title": "Montrez 'Audvidajo'-langeto", "account_edit.profile_tab.show_media_replies.description": "Kande aktivigita, audvidajlangeto montras ambe vua afishi e respondi ad afishi di altra personi.", "account_edit.profile_tab.show_media_replies.title": "Inkluzas respondi che 'Audvidajo'-langeto", - "account_edit.profile_tab.subtitle": "Kustumizas la langeti che vua profilo e quon li montras.", - "account_edit.profile_tab.title": "Profillangetpreferaji", "account_edit.verified_modal.invisible_link.details": "Adjuntez la ligilo ad vua kapimajo. Vu anke povas uzar ligiletiketo en la kapimajo di la pagino vice {tag}, ma la HTML mustas esar acesebla sen exekutar JavaScript.", "account_edit_tags.help_text": "Estalita gretvorti helpas uzanti deskovrar e interagar kun vua profilo.", "account_edit_tags.max_tags_reached": "Vu atingas la maxim quanto di estalita gretvorti.", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 16c5d4c584888f..c035e899dca16e 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -28,12 +28,10 @@ "account.block_domain": "Útiloka lénið {domain}", "account.block_short": "Útiloka", "account.blocked": "Útilokaður", - "account.blocking": "Útilokað", "account.cancel_follow_request": "Taka fylgjendabeiðni til baka", "account.copy": "Afrita tengil í notandasnið", "account.direct": "Einkaspjall við @{name}", "account.disable_notifications": "Hætta að láta mig vita þegar @{name} sendir inn", - "account.domain_blocking": "Útilokað lén", "account.edit_note": "Breyta persónulegum minnispunkti", "account.edit_profile": "Breyta notandasniði", "account.edit_profile_short": "Breyta", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Þagga í tilkynningum", "account.mute_short": "Þagga niður", "account.muted": "Þaggaður", - "account.muting": "Þöggun", "account.mutual": "Þið fylgið hvor öðrum", "account.name.copy": "Afrita kennislóð", "account.name.help.domain": "{domain} er netþjónninn sem hýsir upplýsingasnið um notandann og færslurnar hans.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Fjarlægja {name} úr fylgjendum", "account.report": "Kæra @{name}", "account.requested_follow": "{name} hefur beðið um að fylgjast með þér", - "account.requests_to_follow_you": "Bað um að fylgja þér", "account.share": "Deila notandasniði fyrir @{name}", "account.show_reblogs": "Sýna endurbirtingar frá @{name}", "account.statuses_counter": "{count, plural, one {{counter} færsla} other {{counter} færslur}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "Birta 'Myndefni' flipa", "account_edit.profile_tab.show_media_replies.description": "Þegar þetta er virkt, sýnir myndefnisflipinn bæði færslurnar þínar og svör þín við færslum annarra.", "account_edit.profile_tab.show_media_replies.title": "Hafa með svör á flipanum ‘Myndefni’", - "account_edit.profile_tab.subtitle": "Sérsníddu flipana á notandasniðinu þínu og hvað þeir birta.", - "account_edit.profile_tab.title": "Stillingar notandasniðsflipa", + "account_edit.profile_tab.show_relations.description": "Birtir öðrum notendum á notandasniðinu þínu þá aðganga sem þú fylgist með og sem fylgjast með þér. Fólk mun áfram geta séð hvort þú fylgist með þeim.", + "account_edit.profile_tab.show_relations.title": "Sýna 'Fylgjendur’ og 'Fylgist með'", + "account_edit.profile_tab.subtitle": "Sérsníddu hvernig notandasniðið þitt birtist.", + "account_edit.profile_tab.title": "Stillingar á birtingu notandasniðs", "account_edit.save": "Vista", "account_edit.upload_modal.back": "Til baka", "account_edit.upload_modal.done": "Lokið", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "Settu inn myllumerki…", "account_edit_tags.suggestions": "Tillögur:", "account_edit_tags.tag_status_count": "{count, plural, one {# færsla} other {# færslur}}", + "account_list.hidden_notice": "Þetta er aðeins sýnilegt þér. Til að sýna öðrum þennan lista, skaltu fara á {page} > {modal} > {field}.", "account_list.total": "{total, plural, one {# aðgangur} other {# aðgangar}}", "account_note.placeholder": "Smelltu til að bæta við minnispunkti", "admin.dashboard.daily_retention": "Hlutfall virkra notenda eftir nýskráningu eftir dögum", @@ -399,7 +398,7 @@ "collections.detail.share": "Deila þessu safni", "collections.detail.you_are_in_this_collection": "Þú kemur fyrir í þessu safni", "collections.edit_details": "Breyta ítarupplýsingum", - "collections.error_loading_collections": "Villa kom upp þegar reynt var að hlaða inn söfnunum þínum.", + "collections.error_loading_collections": "Villa kom upp þegar reynt var að hlaða inn þessum söfnum.", "collections.hidden_accounts_description": "Þú hefur lokað á eða þaggað niður í {count, plural, one {þessum notanda} other {þessum notendum}}", "collections.hidden_accounts_link": "{count, plural, one {# falinn aðgangur} other {# faldir aðgangar}}", "collections.hints.accounts_counter": "{count}/{max} aðgöngum", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "Notandasnið ekki tiltækt", "empty_column.blocks": "Þú hefur ekki ennþá útilokað neina notendur.", "empty_column.bookmarked_statuses": "Þú ert ekki ennþá með neinar bókamerktar færslur. Þegar þú bókamerkir færslu, mun það birtast hér.", + "empty_column.collections.featured_in": "Þér hefur enn ekki verið bætt við nein söfn.", "empty_column.community": "Staðværa tímalínan er tóm. Skrifaðu eitthvað opinberlega til að láta boltann fara að rúlla!", "empty_column.direct": "Þú ert ekki ennþá með neitt einkaspjall við neinn. Þegar þú sendir eða tekur við slíku, mun það birtast hér.", "empty_column.disabled_feed": "Þetta streymi hefur verið gert óvirkt af stjórnendum netþjónis þíns.", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index b415981c2d6ef6..4da29542e11d58 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -28,12 +28,10 @@ "account.block_domain": "Blocca dominio {domain}", "account.block_short": "Blocca", "account.blocked": "Bloccato", - "account.blocking": "Account bloccato", "account.cancel_follow_request": "Annulla la richiesta di seguire", "account.copy": "Copia link del profilo", "account.direct": "Menziona privatamente @{name}", "account.disable_notifications": "Smetti di avvisarmi quando @{name} pubblica un post", - "account.domain_blocking": "Account di un dominio bloccato", "account.edit_note": "Modifica la nota personale", "account.edit_profile": "Modifica profilo", "account.edit_profile_short": "Modifica", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenzia notifiche", "account.mute_short": "Silenzia", "account.muted": "Mutato", - "account.muting": "Account silenziato", "account.mutual": "Vi seguite a vicenda", "account.name.copy": "Copia il nome univoco", "account.name.help.domain": "{domain} è il server che ospita il profilo e i post dell'utente.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Rimuovi {name} dai follower", "account.report": "Segnala @{name}", "account.requested_follow": "{name} ha richiesto di seguirti", - "account.requests_to_follow_you": "Richieste di seguirti", "account.share": "Condividi il profilo di @{name}", "account.show_reblogs": "Mostra condivisioni da @{name}", "account.statuses_counter": "{count, plural, one {{counter} post} other {{counter} post}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "Mostra la scheda \"Media\"", "account_edit.profile_tab.show_media_replies.description": "Quando abilitata, la scheda Media mostra sia i tuoi post che le risposte ai post di altre persone.", "account_edit.profile_tab.show_media_replies.title": "Includi le risposte nella scheda \"Media\"", - "account_edit.profile_tab.subtitle": "Personalizza le schede del tuo profilo e ciò che mostrano.", - "account_edit.profile_tab.title": "Impostazioni della scheda del profilo", + "account_edit.profile_tab.show_relations.description": "Mostra gli account che segui e i follower ad altri utenti nel tuo profilo. Le persone saranno ancora in grado di vedere se li stai seguendo.", + "account_edit.profile_tab.show_relations.title": "Mostra \"Followers\" e \"Seguiti\"", + "account_edit.profile_tab.subtitle": "Personalizza come viene visualizzato il tuo profilo.", + "account_edit.profile_tab.title": "Impostazioni di visualizzazione del profilo", "account_edit.save": "Salva", "account_edit.upload_modal.back": "Indietro", "account_edit.upload_modal.done": "Fatto", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "Inserisci un hashtag…", "account_edit_tags.suggestions": "Suggerimenti:", "account_edit_tags.tag_status_count": "{count, plural, one {# post} other {# post}}", + "account_list.hidden_notice": "Questo è visibile solo a te. Per mostrare questa lista ad altri, vai su {page} > {modal} > {field}.", "account_list.total": "{total, plural, one {# account} other {# account}}", "account_note.placeholder": "Clicca per aggiungere una nota", "admin.dashboard.daily_retention": "Tasso di ritenzione dell'utente per giorno, dopo la registrazione", @@ -399,7 +398,7 @@ "collections.detail.share": "Condividi questa collezione", "collections.detail.you_are_in_this_collection": "Sei presente in questa collezione", "collections.edit_details": "Modifica i dettagli", - "collections.error_loading_collections": "Si è verificato un errore durante il tentativo di caricare le tue collezioni.", + "collections.error_loading_collections": "Si è verificato un errore durante il tentativo di caricare queste collezioni.", "collections.hidden_accounts_description": "Hai bloccato o silenziato {count, plural, one {questo utente} other {questi utenti}}", "collections.hidden_accounts_link": "{count, plural, one {# account nascosto} other {# account nascosti}}", "collections.hints.accounts_counter": "{count}/{max} account", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "Profilo non disponibile", "empty_column.blocks": "Non hai ancora bloccato alcun utente.", "empty_column.bookmarked_statuses": "Non hai ancora salvato nei segnalibri alcun post. Quando lo farai, apparirà qui.", + "empty_column.collections.featured_in": "Non sei ancora stato/a aggiunto/a ad alcuna collezione.", "empty_column.community": "La cronologia locale è vuota. Scrivi qualcosa pubblicamente per dare inizio alla festa!", "empty_column.direct": "Non hai ancora alcuna menzione privata. Quando ne invierai o riceverai una, apparirà qui.", "empty_column.disabled_feed": "Questo feed è stato disabilitato dagli amministratori del tuo server.", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 18e6d09a8c3c92..2459d80f24dc7d 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain}全体をブロック", "account.block_short": "ブロック", "account.blocked": "ブロック済み", - "account.blocking": "ブロック中", "account.cancel_follow_request": "フォローリクエストの取り消し", "account.copy": "プロフィールへのリンクをコピー", "account.direct": "@{name}さんに非公開でメンション", "account.disable_notifications": "@{name}さんの投稿時の通知を停止", - "account.domain_blocking": "ブロックしているドメイン", "account.edit_note": "個人的なメモを編集する", "account.edit_profile": "プロフィール編集", "account.edit_profile_short": "編集", @@ -96,7 +94,6 @@ "account.mute_notifications_short": "通知をオフにする", "account.mute_short": "ミュート", "account.muted": "ミュート済み", - "account.muting": "ミュート中", "account.mutual": "相互フォロー中", "account.no_bio": "説明が提供されていません。", "account.node_modal.callout": "個人的なメモはあなただけが見られます。", @@ -106,7 +103,6 @@ "account.remove_from_followers": "{name}さんをフォロワーから削除", "account.report": "@{name}さんを通報", "account.requested_follow": "{name}さんがあなたにフォローリクエストしました", - "account.requests_to_follow_you": "フォローリクエスト", "account.share": "@{name}さんのプロフィールを共有する", "account.show_reblogs": "@{name}さんからのブーストを表示", "account.statuses_counter": "{count, plural, other {{counter} 投稿}}", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index f775d2ff9a1ca7..d777d269824e1c 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -161,7 +161,6 @@ "account_edit.name_modal.add_title": "Rnu isem ara d-yettwaskanen", "account_edit.name_modal.edit_title": "Ẓreg isem ara d-yettwaskanen", "account_edit.profile_tab.button_label": "Sagen", - "account_edit.profile_tab.title": "Iɣewwaren n yiccer n umaɣnu", "account_edit.save": "Sekles", "account_edit.upload_modal.back": "Uɣal", "account_edit.upload_modal.done": "Dayen", diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json index 7e1a7aadeef38e..c7bad1cc561ee6 100644 --- a/app/javascript/mastodon/locales/kk.json +++ b/app/javascript/mastodon/locales/kk.json @@ -20,11 +20,9 @@ "account.block_domain": "{domain} доменін бұғаттау", "account.block_short": "Бұғаттау", "account.blocked": "Бұғатталған", - "account.blocking": "Бұғаттау", "account.cancel_follow_request": "Withdraw follow request", "account.direct": "@{name} жеке айту", "account.disable_notifications": "@{name} постары туралы ескертпеу", - "account.domain_blocking": "Доменді бұғаттау", "account.edit_profile": "Профильді өңдеу", "account.edit_profile_short": "Түзеу", "account.enable_notifications": "@{name} постары туралы ескерту", @@ -57,7 +55,6 @@ "account.mute_notifications_short": "Хабарландыруларды өшіру", "account.mute_short": "Өшіру", "account.muted": "Еленбейді", - "account.muting": "Өшіру", "account.mutual": "Сіздер бір-біріңізге жазылғансыздар", "account.no_bio": "Сипаттама берілмеген.", "account.open_original_page": "Бастапқы бетті ашу", @@ -65,7 +62,6 @@ "account.remove_from_followers": "{name} жазылушылардан жою", "account.report": "Шағымдану @{name}", "account.requested_follow": "{name} сізге жазылуға сұраныс жіберді", - "account.requests_to_follow_you": "Сізге жазылу сұраныстары", "account.share": "@{name} профилін бөлісу\"", "account.show_reblogs": "@{name} бөліскендерін көрсету", "account.statuses_counter": "{count, plural, one {{counter} жазба} other {{counter} жазба}}", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index e2607489135c63..c0daf196bc4903 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain} 도메인 차단", "account.block_short": "차단", "account.blocked": "차단함", - "account.blocking": "차단함", "account.cancel_follow_request": "팔로우 취소", "account.copy": "프로필 링크 복사", "account.direct": "@{name} 님에게 개인 멘션", "account.disable_notifications": "@{name} 의 게시물 알림 끄기", - "account.domain_blocking": "도메인 차단함", "account.edit_note": "개인 메모 편집", "account.edit_profile": "프로필 편집", "account.edit_profile_short": "수정", @@ -92,7 +90,6 @@ "account.mute_notifications_short": "알림 뮤트", "account.mute_short": "뮤트", "account.muted": "뮤트됨", - "account.muting": "뮤트함", "account.mutual": "서로 팔로우", "account.no_bio": "제공된 설명이 없습니다.", "account.node_modal.save": "저장", @@ -103,7 +100,6 @@ "account.remove_from_followers": "팔로워에서 {name} 제거", "account.report": "@{name} 신고", "account.requested_follow": "{name} 님이 팔로우 요청을 보냈습니다", - "account.requests_to_follow_you": "팔로우 요청", "account.share": "@{name}의 프로필 공유", "account.show_reblogs": "@{name}의 부스트 보기", "account.statuses_counter": "{count, plural, other {게시물 {counter}개}}", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 5ffe118fef9712..68181f03317dce 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -22,7 +22,6 @@ "account.block_domain": "Navpera {domain} asteng bike", "account.block_short": "Asteng bike", "account.blocked": "Astengkirî", - "account.blocking": "Astengkirin", "account.cancel_follow_request": "Daxwaza şopandinê vekişîne", "account.copy": "Girêdanê bo profîlê jê bigire", "account.direct": "Bi taybetî qale @{name} bike", @@ -70,7 +69,6 @@ "account.mute_notifications_short": "Agahdariyan bêdeng bike", "account.mute_short": "Bêdeng bike", "account.muted": "Bêdengkirî", - "account.muting": "Bêdengkirin", "account.mutual": "Hûn hevdû dişopînin", "account.no_bio": "Ti danasîn nehatiye tevlîkirin.", "account.open_original_page": "Rûpela resen veke", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 78d1cd359dc2d9..d6c88a68d16f56 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -21,12 +21,10 @@ "account.block_domain": "Imperire dominium {domain}", "account.block_short": "Imperire", "account.blocked": "Impeditum est", - "account.blocking": "Clausus", "account.cancel_follow_request": "Petitio sequī retrāhere", "account.copy": "Transcribo connexi ut catagraphum", "account.direct": "Callim loqui @{name}", "account.disable_notifications": "Desine me certiorem facere cum @{name} scribit", - "account.domain_blocking": "Domenium obstructum", "account.edit_profile": "Recolere notionem", "account.enable_notifications": "Desine me certiorem facere cum @{name} scribit", "account.endorse": "Notatio in profilo", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index ea3bfaeb234c21..313e2f62d4a9e1 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -21,12 +21,10 @@ "account.block_domain": "Bloka el domeno {domain}", "account.block_short": "Bloka", "account.blocked": "Blokado", - "account.blocking": "Blokando", "account.cancel_follow_request": "Anula solisitud de segir", "account.copy": "Kopia atadijo de profil", "account.direct": "Enmenta a @{name} en privado", "account.disable_notifications": "Desha de avizarme sovre publikasyones de @{name}", - "account.domain_blocking": "Blokando el domeno", "account.edit_profile": "Edita profil", "account.edit_profile_short": "Edita", "account.enable_notifications": "Avizame kuando @{name} publike", @@ -64,14 +62,12 @@ "account.mute_notifications_short": "Silensia avizos", "account.mute_short": "Silensia", "account.muted": "Silensiado", - "account.muting": "Silensyando", "account.mutual": "Vos sigesh mutualmente", "account.no_bio": "No ay deskripsion.", "account.open_original_page": "Avre pajina orijnala", "account.posts": "Publikasyones", "account.report": "Raporta @{name}", "account.requested_follow": "{name} tiene solisitado segirte", - "account.requests_to_follow_you": "Solisita segirte", "account.share": "Partaja el profil de @{name}", "account.show_reblogs": "Amostra repartajasyones de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publikasyon} other {{counter} publikasyones}}", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index f0ff45f35254b1..6cd6c55f1d0373 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -27,12 +27,10 @@ "account.block_domain": "Blokuoti serverį {domain}", "account.block_short": "Blokuoti", "account.blocked": "Užblokuota", - "account.blocking": "Blokavimas", "account.cancel_follow_request": "Atšaukti sekimą", "account.copy": "Kopijuoti nuorodą į profilį", "account.direct": "Privačiai paminėti @{name}", "account.disable_notifications": "Nustoti man pranešti, kai @{name} paskelbia", - "account.domain_blocking": "Blokuoti domeną", "account.edit_note": "Redaguoti asmeninę pastabą", "account.edit_profile": "Redaguoti profilį", "account.edit_profile_short": "Redaguoti", @@ -77,7 +75,6 @@ "account.mute_notifications_short": "Nutildyti pranešimus", "account.mute_short": "Nutildyti", "account.muted": "Nutildytas", - "account.muting": "Užtildymas", "account.mutual": "Sekate vienas kitą", "account.no_bio": "Nėra pateikto aprašymo.", "account.node_modal.callout": "Asmeninės pastabos matomos tik jums.", @@ -93,7 +90,6 @@ "account.remove_from_followers": "Šalinti {name} iš sekėjų", "account.report": "Pranešti apie @{name}", "account.requested_follow": "{name} paprašė tave sekti", - "account.requests_to_follow_you": "Prašymai sekti jus", "account.share": "Bendrinti @{name} profilį", "account.show_reblogs": "Rodyti pasidalinimus iš @{name}", "account.statuses_counter": "{count, plural, one {{counter} įrašas} few {{counter} įrašai} many {{counter} įrašo} other {{counter} įrašų}}", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index ed3f9f53071411..da87d2d9f5fcc7 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -27,12 +27,10 @@ "account.block_domain": "Bloķēt domēnu {domain}", "account.block_short": "Bloķēt", "account.blocked": "Bloķēts", - "account.blocking": "Bloķēts", "account.cancel_follow_request": "Atsaukt sekošanas pieprasījumu", "account.copy": "Ievietot saiti uz profilu starpliktuvē", "account.direct": "Pieminēt @{name} privāti", "account.disable_notifications": "Pārtraukt man paziņot, kad @{name} izveido ierakstu", - "account.domain_blocking": "Liegts domēns", "account.edit_profile": "Labot profilu", "account.edit_profile_short": "Labot", "account.enable_notifications": "Paziņot man, kad @{name} izveido ierakstu", @@ -96,7 +94,6 @@ "account.mute_notifications_short": "Apklusināt paziņojumus", "account.mute_short": "Apklusināt", "account.muted": "Apklusināts", - "account.muting": "Apklusināts", "account.mutual": "Jūs sekojat viens otram", "account.name_info": "Ko tas nozīmē?", "account.no_bio": "Apraksts nav sniegts.", @@ -107,7 +104,6 @@ "account.remove_from_followers": "Dzēst sekotāju {name}", "account.report": "Ziņot par @{name}", "account.requested_follow": "{name} nosūtīja Tev sekošanas pieprasījumu", - "account.requests_to_follow_you": "Sekošanas pieprasījumi", "account.share": "Dalīties ar @{name} profilu", "account.show_reblogs": "Parādīt @{name} pastiprinātos ierakstus", "account.statuses_counter": "{count, plural, zero {{counter} ierakstu} one {{counter} ieraksts} other {{counter} ieraksti}}", diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json index 352d52bf5c568f..d984de72cc7c3c 100644 --- a/app/javascript/mastodon/locales/ms.json +++ b/app/javascript/mastodon/locales/ms.json @@ -21,12 +21,10 @@ "account.block_domain": "Sekat domain {domain}", "account.block_short": "Sekat", "account.blocked": "Disekat", - "account.blocking": "Blocking", "account.cancel_follow_request": "Batalkan permintaan ikut", "account.copy": "Salin pautan ke profil", "account.direct": "Sebut secara persendirian @{name}", "account.disable_notifications": "Berhenti maklumkan saya apabila @{name} mengirim hantaran", - "account.domain_blocking": "Blocking domain", "account.edit_profile": "Sunting profil", "account.edit_profile_short": "Sunting", "account.enable_notifications": "Maklumi saya apabila @{name} mengirim hantaran", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index eb81c301335e34..a1036662c5ec53 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -28,12 +28,10 @@ "account.block_domain": "封鎖域名 {domain}", "account.block_short": "封鎖", "account.blocked": "Hőng封鎖", - "account.blocking": "Teh封鎖", "account.cancel_follow_request": "取消跟tuè", "account.copy": "Khóo-pih個人資料ê連結", "account.direct": "私人提起 @{name}", "account.disable_notifications": "停止佇 {name} PO文ê時通知我", - "account.domain_blocking": "Teh封鎖ê域名", "account.edit_note": "編私人ê註解", "account.edit_profile": "編輯個人資料", "account.edit_profile_short": "編輯", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Kā通知消音", "account.mute_short": "消音", "account.muted": "消音ah", - "account.muting": "消音", "account.mutual": "Lín sio跟tuè", "account.name.copy": "Khóo-pih口座ê名", "account.name.help.domain": "", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Kā {name} tuì跟tuè lí ê ê內底suá掉", "account.report": "檢舉 @{name}", "account.requested_follow": "{name} 請求跟tuè lí", - "account.requests_to_follow_you": "請求跟tuè lí", "account.share": "分享 @{name} ê個人資料", "account.show_reblogs": "顯示uì @{name} 來ê轉PO", "account.statuses_counter": "{count, plural, other {{count} ê PO文}}", @@ -227,8 +223,6 @@ "account_edit.profile_tab.show_media.title": "展示「媒體」分頁", "account_edit.profile_tab.show_media_replies.description": "若是啟用,媒體分頁展示lí ê PO文kap對別lâng ê PO文ê回應。", "account_edit.profile_tab.show_media_replies.title": "佇媒體分頁內包含回應", - "account_edit.profile_tab.subtitle": "自訂lí ê個人資料ê分頁kap顯示ê內容。", - "account_edit.profile_tab.title": "個人資料分頁設定", "account_edit.save": "儲存", "account_edit.upload_modal.back": "轉去", "account_edit.upload_modal.done": "做好ah", @@ -398,7 +392,6 @@ "collections.detail.share": "分享tsit ê收藏", "collections.detail.you_are_in_this_collection": "Lí已經hőng加kàu tsit ê收藏", "collections.edit_details": "編輯詳細", - "collections.error_loading_collections": "佇載入lí ê收藏ê時陣出tshê。", "collections.hidden_accounts_description": "您有封鎖á是靜音{count, plural, one {tsit ê用者} other {tsiah ê用者}}", "collections.hidden_accounts_link": "{count, plural, other {# ê隱藏ê口座}}", "collections.hints.accounts_counter": "{count}/{max} ê口座", diff --git a/app/javascript/mastodon/locales/ne.json b/app/javascript/mastodon/locales/ne.json index 2be766ef8491c5..9ab7a536583353 100644 --- a/app/javascript/mastodon/locales/ne.json +++ b/app/javascript/mastodon/locales/ne.json @@ -18,12 +18,10 @@ "account.block_domain": "{domain} डोमेनलाई ब्लक गर्नुहोस्", "account.block_short": "ब्लक", "account.blocked": "ब्लक गरिएको", - "account.blocking": "ब्लक गरिएको", "account.cancel_follow_request": "फलो अनुरोध रद्द गर्नुहोस", "account.copy": "प्रोफाइलको लिङ्क प्रतिलिपि गर्नुहोस्", "account.direct": "@{name} लाई निजी रूपमा उल्लेख गर्नुहोस्", "account.disable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित नगर्नुहोस्", - "account.domain_blocking": "ब्लक गरिएको डोमेन", "account.edit_profile": "प्रोफाइल सम्पादन गर्नुहोस्", "account.enable_notifications": "@{name} ले पोस्ट गर्दा मलाई सूचित गर्नुहोस्", "account.endorse": "प्रोफाइलमा फिचर गर्नुहोस्", @@ -48,7 +46,6 @@ "account.mute_notifications_short": "सूचनाहरू म्यूट गर्नुहोस्", "account.mute_short": "म्युट", "account.muted": "म्युट गरिएको", - "account.muting": "म्यूट गरिएको", "account.mutual": "तपाईंहरु एकअर्कालाई फलो गर्नुहुन्छ", "account.no_bio": "कुनै विवरण प्रदान गरिएको छैन।", "account.posts": "पोस्टहरू", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index a79684a31ccf5b..67173f6eae0e2e 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -28,12 +28,10 @@ "account.block_domain": "Alles van {domain} blokkeren", "account.block_short": "Blokkeren", "account.blocked": "Geblokkeerd", - "account.blocking": "Geblokkeerd", "account.cancel_follow_request": "Ontvolgen", "account.copy": "Link naar profiel kopiëren", "account.direct": "@{name} een privébericht sturen", "account.disable_notifications": "Geen melding meer geven wanneer @{name} een bericht plaatst", - "account.domain_blocking": "Server geblokkeerd", "account.edit_note": "Persoonlijke opmerking bewerken", "account.edit_profile": "Profiel bewerken", "account.edit_profile_short": "Bewerken", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Meldingen negeren", "account.mute_short": "Negeren", "account.muted": "Genegeerd", - "account.muting": "Genegeerd", "account.mutual": "Jullie volgen elkaar", "account.name.copy": "Fediverse-adres kopiëren", "account.name.help.domain": "{domain} is de server waar zich het profiel en de berichten van de gebruiker bevinden.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "{name} als volger verwijderen", "account.report": "@{name} rapporteren", "account.requested_follow": "{name} wil jou graag volgen", - "account.requests_to_follow_you": "Wil jou graag volgen", "account.share": "Account van @{name} delen", "account.show_reblogs": "Boosts van @{name} tonen", "account.statuses_counter": "{count, plural, one {{counter} bericht} other {{counter} berichten}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Tabblad 'Media' tonen", "account_edit.profile_tab.show_media_replies.description": "Wanneer dit is ingeschakeld, worden op het tabblad Media zowel jouw berichten en reacties op berichten van anderen weergegeven.", "account_edit.profile_tab.show_media_replies.title": "Jouw reacties aan het tabblad 'Media' toevoegen", - "account_edit.profile_tab.subtitle": "De tabbladen op je profiel aanpassen en wat er op wordt weergegeven.", - "account_edit.profile_tab.title": "Instellingen voor Profieltabblad", "account_edit.save": "Opslaan", "account_edit.upload_modal.back": "Terug", "account_edit.upload_modal.done": "Klaar", @@ -399,7 +393,6 @@ "collections.detail.share": "Deze verzameling delen", "collections.detail.you_are_in_this_collection": "Je wordt in deze verzameling uitgelicht", "collections.edit_details": "Gegevens bewerken", - "collections.error_loading_collections": "Er is een fout opgetreden bij het laden van je verzamelingen.", "collections.hidden_accounts_description": "Je hebt {count, plural, one {deze gebruiker} other {deze gebruikers}} geblokkeerd", "collections.hidden_accounts_link": "{count, plural, one {# verborgen account} other {# verborgen accounts}}", "collections.hints.accounts_counter": "{count}/{max} accounts", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index f3f8c415df0a1d..3fbc7621eb775e 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -28,12 +28,10 @@ "account.block_domain": "Skjul alt frå {domain}", "account.block_short": "Blokker", "account.blocked": "Blokkert", - "account.blocking": "Blokkerer", "account.cancel_follow_request": "Trekk attende fylgeførespurnad", "account.copy": "Kopier lenka til profilen", "account.direct": "Nemn @{name} privat", "account.disable_notifications": "Slutt å varsle meg når @{name} skriv innlegg", - "account.domain_blocking": "Blokkerer domenet", "account.edit_note": "Rediger det personlege notatet", "account.edit_profile": "Rediger profil", "account.edit_profile_short": "Rediger", @@ -100,7 +98,6 @@ "account.mute_notifications_short": "Demp varslingar", "account.mute_short": "Demp", "account.muted": "Målbunden", - "account.muting": "Dempa", "account.mutual": "De fylgjer kvarandre", "account.name.copy": "Kopier brukaradressa", "account.name.help.domain": "{domain} er tenaren som lagrar brukarprofilen og innlegga.", @@ -123,7 +120,6 @@ "account.remove_from_followers": "Fjern {name} frå fylgjarane dine", "account.report": "Rapporter @{name}", "account.requested_follow": "{name} har bedt om å få fylgja deg", - "account.requests_to_follow_you": "Folk som vil fylgja deg", "account.share": "Del @{name} sin profil", "account.show_reblogs": "Vis framhevingar frå @{name}", "account.statuses_counter": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}", @@ -215,8 +211,6 @@ "account_edit.profile_tab.show_media.title": "Vis «Medium»-fana", "account_edit.profile_tab.show_media_replies.description": "Når medium-fana er i bruk, syner ho både innlegga dine og svar på andre folk sine innlegg.", "account_edit.profile_tab.show_media_replies.title": "Ta med svar i «Medium»-fana", - "account_edit.profile_tab.subtitle": "Tilpass fanene på profilen din og kva dei syner.", - "account_edit.profile_tab.title": "Innstillingar for profilfane", "account_edit.save": "Lagre", "account_edit.upload_modal.back": "Tilbake", "account_edit.upload_modal.done": "Ferdig", @@ -380,7 +374,6 @@ "collections.detail.share": "Del denne samlinga", "collections.detail.you_are_in_this_collection": "Du er framheva i denne samlinga", "collections.edit_details": "Rediger detaljar", - "collections.error_loading_collections": "Noko gjekk gale då me prøvde å henta samlingane dine.", "collections.last_updated_at": "Sist oppdatert: {date}", "collections.manage_accounts": "Handter kontoar", "collections.mark_as_sensitive": "Merk som ømtolig", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 37128f1d8cb112..47ffd1bd928e83 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokker domenet {domain}", "account.block_short": "Blokker", "account.blocked": "Blokkert", - "account.blocking": "Blokkerer", "account.cancel_follow_request": "Avbryt følgeforespørselen", "account.copy": "Kopier lenke til profil", "account.direct": "Nevn @{name} privat", "account.disable_notifications": "Slutt å varsle meg når @{name} legger ut innlegg", - "account.domain_blocking": "Blokkerer domene", "account.edit_note": "Rediger personlig notat", "account.edit_profile": "Rediger profil", "account.edit_profile_short": "Rediger", @@ -97,7 +95,6 @@ "account.mute_notifications_short": "Demp varsler", "account.mute_short": "Demp", "account.muted": "Dempet", - "account.muting": "Demper", "account.mutual": "Dere følger hverandre", "account.name.help.domain": "{domain} er serveren som inneholder profilen og innleggene for brukeren.", "account.name.help.domain_self": "{domain} er serveren som inneholder profilen og innleggene dine.", @@ -119,7 +116,6 @@ "account.remove_from_followers": "Fjern {name} fra følgere", "account.report": "Rapporter @{name}", "account.requested_follow": "{name} har bedt om å få følge deg", - "account.requests_to_follow_you": "Forespørsler om å følge deg", "account.share": "Del @{name} sin profil", "account.show_reblogs": "Vis fremhevinger fra @{name}", "account.statuses_counter": "{count, plural, one {{counter} innlegg} other {{counter} innlegg}}", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index aa3c46b94aa191..cf13737c7bc976 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -20,7 +20,6 @@ "account.block_domain": "Tot amagar del domeni {domain}", "account.block_short": "Blocar", "account.blocked": "Blocat", - "account.blocking": "Blocatge", "account.cancel_follow_request": "Retirar la demanda d’abonament", "account.copy": "Copiar lo ligam del perfil", "account.direct": "Mencionar @{name} en privat", @@ -72,7 +71,6 @@ "account.remove_from_followers": "Tirar {name} dels seguidors", "account.report": "Senhalar @{name}", "account.requested_follow": "{name} a demandat a vos sègre", - "account.requests_to_follow_you": "Demanda a vos sègre", "account.share": "Partejar lo perfil a @{name}", "account.show_reblogs": "Mostrar los partatges de @{name}", "account.timeline.pinned": "Penjat", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index b364e1bbef228d..b1a610cfa5cd00 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -23,12 +23,10 @@ "account.block_domain": "{domain} ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "account.block_short": "ਪਾਬੰਦੀ", "account.blocked": "ਪਾਬੰਦੀਸ਼ੁਦਾ", - "account.blocking": "ਪਾਬੰਦੀ ਲਾਉਣੀ", "account.cancel_follow_request": "ਫ਼ਾਲੋ ਕਰਨ ਨੂੰ ਰੱਦ ਕਰੋ", "account.copy": "ਪਰੋਫਾਇਲ ਲਈ ਲਿੰਕ ਕਾਪੀ ਕਰੋ", "account.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ @{name}", "account.disable_notifications": "ਜਦੋਂ {name} ਕੋਈ ਪੋਸਟ ਕਰੇ ਤਾਂ ਮੈਨੂੰ ਸੂਚਨਾ ਨਾ ਦਿਓ", - "account.domain_blocking": "ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ", "account.edit_note": "ਨਿੱਜੀ ਨੋਟ ਨੂੰ ਸੋਧੋ", "account.edit_profile": "ਪਰੋਫਾਈਲ ਨੂੰ ਸੋਧੋ", "account.edit_profile_short": "ਸੋਧੋ", @@ -91,7 +89,6 @@ "account.remove_from_followers": "{name} ਨੂੰ ਫ਼ਾਲੋਅਰ ਵਿੱਚੋਂ ਹਟਾਓ", "account.report": "{name} ਬਾਰੇ ਰਿਪੋਰਟ ਕਰੋ", "account.requested_follow": "{name} ਨੇ ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀ ਬੇਨਤੀ ਕੀਤੀ ਹੈ", - "account.requests_to_follow_you": "ਤੁਹਾਨੂੰ ਫ਼ਾਲੋ ਕਰਨ ਦੀਆਂ ਬੇਨਤੀਆਂ", "account.share": "{name} ਦਾ ਪਰੋਫ਼ਾਇਲ ਸਾਂਝਾ ਕਰੋ", "account.show_reblogs": "@{name} ਵਲੋਂ ਬੂਸਟ ਨੂੰ ਵੇਖਾਓ", "account.statuses_counter": "{count, plural, one {{counter} ਪੋਸਟ} other {{counter} ਪੋਸਟਾਂ}}", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 57a2d98275801b..803cb5ecb3635b 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -28,12 +28,10 @@ "account.block_domain": "Blokuj wszystko z {domain}", "account.block_short": "Zablokuj", "account.blocked": "Zablokowano", - "account.blocking": "Blokowanie", "account.cancel_follow_request": "Nie obserwuj", "account.copy": "Skopiuj link do profilu", "account.direct": "Napisz bezpośrednio do @{name}", "account.disable_notifications": "Przestań powiadamiać mnie o wpisach @{name}", - "account.domain_blocking": "Blokowanie domeny", "account.edit_note": "Edytuj osobistą notkę", "account.edit_profile": "Edytuj profil", "account.edit_profile_short": "Edytuj", @@ -99,7 +97,6 @@ "account.mute_notifications_short": "Wycisz powiadomienia", "account.mute_short": "Wycisz", "account.muted": "Wyciszony", - "account.muting": "Wyciszanie", "account.mutual": "Obserwujecie się wzajemnie", "account.name_info": "Co to oznacza?", "account.no_bio": "Brak opisu.", @@ -116,7 +113,6 @@ "account.remove_from_followers": "Usuń {name} z obserwujących", "account.report": "Zgłoś @{name}", "account.requested_follow": "{name} chce cię obserwować", - "account.requests_to_follow_you": "Prośby o obserwowanie", "account.share": "Udostępnij profil @{name}", "account.show_reblogs": "Pokazuj podbicia od @{name}", "account.statuses_counter": "{count, plural, one {{counter} wpis} few {{counter} wpisy} many {{counter} wpisów} other {{counter} wpisów}}", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 0dc511b80c7cdb..99becf0916be61 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear domínio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueado", - "account.blocking": "Bloqueando", "account.cancel_follow_request": "Cancelar solicitação para seguir", "account.copy": "Copiar link do perfil", "account.direct": "Mencione em privado @{name}", "account.disable_notifications": "Cancelar notificações de @{name}", - "account.domain_blocking": "Bloqueando domínio", "account.edit_note": "Editar a nota pessoal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Silenciar notificações", "account.mute_short": "Silenciar", "account.muted": "Silenciado", - "account.muting": "Silenciando", "account.mutual": "Vocês se seguem", "account.name.copy": "Copiar usuário", "account.name.help.domain": "{domain} é o servidor que hospeda o perfil e publicações do usuário.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Remover {name} dos seguidores", "account.report": "Denunciar @{name}", "account.requested_follow": "{name} quer te seguir", - "account.requests_to_follow_you": "Pediu para seguir você", "account.share": "Compartilhar perfil de @{name}", "account.show_reblogs": "Mostrar impulsos de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", @@ -227,8 +223,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar aba \"Mídia\"", "account_edit.profile_tab.show_media_replies.description": "Quando ativa, a aba Mídia mostra seus posts e respostas nos posts de outras pessoas.", "account_edit.profile_tab.show_media_replies.title": "Incluir respostas na aba \"Mídia\"", - "account_edit.profile_tab.subtitle": "Personalizar as abas em seu perfil e o que elas exibem.", - "account_edit.profile_tab.title": "Configurações da aba de perfil", "account_edit.save": "Salvar", "account_edit.upload_modal.back": "Voltar", "account_edit.upload_modal.done": "Concluído", @@ -398,7 +392,6 @@ "collections.detail.share": "Compartilhar esta coleção", "collections.detail.you_are_in_this_collection": "Você aparece nesta coleção", "collections.edit_details": "Editar detalhes", - "collections.error_loading_collections": "Houve um erro ao tentar carregar suas coleções.", "collections.hidden_accounts_description": "Você bloqueou ou silencilou {count, plural, one{este usuário} other {estes usuários}}", "collections.hidden_accounts_link": "{count, plural, one {# conta oculta} other {# contas ocultas}}", "collections.hints.accounts_counter": "{count}/{max} contas", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 2962359da22f6b..b5e49b090e3be9 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -28,12 +28,10 @@ "account.block_domain": "Bloquear domínio {domain}", "account.block_short": "Bloquear", "account.blocked": "Bloqueado", - "account.blocking": "A bloquear", "account.cancel_follow_request": "Retirar pedido para seguir", "account.copy": "Copiar hiperligação do perfil", "account.direct": "Mencionar @{name} em privado", "account.disable_notifications": "Parar de me notificar das publicações de @{name}", - "account.domain_blocking": "A bloquear domínio", "account.edit_note": "Editar nota pessoal", "account.edit_profile": "Editar perfil", "account.edit_profile_short": "Editar", @@ -101,7 +99,6 @@ "account.mute_notifications_short": "Ocultar notificações", "account.mute_short": "Ocultar", "account.muted": "Ocultada", - "account.muting": "A silenciar", "account.mutual": "Seguem-se mutuamente", "account.name.copy": "Copiar identificador", "account.name.help.domain": "{domain} é o servidor onde estão alojados o perfil e publicações do utilizador.", @@ -125,7 +122,6 @@ "account.remove_from_followers": "Remover {name} dos seguidores", "account.report": "Denunciar @{name}", "account.requested_follow": "{name} pediu para seguir-te", - "account.requests_to_follow_you": "Pediu para seguir-te", "account.share": "Partilhar o perfil @{name}", "account.show_reblogs": "Mostrar partilhas de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicação} other {{counter} publicações}}", @@ -217,8 +213,6 @@ "account_edit.profile_tab.show_media.title": "Mostrar separador 'Media'", "account_edit.profile_tab.show_media_replies.description": "Quando ativado, o separador 'Media' mostra tanto as suas publicações quanto as suas respostas às publicações de outras pessoas.", "account_edit.profile_tab.show_media_replies.title": "Incluir respostas no separador 'Media'", - "account_edit.profile_tab.subtitle": "Personalize os separadores do seu perfil e o que eles exibem.", - "account_edit.profile_tab.title": "Definições dos separadores de perfil", "account_edit.save": "Guardar", "account_edit.upload_modal.back": "Voltar", "account_edit.upload_modal.done": "Concluído", @@ -388,7 +382,6 @@ "collections.detail.share": "Partilhar esta coleção", "collections.detail.you_are_in_this_collection": "Está em destaque nesta coleção", "collections.edit_details": "Editar detalhes", - "collections.error_loading_collections": "Ocorreu um erro ao tentar carregar as suas coleções.", "collections.hidden_accounts_description": "Bloqueou ou silenciou {count, plural, one {este utilizador} other {estes utilizadores}}", "collections.hidden_accounts_link": "{count, plural, one {# conta escondida} other {# contas escondidas}}", "collections.hints.accounts_counter": "{count}/{max} contas", diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json index e60fd6f372f78c..e4875ef36507f7 100644 --- a/app/javascript/mastodon/locales/ro.json +++ b/app/javascript/mastodon/locales/ro.json @@ -28,7 +28,6 @@ "account.block_domain": "Blochează domeniul {domain}", "account.block_short": "Blochează", "account.blocked": "Blocat", - "account.blocking": "Blocarea", "account.cancel_follow_request": "Retrage cererea de urmărire", "account.copy": "Copiază link-ul profilului", "account.direct": "Menționează pe @{name} în privat", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 880935504a228d..28cefe2e04d512 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -28,12 +28,10 @@ "account.block_domain": "Заблокировать {domain}", "account.block_short": "Заблокировать", "account.blocked": "Заблокирован(а)", - "account.blocking": "Заблокирован(а)", "account.cancel_follow_request": "Отозвать запрос на подписку", "account.copy": "Копировать ссылку на профиль", "account.direct": "Упомянуть @{name} лично", "account.disable_notifications": "Не уведомлять о постах пользователя @{name}", - "account.domain_blocking": "Домен заблокирован", "account.edit_note": "Редактировать заметку для себя", "account.edit_profile": "Редактировать", "account.edit_profile_short": "Редактировать", @@ -100,7 +98,6 @@ "account.mute_notifications_short": "Скрыть уведомления", "account.mute_short": "Игнорировать", "account.muted": "Игнорируется", - "account.muting": "Игнорируется", "account.mutual": "Вы подписаны друг на друга", "account.name.help.domain": "{domain} — это сервер, на котором размещены профиль и посты пользователя.", "account.name.help.domain_self": "{domain} — это ваш сервер, на котором размещены ваши профиль и посты.", @@ -122,7 +119,6 @@ "account.remove_from_followers": "Убрать {name} из подписчиков", "account.report": "Пожаловаться на @{name}", "account.requested_follow": "{name} отправил(а) вам запрос на подписку", - "account.requests_to_follow_you": "Отправил(а) вам запрос на подписку", "account.share": "Поделиться профилем @{name}", "account.show_reblogs": "Показывать продвижения от @{name}", "account.statuses_counter": "{count, plural, one {{counter} пост} few {{counter} поста} other {{counter} постов}}", @@ -212,8 +208,6 @@ "account_edit.profile_tab.show_media.title": "Показывать вкладку «Медиа»", "account_edit.profile_tab.show_media_replies.description": "Когда эта опция включена, на вкладке «Медиа» будут показаны в том числе ваши ответы на посты других людей.", "account_edit.profile_tab.show_media_replies.title": "Показывать ответы на вкладке «Медиа»", - "account_edit.profile_tab.subtitle": "Настройте вкладки вашего профиля и их содержимое.", - "account_edit.profile_tab.title": "Настройки вкладок профиля", "account_edit.save": "Сохранить", "account_edit.upload_modal.back": "Назад", "account_edit.upload_modal.done": "Готово", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index 20e7a8bea4f681..5bbeef42c21a13 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -21,12 +21,10 @@ "account.block_domain": "Bloca su domìniu {domain}", "account.block_short": "Bloca", "account.blocked": "Blocadu", - "account.blocking": "Blocadu", "account.cancel_follow_request": "Annulla sa sighidura", "account.copy": "Còpia su ligòngiu a su profilu", "account.direct": "Mèntova a @{name} in privadu", "account.disable_notifications": "Non mi notìfiches prus cando @{name} pùblichet messàgios", - "account.domain_blocking": "Blocamus su domìniu", "account.edit_profile": "Modìfica profilu", "account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios", "account.endorse": "Cussìgia in su profilu tuo", @@ -59,14 +57,12 @@ "account.mute_notifications_short": "Pone is notìficas a sa muda", "account.mute_short": "A sa muda", "account.muted": "A sa muda", - "account.muting": "A sa muda", "account.no_bio": "Peruna descritzione frunida.", "account.open_original_page": "Aberi sa pàgina originale", "account.posts": "Publicatziones", "account.remove_from_followers": "Cantzella a {name} dae is sighiduras", "account.report": "Signala @{name}", "account.requested_follow": "{name} at dimandadu de ti sighire", - "account.requests_to_follow_you": "Rechestas de sighidura", "account.share": "Cumpartzi su profilu de @{name}", "account.show_reblogs": "Ammustra is cumpartziduras de @{name}", "account.statuses_counter": "{count, plural, one {{counter} publicatzione} other {{counter} publicatziones}}", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index a21fca328301bc..d0fd49ad7fc3ec 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -20,12 +20,10 @@ "account.block_domain": "{domain} වසම අවහිර කරන්න", "account.block_short": "අවහිර", "account.blocked": "අවහිර කර ඇත", - "account.blocking": "අවහිර කිරීම", "account.cancel_follow_request": "අනුගමනය කිරීම අවලංගු කරන්න", "account.copy": "පැතිකඩට සබැඳිය පිටපත් කරන්න", "account.direct": "පෞද්ගලිකව @{name}සඳහන් කරන්න", "account.disable_notifications": "@{name} පළ කරන විට මට දැනුම් නොදෙන්න", - "account.domain_blocking": "වසම අවහිර කිරීම", "account.edit_profile": "පැතිකඩ සංස්කරණය", "account.enable_notifications": "@{name} පළ කරන විට මට දැනුම් දෙන්න", "account.endorse": "පැතිකඩෙහි විශේෂාංගය", @@ -57,7 +55,6 @@ "account.mute_notifications_short": "දැනුම්දීම් නිහඬ කරන්න", "account.mute_short": "නිහඬ", "account.muted": "නිහඬ කළා", - "account.muting": "නිහඬ කිරීම", "account.mutual": "ඔබ එකිනෙකා අනුගමනය කරන්න.", "account.no_bio": "විස්තරයක් සපයා නැත.", "account.open_original_page": "මුල් පිටුව අරින්න", @@ -65,7 +62,6 @@ "account.remove_from_followers": "අනුගාමිකයින්ගෙන් {name} ඉවත් කරන්න", "account.report": "@{name} වාර්තා කරන්න", "account.requested_follow": "{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත.", - "account.requests_to_follow_you": "ඔබව අනුගමනය කිරීමට ඉල්ලීම්", "account.share": "@{name} ගේ පැතිකඩ බෙදාගන්න", "account.show_reblogs": "@{name}වෙතින් බූස්ට් පෙන්වන්න", "account.statuses_counter": "{count, plural, one {{counter} සටහන} other {{counter} සටහන්}}", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 5c699d382ec21c..05ac8dbac6ac3c 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -22,12 +22,10 @@ "account.block_domain": "Blokovať doménu {domain}", "account.block_short": "Blokovať", "account.blocked": "Účet blokovaný", - "account.blocking": "Blokované", "account.cancel_follow_request": "Zrušiť žiadosť o sledovanie", "account.copy": "Skopírovať odkaz na profil", "account.direct": "Súkromne označiť @{name}", "account.disable_notifications": "Zrušiť upozornenia na príspevky od @{name}", - "account.domain_blocking": "Blokované domény", "account.edit_profile": "Upraviť profil", "account.edit_profile_short": "Upraviť", "account.enable_notifications": "Zapnúť upozornenia na príspevky od @{name}", @@ -68,7 +66,6 @@ "account.mute_notifications_short": "Stíšiť upozornenia", "account.mute_short": "Stíšiť", "account.muted": "Účet stíšený", - "account.muting": "Stíšenie", "account.mutual": "Sledujete sa navzájom", "account.no_bio": "Nie je uvedený žiadny popis.", "account.open_original_page": "Otvoriť pôvodnú stránku", @@ -76,7 +73,6 @@ "account.remove_from_followers": "Zrušiť sledovanie od {name}", "account.report": "Nahlásiť @{name}", "account.requested_follow": "{name} vás chce sledovať", - "account.requests_to_follow_you": "Žiadosti o sledovanie", "account.share": "Zdieľaj profil @{name}", "account.show_reblogs": "Zobrazovať zdieľania od @{name}", "account.statuses_counter": "{count, plural, one {{counter} príspevok} other {{counter} príspevkov}}", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 21dd1f5b02ce72..3157b06a33c61e 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -21,12 +21,10 @@ "account.block_domain": "Blokiraj domeno {domain}", "account.block_short": "Blokiraj", "account.blocked": "Blokirano", - "account.blocking": "Blokirano", "account.cancel_follow_request": "Umakni zahtevo za sledenje", "account.copy": "Kopiraj povezavo do profila", "account.direct": "Zasebno omeni @{name}", "account.disable_notifications": "Ne obveščaj me več, ko ima @{name} novo objavo", - "account.domain_blocking": "Blokirana domena", "account.edit_profile": "Uredi profil", "account.edit_profile_short": "Uredi", "account.enable_notifications": "Obvesti me, ko ima @{name} novo objavo", @@ -63,7 +61,6 @@ "account.mute_notifications_short": "Utišaj obvestila", "account.mute_short": "Utišaj", "account.muted": "Utišan", - "account.muting": "Izklop zvoka", "account.mutual": "Drug drugemu sledita", "account.no_bio": "Ni opisa.", "account.open_original_page": "Odpri izvirno stran", @@ -71,7 +68,6 @@ "account.remove_from_followers": "Odstrani {name} iz sledilcev", "account.report": "Prijavi @{name}", "account.requested_follow": "{name} vam želi slediti", - "account.requests_to_follow_you": "Vas prosi za sledenje", "account.share": "Deli profil osebe @{name}", "account.show_reblogs": "Pokaži izpostavitve osebe @{name}", "account.statuses_counter": "{count, plural, one {{counter} objava} two {{counter} objavi} few {{counter} objave} other {{counter} objav}}", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index e7017f1d461a77..3e7f274aa51976 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -28,12 +28,10 @@ "account.block_domain": "Blloko përkatësinë {domain}", "account.block_short": "Bllokoje", "account.blocked": "E bllokuar", - "account.blocking": "Bllokim", "account.cancel_follow_request": "Tërhiq mbrapsht kërkesë për ndjekje", "account.copy": "Kopjoje lidhjen te profili", "account.direct": "Përmendje private për @{name}", "account.disable_notifications": "Resht së njoftuari mua, kur poston @{name}", - "account.domain_blocking": "Bllokim përkatësie", "account.edit_note": "Përpunoni shënim personal", "account.edit_profile": "Përpunoni profilin", "account.edit_profile_short": "Përpunojeni", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Mos shfaq njoftime", "account.mute_short": "Mos i shfaq", "account.muted": "Heshtuar", - "account.muting": "Heshtim", "account.mutual": "Ndiqni njëri-tjetrin", "account.name.help.domain": "{domain} është shërbyesi që strehon profilin dhe postimet e përdoruesit.", "account.name.help.domain_self": "{domain} është shërbyesi juaj që strehon profilin dhe postimet tuaja.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Hiqe {name} nga ndjekësit", "account.report": "Raportojeni @{name}", "account.requested_follow": "{name} ka kërkuar t’ju ndjekë", - "account.requests_to_follow_you": "Kërkesa për t’ju ndjekur", "account.share": "Ndajeni profilin e @{name} me të tjerët", "account.show_reblogs": "Shfaq përforcime nga @{name}", "account.statuses_counter": "{count, plural, one {{counter} postim} other {{counter} postime}}", @@ -226,8 +222,6 @@ "account_edit.profile_tab.show_media.title": "Shfaq skedë “Media”", "account_edit.profile_tab.show_media_replies.description": "Kur aktivizohet, skeda Media shfaq si postimet tuaja, ashtu edhe përgjigje te postime nga persona të tjerë.", "account_edit.profile_tab.show_media_replies.title": "Përfshi te skeda “Media” përgjigje", - "account_edit.profile_tab.subtitle": "Përshtatni skedat në profilin tuaj dhe ato çka shfaqet në to.", - "account_edit.profile_tab.title": "Rregullime skede profili", "account_edit.save": "Ruaje", "account_edit.upload_modal.back": "Mbrapsht", "account_edit.upload_modal.done": "U bë", @@ -394,7 +388,6 @@ "collections.detail.share": "Ndajeni këtë koleksion me të tjerë", "collections.detail.you_are_in_this_collection": "Shfaqeni te ky koleksion", "collections.edit_details": "Përpunoni hollësi", - "collections.error_loading_collections": "Pati një gabim teksa provohej të ngarkoheshin koleksionet tuaj.", "collections.hidden_accounts_description": "Bllokuat, ose heshtuat {count, plural, one {këtë përdorues} other {këta përdorues}}", "collections.hidden_accounts_link": "{count, plural, one {# llogari e fshehur} other {# llogari të fshehura}}", "collections.hints.accounts_counter": "{count}/{max} llogari", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 3e2c3ed69ce8ea..93b62f8af5f4b0 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -28,12 +28,10 @@ "account.block_domain": "Blockera domänen {domain}", "account.block_short": "Blockera", "account.blocked": "Blockerad", - "account.blocking": "Blockerar", "account.cancel_follow_request": "Återkalla din begäran om att få följa", "account.copy": "Kopiera länk till profil", "account.direct": "Nämn @{name} privat", "account.disable_notifications": "Sluta meddela mig när @{name} skriver ett inlägg", - "account.domain_blocking": "Blockerad domän", "account.edit_note": "Redigera personlig anteckning", "account.edit_profile": "Redigera profil", "account.edit_profile_short": "Redigera", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Stäng av aviseringsljud", "account.mute_short": "Tysta", "account.muted": "Tystad", - "account.muting": "Stänger av ljud", "account.mutual": "Ni följer varandra", "account.name.copy": "Kopiera handtag", "account.name.help.domain": "{domain} är servern som är värd för användarens profil och inlägg.", @@ -135,7 +132,6 @@ "account.remove_from_followers": "Ta bort {name} från följare", "account.report": "Rapportera @{name}", "account.requested_follow": "{name} har begärt att följa dig", - "account.requests_to_follow_you": "Fråga om att följa dig", "account.share": "Dela @{name}s profil", "account.show_reblogs": "Visa boostar från @{name}", "account.statuses_counter": "{count, plural, one {{counter} inlägg} other {{counter} inlägg}}", @@ -227,8 +223,6 @@ "account_edit.profile_tab.show_media.title": "Visa fliken ‘Media’", "account_edit.profile_tab.show_media_replies.description": "När den är aktiverad visar fliken Media både dina inlägg och svar på andras inlägg.", "account_edit.profile_tab.show_media_replies.title": "Inkludera svar på fliken Media", - "account_edit.profile_tab.subtitle": "Anpassa flikarna på din profil och vad de visar.", - "account_edit.profile_tab.title": "Inställningar för profil-fliken", "account_edit.save": "Spara", "account_edit.upload_modal.back": "Tillbaka", "account_edit.upload_modal.done": "Färdig", @@ -398,7 +392,6 @@ "collections.detail.share": "Dela denna samling", "collections.detail.you_are_in_this_collection": "Du är med i denna samling", "collections.edit_details": "Redigera detaljer", - "collections.error_loading_collections": "Det uppstod ett fel när dina samlingar skulle laddas.", "collections.hidden_accounts_description": "Du har blockerat eller tystat {count, plural, one {denna användare} other {dessa användare}}", "collections.hidden_accounts_link": "{count, plural, one {# gömt konto} other {# gömda konton}}", "collections.hints.accounts_counter": "{count}/{max} konton", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 0555f4eca24f97..fcfa54e5ef4e48 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -27,12 +27,10 @@ "account.block_domain": "ปิดกั้นโดเมน {domain}", "account.block_short": "ปิดกั้น", "account.blocked": "ปิดกั้นอยู่", - "account.blocking": "กำลังปิดกั้น", "account.cancel_follow_request": "ยกเลิกการติดตาม", "account.copy": "คัดลอกลิงก์ไปยังโปรไฟล์", "account.direct": "กล่าวถึง @{name} แบบส่วนตัว", "account.disable_notifications": "หยุดแจ้งเตือนฉันเมื่อ @{name} โพสต์", - "account.domain_blocking": "กำลังปิดกั้นโดเมน", "account.edit_note": "แก้ไขโน้ตส่วนบุคคล", "account.edit_profile": "แก้ไขโปรไฟล์", "account.edit_profile_short": "แก้ไข", @@ -73,7 +71,6 @@ "account.mute_notifications_short": "ซ่อนการแจ้งเตือน", "account.mute_short": "ซ่อน", "account.muted": "ซ่อนอยู่", - "account.muting": "กำลังซ่อน", "account.mutual": "คุณติดตามกันและกัน", "account.no_bio": "ไม่ได้ให้คำอธิบาย", "account.open_original_page": "เปิดหน้าดั้งเดิม", @@ -81,7 +78,6 @@ "account.remove_from_followers": "เอา {name} ออกจากผู้ติดตาม", "account.report": "รายงาน @{name}", "account.requested_follow": "{name} ได้ขอติดตามคุณ", - "account.requests_to_follow_you": "ส่งคำขอติดตามคุณ", "account.share": "แชร์โปรไฟล์ของ @{name}", "account.show_reblogs": "แสดงการดันจาก @{name}", "account.statuses_counter": "{count, plural, other {{counter} โพสต์}}", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index b585791cfc735f..09edda7fac3cc1 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -21,12 +21,10 @@ "account.block_domain": "o len e ma {domain}", "account.block_short": "o len", "account.blocked": "jan li len", - "account.blocking": "mi len e jan ni", "account.cancel_follow_request": "o kute ala", "account.copy": "o pali same e linja pi lipu jan", "account.direct": "o mu len e @{name}", "account.disable_notifications": "@{name} li toki la o mu ala e mi", - "account.domain_blocking": "mi len e ma ni", "account.edit_profile": "o ante e lipu mi", "account.edit_profile_short": "o ante", "account.enable_notifications": "@{name} li toki la o mu e mi", @@ -64,7 +62,6 @@ "account.mute_notifications_short": "o kute ala e mu tan jan ni", "account.mute_short": "o kute ala", "account.muted": "sina kute ala e jan ni", - "account.muting": "lukin ala", "account.mutual": "ona li kute e sina. sina kute e ona.", "account.no_bio": "lipu li weka.", "account.open_original_page": "o open e lipu open", @@ -72,7 +69,6 @@ "account.remove_from_followers": "sijelo kute la o weka e sijelo \"{name}\".", "account.report": "@{name} la o toki e jaki tawa lawa", "account.requested_follow": "{name} li wile kute e sina", - "account.requests_to_follow_you": "jan ni li wile kute e sina", "account.share": "o pana e lipu tan @{name}", "account.show_reblogs": "o lukin e pana toki tan @{name}", "account.statuses_counter": "{count, plural, other {toki {counter}}}", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 08c777ff9911dc..96d1e9a8cde294 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain} alan adını engelle", "account.block_short": "Engelle", "account.blocked": "Engellendi", - "account.blocking": "Engelli", "account.cancel_follow_request": "Takibi bırak", "account.copy": "Profil bağlantısını kopyala", "account.direct": "@{name} kullanıcısından özel olarak bahset", "account.disable_notifications": "@{name} kişisinin gönderi bildirimlerini kapat", - "account.domain_blocking": "Alan adını engelle", "account.edit_note": "Kişisel notu düzenle", "account.edit_profile": "Profili düzenle", "account.edit_profile_short": "Düzenle", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Bildirimleri sessize al", "account.mute_short": "Sessize al", "account.muted": "Susturuldu", - "account.muting": "Sessize alınıyor", "account.mutual": "Birbirinizi takip ediyorsunuz", "account.name.copy": "İsmi Kopyala", "account.name.help.domain": "{domain} kullanıcının profilini ve gönderilerini barındıran sunucudur.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "{name} takipçilerinden kaldır", "account.report": "@{name} adlı kişiyi bildir", "account.requested_follow": "{name} size takip isteği gönderdi", - "account.requests_to_follow_you": "Size takip isteği gönderdi", "account.share": "@{name} adlı kişinin profilini paylaş", "account.show_reblogs": "@{name} kişisinin yeniden paylaşımlarını göster", "account.statuses_counter": "{count, plural, one {{counter} gönderi} other {{counter} gönderi}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "\"Medya\" sekmesini göster", "account_edit.profile_tab.show_media_replies.description": "Etkinleştirildiğinde Medya sekmesi hem kendi gönderilerinizi hem de diğer kişilerin gönderilerine verdiğiniz yanıtları gösterir.", "account_edit.profile_tab.show_media_replies.title": "\"Medya\" sekmesinde yanıtları göster", - "account_edit.profile_tab.subtitle": "Profilinizdeki sekmeleri ve bunların görüntülediği bilgileri özelleştirin.", - "account_edit.profile_tab.title": "Profil sekme ayarları", "account_edit.save": "Kaydet", "account_edit.upload_modal.back": "Geri", "account_edit.upload_modal.done": "Tamamlandı", @@ -399,7 +393,6 @@ "collections.detail.share": "Bu koleksiyonu paylaş", "collections.detail.you_are_in_this_collection": "Bu koleksiyonda öne çıkanlardasınız", "collections.edit_details": "Ayrıntıları düzenle", - "collections.error_loading_collections": "Koleksiyonlarınızı yüklemeye çalışırken bir hata oluştu.", "collections.hidden_accounts_description": "Bu {count, plural, one {kullanıcıyı} other {kullanıcıları}} engellediniz veya sessize aldınız", "collections.hidden_accounts_link": "{count, plural, one {# gizli hesap} other {# gizli hesap}}", "collections.hints.accounts_counter": "{count}/{max} hesap", diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json index 2f7ab79d41686a..228dcc40045977 100644 --- a/app/javascript/mastodon/locales/tt.json +++ b/app/javascript/mastodon/locales/tt.json @@ -28,12 +28,10 @@ "account.block_domain": "{domain} доменын блоклау", "account.block_short": "Блокла", "account.blocked": "Блокланган", - "account.blocking": "Блокланган", "account.cancel_follow_request": "Киләсе сорау", "account.copy": "Профиль сылтамасын күчереп ал", "account.direct": "{name}-ны шәхсән икә алу", "account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү", - "account.domain_blocking": "Блокланган домен", "account.edit_note": "Шәхси искәрмәне төзәтү", "account.edit_profile": "Профильне үзгәртү", "account.edit_profile_short": "Үзгәрт", diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json index 2fb7241537809f..97edc4e8b24c9c 100644 --- a/app/javascript/mastodon/locales/ug.json +++ b/app/javascript/mastodon/locales/ug.json @@ -11,7 +11,6 @@ "account.block_domain": "{domain} دائىرىنى توس", "account.block_short": "توس", "account.blocked": "توسۇلدى", - "account.blocking": "توسۇۋاتىدۇ", "account.cancel_follow_request": "ئەگىشىش ئىلتىماسىدىن ۋاز كەچ", "account.copy": "تەرجىمىھال ئۇلانمىسىنى كۆچۈر", "account.direct": "@{name} نى يوشۇرۇن ئاتا", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index a4548ba1d93179..88f09f9b0ea103 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -98,7 +98,6 @@ "account.remove_from_followers": "Вилучити {name} із підписників", "account.report": "Поскаржитися на @{name}", "account.requested_follow": "{name} надсилає запит на стеження", - "account.requests_to_follow_you": "Просить дозвіл на вас підписатись", "account.share": "Поділитися профілем @{name}", "account.show_reblogs": "Показати поширення від @{name}", "account.statuses_counter": "{count, plural, one {{counter} допис} few {{counter} дописи} many {{counter} дописів} other {{counter} допис}}", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index bc328d410c988d..c88f1f4bfaaaf5 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -28,12 +28,10 @@ "account.block_domain": "Chặn mọi thứ từ {domain}", "account.block_short": "Chặn", "account.blocked": "Đã chặn", - "account.blocking": "Đang chặn", "account.cancel_follow_request": "Thu hồi yêu cầu theo dõi", "account.copy": "Sao chép địa chỉ", "account.direct": "Nhắn riêng @{name}", "account.disable_notifications": "Tắt thông báo khi @{name} đăng tút", - "account.domain_blocking": "Máy chủ đang chủ", "account.edit_note": "Sửa ghi chú", "account.edit_profile": "Sửa hồ sơ", "account.edit_profile_short": "Sửa", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "Phớt lờ thông báo", "account.mute_short": "Phớt lờ", "account.muted": "Đã phớt lờ", - "account.muting": "Đang ẩn", "account.mutual": "Theo dõi nhau", "account.name.copy": "Sao chép địa chỉ", "account.name.help.domain": "{domain} là máy chủ lưu trữ hồ sơ và tút của tài khoản.", @@ -136,7 +133,6 @@ "account.remove_from_followers": "Xóa người theo dõi {name}", "account.report": "Báo cáo @{name}", "account.requested_follow": "{name} yêu cầu theo dõi bạn", - "account.requests_to_follow_you": "Yêu cầu theo dõi bạn", "account.share": "Chia sẻ @{name}", "account.show_reblogs": "Hiện tút do @{name} đăng lại", "account.statuses_counter": "{count, plural, other {{counter} Tút}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "Hiện tab ‘Phương tiện’", "account_edit.profile_tab.show_media_replies.description": "Nếu bật, tab Phương tiện sẽ hiện cả những tút của bạn lẫn những trả lời tới tút của người khác.", "account_edit.profile_tab.show_media_replies.title": "Bao gồm tút dạng trả lời trong tab ‘Phương tiện’", - "account_edit.profile_tab.subtitle": "Tùy chỉnh tab trên hồ sơ của bạn và những gì chúng hiển thị.", - "account_edit.profile_tab.title": "Thiết lập tab hồ sơ", "account_edit.save": "Lưu", "account_edit.upload_modal.back": "Quay lại", "account_edit.upload_modal.done": "Xong", @@ -399,7 +393,7 @@ "collections.detail.share": "Chia sẻ gói khởi đầu này", "collections.detail.you_are_in_this_collection": "Bạn đã được thêm vào gói khởi đầu này", "collections.edit_details": "Sửa chi tiết", - "collections.error_loading_collections": "Đã xảy ra lỗi khi tải những gói khởi đầu của bạn.", + "collections.error_loading_collections": "Đã xảy ra lỗi khi tải những gói khởi đầu này.", "collections.hidden_accounts_description": "Bạn vừa chặn hoặc phớt lờ {count, plural, other {tài khoản này}}", "collections.hidden_accounts_link": "{count, plural, other {# tài khoản đã ẩn}}", "collections.hints.accounts_counter": "{count}/{max} tài khoản", @@ -647,6 +641,7 @@ "empty_column.account_unavailable": "Tài khoản bị đình chỉ", "empty_column.blocks": "Bạn chưa chặn ai.", "empty_column.bookmarked_statuses": "Bạn chưa lưu tút nào. Nếu có, nó sẽ hiển thị ở đây.", + "empty_column.collections.featured_in": "Bạn chưa được thêm vào gói khởi đầu nào.", "empty_column.community": "Máy chủ của bạn chưa có tút nào công khai. Bạn hãy thử viết gì đó đi!", "empty_column.direct": "Bạn chưa có tin nhắn riêng nào. Khi bạn gửi hoặc nhận một tin nhắn riêng, nó sẽ xuất hiện ở đây.", "empty_column.disabled_feed": "Bảng tin này bị vô hiệu hóa bởi quản trị viên máy chủ của bạn.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 9888349380dc3e..a1b3b4eedabb56 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -28,12 +28,10 @@ "account.block_domain": "屏蔽 {domain} 实例", "account.block_short": "屏蔽", "account.blocked": "已屏蔽", - "account.blocking": "屏蔽中", "account.cancel_follow_request": "撤回关注请求", "account.copy": "复制个人资料链接", "account.direct": "私下提及 @{name}", "account.disable_notifications": "当 @{name} 发布嘟文时不要通知我", - "account.domain_blocking": "正在屏蔽中的域名", "account.edit_note": "编辑个人备注", "account.edit_profile": "修改个人资料", "account.edit_profile_short": "编辑", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "关闭通知", "account.mute_short": "隐藏", "account.muted": "已隐藏", - "account.muting": "正在静音", "account.mutual": "你们互相关注", "account.name.copy": "复制用户名", "account.name.help.domain": "{domain} 是托管该用户个人资料及嘟文的服务器。", @@ -136,7 +133,6 @@ "account.remove_from_followers": "从关注者中移除 {name}", "account.report": "举报 @{name}", "account.requested_follow": "{name} 向你发送了关注请求", - "account.requests_to_follow_you": "请求关注你", "account.share": "分享 @{name} 的个人资料", "account.show_reblogs": "显示来自 @{name} 的转嘟", "account.statuses_counter": "{count, plural, other {{counter} 条嘟文}}", @@ -228,8 +224,10 @@ "account_edit.profile_tab.show_media.title": "显示“媒体”选项卡", "account_edit.profile_tab.show_media_replies.description": "如果启用,媒体选项卡将同时显示你的嘟文及你对其他人嘟文的回复。", "account_edit.profile_tab.show_media_replies.title": "在“媒体”选项卡中包括回复", - "account_edit.profile_tab.subtitle": "自定义你个人资料的选项卡及其显示的内容。", - "account_edit.profile_tab.title": "个人资料选项卡设置", + "account_edit.profile_tab.show_relations.description": "在个人资料中向其他人显示你关注的账号及关注你的账号。无论设置为是否,其他用户总是可以看到你是否关注了他。", + "account_edit.profile_tab.show_relations.title": "公开“关注者”与“我关注的”", + "account_edit.profile_tab.subtitle": "自定义你个人资料的显示方式。", + "account_edit.profile_tab.title": "个人资料显示设置", "account_edit.save": "保存", "account_edit.upload_modal.back": "上一步", "account_edit.upload_modal.done": "完成", @@ -257,6 +255,7 @@ "account_edit_tags.search_placeholder": "输入话题标签…", "account_edit_tags.suggestions": "建议:", "account_edit_tags.tag_status_count": "{count, plural, other {# 条嘟文}}", + "account_list.hidden_notice": "此内容仅对你可见。要让此列表对其他人可见,请前往{page} > {modal} > {field}。", "account_list.total": "{total, plural, other {# 个账号}}", "account_note.placeholder": "点击添加备注", "admin.dashboard.daily_retention": "注册后用户留存率(按日计算)", @@ -399,7 +398,7 @@ "collections.detail.share": "分享此收藏列表", "collections.detail.you_are_in_this_collection": "你被添加到了此收藏列表", "collections.edit_details": "编辑详情", - "collections.error_loading_collections": "加载你的收藏列表时发生错误。", + "collections.error_loading_collections": "加载收藏列表时发生错误。", "collections.hidden_accounts_description": "你已屏蔽或隐藏{count, plural, other {部分用户}}", "collections.hidden_accounts_link": "{count, plural, other {# 个隐藏账号}}", "collections.hints.accounts_counter": "{count}/{max} 个账号", @@ -649,6 +648,7 @@ "empty_column.account_unavailable": "个人资料不可用", "empty_column.blocks": "你还未屏蔽任何用户。", "empty_column.bookmarked_statuses": "你还没有给任何嘟文添加书签。添加书签后的嘟文会显示在这里。", + "empty_column.collections.featured_in": "你还没有被添加到收藏列表过。", "empty_column.community": "本站时间线还没有内容,写点什么并公开发布,让它活跃起来吧!", "empty_column.direct": "你还未使用过私下提及。当你发出或者收到私下提及时,它将显示在此。", "empty_column.disabled_feed": "此动态已被你的服务器管理员禁用。", diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 875477dcd7cedc..309a87546fc905 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -28,12 +28,10 @@ "account.block_domain": "封鎖網域 {domain}", "account.block_short": "封鎖", "account.blocked": "已封鎖", - "account.blocking": "封鎖", "account.cancel_follow_request": "撤回追蹤請求", "account.copy": "複製個人檔案連結", "account.direct": "私下提及 @{name}", "account.disable_notifications": "當 @{name} 發文時不要再通知我", - "account.domain_blocking": "封鎖網域", "account.edit_note": "編輯個人筆記", "account.edit_profile": "修改個人檔案", "account.edit_profile_short": "編輯", @@ -94,7 +92,6 @@ "account.mute_notifications_short": "靜音通知", "account.mute_short": "靜音", "account.muted": "靜音", - "account.muting": "靜音", "account.mutual": "你們已互相追蹤", "account.name.help.username": "{username} 係你喺呢個 Server 嘅 Account 嘅 Username,可能會有條友喺第二個 Server 用緊同一個 Username。", "account.name.help.username_self": "{username} 係你喺呢個 Server 嘅 Username,可能會有條友喺第二個 Server 用緊同一個 Username。", @@ -113,7 +110,6 @@ "account.remove_from_followers": "移除追蹤者{name}", "account.report": "檢舉 @{name}", "account.requested_follow": "{name} 要求追蹤你", - "account.requests_to_follow_you": "要求追蹤你", "account.share": "分享 @{name} 的個人檔案", "account.show_reblogs": "顯示 @{name} 的轉推", "account.timeline.pinned": "釘起咗", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 25dd456e8e46c4..92f685c4d49960 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -28,12 +28,10 @@ "account.block_domain": "封鎖來自 {domain} 網域之所有內容", "account.block_short": "封鎖", "account.blocked": "已封鎖", - "account.blocking": "封鎖中", "account.cancel_follow_request": "收回跟隨請求", "account.copy": "複製個人檔案連結", "account.direct": "私訊 @{name}", "account.disable_notifications": "取消來自 @{name} 嘟文之通知", - "account.domain_blocking": "封鎖中網域", "account.edit_note": "編輯個人備註", "account.edit_profile": "編輯個人檔案", "account.edit_profile_short": "編輯", @@ -111,7 +109,6 @@ "account.mute_notifications_short": "靜音推播通知", "account.mute_short": "靜音", "account.muted": "已靜音", - "account.muting": "靜音", "account.mutual": "跟隨彼此", "account.name.copy": "複製帳號", "account.name.help.domain": "{domain} 為託管此使用者個人檔案與嘟文之伺服器。", @@ -136,7 +133,6 @@ "account.remove_from_followers": "自跟隨者中移除 {name}", "account.report": "檢舉 @{name}", "account.requested_follow": "{name} 要求跟隨您", - "account.requests_to_follow_you": "要求跟隨您", "account.share": "分享 @{name} 的個人檔案", "account.show_reblogs": "顯示來自 @{name} 的轉嘟", "account.statuses_counter": "{count, plural, other {{counter} 則嘟文}}", @@ -228,8 +224,6 @@ "account_edit.profile_tab.show_media.title": "顯示「媒體」分頁", "account_edit.profile_tab.show_media_replies.description": "當啟用時,媒體分頁將顯示您的嘟文與對其他人嘟文之回嘟。", "account_edit.profile_tab.show_media_replies.title": "於「媒體」分頁中包含回嘟", - "account_edit.profile_tab.subtitle": "自訂您個人檔案之分頁與內容。", - "account_edit.profile_tab.title": "個人檔案分頁設定", "account_edit.save": "儲存", "account_edit.upload_modal.back": "上一步", "account_edit.upload_modal.done": "完成", @@ -399,7 +393,6 @@ "collections.detail.share": "分享此收藏名單", "collections.detail.you_are_in_this_collection": "您已被加入至此收藏名單", "collections.edit_details": "編輯詳細資料", - "collections.error_loading_collections": "讀取您的收藏名單時發生錯誤。", "collections.hidden_accounts_description": "您已封鎖或靜音{count, plural, other {這些使用者}}", "collections.hidden_accounts_link": "{count, plural, other {# 個隱藏帳號}}", "collections.hints.accounts_counter": "{count}/{max} 個帳號", diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 6cbd087063d2b0..e27b4b27cbd5d2 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1743,6 +1743,15 @@ gl: title_html: "%{name} creou a conta" collection_update: title_html: "%{name} actualizou unha colección da que es parte" + generic: + sign_in: Accede na aplicación web de Mastodon + summary_html: Estás a usar unha app que non é compatible coa versión máis recente de Mastodon %{link} para obter todas as funcións. + moderation_warning: + summary_html: Estás a usar unha app que non é compatible coa versión máis recente de Mastodon. %{link}. + title: Recibiches unha advertencia da moderación. + severed_relationships: + summary_html: A administración de %{from} suspendeu a %{target}, o que significa que non vas recibir actualizacións dese servidor nin poder interactuar coas súas usuarias. %{link} para obter unha lista das relacións perdidas. + title: Relacións perdidas con %{name} notification_mailer: admin: report: diff --git a/config/locales/he.yml b/config/locales/he.yml index 7269270cf95644..b340e2d446419a 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1831,7 +1831,9 @@ he: title_html: "%{name} עדכנו אוסף הכולל אותך" generic: sign_in: התחברו ליישומון הווב של מסטודון + summary_html: אתם משתמשים ביישומון שאינו תומך בגרסא העדכנית של מסטודון. %{link} כדי לקבל את מלוא השמישות. moderation_warning: + summary_html: אתם משתמשים ביישומון שאינו תומך בגרסא העדכנית של מסטודון. %{link}. title: קיבלת אזהרת מנהל. severed_relationships: summary_html: מנהל מאתר %{from} הקפיא את %{target}, כלומר לא תוכלו לקבל יותר עדכונים מהם או להתכתב איתם. %{link} כדי לקבל רשימת מערכות יחסים שאבדו. diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 0fbbbe90b83796..fdf584155ef1f1 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1731,6 +1731,27 @@ hu: copy_account_note_text: 'Ez a fiók elköltözött innen: %{acct}, itt vannak az előző megjegyzéseid róla:' navigation: toggle_menu: Menü be/ki + notification_fallbacks: + added_to_collection: + title_html: "%{name} hozzáadott egy gyűjteményhez" + admin_report: + title_html: "%{name} jelentette: %{target}" + admin_sign_up: + title_and_others_html: + one: "%{name} és még egy felhasználó feliratkozott" + other: "%{name} és még %{count} felhasználó feliratkozott" + title_html: "%{name} feliratkozott" + collection_update: + title_html: "%{name} frissített egy gyűjteményt, amelyben szerepelsz" + generic: + sign_in: Jelentkezz be a Mastodon webalkalmazásba + summary_html: Olyan alkalmazást használsz, amely nem támogatja a Mastodon legfrissebb verzióját. %{link} a teljes funkcionalitáshoz. + moderation_warning: + summary_html: Olyan alkalmazást használsz, amely nem támogatja a Mastodon legfrissebb verzióját. %{link}. + title: Moderációs figyelmeztetést kaptál. + severed_relationships: + summary_html: 'A(z) %{from} egy rendszergazdája felfüggesztette ezt: %{target}, ez azt jelenti, hogy többé nem kapsz értesítést onnan, és nem tudsz interakcióba lépni velük. %{link} az elveszett kapcsolatok felsorolásáért.' + title: 'Elvesztek a kapcsolatok vele: %{name}' notification_mailer: admin: report: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 554067c7fa8bc1..f4aee09dd8be33 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1689,6 +1689,26 @@ vi: copy_account_note_text: 'Tài khoản này chuyển từ %{acct}, đây là lịch sử kiểm duyệt của họ:' navigation: toggle_menu: Bật/tắt menu + notification_fallbacks: + added_to_collection: + title_html: "%{name} đã thêm bạn vào một gói khởi đầu" + admin_report: + title_html: "%{name} báo cáo %{target}" + admin_sign_up: + title_and_others_html: + other: "%{name} và %{count} người khác đã đăng ký" + title_html: "%{name} đã đăng ký" + collection_update: + title_html: "%{name} đã cập nhật gói khởi đầu có bạn" + generic: + sign_in: Đăng nhập Mastodon bản web + summary_html: Bạn đang sử dụng một ứng dụng không hỗ trợ phiên bản Mastodon mới nhất. %{link} để có đầy đủ tính năng. + moderation_warning: + summary_html: Bạn đang sử dụng một ứng dụng không hỗ trợ phiên bản Mastodon mới nhất. %{link}. + title: Bạn vừa nhận một cảnh cáo kiểm duyệt. + severed_relationships: + summary_html: Quản trị viên %{from} vừa vô hiệu hóa %{target}, điều này nghĩa là bạn không thể nhận được thông báo cập nhật từ họ hoặc tương tác với họ nữa. %{link} để khôi phục danh sách các mối quan hệ đã mất. + title: Mất kết nối với %{name} notification_mailer: admin: report: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 4ab6db6749a88a..96f026c3175437 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1701,8 +1701,8 @@ zh-CN: collection_update: title_html: "%{name} 更新了你所在的收藏列表" generic: - sign_in: 登录到 Mastodon 网页应用 - summary_html: 你使用的应用程序不支持最新版本的 Mastodon。要使用完整功能,%{link}。 + sign_in: 登录到 Mastodon 网页 App + summary_html: 你使用的应用程序不支持最新版本的 Mastodon。要使用完整功能,请%{link}。 moderation_warning: summary_html: 你使用的应用程序不支持最新版本的 Mastodon。%{link}。 title: 你收到了一条管理警告。 From 63eb7a839b375f212c3b9016aeaf584a7525132e Mon Sep 17 00:00:00 2001 From: "KMY (Yuki Asuka)" Date: Fri, 1 May 2026 08:14:28 +0900 Subject: [PATCH 334/335] Fix test --- app/views/admin/statuses/show.html.haml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml index 545b2a7d0ce19c..27af69fb5a0219 100644 --- a/app/views/admin/statuses/show.html.haml +++ b/app/views/admin/statuses/show.html.haml @@ -52,19 +52,6 @@ %th= t('admin.statuses.favourites') %td= friendly_number_to_human @status.favourites_count -.action-buttons - %div - - if @account.local? && can?(:warn, @account) - = link_to t('admin.statuses.remove_history'), remove_history_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' - - if @account.local? && @status.with_media? && can?(:warn, @account) - = link_to t('admin.statuses.remove_media'), remove_media_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' - - if @account.local? && !@status.sensitive && @status.with_media? && can?(:warn, @account) - = link_to t('admin.statuses.force_nsfw'), force_sensitive_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' - - if @account.local? && @status.spoiler_text.blank? && can?(:warn, @account) - = link_to t('admin.statuses.force_cw'), force_cw_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' - - if @account.local? && can?(:warn, @account) - = link_to t('admin.statuses.remove'), remove_status_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' - %hr.spacer/ %h3= t('admin.statuses.contents') From 8ebc0efe79f7ab568cbd9a2288e947a40aff7baf Mon Sep 17 00:00:00 2001 From: "KMY (Yuki Asuka)" Date: Fri, 1 May 2026 11:24:37 +0900 Subject: [PATCH 335/335] Fix test --- config/locales/en.yml | 6 ------ config/locales/ja.yml | 6 ------ 2 files changed, 12 deletions(-) diff --git a/config/locales/en.yml b/config/locales/en.yml index 4c4851b7ddc772..f0c5c70087dfeb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1180,7 +1180,6 @@ en: statuses: account: Author application: Application - are_you_sure: Are you sure? back_to_account: Back to account page back_to_report: Back to report page batch: @@ -1190,8 +1189,6 @@ en: contents: Contents deleted: Deleted favourites: Favorites - force_cw: Force CW - force_nsfw: Force NSFW history: Version history in_reply_to: Replying to language: Language @@ -1204,9 +1201,6 @@ en: original_status: Original post quotes: Quotes reblogs: Reblogs - remove: Remove - remove_history: Remove edit history - remove_media: Remove medias replied_to_html: Replied to %{acct_link} status_changed: Post changed status_title: Post by @%{name} diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 2c5c66463e95a3..ffb99b34ca6b47 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1137,7 +1137,6 @@ ja: statuses: account: 作成者 application: アプリ - are_you_sure: 本当に実行しますか? back_to_account: アカウントページに戻る back_to_report: 通報ページに戻る batch: @@ -1147,8 +1146,6 @@ ja: contents: 投稿内容 deleted: 削除済み favourites: お気に入り - force_cw: 強制CW - force_nsfw: 強制NSFW history: 更新履歴 in_reply_to: 返信先 language: 言語 @@ -1161,9 +1158,6 @@ ja: original_status: オリジナルの投稿 quotes: 引用 reblogs: ブースト - remove: 削除 - remove_history: 編集履歴を削除 - remove_media: メディアを削除 replied_to_html: "%{acct_link}さんへの返信" status_changed: 投稿を変更しました status_title: "@%{name} の投稿"