diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0a32b14065..a40d94fe80 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,31 @@
All notable changes to this project will be documented in this file.
+## [4.6.3] - 2026-07-03
+
+### Security
+
+- Update dependencies
+
+### Added
+
+- Add “Update available” navigation item at top of navbar when new Mastodon versions are available (#39705 by @ClearlyClaire)
+- Add rendering of post images in emails (#39636 by @diondiondion)
+
+### Fixed
+
+- Fix “view collection” menu item appearing on collection page (#39694 by @mkljczk)
+- Fix incorrect filter cache key sometimes causing incorrect filters to be applied (#39698 by @ClearlyClaire)
+- Fix missing `to_json` to publish announcement reaction worker (#39685 by @mjankowski)
+- Fix duplicate "clear" button shown in main search input in Chrome (#39679 by @diondiondion)
+- Fix visual glitch with the spoiler button (#39677 by @ChaosExAnima)
+- Fix invisible username during post highlight animation (#39659 by @diondiondion)
+- Fix follow button floating on profiles when overview landing page is enabled (#39650 by @FFederi)
+- Fix encryption warning "read more" link (#39635 by @thomas-pike)
+- Fix `tootctl media lookup` failing on some setups (#39615 by @brookmiles)
+- Fix visible transparent navigation link borders in Windows forced-contrast mode (#39614 by @diondiondion)
+- Fix crash with some browser extensions injecting custom elements in the page (#39507 by @OriginalRoOhi)
+
## [4.6.2] - 2026-06-25
### Security
diff --git a/Gemfile.lock b/Gemfile.lock
index 6de730c89f..fc8e2338d8 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -177,7 +177,7 @@ GEM
crack (1.0.1)
bigdecimal
rexml
- crass (1.0.6)
+ crass (1.0.7)
css_parser (3.0.0)
addressable
ssrf_filter (~> 1.5)
@@ -451,7 +451,7 @@ GEM
minitest (6.0.6)
drb (~> 2.0)
prism (~> 1.5)
- msgpack (1.8.1)
+ msgpack (1.8.3)
multi_json (1.21.1)
mutex_m (0.3.0)
net-http (0.9.1)
diff --git a/app/javascript/mastodon/features/collections/components/collection_menu.tsx b/app/javascript/mastodon/features/collections/components/collection_menu.tsx
index f9d7e18157..0d0e97eb9e 100644
--- a/app/javascript/mastodon/features/collections/components/collection_menu.tsx
+++ b/app/javascript/mastodon/features/collections/components/collection_menu.tsx
@@ -163,11 +163,7 @@ export const CollectionMenu: React.FC<{
return ownerItems;
}
} else {
- const nonOwnerItems: MenuItem[] = [
- viewCollectionItem,
- ...shareItems,
- null,
- ];
+ const nonOwnerItems: MenuItem[] = [...shareItems, null];
// Collection notifications already have a prominent 'Remove me' button
if (currentAccountInCollection && context !== 'notifications') {
@@ -189,6 +185,10 @@ export const CollectionMenu: React.FC<{
});
}
+ if (context !== 'collection') {
+ return [viewCollectionItem, ...nonOwnerItems];
+ }
+
return nonOwnerItems;
}
}, [
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index f3565215fb..48ccff24e4 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -63,8 +63,23 @@
"account.mute_short": "Mututu",
"account.muted": "Mutututa",
"account.mutual": "Elkar jarraitzen duzue",
+ "account.name.help.domain_self": "{domain} zure zerbitzaria da, zure profila eta bidalketak ostatatzen dituena.",
+ "account.name.help.footer": "Poste elektronikoak hornitzaile ezberdinak darabiltzaten lagunei bidali ahal dizkiezun bezalaxe, beste Mastodon zerbitzari abtzuetako erabiltzaileekin ere komunikatu zaitezke, baita Fedobertsoko beste aplikazioen erabiltzaileekin ere.",
+ "account.name.help.header": "Erabiltzaile-izena posta elektroniko helbide bat bezalakoa da",
+ "account.name.help.username": "{username} kontu honek zerbitzarian darabilen izena da. Baliteke beste zerbitzari bateko norbaitek erabiltzaile-izen bera izatea han.",
+ "account.name.help.username_self": "{username} zure kontuak zerbitzari honetan duen izena da. Baliteke beste norbaitek izen berbera izatea beste zerbitzari batean.",
+ "account.name_info": "Zer esan nahi du horrek?",
"account.no_bio": "Ez da deskribapenik eman.",
+ "account.node_modal.callout": "Ohar pertsonalak zuk bakarrik ikus ditzakezu.",
+ "account.node_modal.edit_title": "Editatu ohar pertsonala",
+ "account.node_modal.error_unknown": "Ezin oharra gorde",
+ "account.node_modal.field_label": "Ohar pertsonala",
+ "account.node_modal.save": "Gorde",
+ "account.node_modal.title": "Gehitu ohar pertsonala",
+ "account.note.edit_button": "Editatu",
+ "account.note.title": "Ohar pertsonala (zuretzat soilik)",
"account.open_original_page": "Ireki jatorrizko orria",
+ "account.pending": "Zain",
"account.posts": "Bidalketa",
"account.remove_from_followers": "Kendu {name} zure jarraitzaileengandik",
"account.report": "Salatu @{name}",
@@ -72,6 +87,8 @@
"account.share": "Partekatu @{name} erabiltzailearen profila",
"account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak",
"account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}",
+ "account.timeline.pinned": "Finkatua",
+ "account.timeline.pinned.view_all": "Ikusi finkatutako bidalketa guztiak",
"account.unblock": "Desblokeatu @{name}",
"account.unblock_domain": "Berriz erakutsi {domain}",
"account.unblock_domain_short": "Desblokeatu",
@@ -81,6 +98,116 @@
"account.unmute": "Desmututu @{name}",
"account.unmute_notifications_short": "Desmututu jakinarazpenak",
"account.unmute_short": "Desmututu",
+ "account_edit.advanced_settings.bot_hint": "Ohartarazi besteei kontu honek ekintza automatizatuak egiten dituela nagusiki, eta beharbada ez duela inork gainbegiratzen",
+ "account_edit.advanced_settings.bot_label": "Kontu automatizatua",
+ "account_edit.advanced_settings.title": "Ezarpen aurreratuak",
+ "account_edit.bio.add_label": "Gehitu biografia",
+ "account_edit.bio.edit_label": "Editatu biografia",
+ "account_edit.bio.placeholder": "Gehitu aurkezpen labur bat besteei nor zaren argitzeko.",
+ "account_edit.bio.title": "Biografia",
+ "account_edit.bio_modal.add_title": "Gehitu biografia",
+ "account_edit.bio_modal.edit_title": "Editatu biografia",
+ "account_edit.column_button": "Egina",
+ "account_edit.column_title": "Editatu profila",
+ "account_edit.custom_fields.add_label": "Gehitu eremua",
+ "account_edit.custom_fields.edit_label": "Editatu eremua",
+ "account_edit.custom_fields.placeholder": "Gehitu zure izenordeak, kanpoko estekak, edo partekatu nahi duzun beste edozer.",
+ "account_edit.custom_fields.reorder_button": "Berrantolatu eremuak",
+ "account_edit.custom_fields.tip_content": "Sinisgarritasuna eman diezaiokezu zure Mastodon kontuari, jabe zaren edozein webgunerako estekak egiaztatuz.",
+ "account_edit.custom_fields.tip_title": "Aholkua: nola gehitu egiaztatutako estekak",
+ "account_edit.custom_fields.title": "Pertsonalizatutako eremuak",
+ "account_edit.custom_fields.verified_hint": "Nola gehitu egiaztatutako esteka?",
+ "account_edit.display_name.add_label": "Gehitu pantaila-izena",
+ "account_edit.display_name.edit_label": "Editati pantaila-izena",
+ "account_edit.display_name.placeholder": "Zure pantaila-izena da zure profilean eta denbora-lerroetan erakusten duzun izena.",
+ "account_edit.display_name.title": "Pantaila-izena",
+ "account_edit.featured_hashtags.edit_label": "Gehitu traolak",
+ "account_edit.featured_hashtags.placeholder": "Lagundu besteei zure gogo gaiak antzematen eta begiratzen.",
+ "account_edit.featured_hashtags.title": "Nabarmendutako traolak",
+ "account_edit.field_actions.delete": "Ezabatu eremua",
+ "account_edit.field_actions.edit": "Editatu eremua",
+ "account_edit.field_delete_modal.confirm": "Ziur pertsonalizatutako eremu hau ezabatu nahi duzula? Ezingo duzu atzera egin.",
+ "account_edit.field_delete_modal.delete_button": "Ezabatu",
+ "account_edit.field_delete_modal.title": "Ezabatu eremu pertsonalizatua?",
+ "account_edit.field_edit_modal.add_title": "Gehitu eremu pertsonalizatua",
+ "account_edit.field_edit_modal.discard_confirm": "Baztertu",
+ "account_edit.field_edit_modal.discard_message": "Gorde gabeko aldaketak dituzu. Ziur baztertu nahi dituzula?",
+ "account_edit.field_edit_modal.edit_title": "Editatu eremu pertsonalizatua",
+ "account_edit.field_edit_modal.length_warning": "Gomendatutako karaktere kopurua gainditua. Baliteke mugikorreko erabiltzaileek zure eremua osorik ez ikustea.",
+ "account_edit.field_edit_modal.link_emoji_warning": "Gomendatzen dugu ez erabiltzea emoji pertzonalizatuak eta URLak batera. Biak dituzten eremu pertosnalizatuak tesu soil gisa erakutsiko dira, erabiltzaileak ez nahasteko.",
+ "account_edit.field_edit_modal.name_hint": "Adibidez: \"Webgune pertsonala\"",
+ "account_edit.field_edit_modal.name_label": "Etiketa",
+ "account_edit.field_edit_modal.url_warning": "Esteka gehitzeko, mesedez gehitu {protocol} hasieran.",
+ "account_edit.field_edit_modal.value_hint": "Adibidez: “https://example.me”",
+ "account_edit.field_edit_modal.value_label": "Edukia",
+ "account_edit.field_reorder_modal.drag_cancel": "Arrastatzea bertan behera utzi da. {item} eremua baztertu da.",
+ "account_edit.field_reorder_modal.drag_end": "\"{item}\" eremua baztertu da.",
+ "account_edit.field_reorder_modal.drag_instructions": "Eremu pertsonalizatuak berrantolatzeko, sakatu hutsunea edo enter teklari. Arrastatu bitartean, erabili gezi-teklak eremua gora edo behera mugitzeko. Sakatu hutsunea edo enter berriz eremua kokaleku berrian uzteko, edo Esc bertan behera uzteko.",
+ "account_edit.field_reorder_modal.drag_move": "\"{item}\" eremua mugitu da.",
+ "account_edit.field_reorder_modal.drag_over": "\"{item}\" eremua \"{over}\" gainera mugitu da.",
+ "account_edit.field_reorder_modal.drag_start": "\"{item}\" eremua hautatu da.",
+ "account_edit.field_reorder_modal.handle_label": "Arrastatu \"{item}\" eremua",
+ "account_edit.field_reorder_modal.title": "Berrantolatu eremuak",
+ "account_edit.image_alt_modal.add_title": "Gehitu testu alternatiboa",
+ "account_edit.image_alt_modal.details_content": "BAI:
Deskribatu zeure burua irudian zauden bezala
Erabili hirugarren pertsona (adibidez: “Alex” eta ez “ni”)
Izan zehatzahitz gutxi batzuk nahiko dira normalean
EZ:
Idatzi “halakoren argazkia” – erredundantea da pantaila irakurleentzat
ADIBIDEA:
“Alex kamiseta berdea eta betaurrekoak daramatzala”
",
+ "account_edit.image_alt_modal.details_title": "Aholkuak: Profileko argazien testu alternatiboa",
+ "account_edit.image_alt_modal.edit_title": "Editatu ordezko testua",
+ "account_edit.image_alt_modal.text_hint": "Ordezko testuak lagungarriak dira pantaila irakurtzeko gailuen erabiltzaileek zure edukia ulertzeko.",
+ "account_edit.image_alt_modal.text_label": "Ordezko testua",
+ "account_edit.image_delete_modal.confirm": "Ziur irudi hau ezabatu nahi duzula? Ezingo duzu atzera egin.",
+ "account_edit.image_delete_modal.delete_button": "Ezabatu",
+ "account_edit.image_delete_modal.title": "Ezabatu irudia?",
+ "account_edit.image_edit.add_button": "Gehitu irudia",
+ "account_edit.image_edit.alt_add_button": "Gehitu ordezko testua",
+ "account_edit.image_edit.alt_edit_button": "Editatu ordezko testua",
+ "account_edit.image_edit.remove_button": "Kendu irudia",
+ "account_edit.image_edit.replace_button": "Ordeztu irudia",
+ "account_edit.item_list.delete": "Ezabatu {name}",
+ "account_edit.item_list.edit": "Editatu {name}",
+ "account_edit.name_modal.add_title": "Gehitu pantaila-izena",
+ "account_edit.name_modal.edit_title": "Editatu pantaila-izena",
+ "account_edit.profile_tab.button_label": "Pertsonalizatu",
+ "account_edit.profile_tab.hint.description": "Ezarpen hauek pertsonalizatzen dute erabiltzaileek zer ikusten duten {server}-(e)n aplikazio ofizialetan, baina baliteke eraginik ez izatea beste zerbitzari batzuetako edo hirugarrenen aplikazioetako erabiltzaileengan.",
+ "account_edit.profile_tab.hint.title": "Pantailak aldatu litezke",
+ "account_edit.profile_tab.show_featured.description": "'Nabarmenduak' aukerazko fitxa da. Bertan beste kontu batzuk nabarmendu ditzakezu.",
+ "account_edit.profile_tab.show_featured.title": "Erakutsi ‘Nabarmenduak’ fitxa",
+ "account_edit.profile_tab.show_media.description": "'Media' aukerako fitxa da. Bertan erakuts ditzakezu irudiak edo bideoak dituzten bidalketak.",
+ "account_edit.profile_tab.show_media.title": "Erakuksi 'Media' fitxa",
+ "account_edit.profile_tab.show_media_replies.description": "Gaitutakoan, 'Media' fitxak zure bidalketak eta beste batzuei bidalitako erantzunak ere erakusten ditu.",
+ "account_edit.profile_tab.show_media_replies.title": "Sartu erantzunak 'Media' fitxan",
+ "account_edit.profile_tab.show_relations.description": "Jarraitzen dituzun kontuak eta zure profileko beste erabiltzaile batzuen jarraitzaileak erakusten ditu. Jendeak oraindik ikusi ahalko du jarraitzen diezun ala ez.",
+ "account_edit.profile_tab.show_relations.title": "Erakutsi 'Jarraitzaileak' eta 'Jarraitutakoak’",
+ "account_edit.profile_tab.subtitle": "Pertsonalizatu nola erakusten den zure profila.",
+ "account_edit.profile_tab.title": "Profila erakusteko ezarpenak",
+ "account_edit.save": "Gorde",
+ "account_edit.upload_modal.back": "Atzera",
+ "account_edit.upload_modal.done": "Egina",
+ "account_edit.upload_modal.next": "Hurrengoa",
+ "account_edit.upload_modal.step_crop.zoom": "Zooma",
+ "account_edit.upload_modal.step_upload.button": "Arakatu fitxategiak",
+ "account_edit.upload_modal.step_upload.dragging": "Arrastatu kargatzeko",
+ "account_edit.upload_modal.step_upload.header": "Aukeratu irudi bat",
+ "account_edit.upload_modal.step_upload.hint": "WEBP, PNG, GIF edo JPG formatua, gehienez {limit}MB.{br}Irudia {width}x{height}pixelera eskalatuko da.",
+ "account_edit.upload_modal.title_add.avatar": "Gehitu profileko argazkia",
+ "account_edit.upload_modal.title_add.header": "Gehitu goiburuko argazkia",
+ "account_edit.upload_modal.title_replace.avatar": "Ordezkatu profileko argazkia",
+ "account_edit.upload_modal.title_replace.header": "Ordezkatu goiburuko argazkia",
+ "account_edit.verified_modal.details": "Gehitu sinesgarritasuna zure Mastodon profilari, webgune pertsonaletarako estekak egiaztatuz. Hona hemen nola funtzionatzen duen:",
+ "account_edit.verified_modal.invisible_link.details": "Gehitu lotura zure webguneko header eremuan. Zatirik garrantzitsuena rel=\"me\" da, erabiltzailek sortutako edukia duten webguneetan suplantazioa galarazten baitu. Headerrean esteka etiketa bat ere erabil dezakezu {tag} ordez, baina HTMLak eskuragarri egon behar du Javascript exekutatu gabe.",
+ "account_edit.verified_modal.invisible_link.summary": "Nola egin esteka ikustezin?",
+ "account_edit.verified_modal.step1.header": "Kopiatu azpiko HTML kodea eta itsatsi zure webguneko header atalean",
+ "account_edit.verified_modal.step2.details": "Zure webgunea lehendik ere gehitu baduzu eremu pertsonalizatu gisa, ezabatu eta berriro gehitu beharko duzu egiaztapena abiarazteko.",
+ "account_edit.verified_modal.step2.header": "Gehitu zure webgunea eremu pertsonalizatu gisa",
+ "account_edit.verified_modal.title": "Nola gehitu egiaztatutako esteka",
+ "account_edit_tags.add_tag": "Gehitu #{tagName}",
+ "account_edit_tags.column_title": "Editatu etiketak",
+ "account_edit_tags.help_text": "Nabarmendutako traolak lagungarriak dira beste erabiltzaileek zure profila aurkitu eta harekin interakzioa izateko. Iragazki gisa agertzen dira zure profil orrialdeko Jarduera ikuspegian.",
+ "account_edit_tags.max_tags_reached": "Gehienezko nabarmendutako traola kopurura iritsi zara.",
+ "account_edit_tags.search_placeholder": "Sartu traola bat…",
+ "account_edit_tags.suggestions": "Iradokizunak:",
+ "account_edit_tags.tag_status_count": "{count, plural, one {bidalketa #} other {# bidalketa}}",
+ "account_list.hidden_notice": "Hau zuk baino ezin duzu ikusi. Zerrenda hau beste batzuei erakusteko, hona jo: {page} > {modal} > {field}.",
+ "account_list.total": "{total, plural, one {kontu #} other {# kontu}}",
"admin.dashboard.daily_retention": "Erabiltzaile atxikitze-tasa izena eman ondorengo eguneko",
"admin.dashboard.monthly_retention": "Erabiltzaile atxikitze-tasa izena eman ondorengo hilabeteko",
"admin.dashboard.retention.average": "Batezbestekoa",
@@ -90,6 +217,7 @@
"admin.impact_report.instance_followers": "Gure erabiltzaileek galduko lituzketeen jarraitzaileak",
"admin.impact_report.instance_follows": "Jarraitzaileek galduko lituzketeen beraien erabiltzaileak",
"admin.impact_report.title": "Inpaktuaren laburpena",
+ "alert.need_reload.message": "Mastodon eguneratu da. Litekeena da gauza batzuk behar bezala ez ibiltzea orrialdea birkargatzen duzun arte.",
"alert.rate_limited.message": "Saiatu {retry_time, time, medium} barru.",
"alert.rate_limited.title": "Abiadura mugatua",
"alert.unexpected.message": "Ustekabeko errore bat gertatu da.",
@@ -151,11 +279,15 @@
"annual_report.summary.share_on_mastodon": "Partekatu Mastodonen",
"attachments_list.unprocessed": "(prozesatu gabe)",
"audio.hide": "Ezkutatu audioa",
+ "block_modal.no_collections": "Zuotako batek ere ezin du bestea bildumetan gehitu. Automatikoki kenduko zaituztegu elkarren bildumetatik, hala badagokio.",
"block_modal.remote_users_caveat": "{domain} zerbitzariari zure erabakia errespeta dezan eskatuko diogu. Halere, araua beteko den ezin da bermatu, zerbitzari batzuk modu desberdinean kudeatzen baitituzte blokeoak. Baliteke argitalpen publikoak saioa hasi ez duten erabiltzaileentzat ikusgai egotea.",
"block_modal.show_less": "Erakutsi gutxiago",
"block_modal.show_more": "Erakutsi gehiago",
+ "block_modal.they_cant_mention": "Ezin duzue elkar aipatu edo jarraitu.",
+ "block_modal.they_cant_see_posts": "Ezin ditu zure bidalketak ikusi eta zuk ez dituzu bereak ikusiko.",
"block_modal.they_will_know": "Ezin du ikusi blokeatuta duzunik.",
"block_modal.title": "Erabiltzailea blokeatu nahi duzu?",
+ "block_modal.you_wont_see_mentions": "Ez duzu ikusiko bera aipatzen duen argitalpenik.",
"boost_modal.combo": "{combo} sakatu dezakezu hurrengoan hau saltatzeko",
"boost_modal.reblog": "Bultzatu bidalketa?",
"boost_modal.undo_reblog": "Bidalketari bultzada kendu?",
@@ -171,13 +303,50 @@
"bundle_modal_error.close": "Itxi",
"bundle_modal_error.message": "Zerbait okerra gertatu da pantaila hau kargatzean.",
"bundle_modal_error.retry": "Saiatu berriro",
+ "callout.dismiss": "Baztertu",
"carousel.current": "{current, number}/{max, number} diapositiba",
"carousel.slide": "{current, number}. diapositiba {max, number}tik",
+ "character_counter.recommended": "Gomendatutako karaktereak: {currentLength}/{maxLength}",
+ "character_counter.required": "{currentLength}/{maxLength} karaktere",
"closed_registrations.other_server_instructions": "Mastodon deszentralizatua denez, beste kontu bat sortu dezakezu beste zerbitzari batean eta honekin komunikatu.",
"closed_registrations_modal.description": "Une honetan ezin da konturik sortu {domain} zerbitzarian, baina kontuan izan Mastodon erabiltzeko ez duzula zertan konturik izan zehazki {domain} zerbitzarian.",
"closed_registrations_modal.find_another_server": "Aurkitu beste zerbitzari bat",
"closed_registrations_modal.preamble": "Mastodon deszentralizatua da, ondorioz kontua edonon sortuta ere zerbitzari honetako jendeari jarraitu eta haiekin komunikatzeko aukera izango duzu. Zure zerbitzaria ere sortu dezakezu!",
"closed_registrations_modal.title": "Mastodonen kontua sortzea",
+ "collection.share_modal.share_link_label": "Partekatu lotura",
+ "collection.share_modal.share_via_post": "Argitaratu Mastodonen",
+ "collection.share_modal.share_via_system": "Bidali hona…",
+ "collection.share_modal.title": "Partekatu bilduma",
+ "collection.share_modal.title_new": "Partekatu zure bilduma berria!",
+ "collections.pending_accounts.title": "Zergatik ikusten ditut kontu batzuk 'zain'?",
+ "collections.remove_account": "Kendu",
+ "collections.report_collection": "Salatu bilduma hau",
+ "collections.revoke_collection_inclusion": "Knedu neure burua bilduma honetatik",
+ "collections.revoke_inclusion.confirmation": "{collection} bildumatik knedu zaitugu",
+ "collections.revoke_inclusion.error": "Errore bat gertatu da, saiatu berriz geroago.",
+ "collections.search_accounts_label": "Bilatu gehitzeko kontu bat",
+ "collections.search_accounts_max_reached": "Gehitu daitekeen gehienezko kontu kopurura iritsi zara",
+ "collections.sensitive": "Hunkigarria",
+ "collections.share_short": "Partekatu",
+ "collections.sort_alphabetical": "Alfabetikoa",
+ "collections.sort_by": "Ordenatu honela:",
+ "collections.sort_date_added": "Gehitutako data",
+ "collections.sort_last_active": "Azkenekoz aktiboa",
+ "collections.sort_most_followers": "Jarraitzaile gehien",
+ "collections.suggestions.can_not_add": "Ezin da gehitu",
+ "collections.suggestions.can_not_add_desc": "Kontu hauek aurkituak ez izatea aukeratu dute beharbada, edo bildumen euskarririk ez duen zerbitzari batean egon litezke.",
+ "collections.suggestions.must_follow": "Lehenengo jarraitu behar diozu",
+ "collections.suggestions.must_follow_desc": "Kontu hauek jarraitzeko eskari guztiak gainbegiratzen dituzte. Jarraitzaileek bildumetan gehitu ditzakete.",
+ "collections.topic_hint": "Gehitu traola bat, beste batzuek ulertzeko bilduma honen gai nagusia zein den.",
+ "collections.topic_special_chars_hint": "Karaktere bereziak kendu egingo dira gordetzean",
+ "collections.unlisted_collections_description": "Hauek ez dira agertzen zure profilean besteentzat. Lotura duen edozeinek aurki ditzake.",
+ "collections.unlisted_collections_with_count": "Zerrendatu gabeko bildumak ({count})",
+ "collections.view_collection": "Ikusi bilduma",
+ "collections.visibility_public": "Publikoa",
+ "collections.visibility_public_hint": "Bilaketa emaitzetan eta gomendioak agertzen diren beste gune batzuetan aurkigai.",
+ "collections.visibility_title": "Ikusgarritasuna",
+ "collections.visibility_unlisted": "Zerrendatu gabea",
+ "collections.visibility_unlisted_hint": "Lotura duen edonorentzat ikusgarri. Bilaketa emaitzetatik eta gomendioetatik ezkutatua.",
"column.about": "Honi buruz",
"column.blocks": "Blokeatutako erabiltzaileak",
"column.bookmarks": "Laster-markak",
@@ -197,8 +366,10 @@
"column.lists": "Zerrendak",
"column.mutes": "Mutututako erabiltzaileak",
"column.notifications": "Jakinarazpenak",
+ "column.other_collections": "{name}-(r)en bildumak",
"column.pins": "Finkatutako bidalketak",
"column.public": "Federatutako denbora-lerroa",
+ "column.your_collections": "Zure bildumak",
"column_back_button.label": "Atzera",
"column_header.hide_settings": "Ezkutatu ezarpenak",
"column_header.moveLeft_settings": "Eraman zutabea ezkerrera",
@@ -207,6 +378,11 @@
"column_header.show_settings": "Erakutsi ezarpenak",
"column_header.unpin": "Desfinkatu",
"column_search.cancel": "Utzi",
+ "combobox.close_results": "Itxi emaitzak",
+ "combobox.loading": "Kargatzen",
+ "combobox.no_results_found": "Bilaketa honek ez du emaitzarik",
+ "combobox.open_results": "Ireki emaitzak",
+ "combobox.results_available": "{count, plural, one {iradokizun #} other {# iradokizun}} eskuragarri. Erabili gora eta behera teklak nabigatzeko. Sakatu Enter aukeratzeko.",
"community.column_settings.local_only": "Lokala soilik",
"community.column_settings.media_only": "Edukiak soilik",
"community.column_settings.remote_only": "Urrunekoa soilik",
@@ -240,6 +416,9 @@
"confirmations.delete.confirm": "Ezabatu",
"confirmations.delete.message": "Ziur bidalketa hau ezabatu nahi duzula?",
"confirmations.delete.title": "Ezabatu bidalketa?",
+ "confirmations.delete_collection.confirm": "Ezabatu",
+ "confirmations.delete_collection.message": "Ekintza hau ezin da desegin.",
+ "confirmations.delete_collection.title": "Ezabatu \"{name}\"?",
"confirmations.delete_list.confirm": "Ezabatu",
"confirmations.delete_list.message": "Ziur behin betiko ezabatu nahi duzula zerrenda hau?",
"confirmations.delete_list.title": "Ezabatu zerrenda?",
@@ -255,6 +434,10 @@
"confirmations.follow_to_list.confirm": "Jarraitu eta zerrendan sartu",
"confirmations.follow_to_list.message": "{name} jarraitu behar duzu zerrenda batean sartzeko.",
"confirmations.follow_to_list.title": "Erabiltzailea jarraitu?",
+ "confirmations.hide_featured_tab.confirm": "Ezkutatu fitxa",
+ "confirmations.hide_featured_tab.intro": "Nahi duzunean alda dezakezu Editatu Profila > Profil fitxaren ezarpenak atalean.",
+ "confirmations.hide_featured_tab.message": "Fitxa ezkutatuko du {serverName} eta Mastodonen azken bertsioa duten beste zerbitzari batzuetako erabiltzaileentzat. Beste batzuek zer ikusten duten alda liteke.",
+ "confirmations.hide_featured_tab.title": "Ezkutatu \"Nabarmenduak\" etiketa?",
"confirmations.logout.confirm": "Amaitu saioa",
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.logout.title": "Itxi saioa?",
@@ -278,6 +461,9 @@
"confirmations.remove_from_followers.confirm": "Jarraitzailea Kendu",
"confirmations.remove_from_followers.message": "{name}-k zu jarraitzeari utziko dio. Seguru zaude jarraitu nahi duzula?",
"confirmations.remove_from_followers.title": "Jarraitzailea kendu nahi duzu?",
+ "confirmations.revoke_collection_inclusion.confirm": "Kendu nazazu",
+ "confirmations.revoke_collection_inclusion.message": "Bildumaren egileak ezingo zaitu berriz gehitu 24 orduko epean. Betiko galarazi nahi badiozu zerrendetan gehitu zaitzala, blokeatzea daukazu.",
+ "confirmations.revoke_collection_inclusion.title": "Kendu zeure burua bilduma honetatik?",
"confirmations.revoke_quote.confirm": "Ezabatu bidalketa",
"confirmations.revoke_quote.message": "Ekintza hau ezin da desegin.",
"confirmations.revoke_quote.title": "Ezabatu bidalketa?",
@@ -290,13 +476,17 @@
"content_warning.hide": "Tuta ezkutatu",
"content_warning.show": "Erakutsi hala ere",
"content_warning.show_more": "Erakutsi gehiago",
+ "content_warning.show_short": "Erakutsi",
"conversation.delete": "Ezabatu elkarrizketa",
"conversation.mark_as_read": "Markatu irakurrita bezala",
"conversation.open": "Ikusi elkarrizketa",
"conversation.with": "Hauekin: {names}",
"copy_icon_button.copied": "Arbelera kopiatu da",
+ "copy_icon_button.copy_this_text": "Kopiatu esteka arbelean",
"copypaste.copied": "Kopiatuta",
"copypaste.copy_to_clipboard": "Kopiatu arbelera",
+ "custom_homepage.about": "Honi buruz",
+ "custom_homepage.about_this_server": "Zerbitzari honi buruz",
"directory.federated": "Fedibertso ezagunekoak",
"directory.local": "{domain} domeinukoak soilik",
"directory.new_arrivals": "Iritsi berriak",
@@ -668,6 +858,7 @@
"notifications.column_settings.admin.report": "Txosten berriak:",
"notifications.column_settings.admin.sign_up": "Izen-emate berriak:",
"notifications.column_settings.alert": "Mahaigaineko jakinarazpenak",
+ "notifications.column_settings.collections": "Bildumak:",
"notifications.column_settings.favourite": "Gogokoak:",
"notifications.column_settings.filter_bar.advanced": "Bistaratu kategoria guztiak",
"notifications.column_settings.filter_bar.category": "Iragazki-barra bizkorra",
@@ -687,6 +878,7 @@
"notifications.column_settings.update": "Edizioak:",
"notifications.filter.all": "Denak",
"notifications.filter.boosts": "Bultzadak",
+ "notifications.filter.collections": "Bildumak",
"notifications.filter.favourites": "Gogokoak",
"notifications.filter.follows": "Jarraipenak",
"notifications.filter.mentions": "Aipamenak",
diff --git a/app/javascript/material-icons/400-24px/system_update_alt-fill.svg b/app/javascript/material-icons/400-24px/system_update_alt-fill.svg
new file mode 100644
index 0000000000..468081b046
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/system_update_alt-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/javascript/material-icons/400-24px/system_update_alt.svg b/app/javascript/material-icons/400-24px/system_update_alt.svg
new file mode 100644
index 0000000000..468081b046
--- /dev/null
+++ b/app/javascript/material-icons/400-24px/system_update_alt.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/models/software_update.rb b/app/models/software_update.rb
index 266ca1326f..58b8342742 100644
--- a/app/models/software_update.rb
+++ b/app/models/software_update.rb
@@ -47,6 +47,10 @@ class SoftwareUpdate < ApplicationRecord
all.to_a.filter(&:pending?)
end
+ def pending?
+ pending_to_a.present?
+ end
+
def urgent_pending?
pending_to_a.any?(&:urgent?)
end
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 6fa6b51ca5..1c1a0d9394 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1226,6 +1226,7 @@ da:
other: Brugt af %{count} personer den seneste uge
title: Anbefalinger og trends
trending: Trender
+ update_available: Opdatering tilgængelig
username_blocks:
add_new: Tilføj ny
block_registrations: Blokér registreringer
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 6309e1a22b..bb1f7f2cc2 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1226,6 +1226,7 @@ en:
other: Used by %{count} people over the last week
title: Recommendations & Trends
trending: Trending
+ update_available: Update available
username_blocks:
add_new: Add new
block_registrations: Block registrations
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 57f3f5c4d0..5cddc4c894 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -1226,6 +1226,7 @@ fr-CA:
other: Utilisé par %{count} personnes au cours de la dernière semaine
title: Recommandations et tendances
trending: Tendances
+ update_available: Mise à jour disponible
username_blocks:
add_new: Ajouter un nouveau
block_registrations: Bloquer les inscriptions
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index b0335eb275..983830a4c8 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1226,6 +1226,7 @@ fr:
other: Utilisé par %{count} personnes au cours de la dernière semaine
title: Recommandations et tendances
trending: Tendances
+ update_available: Mise à jour disponible
username_blocks:
add_new: Ajouter un nouveau
block_registrations: Bloquer les inscriptions
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index f7b636754a..cf9a7c7a62 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1226,6 +1226,7 @@ hu:
other: "%{count} ember használta a múlt héten"
title: Ajánlások és trendek
trending: Felkapott
+ update_available: Frissítés érhető el
username_blocks:
add_new: Új hozzáadása
block_registrations: Regisztrációk blokkolása
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index cde72bba93..f472f28800 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1226,6 +1226,7 @@ sv:
other: Använd av %{count} personer under den senaste veckan
title: Rekommendationer & Trender
trending: Trendande
+ update_available: Uppdatering tillgänglig
username_blocks:
add_new: Lägg till ny
block_registrations: Registrerade blockeringar
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index ff24b1bf39..a9d7c003db 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1206,6 +1206,7 @@ vi:
other: "%{count} người dùng tuần rồi"
title: Đề xuất và Xu hướng
trending: Xu hướng
+ update_available: Bản cập nhật có sẵn
username_blocks:
add_new: Thêm mới
block_registrations: Cấm đăng ký
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index f81be97635..83861bc636 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1206,6 +1206,7 @@ zh-CN:
other: 过去一周内被 %{count} 个人使用过
title: 推荐与热门
trending: 当前热门
+ update_available: 更新可用
username_blocks:
add_new: 新建
block_registrations: 禁止注册
diff --git a/config/navigation.rb b/config/navigation.rb
index c59a9dcd48..50c7c9e829 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -7,10 +7,12 @@ SimpleNavigation::Configuration.run do |navigation|
n.item :web, safe_join([material_symbol('chevron_left'), t('settings.back')]), root_path
n.item :software_updates,
- safe_join([material_symbol('report'), t('admin.critical_update_pending')]),
+ safe_join(
+ SoftwareUpdate.urgent_pending? ? [material_symbol('report'), t('admin.critical_update_pending')] : [material_symbol('system_update_alt'), t('admin.update_available')]
+ ),
admin_software_updates_path,
- if: -> { Rails.configuration.x.mastodon.software_update_url.present? && current_user.can?(:view_devops) && SoftwareUpdate.urgent_pending? },
- html: { class: 'warning' }
+ html: { class: SoftwareUpdate.urgent_pending? ? 'warning' : nil },
+ if: -> { Rails.configuration.x.mastodon.software_update_url.present? && current_user.can?(:view_devops) && SoftwareUpdate.pending? }
n.item :profile, safe_join([material_symbol('person'), t('settings.profile')]), settings_profile_path, if: -> { current_user.functional? && !self_destruct }, highlights_on: %r{/settings/profile|/settings/featured_tags|/settings/verification}
n.item :privacy, safe_join([material_symbol('globe'), t('privacy.title')]), settings_privacy_path, if: -> { current_user.functional? && !self_destruct }, highlights_on: %r{/settings/privacy}
diff --git a/docker-compose.yml b/docker-compose.yml
index 8e7f0726e6..20d333081d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -60,7 +60,7 @@ services:
web:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/glitch-soc/mastodon:v4.6.2
+ image: ghcr.io/glitch-soc/mastodon:v4.6.3
restart: always
env_file: .env.production
command: bundle exec puma -C config/puma.rb
@@ -84,7 +84,7 @@ services:
# build:
# dockerfile: ./streaming/Dockerfile
# context: .
- image: ghcr.io/glitch-soc/mastodon-streaming:v4.6.2
+ image: ghcr.io/glitch-soc/mastodon-streaming:v4.6.3
restart: always
env_file: .env.production
command: node ./streaming/index.js
@@ -103,7 +103,7 @@ services:
sidekiq:
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
# build: .
- image: ghcr.io/glitch-soc/mastodon:v4.6.2
+ image: ghcr.io/glitch-soc/mastodon:v4.6.3
restart: always
env_file: .env.production
command: bundle exec sidekiq
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 32560e8bc5..9f27debc13 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -13,7 +13,7 @@ module Mastodon
end
def patch
- 2
+ 3
end
def default_prerelease