diff --git a/Gemfile.lock b/Gemfile.lock index f306eb8619..9695abadcd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -365,7 +365,7 @@ GEM json-ld-preloaded (3.3.1) json-ld (~> 3.3) rdf (~> 3.3) - json-schema (5.1.1) + json-schema (5.2.1) addressable (~> 2.8) bigdecimal (~> 3.1) jsonapi-renderer (0.2.2) @@ -761,7 +761,7 @@ GEM rspec-mocks (~> 3.0) sidekiq (>= 5, < 9) rspec-support (3.13.4) - rubocop (1.77.0) + rubocop (1.78.0) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 90f8fd000c..cb349f4d51 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -66,7 +66,7 @@ module ApplicationHelper def provider_sign_in_link(provider) label = Devise.omniauth_configs[provider]&.strategy&.display_name.presence || I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize) - link_to label, omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post + link_to label, omniauth_authorize_path(:user, provider), class: "btn button-#{provider}", method: :post end def locale_direction diff --git a/app/helpers/context_helper.rb b/app/helpers/context_helper.rb index 22d1964cae..38a0125c1b 100644 --- a/app/helpers/context_helper.rb +++ b/app/helpers/context_helper.rb @@ -27,6 +27,12 @@ module ContextHelper suspended: { 'toot' => 'http://joinmastodon.org/ns#', 'suspended' => 'toot:suspended' }, attribution_domains: { 'toot' => 'http://joinmastodon.org/ns#', 'attributionDomains' => { '@id' => 'toot:attributionDomains', '@type' => '@id' } }, quote_requests: { 'QuoteRequest' => 'https://w3id.org/fep/044f#QuoteRequest' }, + quotes: { + 'quote' => 'https://w3id.org/fep/044f#quote', + 'quoteUri' => 'http://fedibird.com/ns#quoteUri', + '_misskey_quote' => 'https://misskey-hub.net/ns#_misskey_quote', + 'quoteAuthorization' => 'https://w3id.org/fep/044f#quoteAuthorization', + }, interaction_policies: { 'gts' => 'https://gotosocial.org/ns#', 'interactionPolicy' => { '@id' => 'gts:interactionPolicy', '@type' => '@id' }, diff --git a/app/javascript/mastodon/components/account_bio.tsx b/app/javascript/mastodon/components/account_bio.tsx index 301ffcbb24..e0127f2092 100644 --- a/app/javascript/mastodon/components/account_bio.tsx +++ b/app/javascript/mastodon/components/account_bio.tsx @@ -1,12 +1,30 @@ +import { useCallback } from 'react'; + import { useLinks } from 'mastodon/hooks/useLinks'; -export const AccountBio: React.FC<{ +interface AccountBioProps { note: string; className: string; -}> = ({ note, className }) => { - const handleClick = useLinks(); + dropdownAccountId?: string; +} - if (note.length === 0 || note === '
') { +export const AccountBio: React.FCrel="me" , som forhindrer impersonation på websteder med brugergenereret indhold. Du kan endda bruge et link tag i overskriften på siden i stedet for a, men HTML skal være tilgængelig uden at udføre JavaScript.
here_is_how: Sådan gør du
- hint_html: "Bekræftelse af din identitet på Mastodon er for alle. Baseret på åbne webstandarder, nu og for evigt gratis. Alt du behøver er en personlig hjemmeside, som folk genkende dig ved. Når du linker til denne hjemmeside fra din profil, vi vil kontrollere, at hjemmesiden linker tilbage til din profil og vise en visuel indikator på det."
+ hint_html: "Verificering af din identitet på Mastodon er for alle. Baseret på åbne webstandarder, nu og for altid gratis. Alt, hvad du behøver, er en personlig hjemmeside, som folk kender dig fra. Når du linker til denne hjemmeside fra din profil, kontrollerer vi, at hjemmesiden linker tilbage til din profil, og viser en visuel indikator på den."
instructions_html: Kopier og indsæt koden nedenfor i HTML på din hjemmeside. Tilføj derefter adressen på din hjemmeside i et af de ekstra felter på din profil på fanen "Redigér profil" og gem ændringer.
verification: Bekræftelse
verified_links: Dine bekræftede links
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 59ceea8e79..1eb5ef1c4f 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1944,7 +1944,7 @@ de:
contrast: Mastodon (Hoher Kontrast)
default: Mastodon (Dunkel)
mastodon-light: Mastodon (Hell)
- system: Automatisch (mit System synchronisieren)
+ system: Automatisch (wie Betriebssystem)
time:
formats:
default: "%d. %b %Y, %H:%M Uhr"
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index bf52c83bc9..42fb04a65a 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -467,8 +467,11 @@ eu:
fasp:
debug:
callbacks:
+ created_at: Sortua hemen
delete: Ezabatu
ip: IP helbidea
+ request_body: Eskaeraren edukia
+ title: Atzera-deiak araztu
providers:
active: Aktibo
base_url: Oinarrizko URL-a
@@ -822,6 +825,7 @@ eu:
destroyed_msg: Guneko igoera ongi ezabatu da!
software_updates:
critical_update: Kritikoa — mesedez, eguneratu azkar
+ description: Gomendagarria da Mastodon instalazioa eguneratuta mantentzea azken konponketa eta funtzioez baliatzeko. Gainera, batzuetan ezinbestekoa da Mastodon garaiz eguneratzea segurtasun arazoak saihesteko. Arrazoi hauengatik, Mastodonek 30 minuturo eguneratzeak egiaztatzen ditu, eta zure posta elektroniko bidezko jakinarazpenen lehentasunen arabera jakinaraziko dizu.
documentation_link: Informazio gehiago
release_notes: Bertsio oharrak
title: Eguneraketak eskuragarri
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 86c03aab7d..bb68494118 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -1851,6 +1851,8 @@ fr-CA:
limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé
+ quote_policies:
+ followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
@@ -1904,6 +1906,8 @@ fr-CA:
does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service:
title: Conditions d'utilisation
+ terms_of_service_interstitial:
+ title: Les conditions d'utilisation de %{domain} ont changées
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index bace64c213..6fcdb5b972 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1851,6 +1851,8 @@ fr:
limit: Vous avez déjà épinglé le nombre maximum de messages
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
reblog: Un partage ne peut pas être épinglé
+ quote_policies:
+ followers: Abonné·e·s et utilisateur·trice·s mentionné·e·s
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
@@ -1904,6 +1906,8 @@ fr:
does_not_match_previous_name: ne correspond pas au nom précédent
terms_of_service:
title: Conditions d'utilisation
+ terms_of_service_interstitial:
+ title: Les conditions d'utilisation de %{domain} ont changées
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index a38a3cfc7a..c9e943c91c 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -1406,6 +1406,10 @@ ga:
basic_information: Eolas bunúsach
hint_html: "Saincheap a bhfeiceann daoine ar do phróifíl phoiblí agus in aice le do phostálacha. Is dóichí go leanfaidh daoine eile ar ais tú agus go n-idirghníomhóidh siad leat nuair a bhíonn próifíl líonta agus pictiúr próifíle agat."
other: Eile
+ emoji_styles:
+ auto: Uath
+ native: Dúchasach
+ twemoji: Twemoji
errors:
'400': Bhí an t-iarratas a chuir tú isteach neamhbhailí nó míchumtha.
'403': Níl cead agat an leathanach seo a fheiceáil.
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 1bf0194043..b46062b2c7 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1349,6 +1349,10 @@ hu:
basic_information: Általános információk
hint_html: "Tedd egyedivé, mi látnak mások a profilodon és a bejegyzéseid mellett. Mások nagyobb eséllyel követnek vissza és lépnek veled kapcsolatba, ha van kitöltött profilod és profilképed."
other: Egyéb
+ emoji_styles:
+ auto: Automatikus
+ native: Natív
+ twemoji: Twemoji
errors:
'400': A küldött kérés érvénytelen vagy hibás volt.
'403': Nincs jogosultságod az oldal megtekintéséhez.
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 595c2fddb2..2bf9f656ba 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1351,6 +1351,10 @@ it:
basic_information: Informazioni di base
hint_html: "Personalizza ciò che le persone vedono sul tuo profilo pubblico e accanto ai tuoi post. È più probabile che altre persone ti seguano e interagiscano con te quando hai un profilo compilato e un'immagine del profilo."
other: Altro
+ emoji_styles:
+ auto: Automatico
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La richiesta che hai inviato non è valida o non è corretta.
'403': Non sei autorizzato a visualizzare questa pagina.
diff --git a/config/locales/lad.yml b/config/locales/lad.yml
index e3c14367b7..2a5f8cabd2 100644
--- a/config/locales/lad.yml
+++ b/config/locales/lad.yml
@@ -186,6 +186,7 @@ lad:
create_domain_block: Kriya bloko de domeno
create_email_domain_block: Kriya bloko de domeno de posta
create_ip_block: Kriya regla de IP
+ create_relay: Kriya relevo
create_unavailable_domain: Kriya domeno no desponivle
create_user_role: Kriya rolo
demote_user: Degrada utilizador
@@ -197,6 +198,7 @@ lad:
destroy_email_domain_block: Efasa bloko de domeno de posta
destroy_instance: Efasa domeno
destroy_ip_block: Efasa regla de IP
+ destroy_relay: Efasa relevo
destroy_status: Efasa publikasyon
destroy_unavailable_domain: Efasa domeno no desponivle
destroy_user_role: Efasa rolo
@@ -205,6 +207,7 @@ lad:
disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador
disable_user: Inkapasita utilizador
enable_custom_emoji: Kapasita emoji personalizados
+ enable_relay: Aktiva relevo
enable_sign_in_token_auth_user: Kapasita la autentifikasyon por token de posta para el utilizador
enable_user: Kapasita utilizador
memorialize_account: Transforma en kuento komemorativo
@@ -229,6 +232,7 @@ lad:
update_custom_emoji: Aktualiza emoji personalizado
update_domain_block: Aktualiza bloko de domeno
update_ip_block: Aktualiza regla de IP
+ update_report: Aktualiza raporto
update_status: Aktualiza publikasyon
update_user_role: Aktualiza rolo
actions:
@@ -466,10 +470,13 @@ lad:
fasp:
debug:
callbacks:
+ created_at: Kriyado en
delete: Efasa
+ ip: Adreso IP
providers:
active: Aktivo
delete: Efasa
+ finish_registration: Finaliza enrejistrasyon
name: Nombre
registrations:
confirm: Konfirma
@@ -542,6 +549,12 @@ lad:
all: Todos
limited: Limitado
title: Moderasyon
+ moderation_notes:
+ create: Adjusta nota de moderasyon
+ created_msg: Nota de moderasyon de sirvidor kriyada kon sukseso!
+ description_html: Ve i desha notas a otros moderadores i a tu yo futuro
+ destroyed_msg: Nota de moderasyon de sirvidor efasada kon sukseso!
+ title: Notas de moderasyon
private_comment: Komento privado
public_comment: Komento publiko
purge: Purga
@@ -748,6 +761,7 @@ lad:
title: Rolos
rules:
add_new: Adjusta regla
+ add_translation: Adjusta traduksyon
delete: Efasa
description_html: Aunke la majorita afirma aver meldado i estar de akodro kon los terminos de servisyo, la djente normalmente no los melda asta dempues de ke surja algun problema. Az ke sea mas kolay ver las normas de tu sirvidor de un vistazo estipulándolas en una lista de puntos. Aprova ke kada norma sea corta i kolay, ama sin estar divididas en munchos puntos.
edit: Edita regla
@@ -920,6 +934,9 @@ lad:
updated_msg: Konfigurasyon de etiketas aktualizada kon sukseso
terms_of_service:
changelog: Ke troko
+ current: Aktual
+ generates:
+ action: Djenera
history: Istorya
live: En bivo
publish: Publika
@@ -1245,6 +1262,10 @@ lad:
basic_information: Enformasyon bazika
hint_html: "Personaliza lo ke la djente ve en tu profil publiko i kon tus publikasyones. Es mas probavle ke otras personas te sigan i enteraktuen kontigo kuando kompletas tu profil i foto."
other: Otros
+ emoji_styles:
+ auto: Otomatiko
+ native: Nativo
+ twemoji: Twemoji
errors:
'400': La solisitasyon ke enviates no fue valida o fue malformada.
'403': No tienes permiso para ver esta pajina.
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index e38d80b100..b53aa68a65 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -583,7 +583,7 @@ nl:
created_msg: Aanmaken van servermoderatie-opmerking geslaagd!
description_html: Opmerkingen bekijken, en voor jezelf en andere moderatoren achterlaten
destroyed_msg: Verwijderen van servermoderatie-opmerking geslaagd!
- placeholder: Informatie over deze server, genomen acties of iets anders die jou kunnen helpen om deze server in de toekomst te moderen.
+ placeholder: Informatie over deze server, genomen acties of iets anders die jou kunnen helpen om deze server in de toekomst te modereren.
title: Moderatie-opmerkingen
private_comment: Privé-opmerking
public_comment: Openbare opmerking
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 26205e3826..04bfe7c698 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -61,6 +61,7 @@ ca:
setting_display_media_default: Amaga el contingut gràfic marcat com a sensible
setting_display_media_hide_all: Oculta sempre tot el contingut multimèdia
setting_display_media_show_all: Mostra sempre el contingut gràfic
+ setting_emoji_style: Com mostrar els emojis. "Automàtic" provarà de fer servir els emojis nadius, però revertirà a twemojis en els navegadors antics.
setting_system_scrollbars_ui: S'aplica només als navegadors d'escriptori basats en Safari i Chrome
setting_use_blurhash: Els degradats es basen en els colors de les imatges ocultes, però n'enfosqueixen els detalls
setting_use_pending_items: Amaga les actualitzacions de la línia de temps després de fer un clic, en lloc de desplaçar-les automàticament
@@ -240,6 +241,7 @@ ca:
setting_display_media_default: Per defecte
setting_display_media_hide_all: Amaga-ho tot
setting_display_media_show_all: Mostra-ho tot
+ setting_emoji_style: Estil d'emojis
setting_expand_spoilers: Desplega sempre els tuts marcats amb advertències de contingut
setting_hide_network: Amaga la teva xarxa
setting_missing_alt_text_modal: Mostra un diàleg de confirmació abans de publicar contingut sense text alternatiu
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 07d36ae1a1..6ce3669527 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -61,7 +61,7 @@ da:
setting_display_media_default: Skjul medier med sensitiv-markering
setting_display_media_hide_all: Skjul altid medier
setting_display_media_show_all: Vis altid medier
- setting_emoji_style: Hvordan emojis skal vises. "Auto" vil forsøge at bruge indbyggede emojis, men skifter tilbage til Twemoji for ældre browsere.
+ setting_emoji_style: Hvordan emojis skal vises. "Auto" vil forsøge at bruge indbyggede emojis, men skifter tilbage til Twemoji i ældre webbrowsere.
setting_system_scrollbars_ui: Gælder kun for computerwebbrowsere baseret på Safari og Chrome
setting_use_blurhash: Gradienter er baseret på de skjulte grafikelementers farver, men slører alle detaljer
setting_use_pending_items: Skjul tidslinjeopdateringer bag et klik i stedet for brug af auto-feedrulning
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 07862f3d88..a7cb83eb13 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -61,7 +61,7 @@ de:
setting_display_media_default: Medien mit Inhaltswarnung ausblenden
setting_display_media_hide_all: Medien immer ausblenden
setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen
- setting_emoji_style: Darstellung von Emojis. „Automatisch“ verwendet native Emojis, für ältere Browser jedoch Twemoji.
+ setting_emoji_style: 'Wie Emojis dargestellt werden: „Automatisch“ verwendet native Emojis, für veraltete Browser wird jedoch Twemoji verwendet.'
setting_system_scrollbars_ui: Betrifft nur Desktop-Browser, die auf Chrome oder Safari basieren
setting_use_blurhash: Der Farbverlauf basiert auf den Farben der ausgeblendeten Medien, verschleiert aber jegliche Details
setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt automatisch zu scrollen
@@ -248,7 +248,7 @@ de:
setting_missing_alt_text_modal: Bestätigungsdialog anzeigen, bevor Medien ohne Bildbeschreibung veröffentlicht werden
setting_reduce_motion: Bewegung in Animationen verringern
setting_system_font_ui: Standardschriftart des Browsers verwenden
- setting_system_scrollbars_ui: Bildlaufleiste des Systems verwenden
+ setting_system_scrollbars_ui: Bildlaufleiste des Betriebssystems verwenden
setting_theme: Design
setting_trends: Heutige Trends anzeigen
setting_unfollow_modal: Bestätigungsdialog beim Entfolgen eines Profils anzeigen
diff --git a/config/locales/simple_form.ga.yml b/config/locales/simple_form.ga.yml
index b26cd854fc..9c7b9fe28e 100644
--- a/config/locales/simple_form.ga.yml
+++ b/config/locales/simple_form.ga.yml
@@ -61,6 +61,7 @@ ga:
setting_display_media_default: Folaigh meáin atá marcáilte mar íogair
setting_display_media_hide_all: Folaigh meáin i gcónaí
setting_display_media_show_all: Taispeáin meáin i gcónaí
+ setting_emoji_style: Conas emojis a thaispeáint. Déanfaidh "Auto" iarracht emoji dúchasacha a úsáid, ach titeann sé ar ais go Twemoji le haghaidh seanbhrabhsálaithe.
setting_system_scrollbars_ui: Ní bhaineann sé ach le brabhsálaithe deisce bunaithe ar Safari agus Chrome
setting_use_blurhash: Tá grádáin bunaithe ar dhathanna na n-amharcanna ceilte ach cuireann siad salach ar aon mhionsonraí
setting_use_pending_items: Folaigh nuashonruithe amlíne taobh thiar de chlic seachas an fotha a scrollú go huathoibríoch
@@ -244,6 +245,7 @@ ga:
setting_display_media_default: Réamhshocrú
setting_display_media_hide_all: Cuir uile i bhfolach
setting_display_media_show_all: Taispeáin uile
+ setting_emoji_style: Stíl Emoji
setting_expand_spoilers: Méadaigh postálacha atá marcáilte le rabhaidh inneachair i gcónaí
setting_hide_network: Folaigh do ghraf sóisialta
setting_missing_alt_text_modal: Taispeáin dialóg deimhnithe sula bpostálann tú meán gan alt téacs
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index e54adb8ca2..540da347c1 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -61,6 +61,7 @@ hu:
setting_display_media_default: Kényes tartalomnak jelölt média elrejtése
setting_display_media_hide_all: Média elrejtése mindig
setting_display_media_show_all: Média megjelenítése mindig
+ setting_emoji_style: Az emodzsik megjelenítési módja. Az „Automatikus” megpróbálja a natív emodzsikat használni, de az örökölt böngészők esetén a Twemojira vált vissza.
setting_system_scrollbars_ui: Csak Chrome és Safari alapú asztali böngészőkre vonatkozik
setting_use_blurhash: A kihomályosítás az eredeti képből történik, de minden részletet elrejt
setting_use_pending_items: Idővonal frissítése csak kattintásra automatikus görgetés helyett
@@ -241,6 +242,7 @@ hu:
setting_display_media_default: Alapértelmezés
setting_display_media_hide_all: Mindent elrejt
setting_display_media_show_all: Mindent mutat
+ setting_emoji_style: Emodzsistílus
setting_expand_spoilers: Tartalmi figyelmeztetéssel ellátott bejegyzések automatikus kinyitása
setting_hide_network: Hálózatod elrejtése
setting_missing_alt_text_modal: Megerősítési párbeszédablak megjelenítése a helyettesítő szöveg nélküli média közzététele előtt
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 93c0858ed6..9428f38996 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -61,6 +61,7 @@ it:
setting_display_media_default: Nascondi media segnati come sensibili
setting_display_media_hide_all: Nascondi sempre tutti i media
setting_display_media_show_all: Mostra sempre i media segnati come sensibili
+ setting_emoji_style: Come visualizzare gli emoji. "Automatico" proverà a usare gli emoji nativi, ma per i browser più vecchi ricorrerà a Twemoji.
setting_system_scrollbars_ui: Si applica solo ai browser desktop basati su Safari e Chrome
setting_use_blurhash: I gradienti sono basati sui colori delle immagini nascoste ma offuscano tutti i dettagli
setting_use_pending_items: Fare clic per mostrare i nuovi messaggi invece di aggiornare la timeline automaticamente
@@ -241,6 +242,7 @@ it:
setting_display_media_default: Predefinita
setting_display_media_hide_all: Nascondi tutti
setting_display_media_show_all: Mostra tutti
+ setting_emoji_style: Stile emoji
setting_expand_spoilers: Espandi sempre post con content warning
setting_hide_network: Nascondi la tua rete
setting_missing_alt_text_modal: Chiedi di confermare prima di pubblicare media senza testo alternativo
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index ef5b2a00b6..78ac35b46d 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -61,7 +61,7 @@ nl:
setting_display_media_default: Als gevoelig gemarkeerde media verbergen
setting_display_media_hide_all: Media altijd verbergen
setting_display_media_show_all: Media altijd tonen
- setting_emoji_style: Waarmee moeten emojis worden weergegeven. "Auto" probeert de systeemeigen emojis te gebruiken, maar valt terug op Twemoji voor oudere webbrowsers.
+ setting_emoji_style: Waarmee moeten emojis worden weergegeven. ‘Auto’ probeert de systeemeigen emojis te gebruiken, maar valt terug op Twemoji voor oudere webbrowsers.
setting_system_scrollbars_ui: Alleen van toepassing op desktopbrowsers gebaseerd op Safari en Chrome
setting_use_blurhash: Wazige kleurovergangen zijn gebaseerd op de kleuren van de verborgen media, waarmee elk detail verdwijnt
setting_use_pending_items: De tijdlijn wordt bijgewerkt door op het aantal nieuwe items te klikken, in plaats van dat deze automatisch wordt bijgewerkt
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 2561eeb2ca..8a0e901281 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -234,6 +234,7 @@ uk:
setting_display_media_default: За промовчанням
setting_display_media_hide_all: Сховати всі
setting_display_media_show_all: Показати всі
+ setting_emoji_style: Стиль емодзі
setting_expand_spoilers: Завжди розгортати дописи з попередженнями про вміст
setting_hide_network: Сховати вашу мережу
setting_missing_alt_text_modal: Запитувати перед розміщенням медіа без альтернативного тексту
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index dd9e8e826e..ceadfc3466 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1338,6 +1338,9 @@ uk:
basic_information: Основна інформація
hint_html: "Налаштуйте те, що люди бачитимуть у вашому загальнодоступному профілі та поруч із вашими дописами. Інші люди з більшою ймовірністю підпишуться на вас та взаємодіятимуть з вами, якщо у вас є заповнений профіль та зображення профілю."
other: Інше
+ emoji_styles:
+ auto: Авто
+ native: Рідний
errors:
'400': Ваш запит був недійсним або неправильним.
'403': У Вас немає доступу до перегляду даної сторінки.
diff --git a/spec/lib/mastodon/cli/accounts_spec.rb b/spec/lib/mastodon/cli/accounts_spec.rb
index 238f72f834..e60f5a0cf7 100644
--- a/spec/lib/mastodon/cli/accounts_spec.rb
+++ b/spec/lib/mastodon/cli/accounts_spec.rb
@@ -1288,49 +1288,64 @@ RSpec.describe Mastodon::CLI::Accounts do
describe '#prune' do
let(:action) { :prune }
- let!(:local_account) { Fabricate(:account) }
- let!(:bot_account) { Fabricate(:account, bot: true, domain: 'example.com') }
- let!(:group_account) { Fabricate(:account, actor_type: 'Group', domain: 'example.com') }
- let!(:mentioned_account) { Fabricate(:account, domain: 'example.com') }
- let!(:prunable_accounts) do
- Fabricate.times(2, :account, domain: 'example.com', bot: false, suspended_at: nil, silenced_at: nil)
- end
+ let(:viable_attrs) { { domain: 'example.com', bot: false, suspended: false, silenced: false } }
+ let!(:local_account) { Fabricate(:account) }
+ let!(:bot_account) { Fabricate(:account, bot: true, domain: 'example.com') }
+ let!(:group_account) { Fabricate(:account, actor_type: 'Group', domain: 'example.com') }
+ let!(:account_mentioned) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_favourite) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_status) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_follow) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_follow) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_block) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_block) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_mute) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_report) { Fabricate(:account, viable_attrs) }
+ let!(:account_with_follow_request) { Fabricate(:account, viable_attrs) }
+ let!(:account_targeted_follow_request) { Fabricate(:account, viable_attrs) }
+ let!(:prunable_accounts) { Fabricate.times(2, :account, viable_attrs) }
before do
- Fabricate(:mention, account: mentioned_account, status: Fabricate(:status, account: Fabricate(:account)))
+ Fabricate :mention, account: account_mentioned, status: Fabricate(:status, account: Fabricate(:account))
+ Fabricate :favourite, account: account_with_favourite
+ Fabricate :status, account: account_with_status
+ Fabricate :follow, account: account_with_follow
+ Fabricate :follow, target_account: account_targeted_follow
+ Fabricate :block, account: account_with_block
+ Fabricate :block, target_account: account_targeted_block
+ Fabricate :mute, target_account: account_targeted_mute
+ Fabricate :report, target_account: account_targeted_report
+ Fabricate :follow_request, account: account_with_follow_request
+ Fabricate :follow_request, target_account: account_targeted_follow_request
stub_parallelize_with_progress!
end
- def expect_prune_remote_accounts_without_interaction
- prunable_account_ids = prunable_accounts.pluck(:id)
-
- expect(Account.where(id: prunable_account_ids).count).to eq(0)
- end
-
it 'displays a successful message and handles accounts correctly' do
expect { subject }
.to output_results("OK, pruned #{prunable_accounts.size} accounts")
- expect_prune_remote_accounts_without_interaction
- expect_not_prune_local_accounts
- expect_not_prune_bot_accounts
- expect_not_prune_group_accounts
- expect_not_prune_mentioned_accounts
+ expect(prunable_account_records)
+ .to have_attributes(count: eq(0))
+ expect(Account.all)
+ .to include(local_account)
+ .and include(bot_account)
+ .and include(group_account)
+ .and include(account_mentioned)
+ .and include(account_with_favourite)
+ .and include(account_with_status)
+ .and include(account_with_follow)
+ .and include(account_targeted_follow)
+ .and include(account_with_block)
+ .and include(account_targeted_block)
+ .and include(account_targeted_mute)
+ .and include(account_targeted_report)
+ .and include(account_with_follow_request)
+ .and include(account_targeted_follow_request)
+ .and not_include(prunable_accounts.first)
+ .and not_include(prunable_accounts.last)
end
- def expect_not_prune_local_accounts
- expect(Account.exists?(id: local_account.id)).to be(true)
- end
-
- def expect_not_prune_bot_accounts
- expect(Account.exists?(id: bot_account.id)).to be(true)
- end
-
- def expect_not_prune_group_accounts
- expect(Account.exists?(id: group_account.id)).to be(true)
- end
-
- def expect_not_prune_mentioned_accounts
- expect(Account.exists?(id: mentioned_account.id)).to be true
+ def prunable_account_records
+ Account.where(id: prunable_accounts.pluck(:id))
end
context 'with --dry-run option' do
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index f79b9e9853..4e48772765 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -191,6 +191,19 @@ RSpec.describe Status do
end
end
+ describe '.not_replying_to_account' do
+ let(:account) { Fabricate :account }
+ let!(:status_from_account) { Fabricate :status, account: account }
+ let!(:reply_to_account_status) { Fabricate :status, thread: status_from_account }
+ let!(:reply_to_other) { Fabricate :status, thread: Fabricate(:status) }
+
+ it 'returns records not in reply to provided account' do
+ expect(described_class.not_replying_to_account(account))
+ .to not_include(reply_to_account_status)
+ .and include(reply_to_other)
+ end
+ end
+
describe '#untrusted_favourites_count' do
before do
alice.update(domain: 'example.com')
@@ -450,6 +463,28 @@ RSpec.describe Status do
end
end
+ describe '.only_polls' do
+ let!(:poll_status) { Fabricate :status, poll: Fabricate(:poll) }
+ let!(:no_poll_status) { Fabricate :status }
+
+ it 'returns the expected statuses' do
+ expect(described_class.only_polls)
+ .to include(poll_status)
+ .and not_include(no_poll_status)
+ end
+ end
+
+ describe '.without_polls' do
+ let!(:poll_status) { Fabricate :status, poll: Fabricate(:poll) }
+ let!(:no_poll_status) { Fabricate :status }
+
+ it 'returns the expected statuses' do
+ expect(described_class.without_polls)
+ .to not_include(poll_status)
+ .and include(no_poll_status)
+ end
+ end
+
describe '.tagged_with' do
let(:tag_cats) { Fabricate(:tag, name: 'cats') }
let(:tag_dogs) { Fabricate(:tag, name: 'dogs') }
diff --git a/yarn.lock b/yarn.lock
index cbd02d6e5e..00a6937ee9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6042,9 +6042,9 @@ __metadata:
linkType: hard
"core-js@npm:^3.30.2, core-js@npm:^3.41.0":
- version: 3.43.0
- resolution: "core-js@npm:3.43.0"
- checksum: 10c0/9d4ad66296e60380777de51d019b5c3e6cce023b7999750a5094f9a4b0ea53bf3600beb4ef11c56548f2c8791d43d4056e270d1cf55ba87273011aa7d4597871
+ version: 3.44.0
+ resolution: "core-js@npm:3.44.0"
+ checksum: 10c0/759bf3dc5f75068e9425dddf895fd5531c38794a11ea1c2b65e5ef7c527fe3652d59e8c287e574a211af9bab3c057c5c3fa6f6a773f4e142af895106efad38a4
languageName: node
linkType: hard