From 4fce6e0f7338ee6d6a791039357e8dd69adc206e Mon Sep 17 00:00:00 2001 From: diondiondion Date: Sat, 13 Jun 2026 14:32:17 +0200 Subject: [PATCH 01/36] Prevent crash trying to access nullish location state (#39408) --- .../components/navigation_focus_target/index.tsx | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/javascript/mastodon/components/navigation_focus_target/index.tsx b/app/javascript/mastodon/components/navigation_focus_target/index.tsx index ceb26842db5..1b86102fdfa 100644 --- a/app/javascript/mastodon/components/navigation_focus_target/index.tsx +++ b/app/javascript/mastodon/components/navigation_focus_target/index.tsx @@ -55,13 +55,11 @@ export const FocusTargetProvider: React.FC<{ | null >(null); - const { - pathname, - search, - state = {}, - } = useLocation<{ focusTarget?: FocusTarget } | undefined>(); + const { pathname, search, state } = useLocation<{ + focusTarget?: FocusTarget; + } | null>(); - const { focusTarget } = state; + const { focusTarget } = state ?? {}; useLayoutEffect(() => { // We never want to set focus on page load, so we keep From 77533570ca78db09571d2e7bb8c9345c6eea43ab Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 10:08:35 +0200 Subject: [PATCH 02/36] New Crowdin Translations (automated) (#39415) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/be.json | 2 +- 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 | 20 +++- app/javascript/mastodon/locales/fa.json | 2 +- app/javascript/mastodon/locales/fi.json | 2 +- app/javascript/mastodon/locales/fr-CA.json | 2 +- app/javascript/mastodon/locales/fr.json | 2 +- app/javascript/mastodon/locales/ga.json | 2 +- app/javascript/mastodon/locales/gd.json | 41 +++++++- app/javascript/mastodon/locales/gl.json | 3 +- app/javascript/mastodon/locales/he.json | 7 +- app/javascript/mastodon/locales/hu.json | 6 +- app/javascript/mastodon/locales/is.json | 2 +- app/javascript/mastodon/locales/it.json | 2 +- app/javascript/mastodon/locales/ko.json | 36 ++++--- app/javascript/mastodon/locales/lv.json | 3 + app/javascript/mastodon/locales/nan-TW.json | 7 +- app/javascript/mastodon/locales/nl.json | 3 +- app/javascript/mastodon/locales/nn.json | 1 - app/javascript/mastodon/locales/pa.json | 68 +++++++++++++ app/javascript/mastodon/locales/pt-BR.json | 2 +- 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 | 2 +- app/javascript/mastodon/locales/tr.json | 2 +- app/javascript/mastodon/locales/vi.json | 2 +- app/javascript/mastodon/locales/zh-CN.json | 2 +- app/javascript/mastodon/locales/zh-TW.json | 6 +- config/locales/be.yml | 1 + config/locales/da.yml | 1 + config/locales/de.yml | 1 + config/locales/doorkeeper.lv.yml | 2 +- config/locales/el.yml | 1 + config/locales/es-AR.yml | 1 + config/locales/es-MX.yml | 9 ++ config/locales/es.yml | 6 ++ config/locales/et.yml | 24 ++++- config/locales/fi.yml | 1 + config/locales/fr-CA.yml | 57 ++++++----- config/locales/fr.yml | 69 +++++++------ config/locales/ga.yml | 15 +++ config/locales/gd.yml | 102 ++++++++++++++++++++ config/locales/gl.yml | 9 ++ config/locales/he.yml | 19 +++- config/locales/hu.yml | 9 ++ config/locales/is.yml | 2 + config/locales/ko.yml | 20 +++- config/locales/lv.yml | 14 +-- config/locales/nan-TW.yml | 12 +++ config/locales/nl.yml | 9 ++ config/locales/pt-BR.yml | 1 + config/locales/simple_form.gd.yml | 2 + config/locales/simple_form.lv.yml | 12 +-- config/locales/sq.yml | 1 + config/locales/sv.yml | 9 ++ config/locales/tr.yml | 1 + config/locales/vi.yml | 1 + config/locales/zh-CN.yml | 3 +- config/locales/zh-TW.yml | 5 +- 67 files changed, 534 insertions(+), 130 deletions(-) diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index a7511d249cc..1d6b2dc6fb1 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} больш не будзе падпісаны(-ая) на Вас. Упэўненыя, што хочаце працягнуць?", "confirmations.remove_from_followers.title": "Выдаліць падпісчыка?", "confirmations.revoke_collection_inclusion.confirm": "Прыбраць сябе", - "confirmations.revoke_collection_inclusion.message": "Гэтае дзеянне канчатковае, і куратар не зможа пасля зноў дадаць Вас у гэтую калекцыю.", + "confirmations.revoke_collection_inclusion.message": "Куратар не зможа вярнуць Вас у калекцыю на працягу 24 гадзін. Каб ён больш ніколі не мог дадаваць Вас у калекцыі, Вы можаце заблакіраваць яго.", "confirmations.revoke_collection_inclusion.title": "Прыбраць Вас з гэтай калекцыі?", "confirmations.revoke_quote.confirm": "Выдаліць допіс", "confirmations.revoke_quote.message": "Гэтае дзеянне немагчыма адмяніць.", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index d919fda4bd4..ea907931b4b 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -556,7 +556,6 @@ "confirmations.remove_from_followers.message": "Bydd {name} yn rhoi'r gorau i'ch dilyn. A ydych yn siŵr eich bod am fwrw ymlaen?", "confirmations.remove_from_followers.title": "Tynnu dilynwr?", "confirmations.revoke_collection_inclusion.confirm": "Tynnu fi", - "confirmations.revoke_collection_inclusion.message": "Mae'r weithred hon yn barhaol, a fydd y curadur ddim yn gallu eich ail-ychwanegu at y casgliad yn ddiweddarach.", "confirmations.revoke_collection_inclusion.title": "Tynnu eich hun o'r casgliad hwn?", "confirmations.revoke_quote.confirm": "Dileu'r postiad", "confirmations.revoke_quote.message": "Does dim modd dadwneud y weithred hon.", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 7240357d462..1bdc685d80a 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} vil ikke længere følge dig. Er du sikker på, at du vil fortsætte?", "confirmations.remove_from_followers.title": "Fjern følger?", "confirmations.revoke_collection_inclusion.confirm": "Fjern mig", - "confirmations.revoke_collection_inclusion.message": "Denne handling er permanent, og kuratoren vil ikke kunne føje dig til samlingen igen senere.", + "confirmations.revoke_collection_inclusion.message": "Kuratoren kan ikke tilføje dig til denne samling igen før om 24 timer. For permanent at forhindre, at vedkommende tilføjer dig til samlinger, kan du blokere vedkommende.", "confirmations.revoke_collection_inclusion.title": "Fjern dig selv fra denne samling?", "confirmations.revoke_quote.confirm": "Fjern indlæg", "confirmations.revoke_quote.message": "Denne handling kan ikke fortrydes.", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index ab76c843f07..1e18a60b2a5 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} wird dir nicht länger folgen. Bist du dir sicher?", "confirmations.remove_from_followers.title": "Follower entfernen?", "confirmations.revoke_collection_inclusion.confirm": "Mich entfernen", - "confirmations.revoke_collection_inclusion.message": "Diese Aktion kann nicht rückgängig gemacht werden. Es wird daher nicht möglich sein, dich zu dieser Sammlung erneut hinzuzufügen.", + "confirmations.revoke_collection_inclusion.message": "Du wirst in den nächsten 24 Stunden nicht noch einmal zu dieser Sammlung hinzugefügt werden können. Falls du nie wieder von diesem Profil zu einer Sammlung hinzugefügt werden möchtest, kannst du es blockieren.", "confirmations.revoke_collection_inclusion.title": "Möchtest du wirklich aus dieser Sammlung entfernt werden?", "confirmations.revoke_quote.confirm": "Zitat entfernen", "confirmations.revoke_quote.message": "Diese Aktion kann nicht rückgängig gemacht werden.", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 3d11546b758..395bdad3113 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "Ο χρήστης {name} θα σταματήσει να σε ακολουθεί. Σίγουρα θες να συνεχίσεις;", "confirmations.remove_from_followers.title": "Αφαίρεση ακολούθου;", "confirmations.revoke_collection_inclusion.confirm": "Αφαίρεσε με", - "confirmations.revoke_collection_inclusion.message": "Αυτή η ενέργεια είναι μόνιμη, και ο επιμελητής δεν θα μπορεί να σε προσθέσει ξανά στη συλλογή αργότερα.", + "confirmations.revoke_collection_inclusion.message": "Ο επιμελητής δεν θα μπορεί να σας προσθέσει ξανά σε αυτήν τη συλλογή για 24 ώρες. Για να τον αποτρέψετε μόνιμα από το να σας προσθέτει σε συλλογές, μπορείτε να τον αποκλείσετε.", "confirmations.revoke_collection_inclusion.title": "Αφαίρεσε τον εαυτό σου από αυτήν τη συλλογή;", "confirmations.revoke_quote.confirm": "Αφαίρεση ανάρτησης", "confirmations.revoke_quote.message": "Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 613c8d04911..c4d84b97ff9 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -561,7 +561,6 @@ "confirmations.remove_from_followers.message": "{name} will stop following you. Are you sure you want to proceed?", "confirmations.remove_from_followers.title": "Remove follower?", "confirmations.revoke_collection_inclusion.confirm": "Remove me", - "confirmations.revoke_collection_inclusion.message": "This action is permanent, and the curator won't be able to re-add you to the collection later on.", "confirmations.revoke_collection_inclusion.title": "Remove yourself from this collection?", "confirmations.revoke_quote.confirm": "Remove post", "confirmations.revoke_quote.message": "This action cannot be undone.", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 156137efed5..bbfbe0f0ce0 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿De verdad querés continuar?", "confirmations.remove_from_followers.title": "¿Quitar seguidor?", "confirmations.revoke_collection_inclusion.confirm": "Quitarme", - "confirmations.revoke_collection_inclusion.message": "Esta acción es permanente, y el autor no podrá volver a agregarte a la colección más adelante.", + "confirmations.revoke_collection_inclusion.message": "El coleccionista no podrá volver a agregarte a esta colección durante 24 horas. Para evitar que te agreguen a colecciones de forma permanente, podés bloquearlos.", "confirmations.revoke_collection_inclusion.title": "¿Querés quitarte de esta colección?", "confirmations.revoke_quote.confirm": "Eliminar mensaje", "confirmations.revoke_quote.message": "Esta acción no se puede deshacer.", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index 6231f53ac68..5d0a439ce04 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?", "confirmations.remove_from_followers.title": "¿Eliminar seguidor?", "confirmations.revoke_collection_inclusion.confirm": "Excluirme", - "confirmations.revoke_collection_inclusion.message": "Esta acción es permanente y el autor no podrá volver a agregarte a la colección más adelante.", + "confirmations.revoke_collection_inclusion.message": "El editor no podrá volver a añadirte a esta colección hasta dentro de 24 horas. Para evitar que te añada a colecciones de forma permanente, puedes bloquearlo.", "confirmations.revoke_collection_inclusion.title": "¿Deseas excluirte de esta colección?", "confirmations.revoke_quote.confirm": "Eliminar publicación", "confirmations.revoke_quote.message": "Esta acción no se puede deshacer.", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 0c598472b33..bf16aaa0c4b 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} dejará de seguirte. ¿Estás seguro de que quieres continuar?", "confirmations.remove_from_followers.title": "¿Eliminar seguidor?", "confirmations.revoke_collection_inclusion.confirm": "Sácame", - "confirmations.revoke_collection_inclusion.message": "Esta acción es permanente, y el curador no podrá volver a añadirle a la colección más adelante.", + "confirmations.revoke_collection_inclusion.message": "El editor no podrá volver a añadirte a esta colección durante 24 horas. Para evitar que te añada a colecciones de forma permanente, puedes bloquearle.", "confirmations.revoke_collection_inclusion.title": "¿Salirse de esta colección?", "confirmations.revoke_quote.confirm": "Eliminar publicación", "confirmations.revoke_quote.message": "Esta acción no tiene vuelta atrás.", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index 9d5e833803a..abacb4d8cbb 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -2,6 +2,7 @@ "about.blocks": "Modereeritavad serverid", "about.contact": "Kontakt:", "about.default_locale": "Vaikimisi", + "about.disclaimer": "Mastodon on vaba, tasuta ja avatud lähtekoodiga tarkvara ning Mastodon gGmbH kaubamärk.", "about.domain_blocks.no_reason_available": "Põhjus on teadmata", "about.domain_blocks.preamble": "Mastodon lubab üldiselt vaadata sisu ning suhelda kasutajatega ükskõik millisest teisest födiversumi serverist. Need on erandid, mis kehtivad selles kindlas serveris.", "about.domain_blocks.silenced.explanation": "Sa üldjuhul ei näe profiile ja sisu sellest serverist, kui sa just tahtlikult neid ei otsi või jälgimise moel nõusolekut ei anna.", @@ -380,7 +381,7 @@ "collections.collection_language_none": "Pole", "collections.collection_name": "Nimi", "collections.collection_topic": "Teema", - "collections.confirm_account_removal": "Kas oled kindel, et soovid selle konto kogumikust eemaldada?", + "collections.confirm_account_removal": "Kas oled kindel, et soovid selle kasutajakonto kogumikust eemaldada?", "collections.content_warning": "Sisuhoiatus", "collections.continue": "Jätka", "collections.copy_link": "Kopeeri link", @@ -392,7 +393,7 @@ "collections.delete_collection": "Kustuta kogumik", "collections.description_length_hint": "Kuni 100 tähemärki", "collections.detail.author_added_you_on_date": "{author} lisas sind {date}", - "collections.detail.loading": "Kogumiku laadimine…", + "collections.detail.loading": "Laadin kogumikku…", "collections.detail.revoke_inclusion": "Eemalda mind", "collections.detail.sensitive_content": "Delikaatne sisu", "collections.detail.sensitive_note": "Kirjeldus ja kontod ei pruugi kõigi vaatajate jaoks sobivad olla.", @@ -560,7 +561,7 @@ "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 kogumikku uuesti lisada.", + "confirmations.revoke_collection_inclusion.message": "Koostaja ei saa sind uuesti lisada sellesse kogumikku 24 tunni jooksul. Kui tahad, et seda ei saaks üldse teha, võid ta blokeerida.", "confirmations.revoke_collection_inclusion.title": "Kas eemaldad ennast sellest kogumikust?", "confirmations.revoke_quote.confirm": "Eemalda postitus", "confirmations.revoke_quote.message": "Seda tegevust ei saa tagasi pöörata.", @@ -645,8 +646,10 @@ "empty_column.account_unavailable": "Profiil pole saadaval", "empty_column.blocks": "Blokeeritud kasutajaid pole.", "empty_column.bookmarked_statuses": "Järjehoidjatesse pole veel lisatud postitusi. Kui lisad mõne, näed neid siin.", + "empty_column.collections": "{acct} pole veel koostanud ühtegi kogumikku.", "empty_column.collections.featured_in": "Sind pole lisatud veel ühtegi kogumikku.", "empty_column.collections.featured_in_undiscoverable": "Selleks, et kasutajad saaks sind lisada kogumikesse, pead sa seadistustest lubama tuvastamise ja esiletõstmise siit: Eelistused > Privaatsus ja ulatus", + "empty_column.collections_self": "Sina pole veel koostanud ühtegi kogumikku.", "empty_column.community": "Kohalik ajajoon on tühi. Kirjuta midagi avalikult, et pall veerema ajada!", "empty_column.direct": "Sul pole veel ühtegi privaatset mainimist. Kui saadad või saad mõne, ilmuvad need siin.", "empty_column.disabled_feed": "See infovoog on serveri peakasutajate poolt välja lülitatud.", @@ -778,6 +781,7 @@ "home.pending_critical_update.link": "Vaata uuendusi", "home.pending_critical_update.title": "Saadaval kriitiline turvauuendus!", "home.show_announcements": "Kuva teadaandeid", + "ignore_notifications_modal.bots_title": "Kas eirad robotkontode teavitusi?", "ignore_notifications_modal.disclaimer": "Mastodon ei saa teavitada kasutajaid, et eirasid nende teavitusi. Teavituste eiramine ei peata sõnumite endi saatmist.", "ignore_notifications_modal.filter_instead": "Selle asemel filtreeri", "ignore_notifications_modal.filter_to_act_users": "Saad endiselt kasutajaid vastu võtta, tagasi lükata või neist teatada", @@ -818,6 +822,12 @@ "keyboard_shortcuts.heading": "Kiirklahvid", "keyboard_shortcuts.home": "Ava kodu ajajoon", "keyboard_shortcuts.hotkey": "Kiirklahv", + "keyboard_shortcuts.keys.alt": "Alt", + "keyboard_shortcuts.keys.backspace": "Tagasivõtuklahv", + "keyboard_shortcuts.keys.enter": "Sisestusklahv", + "keyboard_shortcuts.keys.esc": "Esc", + "keyboard_shortcuts.keys.page_down": "Lehekülje võrra alla", + "keyboard_shortcuts.keys.page_up": "Lehekülje võrra üles", "keyboard_shortcuts.legend": "Kuva see legend", "keyboard_shortcuts.load_more": "Fookus „Laadi veel“ nupule", "keyboard_shortcuts.local": "Ava kohalik ajajoon", @@ -838,6 +848,7 @@ "keyboard_shortcuts.toggle_sensitivity": "Näita/peida meediat", "keyboard_shortcuts.toot": "Alusta uut postitust", "keyboard_shortcuts.top": "Tõsta loendi algusesse", + "keyboard_shortcuts.translate": "Tõlgi postitus", "keyboard_shortcuts.unfocus": "Fookus tekstialalt/otsingult ära", "keyboard_shortcuts.up": "Liigu loetelus üles", "learn_more_link.got_it": "Sain aru", @@ -1033,6 +1044,8 @@ "notifications.policy.drop": "Ignoreeri", "notifications.policy.drop_hint": "Saada tühjusse, mitte kunagi seda enam näha", "notifications.policy.filter": "Filter", + "notifications.policy.filter_bots_hint": "Kasutajakontod, millele on lisatud automatiseeritud töö tunnus", + "notifications.policy.filter_bots_title": "Robotid", "notifications.policy.filter_hint": "Saadetud filtreeritud teavituste sisendkasti", "notifications.policy.filter_limited_accounts_hint": "Piiratud serveri moderaatorite poolt", "notifications.policy.filter_limited_accounts_title": "Modereeritud kontod", @@ -1190,6 +1203,7 @@ "search_popout.user": "kasutaja", "search_results.accounts": "Profiilid", "search_results.all": "Kõik", + "search_results.collections": "Kogumikud", "search_results.hashtags": "Teemaviited", "search_results.no_results": "Tulemusi pole.", "search_results.no_search_yet": "Proovi otsida postitusi, profiile või teemaviiteid.", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index c341c05d322..92da8a9d790 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -550,7 +550,6 @@ "confirmations.remove_from_followers.message": "دیگر {name} پیتان نخواهد گرفت. مطمئنید که می‌خواهید ادامه دهید؟", "confirmations.remove_from_followers.title": "برداشتن پی‌گیرنده؟", "confirmations.revoke_collection_inclusion.confirm": "حذفم کن", - "confirmations.revoke_collection_inclusion.message": "این کنش همیشگی است و سازنده نخواهد توانست دوباره به مجموعه بیفزایدتان.", "confirmations.revoke_collection_inclusion.title": "برداشتن خودتان از این مجموعه؟", "confirmations.revoke_quote.confirm": "حذف فرسته", "confirmations.revoke_quote.message": "این اقدام قابل بازگشت نیست.", @@ -892,6 +891,7 @@ "navigation_bar.live_feed_local": "خوراک زنده (محلی)", "navigation_bar.live_feed_public": "خوراک زنده (عمومی)", "navigation_bar.logout": "خروج", + "navigation_bar.main": "اصلی", "navigation_bar.moderation": "نظارت", "navigation_bar.more": "بیشتر", "navigation_bar.mutes": "کاربران خموشانده", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 8b39c8aad3f..5f1f5aefb64 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} lakkaa seuraamasta sinua. Haluatko varmasti jatkaa?", "confirmations.remove_from_followers.title": "Poistetaanko seuraaja?", "confirmations.revoke_collection_inclusion.confirm": "Poista minut", - "confirmations.revoke_collection_inclusion.message": "Tämä toimi on pysyvä, eikä kokoaja pysty lisäämään sinua kokoelmaan myöhemmin uudelleen.", + "confirmations.revoke_collection_inclusion.message": "Kokoaja ei voi lisätä sinua uudelleen tähän kokoelmaan seuraavan 24 tunnin aikana. Estämällä hänet voit pysyvästi estää häntä lisäämästä sinua kokoelmiin.", "confirmations.revoke_collection_inclusion.title": "Poistetaanko itsesi tästä kokoelmasta?", "confirmations.revoke_quote.confirm": "Poista julkaisu", "confirmations.revoke_quote.message": "Tätä toimea ei voi peruuttaa.", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index f7f12589292..cfe36ed0132 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Voulez-vous vraiment continuer ?", "confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?", "confirmations.revoke_collection_inclusion.confirm": "Me retirer", - "confirmations.revoke_collection_inclusion.message": "Cette action est permanente, la personne qui gère la collection ne pourra plus vous y rajouter plus tard.", + "confirmations.revoke_collection_inclusion.message": "Le compte gérant la collection ne pourra plus vous y ajouter pendant 24 heures. Pour l'empêcher définitivement de vous ajouter à des collections vous pouvez le bloquer.", "confirmations.revoke_collection_inclusion.title": "Vous retirer de cette collection ?", "confirmations.revoke_quote.confirm": "Retirer le message", "confirmations.revoke_quote.message": "Cette action ne peut pas être annulée.", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 08115c62e22..933ee38bc7d 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} cessera de vous suivre. Voulez-vous vraiment continuer ?", "confirmations.remove_from_followers.title": "Supprimer l'abonné·e ?", "confirmations.revoke_collection_inclusion.confirm": "Me retirer", - "confirmations.revoke_collection_inclusion.message": "Cette action est permanente, la personne qui gère la collection ne pourra plus vous y rajouter plus tard.", + "confirmations.revoke_collection_inclusion.message": "Le compte gérant la collection ne pourra plus vous y ajouter pendant 24 heures. Pour l'empêcher définitivement de vous ajouter à des collections vous pouvez le bloquer.", "confirmations.revoke_collection_inclusion.title": "Vous retirer de cette collection ?", "confirmations.revoke_quote.confirm": "Retirer le message", "confirmations.revoke_quote.message": "Cette action ne peut pas être annulée.", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index f331aa0ffb8..e43d1e40f14 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "Scoirfidh {name} de bheith ag leanúint leat. An bhfuil tú cinnte gur mian leat leanúint ar aghaidh?", "confirmations.remove_from_followers.title": "Bain an leantóir?", "confirmations.revoke_collection_inclusion.confirm": "Bain mé", - "confirmations.revoke_collection_inclusion.message": "Is gníomh buan é seo, agus ní bheidh an coimeádaí in ann tú a chur leis an mbailiúchán arís níos déanaí.", + "confirmations.revoke_collection_inclusion.message": "Ní bheidh an coimeádaí in ann tú a chur leis an mbailiúchán seo arís ar feadh 24 uair an chloig. Chun cosc ​​a chur orthu tú a chur le bailiúcháin go buan, is féidir leat iad a bhlocáil.", "confirmations.revoke_collection_inclusion.title": "Bain tú féin den bhailiúchán seo?", "confirmations.revoke_quote.confirm": "Bain postáil", "confirmations.revoke_quote.message": "Ní féidir an gníomh seo a chealú.", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index c1cfd0a2cf4..85527bb71b8 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -2,6 +2,7 @@ "about.blocks": "Frithealaichean fo mhaorsainneachd", "about.contact": "Fios thugainn:", "about.default_locale": "Bun-roghainn", + "about.disclaimer": "’S e bathar-bog saor le bun-tùs fosgailte a th’ ann am Mastodon agus ’na chomharra-mhalairt aig Mastodon GmbH.", "about.domain_blocks.no_reason_available": "Chan eil an t-adhbhar ga thoirt seachad", "about.domain_blocks.preamble": "San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus eadar-ghìomh a ghabhail leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.", "about.domain_blocks.silenced.explanation": "San fharsaingeachd, chan fhaic thu pròifilean agus susbaint an fhrithealaiche seo ach ma nì thu lorg no ma tha thu ga leantainn.", @@ -85,6 +86,7 @@ "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_collection": "Cuir ri cruinneachadh…", "account.menu.add_to_list": "Cuir ri liosta…", "account.menu.block": "Bac an cunntas", "account.menu.block_domain": "Bac {domain}", @@ -326,11 +328,15 @@ "annual_report.summary.share_on_mastodon": "Co-roinn air Mastodon", "attachments_list.unprocessed": "(gun phròiseasadh)", "audio.hide": "Falaich an fhuaim", + "block_modal.no_collections": "Chan urrainn do gin agaibh càch a chèile a chur ri cruinneachadh. Thèid ur toirt air falbh o chruinneachaidhean an neach eile a tha ann mu thràth nan robh sibh annta.", "block_modal.remote_users_caveat": "Iarraidh sinn air an fhrithealaiche {domain} gun gèill iad ri do cho-dhùnadh. Gidheadh, chan eil barantas gun gèill iad on a làimhsicheas cuid a fhrithealaichean bacaidhean air dòigh eadar-dhealaichte. Dh’fhaoidte gum faic daoine gun chlàradh a-steach na postaichean poblach agad fhathast.", "block_modal.show_less": "Seall nas lugha dheth", "block_modal.show_more": "Seall barrachd dheth", + "block_modal.they_cant_mention": "Chan urrainn do gin agaibh iomradh no luaidh a thoirt air càch a chèile no a leantainn càch a chèile.", + "block_modal.they_cant_see_posts": "Chan fhaic iad an t-susbaint agad ’s chan fhaic thu an t-susbaint aca-san.", "block_modal.they_will_know": "Chì iad gun deach am bacadh.", "block_modal.title": "A bheil thu airson an cleachdaiche a bhacadh?", + "block_modal.you_wont_see_mentions": "Chan fhaic thu na postaichean o chàch a bheir iomradh orra.", "boost_modal.combo": "Brùth air {combo} nam b’ fheàrr leat leum a ghearradh thar seo an ath-thuras", "boost_modal.reblog": "A bheil thu airson am post a bhrosnachadh?", "boost_modal.undo_reblog": "A bheil thu airson sgur de bhrosnachadh a’ phuist?", @@ -360,9 +366,12 @@ "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:", + "collection.share_template_own": "Thoir sùil air a’ chruinneachadh ùr agam:", "collections.account_count": "{count, plural, one {# chunntas} two {# chunntas} few {# cunntasan} other {# cunntas}}", "collections.accounts.empty_editor_title": "Chan eil neach sam bith sa chruinneachadh seo fhathast", "collections.accounts.empty_title": "Tha an an cruinneachadh seo falamh", + "collections.add_to_collection": "Cuir {name} ri cruinneachaidhean", "collections.block_collection_owner": "Bac an cunntas", "collections.by_account": "le {account_handle}", "collections.collection_description": "Tuairisgeul", @@ -385,6 +394,7 @@ "collections.detail.loading": "A’ luchdadh a’ chruinneachaidh…", "collections.detail.revoke_inclusion": "Thoir air falbh mi", "collections.detail.sensitive_content": "Susbaint fhrionasach", + "collections.detail.sensitive_note": "Dh’fhaoidte nach eil an tuairisgeul ’s na cunntasan iomchaidh dhan a h-uile neach-ammhairc.", "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", @@ -413,6 +423,11 @@ "collections.search_accounts_max_reached": "Chuir thu na tha ceadaichte de chunntasan ris", "collections.sensitive": "Frionasach", "collections.share_short": "Co-roinn", + "collections.sort_alphabetical": "A-rèir na h-aibidil", + "collections.sort_by": "Seòrsaich a-rèir:", + "collections.sort_date_added": "Cuin a chaidh a chur ris", + "collections.sort_last_active": "Gnìomhach an turas mu dheireadh", + "collections.sort_most_followers": "An luchd-leantainn as motha", "collections.suggestions.can_not_add": "Cha ghabh a chur ris", "collections.suggestions.can_not_add_desc": "Chuir na cunntasan seo romhpa nach nochd iad ann an àrainneachdan rùrachaidh no tha iad air frithealaiche nach cuir taic ri cruinneachaidhean.", "collections.suggestions.must_follow": "Feumaidh tu leantainn an toiseach", @@ -542,7 +557,6 @@ "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.", @@ -565,6 +579,11 @@ "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", + "custom_homepage.about": "Mu dhèidhinn", + "custom_homepage.about_this_server": "Mun fhrithealaiche seo", + "custom_homepage.administered_by": "Rianachd le", + "custom_homepage.contact": "Fios thugainn:", + "custom_homepage.latest_activity": "A’ ghnìomhachd mu dheireadh", "directory.federated": "On cho-shaoghal aithnichte", "directory.local": "O {domain} a-mhàin", "directory.new_arrivals": "Feadhainn ùra", @@ -621,7 +640,10 @@ "empty_column.account_unavailable": "Chan eil a’ phròifil ri làimh", "empty_column.blocks": "Cha do bhac thu cleachdaiche sam bith fhathast.", "empty_column.bookmarked_statuses": "Chan eil comharra-lìn ri post agad fhathast. Nuair a nì thu comharra-lìn de dh’fhear, nochdaidh e an-seo.", + "empty_column.collections": "Cha do chruthaich {acct} cruinneachadh sam bith fhathast.", "empty_column.collections.featured_in": "Cha deach do chur ri cruinneachadh sam bith fhathast.", + "empty_column.collections.featured_in_undiscoverable": "Mus dèid do chur ri cruinneachadh sam bith, feumaidh tu cead a thoirt gun dèid do bhrosnachadh ann an àrainneachdan rùrachaidh o Roghainnean > Prìobhaideachd ’s ruigse", + "empty_column.collections_self": "Cha do chruthaich thu cruinneachadh sam bith fhathast.", "empty_column.community": "Tha an loidhne-ama ionadail falamh. Sgrìobh rudeigin gu poblach airson toiseach-tòiseachaidh a dhèanamh!", "empty_column.direct": "Chan eil iomradh prìobhaideach agad fhathast. Nuair a chuireas no a gheibh thu tè, nochdaidh i an-seo.", "empty_column.disabled_feed": "Chaidh an loidhne-ama seo a chur à comas le rianairean an fhrithealaiche agad.", @@ -753,6 +775,7 @@ "home.pending_critical_update.link": "Faic na h-ùrachaidhean", "home.pending_critical_update.title": "Tha ùrachadh tèarainteachd èiginneach ri fhaighinn!", "home.show_announcements": "Seall na brathan-fios", + "ignore_notifications_modal.bots_title": "A bheil thu airson brathan o bhotaichean a leigeil seachad?", "ignore_notifications_modal.disclaimer": "Chan urrainn do Mhastodon innse do cheachdaichean gun do leig thu seachad na brathan uapa. Cha bhac leigeil seachad nam brathan gun dèid na teachdaireachdan fhèin a chur.", "ignore_notifications_modal.filter_instead": "Criathraich ’na àite", "ignore_notifications_modal.filter_to_act_users": "’S urrainn dhut gabhail ri cleachdaichean, an diùltadh no gearan a dhèanamh mun dèidhinn fhathast", @@ -767,6 +790,7 @@ "info_button.label": "Cobhair", "info_button.what_is_alt_text": "

Dè a th’ ann an roghainn teacsa?

Bheir roghainn teacsa tuairisgeulan dhealbhan dhan fheadhainn air a bheil cion lèirsinne, aig a bheil ceangal air leud-banna cumhang no a tha a’ sireadh barrachd co-theacsa.

’S urrainn dhut piseach a thoirt air an t-so-ruigsinneachd is an tuigse dhan a h-uile duine ma sgrìobhas tu roghainn teacsa a tha soilleir, goirid is cuspaireach.

", "interaction_modal.action": "Mus eadar-ghabh thu leis a’ phost le {name}, feumaidh tu clàradh a-steach dhan chunntas agad air ge b’ e dè am frithealaiche Mastodon a chleachdas tu.", + "interaction_modal.action_follow": "Mus lean thu {name}, feumaidh tu clàradh a-steach dhan chunntas agad air ge b’ e dè am frithealaiche Mastodon a chleachdas tu.", "interaction_modal.go": "Siuthad", "interaction_modal.no_account_yet": "Nach eil cunntas agad fhathast?", "interaction_modal.on_another_server": "Air frithealaiche eile", @@ -792,6 +816,12 @@ "keyboard_shortcuts.heading": "Ath-ghoiridean a’ mheur-chlàir", "keyboard_shortcuts.home": "Fosgail loidhne-ama na dachaigh", "keyboard_shortcuts.hotkey": "Grad-iuchair", + "keyboard_shortcuts.keys.alt": "Alt", + "keyboard_shortcuts.keys.backspace": "Backspace", + "keyboard_shortcuts.keys.enter": "Enter", + "keyboard_shortcuts.keys.esc": "Esc", + "keyboard_shortcuts.keys.page_down": "Page Down", + "keyboard_shortcuts.keys.page_up": "Page Up", "keyboard_shortcuts.legend": "Seall an clàr-mìneachaidh seo", "keyboard_shortcuts.load_more": "Cuir am fòcas air a’ phutan “Luchdaich barrachd dheth”", "keyboard_shortcuts.local": "Fosgail an loidhne-ama ionadail", @@ -812,6 +842,7 @@ "keyboard_shortcuts.toggle_sensitivity": "Seall/Falaich na meadhanan", "keyboard_shortcuts.toot": "Tòisich air post ùr", "keyboard_shortcuts.top": "Gluais gu bàrr na liosta", + "keyboard_shortcuts.translate": "Eadar-theangaich post", "keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg", "keyboard_shortcuts.up": "Gluais suas air an liosta", "learn_more_link.got_it": "Tha mi agaibh", @@ -822,6 +853,7 @@ "lightbox.zoom_in": "Sùm dhan fhìor-mheud", "lightbox.zoom_out": "Sùm fèin-obrachail", "limited_account_hint.action": "Seall a’ phròifil co-dhiù", + "limited_account_hint.title": "Chaidh a’ phròifil no am frithealaiche seo fhalach le maoir {domain}.", "link_preview.author": "Le {name}", "link_preview.more_from_author": "Barrachd le {name}", "link_preview.shares": "{count, plural, one {{counter} phost} two {{counter} phost} few {{counter} postaichean} other {{counter} post}}", @@ -883,6 +915,7 @@ "navigation_bar.live_feed_local": "An saoghal beò (ionadail)", "navigation_bar.live_feed_public": "An saoghal beò (poblach)", "navigation_bar.logout": "Clàraich a-mach", + "navigation_bar.main": "Prìomh-sheòladaireachd", "navigation_bar.moderation": "Maorsainneachd", "navigation_bar.more": "Barrachd", "navigation_bar.mutes": "Cleachdaichean mùchte", @@ -968,6 +1001,7 @@ "notifications.column_settings.admin.report": "Gearanan ùra:", "notifications.column_settings.admin.sign_up": "Clàraidhean ùra:", "notifications.column_settings.alert": "Brathan deasga", + "notifications.column_settings.collections": "Cruinneachaidhean:", "notifications.column_settings.favourite": "Annsachdan:", "notifications.column_settings.filter_bar.advanced": "Seall a h-uile roinn-seòrsa", "notifications.column_settings.filter_bar.category": "Bàr-criathraidh luath", @@ -987,6 +1021,7 @@ "notifications.column_settings.update": "Deasachaidhean:", "notifications.filter.all": "Na h-uile", "notifications.filter.boosts": "Brosnachaidhean", + "notifications.filter.collections": "Cruinneachaidhean", "notifications.filter.favourites": "Annsachdan", "notifications.filter.follows": "A’ leantainn", "notifications.filter.mentions": "Iomraidhean", @@ -1003,6 +1038,8 @@ "notifications.policy.drop": "Leig seachad", "notifications.policy.drop_hint": "Cuir a-mach à sealladh gu buan", "notifications.policy.filter": "Criathraich", + "notifications.policy.filter_bots_hint": "Cunntasan ris a bheil comharra gu bheil iad fèin-obrachail", + "notifications.policy.filter_bots_title": "Botaichean", "notifications.policy.filter_hint": "Cuir gu bogsa a-steach nam brathan criathraichte", "notifications.policy.filter_limited_accounts_hint": "Cuingichte le maoir an fhrithealaiche", "notifications.policy.filter_limited_accounts_title": "Cunntasan fo mhaorsainneachd", @@ -1160,6 +1197,7 @@ "search_popout.user": "cleachdaiche", "search_results.accounts": "Pròifilean", "search_results.all": "Na h-uile", + "search_results.collections": "Cruinneachaidhean", "search_results.hashtags": "Tagaichean hais", "search_results.no_results": "Gun toradh.", "search_results.no_search_yet": "Feuch an lorg thu postaichean, pròifilean no tagaichean hais.", @@ -1280,6 +1318,7 @@ "tabs_bar.menu": "Clàr-taice", "tabs_bar.notifications": "Brathan", "tabs_bar.publish": "Post ùr", + "tabs_bar.quick_links": "Grad-cheanglaichean", "tabs_bar.search": "Lorg", "tag.remove": "Thoir air falbh", "terms_of_service.effective_as_of": "Èifeachdach on {date}", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 7982e694ca7..4ab0d6a2937 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} vai deixar de seguirte. É isto o que queres?", "confirmations.remove_from_followers.title": "Quitar seguidora?", "confirmations.revoke_collection_inclusion.confirm": "Quítame", - "confirmations.revoke_collection_inclusion.message": "A acción é definitiva, a creadora da colección non poderá volver a engadirte máis adiante.", + "confirmations.revoke_collection_inclusion.message": "Non vai poder engadirte a esta colección durante 24 horas. Para evitar de xeito permanente que te volva a engadir podes bloquear a conta que a creou.", "confirmations.revoke_collection_inclusion.title": "Queres que non te inclúan nesta colección?", "confirmations.revoke_quote.confirm": "Eliminar publicación", "confirmations.revoke_quote.message": "Esta acción non se pode desfacer.", @@ -649,6 +649,7 @@ "empty_column.collections": "{acct} aínda non creou ningunha colección.", "empty_column.collections.featured_in": "Non te engadiron a ningunha colección.", "empty_column.collections.featured_in_undiscoverable": "Para que outras persoas poidan engadirte ás súas coleccións ter que conceder permiso para descubrimento da conta en Preferencias > Privacidade e alcance", + "empty_column.collections_self": "Aínda non creaches ningunha colección.", "empty_column.community": "A cronoloxía local está baleira. Escribe algo de xeito público para espallalo!", "empty_column.direct": "Aínda non tes mencións privadas. Cando envíes ou recibas unha, aparecerá aquí.", "empty_column.disabled_feed": "A administración do teu servidor desactivou esta canle.", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index e26b6e5f46e..821fed51172 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} יוסר/תוסר ממעקב אחריך. האם להמשיך?", "confirmations.remove_from_followers.title": "להסיר עוקב/עוקבת?", "confirmations.revoke_collection_inclusion.confirm": "הסירוני", - "confirmations.revoke_collection_inclusion.message": "פעולה זו היא סופית, והאוצרים לא יוכלו להוסיף אותך יותר לאוסף בעתיד.", + "confirmations.revoke_collection_inclusion.message": "אוצרי האוסף לא יוכלו להוסיפך חזרה לאוסף זה למשך 24 שעות. כדי למנוע מהם להוסיפך לאוספים באופן קבוע, ניתן לחסום אותם.", "confirmations.revoke_collection_inclusion.title": "להסירך מאוסף זה?", "confirmations.revoke_quote.confirm": "הסרת הודעה", "confirmations.revoke_quote.message": "פעולה זו אינה הפיכה.", @@ -649,6 +649,7 @@ "empty_column.collections": "{acct} עוד לא יצרו אוספים.", "empty_column.collections.featured_in": "עוד לא הוסיפו אותך לאף אוסף.", "empty_column.collections.featured_in_undiscoverable": "כדי שאחרים יוכלו להוסיפך לאוספים, עליך לאפשר להופיע ב\"תגליות\" תחת העדפות > פרטיות ומידת חשיפה", + "empty_column.collections_self": "עוד לא יצרת אוספים.", "empty_column.community": "פיד השרת המקומי ריק. יש לפרסם משהו כדי שדברים יתרחילו להתגלגל!", "empty_column.direct": "אין לך שום הודעות פרטיות עדיין. כשתשלחו או תקבלו אחת, היא תופיע כאן.", "empty_column.disabled_feed": "פיד זה נחסם לשימוש על ידי מנהלי השרת שלך.", @@ -689,12 +690,12 @@ "filter_modal.added.context_mismatch_explanation": "קטגוריית הסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.", "filter_modal.added.context_mismatch_title": "אין התאמה להקשר!", "filter_modal.added.expired_explanation": "פג תוקפה של קטגוריית הסינון הזו, יש צורך לשנות את תאריך התפוגה כדי שהסינון יוחל.", - "filter_modal.added.expired_title": "פג תוקף המסנן!", + "filter_modal.added.expired_title": "פג תוקף הסנן!", "filter_modal.added.review_and_configure": "לסקירה והתאמה מתקדמת של קטגוריית הסינון הזו, לכו ל{settings_link}.", "filter_modal.added.review_and_configure_title": "אפשרויות סינון", "filter_modal.added.settings_link": "דף הגדרות", "filter_modal.added.short_explanation": "ההודעה הזו הוספה לקטגוריית הסינון הזו: {title}.", - "filter_modal.added.title": "המסנן הוסף!", + "filter_modal.added.title": "הסנן הוסף!", "filter_modal.select_filter.context_mismatch": "לא חל בהקשר זה", "filter_modal.select_filter.expired": "פג התוקף", "filter_modal.select_filter.prompt_new": "קטגוריה חדשה {name}", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 5bed9715ec9..96e798dba7c 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} követ téged. Biztos, hogy folytatod?", "confirmations.remove_from_followers.title": "Követő eltávolítása?", "confirmations.revoke_collection_inclusion.confirm": "Saját magam eltávolítása", - "confirmations.revoke_collection_inclusion.message": "Ez a művelet végleges, és a kurátor nem fog tudni újra hozzáadni ehhez a gyűjteményhez.", + "confirmations.revoke_collection_inclusion.message": "A kurátor 24 óráig nem fog tudni hozzáadni ehhez a gyűjteményhez. Hogy véglegesen megakadályozd, hogy gyűjteményekhez adjon, letilthatod.", "confirmations.revoke_collection_inclusion.title": "Eltávolítod magadat ebből a gyűjteményből?", "confirmations.revoke_quote.confirm": "Bejegyzés eltávolítása", "confirmations.revoke_quote.message": "Ez a művelet nem vonható vissza.", @@ -649,6 +649,7 @@ "empty_column.collections": "{acct} még nem hozott létre gyűjteményt.", "empty_column.collections.featured_in": "Még nem adtak hozzá egyetlen gyűjteményhez sem.", "empty_column.collections.featured_in_undiscoverable": "Hogy mások hozzáadhassanak gyűjteményekhez, engedélyezned kell a kiemelést a felfedezési élményekben a Beállítások > Adatvédelem és elérés alatt", + "empty_column.collections_self": "Még nem hoztál létre gyűjteményt.", "empty_column.community": "A helyi idővonal üres. Tégy közzé valamit nyilvánosan, hogy elindítsd az eseményeket!", "empty_column.direct": "Még nincs egy személyes említésed sem. Küldéskor vagy fogadáskor itt fognak megjelenni.", "empty_column.disabled_feed": "A kiszolgálód rendszergazdái letiltották ezt a hírfolyamot.", @@ -780,6 +781,7 @@ "home.pending_critical_update.link": "Frissítések megtekintése", "home.pending_critical_update.title": "Kritikus biztonsági frissítés érhető el!", "home.show_announcements": "Közlemények megjelenítése", + "ignore_notifications_modal.bots_title": "Botok értesítéseinek figyelmen kívül hagyása?", "ignore_notifications_modal.disclaimer": "A Mastodon nem tudja értesíteni azokat a felhasználókat, akiknek figyelmen kívül hagytad az értesítéseit. Az értesítések figyelmen kívül hagyása nem állítja meg az üzenetek elküldését.", "ignore_notifications_modal.filter_instead": "Inkább szűrés", "ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudod fogadni, el tudod utasítani vagy tudod jelenteni a felhasználókat", @@ -1042,6 +1044,8 @@ "notifications.policy.drop": "Figyelmen kívül hagyás", "notifications.policy.drop_hint": "Küldés a semmibe, többé ne jelenjen meg", "notifications.policy.filter": "Szűrő", + "notifications.policy.filter_bots_hint": "Automatizáltnak jelölt fiókok", + "notifications.policy.filter_bots_title": "Botok", "notifications.policy.filter_hint": "Küldés a szűrt értesítések közé", "notifications.policy.filter_limited_accounts_hint": "A szerver moderátorai által korlátozott", "notifications.policy.filter_limited_accounts_title": "Moderált fiókok", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index a5fbd1b8457..4f73d09f4ac 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -561,7 +561,6 @@ "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.", "confirmations.revoke_collection_inclusion.title": "Á að fjarlægja þig úr þessu safni?", "confirmations.revoke_quote.confirm": "Fjarlægja færslu", "confirmations.revoke_quote.message": "Þessa aðgerð er ekki hægt að afturkalla.", @@ -649,6 +648,7 @@ "empty_column.collections": "{acct} hefur enn ekki útbúið nein söfn.", "empty_column.collections.featured_in": "Þér hefur enn ekki verið bætt við nein söfn.", "empty_column.collections.featured_in_undiscoverable": "Til þess að fólk geti bætt þér í söfn þá þarftu að leyfa að þú komir upp í leitum, en það er gert í Kjörstillingar > Gagnaleynd og útbreiðsla", + "empty_column.collections_self": "Þú hefur enn ekki útbúið 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 bd42e96cb33..24ce062a731 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} smetterà di seguirti. Si è sicuri di voler procedere?", "confirmations.remove_from_followers.title": "Rimuovere il follower?", "confirmations.revoke_collection_inclusion.confirm": "Rimuovimi", - "confirmations.revoke_collection_inclusion.message": "Questa azione è permanente e l'utente responsabile della collezione non sarà in grado di aggiungerti nuovamente ad essa in seguito.", + "confirmations.revoke_collection_inclusion.message": "L'account che gestisce la collezione non potrà aggiungerti nuovamente per 24 ore. Per impedirgli definitivamente di aggiungerti alle collezioni, puoi bloccarlo.", "confirmations.revoke_collection_inclusion.title": "Rimuovere te stesso/a da questa collezione?", "confirmations.revoke_quote.confirm": "Elimina il post", "confirmations.revoke_quote.message": "Questa azione non può essere annullata.", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 559ef06f478..498e1f0f373 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -218,14 +218,15 @@ "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.hint.title": "서로 다르게 표시됨", "account_edit.profile_tab.show_featured.description": "'추천'은 다른 계정을 소개할 수 있는 선택적인 탭입니다.", - "account_edit.profile_tab.show_featured.title": "'추천' 탭 표시", + "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.title": "'미디어' 탭 보이기", "account_edit.profile_tab.show_media_replies.description": "활성화 하면 미디어 탭은 내 게시물과 다른 사람에게 한 답글을 모두 보여줍니다.", "account_edit.profile_tab.show_media_replies.title": "'미디어' 탭에 답글 포함", - "account_edit.profile_tab.show_relations.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": "저장", @@ -250,6 +251,7 @@ "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": "제안:", @@ -404,9 +406,9 @@ "collections.hints.accounts_counter": "계정 {count}/{max}개", "collections.last_updated_at": "마지막 업데이트: {date}", "collections.list.collections_with_count": "{count, plural, other {컬렉션 #개}}", - "collections.list.created_by_author": "{name} 님이 생성함", - "collections.list.created_by_you": "내가 생성함", - "collections.list.featuring_you": "나를 추천", + "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": "열람 주의문구 뒤에 이 컬렉션의 설명과 계정을 숨깁니다. 컬렉션의 이름은 항상 보여집니다.", @@ -431,7 +433,9 @@ "collections.sort_last_active": "최근 활동", "collections.sort_most_followers": "팔로워 많은순", "collections.suggestions.can_not_add": "추가할 수 없음", + "collections.suggestions.can_not_add_desc": "이 계정들은 디스커버리에 참여하지 않았거나 컬렉션을 지원하지 않는 서버에 있습니다.", "collections.suggestions.must_follow": "먼저 팔로우해야합니다", + "collections.suggestions.must_follow_desc": "이 계정들은 팔로우 요청을 리뷰합니다. 팔로워들은 컬렉션에 이들을 넣을 수 있습니다.", "collections.topic_hint": "이 컬렉션의 주제가 무엇인지 다른 사용자들이 이해할 수 있도록 해시태그를 추가하세요.", "collections.topic_special_chars_hint": "특수문자는 저장할 때 삭제됩니다", "collections.unlisted_collections_description": "내 프로필에 나타나지 않습니다. 링크를 가진 누구나 볼 수 있습니다.", @@ -557,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} 님이 나를 팔로우하지 않게 됩니다. 계속할까요?", "confirmations.remove_from_followers.title": "팔로워를 제거할까요?", "confirmations.revoke_collection_inclusion.confirm": "나를 제거하기", - "confirmations.revoke_collection_inclusion.message": "이 작업은 영구적이며 큐레이터는 나를 앞으로 다시 추가할 수 없습니다.", + "confirmations.revoke_collection_inclusion.message": "큐레이터는 앞으로 24시간동안 나를 다시 컬렉션에 추가할 수 없습니다. 나를 추가하는 것을 영구적으로 막으려면 큐레이터를 차단할 수 있습니다.", "confirmations.revoke_collection_inclusion.title": "나를 이 컬렉션에서 제거할까요?", "confirmations.revoke_quote.confirm": "게시물 삭제", "confirmations.revoke_quote.message": "이 작업은 되돌릴 수 없습니다.", @@ -607,6 +611,7 @@ "dropdown.empty": "옵션 선택", "email_subscriptions.email": "이메일", "email_subscriptions.form.action": "구독", + "email_subscriptions.form.bottom": "마스토돈 계정을 만들지 않고 게시물을 수신하세요. 언제든지 구독을 해지할 수 있습니다. 더 알아보려면 개인정보처리방침을 참고하세요.", "email_subscriptions.submitted.title": "한 단계 더", "email_subscriptions.validation.email.blocked": "차단된 이메일 공급자", "email_subscriptions.validation.email.invalid": "이메일 주소가 올바르지 않습니다", @@ -631,7 +636,7 @@ "empty_column.account_featured_self.no_collections_button": "컬렉션 생성", "empty_column.account_featured_self.no_collections_hide_tab": "대신 탭 숨기기", "empty_column.account_featured_self.showcase_accounts": "좋아하는 계정을 남들에게 소개하세요", - "empty_column.account_featured_self.showcase_accounts_desc": "컬렉션은 다른 사람들이 페디버스에서 더 많은 것을 발견할 수 있도록 선별된 계정 목록입니다.", + "empty_column.account_featured_self.showcase_accounts_desc": "컬렉션은 남들이 페디버스에서 더 많은 것을 발견할 수 있도록 선별한 계정 목록입니다.", "empty_column.account_featured_unknown.other": "이 계정은 아직 아무 것도 추천하지 않았습니다.", "empty_column.account_hides_collections": "이 사용자는 이 정보를 사용할 수 없도록 설정했습니다", "empty_column.account_suspended": "계정 정지됨", @@ -642,6 +647,7 @@ "empty_column.collections": "{acct} 님은 아직 컬렉션을 생성하지 않았습니다.", "empty_column.collections.featured_in": "아직 어떤 컬렉션에도 추가되지 않았습니다.", "empty_column.collections.featured_in_undiscoverable": "사람들이 나를 컬렉션에 추가하려면 그 전에 설정 > 개인정보와 도달에서 나를 발견하기 기능에서 추천하도록 허용해야 합니다", + "empty_column.collections_self": "아직 컬렉션을 만들지 않았습니다.", "empty_column.community": "로컬 타임라인에 아무것도 없습니다. 아무거나 적어 보세요!", "empty_column.direct": "개인 멘션이 없습니다. 보내거나 받으면 여기에 표시됩니다.", "empty_column.disabled_feed": "이 피드는 서버 관리자에 의해 비활성화되었습니다.", @@ -720,8 +726,9 @@ "follow_suggestions.view_all": "모두 보기", "follow_suggestions.who_to_follow": "팔로우할 만한 사람", "followed_tags": "팔로우 중인 해시태그", + "followers.hide_other_followers": "이 사용자는 다른 팔로워 목록을 보여주지 않도록 하였습니다", "followers.title": "{name} 님을 팔로우합니다", - "following.hide_other_following": "이 사용자는 팔로우 중인 다른 사용자 목록을 보여주지 않기로 했습니다", + "following.hide_other_following": "이 사용자는 나머지 팔로우 목록을 보여주지 않도록 하였습니다", "following.title": "{name} 님이 팔로우", "footer.about": "정보", "footer.about_mastodon": "마스토돈 정보", @@ -772,6 +779,7 @@ "home.pending_critical_update.link": "업데이트 보기", "home.pending_critical_update.title": "긴급 보안 업데이트가 있습니다!", "home.show_announcements": "공지사항 보기", + "ignore_notifications_modal.bots_title": "봇 계정의 알림을 무시할까요?", "ignore_notifications_modal.disclaimer": "사용자들은 그들의 알림이 무시되었다는 사실을 알 수 없습니다. 알림을 무시하더라도 해당 사용자가 보내는 메세지는 전송됩니다.", "ignore_notifications_modal.filter_instead": "대신 필터로 거르기", "ignore_notifications_modal.filter_to_act_users": "여전히 사용자를 수락, 거절, 신고할 수 있습니다", @@ -838,6 +846,7 @@ "keyboard_shortcuts.toggle_sensitivity": "미디어 보이기/숨기기", "keyboard_shortcuts.toot": "새 게시물 작성", "keyboard_shortcuts.top": "목록의 최상단으로 이동", + "keyboard_shortcuts.translate": "게시물 번역", "keyboard_shortcuts.unfocus": "작성창에서 포커스 해제", "keyboard_shortcuts.up": "리스트에서 위로 이동", "learn_more_link.got_it": "확인", @@ -855,7 +864,7 @@ "lists.add_member": "추가", "lists.add_to_list": "리스트에 추가", "lists.add_to_lists": "리스트에 {name} 추가", - "lists.create": "생성", + "lists.create": "만들기", "lists.create_a_list_to_organize": "새 리스트를 만들어 홈 피드를 정리하세요", "lists.create_list": "리스트 만들기", "lists.delete": "리스트 삭제", @@ -1033,6 +1042,8 @@ "notifications.policy.drop": "무시", "notifications.policy.drop_hint": "공허로 보내고, 다시는 보지 않습니다", "notifications.policy.filter": "필터", + "notifications.policy.filter_bots_hint": "자동화된 것으로 표시된 계정", + "notifications.policy.filter_bots_title": "봇", "notifications.policy.filter_hint": "걸러진 알림 목록으로 보내기", "notifications.policy.filter_limited_accounts_hint": "서버 중재자에 의해 제한된 계정들", "notifications.policy.filter_limited_accounts_title": "중재된 계정", @@ -1210,6 +1221,7 @@ "sign_in_banner.sso_redirect": "로그인 또는 가입하기", "skip_links.hotkey": "단축키 {hotkey}", "skip_links.skip_to_content": "주 내용으로 건너뛰기", + "skip_links.skip_to_navigation": "주 내비게이션으로 이동", "status.admin_account": "@{name}에 대한 중재 화면 열기", "status.admin_domain": "{domain}에 대한 중재 화면 열기", "status.admin_status": "중재 화면에서 이 게시물 열기", @@ -1240,7 +1252,7 @@ "status.favourite": "좋아요", "status.favourites_count": "{count, plural, other {{counter}}} 마음에 들어함", "status.filter": "이 게시물을 필터", - "status.history.created": "{name} 님이 {date}에 게시함", + "status.history.created": "{name} 님이 {date}에 만듦", "status.history.edited": "{name} 님이 {date}에 수정함", "status.load_more": "더보기", "status.media.open": "클릭하여 열기", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index ca75a984bf3..fbe3a847056 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -71,6 +71,9 @@ "account.in_memoriam": "Piemiņai.", "account.join_modal.day": "Diena", "account.join_modal.me": "Tu pievienojies {server}", + "account.join_modal.me_today": "Šī ir Tava pirmā diena {server}.", + "account.join_modal.other": "{name} pievienojās {server}", + "account.join_modal.other_today": "Šī ir {name} pirmā diena {server}.", "account.joined_short": "Pievienojās", "account.languages": "Mainīt abonētās valodas", "account.link_verified_on": "Šīs saites piederība tika pārbaudīta {date}", diff --git a/app/javascript/mastodon/locales/nan-TW.json b/app/javascript/mastodon/locales/nan-TW.json index a894af522b8..78f4447c1dd 100644 --- a/app/javascript/mastodon/locales/nan-TW.json +++ b/app/javascript/mastodon/locales/nan-TW.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} ē停止跟tuè lí。Lí kám確定beh繼續?", "confirmations.remove_from_followers.title": "Kám beh suá掉跟tuè lí ê?", "confirmations.revoke_collection_inclusion.confirm": "Kā我suá掉", - "confirmations.revoke_collection_inclusion.message": "Tsit ê行動永永有效,了後建立收藏ê bē當kā lí重加kàu收藏內底。", + "confirmations.revoke_collection_inclusion.message": "建立收藏列單ê bē當佇24點鐘內底kā lí重加kàu tsit ê收藏內底。Beh永永避免in kā lí加kàu收藏,lí通封鎖in。", "confirmations.revoke_collection_inclusion.title": "敢beh kā家kī對收藏內底suá掉?", "confirmations.revoke_quote.confirm": "Thâi掉PO文", "confirmations.revoke_quote.message": "Tsit ê動作bē當復原。", @@ -649,6 +649,7 @@ "empty_column.collections": "{acct} iáu bē建立任何收藏。", "empty_column.collections.featured_in": "Lí iáu buē加添kàu任何收藏。", "empty_column.collections.featured_in_undiscoverable": "若beh予lâng kā lí加入去收藏,lí需要kàu偏愛ê設定 > 隱私kap資訊ê及至佇探索經驗允准推薦", + "empty_column.collections_self": "Lí iáu bē建立任何收藏。", "empty_column.community": "本站時間線是空ê。緊來公開PO文oh!", "empty_column.direct": "Lí iáu無任何ê私人訊息。Nā是lí送á是收著私人訊息,ē佇tsia顯示。.", "empty_column.disabled_feed": "Tsit ê feed已經hōo lí ê服侍器ê管理員停用。", @@ -780,6 +781,7 @@ "home.pending_critical_update.link": "看更新內容", "home.pending_critical_update.title": "有重要ê安全更新!", "home.show_announcements": "顯示公告", + "ignore_notifications_modal.bots_title": "Kám beh忽略機器lâng送ê通知?", "ignore_notifications_modal.disclaimer": "Lí所忽略in ê通知ê用者,Mastodonbē當kā lí通知。忽略通知bē當阻擋訊息ê寄送。", "ignore_notifications_modal.filter_instead": "改做過濾", "ignore_notifications_modal.filter_to_act_users": "Lí猶原ē當接受、拒絕猶是檢舉用者", @@ -846,6 +848,7 @@ "keyboard_shortcuts.toggle_sensitivity": "顯示/tshàng媒體", "keyboard_shortcuts.toot": "PO新PO文", "keyboard_shortcuts.top": "Súa kàu列單ê頭", + "keyboard_shortcuts.translate": "Kā PO文翻譯", "keyboard_shortcuts.unfocus": "離開輸入框仔/tshiau-tshuē格仔", "keyboard_shortcuts.up": "佇列單內kā suá khah面頂", "learn_more_link.got_it": "知矣", @@ -1041,6 +1044,8 @@ "notifications.policy.drop": "忽略", "notifications.policy.drop_hint": "送去虛空,bē koh看見", "notifications.policy.filter": "過濾器", + "notifications.policy.filter_bots_hint": "標做自動化ê口座", + "notifications.policy.filter_bots_title": "機器lâng", "notifications.policy.filter_hint": "送kàu受過濾ê通知ê收件kheh-á", "notifications.policy.filter_limited_accounts_hint": "Hōo服侍器ê管理員限制", "notifications.policy.filter_limited_accounts_title": "受管制ê口座", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 211991ce03c..ae326352d0f 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} zal je niet meer volgen. Weet je zeker dat je wilt doorgaan?", "confirmations.remove_from_followers.title": "Volger verwijderen?", "confirmations.revoke_collection_inclusion.confirm": "Verwijder mij", - "confirmations.revoke_collection_inclusion.message": "Deze actie is definitief en de curator kan je later niet opnieuw aan de verzameling toevoegen.", + "confirmations.revoke_collection_inclusion.message": "De komende 24 uur is het voor de maker van de verzameling niet mogelijk om je opnieuw aan de verzameling toe te voegen. Om dit definitief te voorkomen dien je de maker te blokkeren.", "confirmations.revoke_collection_inclusion.title": "Jezelf uit deze collectie verwijderen?", "confirmations.revoke_quote.confirm": "Bericht verwijderen", "confirmations.revoke_quote.message": "Deze actie kan niet ongedaan worden gemaakt.", @@ -649,6 +649,7 @@ "empty_column.collections": "{acct} heeft nog geen verzamelingen aangemaakt.", "empty_column.collections.featured_in": "Je bent aan nog geen enkele verzameling toegevoegd.", "empty_column.collections.featured_in_undiscoverable": "Om ervoor te zorgen dat mensen je aan verzamelingen kunnen toevoegen, moet je jouw account en berichten laten uitlichten door Mastodon onder Instellingen > Privacy en bereik", + "empty_column.collections_self": "Je hebt nog geen enkele verzameling aangemaakt.", "empty_column.community": "De lokale tijdlijn is nog leeg. Plaats een openbaar bericht om de spits af te bijten!", "empty_column.direct": "Je hebt nog geen privéberichten. Wanneer je er een verstuurt of ontvangt, komen deze hier te staan.", "empty_column.disabled_feed": "Deze tijdlijn is uitgeschakeld door je serverbeheerders.", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index fb3cff77c31..d4152ec19cd 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -561,7 +561,6 @@ "confirmations.remove_from_followers.message": "{name} vil ikkje fylgja deg meir. Vil du halda fram?", "confirmations.remove_from_followers.title": "Fjern fylgjar?", "confirmations.revoke_collection_inclusion.confirm": "Fjern meg", - "confirmations.revoke_collection_inclusion.message": "Denne handlinga er endeleg, og kuratoren kan ikkje leggja deg til samlinga på nytt seinare.", "confirmations.revoke_collection_inclusion.title": "Vil du fjerna deg sjølv frå denne samlinga?", "confirmations.revoke_quote.confirm": "Fjern innlegget", "confirmations.revoke_quote.message": "Du kan ikkje angra denne handlinga.", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 614e5b570c6..416760448f9 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -1,6 +1,7 @@ { "about.contact": "ਸੰਪਰਕ:", "about.default_locale": "ਮੂਲ", + "about.disclaimer": "Mastodon ਇੱਕ ਆਜ਼ਾਦ, ਖੁੱਲ੍ਹੇ ਸਰੋਤ ਵਾਲਾ ਸਾਫਟਵੇਅਰ ਹੈ ਅਤੇ Mastodon GmbH ਦਾ ਮਾਰਕਾ ਹੈ।", "about.domain_blocks.no_reason_available": "ਕਾਰਨ ਮੌਜੂਦ ਨਹੀਂ ਹੈ", "about.domain_blocks.silenced.title": "ਸੀਮਿਤ", "about.domain_blocks.suspended.title": "ਸਸਪੈਂਡ ਕੀਤਾ", @@ -35,7 +36,12 @@ "account.familiar_followers_two": "{name1} ਅਤੇ {name2} ਵਲੋਂ ਫ਼ਾਲੋ ਕੀਤਾ", "account.featured": "ਫ਼ੀਚਰ", "account.featured.accounts": "ਪਰੋਫਾਈਲ", + "account.featured.collections": "ਭੰਡਾਰ", + "account.featured.new_collection": "ਨਵਾਂ ਭੰਡਾਰ", + "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": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ", @@ -57,8 +63,11 @@ "account.hide_reblogs": "{name} ਵਲੋਂ ਬੂਸਟ ਨੂੰ ਲੁਕਾਓ", "account.join_modal.day": "ਦਿਨ", "account.joined_short": "ਜੁਆਇਨ ਕੀਤਾ", + "account.last_active": "ਪਿਛਲੀ ਸਰਗਰਮੀ", "account.media": "ਮੀਡੀਆ", "account.mention": "@{name} ਦਾ ਜ਼ਿਕਰ", + "account.menu.add_to_collection": "ਭੰਡਾਰ ਵਿੱਚ ਜੋੜੋ…", + "account.menu.add_to_list": "ਸੂਚੀ ਵਿੱਚ ਜੋੜੋ…", "account.menu.block": "ਖਾਤੇ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "account.menu.block_domain": "{domain} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "account.menu.copied": "ਖਾਤਾ ਲਿੰਕ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਨੂੰ ਕਾਪੀ ਕੀਤਾ", @@ -77,6 +86,7 @@ "account.mute_short": "ਮੌਨ ਕਰੋ", "account.muted": "ਮੌਨ ਕੀਤੀਆਂ", "account.mutual": "ਤੁਸੀਂ ਇੱਕ ਦੂਜੇ ਨੂੰ ਫ਼ਾਲੋ ਕਰਦੇ ਹੋ", + "account.name.copy": "ਹੈਂਡਲ ਨੂੰ ਕਾਪੀ ਕਰੋ", "account.no_bio": "ਕੋਈ ਵਰਣਨ ਨਹੀਂ ਦਿੱਤਾ।", "account.node_modal.edit_title": "ਨਿੱਜੀ ਨੋਟ ਨੂੰ ਸੋਧੋ", "account.node_modal.field_label": "ਨਿੱਜੀ ਨੋਟ", @@ -103,13 +113,44 @@ "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.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.display_name.add_label": "ਡਿਸਪਲੇਅ ਨਾਂ ਨੂੰ ਜੋੜੋ", + "account_edit.display_name.title": "ਦਿਖਾਇਆ ਜਾਣ ਵਾਲਾ ਨਾਂ", + "account_edit.field_actions.delete": "ਖੇਤਰ ਨੂੰ ਹਟਾਓ", + "account_edit.field_actions.edit": "ਖੇਤਰ ਨੂੰ ਸੋਧੋ", "account_edit.field_delete_modal.delete_button": "ਹਟਾਓ", "account_edit.field_edit_modal.discard_confirm": "ਖਾਰਜ ਕਰੋ", + "account_edit.field_edit_modal.value_label": "ਮੁੱਲ", + "account_edit.image_delete_modal.delete_button": "ਹਟਾਓ", + "account_edit.image_delete_modal.title": "ਚਿੱਤਰ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", + "account_edit.image_edit.add_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.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.title_add.avatar": "ਪਰੋਫ਼ਾਇਲ ਫ਼ੋਟੋ ਜੋੜੋ", + "account_edit.upload_modal.title_add.header": "ਕਵਰ ਫ਼ੋਟੋ ਜੋੜੋ", "admin.dashboard.retention.average": "ਔਸਤ", "admin.dashboard.retention.cohort_size": "ਨਵੇਂ ਵਰਤੋਂਕਾਰ", "alert.unexpected.title": "ਓਹੋ!", @@ -128,6 +169,7 @@ "annual_report.summary.highlighted_post.title": "ਸਭ ਤੋਂ ਵੱਧ ਹਰਮਨਪਿਆਰੀ ਪੋਸਟ", "annual_report.summary.most_used_app.most_used_app": "ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੀ ਐਪ", "annual_report.summary.new_posts.new_posts": "ਨਵੀਆਂ ਪੋਸਟਾਂ", + "annual_report.summary.share_on_mastodon": "Mastodon ਉੱਤੇ ਸਾਂਝਾ ਕਰੋ", "audio.hide": "ਆਡੀਓ ਨੂੰ ਲੁਕਾਓ", "block_modal.show_less": "ਘੱਟ ਦਿਖਾਓ", "block_modal.show_more": "ਵੱਧ ਦਿਖਾਓ", @@ -146,13 +188,27 @@ "carousel.slide": "{max, number} ਵਿੱਚੋਂ {current, number} ਸਲਾਈਡ", "closed_registrations_modal.find_another_server": "ਹੋਰ ਸਰਵਰ ਲੱਭੋ", "closed_registrations_modal.title": "Mastodon ਲਈ ਸਾਈਨ ਅੱਪ ਕਰੋ", + "collection.share_modal.share_link_label": "ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ", + "collection.share_modal.share_via_post": "Mastodon ਉੱਤੇ ਪੋਸਟ ਕਰੋ", + "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.revoke_inclusion": "ਮੈਨੂੰ ਹਟਾਓ", + "collections.detail.sensitive_content": "ਸੰਵੇਦਨਸ਼ੀਲ ਸਮੱਗਰੀ", + "collections.edit_details": "ਵੇਰਵਿਆਂ ਨੂੰ ਸੋਧੋ", + "collections.remove_account": "ਹਟਾਓ", + "collections.sensitive": "ਸੰਵੇਦਨਸ਼ੀਲ", + "collections.share_short": "ਸਾਂਝਾ ਕਰੋ", "collections.view_collection": "ਭੰਡਾਰ ਨੂੰ ਵੇਖੋ", "collections.visibility_public": "ਜਨਤਕ", "collections.visibility_title": "ਦਿੱਖ", @@ -245,6 +301,7 @@ "confirmations.redraft.title": "ਪੋਸਟ ਨੂੰ ਹਟਾ ਕੇ ਮੁੜ-ਡਰਾਫਟ ਕਰਨਾ ਹੈ?", "confirmations.remove_from_followers.confirm": "ਫ਼ਾਲੋਅਰ ਨੂੰ ਹਟਾਓ", "confirmations.remove_from_followers.title": "ਫ਼ਾਲੋਅਰ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", + "confirmations.revoke_collection_inclusion.confirm": "ਮੈਨੂੰ ਹਟਾਓ", "confirmations.revoke_quote.confirm": "ਪੋਸਟ ਨੂੰ ਹਟਾਓ", "confirmations.revoke_quote.message": "ਇਸ ਕਾਰਵਾਈ ਨੂੰ ਵਾਪਸ ਨਹੀਂ ਪਰਤਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।", "confirmations.revoke_quote.title": "ਪੋਸਟ ਨੂੰ ਹਟਾਉਣਾ ਹੈ?", @@ -256,13 +313,17 @@ "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": "ਕਲਿੱਪਬੋਰਡ 'ਤੇ ਕਾਪੀ ਕਰੋ", + "custom_homepage.about": "ਇਸ ਬਾਰੇ", + "custom_homepage.about_this_server": "ਇਸ ਸਰਵਰ ਬਾਰੇ", "directory.local": "ਸਿਰਫ਼ {domain} ਤੋਂ", "directory.new_arrivals": "ਨਵੇਂ ਆਉਣ ਵਾਲੇ", "directory.recently_active": "ਸੱਜਰੇ ਸਰਗਰਮ", @@ -273,6 +334,7 @@ "domain_block_modal.block_account_instead": "ਇਸ ਦੀ ਬਜਾਏ @{name} ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਓ", "domain_block_modal.title": "ਡੋਮੇਨ ਉੱਤੇ ਪਾਬੰਦੀ ਲਾਉਣੀ ਹੈ?", "dropdown.empty": "ਕੋਈ ਚੋਣ ਕਰੋ", + "email_subscriptions.email": "ਈਮੇਲ", "embed.instructions": "ਹੇਠਲੇ ਕੋਡ ਨੂੰ ਕਾਪੀ ਕਰਕੇ ਆਪਣੀ ਵੈੱਬਸਾਈਟ ਉੱਤੇ ਇਸ ਪੋਸਟ ਨੂੰ ਇੰਬੈੱਡ ਕਰੋ।", "emoji_button.activity": "ਗਤੀਵਿਧੀ", "emoji_button.clear": "ਮਿਟਾਓ", @@ -305,6 +367,8 @@ "featured_carousel.header": "{count, plural, one {ਟੰਗੀ ਹੋਈ ਪੋਸਟ} other {ਟੰਗੀਆਂ ਹੋਈਆਂ ਪੋਸਟਾਂ}}", "featured_carousel.slide": "{max, number} ਵਿੱਚੋਂ {current, number} ਪੋਸਟ", "featured_tags.more_items": "+{count}", + "featured_tags.suggestions.add": "ਜੋੜੋ", + "featured_tags.suggestions.dismiss": "ਨਹੀਂ, ਧੰਨਵਾਦ", "filter_modal.added.expired_title": "ਫਿਲਟਰ ਦੀ ਮਿਆਦ ਪੁੱਗੀ!", "filter_modal.added.review_and_configure_title": "ਫਿਲਟਰ ਸੈਟਿੰਗਾਂ", "filter_modal.added.settings_link": "ਸੈਟਿੰਗਾਂ ਸਫ਼ਾ", @@ -327,6 +391,8 @@ "follow_suggestions.view_all": "ਸਭ ਵੇਖੋ", "follow_suggestions.who_to_follow": "ਕਿਸ ਨੂੰ ਫ਼ਾਲੋ ਕਰੀਏ", "followed_tags": "ਫ਼ਾਲੋ ਕੀਤੇ ਹੈਸ਼ਟੈਗ", + "followers.title": "{name} ਨੂੰ ਫ਼ਾਲੋ ਕਰਦੇ", + "following.title": "{name} ਵਲੋਂ ਫ਼ਾਲੋ ਕੀਤਾ", "footer.about": "ਸਾਡੇ ਬਾਰੇ", "footer.about_mastodon": "Mastodon ਬਾਰੇ", "footer.about_server": "{domain} ਬਾਰੇ", @@ -451,6 +517,7 @@ "navigation_bar.automated_deletion": "ਆਪਣੇ-ਆਪ ਹਟਾਈ ਪੋਸਟ", "navigation_bar.blocks": "ਪਾਬੰਦੀ ਲਾਏ ਵਰਤੋਂਕਾਰ", "navigation_bar.bookmarks": "ਬੁੱਕਮਾਰਕ", + "navigation_bar.collections": "ਭੰਡਾਰ", "navigation_bar.direct": "ਨਿੱਜੀ ਜ਼ਿਕਰ", "navigation_bar.domain_blocks": "ਪਾਬੰਦੀ ਲਾਏ ਡੋਮੇਨ", "navigation_bar.favourites": "ਮਨਪਸੰਦ", @@ -462,6 +529,7 @@ "navigation_bar.live_feed_local": "ਲਾਈਵ ਫੀਡ (ਲੋਕਲ)", "navigation_bar.live_feed_public": "ਲਾਈਵ ਫੀਡ (ਪਬਲਿਕ)", "navigation_bar.logout": "ਲਾਗ ਆਉਟ", + "navigation_bar.main": "ਮੁੱਖ", "navigation_bar.more": "ਹੋਰ", "navigation_bar.mutes": "ਮੌਨ ਕੀਤੇ ਵਰਤੋਂਕਾਰ", "navigation_bar.preferences": "ਪਸੰਦਾਂ", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 5a9167d4675..d03bddb2070 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} vai parar de te seguir. Tem certeza de que deseja continuar?", "confirmations.remove_from_followers.title": "Remover seguidor?", "confirmations.revoke_collection_inclusion.confirm": "Remover-me", - "confirmations.revoke_collection_inclusion.message": "Esta ação é permanente e o curador não poderá lhe adicionar de volta à coleção mais tarde.", + "confirmations.revoke_collection_inclusion.message": "Este curador não poderá re-adicioná-lo a esta coleção por 24 horas. Para impedir permanentemente que adicionem você às coleções, você pode bloqueá-los.", "confirmations.revoke_collection_inclusion.title": "Remover-se desta coleção?", "confirmations.revoke_quote.confirm": "Remover publicação", "confirmations.revoke_quote.message": "Esta ação não pode ser desfeita.", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 63da90f799a..3c55564092e 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -519,7 +519,6 @@ "confirmations.remove_from_followers.message": "{name} vai parar de seguir-te. Tens a certeza que prentedes continuar?", "confirmations.remove_from_followers.title": "Remover seguidor?", "confirmations.revoke_collection_inclusion.confirm": "Remover-me", - "confirmations.revoke_collection_inclusion.message": "Esta ação é permanente, e o curador não poderá adicioná-lo novamente à coleção mais tarde.", "confirmations.revoke_collection_inclusion.title": "Remover-se desta coleção?", "confirmations.revoke_quote.confirm": "Remover publicação", "confirmations.revoke_quote.message": "Esta ação é irreversível.", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 972df5bd6b7..7b90a332253 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -499,7 +499,6 @@ "confirmations.remove_from_followers.message": "Пользователь {name} перестанет быть подписан на вас. Продолжить?", "confirmations.remove_from_followers.title": "Убрать подписчика?", "confirmations.revoke_collection_inclusion.confirm": "Исключить меня", - "confirmations.revoke_collection_inclusion.message": "Это действие необратимо, и куратор подборки не сможет добавить вас в неё заново.", "confirmations.revoke_collection_inclusion.title": "Исключить вас из подборки?", "confirmations.revoke_quote.confirm": "Убрать пост", "confirmations.revoke_quote.message": "Это действие невозможно отменить.", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index 68dda1dce32..210fdf3baff 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -556,7 +556,7 @@ "confirmations.remove_from_followers.message": "{name} do të reshtë së ndjekuri ju. Jeni i sigurt se doni të vazhdohet?", "confirmations.remove_from_followers.title": "Të hiqet ndjekësi?", "confirmations.revoke_collection_inclusion.confirm": "Hiqmëni", - "confirmations.revoke_collection_inclusion.message": "Ky veprim është i përhershëm dhe mirëmbajtësi s’do të jetë në gjendje t’ju rishtojë te koleksioni më vonë.", + "confirmations.revoke_collection_inclusion.message": "Mirëmbajtësit s’do të jenë në gjendje t’ju rishtojnë te ky koleksion për 24 orë. Për ta penguar shtimin përgjithnjë tuaj prej tyre në koleksione, mund t’i bllokoni.", "confirmations.revoke_collection_inclusion.title": "Të hiqeni nga ky koleksion?", "confirmations.revoke_quote.confirm": "Hiqe postimin", "confirmations.revoke_quote.message": "Ky veprim s’mund të zhbëhet.", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 6c2f6dea839..198a8467bfb 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} kommer att sluta följa dig. Är du säker på att du vill fortsätta?", "confirmations.remove_from_followers.title": "Ta bort följare?", "confirmations.revoke_collection_inclusion.confirm": "Ta bort mig", - "confirmations.revoke_collection_inclusion.message": "Denna åtgärd är permanent, och kuratorn kommer inte att kunna lägga till dig till samlingen senare.", + "confirmations.revoke_collection_inclusion.message": "Kuratorn kommer inte att kunna lägga till dig igen i denna samling i 24 timmar. För att hindra dem från att lägga till dig till samlingar permanent, kan du blockera dem.", "confirmations.revoke_collection_inclusion.title": "Ta bort dig själv från denna samling?", "confirmations.revoke_quote.confirm": "Ta bort inlägg", "confirmations.revoke_quote.message": "Denna åtgärd kan inte ångras.", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index 91e8ad30cbb..293899af868 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} sizi takip etmeyi bırakacaktır. Devam etmek istediğinize emin misiniz?", "confirmations.remove_from_followers.title": "Takipçiyi kaldır?", "confirmations.revoke_collection_inclusion.confirm": "Beni çıkar", - "confirmations.revoke_collection_inclusion.message": "Bu eylem kalıcıdır ve koleksiyonu derleyen kişi daha sonra sizi koleksiyona tekrar ekleyemeyecektir.", + "confirmations.revoke_collection_inclusion.message": "Küratör, 24 saat boyunca sizi bu koleksiyona tekrar ekleyemeyecek. Sizi koleksiyonlara kalıcı olarak eklemesini engellemek için onu engelleyebilirsiniz.", "confirmations.revoke_collection_inclusion.title": "Kendini bu koleksiyondan çıkar?", "confirmations.revoke_quote.confirm": "Gönderiyi kaldır", "confirmations.revoke_quote.message": "Bu işlem geri alınamaz.", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index a89219ff1fb..99a5f9b46db 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} sẽ không còn theo dõi bạn.Bạn có chắc tiếp tục?", "confirmations.remove_from_followers.title": "Xóa người theo dõi?", "confirmations.revoke_collection_inclusion.confirm": "Xóa tôi", - "confirmations.revoke_collection_inclusion.message": "Thao tác này là vĩnh viễn, người tuyển chọn sẽ không thể thêm lại bạn về sau này.", + "confirmations.revoke_collection_inclusion.message": "Người tuyển chọn sẽ không thể thêm bạn vào gói khởi đầu này trong vòng 24 giờ. Để ngăn họ thêm bạn vào gói khởi đầu vĩnh viễn, bạn có thể chặn họ.", "confirmations.revoke_collection_inclusion.title": "Xóa bạn khỏi gói khởi đầu này?", "confirmations.revoke_quote.confirm": "Gỡ tút", "confirmations.revoke_quote.message": "Hành động này không thể hoàn tác.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 8abc9cc6225..32627152235 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -561,7 +561,7 @@ "confirmations.remove_from_followers.message": "{name} 将停止关注你。你确定要继续吗?", "confirmations.remove_from_followers.title": "移除关注者?", "confirmations.revoke_collection_inclusion.confirm": "移除我", - "confirmations.revoke_collection_inclusion.message": "此操作是永久的,且此收藏列表的制作者之后将无法再将你添加到其中。", + "confirmations.revoke_collection_inclusion.message": "收藏列表的创建者在24小时内将无法再将你重新添加到此收藏列表中。要永久阻止此列表的创建者将你加入其收藏列表,你可以屏蔽此用户。", "confirmations.revoke_collection_inclusion.title": "将自己从此收藏列表中移除吗?", "confirmations.revoke_quote.confirm": "移除嘟文", "confirmations.revoke_quote.message": "此操作无法撤销。", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 89ea322d2b1..53cb89b03ac 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -394,7 +394,7 @@ "collections.description_length_hint": "100 字限制", "collections.detail.author_added_you_on_date": "{author} 於 {date} 將您加入", "collections.detail.loading": "讀取收藏名單中...", - "collections.detail.revoke_inclusion": "移除我", + "collections.detail.revoke_inclusion": "將我移除", "collections.detail.sensitive_content": "敏感內容", "collections.detail.sensitive_note": "內容說明與帳號也許不適合所有瀏覽者。", "collections.detail.share": "分享此收藏名單", @@ -560,8 +560,8 @@ "confirmations.remove_from_followers.confirm": "移除跟隨者", "confirmations.remove_from_followers.message": "{name} 將停止跟隨您。您確定要繼續嗎?", "confirmations.remove_from_followers.title": "是否移除該跟隨者?", - "confirmations.revoke_collection_inclusion.confirm": "移除我", - "confirmations.revoke_collection_inclusion.message": "此操作永久有效,且該收藏名單之擁有者無法稍候將您再次加入至此收藏名單。", + "confirmations.revoke_collection_inclusion.confirm": "將我移除", + "confirmations.revoke_collection_inclusion.message": "內容編輯者於 24 小時內無法將您重新加入至此收藏名單。如欲永久防止他們將您加入收藏名單,您可以封鎖他們。", "confirmations.revoke_collection_inclusion.title": "是否將您自此收藏名單中移除?", "confirmations.revoke_quote.confirm": "移除嘟文", "confirmations.revoke_quote.message": "此動作無法復原。", diff --git a/config/locales/be.yml b/config/locales/be.yml index f095291fdd8..e5d321d4b02 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -1831,6 +1831,7 @@ be: types: blocking: Спіс заблакіраваных bookmarks: Закладкі + custom_filters: Фільтры domain_blocking: Спіс заблакіраваных даменаў following: Падпіскі lists: Спісы diff --git a/config/locales/da.yml b/config/locales/da.yml index 4f9b450a202..fc188f06d3f 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -1745,6 +1745,7 @@ da: types: blocking: Blokeringsliste bookmarks: Bogmærker + custom_filters: Filtre domain_blocking: Domæneblokeringsliste following: Liste over fulgte lists: Lister diff --git a/config/locales/de.yml b/config/locales/de.yml index 9865293ac50..7d753d5d010 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -1728,6 +1728,7 @@ de: types: blocking: Blockierte Profile bookmarks: Lesezeichen + custom_filters: Filter domain_blocking: Blockierte Domains following: Folge ich lists: Listen diff --git a/config/locales/doorkeeper.lv.yml b/config/locales/doorkeeper.lv.yml index d8023202c3c..3b3667c373f 100644 --- a/config/locales/doorkeeper.lv.yml +++ b/config/locales/doorkeeper.lv.yml @@ -120,7 +120,7 @@ lv: title: accounts: Konti admin/accounts: Kontu pārvaldīšana - admin/all: Visas administrēšanas funkcijas + admin/all: Visas pārvaldīšanas iespējas admin/reports: Ziņojumu pārvaldīšana all: Pilna piekļuve Tavam Mastodon kontam blocks: Liegtie diff --git a/config/locales/el.yml b/config/locales/el.yml index fa09182f6f2..84df9075517 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -1745,6 +1745,7 @@ el: types: blocking: Λίστα αποκλεισμού bookmarks: Σελιδοδείκτες + custom_filters: Φίλτρα domain_blocking: Λίστα αποκλεισμένων τομέων following: Λίστα λογαριασμών που ακολουθείτε lists: Λίστες diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index 11586aac663..a713916e495 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -1745,6 +1745,7 @@ es-AR: types: blocking: Lista de bloqueados bookmarks: Marcadores + custom_filters: Filtros domain_blocking: Lista de dominios bloqueados following: Lista de seguidos lists: Listas diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 2cca9a809fb..90fd0f2cc56 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -1665,7 +1665,9 @@ es-MX: empty: Archivo CSV vacío incompatible_type: Incompatible con el tipo de importación seleccionado invalid_csv_file: 'Archivo CSV no válido. Error: %{error}' + invalid_json_file: 'Fichero JSON no válido. Error: %{error}' over_rows_processing_limit: contiene más de %{count} filas + status_not_found_warning: Algunos de tus filtros ocultan publicaciones específicas que este servidor no conoce. Estas publicaciones no se filtrarán automáticamente si el servidor las detecta más adelante. too_large: El archivo es demasiado grande failures: Fallos imported: Importado @@ -1682,6 +1684,9 @@ es-MX: bookmarks_html: one: Estás a punto de reemplazar tus marcadores por %{count} publicación proveniente de %{filename}. other: Estás a punto de reemplazar tus marcadores por hasta %{count} publicaciones provenientes de %{filename}. + custom_filters_html: + one: Estás a punto de reemplazar tus filtros por el contenido de %{filename}. Se añadirán hasta %{count} filtro a los nuevos filtros. + other: Estás a punto de reemplazar tus filtros por el contenido de %{filename}. Se añadirán hasta %{count} filtros a los nuevos filtros. domain_blocking_html: one: Estás a punto de reemplazar tu lista de dominios bloqueados con %{count} dominio de %{filename}. other: Estás a punto de reemplazar tu lista de dominios bloqueados con hasta %{count} dominios de %{filename}. @@ -1701,6 +1706,9 @@ es-MX: bookmarks_html: one: Estás a punto de agregar %{count} publicación de %{filename} a tus marcadores. other: Estás a punto de agregar %{count} publicaciones de %{filename} a tus marcadores. + custom_filters_html: + one: Estás a punto de añadir %{count} filtro de %{filename} a tus filtros. + other: Estás a punto de añadir hasta %{count} filtros de %{filename} a tus filtros. domain_blocking_html: one: Estás a punto de bloquear %{count} dominio de %{filename}. other: Estás a punto de bloquear hasta %{count} dominios de %{filename}. @@ -1737,6 +1745,7 @@ es-MX: types: blocking: Lista de bloqueados bookmarks: Marcadores + custom_filters: Filtros domain_blocking: Lista de dominios bloqueados following: Lista de seguidos lists: Listas diff --git a/config/locales/es.yml b/config/locales/es.yml index 2dba7af9a38..a4891610810 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1667,7 +1667,9 @@ es: empty: Archivo CSV vacío incompatible_type: Incompatible con el tipo de importación seleccionado invalid_csv_file: 'Archivo CSV no válido. Error: %{error}' + invalid_json_file: 'Fichero JSON no válido. Error: %{error}' over_rows_processing_limit: contiene más de %{count} filas + status_not_found_warning: Algunos de tus filtros ocultan publicaciones específicas que no son conocidas por este servidor. Estas publicaciones no se filtrarán automáticamente si más tarde son descubiertas por el servidor. too_large: El archivo es demasiado grande failures: Fallos imported: Importado @@ -1703,6 +1705,9 @@ es: bookmarks_html: one: Está a punto de añadir %{count} publicación proveniente de %{filename} a tus marcadores. other: Está a punto de añadir hasta %{count} publicaciones provenientes de %{filename} a tus marcadores. + custom_filters_html: + one: Estás a punto de añadir hasta %{count} filtro desde %{filename} a tus filtros. + other: Estás a punto de añadir hasta %{count} filtros desde %{filename} a tus filtros. domain_blocking_html: one: Estás a punto de bloquear %{count} dominio proveniente de %{filename}. other: Estás a punto de bloquear hasta %{count} dominios provenientes de %{filename}. @@ -1739,6 +1744,7 @@ es: types: blocking: Lista de bloqueados bookmarks: Marcadores + custom_filters: Filtros domain_blocking: Lista de dominios bloqueados following: Lista de seguidos lists: Listas diff --git a/config/locales/et.yml b/config/locales/et.yml index c5654dce02e..cdd55f881b4 100644 --- a/config/locales/et.yml +++ b/config/locales/et.yml @@ -505,6 +505,15 @@ et: no_lists_yet: Veel pole loetelusid last_email: Viimane e-post lead: Allpool kuvatakse kontod, kus see funktsioon on aktiveeritud ja millel on tellijaid. + show: + date: Liitumise kuupäev + disable_feature: Lülita funktsionaalsus välja + disabled: See funktsionaalsus on lülitatud välja ja e-kirju enam seda loendisse ei saadeta. + email: E-posti aadress + empty: + hint: Mitte keegi pole seda kontot veel tellinud. + no_subscribers_yet: Tellijaid veel pole + enable_feature: Lülita funktsionaalsus sisse status: Olek subscribers: Tellijad title: Meililistid @@ -662,7 +671,7 @@ et: stop: Peata edastus unavailable: Pole saadaval delivery_available: Üleandmine on saadaval - delivery_error_days: Edastustõrgete päevad + delivery_error_days: Päevad, millal tekkis edastusvigu delivery_error_hint: Kui edastus pole võimalik %{count} päeva, märgitakse automaatselt edastamatuks. destroyed_msg: Domeeni %{domain} andmed on märgitud lõplikuks kustutamiseks. empty: Domeene ei leidu. @@ -1531,7 +1540,9 @@ et: success_html: Nüüdsest hakkad saama e-kirju, kui %{name} avaldab uusi postitusi. Lisa %{sender} oma kontaktide hulka, et need postitused ei satuks rämpsposti kausta. title: Oled registreeritud unsubscribe: Lõpeta tellimus + disabled: Väljalülitatud inactive: Mitteaktiivne + no_access: Ligipääs puudub status: Olek subscribers: Tellijad emoji_styles: @@ -1646,7 +1657,8 @@ et: errors: empty: Tühi CSV-fail incompatible_type: Ei sobi kokku valitud importimistüübiga - invalid_csv_file: 'Vigane CSV-fail. Tõrge: %{error}' + invalid_csv_file: 'Vigane CSV-fail. Veateade: %{error}' + invalid_json_file: 'Vigane JSON-fail. Viga: %{error}' over_rows_processing_limit: sisaldab rohkem, kui %{count} rida too_large: Fail on liiga suur failures: Ebaõnnestumised @@ -1683,6 +1695,9 @@ et: bookmarks_html: one: Oled lisamas kuni %{count} postituse failist %{filename} oma järjehoidjatesse. other: Oled lisamas kuni %{count} postitust failist %{filename} oma järjehoidjatesse. + custom_filters_html: + one: Sa oled %{filename} failist lisamas oma filtrite hulka %{count} filtri. + other: Sa oled %{filename} failist lisamas oma filtrite hulka %{count} filtrit. domain_blocking_html: one: Oled blokeerimas kuni %{count} domeeni failist %{filename}. other: Oled blokeerimas kuni %{count} domeeni failist %{filename}. @@ -1719,6 +1734,7 @@ et: types: blocking: Blokeeringute nimekiri bookmarks: Järjehoidjad + custom_filters: Filtrid domain_blocking: Domeeniblokeeringute nimekiri following: Jälgimiste nimekiri lists: Loetelud @@ -2348,13 +2364,13 @@ et: webauthn_credentials: add: Uue turvavõtme lisamine create: - error: Turvavõtme lisamisel tekkis tõrge. Proovi palun uuesti. + error: Turvavõtme lisamisel tekkis viga või probleem. Proovi palun uuesti. success: Turvavõti edukalt lisatud. delete: Kustuta delete_confirmation: Kindel, et kustutada see turvavõti? description_html: Lubades turvavõtmega autentimise on sisenemisel tarvis ühte turvavõtmetest. destroy: - error: Turvavõtme kustutamisel tekkis tõrge. Palun proovi uuesti. + error: Turvavõtme kustutamisel tekkis viga või probleem. Palun proovi uuesti. success: Turvavõtmed edukalt kustutatud. invalid_credential: Vigane turvavõti nickname: Hüüdnimi diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 9c933c1c16e..11edd2c83c3 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -1732,6 +1732,7 @@ fi: types: blocking: Estoluettelo bookmarks: Kirjanmerkit + custom_filters: Suodattimet domain_blocking: Verkkotunnusten estoluettelo following: Seurattavien luettelo lists: Listat diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml index 14aa6424cbc..3d8a041a23c 100644 --- a/config/locales/fr-CA.yml +++ b/config/locales/fr-CA.yml @@ -1665,7 +1665,9 @@ fr-CA: empty: Fichier CSV vide incompatible_type: Incompatible avec le type d’import sélectionné invalid_csv_file: 'Fichier CSV non valide. Erreur : %{error}' + invalid_json_file: 'Fichier JSON non valide. Erreur : %{error}' over_rows_processing_limit: contient plus de %{count} lignes + status_not_found_warning: Certains de vos filtres masquent des messages spécifiques qui ne sont pas connus par ce serveur. Ces messages ne seront pas filtrés automatiquement s'ils sont découverts plus tard par le serveur. too_large: Fichier trop lourd failures: Échecs imported: Importé @@ -1677,42 +1679,48 @@ fr-CA: overwrite_long: Remplacer les enregistrements actuels par les nouveaux overwrite_preambles: blocking_html: - one: Vous allez remplacer votre liste de blocage par près de %{count} compte tiré de %{filename}. - other: Vous allez remplacer votre liste de blocage par près de %{count} comptes tirés de %{filename}. + one: Vous allez remplacer votre liste de blocage par au maximum %{count} compte issu de %{filename}. + other: Vous allez remplacer votre liste de blocage par au maximum %{count} comptes issus de %{filename}. bookmarks_html: - one: Vous allez remplacer vos signets par près de %{count} post tiré de %{filename}. - other: Vous allez remplacer vos signets par près de %{count} posts tirés de %{filename}. + one: Vous allez remplacer vos marque-pages par au maximum %{count} message issu de %{filename}. + other: Vous allez remplacer vos marque-pages par au maximum %{count} messages issus de %{filename}. + custom_filters_html: + one: Vous allez remplacer vos filtres par le contenu de %{filename}. Au maximum %{count} filtre sera ajouté aux nouveaux filtres. + other: Vous allez remplacer vos filtres par le contenu de %{filename}. Au maximum %{count} filtres seront ajoutés aux nouveaux filtres. domain_blocking_html: - one: Vous allez remplacer votre liste de blocage de domaines par près de %{count} domaine tiré de %{filename}. - other: Vous allez remplacer votre liste de blocage de domaines par près de %{count} domaines tirés de %{filename}. + one: Vous allez remplacer votre liste de domaines bloqués par au maximum %{count} domaine issu de %{filename}. + other: Vous allez remplacer votre liste de domaines bloqués par au maximum %{count} domaines issus de %{filename}. following_html: - one: Vous allez suivre jusqu’à %{count} compte depuis %{filename} et arrêter de suivre n’importe qui d’autre. - other: Vous allez suivre jusqu’à %{count} comptes depuis %{filename} et arrêter de suivre n’importe qui d’autre. + one: Vous allez suivre jusqu’à %{count} compte issu de %{filename} et arrêter de suivre n’importe qui d’autre. + other: Vous allez suivre jusqu’à %{count} comptes issus de %{filename} et arrêter de suivre n’importe qui d’autre. lists_html: - one: Vous allez remplacer vos listes par le contenu de %{filename}. Près de %{count} compte sera ajouté à de nouvelles listes. - other: Vous allez remplacer vos listes par le contenu de %{filename}. Près de %{count} comptes seront ajoutés à de nouvelles listes. + one: Vous allez remplacer vos listes par le contenu de %{filename}. Au maximum %{count} compte sera ajouté aux nouvelles listes. + other: Vous allez remplacer vos listes par le contenu de %{filename}. Au maximum %{count} comptes seront ajoutés aux nouvelles listes. muting_html: - one: Vous allez remplacer votre liste de comptes masqués par près de %{count} compte tiré de %{filename}. - other: Vous allez remplacer votre liste de comptes masqués par près de %{count} comptes tirés de %{filename}. + one: Vous allez remplacer votre liste de comptes masqués par au maximum %{count} compte issu de %{filename}. + other: Vous allez remplacer votre liste de comptes masqués par au maximum %{count} comptes issus de %{filename}. preambles: blocking_html: - one: Vous allez bloquer près de %{count} compte tiré de %{filename}. - other: Vous allez bloquer près de %{count} comptes tirés de %{filename}. + one: Vous allez bloquer jusqu'à %{count} compte issu de %{filename}. + other: Vous allez bloquer jusqu'à %{count} comptes issus de %{filename}. bookmarks_html: - one: Vous allez ajouter près de %{count} message de %{filename} à vos signets. - other: Vous allez ajouter près de %{count} messages de %{filename} à vos signets. + one: Vous allez ajouter jusqu'à %{count} message de %{filename} à vos marque-pages. + other: Vous allez ajouter jusqu'à %{count} messages de %{filename} à vos marque-pages. + custom_filters_html: + one: Vous allez ajouter jusqu'à %{count} filtre de %{filename} à vos filtres. + other: Vous allez ajouter jusqu'à %{count} filtres de %{filename} à vos filtres. domain_blocking_html: - one: Vous allez bloquer près de %{count} domaine tiré de %{filename}. - other: Vous allez bloquer près de %{count} domaines tirés de %{filename}. + one: Vous allez bloquer jusqu'à %{count} domaine issu de %{filename}. + other: Vous allez bloquer jusqu'à %{count} domaines issus de %{filename}. following_html: - one: Vous allez suivre près de %{count} compte tiré de %{filename}. - other: Vous allez suivre près de %{count} comptes tirés de %{filename}. + one: Vous allez suivre jusqu'à %{count} compte issu de %{filename}. + other: Vous allez suivre jusqu'à %{count} comptes issus de %{filename}. lists_html: - one: Vous allez ajouter près de %{count} compte depuis %{filename} à vos listes. De nouvelles listes seront créées si besoin. - other: Vous allez ajouter près de %{count} comptes depuis %{filename} à vos listes. De nouvelles listes seront créées si besoin. + one: Vous allez ajouter jusqu'à %{count} compte issu de %{filename} à vos listes. De nouvelles listes seront créées si besoin. + other: Vous allez ajouter jusqu'à %{count} comptes issus de %{filename} à vos listes. De nouvelles listes seront créées si besoin. muting_html: - one: Vous allez masquer près de %{count} compte tiré de %{filename}. - other: Vous allez masquer près de %{count} comptes tirés de %{filename}. + one: Vous allez masquer jusqu'à %{count} compte issu de %{filename}. + other: Vous allez masquer jusqu'à %{count} comptes issus de %{filename}. preface: Vous pouvez importer certaines données que vous avez exporté d’un autre serveur, comme une liste des personnes que vous suivez ou bloquez sur votre compte. recent_imports: Importations récentes states: @@ -1737,6 +1745,7 @@ fr-CA: types: blocking: Liste de comptes bloqués bookmarks: Marque-pages + custom_filters: Filtres domain_blocking: Liste des serveurs bloqués following: Liste d’utilisateur·rice·s suivi·e·s lists: Listes diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 7f5deae4d45..625da7131c1 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1658,18 +1658,20 @@ fr: other: Sélectionnez tous l'ensemble des %{count} éléments correspondant à votre recherche. today: aujourd’hui validation_errors: - one: Quelque chose ne va pas ! Veuillez vérifiez l’erreur ci-dessous + one: Quelque chose ne va pas ! Veuillez vérifier l’erreur ci-dessous other: Certaines choses ne vont pas ! Veuillez vérifier les %{count} erreurs ci-dessous imports: errors: empty: Fichier CSV vide incompatible_type: Incompatible avec le type d’import sélectionné invalid_csv_file: 'Fichier CSV non valide. Erreur : %{error}' + invalid_json_file: 'Fichier JSON non valide. Erreur : %{error}' over_rows_processing_limit: contient plus de %{count} lignes + status_not_found_warning: Certains de vos filtres masquent des messages spécifiques qui ne sont pas connus par ce serveur. Ces messages ne seront pas filtrés automatiquement s'ils sont découverts plus tard par le serveur. too_large: Le fichier est trop lourd failures: Échecs imported: Importé - mismatched_types_warning: Il semblerait que vous avez sélectionné le mauvais type pour cet import, veuillez vérifier attentivement. + mismatched_types_warning: Il semblerait que vous avez sélectionné le mauvais type pour cet import, veuillez vérifier. modes: merge: Fusionner merge_long: Garder les enregistrements existants et ajouter les nouveaux @@ -1677,43 +1679,49 @@ fr: overwrite_long: Remplacer les enregistrements actuels par les nouveaux overwrite_preambles: blocking_html: - one: Vous allez remplacer votre liste de blocage par près de %{count} compte tiré de %{filename}. - other: Vous allez remplacer votre liste de blocage par près de %{count} comptes tirés de %{filename}. + one: Vous allez remplacer votre liste de blocage par au maximum %{count} compte issu de %{filename}. + other: Vous allez remplacer votre liste de blocage par au maximum %{count} comptes issus de %{filename}. bookmarks_html: - one: Vous allez remplacer vos signets par près de %{count} post tiré de %{filename}. - other: Vous allez remplacer vos signets par près de %{count} posts tirés de %{filename}. + one: Vous allez remplacer vos marque-pages par au maximum %{count} message issu de %{filename}. + other: Vous allez remplacer vos marque-pages par au maximum %{count} messages issus de %{filename}. + custom_filters_html: + one: Vous allez remplacer vos filtres par le contenu de %{filename}. Au maximum %{count} filtre sera ajouté aux nouveaux filtres. + other: Vous allez remplacer vos filtres par le contenu de %{filename}. Au maximum %{count} filtres seront ajoutés aux nouveaux filtres. domain_blocking_html: - one: Vous allez remplacer votre liste de blocage de domaines par près de %{count} domaine tiré de %{filename}. - other: Vous allez remplacer votre liste de blocage de domaines par près de %{count} domaines tirés de %{filename}. + one: Vous allez remplacer votre liste de domaines bloqués par au maximum %{count} domaine issu de %{filename}. + other: Vous allez remplacer votre liste de domaines bloqués par au maximum %{count} domaines issus de %{filename}. following_html: - one: Vous allez suivre jusqu’à %{count} compte depuis %{filename} et arrêter de suivre n’importe qui d’autre. - other: Vous allez suivre jusqu’à %{count} comptes depuis %{filename} et arrêter de suivre n’importe qui d’autre. + one: Vous allez suivre jusqu’à %{count} compte issu de %{filename} et arrêter de suivre n’importe qui d’autre. + other: Vous allez suivre jusqu’à %{count} comptes issus de %{filename} et arrêter de suivre n’importe qui d’autre. lists_html: - one: Vous allez remplacer vos listes par le contenu de %{filename}. Près de %{count} compte sera ajouté à de nouvelles listes. - other: Vous allez remplacer vos listes par le contenu de %{filename}. Près de %{count} comptes seront ajoutés à de nouvelles listes. + one: Vous allez remplacer vos listes par le contenu de %{filename}. Au maximum %{count} compte sera ajouté aux nouvelles listes. + other: Vous allez remplacer vos listes par le contenu de %{filename}. Au maximum %{count} comptes seront ajoutés aux nouvelles listes. muting_html: - one: Vous allez remplacer votre liste de comptes masqués par près de %{count} compte tiré de %{filename}. - other: Vous allez remplacer votre liste de comptes masqués par près de %{count} comptes tirés de %{filename}. + one: Vous allez remplacer votre liste de comptes masqués par au maximum %{count} compte issu de %{filename}. + other: Vous allez remplacer votre liste de comptes masqués par au maximum %{count} comptes issus de %{filename}. preambles: blocking_html: - one: Vous allez bloquer près de %{count} compte tiré de %{filename}. - other: Vous allez bloquer près de %{count} comptes tirés de %{filename}. + one: Vous allez bloquer jusqu'à %{count} compte issu de %{filename}. + other: Vous allez bloquer jusqu'à %{count} comptes issus de %{filename}. bookmarks_html: - one: Vous allez ajouter près de %{count} message de %{filename} à vos signets. - other: Vous allez ajouter près de %{count} messages de %{filename} à vos signets. + one: Vous allez ajouter jusqu'à %{count} message de %{filename} à vos marque-pages. + other: Vous allez ajouter jusqu'à %{count} messages de %{filename} à vos marque-pages. + custom_filters_html: + one: Vous allez ajouter jusqu'à %{count} filtre de %{filename} à vos filtres. + other: Vous allez ajouter jusqu'à %{count} filtres de %{filename} à vos filtres. domain_blocking_html: - one: Vous allez bloquer près de %{count} domaine tiré de %{filename}. - other: Vous allez bloquer près de %{count} domaines tirés de %{filename}. + one: Vous allez bloquer jusqu'à %{count} domaine issu de %{filename}. + other: Vous allez bloquer jusqu'à %{count} domaines issus de %{filename}. following_html: - one: Vous allez suivre près de %{count} compte tiré de %{filename}. - other: Vous allez suivre près de %{count} comptes tirés de %{filename}. + one: Vous allez suivre jusqu'à %{count} compte issu de %{filename}. + other: Vous allez suivre jusqu'à %{count} comptes issus de %{filename}. lists_html: - one: Vous allez ajouter près de %{count} compte depuis %{filename} à vos listes. De nouvelles listes seront créées si besoin. - other: Vous allez ajouter près de %{count} comptes depuis %{filename} à vos listes. De nouvelles listes seront créées si besoin. + one: Vous allez ajouter jusqu'à %{count} compte issu de %{filename} à vos listes. De nouvelles listes seront créées si besoin. + other: Vous allez ajouter jusqu'à %{count} comptes issus de %{filename} à vos listes. De nouvelles listes seront créées si besoin. muting_html: - one: Vous allez masquer près de %{count} compte tiré de %{filename}. - other: Vous allez masquer près de %{count} comptes tirés de %{filename}. - preface: Vous pouvez importer certaines données que vous avez exporté d’un autre serveur, comme une liste des personnes que vous suivez ou bloquez sur votre compte. + one: Vous allez masquer jusqu'à %{count} compte issu de %{filename}. + other: Vous allez masquer jusqu'à %{count} comptes issus de %{filename}. + preface: Vous pouvez importer certaines données que vous avez exportées d’un autre serveur, comme une liste des personnes que vous suivez ou bloquez sur votre compte. recent_imports: Récents imports states: finished: Terminé @@ -1732,15 +1740,16 @@ fr: muting: En cours d’importation des comptes masqués type: Type d’import type_groups: - constructive: Abonnements et signets - destructive: Blocages et masquages + constructive: Abonnements et marque-pages + destructive: Comptes bloqués et masqués types: blocking: Liste de comptes bloqués bookmarks: Marque-pages + custom_filters: Filtres domain_blocking: Liste des serveurs bloqués following: Liste de comptes suivis lists: Listes - muting: Liste de comptes que vous masquez + muting: Liste de comptes masqués upload: Importer invites: delete: Désactiver diff --git a/config/locales/ga.yml b/config/locales/ga.yml index 88791e38ad4..007c10e88c9 100644 --- a/config/locales/ga.yml +++ b/config/locales/ga.yml @@ -1754,7 +1754,9 @@ ga: empty: Comhad CSV folamh incompatible_type: Neamh-chomhoiriúnach leis an gcineál iompórtála roghnaithe invalid_csv_file: 'Comhad CSV neamhbhailí. Earráid: %{error}' + invalid_json_file: 'Comhad JSON neamhbhailí. Earráid: %{error}' over_rows_processing_limit: níos mó ná %{count} sraitheanna + status_not_found_warning: Cuireann cuid de do scagairí poist shonracha i bhfolach nach bhfuil ar eolas ag an bhfreastalaí seo. Ní scagfar na poist seo go huathoibríoch má aimsíonn an freastalaí iad níos déanaí. too_large: Tá an comhad ró-mhór failures: Teipeanna imported: Iompórtáilte @@ -1777,6 +1779,12 @@ ga: one: Tá tú ar tí do leabharmharcanna a chur in ionad suas le %{count} postáil ó %{filename}. other: Tá tú ar tí do leabharmharcanna a chur in ionad suas le %{count} postáil ó %{filename}. two: Tá tú ar tí do leabharmharcanna a chur in ionad suas le %{count} postáil ó %{filename}. + custom_filters_html: + few: Tá tú ar tí do scagairí a athsholáthar le hábhar %{filename}. Cuirfear suas le %{count} scagairí leis na scagairí nua. + many: Tá tú ar tí do scagairí a athsholáthar le hábhar %{filename}. Cuirfear suas le %{count} scagairí leis na scagairí nua. + one: Tá tú ar tí do scagairí a athsholáthar le hábhar %{filename}. Cuirfear suas le %{count} scagaire leis na scagairí nua. + other: Tá tú ar tí do scagairí a athsholáthar le hábhar %{filename}. Cuirfear suas le %{count} scagairí leis na scagairí nua. + two: Tá tú ar tí do scagairí a athsholáthar le hábhar %{filename}. Cuirfear suas le %{count} scagairí leis na scagairí nua. domain_blocking_html: few: Tá tú ar tí do liosta bloc fearainn a chur in ionad suas le %{count} fearainn ó %{filename}. many: Tá tú ar tí do liosta bloc fearainn a chur in ionad suas le %{count} fearainn ó %{filename}. @@ -1814,6 +1822,12 @@ ga: one: Tá tú ar tí %{count} postáil ó %{filename} a chur le do leabharmharcanna. other: Tá tú ar tí %{count} postáil ó %{filename} a chur le do leabharmharcanna. two: Tá tú ar tí %{count} postáil ó %{filename} a chur le do leabharmharcanna. + custom_filters_html: + few: Tá tú ar tí suas le %{count} scagairí ó %{filename} a chur le do scagairí. + many: Tá tú ar tí suas le %{count} scagairí ó %{filename} a chur le do scagairí. + one: Tá tú ar tí suas le %{count} scagaire ó %{filename} a chur le do scagairí. + other: Tá tú ar tí suas le %{count} scagairí ó %{filename} a chur le do scagairí. + two: Tá tú ar tí suas le %{count} scagairí ó %{filename} a chur le do scagairí. domain_blocking_html: few: Tá tú ar tí bhac suas le %{count} bhfearainn ó %{filename}. many: Tá tú ar tí bhac suas le %{count} bhfearainn ó %{filename}. @@ -1862,6 +1876,7 @@ ga: types: blocking: Liosta blocála bookmarks: Leabharmharcanna + custom_filters: Scagairí domain_blocking: Liosta blocála fearainn following: Liosta ina dhiaidh sin lists: Liostaí diff --git a/config/locales/gd.yml b/config/locales/gd.yml index c231da24a76..a77c55885aa 100644 --- a/config/locales/gd.yml +++ b/config/locales/gd.yml @@ -353,14 +353,22 @@ gd: updated_msg: Chaidh am brath-fios ùrachadh! collections: accounts: Cunntasan + back_to_account: Till gu duilleag a’ chunntais + back_to_report: Till gu duilleag a’ ghearain + batch: + add_to_report: 'Cuir ris a’ ghearan #%{id}' + remove_from_report: Thoir air falbh on ghearan + report: Dèan gearan collection_title: Cruinneachadh le %{name} contents: Susbaint + no_collection_selected: Cha deach cruinneachadh sam bith atharrachadh o nach deach gin dhiubh a thaghadh number_of_accounts: few: "%{count} cunntasan" one: "%{count} chunntas" other: "%{count} cunntas" two: "%{count} chunntas" open: Fosgail + title: Cruinneachaidhean a’ chunntais – @%{name} view_publicly: Seall gu poblach critical_update_pending: Ùrachadh èiginneach ri dhèiligeadh custom_emojis: @@ -504,9 +512,78 @@ gd: title: Bac àrainn puist-d ùr no_email_domain_block_selected: Cha deach bacadh àrainn puist-d sam bith atharrachadh o nach deach gin dhiubh a thaghadh not_permitted: Chan eil seo ceadaichte + reset: Ath-shuidhich resolved_dns_records_hint_html: Thèid ainm na h-àrainne fhuasgladh nan àrainnean MX a leanas agus an urra riutha-san gun gabh iad ri post-d. Ma bhacas tu àrainn MX, bacaidh seo an clàradh o sheòladh puist-d sam bith a chleachdas an aon àrainn MX fiù ’s ma bhios ainm àrainne eadar-dhealaichte ’ga sealltainn. Thoir an aire nach bac thu solaraichean puist-d mòra. resolved_through_html: Chaidh fuasgladh slighe %{domain} + search: Lorg title: Bacadh àrainnean puist-d + email_subscriptions: + accounts: + account: Cunntas + empty: + hint: Chan eil fo-sgrìobhaiche aig cunntas sam bith fhathast. + no_lists_yet: Chan eil liosta ann fhathast + last_email: Am post-d mu dheireadh + lead: Thèid na cunntasan a chuir an gleus an comas agus aig a bheil fo-sgrìobhaichean a shealltainn gu h-ìosal. + show: + confirm_remove_subscriber: Chan fhaigh %{email} puist-d o %{name} tuilleadh. Cha ghabh an gnìomh seo a neo-dhèanamh. + consent: Cha do ghabh na fo-sgrìobhaichean ach ri faighinn nam post air a’ phost-d. Na cleachd an liosta seo air adhbhar sam bith eile. + date: Ceann-latha a’ chlàraidh + disable_feature: Cuir an gleus à comas + disabled: Chaidh an gleus a chur à comas ’s cha dèid puist-d a chur dhan liosta seo tuilleadh. + email: Seòladh puist-d + empty: + hint: Cha do dh’fho-sgrìobh neach sam bith dhan chunntas seo fhathast. + no_subscribers_yet: Chan eil fo-sgrìobhaiche ann fhathast + enable_feature: Cuir an gleus an comas + no_access_html: Chan eil cead aig a’ chunntas seo tuilleadh gus an gleus a chur an comas. Atharraich seo sna dreuchdan. + title: Cuairt-litrichean puist-d aig %{name} + view_account: Seall an cunntas + status: Staid + subscribers: Fo-sgrìobhaichean + title: Liostaichean-puist + additional_footer_texts: + show: + title: Teacsa banna-choise a bharrachd + compliance_settings: + additional_footer_text: + action: Stiùirich + hint: Roghainneil teacsa a nochdas sa bhann-choise aig cuairt-litrichean puist-d a-mhàin + title: Teacsa banna-choise a bharrachd + lead: Dh’fhaoidte gum beachdaichear air cuairt-litrichean mar puist-d margaidheachd a-rèir nan uachdranasan laghail far a bheil thu ag obair. + privacy_policy: + action: Stiùirich + hint: Thèid ceangal ris a’ phoileasaidh seo a chur ri bann-coise gach puist-d + title: Poileasaidh prìobhaideachd + danger_zone: + disable_feature: + action: Cuir à comas + hint: Cuir an gleus à comas dhan a h-uile cunntas + title: Cuir an gleus à comas + erase_all_data: + action: Suath bàn an dàta + hint: Sguabaidh seo às a h-uile post-d aig a h-uile liosta puist-d gu buan + title: Suath bàn an dàta air fad + title: Earrann chunnartach + disabled_msg: Chaidh na fo-sgrìobhaidhean puist-d a chur à comas. + index: + disabled: + cannot_be_enabled: Cha do chuir an solaraiche teicnigeach agad an gleus seo an comas air an fhrithealaiche agad. + get_started: Dèan toiseach-tòiseachaidh + title: Cuairt-litrichean puist-d + roles: + accounts: Cunntasan + edit_role: Deasaich an dreuchd + empty: + hint: Chan fhaod neach sam bith an gleus seo a chleachdadh. + no_roles_added: Cha deach dreuchd a chur ris + manage_roles: Stiùirich na dreuchdan + role_name: Ainm na dreuchd + title: Dreuchdan + setups: + show: + enable_feature: Cuir an gleus an comas + important_information: Fiosrachadh cudromach export_domain_allows: new: title: Ion-phortaich àrainnean ceadaichte @@ -699,6 +776,7 @@ gd: action_log: Sgrùd an loga action_taken_by: Chaidh an gnìomh a ghabhail le actions: + delete_description_html: Thèid na postaichean agus/no cruinneachaidhean le gearan orra a sguabadh às agus rabhadh a chlàradh gus do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on aon chunntas sam àm ri teachd. mark_as_sensitive_description_html: Thèid comharra an fhrionasachd a chur ris na meadhanan sna postaichean le gearan orra agus rabhadh a chlàradh gus do chuideachadh ach am bi thu nas teinne le droch-ghiùlan on aon chunntas sam àm ri teachd. other_description_html: Seall barrachd roghainnean airson giùlan a’ chunntais a stiùireadh agus an conaltradh leis a’ chunntas a chaidh gearan a dhèanamh mu dhèidhinn a ghnàthachadh. resolve_description_html: Cha dèid gnìomh sam bith a ghabhail an aghaidh a’ chunntais le gearan air agus thèid an gearan a dhùnadh gun rabhadh a chlàradh. @@ -725,6 +803,7 @@ gd: confirm: Dearbh confirm_action: Dearbh gnìomh na maorsainneachd an aghaidh @%{acct} created_at: Chaidh an gearan a dhèanamh + delete_and_resolve: Sguab às an t-susbaint forwarded: Chaidh a shìneadh air adhart forwarded_replies_explanation: Tha an gearan seo o chleachdaiche cèin agus mu shusbaint chèin. Chaidh a shìneadh air adhart thugad on as e freagairt do neach-cleachdaidh agad-sa a tha san t-susbaint a tha na cois. forwarded_to: Chaidh a shìneadh air adhart gu %{domain} @@ -909,6 +988,10 @@ gd: authenticated: Cleachdaichean a chlàraich a-steach a-mhàin disabled: Iarr dreuchd shònraichte a’ chleachdaiche public: A h-uile duine + landing_page: + values: + overview: Foir-shealladh + trends: A’ treandadh registrations: moderation_recommandation: Dèan cinnteach gu bheil sgioba maoir deiseil is deònach agad mus fhosgail thu an clàradh dhan a h-uile duine! preamble: Stiùirich cò dh’fhaodas cunntas a chruthachadh air an fhrithealaiche agad. @@ -928,6 +1011,7 @@ gd: site_uploads: delete: Sguab às am faidhle a chaidh a luchdadh suas destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às! + skip_to_content: Thoir leum dhan t-susbaint software_updates: critical_update: Èiginneach – ùraich cho luath ’s a ghabhas description: Mholamaid gun cùm thu an stàladh agad de Mhastodon ùraichte ach am faigh thu buannachd às na càraidhean ’s gleusan as ùire. A bharrachd air sin, bidh e èiginneach aig amannan gun ùraich thu Mastodon gun dàil airson duilgheadasan tèarainteachd a sheachnadh. Seo as adhbhar gun doir Mastodon sùil airson ùrachaidhean gach leth-uair a thìde ’s gun cuir e brath thugad a-rèir nan roghainnean puist-d agad. @@ -1453,6 +1537,7 @@ gd: your_appeal_rejected: Chaidh an t-ath-thagradh agad a dhiùltadh edit_profile: other: Eile + privacy_redesign_body: Taghaidh tu an seall thu an luchd-leantainn agad is cò leanas tu gus nach seall dìreach on phròifil agad. 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 @@ -1487,7 +1572,9 @@ gd: 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 + disabled: À comas inactive: Neo-ghnìomhach + no_access: Gun inntrigeadh status: Staid subscribers: Fo-sgrìobhaichean emoji_styles: @@ -1523,7 +1610,9 @@ gd: blocks: Tha thu a’ bacadh bookmarks: Comharran-lìn csv: CSV + custom_filters: Criathragan domain_blocks: Bacaidhean àrainne + json: JSON lists: Liostaichean mutes: Tha thu a’ mùchadh storage: Stòras mheadhanan @@ -1615,7 +1704,9 @@ gd: empty: Faidhle CSV falamh incompatible_type: Chan eil e co-chòrdail le seòrsa an ion-phortaidh a thagh thu invalid_csv_file: 'Faidhle CSV mì-dhligheach. Mearachd: %{error}' + invalid_json_file: 'Faidhle JSON mì-dhligheach. Mearachd: %{error}' over_rows_processing_limit: tha còrr is %{count} ràgh(an) ann + status_not_found_warning: Falaichidh cuid dhe na criathragan agad postaichean sònraichte air nach eil am frithealaiche seo eòlach. Cha dèid na postaichean seo a chriathradh gu fèin-obrachail ma gheibh am frithealaiche lorg orra uaireigin sam àm ri teachd. too_large: Tha am faidhle ro mhòr failures: Fàilligidhean imported: Air ion-phortadh @@ -1636,6 +1727,11 @@ gd: one: Tha thu an impis suas ri %{count} phost o %{filename} a chur an àite nan comharra-lìn agad. other: Tha thu an impis suas ri %{count} post o %{filename} a chur an àite nan comharra-lìn agad. two: Tha thu an impis suas ri %{count} phost o %{filename} a chur an àite nan comharra-lìn agad. + custom_filters_html: + few: Tha thu an impis susbaint %{filename} a chur an àite nan criathragan agad. Thèid suas ri %{count} criathragan a chur ri criathragan ùra. + one: Tha thu an impis susbaint %{filename} a chur an àite nan criathragan agad. Thèid suas ri %{count} chriathrag a chur ri criathragan ùra. + other: Tha thu an impis susbaint %{filename} a chur an àite nan criathragan agad. Thèid suas ri %{count} criathrag a chur ri criathragan ùra. + two: Tha thu an impis susbaint %{filename} a chur an àite nan criathragan agad. Thèid suas ri %{count} chriathrag a chur ri criathragan ùra. domain_blocking_html: few: Tha thu an impis suas ri %{count} àrainnean o %{filename} a chur an àite liosta nam bacaidhean àrainne agad. one: Tha thu an impis suas ri %{count} àrainn o %{filename} a chur an àite liosta nam bacaidhean àrainne agad. @@ -1667,6 +1763,11 @@ gd: one: Tha thu an impis suas ri %{count} phost o %{filename} a chur ris na h-annsachdan agad. other: Tha thu an impis suas ri %{count} post o %{filename} a chur ris na h-annsachdan agad. two: Tha thu an impis suas ri %{count} phost o %{filename} a chur ris na h-annsachdan agad. + custom_filters_html: + few: Tha thu an impis suas ri %{count} criathragan o %{filename} a chur ris na criathragan agad. + one: Tha thu an impis suas ri %{count} chriathrag o %{filename} a chur ris na criathragan agad. + other: Tha thu an impis suas ri %{count} criathrag o %{filename} a chur ris na criathragan agad. + two: Tha thu an impis suas ri %{count} chriathrag o %{filename} a chur ris na criathragan agad. domain_blocking_html: few: Tha thu an impis suas ri %{count} àrainnean o %{filename} a bhacadh. one: Tha thu an impis suas ri %{count} àrainn o %{filename} a bhacadh. @@ -1711,6 +1812,7 @@ gd: types: blocking: Liosta-bhacaidh bookmarks: Comharran-lìn + custom_filters: Criathragan domain_blocking: Liosta-bhacaidh àrainnean following: Liosta dhen fheadhainn a leanas tu lists: Liostaichean diff --git a/config/locales/gl.yml b/config/locales/gl.yml index bcf6cdba8cb..62f674c9dfa 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -1665,7 +1665,9 @@ gl: empty: Ficheiro CSV de baleiro incompatible_type: Non é compatible co tipo de importación seleccionado invalid_csv_file: 'Ficheiro CSV non válido. Erro: %{error}' + invalid_json_file: 'Ficheiro JSON non válido. Erro: %{error}' over_rows_processing_limit: contén máis de %{count} filas + status_not_found_warning: Algún dos teus filtros oculta publicacións concretas que non son coñecidas por este servidor. Estas publicacións non se van filtrar automaticamente se son descubertas máis tarde polo servidor. too_large: O ficheiro é demasiado grande failures: Erros imported: Importado @@ -1682,6 +1684,9 @@ gl: bookmarks_html: one: Vas substituír os marcadores por %{count} publicación desde %{filename}. other: Vas substituír os marcadores por %{count} publicacións desde %{filename}. + custom_filters_html: + one: Vas substituír os teus filtros co contido de %{filename}. Vaise engadir só %{count} filtro aos novos filtros. + other: Vas substituír os teus filtros co contido de %{filename}. Vaise engadir %{count} filtros aos novos filtros. domain_blocking_html: one: Vas substituír a lista de dominios bloqueados por %{count} dominio desde %{filename}. other: Vas substituír a lista de dominios bloqueados por %{count} dominios desde %{filename}. @@ -1701,6 +1706,9 @@ gl: bookmarks_html: one: Vas engadir %{count} publicación desde %{filename} aos teus marcadores. other: Vas engadir %{count} publicacións desde %{filename} aos teus marcadores. + custom_filters_html: + one: Vas a engadir %{count} filtro desde %{filename} aos teus filtros. + other: Vas a engadir %{count} filtros desde %{filename} aos teus filtros. domain_blocking_html: one: Vas bloquear a %{count} dominio desde %{filename}. other: Vas bloquear a %{count} dominios desde %{filename}. @@ -1737,6 +1745,7 @@ gl: types: blocking: Lista de bloqueo bookmarks: Marcadores + custom_filters: Filtros domain_blocking: Lista de bloqueo de dominios following: Lista de seguimento lists: Listas diff --git a/config/locales/he.yml b/config/locales/he.yml index cb0e3e7d42f..413c27bfc39 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -1655,7 +1655,7 @@ he: deprecated_api_multiple_keywords: לא ניתן לשנות פרמטרים אלו מהיישומון הזה בגלל שהם חלים על יותר ממילת מפתח אחת. ניתן להשתמש ביישומון מעודכן יותר או בממשק הוובי. invalid_context: לא סופק הקשר או הקשר לא תקין index: - contexts: פילטרים ב %{contexts} + contexts: סננים ב־%{contexts} delete: למחוק empty: אין לך מסננים. expires_in: פג תוקף ב %{distance} @@ -1680,9 +1680,9 @@ he: save: שמירת מסנן חדש title: הוספת מסנן חדש statuses: - back_to_filter: חזרה לפילטר + back_to_filter: חזרה לסנן batch: - remove: הסרה ממסנן + remove: הסרה מסנן index: hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב. title: הודעות שסוננו @@ -1723,7 +1723,9 @@ he: empty: קובץ CSV ריק incompatible_type: אין תאימות עם סוג היבוא שנבחר invalid_csv_file: 'קובץ CSV שבור. שגיאה: %{error}' + invalid_json_file: 'קובץ JSON שבור. שגיאה: %{error}' over_rows_processing_limit: מכיל יותר מ-%{count} עמודות + status_not_found_warning: חלק מהסננים שלך מסתירים הודעות ספציפיות שאינן מוכרות על ידי שרת זה. הודעות אלו לא יסוננו אוטומטית אם הן יתגלו על ידי השרת מאוחר יותר. too_large: קובץ גדול מדי failures: כשלים imported: יובא @@ -1744,6 +1746,11 @@ he: one: אתם עומדים להחליף את רשימת הסימניות בהודעה אחת מהקובץ %{filename}. other: אתם עומדים להחליף את רשימת הסימניות עד כדי %{count} הודעות מהקובץ %{filename}. two: אתם עומדים להחליף את רשימת הסימניות עד כדי שתי הודעות מהקובץ %{filename}. + custom_filters_html: + many: הפעולה הבאה תחליף את סנניך בתוכן של %{filename}. עד %{count} סננים יתווספו לסננים חדשים. + one: הפעולה הבאה תחליף את סנניך בתוכן של %{filename}. עד סנן אחד יתווסף לסננים חדשים. + other: הפעולה הבאה תחליף את סנניך בתוכן של %{filename}. עד %{count} סננים יתווספו לסננים חדשים. + two: הפעולה הבאה תחליף את סנניך בתוכן של %{filename}. עד %{count} סננים יתווספו לסננים חדשים. domain_blocking_html: many: אתם עומדים להחליף את רשימת חסימות השרתים עד כדי %{count} שרתים מהקובץ %{filename}. one: אתם עומדים להחליף את רשימת חסימות השרתים בשרת אחד מהקובץ %{filename}. @@ -1775,6 +1782,11 @@ he: one: אתם עומדים להוסיףהודעה אחת מהקובץ %{filename} לרשימת הסימניות שלכם. other: אתם עומדים להוסיף עד %{count} הודעות מהקובץ %{filename} לרשימת הסימניות שלכם. two: אתם עומדים להוסיף עד שתי הודעות מהקובץ %{filename} לרשימת הסימניות שלכם. + custom_filters_html: + many: אתם עומדים להוסיף עד %{count} סננים מהקובץ %{filename} לרשימת הסננים שלכם. + one: אתם עומדים להוסיף עד סנן אחד מהקובץ %{filename} לרשימת הסננים שלכם. + other: אתם עומדים להוסיף עד %{count} סננים מהקובץ %{filename} לרשימת הסננים שלכם. + two: אתם עומדים להוסיף עד %{count} סננים מהקובץ %{filename} לרשימת הסננים שלכם. domain_blocking_html: many: אתם עומדים לחסום עד כדי %{count} שרתים מהקובץ %{filename}. one: אתם עומדים לחסום עד שרת אחד מהקובץ %{filename}. @@ -1819,6 +1831,7 @@ he: types: blocking: רשימת חסימות bookmarks: סימניות + custom_filters: סננים domain_blocking: רשימת שמות מתחם חסומים following: רשימת נעקבים lists: רשימות diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 150893f94b3..959e18949df 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1665,7 +1665,9 @@ hu: empty: Üres CSV-fájl incompatible_type: Nem kompatibilis a kiválasztott importálási típussal invalid_csv_file: 'Érvénytelen CSV-fájl. Hiba: %{error}' + invalid_json_file: 'Érvénytelen JSON-fájl. Hiba: %{error}' over_rows_processing_limit: több mint %{count} sort tartalmaz + status_not_found_warning: A szűrőid olyan bejegyzéseket rejtenek el, melyeket ez a kiszolgáló nem ismer. Ezek a bejegyzések nem lesznek automatikusan kiszűrve, ha a kiszolgáló később felfedezi őket. too_large: A fájl túl nagy failures: Hibák imported: Importálva @@ -1682,6 +1684,9 @@ hu: bookmarks_html: one: 'Arra készülsz, hogy lecseréld a könyvjelzőket legfeljebb %{count} bejegyzésre a következőből: %{filename}.' other: 'Arra készülsz, hogy lecseréld a könyvjelzőket legfeljebb %{count} bejegyzésre a következőből: %{filename}.' + custom_filters_html: + one: Arra készülsz, hogy lecseréld a szűrőidet a %{filename} tartalmára. Legfeljebb %{count} szűrő lesz hozzáadva az új szűrőkhöz. + other: Arra készülsz, hogy lecserád a szűrőidet a %{filename} tartalmára. Legfeljebb %{count} szűrő lesz hozzáadva az új szűrőkhöz. domain_blocking_html: one: 'Arra készülsz, hogy lecseréld a domain letiltási listát legfeljebb %{count} domainre a következőből: %{filename}.' other: 'Arra készülsz, hogy lecseréld a domain letiltási listát legfeljebb %{count} domainre a következőből: %{filename}.' @@ -1701,6 +1706,9 @@ hu: bookmarks_html: one: 'Arra készülsz, hogy legfeljebb %{count} bejegyzést adj hozzá a könyvjelzőkhöz a következőből: %{filename}.' other: 'Arra készülsz, hogy legfeljebb %{count} bejegyzést adj hozzá a könyvjelzőkhöz a következőből: %{filename}.' + custom_filters_html: + one: Arra készülsz, hogy legfeljebb %{count} szűrőt adj hozzá a(z) %{filename} fájlból a szűrőidhöz. + other: Arra készülsz, hogy legfeljebb %{count} szűrőt adj hozzá a(z) %{filename} fájlból a szűrőidhöz. domain_blocking_html: one: 'Arra készülsz, hogy legfeljebb %{count} domaint letilts a következőből: %{filename}.' other: 'Arra készülsz, hogy legfeljebb %{count} domaint letilts a következőből: %{filename}.' @@ -1737,6 +1745,7 @@ hu: types: blocking: Letiltottak listája bookmarks: Könyvjelzők + custom_filters: Szűrők domain_blocking: Letiltott domainek listája following: Követettjeid listája lists: Listák diff --git a/config/locales/is.yml b/config/locales/is.yml index 887574ecdde..d327060a789 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -1669,6 +1669,7 @@ is: empty: Tóm CSV-skrá incompatible_type: Ekki samhæfanlegt valinni tegund innflutnings invalid_csv_file: 'Ógild CSV-skrá. Villa: %{error}' + invalid_json_file: 'Ógild JSON-skrá. Villa: %{error}' over_rows_processing_limit: inniheldur meira en %{count} raðir too_large: Skráin er of stór failures: Mistök @@ -1741,6 +1742,7 @@ is: types: blocking: Listi yfir útilokanir bookmarks: Bókamerki + custom_filters: Síur domain_blocking: Listi yfir útilokanir léna following: Listi yfir þá sem fylgst er með lists: Listar diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 345c9190344..81582da1f39 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -496,6 +496,16 @@ ko: hint: 구독자를 가진 계정이 없습니다. no_lists_yet: 리스트가 없습니다 last_email: 최근 이메일 + show: + date: 가입 날짜 + disable_feature: 기능 비활성화 + email: 이메일 주소 + empty: + hint: 이 계정은 아직 아무도 구독하지 않았습니다. + no_subscribers_yet: 구독자가 없습니다 + enable_feature: 기능 활성화 + title: "%{name}의 이메일 뉴스레터" + view_account: 계정 보기 status: 상태 subscribers: 구독자 title: 메일링 리스트 @@ -528,6 +538,7 @@ ko: cannot_be_enabled: 이 서버의 기술제공자가 이 기능을 활성화하지 않았습니다. description: 이 기능은 지정된 계정들이 프로필에 위젯을 추가해 마스토돈 계정 없이도 이메일을 통해 게시물을 받아볼 수 있도록 허용합니다. get_started: 시작하기 + lead: 방문자가 이 서버의 전용 계정을 통해 이메일로 게시물을 받을 수 있도록 허용합니다. title: 이메일 뉴스레터 roles: accounts: 계정 @@ -1478,6 +1489,7 @@ ko: confirmation: action: 이메일 주소 확인 subject: 이메일 주소 확인 + title: "%{name} 님으로부터 이메일 업데이트를 받겠습니까?" notification: create_account: 마스토돈 계정 생성 subject: @@ -1493,7 +1505,9 @@ ko: changed_your_mind: 마음이 바뀌었나요? title: 가입되었습니다 unsubscribe: 구독 해제 + disabled: 비활성화됨 inactive: 비활성 + no_access: 접근 불가 status: 상태 subscribers: 구독자 emoji_styles: @@ -1602,6 +1616,7 @@ ko: empty: 빈 CSV 파일 incompatible_type: 호환되지 않는 가져오기 유형을 선택함 invalid_csv_file: '올바르지 않은 CSV 파일입니다. 오류: %{error}' + invalid_json_file: '올바르지 않은 JSON 파일입니다. 오류: %{error}' over_rows_processing_limit: "%{count}개 이상의 열을 포함합니다" too_large: 파일이 너무 큼 failures: 실패 @@ -1630,6 +1645,8 @@ ko: other: "%{filename}에서 가져온 %{count}개의 계정을 차단하려고 합니다." bookmarks_html: other: "%{filename}에서 가져온 %{count}개의 게시물을 북마크에 추가하려고 합니다." + custom_filters_html: + other: "%{filename}에서 가져온 %{count}개의 필터필터에 추가하려고 합니다." domain_blocking_html: other: "%{filename}에서 가져온 %{count}개의 도메인을 차단하려고 합니다." following_html: @@ -1662,6 +1679,7 @@ ko: types: blocking: 차단한 계정 목록 bookmarks: 북마크 + custom_filters: 필터 domain_blocking: 도메인 차단 목록 following: 팔로잉 목록 lists: 리스트 @@ -1736,7 +1754,7 @@ ko: past_migrations: 과거 이주 proceed_with_move: 팔로워 이동 redirected_msg: 당신의 계정은 이제 %{acct} 로 리다이렉트됩니다. - redirecting_to: 당신의 계정은 %{acct} 로 리다이렉트됩니다. + redirecting_to: 내 계정이 %{acct}에 리디렉트됩니다. set_redirect: 리디렉션 설정 warning: backreference_required: 새 계정은 이 계정으로 역참조를 하도록 설정되어 있어야 합니다 diff --git a/config/locales/lv.yml b/config/locales/lv.yml index 5b8f78054d2..2990e7d594e 100644 --- a/config/locales/lv.yml +++ b/config/locales/lv.yml @@ -515,10 +515,10 @@ lv: description_html: "Sekošanas ieteikumi palīdz jauniem lietotājiem ātri arast saistošu saturu. Kad lietotājs nav pietiekami mijiedarbojies ar citiem, lai veidotos pielāgoti sekošanas iteikumi, tiek ieteikti šie konti. Tie tiek pārskaitļoti ik dienas, izmantojot kontu, kuriem ir augstākās nesenās iesaistīšanās un lielākais vietējo sekotāju skaits norādītajā valodā." language: Valodai status: Stāvoklis - suppress: Apspiest sekošanas rekomendāciju + suppress: Apspiest sekošanas ieteikumu suppressed: Apspiestie title: Sekošanas ieteikumi - unsuppress: Atjaunot sekošanas rekomendāciju + unsuppress: Atjaunot sekošanas ieteikumu instances: audit_log: title: Nesenie pārbaudes žurnāli @@ -738,9 +738,9 @@ lv: moderation: Satura pārraudzība special: Īpašās delete: Dzēst - description_html: Izmantojot lietotāju lomas, vari pielāgot, kurām Mastodon funkcijām un apgabaliem var piekļūt tavi lietotāji. + description_html: Ar lietotāju lomām, var pielāgot, kurām Mastodon iespējām un apgabaliem lietotāji var piekļūt. edit: Labot lomu '%{name}' - everyone: Noklusētās atļaujas + everyone: Noklusējuma atļaujas everyone_full_description_html: Šī ir pamata loma, kas ietekmē visus lietotājus, pat tos, kuriem nav piešķirta loma. Visas pārējās lomas manto atļaujas no šīs. permissions_count: one: "%{count} atļauja" @@ -827,7 +827,7 @@ lv: desc_html: Ietekmē visus lietotājus, kuri paši nav mainījuši šo iestatījumu title: Pēc noklusējuma lietotāji būs atteikušies no meklētājprogrammu indeksēšanas discovery: - follow_recommendations: Sekotšanas rekomendācijas + follow_recommendations: Sekošanas ieteikumi privacy: Konfidencialitāte profile_directory: Profila direktorija public_timelines: Publiskās ziņu lentas @@ -1611,7 +1611,7 @@ lv: incoming_migrations_html: Lai pārnāktu no cita konta uz šo, vispirms tev jāizveido konta aizstājvārds. moved_msg: Tavs konts tagad tiek novirzīts uz %{acct}, un tavi sekotāji tiek pārvietoti. not_redirecting: Tavs konts pašlaik netiek novirzīts uz jebkādu citu kontu. - on_cooldown: Tu nesen migrēji savu kontu. Šī funkcija atkal būs pieejama pēc %{count} dienām. + on_cooldown: Tu nesen pārcēli savu kontu. Šī iespēja bīs atkal pieejama pēc %{count} dienām. past_migrations: Pagātnes migrācijas proceed_with_move: Pārvietot sekotājus redirected_msg: Tavs konts tagad tiek novirzīts uz %{acct}. @@ -1714,7 +1714,7 @@ lv: posting_defaults: Ierakstu pievienošanas noklusējumi public_timelines: Publiskās ziņu lentas privacy: - hint_html: "Pielāgo, kā vēlies atrast savu profilu un ziņas. Dažādas Mastodon funkcijas var palīdzēt sasniegt plašāku auditoriju, ja tās ir iespējotas. Velti laiku, lai pārskatītu šos iestatījumus, lai pārliecinātos, ka tie atbilst tavam lietošanas gadījumam." + hint_html: "Pielāgo, kā vēlies, lai Tavs profils un ieraksti būtu atrodami. Dažādas Mastodon iespējas var palīdzēt sasniegt plašāku cilvēku loku, kad tās ir iespējotas. Velti laiku, lai pārskatītu šos iestatījumus, lai pārliecinātos, ka tie atbilst Tavām vajadībām." privacy: Privātums privacy_hint_html: Kontrolē, cik daudz vēlies izpaust citu labā. Cilvēki atklāj interesantus profilus un lieliskas lietotnes, pārlūkojot citu cilvēku sekotājus un redzot, no kurām lietotnēm viņi izliek ziņas, taču tu, iespējams, vēlēsies to slēpt. reach: Sasniedzamība diff --git a/config/locales/nan-TW.yml b/config/locales/nan-TW.yml index f47c4622899..1adfea12997 100644 --- a/config/locales/nan-TW.yml +++ b/config/locales/nan-TW.yml @@ -495,6 +495,18 @@ nan-TW: no_lists_yet: Iáu無列單 last_email: 上新ê電子phue箱 lead: 有啟用tsit ê功能koh有訂ê lâng ê口座ē展示佇下kha。 + show: + confirm_disable_feature: Kám beh kā %{name} 停止電子報?電子phue更新ē buē koh對 tsit ê口座送出。Tsit ê用者猶原通佇in ê口座設定內底重啟用tsit ê功能。Beh永永禁止接近使用tsit ê功能,請佇角色內底編tsit ê口座ê權限。 + confirm_remove_subscriber: "%{email} 會無法度收著uì %{name} 來ê電子批。Tsit ê功能bē當復原。" + consent: 訂ê lâng kan-ta同意通過電子phue收著PO文。請毋通kā tsit ê列單用做別途。 + date: 註冊日 + disable_feature: Kā功能停止使用 + disabled: Tsit ê功能停用ah,而且電子phue buē當koh送kàu tsit ê列單。 + email: 電子phue地址 + empty: + hint: Iáu無半个lâng訂tsit ê口座。 + no_subscribers_yet: Iáu無訂ê lâng + enable_feature: 啟用功能 status: 狀態 subscribers: 訂ê lâng title: 電子phue列單 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 91e61810c4b..cc09ae1b3e3 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -1665,7 +1665,9 @@ nl: empty: Leeg CSV-bestand incompatible_type: Incompatibel met het geselecteerde importtype invalid_csv_file: 'Ongeldig CSV-bestand. Fout: %{error}' + invalid_json_file: 'Ongeldig JSON-bestand. Foutmelding: %{error}' over_rows_processing_limit: bevat meer dan %{count} rijen + status_not_found_warning: Sommige van je filters verbergen specifieke berichten die niet bekend zijn bij deze server. Deze berichten worden niet automatisch gefilterd wanneer ze later alsnog door de server worden ontdekt. too_large: Bestand is te groot failures: Fouten imported: Geïmporteerd @@ -1682,6 +1684,9 @@ nl: bookmarks_html: one: Je staat op het punt om vanuit %{filename} je bladwijzers te vervangen met in het totaal %{count} bericht. other: Je staat op het punt om vanuit %{filename} je bladwijzers te vervangen met in het totaal %{count} berichten. + custom_filters_html: + one: Je staat op het punt om met de inhoud van %{filename} je filters te vervangen. In totaal wordt %{count} filter aan de nieuwe filters toegevoegd. + other: Je staat op het punt om met de inhoud van %{filename} je filters te vervangen. In totaal worden %{count} filters aan de nieuwe filters toegevoegd. domain_blocking_html: one: Je staat op het punt om vanuit %{filename} je lijst met geblokkeerde domeinen te vervangen met in het totaal %{count} domein. other: Je staat op het punt om vanuit %{filename} je lijst met geblokkeerde domeinen te vervangen met in het totaal %{count} domeinen. @@ -1701,6 +1706,9 @@ nl: bookmarks_html: one: Je staat op het punt om vanuit %{filename} in het totaal %{count} bericht aan je bladwijzers toe te voegen. other: Je staat op het punt om vanuit %{filename} in het totaal %{count} berichten aan je bladwijzers toe te voegen. + custom_filters_html: + one: Je staat op het punt om vanuit %{filename} in totaal %{count} filter aan je filters toe te voegen. + other: Je staat op het punt om vanuit %{filename} in het totaal %{count} filters aan je filters toe te voegen. domain_blocking_html: one: Je staat op het punt om vanuit %{filename} in het totaal %{count} domein te blokkeren. other: Je staat op het punt om vanuit %{filename} in het totaal %{count} domeinen te blokkeren. @@ -1737,6 +1745,7 @@ nl: types: blocking: Geblokkeerde accounts bookmarks: Bladwijzers + custom_filters: Filters domain_blocking: Geblokkeerde domeinen following: Gevolgde accounts lists: Lijsten diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 4e717d57ec3..2ef8d93ea3c 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -1745,6 +1745,7 @@ pt-BR: types: blocking: Lista de bloqueio bookmarks: Marcadores + custom_filters: Filtros domain_blocking: Lista de domínios bloqueados following: Pessoas que você segue lists: Listas diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml index 21757feef1e..b1b758be7c5 100644 --- a/config/locales/simple_form.gd.yml +++ b/config/locales/simple_form.gd.yml @@ -91,6 +91,7 @@ gd: closed_registrations_message: Thèid seo a shealltainn nuair a bhios an clàradh dùinte content_cache_retention_period: Thèid a h-uile post o fhrithealaiche sam bith eile (a’ gabhail a-staigh brosnachaidhean is freagairtean) a sguabadh às às dèidh na h-àireimh de làithean a shònraich thu ’s gun diù a chon air eadar-ghabhail ionadail air na postaichean ud. Gabhaidh seo a-steach na postaichean a chuir cleachdaiche ionadail ris na h-annsachdan aca no comharran-lìn riutha. Thèid iomraidhean prìobhaideach eadar cleachdaichean o ionstansan diofraichte air chall cuideachd agus cha ghabh an aiseag idir. Tha an roghainn seo do dh’ionstansan sònraichte a-mhàin agus briseadh e dùilean an luchd-cleachdaidh nuair a rachadh a chleachdadh gu coitcheann. custom_css: "’S urrainn dhut stoidhlean gnàthaichte a chur an sàs air an tionndadh-lìn de Mhastodon." + email_footer_text: Roghainneil teacsa a nochdas sa bhann-choise aig cuairt-litrichean puist-d a-mhàin. favicon: WEBP, PNG, GIF no JPG. Tar-àithnidh seo favicon bunaiteach Mhastodon le ìomhaigheag ghnàthaichte. landing_page: Taghaidh seo an duilleag a chì aoighean ùra nuair a thadhlas air an fhrithealaiche agad a’ chiad turas. ma thaghas tu “Treandaichean”, feumaidh tu na treandaichean a chur an comas ann ann roghainnean an rùrachaidh. Ma thaghas tu “Loidhne-ama ionadail”, feumaidh tu “Inntrigeadh dhan t-saoghal bheò sa bheil postaichean ionadail” a shuidheachadh air “A h-uile duine” ann an roghainnean an rùrachaidh. mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach. @@ -295,6 +296,7 @@ gd: closed_registrations_message: Teachdaireachd ghnàthaichte nuair nach eil clàradh ri fhaighinn content_cache_retention_period: Ùine glèidhidh aig susbaint chèin custom_css: CSS gnàthaichte + email_footer_text: Teacsa banna-choise a bharrachd favicon: Favicon landing_page: An duilleag-laighe do dh’aoighean ùra local_live_feed_access: Inntrigeadh dhan t-saoghal bheò sa bheil postaichean ionadail diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml index 13699f7a993..1d7aabd31ab 100644 --- a/config/locales/simple_form.lv.yml +++ b/config/locales/simple_form.lv.yml @@ -92,7 +92,7 @@ lv: site_short_description: Īss apraksts, kas palīdzēs unikāli identificēt tavu serveri. Kurš to darbina, kam tas paredzēts? site_terms: Izmanto pats savu konfidencialitātes politiku vai atstāj tukšu, lai izmantotu noklusējuma iestatījumu. Var strukturēt ar Markdown sintaksi. site_title: Kā cilvēki var atsaukties uz tavu serveri, izņemot tā domēna nosaukumu. - status_page_url: Tās lapas URL, kurā lietotāji var redzēt šī servera statusu pārtraukuma laikā + status_page_url: Lapas, kurā cilvēki var redzēt šī servera stāvokli darbības pārtraukumu laikā, URL theme: Tēma, kuru redz apmeklētāji, kuri ir atteikušies, un jaunie lietotāji. thumbnail: Aptuveni 2:1 attēls, kas tiek parādīts kopā ar tava servera informāciju. trendable_by_default: Izlaist aktuālā satura manuālu pārskatīšanu. Atsevišķas preces joprojām var noņemt no tendencēm pēc fakta. @@ -106,7 +106,7 @@ lv: ip_block: comment: Neobligāts. Atceries, kādēļ tu pievienoji šo nosacījumu. expires_in: IP adreses ir ierobežots resurss, tās dažreiz tiek koplietotas un bieži maina turētāju. Šī iemesla dēļ nedefinēti IP bloki nav ieteicami. - ip: Ievadi IPv4 vai IPv6 adresi. Izmantojot CIDR sintaksi, tu vari bloķēt visus diapazonus. Esi piesardzīgs un neizslēdz pats sevi! + ip: Jāievada IPv4 vai IPv6 adrese. Ar CIDR pierakstu var liegt veselus apgabalus. Esi piesardzīgs un neizslēdz pats sevi! severities: no_access: Bloķēt piekļuvi visiem resursiem sign_up_block: Jaunas pieteikšanās nebūs iespējamas @@ -247,7 +247,7 @@ lv: activity_api_enabled: Publicējiet apkopotu statistiku par lietotāju darbībām API app_icon: Lietotnes ikona backups_retention_period: Lietotāja arhīva glabāšanas periods - bootstrap_timeline_accounts: Vienmēr iesaki šos kontus jaunajiem lietotājiem + bootstrap_timeline_accounts: Vienmēr ieteikt šos kontus jaunajiem lietotājiem closed_registrations_message: Pielāgots ziņojums, ja reģistrēšanās nav pieejama content_cache_retention_period: Attālā satura paturēšanas laika posms custom_css: Pielāgots CSS @@ -267,8 +267,8 @@ lv: site_short_description: Servera apraksts site_terms: Privātuma Politika site_title: Servera nosaukums - status_page_url: Statusa lapas URL - theme: Noklusētā tēma + status_page_url: Stāvokļa lapas URL + theme: Noklusējuma izskats thumbnail: Servera sīkbilde trendable_by_default: Atļaut tendences bez iepriekšējas pārskatīšanas trends: Iespējot tendences @@ -303,7 +303,7 @@ lv: all: Paziņot par visiem atjauninājumiem critical: Paziņot tikai par kritiskajiem atjauninājumiem label: Ir pieejama jauna Mastodon versija - none: Nekad neziņot par atjauninājumiem (nerekomendēts) + none: Nekad neziņot par atjauninājumiem (nav ieteicams) patch: Paziņot par novērsto kļūdu atjauninājumiem trending_tag: Jaunā tendence ir jāpārskata rule: diff --git a/config/locales/sq.yml b/config/locales/sq.yml index 68dd813a218..b69b9412439 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -1724,6 +1724,7 @@ sq: types: blocking: Listë bllokimesh bookmarks: Faqerojtës + custom_filters: Filtra domain_blocking: Listë bllokimesh përkatësish following: Listë ndjekjesh lists: Lista diff --git a/config/locales/sv.yml b/config/locales/sv.yml index de5220b9db9..6727e7c5004 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -1665,7 +1665,9 @@ sv: empty: Tom CSV-fil incompatible_type: Inkompatibel med den valda importtypen invalid_csv_file: 'Ogiltig CSV-fil. Felmeddelande: %{error}' + invalid_json_file: 'Ogiltig JSON-fil. Fel: %{error}' over_rows_processing_limit: innehåller fler än %{count} rader + status_not_found_warning: Några av dina filter döljer specifika inlägg som inte är kända av denna server. Dessa inlägg filtreras inte automatiskt om de upptäcks senare av servern. too_large: Filen är för stor failures: Misslyckanden imported: Importerade @@ -1682,6 +1684,9 @@ sv: bookmarks_html: one: Du är på väg att ersätta din blockeringslista med upp till %{count} inlägg från %{filename}. other: Du är på väg att ersätta din blockeringslista med upp till %{count} inlägg från %{filename}. + custom_filters_html: + one: Du är på väg att ersätta dina filter med innehållet i %{filename}. Upp till %{count} filter kommer att läggas till nya filter. + other: Du är på väg att ersätta dina filter med innehållet i %{filename}. Upp till %{count} filter kommer att läggas till i nya filter. domain_blocking_html: one: Du är på väg att ersätta din blockeringslista med upp till %{count} domän från %{filename}. other: Du är på väg att ersätta din blockeringslista med upp till %{count} domäner från %{filename}. @@ -1701,6 +1706,9 @@ sv: bookmarks_html: one: Du håller på att lägga upp till %{count} inlägg från %{filename} till dina bokmärken. other: Du håller på att lägga upp till %{count} inlägg från %{filename} till dina bokmärken. + custom_filters_html: + one: Du är på väg att lägga till upp till %{count} filter från %{filename} till dina filter. + other: Du är på väg att lägga till upp till %{count} filter från %{filename} till dina filter. domain_blocking_html: one: Du är på väg att blockera upp till %{count} domän från %{filename}. other: Du är på väg att blockera upp till %{count} domäner från %{filename}. @@ -1737,6 +1745,7 @@ sv: types: blocking: Lista av blockerade bookmarks: Bokmärken + custom_filters: Filter domain_blocking: Domänblockeringslista following: Lista av följare lists: Listor diff --git a/config/locales/tr.yml b/config/locales/tr.yml index c2a8ca6dbc7..830f9cbefc2 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1745,6 +1745,7 @@ tr: types: blocking: Engellenenler listesi bookmarks: Yer imleri + custom_filters: Filtreler domain_blocking: Alan adı engelleme listesi following: Takip edilenler listesi lists: Listeler diff --git a/config/locales/vi.yml b/config/locales/vi.yml index e9afa336b7f..7d005edf3f3 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -1702,6 +1702,7 @@ vi: types: blocking: Danh sách người đã chặn bookmarks: Tút đã lưu + custom_filters: Bộ lọc domain_blocking: Danh sách máy chủ đã chặn following: Danh sách người theo dõi lists: Danh sách diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 9937cc3a08a..23544c9f1ff 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1638,7 +1638,7 @@ zh-CN: invalid_csv_file: 无效的 CSV 文件。错误:%{error} invalid_json_file: 无效的 JSON 文件。错误:%{error} over_rows_processing_limit: 包含行数超过了 %{count} - status_not_found_warning: 你的部分过滤器将会过滤此服务器尚未知晓的嘟文。如果这些嘟文之后被服务器发现,则将不会被自动过滤。 + status_not_found_warning: 你的部分过滤器将会隐藏此服务器暂时未知的特定嘟文。如果这些嘟文以后被服务器发现,则将不会被自动过滤。 too_large: 文件过大 failures: 失败 imported: 已导入 @@ -1702,6 +1702,7 @@ zh-CN: types: blocking: 屏蔽列表 bookmarks: 书签 + custom_filters: 过滤器 domain_blocking: 站点屏蔽列表 following: 关注列表 lists: 列表 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index a1268fe26eb..68e9ae1702e 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -194,7 +194,7 @@ zh-TW: create_unavailable_domain: 新增無法存取的網域 create_user_role: 新增角色 create_username_block: 新增使用者名稱規則 - demote_user: 將用戶降級 + demote_user: 將使用者降級 destroy_announcement: 刪除公告 destroy_canonical_email_block: 刪除電子郵件封鎖 destroy_custom_emoji: 刪除自訂 emoji 表情符號 @@ -218,7 +218,7 @@ zh-TW: enable_sign_in_token_auth_user: 啟用使用者電子郵件 token 驗證 enable_user: 啓用帳號 memorialize_account: 設定成追悼帳號 - promote_user: 將用戶升級 + promote_user: 將使用者升級 publish_terms_of_service: 發佈服務條款 reject_appeal: 駁回申訴 reject_user: 回絕使用者 @@ -1706,6 +1706,7 @@ zh-TW: types: blocking: 您封鎖的使用者列表 bookmarks: 書籤 + custom_filters: 過濾器 domain_blocking: 網域封鎖列表 following: 您跟隨的使用者列表 lists: 列表 From a7f5931f12af2418e4c85a73e2a5e4d883c7f8d0 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Jun 2026 10:26:36 +0200 Subject: [PATCH 03/36] Remove cookie rotator (#38918) Co-authored-by: Matt Jankowski --- config/initializers/cookie_rotator.rb | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 config/initializers/cookie_rotator.rb diff --git a/config/initializers/cookie_rotator.rb b/config/initializers/cookie_rotator.rb deleted file mode 100644 index ccc2c6b21f7..00000000000 --- a/config/initializers/cookie_rotator.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -# TODO: remove this file some time after 4.3.0 - -Rails.application.config.after_initialize do - Rails.application.config.action_dispatch.cookies_rotations.tap do |cookies| - authenticated_encrypted_cookie_salt = Rails.application.config.action_dispatch.authenticated_encrypted_cookie_salt - signed_cookie_salt = Rails.application.config.action_dispatch.signed_cookie_salt - - secret_key_base = Rails.application.secret_key_base - - key_generator = ActiveSupport::KeyGenerator.new( - secret_key_base, iterations: 1000, hash_digest_class: OpenSSL::Digest::SHA1 - ) - key_len = ActiveSupport::MessageEncryptor.key_len - - old_encrypted_secret = key_generator.generate_key(authenticated_encrypted_cookie_salt, key_len) - old_signed_secret = key_generator.generate_key(signed_cookie_salt) - - cookies.rotate :encrypted, old_encrypted_secret - cookies.rotate :signed, old_signed_secret - end -end From ff20dbfa8108d1fff0b32c784fc7ef6a003cdb2c Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Jun 2026 11:02:42 +0200 Subject: [PATCH 04/36] Update dependency `net-imap` (#39426) --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fc3f577e088..22842a63797 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -456,7 +456,7 @@ GEM mutex_m (0.3.0) net-http (0.9.1) uri (>= 0.11.1) - net-imap (0.6.4) + net-imap (0.6.4.1) date net-protocol net-ldap (0.20.0) From 49d1399e63a0b65145c61b7c3f286b9d46af1842 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:22:31 +0200 Subject: [PATCH 05/36] Update unhead monorepo to v3.1.4 (#39417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 210 +++++++++++++++++++++++++++--------------------------- 1 file changed, 105 insertions(+), 105 deletions(-) diff --git a/yarn.lock b/yarn.lock index ec58a799321..ae1e3816589 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3239,9 +3239,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-android-arm-eabi@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.134.0" +"@oxc-parser/binding-android-arm-eabi@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-android-arm-eabi@npm:0.135.0" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -3253,9 +3253,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-android-arm64@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-android-arm64@npm:0.134.0" +"@oxc-parser/binding-android-arm64@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-android-arm64@npm:0.135.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -3267,9 +3267,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-darwin-arm64@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-darwin-arm64@npm:0.134.0" +"@oxc-parser/binding-darwin-arm64@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-darwin-arm64@npm:0.135.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -3281,9 +3281,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-darwin-x64@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-darwin-x64@npm:0.134.0" +"@oxc-parser/binding-darwin-x64@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-darwin-x64@npm:0.135.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -3295,9 +3295,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-freebsd-x64@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-freebsd-x64@npm:0.134.0" +"@oxc-parser/binding-freebsd-x64@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-freebsd-x64@npm:0.135.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -3309,9 +3309,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.134.0" +"@oxc-parser/binding-linux-arm-gnueabihf@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-arm-gnueabihf@npm:0.135.0" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -3323,9 +3323,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-arm-musleabihf@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.134.0" +"@oxc-parser/binding-linux-arm-musleabihf@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-arm-musleabihf@npm:0.135.0" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -3337,9 +3337,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-arm64-gnu@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.134.0" +"@oxc-parser/binding-linux-arm64-gnu@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-arm64-gnu@npm:0.135.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard @@ -3351,9 +3351,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-arm64-musl@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.134.0" +"@oxc-parser/binding-linux-arm64-musl@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-arm64-musl@npm:0.135.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard @@ -3365,9 +3365,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-ppc64-gnu@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.134.0" +"@oxc-parser/binding-linux-ppc64-gnu@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-ppc64-gnu@npm:0.135.0" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard @@ -3379,9 +3379,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-riscv64-gnu@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.134.0" +"@oxc-parser/binding-linux-riscv64-gnu@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-riscv64-gnu@npm:0.135.0" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard @@ -3393,9 +3393,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-riscv64-musl@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.134.0" +"@oxc-parser/binding-linux-riscv64-musl@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-riscv64-musl@npm:0.135.0" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard @@ -3407,9 +3407,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-s390x-gnu@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.134.0" +"@oxc-parser/binding-linux-s390x-gnu@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-s390x-gnu@npm:0.135.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -3421,9 +3421,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-x64-gnu@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.134.0" +"@oxc-parser/binding-linux-x64-gnu@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-x64-gnu@npm:0.135.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard @@ -3435,9 +3435,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-linux-x64-musl@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.134.0" +"@oxc-parser/binding-linux-x64-musl@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-linux-x64-musl@npm:0.135.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -3449,9 +3449,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-openharmony-arm64@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.134.0" +"@oxc-parser/binding-openharmony-arm64@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-openharmony-arm64@npm:0.135.0" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard @@ -3467,9 +3467,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-wasm32-wasi@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.134.0" +"@oxc-parser/binding-wasm32-wasi@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-wasm32-wasi@npm:0.135.0" dependencies: "@emnapi/core": "npm:1.10.0" "@emnapi/runtime": "npm:1.10.0" @@ -3485,9 +3485,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-win32-arm64-msvc@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.134.0" +"@oxc-parser/binding-win32-arm64-msvc@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-win32-arm64-msvc@npm:0.135.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -3499,9 +3499,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-win32-ia32-msvc@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.134.0" +"@oxc-parser/binding-win32-ia32-msvc@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-win32-ia32-msvc@npm:0.135.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -3513,9 +3513,9 @@ __metadata: languageName: node linkType: hard -"@oxc-parser/binding-win32-x64-msvc@npm:0.134.0": - version: 0.134.0 - resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.134.0" +"@oxc-parser/binding-win32-x64-msvc@npm:0.135.0": + version: 0.135.0 + resolution: "@oxc-parser/binding-win32-x64-msvc@npm:0.135.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3534,10 +3534,10 @@ __metadata: languageName: node linkType: hard -"@oxc-project/types@npm:^0.134.0": - version: 0.134.0 - resolution: "@oxc-project/types@npm:0.134.0" - checksum: 10c0/d90ee664206091d539a24de6ec703bdb2124e1181680609ac3c27326273a3189c5bb6e0177f3171c85a78e8c01eb43a9903cbbe13257053c7df141c030579c16 +"@oxc-project/types@npm:^0.135.0": + version: 0.135.0 + resolution: "@oxc-project/types@npm:0.135.0" + checksum: 10c0/7ae7e65fb044733c6016381b27e84868bbf2fcba85f7e2f7dc28caf59cb7303b60b736e709d599a4495e7297aa7183b5e6366f96f2f692455d1b6d225cfe79b4 languageName: node linkType: hard @@ -5114,22 +5114,22 @@ __metadata: languageName: node linkType: hard -"@unhead/bundler@npm:3.1.3": - version: 3.1.3 - resolution: "@unhead/bundler@npm:3.1.3" +"@unhead/bundler@npm:3.1.4": + version: 3.1.4 + resolution: "@unhead/bundler@npm:3.1.4" dependencies: "@vitejs/devtools-kit": "npm:^0.3.1" magic-string: "npm:^0.30.21" - oxc-parser: "npm:^0.134.0" + oxc-parser: "npm:^0.135.0" oxc-walker: "npm:^1.0.0" ufo: "npm:^1.6.4" unplugin: "npm:^3.0.0" peerDependencies: - "@unhead/cli": ^3.1.3 + "@unhead/cli": ^3.1.4 esbuild: ">=0.17.0" lightningcss: ">=1.20.0" rolldown: ">=1.0.0-beta.0" - unhead: ^3.1.3 + unhead: ^3.1.4 vite: ">=6.4.2" webpack: ">=5.0.0" peerDependenciesMeta: @@ -5145,18 +5145,18 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/bd1600a324bcd5a7b4d14a02185a77c5d89cd7693126b725dc2a2a1394081b2987a44bed82f7061725da056c1d69bea57121cb5ac3c59c92488c4fcfe852adf3 + checksum: 10c0/5d8d739997d3e3327c3439e366ddadb4c4161c1eb4543dacb5be6ce792405e846dbefccdfa5ec4548680c01344c8665dbf5c85735a00ce662011992262822d0f languageName: node linkType: hard "@unhead/react@npm:^3.1.0": - version: 3.1.3 - resolution: "@unhead/react@npm:3.1.3" + version: 3.1.4 + resolution: "@unhead/react@npm:3.1.4" dependencies: - "@unhead/bundler": "npm:3.1.3" + "@unhead/bundler": "npm:3.1.4" magic-string: "npm:^0.30.21" oxc-walker: "npm:^1.0.0" - unhead: "npm:3.1.3" + unhead: "npm:3.1.4" unplugin: "npm:^3.0.0" peerDependencies: react: ">=19.2.4" @@ -5167,7 +5167,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/8c65fbefd81e28ed578eee0d91d38d3bd4545f2ba486ecaa8fbc16b46768c25abd7b3f655a4bc18dab06a79c00ca4d4d61d1ed5f93eb5cea73a46e88a9c89e17 + checksum: 10c0/df1b6ab92eaaaab0f44104ab34307a5f73b38489e7c8911bf32bf81e2a2b08813fa4131466bdfa086c65c580f6b2c8e8ee314dd100c77885ad0194a96ab355ba languageName: node linkType: hard @@ -10827,31 +10827,31 @@ __metadata: languageName: node linkType: hard -"oxc-parser@npm:^0.134.0": - version: 0.134.0 - resolution: "oxc-parser@npm:0.134.0" +"oxc-parser@npm:^0.135.0": + version: 0.135.0 + resolution: "oxc-parser@npm:0.135.0" dependencies: - "@oxc-parser/binding-android-arm-eabi": "npm:0.134.0" - "@oxc-parser/binding-android-arm64": "npm:0.134.0" - "@oxc-parser/binding-darwin-arm64": "npm:0.134.0" - "@oxc-parser/binding-darwin-x64": "npm:0.134.0" - "@oxc-parser/binding-freebsd-x64": "npm:0.134.0" - "@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.134.0" - "@oxc-parser/binding-linux-arm-musleabihf": "npm:0.134.0" - "@oxc-parser/binding-linux-arm64-gnu": "npm:0.134.0" - "@oxc-parser/binding-linux-arm64-musl": "npm:0.134.0" - "@oxc-parser/binding-linux-ppc64-gnu": "npm:0.134.0" - "@oxc-parser/binding-linux-riscv64-gnu": "npm:0.134.0" - "@oxc-parser/binding-linux-riscv64-musl": "npm:0.134.0" - "@oxc-parser/binding-linux-s390x-gnu": "npm:0.134.0" - "@oxc-parser/binding-linux-x64-gnu": "npm:0.134.0" - "@oxc-parser/binding-linux-x64-musl": "npm:0.134.0" - "@oxc-parser/binding-openharmony-arm64": "npm:0.134.0" - "@oxc-parser/binding-wasm32-wasi": "npm:0.134.0" - "@oxc-parser/binding-win32-arm64-msvc": "npm:0.134.0" - "@oxc-parser/binding-win32-ia32-msvc": "npm:0.134.0" - "@oxc-parser/binding-win32-x64-msvc": "npm:0.134.0" - "@oxc-project/types": "npm:^0.134.0" + "@oxc-parser/binding-android-arm-eabi": "npm:0.135.0" + "@oxc-parser/binding-android-arm64": "npm:0.135.0" + "@oxc-parser/binding-darwin-arm64": "npm:0.135.0" + "@oxc-parser/binding-darwin-x64": "npm:0.135.0" + "@oxc-parser/binding-freebsd-x64": "npm:0.135.0" + "@oxc-parser/binding-linux-arm-gnueabihf": "npm:0.135.0" + "@oxc-parser/binding-linux-arm-musleabihf": "npm:0.135.0" + "@oxc-parser/binding-linux-arm64-gnu": "npm:0.135.0" + "@oxc-parser/binding-linux-arm64-musl": "npm:0.135.0" + "@oxc-parser/binding-linux-ppc64-gnu": "npm:0.135.0" + "@oxc-parser/binding-linux-riscv64-gnu": "npm:0.135.0" + "@oxc-parser/binding-linux-riscv64-musl": "npm:0.135.0" + "@oxc-parser/binding-linux-s390x-gnu": "npm:0.135.0" + "@oxc-parser/binding-linux-x64-gnu": "npm:0.135.0" + "@oxc-parser/binding-linux-x64-musl": "npm:0.135.0" + "@oxc-parser/binding-openharmony-arm64": "npm:0.135.0" + "@oxc-parser/binding-wasm32-wasi": "npm:0.135.0" + "@oxc-parser/binding-win32-arm64-msvc": "npm:0.135.0" + "@oxc-parser/binding-win32-ia32-msvc": "npm:0.135.0" + "@oxc-parser/binding-win32-x64-msvc": "npm:0.135.0" + "@oxc-project/types": "npm:^0.135.0" dependenciesMeta: "@oxc-parser/binding-android-arm-eabi": optional: true @@ -10893,7 +10893,7 @@ __metadata: optional: true "@oxc-parser/binding-win32-x64-msvc": optional: true - checksum: 10c0/e61a7429869a0abd1adc162999c3413b96fff77b4b77460436f8fd87d74d254731aea66cdc6a5c996185e8e227f0a2f61f165de74a52b8163646dd1464c561b9 + checksum: 10c0/d9ce631f9f52682dc36c80a6a9a6175444df61c063db3cc373f2e73317d95ac157ffe0671ecbfe3fff4e92125ef44fed9877275b44a03e768fd4cab02b9182c5 languageName: node linkType: hard @@ -14452,9 +14452,9 @@ __metadata: languageName: node linkType: hard -"unhead@npm:3.1.3": - version: 3.1.3 - resolution: "unhead@npm:3.1.3" +"unhead@npm:3.1.4": + version: 3.1.4 + resolution: "unhead@npm:3.1.4" dependencies: hookable: "npm:^6.1.1" unplugin: "npm:^3.0.0" @@ -14463,7 +14463,7 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: 10c0/410dbb58aa7048e5b51d94513b08da54884275cff391542dd3a9be9e8692fca4a7c1183eb92f4144ed081f73becc86ad6e6434183b5f090417da269ccac60466 + checksum: 10c0/0667889b125dd3d4c12a2e7acb26b37cb5a4d3124a52e2d1ac3ceec00decb792a7c8686c12ffd0d2dfcb2166e255073d6d5dfe5c2fdc0ee86c29995252b0f1b2 languageName: node linkType: hard From 5dbaf348da92f196da00ffeb0a38d9f779b288d8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:22:52 +0200 Subject: [PATCH 06/36] Update dependency brakeman to v8.0.5 (#39414) 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 22842a63797..4ac9d4f1a3f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,7 +134,7 @@ GEM blurhash (0.1.8) bootsnap (1.24.6) msgpack (~> 1.2) - brakeman (8.0.4) + brakeman (8.0.5) racc browser (6.2.0) builder (3.3.0) From 8ffc04b1981fa3efb66fb9ad93f73beacf5f36a8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:23:12 +0200 Subject: [PATCH 07/36] Update dependency sass to v1.101.0 (#39411) 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 ae1e3816589..2827548b9e9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12945,8 +12945,8 @@ __metadata: linkType: hard "sass@npm:^1.62.1, sass@npm:^1.70.0": - version: 1.100.0 - resolution: "sass@npm:1.100.0" + version: 1.101.0 + resolution: "sass@npm:1.101.0" dependencies: "@parcel/watcher": "npm:^2.4.1" chokidar: "npm:^5.0.0" @@ -12957,7 +12957,7 @@ __metadata: optional: true bin: sass: sass.js - checksum: 10c0/e2aab47c87b69d2d4f8e48fa665138548069f56a7fd0fc4e15c9bde888b715798e49d33436e873918a8849ca3cc6c141a68618f58e2f3b2e6ec179cc309ca622 + checksum: 10c0/1fbbcef2f767dec4d97773a2a084f4e1ef2e4abecf574e08743e52237069f1129a6b43b07b5c23aa3bcbf395509e40db758d9748a07940da227aa1626329a74d languageName: node linkType: hard From c037591b48cd43ce19c6ba1b482a92453e09aee8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 11:23:19 +0200 Subject: [PATCH 08/36] Update dependency hiredis-client to v0.30.0 (#39392) 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 4ac9d4f1a3f..09606693ee4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -304,8 +304,8 @@ GEM json highline (3.1.2) reline - hiredis-client (0.29.0) - redis-client (= 0.29.0) + hiredis-client (0.30.0) + redis-client (= 0.30.0) hkdf (0.3.0) htmlentities (4.4.2) http (5.3.1) @@ -707,7 +707,7 @@ GEM redcarpet (3.6.1) redis (5.4.1) redis-client (>= 0.22.0) - redis-client (0.29.0) + redis-client (0.30.0) connection_pool regexp_parser (2.12.0) reline (0.6.3) From 65f2470dba3bfc58ae28555d6d215300077b3d9e Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Mon, 15 Jun 2026 12:15:53 +0200 Subject: [PATCH 09/36] Destroy dependent notifications of a collection (#39429) --- app/models/collection.rb | 1 + app/models/notification.rb | 2 +- spec/models/collection_spec.rb | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/collection.rb b/app/models/collection.rb index 337126b1456..329460b574c 100644 --- a/app/models/collection.rb +++ b/app/models/collection.rb @@ -33,6 +33,7 @@ class Collection < ApplicationRecord has_many :accepted_collection_items, -> { accepted }, class_name: 'CollectionItem', inverse_of: :collection # rubocop:disable Rails/HasManyOrHasOneDependent has_many :collection_reports, dependent: :delete_all has_many :accounts, -> { merge(CollectionItem.pending_or_accepted) }, through: :collection_items + has_many :notifications, as: :activity, dependent: :destroy validates :name, presence: true validates :name, length: { maximum: 40 }, if: :local? diff --git a/app/models/notification.rb b/app/models/notification.rb index 9a1a3668690..a8fb5e53bde 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -136,7 +136,7 @@ class Notification < ApplicationRecord belongs_to :generated_annual_report, inverse_of: false belongs_to :quote, inverse_of: :notification belongs_to :collection_item, inverse_of: false # TODO: have an inverse? - belongs_to :collection, inverse_of: false # TODO: have an inverse? + belongs_to :collection, inverse_of: :notifications end validates :type, inclusion: { in: TYPES } diff --git a/spec/models/collection_spec.rb b/spec/models/collection_spec.rb index 67b51fdceac..16322aff9f8 100644 --- a/spec/models/collection_spec.rb +++ b/spec/models/collection_spec.rb @@ -221,4 +221,19 @@ RSpec.describe Collection do expect(subject.to_log_permalink).to eq ActivityPub::TagManager.instance.uri_for(subject) end end + + describe '#destroy' do + let(:collection) { Fabricate(:collection) } + + before do + Fabricate(:notification, activity: collection, type: :added_to_collection) + Fabricate(:notification, activity: collection, type: :collection_update) + end + + it 'removes the collection and all notifications that reference it' do + expect { collection.destroy } + .to change(described_class, :count).by(-1) + .and change(Notification, :count).by(-2) + end + end end From 083b325a9a89b2eb73e490595e987440cd544093 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Jun 2026 12:24:08 +0200 Subject: [PATCH 10/36] Change `Page Up`/`Page Down` hotkeys to require `Alt` modifier key (#39427) --- .../mastodon/components/hotkeys/index.tsx | 34 ++++++++++++++++--- .../mastodon/components/hotkeys/utils.ts | 16 +++++++++ .../features/keyboard_shortcuts/index.jsx | 4 +-- 3 files changed, 47 insertions(+), 7 deletions(-) diff --git a/app/javascript/mastodon/components/hotkeys/index.tsx b/app/javascript/mastodon/components/hotkeys/index.tsx index 481057bd7da..246255dcbef 100644 --- a/app/javascript/mastodon/components/hotkeys/index.tsx +++ b/app/javascript/mastodon/components/hotkeys/index.tsx @@ -1,6 +1,6 @@ import { useEffect, useRef } from 'react'; -import { normalizeKey, isKeyboardEvent } from './utils'; +import { normalizeKey, isKeyboardEvent, matchesKeyCode } from './utils'; /** * In case of multiple hotkeys matching the pressed key(s), @@ -55,6 +55,30 @@ function any(...keys: string[]): KeyMatcher { }); } +/** + * Matches any matcher function out of those provided + */ +function anyMatcher(...matchers: KeyMatcher[]): KeyMatcher { + return (event) => { + let match: ReturnType | undefined; + + for (const matcher of matchers) { + const matcherResult = matcher(event); + if (matcherResult.isMatch) { + match = matcherResult; + break; + } + } + + return ( + match ?? { + isMatch: false, + priority: hotkeyPriority.singleKey, + } + ); + }; +} + /** * Matches a single key combined with the option/alt modifier */ @@ -62,7 +86,7 @@ function optionPlus(key: string): KeyMatcher { return (event) => ({ // Matching against event.code here as alt combos are often // mapped to other characters - isMatch: event.altKey && event.code === `Key${key.toUpperCase()}`, + isMatch: event.altKey && matchesKeyCode(key, event.code), priority: hotkeyPriority.combo, }); } @@ -109,8 +133,8 @@ const hotkeyMatcherMap = { mention: just('m'), open: any('enter', 'o'), openProfile: just('p'), - moveDown: any('j', 'pagedown'), - moveUp: any('k', 'pageup'), + moveDown: anyMatcher(just('j'), optionPlus('pagedown')), + moveUp: anyMatcher(just('k'), optionPlus('pageup')), moveToTop: just('0'), toggleHidden: just('x'), toggleSensitive: just('h'), @@ -188,7 +212,7 @@ export function useHotkeys(handlers: HandlerMap) { if (shouldHandleEvent) { const matchCandidates: { - // A candidate will be have an undefined handler if it's matched, + // A candidate can have an undefined handler if it's matched, // but handled in a parent component rather than this one. handler: HandlerFunction | undefined; priority: number; diff --git a/app/javascript/mastodon/components/hotkeys/utils.ts b/app/javascript/mastodon/components/hotkeys/utils.ts index 1430e1685b3..a5f0ddd64dd 100644 --- a/app/javascript/mastodon/components/hotkeys/utils.ts +++ b/app/javascript/mastodon/components/hotkeys/utils.ts @@ -2,6 +2,9 @@ export function isKeyboardEvent(event: Event): event is KeyboardEvent { return 'key' in event; } +/** + * Normalises key values to consistent lowercase strings + */ export function normalizeKey(key: string): string { const lowerKey = key.toLowerCase(); @@ -27,3 +30,16 @@ export function normalizeKey(key: string): string { return lowerKey; } } + +/** + * Compare whether a key matches an `event.code` value, + * with support for single-letter keys (which are otherwise + * represented with a `Key` prefix, e.g. `m` is `KeyM`). + */ +export function matchesKeyCode(key: string, code: string) { + if (key.length === 1) { + return code === `Key${key.toUpperCase()}`; + } else { + return code.toLowerCase() === key.toLowerCase(); + } +} diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx index efc63ddfea4..316493ac51d 100644 --- a/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx +++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx @@ -88,11 +88,11 @@ class KeyboardShortcuts extends ImmutablePureComponent { - k, + k, + - j, + j, + From b4be90f9ea3e29e166b4fb0d0e0cc6b32dbf908b Mon Sep 17 00:00:00 2001 From: Hanage999 Date: Mon, 15 Jun 2026 19:31:16 +0900 Subject: [PATCH 11/36] Fix categorised custom emojis missing from the emoji picker (#39421) Signed-off-by: Hanage999 --- app/javascript/mastodon/features/emoji/picker.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/mastodon/features/emoji/picker.ts b/app/javascript/mastodon/features/emoji/picker.ts index 474eb0d48a4..9a49dd66ac4 100644 --- a/app/javascript/mastodon/features/emoji/picker.ts +++ b/app/javascript/mastodon/features/emoji/picker.ts @@ -103,7 +103,9 @@ const selectPickerData = createAppSelector( categories: [ 'recent', 'custom', - ...Object.keys(categories).toSorted(), + ...Object.keys(categories) + .toSorted() + .map((category) => `custom-${category}`), ...defaultCategories, ] as CategoryName[], }; From 8544f95ad63bdcf5401dbf121043f1645e725b83 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Jun 2026 12:34:18 +0200 Subject: [PATCH 12/36] Fix hovercard not showing in compose column (#39430) --- app/javascript/styles/mastodon/components.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 577288ce238..790b6584cca 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -3017,7 +3017,6 @@ a.account__display-name { &__pane { height: 100%; - overflow: hidden; display: flex; justify-content: flex-end; min-width: 285px; From 0a9cf31cc6e554fdb6e943fa56ace7d925a874b8 Mon Sep 17 00:00:00 2001 From: Nicholas La Roux Date: Mon, 15 Jun 2026 13:49:12 +0200 Subject: [PATCH 13/36] Add `devcontainer-lock.json` with Renovate update support (#39046) --- .devcontainer/devcontainer-lock.json | 9 +++++++++ .github/renovate.json5 | 7 +++++++ 2 files changed, 16 insertions(+) create mode 100644 .devcontainer/devcontainer-lock.json diff --git a/.devcontainer/devcontainer-lock.json b/.devcontainer/devcontainer-lock.json new file mode 100644 index 00000000000..4ae31f2169b --- /dev/null +++ b/.devcontainer/devcontainer-lock.json @@ -0,0 +1,9 @@ +{ + "features": { + "ghcr.io/devcontainers/features/sshd:1": { + "version": "1.1.0", + "resolved": "ghcr.io/devcontainers/features/sshd@sha256:f5251b8e4325f68f7280973c6cd65daff414449c66f240621502d4e8e74eb7ee", + "integrity": "sha256:f5251b8e4325f68f7280973c6cd65daff414449c66f240621502d4e8e74eb7ee" + } + } +} diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 076b2f9b1e6..a418c7ef026 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -15,6 +15,13 @@ // to `null` after any other rule set it to something. dependencyDashboardHeader: 'This issue lists Renovate updates and detected dependencies. Read the [Dependency Dashboard](https://docs.renovatebot.com/key-concepts/dashboard/) docs to learn more. Before approving any upgrade: read the description and comments in the [`renovate.json5` file](https://github.com/mastodon/mastodon/blob/main/.github/renovate.json5).', postUpdateOptions: ['yarnDedupeHighest'], + devcontainer: { + managerFilePatterns: [ + '/^\.devcontainer\/devcontainer\.json$/', + '/^\.devcontainer\.json$/', + '/^\.devcontainer\/devcontainer-lock\.json$/', + ], + }, // The types are now included in recent versions,we ignore them here until we upgrade and remove the dependency ignoreDeps: ['@types/emoji-mart'], packageRules: [ From 74391c72c647257fce809309599608d6fac746b1 Mon Sep 17 00:00:00 2001 From: Coro Date: Mon, 15 Jun 2026 22:04:52 +0900 Subject: [PATCH 14/36] Fix bio text overflow on account profile page (#39418) --- .../mastodon/components/account_header/styles.module.scss | 1 + app/javascript/mastodon/features/account_edit/styles.module.scss | 1 + 2 files changed, 2 insertions(+) diff --git a/app/javascript/mastodon/components/account_header/styles.module.scss b/app/javascript/mastodon/components/account_header/styles.module.scss index 4de49f79aea..48320a6ea4e 100644 --- a/app/javascript/mastodon/components/account_header/styles.module.scss +++ b/app/javascript/mastodon/components/account_header/styles.module.scss @@ -278,6 +278,7 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; font-size: 15px; color: var(--color-text-primary); unicode-bidi: plaintext; + overflow-wrap: anywhere; p { margin-bottom: 20px; diff --git a/app/javascript/mastodon/features/account_edit/styles.module.scss b/app/javascript/mastodon/features/account_edit/styles.module.scss index 4991f8e7e54..0c8ba3b33a3 100644 --- a/app/javascript/mastodon/features/account_edit/styles.module.scss +++ b/app/javascript/mastodon/features/account_edit/styles.module.scss @@ -41,6 +41,7 @@ .bio { unicode-bidi: plaintext; + overflow-wrap: anywhere; p:not(:last-child) { margin-bottom: 20px; From a6a8e8bfc0b57c20b4eb23795e19de2aa4e5b714 Mon Sep 17 00:00:00 2001 From: Dmytro Oliinyk Date: Mon, 15 Jun 2026 15:21:10 +0200 Subject: [PATCH 15/36] Fix service worker failing to load due to 404 on chunk dependencies (#39433) --- config/vite/plugin-sw-chunk-paths.ts | 61 ++++++++++++++++++++++++++++ vite.config.mts | 2 + 2 files changed, 63 insertions(+) create mode 100644 config/vite/plugin-sw-chunk-paths.ts diff --git a/config/vite/plugin-sw-chunk-paths.ts b/config/vite/plugin-sw-chunk-paths.ts new file mode 100644 index 00000000000..bcbf4689046 --- /dev/null +++ b/config/vite/plugin-sw-chunk-paths.ts @@ -0,0 +1,61 @@ +/* The service worker is built as a regular Vite entry point and is served from + `/sw.js` (a symlink to `packs/sw.js`), while the chunks it depends on live in + the build output directory (e.g. `/packs/`). + + Browsers resolve a module's static import specifiers relative to the *URL* of + the script, not its location on disk. Because the worker is served from the + root, relative specifiers such as `./chunk-abc123.js` resolve to + `/chunk-abc123.js` and return a 404, which prevents the service worker from + installing. + + This plugin rewrites those relative specifiers in the service worker output + to absolute paths pointing at the build output directory, so they resolve + correctly regardless of the URL the worker is served from. +*/ + +import type { Plugin, ResolvedConfig } from 'vite'; + +const SERVICE_WORKER_FILENAME = 'sw.js'; + +export function MastodonServiceWorkerChunkPaths(): Plugin { + let config: ResolvedConfig; + + return { + name: 'mastodon-sw-chunk-paths', + configResolved(resolvedConfig) { + config = resolvedConfig; + }, + renderChunk(code, chunk) { + if (chunk.fileName !== SERVICE_WORKER_FILENAME) { + return null; + } + + // Resolve the base from the final Vite config rather than receiving it as + // an argument, so forks or other plugins that alter `base` are respected. + // Vite normalises `base` to always include a trailing slash. + const { base } = config; + + // Drive the rewrite from the chunk's actual dependency list rather than a + // generic regex, so we only ever touch real (hashed) chunk specifiers and + // never accidentally match similar-looking text inside string literals. + const dependencies = [...chunk.imports, ...chunk.dynamicImports]; + + let rewritten = code; + for (const dependency of dependencies) { + // The worker sits at the root of the output directory, so each + // dependency is imported with a leading `./`. + rewritten = rewritten + .replaceAll(`"./${dependency}"`, `"${base}${dependency}"`) + .replaceAll(`'./${dependency}'`, `'${base}${dependency}'`); + } + + if (rewritten === code) { + return null; + } + + // Only import specifiers are changed, so the existing source map stays + // accurate enough; returning `null` avoids a spurious sourcemap warning. + return { code: rewritten, map: null }; + }, + }; +} diff --git a/vite.config.mts b/vite.config.mts index 06d6ab1990e..2fa892b309f 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -22,6 +22,7 @@ import svgr from 'vite-plugin-svgr'; import { MastodonAssetsManifest } from './config/vite/plugin-assets-manifest'; import { MastodonThemes } from './config/vite/plugin-mastodon-themes'; import { MastodonNameLookup } from './config/vite/plugin-name-lookup'; +import { MastodonServiceWorkerChunkPaths } from './config/vite/plugin-sw-chunk-paths'; import { MastodonServiceWorkerLocales } from './config/vite/plugin-sw-locales'; const jsRoot = path.resolve(__dirname, 'app/javascript'); @@ -185,6 +186,7 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => { MastodonThemes(), MastodonAssetsManifest(), MastodonServiceWorkerLocales(), + MastodonServiceWorkerChunkPaths(), legacy({ renderLegacyChunks: false, modernPolyfills: true, From 55075680c3fcd988c7872f31e4024bdb4d52da55 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 15 Jun 2026 15:45:44 +0200 Subject: [PATCH 16/36] Bump version to v4.7.0-alpha.1 (#39436) --- lib/mastodon/version.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 7ba53e1cfe2..0a3f72553bb 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -9,7 +9,7 @@ module Mastodon end def minor - 6 + 7 end def patch @@ -17,7 +17,7 @@ module Mastodon end def default_prerelease - 'rc.1' + 'alpha.1' end def prerelease From 3ed1b1db7fe7b2101cefd8c77e433e4a64895fb0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 15 Jun 2026 16:07:41 +0200 Subject: [PATCH 17/36] Update dependency react-easy-crop to v6 (#39371) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 98c0ffbd3bb..d3c2abe5460 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "punycode": "^2.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", - "react-easy-crop": "^5.5.6", + "react-easy-crop": "^6.0.0", "react-immutable-proptypes": "^2.2.0", "react-immutable-pure-component": "^2.2.2", "react-intl": "^10.0.0", diff --git a/yarn.lock b/yarn.lock index 2827548b9e9..43e5aaa3ff6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2997,7 +2997,7 @@ __metadata: punycode: "npm:^2.3.0" react: "npm:^18.2.0" react-dom: "npm:^18.2.0" - react-easy-crop: "npm:^5.5.6" + react-easy-crop: "npm:^6.0.0" react-immutable-proptypes: "npm:^2.2.0" react-immutable-pure-component: "npm:^2.2.2" react-intl: "npm:^10.0.0" @@ -12153,16 +12153,15 @@ __metadata: languageName: node linkType: hard -"react-easy-crop@npm:^5.5.6": - version: 5.5.7 - resolution: "react-easy-crop@npm:5.5.7" +"react-easy-crop@npm:^6.0.0": + version: 6.0.2 + resolution: "react-easy-crop@npm:6.0.2" dependencies: normalize-wheel: "npm:^1.0.1" - tslib: "npm:^2.0.1" peerDependencies: react: ">=16.4.0" react-dom: ">=16.4.0" - checksum: 10c0/446cc58157031af9638c88dc91bc4136d09e21c6562f030291e1e0d3a7808ce9fe29e2d44116c2ac70470c1a1fe2cd3947df3abc60c82faa550e8500c4bf443c + checksum: 10c0/45d25be073409185a84089a3e2a58f8fb36c3bb3c8153a900c8423e9812da1dbb35fc295c3be2c4e6ca6a2a6386dff7be669b66307d4f0e0ee27ede9b29e79c3 languageName: node linkType: hard From fdea47bfcb95f0737b5c3028b11f87f2a65843de Mon Sep 17 00:00:00 2001 From: diondiondion Date: Mon, 15 Jun 2026 16:20:53 +0200 Subject: [PATCH 18/36] [Accessibility] Return alt text for default server thumbnail (#39439) --- app/serializers/rest/instance_serializer.rb | 1 + config/locales/en.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 1c6252d27a5..05d8d83c0d7 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -31,6 +31,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer else { url: frontend_asset_url('images/preview.png'), + description: I18n.t('about.default_thumbnail_description', locale: object.languages[0]), } end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 03c281c3d13..6309e1a22bd 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4,6 +4,7 @@ en: about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!' contact_missing: Not set contact_unavailable: N/A + default_thumbnail_description: Two smiling cartoon mastodons (who look like elephants) toss a paper plane between them. They're surrounded by a bright blue sky and floating planets with trees and more mastodons on them. hosted_on: Mastodon hosted on %{domain} title: About accounts: From deafb09bf18536291d4d9566b484b31809cbdbcd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 09:51:17 +0200 Subject: [PATCH 19/36] New Crowdin Translations (automated) (#39449) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/fr.json | 4 ++-- app/javascript/mastodon/locales/zh-CN.json | 20 ++++++++--------- config/locales/da.yml | 1 + config/locales/de.yml | 1 + config/locales/el.yml | 1 + config/locales/es-AR.yml | 1 + config/locales/es-MX.yml | 1 + config/locales/es.yml | 1 + config/locales/it.yml | 2 ++ config/locales/ko.yml | 2 +- config/locales/nl.yml | 1 + config/locales/pt-BR.yml | 1 + config/locales/simple_form.ko.yml | 2 +- config/locales/simple_form.zh-CN.yml | 2 +- config/locales/sq.yml | 7 ++++++ config/locales/sv.yml | 1 + config/locales/vi.yml | 1 + config/locales/zh-CN.yml | 25 +++++++++++----------- config/locales/zh-TW.yml | 1 + 19 files changed, 48 insertions(+), 27 deletions(-) diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 933ee38bc7d..60b1e2eeef4 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -658,13 +658,13 @@ "empty_column.favourited_statuses": "Vous n’avez pas encore de message en favori. Lorsque vous en ajouterez un, il apparaîtra ici.", "empty_column.favourites": "Personne n’a encore ajouté ce message à ses favoris. Lorsque quelqu’un le fera, il apparaîtra ici.", "empty_column.follow_requests": "Vous n’avez pas encore de demande de suivi. Lorsque vous en recevrez une, elle apparaîtra ici.", - "empty_column.followed_tags": "Vous n'avez pas encore suivi d'hashtags. Lorsque vous le ferez, ils apparaîtront ici.", + "empty_column.followed_tags": "Vous n'avez pas encore suivi de hashtags. Lorsque vous le ferez, ils apparaîtront ici.", "empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag.", "empty_column.home": "Votre fil principal est vide ! Suivez plus de personnes pour le remplir.", "empty_column.list": "Il n’y a rien dans cette liste pour l’instant. Quand des membres de cette liste publieront de nouveaux messages, ils apparaîtront ici.", "empty_column.mutes": "Vous n’avez masqué aucun compte pour le moment.", "empty_column.notification_requests": "C'est fini ! Il n'y a plus rien ici. Lorsque vous recevez de nouvelles notifications, elles apparaitront ici conformément à vos préférences.", - "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour débuter la conversation.", + "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres personnes pour commencer la conversation.", "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des personnes d’autres serveurs pour remplir le fil public", "empty_state.no_results": "Aucun résultat", "error.no_hashtag_feed_access": "Rejoindre ou se connecter pour voir et suivre cet hashtag.", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 32627152235..6d2408f4d9c 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -45,7 +45,7 @@ "account.featured.collections": "收藏列表", "account.featured.new_collection": "新建收藏列表", "account.field_overflow": "显示完整内容", - "account.filters.all": "全部活动", + "account.filters.all": "所有活动", "account.filters.boosts_toggle": "显示转嘟", "account.filters.posts_boosts": "嘟文与转嘟", "account.filters.posts_only": "嘟文", @@ -57,7 +57,7 @@ "account.follow_request": "请求关注", "account.follow_request_cancel": "取消请求", "account.follow_request_cancel_short": "取消", - "account.follow_request_short": "请求", + "account.follow_request_short": "关注请求", "account.followers": "关注者", "account.followers.empty": "目前无人关注此用户。", "account.followers_counter": "{count, plural, other {{counter} 关注者}}", @@ -68,10 +68,10 @@ "account.follows_you": "关注了你", "account.go_to_profile": "前往个人资料页", "account.hide_reblogs": "隐藏来自 @{name} 的转嘟", - "account.in_memoriam": "谨此悼念。", + "account.in_memoriam": "谨此纪念。", "account.join_modal.day": "天", "account.join_modal.me": "你加入 {server} 的时间为", - "account.join_modal.me_anniversary": "加入 Mastodon 一周年快乐!你加入 {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} 的第一天!", @@ -96,7 +96,7 @@ "account.menu.hide_reblogs": "在时间线中隐藏转嘟", "account.menu.mention": "提及", "account.menu.mute": "停止提醒账号", - "account.menu.note.description": "仅对你可见", + "account.menu.note.description": "仅自己可见", "account.menu.open_original_page": "在 {domain} 上查看", "account.menu.remove_follower": "移除关注者", "account.menu.report": "举报账号", @@ -120,14 +120,14 @@ "account.name.help.username_self": "{username} 是你在此服务器上的用户名。另一个服务器上的其他人可能拥有相同的用户名。", "account.name_info": "这是什么?", "account.no_bio": "未提供描述。", - "account.node_modal.callout": "个人备注仅对你个人可见。", + "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.note.title": "个人备注(仅自己可见)", "account.open_original_page": "打开原始页面", "account.pending": "待定", "account.posts": "嘟文", @@ -154,7 +154,7 @@ "account_edit.bio.add_label": "添加个人简介", "account_edit.bio.edit_label": "编辑个人简介", "account_edit.bio.placeholder": "添加一段简短介绍,帮助其他人认识你。", - "account_edit.bio.title": "简介", + "account_edit.bio.title": "个人简介", "account_edit.bio_modal.add_title": "添加个人简介", "account_edit.bio_modal.edit_title": "编辑个人简介", "account_edit.column_button": "完成", @@ -245,7 +245,7 @@ "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": "如何隐藏此链接?", - "account_edit.verified_modal.step1.header": "复制下面的 HTML 代码并粘贴到你网站的标头(header)中", + "account_edit.verified_modal.step1.header": "复制下面的 HTML 代码并粘贴到你网站的标头中", "account_edit.verified_modal.step2.details": "如果已经将你的网站添加到自定义字段中,你需要删除并重新添加以触发验证。", "account_edit.verified_modal.step2.header": "将你的网站添加到自定义字段", "account_edit.verified_modal.title": "如何添加已验证的链接", @@ -256,7 +256,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.hidden_notice": "此内容仅自己可见。如需向他人展示此列表,请前往{page} > {modal} > {field}。", "account_list.total": "{total, plural, other {# 个账号}}", "admin.dashboard.daily_retention": "注册后用户留存率(按日计算)", "admin.dashboard.monthly_retention": "注册后用户留存率(按月计算)", diff --git a/config/locales/da.yml b/config/locales/da.yml index fc188f06d3f..6fa6b51ca5e 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -4,6 +4,7 @@ da: about_mastodon_html: 'Fremtidens sociale netværk: Ingen annoncer, ingen virksomhedsovervågning, etisk design og decentralisering! Vær ejer af egne data med Mastodon!' contact_missing: Ikke angivet contact_unavailable: Utilgængelig + default_thumbnail_description: To smilende tegneseriemastodonter (der ligner elefanter) kaster en papirflyver frem og tilbage. De er omgivet af en klar, blå himmel og svævende planeter med træer og flere mastodonter på. hosted_on: Mastodon hostet på %{domain} title: Om accounts: diff --git a/config/locales/de.yml b/config/locales/de.yml index 7d753d5d010..6e0c1b05d8a 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -4,6 +4,7 @@ de: about_mastodon_html: 'Das soziale Netzwerk der Zukunft: Keine Werbung, keine Überwachung durch Unternehmen – dafür dezentral und mit Anstand! Behalte mit Mastodon die Kontrolle über deine Daten!' contact_missing: Nicht festgelegt contact_unavailable: Nicht verfügbar + default_thumbnail_description: Zwei lächelnde Mastodonten, die wie Elefanten aussehen, werfen sich in einem Cartoon-Zeichenstil ein Papierflugzeug zu. Sie sind von einem hellblauen Himmel und anderen Planeten umgeben. Auf den Planeten befinden sich Bäume und weitere Mastodonten. hosted_on: Mastodon, eingerichtet auf %{domain} title: Über accounts: diff --git a/config/locales/el.yml b/config/locales/el.yml index 84df9075517..2263b97dbe2 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -4,6 +4,7 @@ el: about_mastodon_html: 'Το κοινωνικό δίκτυο του μέλλοντος: Χωρίς διαφημίσεις, χωρίς εταιρίες να σε κατασκοπεύουν, ηθικά σχεδιασμένο και αποκεντρωμένο! Με το Mastodon τα δεδομένα σου είναι πραγματικά δικά σου!' contact_missing: Δεν έχει οριστεί contact_unavailable: Μη διαθέσιμο + default_thumbnail_description: Δύο χαμογελαστοί καρτουνίστικοι μαστόδοντες (που μοιάζουν με ελέφαντες) πετάνε ένα χάρτινο αεροπλάνο μεταξύ τους. Περιβάλλονται από έναν φωτεινό μπλε ουρανό και αιωρούμενους πλανήτες με δέντρα και περισσότερους μαστόδοντες πάνω τους. hosted_on: Το Mastodon φιλοξενείται στο %{domain} title: Σχετικά accounts: diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml index a713916e495..c417fd9e055 100644 --- a/config/locales/es-AR.yml +++ b/config/locales/es-AR.yml @@ -4,6 +4,7 @@ es-AR: about_mastodon_html: 'La red social del futuro: ¡sin publicidad, sin vigilancia corporativa, con diseño ético y descentralización! ¡Con Mastodon vos sos el dueño de tus datos!' contact_missing: No establecido contact_unavailable: No disponible + default_thumbnail_description: Dos dibujos de mastodontes sonrientes (que se parecen a elefantes) se lanzan un avión de papel el uno al otro. A su alrededor, un cielo azul claro y planetas flotando con árboles y más mastodontes en ellos. hosted_on: Mastodon alojado en %{domain} title: Información accounts: diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml index 90fd0f2cc56..be6db66355e 100644 --- a/config/locales/es-MX.yml +++ b/config/locales/es-MX.yml @@ -4,6 +4,7 @@ es-MX: about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, con un diseño ético y descentralizada! ¡Sé dueño de tus datos con Mastodon!' contact_missing: No establecido contact_unavailable: No disponible + default_thumbnail_description: Dos dibujos de mastodontes sonrientes (que parecen elefantes) se lanzan un avión de papel el uno al otro. Están rodeados por un cielo azul brillante y planetas flotantes con árboles y más mastodontes en ellos. hosted_on: Mastodon alojado en %{domain} title: Acerca de accounts: diff --git a/config/locales/es.yml b/config/locales/es.yml index a4891610810..75299cdd71e 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -4,6 +4,7 @@ es: about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!' contact_missing: No establecido contact_unavailable: N/D + default_thumbnail_description: Dos dibujos de mastodontes sonrientes (que se parecen a elefantes) se lanzan un avión de papel el uno al otro. A su alrededor, un cielo azul claro y planetas flotando con árboles y más mastodontes en ellos. hosted_on: Mastodon alojado en %{domain} title: Acerca de accounts: diff --git a/config/locales/it.yml b/config/locales/it.yml index 7324df4ea97..570daf28b07 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -4,6 +4,7 @@ it: about_mastodon_html: 'Il social network del futuro: Nessuna pubblicità, zero sorveglianza aziendale, design etico e decentralizzazione! Sii il proprietario dei tuoi dati, con Mastodonte!' contact_missing: Non impostato contact_unavailable: N/D + default_thumbnail_description: Due mastodonti sorridenti dei cartoni animati (che sembrano elefanti) si lanciano in mezzo un aeroplanino di carta. Sono circondati da un cielo azzurro brillante e da pianeti fluttuanti con alberi e altri mastodonti su di essi. hosted_on: Mastodon ospitato su %{domain} title: Info accounts: @@ -1745,6 +1746,7 @@ it: types: blocking: Lista dei bloccati bookmarks: Segnalibri + custom_filters: Filtri domain_blocking: Lista dei domini bloccati following: Lista dei seguiti lists: Elenchi diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 81582da1f39..c6bf1dc4e9d 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -1706,7 +1706,7 @@ ko: table: expires_at: 만료 uses: 이용 수 - title: 초대하기 + title: 초대 link_preview: author_html: "%{name} 작성" potentially_sensitive_content: diff --git a/config/locales/nl.yml b/config/locales/nl.yml index cc09ae1b3e3..8a09ea84370 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -4,6 +4,7 @@ nl: about_mastodon_html: 'Het sociale netwerk van de toekomst: geen reclame, geen meekijkende bedrijven, ethisch ontwerp, en gedecentraliseerd! Met Mastodon ben je baas over je eigen gegevens!' contact_missing: Niet ingesteld contact_unavailable: n.v.t + default_thumbnail_description: Twee glimlachende getekende mastodonten (die op olifanten lijken) gooien een papieren vliegtuigje tussen elkaar in. Ze zijn omringd door een heldere blauwe lucht en zwevende planeten met bomen en meer mastodonten erop. hosted_on: Mastodon op %{domain} title: Over accounts: diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index 2ef8d93ea3c..4c4c54238c7 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -4,6 +4,7 @@ pt-BR: about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!' contact_missing: Não definido contact_unavailable: Não disponível + default_thumbnail_description: Dois mastodontes sorridentes de desenho (que parecem dois elefantes) lançam um avião de papel entre eles. Eles estão arrodeados por um céu azul brilhante e planetas flutuantes com árvores e mais mastodontes neles. hosted_on: Mastodon hospedado em %{domain} title: Sobre accounts: diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml index ef6a3d5a962..76ab6346bd9 100644 --- a/config/locales/simple_form.ko.yml +++ b/config/locales/simple_form.ko.yml @@ -64,7 +64,7 @@ ko: setting_display_media_default: 민감함으로 설정된 미디어를 보여주기 전에 경고하기 setting_display_media_hide_all: 모든 미디어를 보여주기 전 경고 setting_display_media_show_all: 민감함으로 표시된 미디어를 포함하여 모든 미디어를 경고 없이 보여줍니다 - setting_emoji_style: 에모지 표현 방식. "자동"은 시스템 기본 에모지를 적용하고 그렇지 못하는 오래된 브라우저의 경우 트웨모지를 사용합니다. + setting_emoji_style: 에모지 표현 방식. "자동"은 시스템 기본 에모지를 적용하고 오래된 브라우저의 경우 트웨모지를 사용합니다. setting_quick_boosting_html: 활성화하면 %{boost_icon}부스트 아이콘을 클릭했을 때 부스트/인용 드롭다운 메뉴가 뜨지 않고 바로 부스트하게 됩니다. 인용은 %{options_icon} (옵션) 메뉴 안으로 이동합니다. setting_use_blurhash: 그라디언트는 숨겨진 내용의 색상을 기반으로 하지만 상세 내용은 보이지 않게 합니다 setting_use_pending_items: 타임라인의 새 게시물을 자동으로 보여 주는 대신, 클릭해서 나타내도록 합니다 diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml index 83dd55aecd9..40f285f5224 100644 --- a/config/locales/simple_form.zh-CN.yml +++ b/config/locales/simple_form.zh-CN.yml @@ -155,7 +155,7 @@ zh-CN: jurisdiction: 请列出支付运营费用者所在的国家/地区。如果为公司或其他实体,请列出其注册的国家/地区以及相应的城市、地区、领地或州。 min_age: 不应低于你所在地法律管辖权要求的最低年龄。 user: - chosen_languages: 仅选中语言的嘟文会出现在公共时间线上。此设置不影响主页时间轴及列表。 + chosen_languages: 仅选中语言的嘟文会出现在公共时间线上。此设置不影响主页时间线及列表。 date_of_birth: other: 我们必须确保你至少年满 %{count} 岁才能使用 %{domain}。我们不会存储此信息。 role: 角色用于控制用户拥有的权限。 diff --git a/config/locales/sq.yml b/config/locales/sq.yml index b69b9412439..dc199f0a0c0 100644 --- a/config/locales/sq.yml +++ b/config/locales/sq.yml @@ -4,6 +4,7 @@ sq: about_mastodon_html: 'Rrjeti social i së ardhmes: Pa reklama, pa sy vëzhguese nga korporata, etik dhe i decentralizuar! Merrni sërisht zotësinë e të dhënave tuaja, me Mastodon!' contact_missing: E pacaktuar contact_unavailable: N/A + default_thumbnail_description: Dy mastodonë buzagas vizatim (që duken si elefantë) hedhin mes tyre një aeroplan prej letre. Janë të rrethuar nga qielli i ndritshëm i kaltër dhe planete pezull, me më tepër mastodonë mbi ta. hosted_on: Server Mastodon i strehuar në %{domain} title: Mbi accounts: @@ -1669,6 +1670,9 @@ sq: bookmarks_html: one: Ju ndan një hap nga zëvendësimi i faqerojtësve tuaj, me %{count} postim nga %{filename}. other: Ju ndan një hap nga zëvendësimi i faqerojtësve tuaj, me %{count} postime nga %{filename}. + custom_filters_html: + one: Ju ndan një hap nga zëvendësimi i filtrave tuaj me lëndën e %{filename}. Te filtrat e rinj mund të shtohet deri në %{count} filtër. + other: Ju ndan një hap nga zëvendësimi i filtrave tuaj me lëndën e %{filename}. Te filtrat e rinj mund të shtohen deri në %{count} filtra. domain_blocking_html: one: Ju ndan një hap nga zëvendësimi i listës tuaj të bllokimeve të përkatësive, me %{count} përkatësi nga %{filename}. other: Ju ndan një hap nga zëvendësimi i listës tuaj të bllokimeve të përkatësive, me %{count} përkatësi nga %{filename}. @@ -1688,6 +1692,9 @@ sq: bookmarks_html: one: Ju ndan një hap nga shtimi te faqerojtësit tuaj i deri %{count} postimi nga %{filename}. other: Ju ndan një hap nga shtimi te faqerojtësit tuaj i deri %{count} postimeve nga %{filename}. + custom_filters_html: + one: Ju ndan një hap nga shtimi te filtrat tuaj i deri në %{count} filtri nga %{filename}. + other: Ju ndan një hap nga shtimi te filtrat tuaj i deri në %{count} filtrave nga %{filename}. domain_blocking_html: one: Ju ndan një hap nga bllokimi i deri %{count} përkatësie nga %{filename}. other: Ju ndan një hap nga bllokimi i deri %{count} përkatësive nga %{filename}. diff --git a/config/locales/sv.yml b/config/locales/sv.yml index 6727e7c5004..2e4dc3cc09d 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -4,6 +4,7 @@ sv: about_mastodon_html: 'Framtidens sociala medium: Ingen reklam. Ingen övervakning. Etisk design och decentralisering! Äg din data med Mastodon!' contact_missing: Inte inställd contact_unavailable: Ej tillämplig + default_thumbnail_description: Två leende tecknade mastodonter (som ser ut som elefanter) kastar ett pappersplan mellan dem. De är omgivna av en klarblå himmel och svävande planeter med träd och fler mastodonter på dem. hosted_on: Mastodon-värd på %{domain} title: Om accounts: diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 7d005edf3f3..ff24b1bf39b 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -4,6 +4,7 @@ vi: about_mastodon_html: 'Mạng xã hội của tương lai: Không quảng cáo, không bán thông tin người dùng và phi tập trung! Làm chủ dữ liệu của bạn với Mastodon!' contact_missing: Chưa thiết lập contact_unavailable: N/A + default_thumbnail_description: Hai chú voi ma mút hoạt hình đang mỉm cười và tung một chiếc máy bay giấy cho nhau. Chúng được bao quanh bởi bầu trời xanh tươi sáng và những hành tinh trôi nổi với cây cối và nhiều voi ma mút khác trên đó. hosted_on: "%{domain} vận hành nhờ Mastodon" title: Giới thiệu accounts: diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 23544c9f1ff..17029f3c2ef 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -1,9 +1,10 @@ --- zh-CN: about: - about_mastodon_html: 来自未来的社交网络:无广告、无监视、去中心化、合乎道德!使用 Mastodon 夺回你的数据! - contact_missing: 未设定 + about_mastodon_html: 迎接未来的社交网络:拒绝广告,告别商业监视,坚持伦理设计,拥抱去中心化!加入 Mastodon,夺回你的数据主权! + contact_missing: 未设置 contact_unavailable: 未公开 + default_thumbnail_description: 两只微笑的卡通长毛象(看起来像大象)互相扔纸飞机。蔚蓝的穹顶之下,周遭环绕着林木葱郁的漂浮星球,成群的长毛象在其中伫立、繁衍生息。 hosted_on: 运行在 %{domain} 上的 Mastodon 实例 title: 关于本站 accounts: @@ -14,7 +15,7 @@ zh-CN: following: other: 正在关注 instance_actor_flash: 该账号用来代表虚拟角色,并不代表个人用户,仅代表服务器本身。该账号用于联合目的,不应该被停用。 - last_active: 上次活跃 + last_active: 上次活跃时间 link_verified_on: 此链接的所有权已在 %{date} 验证 nothing_here: 空空如也! pin_errors: @@ -82,7 +83,7 @@ zh-CN: invite_request_text: 加入理由 invited_by: 邀请者为 ip: IP 地址 - joined: 加入于 + joined: 加入时间 location: all: 全部 local: 本站 @@ -90,9 +91,9 @@ zh-CN: title: 位置 login_status: 登录状态 media_attachments: 媒体文件 - memorialize: 设为追悼账号 - memorialized: 已设为追悼账号 - memorialized_msg: 成功将 %{username} 转换为追悼账号 + memorialize: 转为纪念账号 + memorialized: 已转为纪念账号 + memorialized_msg: 成功将 %{username} 转为纪念账号 moderation: active: 活跃 all: 全部 @@ -113,11 +114,11 @@ zh-CN: previous_strikes: 既往处罚 previous_strikes_description_html: other: 此账号已有%{count}次处罚。 - promote: 设为管理员 + promote: 提升权限 protocol: 协议 public: 公开页面 push_subscription_expires: PuSH 订阅过期时间 - redownload: 刷新账号信息 + redownload: 刷新个人资料 redownloaded_msg: 成功从来源站点刷新 %{username} 的账号信息 reject: 拒绝 rejected_msg: 已拒绝 %{username} 的注册申请 @@ -215,7 +216,7 @@ zh-CN: enable_relay: 启用中继站 enable_sign_in_token_auth_user: 为用户启用邮件令牌身份验证 enable_user: 启用用户 - memorialize_account: 设为追悼账号 + memorialize_account: 转为纪念账号 promote_user: 指派管理员 publish_terms_of_service: 发布服务条款 reject_appeal: 驳回申诉 @@ -284,7 +285,7 @@ zh-CN: enable_relay_html: "%{name} 启用了中继站 %{target}" enable_sign_in_token_auth_user_html: "%{name} 为 %{target} 启用了邮件令牌身份验证" enable_user_html: "%{name} 将用户 %{target} 设置为允许登录" - memorialize_account_html: "%{name} 将 %{target} 设置为追悼账号" + memorialize_account_html: "%{name} 将 %{target} 转为纪念账号" promote_user_html: "%{name} 将用户 %{target} 设为管理员" publish_terms_of_service_html: "%{name} 更新了服务条款" reject_appeal_html: "%{name} 驳回了 %{target} 对审核结果的申诉" @@ -608,7 +609,7 @@ zh-CN: select_capabilities: 选择能力 sign_in: 登录 status: 状态 - title: 联邦宇宙辅助服务提供商(Fediverse Auxiliary Service Providers) + title: 联邦宇宙辅助服务提供商 title: FASP follow_recommendations: description_html: "“关注推荐”可帮助新用户快速找到有趣的内容。 当用户与他人的互动不足以形成个性化的建议时,就会推荐关注这些账号。推荐会每日更新,基于选定语言的近期最高互动数和最多本站关注者数综合评估得出。" diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 68e9ae1702e..713ec33db9c 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -6,6 +6,7 @@ zh-TW: 去中心化設計!加入 Mastodon,擁有您的資料! contact_missing: 未設定 contact_unavailable: 未公開 + default_thumbnail_description: 兩隻正在微笑的卡通風格長毛象 (看起來像是大象) 正在互相拋接紙飛機。他們被明亮的藍天與有著樹木和更多長毛象的漂浮行星群所包圍。 hosted_on: 於 %{domain} 託管之 Mastodon 站點 title: 關於本站 accounts: From 737f444c976c7c05b90894edf18fa00d0069d01c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 10:21:25 +0200 Subject: [PATCH 20/36] Update dependency shoulda-matchers to v8 (#39405) 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 09606693ee4..56aaaaf9ae4 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.8) + json (2.19.9) json-canonicalization (1.0.0) json-jwt (1.17.1) activesupport (>= 4.2) @@ -814,8 +814,8 @@ GEM activerecord (>= 4.0.0) railties (>= 4.0.0) securerandom (0.4.1) - shoulda-matchers (7.0.1) - activesupport (>= 7.1) + shoulda-matchers (8.0.1) + activesupport (>= 7.2) sidekiq (8.1.6) connection_pool (>= 3.0.0) json (>= 2.16.0) From 6acde651c44ec1f06ae80d45b018f941f4b639de Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 08:22:08 +0000 Subject: [PATCH 21/36] Update dependency rubyzip to v3.4.0 (#39423) 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 56aaaaf9ae4..fd55474cce2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -802,7 +802,7 @@ GEM ruby-vips (2.3.0) ffi (~> 1.12) logger - rubyzip (3.3.1) + rubyzip (3.4.0) rufus-scheduler (3.9.2) fugit (~> 1.1, >= 1.11.1) safety_net_attestation (0.5.0) From bd913f4541573153b1397bbf41ac3e7107833128 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 16 Jun 2026 04:32:19 -0400 Subject: [PATCH 22/36] Remove deprecated `bin/update` script (#39443) --- bin/update | 31 ------------------------------- 1 file changed, 31 deletions(-) delete mode 100755 bin/update diff --git a/bin/update b/bin/update deleted file mode 100755 index 6d73559a392..00000000000 --- a/bin/update +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env ruby -require 'fileutils' -include FileUtils - -# path to your application root. -APP_ROOT = File.expand_path('..', __dir__) - -def system!(*args) - system(*args) || abort("\n== Command #{args} failed ==") -end - -chdir APP_ROOT do - # This script is a way to update your development environment automatically. - # Add necessary update steps to this file. - - puts '== Installing dependencies ==' - system! 'gem install bundler --conservative' - system('bundle check') || system!('bundle install') - - # Install JavaScript dependencies if using Yarn - system('bin/yarn') - - puts "\n== Updating database ==" - system! 'bin/rails db:migrate' - - puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' - - puts "\n== Restarting application server ==" - system! 'bin/rails restart' -end From 7176eeecb8bba80a621d1d02a9313c060375a430 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 10:37:56 +0200 Subject: [PATCH 23/36] Update dependency postcss-preset-env to v11.3.1 (#39444) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 170 +++++++++++++++++++++++++++--------------------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/yarn.lock b/yarn.lock index 43e5aaa3ff6..dd6eb7b47e1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1260,16 +1260,16 @@ __metadata: languageName: node linkType: hard -"@csstools/css-color-parser@npm:^4.1.0, @csstools/css-color-parser@npm:^4.1.1": - version: 4.1.1 - resolution: "@csstools/css-color-parser@npm:4.1.1" +"@csstools/css-color-parser@npm:^4.1.0, @csstools/css-color-parser@npm:^4.1.7": + version: 4.1.7 + resolution: "@csstools/css-color-parser@npm:4.1.7" dependencies: "@csstools/color-helpers": "npm:^6.0.2" "@csstools/css-calc": "npm:^3.2.1" peerDependencies: "@csstools/css-parser-algorithms": ^4.0.0 "@csstools/css-tokenizer": ^4.0.0 - checksum: 10c0/427bd32f1a8917342a70a6fd97b93bb492aae7c8790e7782b5d6edc8c08064bb8aef0a86099f286db00288f9afea85eb92c46350e9057f5fea058e03a2a09203 + checksum: 10c0/5e94c6cb89b06f0caffadfd5f6666f2a97fd0906756151fc7a73b3a758ab86d3086bb18956171b003d69735e62f40b544dda28aa48012fc703809dc0450681dc languageName: node linkType: hard @@ -1311,18 +1311,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-alpha-function@npm:^2.0.5": - version: 2.0.5 - resolution: "@csstools/postcss-alpha-function@npm:2.0.5" +"@csstools/postcss-alpha-function@npm:^2.0.6": + version: 2.0.6 + resolution: "@csstools/postcss-alpha-function@npm:2.0.6" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/e5fbaa1c0efaad396a6d46bd6f01c8c8419597308447f5783c1bfc19aa8d0b5e9ad7c743773ad6de89662cde9f407181ec0528e3a32a9e1778567c1c6717670e + checksum: 10c0/69596afafa3b4683708783d01dcea1ee8dc84e451f3f461c69f15498fd333c3ab0385cb14e2ad162d888c13473bcbe0c4639c816b8666c21f0405cb26219b6e8 languageName: node linkType: hard @@ -1338,63 +1338,63 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function-display-p3-linear@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-color-function-display-p3-linear@npm:2.0.4" +"@csstools/postcss-color-function-display-p3-linear@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-color-function-display-p3-linear@npm:2.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b8fa4d0a5760a5453ee4d9a8395c85449edc22c212c310df15fb7b9270d3108cbf0ebd3959216a0d0a9c30d416ff3997817690147bd322bcbbc92223f7a94214 + checksum: 10c0/bedd706af58645a0891ccdbea845bea5aa0efbc5cffbc120f3973e98b69b4da2aae0334915eb64a3a3f0c74ce7e746a7bcb36cfa9759ae22d4d9bb33f1d32887 languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^5.0.4": - version: 5.0.4 - resolution: "@csstools/postcss-color-function@npm:5.0.4" +"@csstools/postcss-color-function@npm:^5.0.5": + version: 5.0.5 + resolution: "@csstools/postcss-color-function@npm:5.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0b99e8a681278f1bbd15a63de4cc0a04c72edc90c93f28e5b906032169897592dab55e9824e955b72fd39a87a24c1fb6bb4142cb5c2d841f5cc9eaed1a20daaf + checksum: 10c0/3e877faf957d7bf8e66f66d7fa9fc7b8d4bb6ee1b97f3b3b27a13784ccdb18214f4e00174fd8c2315379ea8358e26eebe0b2db4e39a7571fdbf667483532152d languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-color-mix-function@npm:4.0.4" +"@csstools/postcss-color-mix-function@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-color-mix-function@npm:4.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/110c052e136ebaeed4f71b16e1ded62b6355ffc2aa93a81f67704d6222b13b218134e5edc9ac667d2f8828199846648c62d892e2a62d966d9aa945b8c82915e1 + checksum: 10c0/6091585caaedf8fd6a9d0548ee079b3060be91412e16a1fa04d7496264c926df3adf8311af56c84324444abca6e4e44ac8400733b59ed31f5f0b461a70aed30e languageName: node linkType: hard -"@csstools/postcss-color-mix-variadic-function-arguments@npm:^2.0.4": - version: 2.0.4 - resolution: "@csstools/postcss-color-mix-variadic-function-arguments@npm:2.0.4" +"@csstools/postcss-color-mix-variadic-function-arguments@npm:^2.0.5": + version: 2.0.5 + resolution: "@csstools/postcss-color-mix-variadic-function-arguments@npm:2.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/d054a9b8bb2b80c5fcfa71e4ca592188969fc9e0270aed4aba9458c85de604b98c94db63130ce6c79fb68070e5d35703cd9172f4d2510aff7aa00b511d4edf73 + checksum: 10c0/1289bd0b59fafb90c9eab5b4f5a91c4f4375b2d3aa5c2a46337dd255c8e0ffa66731d1e66e57ce2f1a3d10b0cbb6379db838b4737634b3005707738e05656809 languageName: node linkType: hard @@ -1424,18 +1424,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-contrast-color-function@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/postcss-contrast-color-function@npm:3.0.4" +"@csstools/postcss-contrast-color-function@npm:^3.0.5": + version: 3.0.5 + resolution: "@csstools/postcss-contrast-color-function@npm:3.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1ba0557c12270563875159423e30ca7bbfa1200a6801e889a31ec41ad7d677bfffbba6945aa0b8030c4ed003c2631453c1c86850f1a0b198179d3434a58210c3 + checksum: 10c0/ec319e6c3545669e294b5e0d7a44fd1e6e6dbda87293ef74311b32817aa571f90dcf819ac45d96f950913ea2165cb5f1e3c56ff3acbe7282eddbd0b4face8857 languageName: node linkType: hard @@ -1475,46 +1475,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^3.0.4": - version: 3.0.4 - resolution: "@csstools/postcss-gamut-mapping@npm:3.0.4" +"@csstools/postcss-gamut-mapping@npm:^3.0.5": + version: 3.0.5 + resolution: "@csstools/postcss-gamut-mapping@npm:3.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/8a61c21310a3b2f69e1fb8602b158fc50444417c0b29216baa302c7c1c479c57cc210ded20b1ef491d295da595517e08796fb87c7974ecf465503663ddd98b1e + checksum: 10c0/88b1a4a60bee4e639b9ea52015855e380ea76064dc8f1724110432cbfcfd909cb7388761051f34a7d3431c5bde0607e9ad391875ce5c43ec5c64044040ccf15a languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^6.0.4": - version: 6.0.4 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:6.0.4" +"@csstools/postcss-gradients-interpolation-method@npm:^6.0.5": + version: 6.0.5 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:6.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f7b4fb346735d025535c28ac2657f0efb1b079f6e63a308ab8111449904b53975b0fc11373e8086b2af4472809bc0702736805bae298f75b823b79f52f09a7ff + checksum: 10c0/c3720134c5abaa0006f83efa007e1f359bc33eba63e06570dfc882b94db14d95ed08c874ec11daaf2c664521d469d5ccce1658bc44d3406b535db00f24d74d12 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^5.0.4": - version: 5.0.4 - resolution: "@csstools/postcss-hwb-function@npm:5.0.4" +"@csstools/postcss-hwb-function@npm:^5.0.5": + version: 5.0.5 + resolution: "@csstools/postcss-hwb-function@npm:5.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0a464dfe9822c30627e993ed7ff53a144342ec85cc26ff5d01be65012032c8b8bd142793e523ebbe9091fe43a9a61d573178cc990ed88db5d6aaf3e1da22cd3e + checksum: 10c0/442d3c87935dbd23c38c96d1b1b1025a0f156083e51265d2811321e858017a07909e04f123b11a86185c36d04eb6676b3afa9065f79f63ea14ded983718fd7b4 languageName: node linkType: hard @@ -1692,18 +1692,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^5.0.4": - version: 5.0.4 - resolution: "@csstools/postcss-oklab-function@npm:5.0.4" +"@csstools/postcss-oklab-function@npm:^5.0.5": + version: 5.0.5 + resolution: "@csstools/postcss-oklab-function@npm:5.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/65671142b288dab86bebcc8fceecbad668551f86a3e2b979423f0310b233fe919ec54b822c6edf5c75077c0ea58ea3f3e8fea2b4c148063e16201930da6b9552 + checksum: 10c0/11ad49b5ed7508aef3cf8f26ea25321bd54375b60161b6839241d74c7db575fcb6a113cbfff66df76953f71a3a87244bdaa0065721207fe17301b2f4c84b9b63 languageName: node linkType: hard @@ -1752,18 +1752,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^4.0.4": - version: 4.0.4 - resolution: "@csstools/postcss-relative-color-syntax@npm:4.0.4" +"@csstools/postcss-relative-color-syntax@npm:^4.0.5": + version: 4.0.5 + resolution: "@csstools/postcss-relative-color-syntax@npm:4.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/588eb71e42d41d17f35466bb1922afca6de0fe31e762190ec2597215eeaf770004cfc5bfe6ca4d1dfb5ea865551ea30c93c3b7c095f6f8784ecbaa1dfee40c50 + checksum: 10c0/d5b5f5c645a86ce589d4a2c3f3426250efaf743a31d3ba6c9c685aefe24aca0d6614199f3064addf8ad4c3fb650bb784c2de74bb335a9605c08c0e02ac261243 languageName: node linkType: hard @@ -11440,18 +11440,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^8.0.4": - version: 8.0.4 - resolution: "postcss-color-functional-notation@npm:8.0.4" +"postcss-color-functional-notation@npm:^8.0.5": + version: 8.0.5 + resolution: "postcss-color-functional-notation@npm:8.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/b1846e65d4516ae3de9cdd47a1470c9c62a6459b52c563dd25d72f4527f99b6186a062501e3dc0bf9713b957f1f94100e5d32949cfe01be09185e94866fedf0c + checksum: 10c0/baea05053437347aa6c9b47ae730099799976626d33210e252fb66d54426882f91a7a84388ae778f3a1e09348740373b76b856c3009415d0aabbeaf7eb052230 languageName: node linkType: hard @@ -11598,18 +11598,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^8.0.4": - version: 8.0.4 - resolution: "postcss-lab-function@npm:8.0.4" +"postcss-lab-function@npm:^8.0.5": + version: 8.0.5 + resolution: "postcss-lab-function@npm:8.0.5" dependencies: - "@csstools/css-color-parser": "npm:^4.1.1" + "@csstools/css-color-parser": "npm:^4.1.7" "@csstools/css-parser-algorithms": "npm:^4.0.0" "@csstools/css-tokenizer": "npm:^4.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/utilities": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/7d32ff6f480510f3e854900c6b9ebcd3b230970288c651082d365a9d17283176fbcb8ba9a54779b0aa9c34c84106cabe29174c9308e48c82e6f55f519e8b1f4b + checksum: 10c0/d1bc4e5142b2c3b0576fcc7d43fd8622b80bce67f6b5e2ff655c4055409c660fb410cf92b9ce2798c7740069ecc61567d3b565edb80de3c8c9962e8cffd3d8b9 languageName: node linkType: hard @@ -11736,24 +11736,24 @@ __metadata: linkType: hard "postcss-preset-env@npm:^11.0.0": - version: 11.3.0 - resolution: "postcss-preset-env@npm:11.3.0" + version: 11.3.1 + resolution: "postcss-preset-env@npm:11.3.1" dependencies: - "@csstools/postcss-alpha-function": "npm:^2.0.5" + "@csstools/postcss-alpha-function": "npm:^2.0.6" "@csstools/postcss-cascade-layers": "npm:^6.0.0" - "@csstools/postcss-color-function": "npm:^5.0.4" - "@csstools/postcss-color-function-display-p3-linear": "npm:^2.0.4" - "@csstools/postcss-color-mix-function": "npm:^4.0.4" - "@csstools/postcss-color-mix-variadic-function-arguments": "npm:^2.0.4" + "@csstools/postcss-color-function": "npm:^5.0.5" + "@csstools/postcss-color-function-display-p3-linear": "npm:^2.0.5" + "@csstools/postcss-color-mix-function": "npm:^4.0.5" + "@csstools/postcss-color-mix-variadic-function-arguments": "npm:^2.0.5" "@csstools/postcss-container-rule-prelude-list": "npm:^1.0.1" "@csstools/postcss-content-alt-text": "npm:^3.0.1" - "@csstools/postcss-contrast-color-function": "npm:^3.0.4" + "@csstools/postcss-contrast-color-function": "npm:^3.0.5" "@csstools/postcss-exponential-functions": "npm:^3.0.3" "@csstools/postcss-font-format-keywords": "npm:^5.0.0" "@csstools/postcss-font-width-property": "npm:^1.0.0" - "@csstools/postcss-gamut-mapping": "npm:^3.0.4" - "@csstools/postcss-gradients-interpolation-method": "npm:^6.0.4" - "@csstools/postcss-hwb-function": "npm:^5.0.4" + "@csstools/postcss-gamut-mapping": "npm:^3.0.5" + "@csstools/postcss-gradients-interpolation-method": "npm:^6.0.5" + "@csstools/postcss-hwb-function": "npm:^5.0.5" "@csstools/postcss-ic-unit": "npm:^5.0.1" "@csstools/postcss-image-function": "npm:^1.0.0" "@csstools/postcss-initial": "npm:^3.0.0" @@ -11769,12 +11769,12 @@ __metadata: "@csstools/postcss-mixins": "npm:^1.0.0" "@csstools/postcss-nested-calc": "npm:^5.0.0" "@csstools/postcss-normalize-display-values": "npm:^5.0.1" - "@csstools/postcss-oklab-function": "npm:^5.0.4" + "@csstools/postcss-oklab-function": "npm:^5.0.5" "@csstools/postcss-position-area-property": "npm:^2.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^5.1.0" "@csstools/postcss-property-rule-prelude-list": "npm:^2.0.0" "@csstools/postcss-random-function": "npm:^3.0.3" - "@csstools/postcss-relative-color-syntax": "npm:^4.0.4" + "@csstools/postcss-relative-color-syntax": "npm:^4.0.5" "@csstools/postcss-scope-pseudo-class": "npm:^5.0.0" "@csstools/postcss-sign-functions": "npm:^2.0.3" "@csstools/postcss-stepped-value-functions": "npm:^5.0.3" @@ -11791,7 +11791,7 @@ __metadata: cssdb: "npm:^8.9.0" postcss-attribute-case-insensitive: "npm:^8.0.0" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^8.0.4" + postcss-color-functional-notation: "npm:^8.0.5" postcss-color-hex-alpha: "npm:^11.0.0" postcss-color-rebeccapurple: "npm:^11.0.0" postcss-custom-media: "npm:^12.0.1" @@ -11804,7 +11804,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^7.0.0" postcss-image-set-function: "npm:^8.0.0" - postcss-lab-function: "npm:^8.0.4" + postcss-lab-function: "npm:^8.0.5" postcss-logical: "npm:^9.0.0" postcss-nesting: "npm:^14.0.0" postcss-opacity-percentage: "npm:^3.0.0" @@ -11816,7 +11816,7 @@ __metadata: postcss-selector-not: "npm:^9.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/3e5793abc8fe93e3114142e714c46dd97745a9129d7ad533f6ef8adb0e63749fae88fe349860366e5caa291b7478104867bd39e9850219aaca00ab21bb0d348d + checksum: 10c0/70c42a1a35cdd79aacd73838ec6af0ef25c5c4cbdccec9348138953210461d09fdb1848789226fa093c8c5c3382161aaa88558ccc664430efe0a8aac5c28f39c languageName: node linkType: hard From 760a484b71482c7899c1f7a32ad52fb099815725 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 11:07:57 +0200 Subject: [PATCH 24/36] Update github/codeql-action digest to 8aad20d (#39425) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/codeql.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 0ba1d244dd7..451230021dc 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -36,7 +36,7 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 + uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -49,7 +49,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 + uses: github/codeql-action/autobuild@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4 # ℹ️ Command-line programs to run using the OS shell. # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun @@ -62,6 +62,6 @@ jobs: # ./location_of_script_within_repo/buildscript.sh - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v4 + uses: github/codeql-action/analyze@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4 with: category: '/language:${{matrix.language}}' From 2edc3865bfd30a208be1c8bd047517d09220ed0f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 11:08:01 +0200 Subject: [PATCH 25/36] Update crowdin/github-action digest to 52aa776 (#39424) 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 5c52fd61f8b..fa631b658ad 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@8868a33591d21088edfc398968173a3b98d51706 # v2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/crowdin-download.yml b/.github/workflows/crowdin-download.yml index 17f2ffbf562..2de902f5e77 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@8868a33591d21088edfc398968173a3b98d51706 # v2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index c781bd4f138..0e81dbf437b 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: crowdin action - uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # v2 with: upload_sources: true upload_translations: false From fbab6f8d6b1e5eef945159d796c12f0fe70459b3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 16 Jun 2026 11:45:16 +0200 Subject: [PATCH 26/36] Update dependency @vitest/browser to v4.1.8 [SECURITY] (#39451) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renaud Chaput --- yarn.lock | 172 ++++++++++++++++++++++++------------------------------ 1 file changed, 76 insertions(+), 96 deletions(-) diff --git a/yarn.lock b/yarn.lock index dd6eb7b47e1..f69505d2771 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5400,46 +5400,46 @@ __metadata: linkType: hard "@vitest/browser-playwright@npm:^4.1.7": - version: 4.1.7 - resolution: "@vitest/browser-playwright@npm:4.1.7" + version: 4.1.9 + resolution: "@vitest/browser-playwright@npm:4.1.9" dependencies: - "@vitest/browser": "npm:4.1.7" - "@vitest/mocker": "npm:4.1.7" + "@vitest/browser": "npm:4.1.9" + "@vitest/mocker": "npm:4.1.9" tinyrainbow: "npm:^3.1.0" peerDependencies: playwright: "*" - vitest: 4.1.7 + vitest: 4.1.9 peerDependenciesMeta: playwright: optional: false - checksum: 10c0/b5d5b843e4dac3ae622a2d5049160326205e52a74e314e06d7167162fe9bb5d71972d2b8c07d180b882a97b1af644cdeff1f3a97744a218ccddd440946c4b498 + checksum: 10c0/4c042c980bb0aa950646d4d1f0f131f44156141d86f54eb96f5f69863ed05720cac7ef1a0901ab71e18929a62c41e5d64a428b2612ea708905bf423ff961dcf4 languageName: node linkType: hard -"@vitest/browser@npm:4.1.7, @vitest/browser@npm:^4.1.0": - version: 4.1.7 - resolution: "@vitest/browser@npm:4.1.7" +"@vitest/browser@npm:4.1.9, @vitest/browser@npm:^4.1.0": + version: 4.1.9 + resolution: "@vitest/browser@npm:4.1.9" dependencies: "@blazediff/core": "npm:1.9.1" - "@vitest/mocker": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/mocker": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" magic-string: "npm:^0.30.21" pngjs: "npm:^7.0.0" sirv: "npm:^3.0.2" tinyrainbow: "npm:^3.1.0" ws: "npm:^8.19.0" peerDependencies: - vitest: 4.1.7 - checksum: 10c0/7ba88939a899e763510661059a8c620f1f42cf8db05c9bfb955cfb8c3e096c22ab630b6e50150579988e1483acc99772feb3d4114dd651f14c0aa9a01aa60505 + vitest: 4.1.9 + checksum: 10c0/9ff634e56b0bd5a3727f2eec7666f97a089b92fb596d5b9e4fbe2a2e4fd988aa7a7bd2a7b98d7cf14790717db69db8f72bae6dc007f2fac613b9bb93d8e8edfb languageName: node linkType: hard "@vitest/coverage-v8@npm:^4.1.0": - version: 4.1.5 - resolution: "@vitest/coverage-v8@npm:4.1.5" + version: 4.1.9 + resolution: "@vitest/coverage-v8@npm:4.1.9" dependencies: "@bcoe/v8-coverage": "npm:^1.0.2" - "@vitest/utils": "npm:4.1.5" + "@vitest/utils": "npm:4.1.9" ast-v8-to-istanbul: "npm:^1.0.0" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" @@ -5449,12 +5449,12 @@ __metadata: std-env: "npm:^4.0.0-rc.1" tinyrainbow: "npm:^3.1.0" peerDependencies: - "@vitest/browser": 4.1.5 - vitest: 4.1.5 + "@vitest/browser": 4.1.9 + vitest: 4.1.9 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10c0/71bf669cc1714611855caef5e89b4f3e405e410bdb34e4b2f6fbc9dc5e50dd9e09e73068c1750f6bfa03f0cd9209a2b6e03665c3bdbd34e0adff1ca65c482b7b + checksum: 10c0/02bc408d5d8d5188bb569ae1df1f56903e9e19a6a19ddeff07140e1b344b82662f0669c7ee87b6f4f82c9d1d63a0296fe40c023f923a500a707463c8c05ec133 languageName: node linkType: hard @@ -5471,25 +5471,25 @@ __metadata: languageName: node linkType: hard -"@vitest/expect@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/expect@npm:4.1.7" +"@vitest/expect@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/expect@npm:4.1.9" dependencies: "@standard-schema/spec": "npm:^1.1.0" "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/spy": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" chai: "npm:^6.2.2" tinyrainbow: "npm:^3.1.0" - checksum: 10c0/1a72387c6d3cac1e12cd4df382e666d96560b38001ea0133f1e0a22825f71ccf1640ccce13244296b0054c15cf04442f3adbd67dfc57fe542bd35a46cd805487 + checksum: 10c0/243bacaed2cba5e0ea4ec7465662fcec465a358a0e06381e337fac49426aa67a73b104fbb9d65d8bccadfba8f70e27f57ffb897aacfa140f579a556367357875 languageName: node linkType: hard -"@vitest/mocker@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/mocker@npm:4.1.7" +"@vitest/mocker@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/mocker@npm:4.1.9" dependencies: - "@vitest/spy": "npm:4.1.7" + "@vitest/spy": "npm:4.1.9" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.21" peerDependencies: @@ -5500,7 +5500,7 @@ __metadata: optional: true vite: optional: true - checksum: 10c0/e03dbbba435543e3cfa5e034ba8ade371de5e398255f75366ebc370ff8dd78d45f7d7cc9daa76eb1d399b31e659e47d3cbb710566e64ceeeba3f99b418e4b955 + checksum: 10c0/707353b7435bbfd441cc754e4ee7bc5921b70d07b051c6e414b6bbe4ca369154702b0ddeb603389469fe87ca1983e002eb2d55044582661f54a1945dd27e5c82 languageName: node linkType: hard @@ -5513,43 +5513,34 @@ __metadata: languageName: node linkType: hard -"@vitest/pretty-format@npm:4.1.5": - version: 4.1.5 - resolution: "@vitest/pretty-format@npm:4.1.5" +"@vitest/pretty-format@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/pretty-format@npm:4.1.9" dependencies: tinyrainbow: "npm:^3.1.0" - checksum: 10c0/42b5e9b75e87c0a884d36bee364e2d07ee45e96f413377737a74993e077d90c3a12aa36743855aee5e4e28b78fae20e3e6de5eef8d5344b9aba2bc1e1d5537a1 + checksum: 10c0/5b96295f25ab885616230ad1355fc82f490bebb39cc707688d7c8969c08270d7e076ed8a10af4e762ed57145193c6061a1f549f136f0ded344f8db0c2b3fb3de languageName: node linkType: hard -"@vitest/pretty-format@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/pretty-format@npm:4.1.7" +"@vitest/runner@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/runner@npm:4.1.9" dependencies: - tinyrainbow: "npm:^3.1.0" - checksum: 10c0/49ef801171708e3a92214e8720efbedbd6e0e6baf17971aaf4feb7422e5c9eba82262c24a9e6dd4d41a31fae77bd31d5b37cf140d13e0ac4ce29a7457bdc692f - languageName: node - linkType: hard - -"@vitest/runner@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/runner@npm:4.1.7" - dependencies: - "@vitest/utils": "npm:4.1.7" + "@vitest/utils": "npm:4.1.9" pathe: "npm:^2.0.3" - checksum: 10c0/63474c6fc088d75b5d7fe735195504f923c694b83a22eb9caa53d6486c923974304c2e3ef4d5bcd808d88082174f38434be320fc4fe649a8cf33f0459a0576e3 + checksum: 10c0/d206b4891a64b1f55c346f832b0a7b489108094d8ae34438d3b53e78be7b45b139fa95ffa027c98c357bd532268ee573168de1943235b7eed32a9236ed5978bb languageName: node linkType: hard -"@vitest/snapshot@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/snapshot@npm:4.1.7" +"@vitest/snapshot@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/snapshot@npm:4.1.9" dependencies: - "@vitest/pretty-format": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/pretty-format": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" magic-string: "npm:^0.30.21" pathe: "npm:^2.0.3" - checksum: 10c0/6fa49c4242a4acc0557ee6a20552db41f4f4c9d2d4c05993181c3f5f19e66579e08f63d34f792b79400547ab791ef500a9955b77390c381e45c3bb8e33717793 + checksum: 10c0/c3099df12ad1f9c1e180441856c9eb82f1990f87ff16aafedd6fa19978eaff20bc59220b692a99fcc822daef86eab256ba3dadb49544b7bd625b57c49cd9d995 languageName: node linkType: hard @@ -5562,18 +5553,18 @@ __metadata: languageName: node linkType: hard -"@vitest/spy@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/spy@npm:4.1.7" - checksum: 10c0/be2a95d5c5c438b57c9b33cef1289fb02659214754b5e946cb4b8183e2b5089e49e3fda6ca05981f3ea9872b207595db109e25072668c0a671203f69fddbbe99 +"@vitest/spy@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/spy@npm:4.1.9" + checksum: 10c0/e51f328f55b76e8ba66e5e18f183484a8dc0a092685b101112d3e9fb8e989ddca162c98ddf00254476502c25bc05c4ec1e277fd6ad8bfc702464c08f6b5dd115 languageName: node linkType: hard "@vitest/ui@npm:^4.1.0": - version: 4.1.5 - resolution: "@vitest/ui@npm:4.1.5" + version: 4.1.9 + resolution: "@vitest/ui@npm:4.1.9" dependencies: - "@vitest/utils": "npm:4.1.5" + "@vitest/utils": "npm:4.1.9" fflate: "npm:^0.8.2" flatted: "npm:^3.4.2" pathe: "npm:^2.0.3" @@ -5581,8 +5572,8 @@ __metadata: tinyglobby: "npm:^0.2.15" tinyrainbow: "npm:^3.1.0" peerDependencies: - vitest: 4.1.5 - checksum: 10c0/2109480d08516abe3350994ebfcb9adc8a2eb4bb1839c48a336d6ff3378eb49a520ad6490f177e60034ed4fcf579206d9ab14995e951cbf6d4c7c792c46fe202 + vitest: 4.1.9 + checksum: 10c0/9c480d79a61ebe40552ab4f1fa2a15dad0147d9c5e40186cb210f2199a0bfd886cd34e9ac11b1ef4ff0bf3436be46f5652c3f36200cdb278dfd2b3634996e50a languageName: node linkType: hard @@ -5597,25 +5588,14 @@ __metadata: languageName: node linkType: hard -"@vitest/utils@npm:4.1.5": - version: 4.1.5 - resolution: "@vitest/utils@npm:4.1.5" +"@vitest/utils@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/utils@npm:4.1.9" dependencies: - "@vitest/pretty-format": "npm:4.1.5" + "@vitest/pretty-format": "npm:4.1.9" convert-source-map: "npm:^2.0.0" tinyrainbow: "npm:^3.1.0" - checksum: 10c0/72409717e68018e5fe42fa173cc4eff6def8c35bd52013f86ddb414cd28d73fcc425ac62968e01a52371b3fd5a7a775536283d2f1d64432753f628712a6a4908 - languageName: node - linkType: hard - -"@vitest/utils@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/utils@npm:4.1.7" - dependencies: - "@vitest/pretty-format": "npm:4.1.7" - convert-source-map: "npm:^2.0.0" - tinyrainbow: "npm:^3.1.0" - checksum: 10c0/aa0079d8923506300527dc23ff68cf090ffcb2c6a9549e598ae22ba0eb8a6bb4448b10724b38bc6b077f9957333302a857d791ad2f7abd807bb6263c9a218833 + checksum: 10c0/d55506c077fd72c091eb66f02926f0abf72801c87a085f565698289562f47befa114ae2c680ab8736dfe46abab0cfd6b8031f2ac519bafeb37578aa6e5ad03c5 languageName: node linkType: hard @@ -14832,16 +14812,16 @@ __metadata: linkType: hard "vitest@npm:^4.1.7": - version: 4.1.7 - resolution: "vitest@npm:4.1.7" + version: 4.1.9 + resolution: "vitest@npm:4.1.9" dependencies: - "@vitest/expect": "npm:4.1.7" - "@vitest/mocker": "npm:4.1.7" - "@vitest/pretty-format": "npm:4.1.7" - "@vitest/runner": "npm:4.1.7" - "@vitest/snapshot": "npm:4.1.7" - "@vitest/spy": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/expect": "npm:4.1.9" + "@vitest/mocker": "npm:4.1.9" + "@vitest/pretty-format": "npm:4.1.9" + "@vitest/runner": "npm:4.1.9" + "@vitest/snapshot": "npm:4.1.9" + "@vitest/spy": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" es-module-lexer: "npm:^2.0.0" expect-type: "npm:^1.3.0" magic-string: "npm:^0.30.21" @@ -14859,12 +14839,12 @@ __metadata: "@edge-runtime/vm": "*" "@opentelemetry/api": ^1.9.0 "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/browser-playwright": 4.1.7 - "@vitest/browser-preview": 4.1.7 - "@vitest/browser-webdriverio": 4.1.7 - "@vitest/coverage-istanbul": 4.1.7 - "@vitest/coverage-v8": 4.1.7 - "@vitest/ui": 4.1.7 + "@vitest/browser-playwright": 4.1.9 + "@vitest/browser-preview": 4.1.9 + "@vitest/browser-webdriverio": 4.1.9 + "@vitest/coverage-istanbul": 4.1.9 + "@vitest/coverage-v8": 4.1.9 + "@vitest/ui": 4.1.9 happy-dom: "*" jsdom: "*" vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -14894,8 +14874,8 @@ __metadata: vite: optional: false bin: - vitest: vitest.mjs - checksum: 10c0/5328eab211161bdb854159154b02d7b2beab0cf1e26a1c13f6a64b0f1402029d41f19987cf60684051c09a6925030285195ecbe57271c2033e1d4f7a666590d0 + vitest: ./vitest.mjs + checksum: 10c0/1ac80ef4991be82822a52aea48415f1bc64ddf8fd88ee24c172ec368f1d480fefacbde622c3c951982f7961a1d07313e18deaafc774d29e42ad6f6ffa63334a7 languageName: node linkType: hard From 69fdefb376da47ad38d04b69108729ab675d7b68 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 16 Jun 2026 14:04:49 +0200 Subject: [PATCH 27/36] Fix styling of follow requests (#39452) --- .../index.tsx} | 9 ++++---- .../components/account_bio/styles.module.scss | 22 ++++++++++++++++++ .../components/account_header/index.tsx | 6 +---- .../account_header/styles.module.scss | 23 ------------------- 4 files changed, 28 insertions(+), 32 deletions(-) rename app/javascript/mastodon/components/{account_bio.tsx => account_bio/index.tsx} (79%) create mode 100644 app/javascript/mastodon/components/account_bio/styles.module.scss diff --git a/app/javascript/mastodon/components/account_bio.tsx b/app/javascript/mastodon/components/account_bio/index.tsx similarity index 79% rename from app/javascript/mastodon/components/account_bio.tsx rename to app/javascript/mastodon/components/account_bio/index.tsx index 75067530c94..a5d8f7aaa7d 100644 --- a/app/javascript/mastodon/components/account_bio.tsx +++ b/app/javascript/mastodon/components/account_bio/index.tsx @@ -1,9 +1,10 @@ import classNames from 'classnames'; -import { useAppSelector } from '../store'; +import { useAppSelector } from '../../store'; +import { EmojiHTML } from '../emoji/html'; +import { useElementHandledLink } from '../status/handled_link'; -import { EmojiHTML } from './emoji/html'; -import { useElementHandledLink } from './status/handled_link'; +import classes from './styles.module.scss'; interface AccountBioProps { className?: string; @@ -12,7 +13,7 @@ interface AccountBioProps { } export const AccountBio: React.FC = ({ - className, + className = classes.bio, accountId, showDropdown = false, }) => { diff --git a/app/javascript/mastodon/components/account_bio/styles.module.scss b/app/javascript/mastodon/components/account_bio/styles.module.scss new file mode 100644 index 00000000000..62e64a219a0 --- /dev/null +++ b/app/javascript/mastodon/components/account_bio/styles.module.scss @@ -0,0 +1,22 @@ +.bio { + font-size: 15px; + color: var(--color-text-primary); + unicode-bidi: plaintext; + overflow-wrap: anywhere; + + p { + margin-bottom: 20px; + + &:last-child { + margin-bottom: 0; + } + } + + :any-link { + color: var(--color-text-status-links); + + &:hover { + text-decoration: none; + } + } +} diff --git a/app/javascript/mastodon/components/account_header/index.tsx b/app/javascript/mastodon/components/account_header/index.tsx index df2493c7e9b..f63672464c7 100644 --- a/app/javascript/mastodon/components/account_header/index.tsx +++ b/app/javascript/mastodon/components/account_header/index.tsx @@ -148,11 +148,7 @@ export const AccountHeader: React.FC<{
{me && account.id !== me && } - + diff --git a/app/javascript/mastodon/components/account_header/styles.module.scss b/app/javascript/mastodon/components/account_header/styles.module.scss index 48320a6ea4e..5e3ae14dbea 100644 --- a/app/javascript/mastodon/components/account_header/styles.module.scss +++ b/app/javascript/mastodon/components/account_header/styles.module.scss @@ -274,29 +274,6 @@ $button-fallback-breakpoint: $button-breakpoint + 55px; } } -.bio { - font-size: 15px; - color: var(--color-text-primary); - unicode-bidi: plaintext; - overflow-wrap: anywhere; - - p { - margin-bottom: 20px; - - &:last-child { - margin-bottom: 0; - } - } - - :any-link { - color: var(--color-text-status-links); - - &:hover { - text-decoration: none; - } - } -} - .familiarFollowers { margin-top: 16px; } From 3109a5a4d8612ba2d9468a2151cafbe738598099 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 16 Jun 2026 14:17:57 +0200 Subject: [PATCH 28/36] Fixes being unable to edit an attachment twice without submitting (#39453) --- app/javascript/mastodon/actions/compose.js | 56 ------------------- .../mastodon/actions/compose_typed.ts | 7 ++- 2 files changed, 4 insertions(+), 59 deletions(-) diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 0e0d957ee95..1e533b3279e 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -61,10 +61,6 @@ export const COMPOSE_LANGUAGE_CHANGE = 'COMPOSE_LANGUAGE_CHANGE'; export const COMPOSE_EMOJI_INSERT = 'COMPOSE_EMOJI_INSERT'; -export const COMPOSE_UPLOAD_CHANGE_REQUEST = 'COMPOSE_UPLOAD_UPDATE_REQUEST'; -export const COMPOSE_UPLOAD_CHANGE_SUCCESS = 'COMPOSE_UPLOAD_UPDATE_SUCCESS'; -export const COMPOSE_UPLOAD_CHANGE_FAIL = 'COMPOSE_UPLOAD_UPDATE_FAIL'; - export const COMPOSE_POLL_ADD = 'COMPOSE_POLL_ADD'; export const COMPOSE_POLL_REMOVE = 'COMPOSE_POLL_REMOVE'; export const COMPOSE_POLL_OPTION_ADD = 'COMPOSE_POLL_OPTION_ADD'; @@ -461,58 +457,6 @@ export function onChangeMediaFocus(focusX, focusY) { }; } -export function changeUploadCompose(id, params) { - return (dispatch, getState) => { - dispatch(changeUploadComposeRequest()); - - let media = getState().getIn(['compose', 'media_attachments']).find((item) => item.get('id') === id); - - // Editing already-attached media is deferred to editing the post itself. - // For simplicity's sake, fake an API reply. - if (media && !media.get('unattached')) { - const { focus, ...other } = params; - const data = { ...media.toJS(), ...other }; - - if (focus) { - const [x, y] = focus.split(','); - data.meta = { focus: { x: parseFloat(x), y: parseFloat(y) } }; - } - - dispatch(changeUploadComposeSuccess(data, true)); - } else { - api().put(`/api/v1/media/${id}`, params).then(response => { - dispatch(changeUploadComposeSuccess(response.data, false)); - }).catch(error => { - dispatch(changeUploadComposeFail(id, error)); - }); - } - }; -} - -export function changeUploadComposeRequest() { - return { - type: COMPOSE_UPLOAD_CHANGE_REQUEST, - skipLoading: true, - }; -} - -export function changeUploadComposeSuccess(media, attached) { - return { - type: COMPOSE_UPLOAD_CHANGE_SUCCESS, - media: media, - attached: attached, - skipLoading: true, - }; -} - -export function changeUploadComposeFail(error) { - return { - type: COMPOSE_UPLOAD_CHANGE_FAIL, - error: error, - skipLoading: true, - }; -} - export function uploadComposeRequest() { return { type: COMPOSE_UPLOAD_REQUEST, diff --git a/app/javascript/mastodon/actions/compose_typed.ts b/app/javascript/mastodon/actions/compose_typed.ts index 6bf193ba923..310ac5f84dc 100644 --- a/app/javascript/mastodon/actions/compose_typed.ts +++ b/app/javascript/mastodon/actions/compose_typed.ts @@ -49,7 +49,7 @@ const messages = defineMessages({ }); type SimulatedMediaAttachmentJSON = ApiMediaAttachmentJSON & { - unattached?: boolean; + attached?: boolean; }; const simulateModifiedApiResponse = ( @@ -67,7 +67,8 @@ const simulateModifiedApiResponse = ( y: parseFloat(y ?? '0'), }, }, - } as unknown as SimulatedMediaAttachmentJSON; + attached: true, + } as SimulatedMediaAttachmentJSON; return data; }; @@ -137,7 +138,7 @@ export const changeUploadCompose = createDataLoadingThunk( (media: SimulatedMediaAttachmentJSON) => { return { media, - attached: typeof media.unattached !== 'undefined' && !media.unattached, + attached: typeof media.attached !== 'undefined' && media.attached, }; }, { From 97db9fb1a5bbe74ec4cdcbc498ea2e998d3ed510 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Tue, 16 Jun 2026 17:30:58 +0200 Subject: [PATCH 29/36] Add category selection to collection report modal (#39456) --- .../mastodon/features/report/category.jsx | 15 ++++- .../ui/components/report_collection_modal.tsx | 64 ++++++++++++++++--- 2 files changed, 68 insertions(+), 11 deletions(-) diff --git a/app/javascript/mastodon/features/report/category.jsx b/app/javascript/mastodon/features/report/category.jsx index b97347279b0..539f1d8bdaf 100644 --- a/app/javascript/mastodon/features/report/category.jsx +++ b/app/javascript/mastodon/features/report/category.jsx @@ -68,7 +68,7 @@ class Category extends PureComponent { render () { const { category, startedFrom, rules, intl } = this.props; - const options = rules.length > 0 ? [ + let options = rules.length > 0 ? [ 'dislike', 'spam', 'legal', @@ -81,10 +81,21 @@ class Category extends PureComponent { 'other', ]; + if (startedFrom === 'collection') { + options = options.filter(item => item !== 'dislike'); + } + return ( <> - + {startedFrom === 'collection' ? ( + + ) : ( + + )}

diff --git a/app/javascript/mastodon/features/ui/components/report_collection_modal.tsx b/app/javascript/mastodon/features/ui/components/report_collection_modal.tsx index 9113491a5ad..8c700bc898e 100644 --- a/app/javascript/mastodon/features/ui/components/report_collection_modal.tsx +++ b/app/javascript/mastodon/features/ui/components/report_collection_modal.tsx @@ -13,7 +13,9 @@ import { NavigationFocusTarget } from 'mastodon/components/navigation_focus_targ import { useAccount } from 'mastodon/hooks/useAccount'; import { useAppDispatch } from 'mastodon/store'; +import Category from '../../report/category'; import Comment from '../../report/comment'; +import Rules from '../../report/rules'; const messages = defineMessages({ close: { id: 'lightbox.close', defaultMessage: 'Close' }, @@ -60,8 +62,14 @@ export const ReportCollectionModal: React.FC<{ 'idle' | 'submitting' | 'submitted' | 'error' >('idle'); - const [step, setStep] = useState<'comment' | 'thanks'>('comment'); + const [step, setStep] = useState<'category' | 'rules' | 'comment' | 'thanks'>( + 'category', + ); + const [category, setCategory] = useState< + 'spam' | 'legal' | 'violation' | 'other' | null + >(null); + const [selectedRuleIds, setSelectedRuleIds] = useState([]); const [comment, setComment] = useState(''); const [selectedDomains, setSelectedDomains] = useState([]); @@ -73,6 +81,22 @@ export const ReportCollectionModal: React.FC<{ } }, []); + const handleRuleToggle = useCallback((ruleId: string) => { + setSelectedRuleIds((ruleIds) => + ruleIds.includes(ruleId) + ? ruleIds.filter((id) => ruleId !== id) + : [...ruleIds, ruleId], + ); + }, []); + + const handleNextStep = useCallback(() => { + if (step === 'category' && category === 'violation') { + setStep('rules'); + } else { + setStep('comment'); + } + }, [category, step]); + const handleSubmit = useCallback(() => { setSubmitState('submitting'); @@ -85,7 +109,8 @@ export const ReportCollectionModal: React.FC<{ forward_to_domains: selectedDomains, comment, forward: selectedDomains.length > 0, - category: 'spam', + category: category ?? 'other', + rule_ids: selectedRuleIds, }, () => { setSubmitState('submitted'); @@ -96,7 +121,15 @@ export const ReportCollectionModal: React.FC<{ }, ), ); - }, [account_id, comment, dispatch, collectionId, selectedDomains]); + }, [ + account_id, + category, + selectedRuleIds, + comment, + dispatch, + collectionId, + selectedDomains, + ]); if (!account) { return null; @@ -108,15 +141,28 @@ export const ReportCollectionModal: React.FC<{ let stepComponent; switch (step) { + case 'category': + stepComponent = ( + + ); + break; + case 'rules': + stepComponent = ( + + ); + break; case 'comment': stepComponent = ( - } submitError={ submitState === 'error' && ( Date: Wed, 17 Jun 2026 04:17:10 -0400 Subject: [PATCH 30/36] Relax account display name length limit (#39458) --- app/models/account.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/account.rb b/app/models/account.rb index 60e4f526ca1..7550bb2a9d2 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -76,7 +76,7 @@ class Account < ApplicationRecord URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+} USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i USERNAME_LENGTH_LIMIT = 30 - DISPLAY_NAME_LENGTH_LIMIT = 30 + DISPLAY_NAME_LENGTH_LIMIT = 40 NOTE_LENGTH_LIMIT = 500 # Hard limits for federated content From e966aae0492cc612a96757ea01a204d9ae60a3aa Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 17 Jun 2026 10:39:47 +0200 Subject: [PATCH 31/36] Fix tiny spacing above character counter (#39467) --- .../mastodon/components/character_counter/styles.module.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/javascript/mastodon/components/character_counter/styles.module.scss b/app/javascript/mastodon/components/character_counter/styles.module.scss index 05c9446545a..ae77be1554e 100644 --- a/app/javascript/mastodon/components/character_counter/styles.module.scss +++ b/app/javascript/mastodon/components/character_counter/styles.module.scss @@ -1,4 +1,5 @@ .counter { + display: block; margin-top: 4px; font-size: 13px; } From fe2db1e2e854fde6cdd82344bde0f9fee9ac2151 Mon Sep 17 00:00:00 2001 From: diondiondion Date: Wed, 17 Jun 2026 10:41:35 +0200 Subject: [PATCH 32/36] Refactor report modal heading translation (#39457) --- .../mastodon/features/report/category.jsx | 14 ++++---------- app/javascript/mastodon/locales/en.json | 7 +++---- 2 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/javascript/mastodon/features/report/category.jsx b/app/javascript/mastodon/features/report/category.jsx index 539f1d8bdaf..a6b042ccd6c 100644 --- a/app/javascript/mastodon/features/report/category.jsx +++ b/app/javascript/mastodon/features/report/category.jsx @@ -22,8 +22,9 @@ const messages = defineMessages({ violation_description: { id: 'report.reasons.violation_description', defaultMessage: 'You are aware that it breaks specific rules' }, other: { id: 'report.reasons.other', defaultMessage: 'It\'s something else' }, other_description: { id: 'report.reasons.other_description', defaultMessage: 'The issue does not fit into other categories' }, - status: { id: 'report.category.title_status', defaultMessage: 'post' }, - account: { id: 'report.category.title_account', defaultMessage: 'profile' }, + status: { id: 'report.category.title_status', defaultMessage: "Tell us what's going on with this post" }, + account: { id: 'report.category.title_account', defaultMessage: "Tell us what's going on with this profile" }, + collection: { id: 'report.category.title_collection', defaultMessage: "Tell us what's going on with this collection"} }); const mapStateToProps = state => ({ @@ -88,14 +89,7 @@ class Category extends PureComponent { return ( <> - {startedFrom === 'collection' ? ( - - ) : ( - - )} + {intl.formatMessage(messages[startedFrom])}

diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 505f0fc6b6e..27012a495dd 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -1138,11 +1138,10 @@ "report.categories.spam": "Spam", "report.categories.violation": "Content violates one or more server rules", "report.category.subtitle": "Choose the best match", - "report.category.title": "Tell us what's going on with this {type}", - "report.category.title_account": "profile", - "report.category.title_status": "post", + "report.category.title_account": "Tell us what's going on with this profile", + "report.category.title_collection": "Tell us what's going on with this collection", + "report.category.title_status": "Tell us what's going on with this post", "report.close": "Done", - "report.collection_comment": "Why do you want to report this collection?", "report.comment.title": "Is there anything else you think we should know?", "report.forward": "Forward to {target}", "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?", From b777936bdf555bb597513bcb7c16673864bbac50 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 17 Jun 2026 05:01:45 -0400 Subject: [PATCH 33/36] Handle missing `sw.js` in test environment assets (#39459) --- lib/mastodon/middleware/public_file_server.rb | 5 +++-- spec/requests/public_files_spec.rb | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/mastodon/middleware/public_file_server.rb b/lib/mastodon/middleware/public_file_server.rb index ac2f8c52c46..eb06184d51d 100644 --- a/lib/mastodon/middleware/public_file_server.rb +++ b/lib/mastodon/middleware/public_file_server.rb @@ -5,8 +5,9 @@ require 'action_dispatch/middleware/static' module Mastodon module Middleware class PublicFileServer + CACHE_TTL = 28.days.to_i + SERVICE_WORKER_PATH = '/sw.js' SERVICE_WORKER_TTL = 7.days.to_i - CACHE_TTL = 28.days.to_i def initialize(app) @app = app @@ -24,7 +25,7 @@ module Mastodon # Set cache headers on static files. Some paths require different cache headers request = Rack::Request.new env headers['cache-control'] = begin - if request.path.start_with?('/sw.js') + if request.path.start_with?(SERVICE_WORKER_PATH) "public, max-age=#{SERVICE_WORKER_TTL}, must-revalidate" elsif request.path.start_with?(paperclip_root_url) "public, max-age=#{CACHE_TTL}, immutable" diff --git a/spec/requests/public_files_spec.rb b/spec/requests/public_files_spec.rb index 512e069cf71..c8d6b176afc 100644 --- a/spec/requests/public_files_spec.rb +++ b/spec/requests/public_files_spec.rb @@ -6,8 +6,10 @@ RSpec.describe 'Public files' do include RoutingHelper context 'when requesting service worker file' do + before { stub_const 'Mastodon::Middleware::PublicFileServer::SERVICE_WORKER_PATH', '/robots.txt' } + it 'returns the file with the expected headers' do - get '/sw.js' + get Mastodon::Middleware::PublicFileServer::SERVICE_WORKER_PATH expect(response) .to have_http_status(200) From ccd6fb92f955c69771f9fc90d8c87f52f426a0b6 Mon Sep 17 00:00:00 2001 From: Echo Date: Wed, 17 Jun 2026 11:12:55 +0200 Subject: [PATCH 34/36] Upgrades to React 19.2 (#39330) --- .../__snapshots__/avatar-test.jsx.snap | 26 +----- .../avatar_overlay-test.jsx.snap | 35 ++----- .../__snapshots__/button-test.jsx.snap | 23 ++--- .../components/__tests__/avatar-test.jsx | 12 +-- .../__tests__/avatar_overlay-test.jsx | 7 +- .../components/__tests__/button-test.jsx | 37 +++----- .../mastodon/components/status_quoted.tsx | 26 +++++- .../mastodon/utils/react_router.tsx | 10 +- package.json | 10 +- yarn.lock | 92 +++++-------------- 10 files changed, 90 insertions(+), 188 deletions(-) diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap index 1b6647f91f1..192aaa4de54 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap @@ -2,20 +2,11 @@ exports[` > Autoplay > renders a animated avatar 1`] = ` @@ -23,20 +14,11 @@ exports[` > Autoplay > renders a animated avatar 1`] = ` exports[` > Still > renders a still avatar 1`] = ` diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap index de4ccd65942..1d4d8145daa 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap @@ -2,50 +2,31 @@ exports[` renders a overlay avatar 1`] = `