diff --git a/CHANGELOG.md b/CHANGELOG.md
index 97a7234382..b3af469bb3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,28 @@
All notable changes to this project will be documented in this file.
+## [4.4.3] - 2025-08-05
+
+### Security
+
+- Update dependencies
+- Fix incorrect rate-limit handling [GHSA-84ch-6436-c7mg](https://github.com/mastodon/mastodon/security/advisories/GHSA-84ch-6436-c7mg)
+
+### Fixed
+
+- Fix race condition caused by ActiveRecord query cache in `Create` critical path (#35662 by @ClearlyClaire)
+- Fix race condition caused by quote post processing (#35657 by @ClearlyClaire)
+- Fix WebUI crashing for accounts with `null` URL (#35651 by @ClearlyClaire)
+- Fix friends-of-friends recommendations suggesting already-requested accounts (#35604 by @ClearlyClaire)
+- Fix synchronous recursive fetching of deeply-nested quoted posts (#35600 by @ClearlyClaire)
+- Fix “Expand this post” link including user `@undefined` (#35478 by @ClearlyClaire)
+
+### Changed
+
+- Change `StatusReachFinder` to consider quotes as well as reblogs (#35601 by @ClearlyClaire)
+- Add restrictions on which quote posts can trend (#35507 by @ClearlyClaire)
+- Change quote verification to not bypass authorization flow for mentions (#35528 by @ClearlyClaire)
+
## [4.4.2] - 2025-07-23
### Security
diff --git a/Gemfile.lock b/Gemfile.lock
index 2b6ba0d485..475172934a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -144,7 +144,7 @@ GEM
rack-test (>= 0.6.3)
regexp_parser (>= 1.5, < 3.0)
xpath (~> 3.2)
- capybara-playwright-driver (0.5.6)
+ capybara-playwright-driver (0.5.7)
addressable
capybara
playwright-ruby-client (>= 1.16.0)
@@ -438,7 +438,7 @@ GEM
mime-types (3.7.0)
logger
mime-types-data (~> 3.2025, >= 3.2025.0507)
- mime-types-data (3.2025.0722)
+ mime-types-data (3.2025.0729)
mini_mime (1.1.5)
mini_portile2 (2.8.9)
minitest (5.25.5)
@@ -610,7 +610,7 @@ GEM
pg (1.6.1)
pghero (3.7.0)
activerecord (>= 7.1)
- playwright-ruby-client (1.54.0)
+ playwright-ruby-client (1.54.1)
concurrent-ruby (>= 1.1.6)
mime-types (>= 3.0)
pp (0.6.2)
diff --git a/app/controllers/api/v1/statuses/quotes_controller.rb b/app/controllers/api/v1/statuses/quotes_controller.rb
index 7dd91e9a2e..962855884e 100644
--- a/app/controllers/api/v1/statuses/quotes_controller.rb
+++ b/app/controllers/api/v1/statuses/quotes_controller.rb
@@ -19,7 +19,7 @@ class Api::V1::Statuses::QuotesController < Api::V1::Statuses::BaseController
RevokeQuoteService.new.call(@quote)
- render_empty # TODO: do we want to return something? an updated status?
+ render json: @quote.status, serializer: REST::StatusSerializer
end
private
diff --git a/app/controllers/api/v2/search_controller.rb b/app/controllers/api/v2/search_controller.rb
index 3ca13cc427..c00ddf92cc 100644
--- a/app/controllers/api/v2/search_controller.rb
+++ b/app/controllers/api/v2/search_controller.rb
@@ -20,7 +20,7 @@ class Api::V2::SearchController < Api::BaseController
@search = Search.new(search_results)
render json: @search, serializer: REST::SearchSerializer
rescue Mastodon::SyntaxError
- unprocessable_entity
+ unprocessable_content
rescue ActiveRecord::RecordNotFound
not_found
end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index d4f0ffba81..f785874e1c 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -29,7 +29,7 @@ class ApplicationController < ActionController::Base
rescue_from Mastodon::NotPermittedError, with: :forbidden
rescue_from ActionController::RoutingError, ActiveRecord::RecordNotFound, with: :not_found
rescue_from ActionController::UnknownFormat, with: :not_acceptable
- rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity
+ rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_content
rescue_from Mastodon::RateLimitExceededError, with: :too_many_requests
rescue_from(*Mastodon::HTTP_CONNECTION_ERRORS, with: :internal_server_error)
@@ -124,7 +124,7 @@ class ApplicationController < ActionController::Base
respond_with_error(410)
end
- def unprocessable_entity
+ def unprocessable_content
respond_with_error(422)
end
diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
index b01f08ed8f..83dedb411d 100644
--- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
+++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
@@ -52,7 +52,7 @@ module Settings
end
else
flash[:error] = I18n.t('webauthn_credentials.create.error')
- status = :unprocessable_entity
+ status = :unprocessable_content
end
else
flash[:error] = t('webauthn_credentials.create.error')
diff --git a/app/javascript/mastodon/actions/notification_groups.ts b/app/javascript/mastodon/actions/notification_groups.ts
index 4386325481..19d8750fa7 100644
--- a/app/javascript/mastodon/actions/notification_groups.ts
+++ b/app/javascript/mastodon/actions/notification_groups.ts
@@ -161,7 +161,9 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
if (!showInColumn) return;
if (
- (notification.type === 'mention' || notification.type === 'update') &&
+ (notification.type === 'mention' ||
+ notification.type === 'update' ||
+ notification.type === 'quote') &&
notification.status?.filtered
) {
const filters = notification.status.filtered.filter((result) =>
diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js
index 2499b8da1d..cbfddc750f 100644
--- a/app/javascript/mastodon/actions/notifications.js
+++ b/app/javascript/mastodon/actions/notifications.js
@@ -31,7 +31,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
let filtered = false;
- if (['mention', 'status'].includes(notification.type) && notification.status.filtered) {
+ if (['mention', 'status', 'quote'].includes(notification.type) && notification.status.filtered) {
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
if (filters.some(result => result.filter.filter_action === 'hide')) {
diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.jsx b/app/javascript/mastodon/features/notifications/components/column_settings.jsx
index 9616adcb93..b1f4e59818 100644
--- a/app/javascript/mastodon/features/notifications/components/column_settings.jsx
+++ b/app/javascript/mastodon/features/notifications/components/column_settings.jsx
@@ -143,6 +143,17 @@ class ColumnSettings extends PureComponent {
+
+
+
+
+
+ {showPushSettings && }
+
+
+
+
+
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 5bee7f604c..bb255756e6 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -497,6 +497,8 @@
"keyboard_shortcuts.translate": "per a traduir una publicació",
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Apuja a la llista",
+ "learn_more_link.got_it": "Entesos",
+ "learn_more_link.learn_more": "Per a saber-ne més",
"lightbox.close": "Tanca",
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
@@ -597,6 +599,7 @@
"notification.label.mention": "Menció",
"notification.label.private_mention": "Menció privada",
"notification.label.private_reply": "Resposta en privat",
+ "notification.label.quote": "{name} ha citat la vostra publicació",
"notification.label.reply": "Resposta",
"notification.mention": "Menció",
"notification.mentioned_you": "{name} us ha mencionat",
@@ -872,6 +875,11 @@
"status.open": "Amplia el tut",
"status.pin": "Fixa en el perfil",
"status.quote_error.filtered": "No es mostra a causa d'un dels vostres filtres",
+ "status.quote_error.not_available": "Publicació no disponible",
+ "status.quote_error.pending_approval": "Publicació pendent",
+ "status.quote_error.pending_approval_popout.body": "Les citacions compartides a través del Fediverse poden trigar en aparèixer, perquè diferents servidors tenen diferents protocols.",
+ "status.quote_error.pending_approval_popout.title": "Publicació pendent? Mantinguem la calma",
+ "status.quote_post_author": "S'ha citat una publicació de @{name}",
"status.read_more": "Més informació",
"status.reblog": "Impulsa",
"status.reblog_private": "Impulsa amb la visibilitat original",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index ff3ba99e8d..645808695f 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Omtale",
"notification.label.private_mention": "Privat omtale",
"notification.label.private_reply": "Privat svar",
+ "notification.label.quote": "{name} citerede dit indlæg",
"notification.label.reply": "Svar",
"notification.mention": "Omtale",
"notification.mentioned_you": "{name} omtalte dig",
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 79aa5874b5..a2dfbb8bd3 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Επισήμανση",
"notification.label.private_mention": "Ιδιωτική επισήμανση",
"notification.label.private_reply": "Ιδιωτική απάντηση",
+ "notification.label.quote": "Ο/Η {name} έκανε παράθεση της ανάρτησής σου",
"notification.label.reply": "Απάντηση",
"notification.mention": "Επισήμανση",
"notification.mentioned_you": "Ο χρήστης {name} σε επισήμανε",
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index c91516695b..aa18fc39ce 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -658,6 +658,7 @@
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "Poll results:",
"notifications.column_settings.push": "Push notifications",
+ "notifications.column_settings.quote": "Quotes:",
"notifications.column_settings.reblog": "Boosts:",
"notifications.column_settings.show": "Show in column",
"notifications.column_settings.sound": "Play sound",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index 84536740b2..75460017da 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Mención",
"notification.label.private_mention": "Mención privada",
"notification.label.private_reply": "Respuesta privada",
+ "notification.label.quote": "{name} citó tu mensaje",
"notification.label.reply": "Respuesta",
"notification.mention": "Mención",
"notification.mentioned_you": "{name} te mencionó",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 834c1f33bf..d0c2290717 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Mención",
"notification.label.private_mention": "Mención privada",
"notification.label.private_reply": "Respuesta privada",
+ "notification.label.quote": "{name} citó tu publicación",
"notification.label.reply": "Respuesta",
"notification.mention": "Mención",
"notification.mentioned_you": "{name} te mencionó",
@@ -877,7 +878,7 @@
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
"status.quote_error.not_available": "Publicación no disponible",
"status.quote_error.pending_approval": "Publicación pendiente",
- "status.quote_error.pending_approval_popout.body": "Las citas compartidas a través del Fediverso pueden tardar en mostrarse, ya que los diferentes servidores tienen diferentes protocolos.",
+ "status.quote_error.pending_approval_popout.body": "Las citas compartidas en el Fediverso pueden tardar en mostrarse, ya que cada servidor tiene un protocolo diferente.",
"status.quote_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
"status.quote_post_author": "Ha citado una publicación de @{name}",
"status.read_more": "Leer más",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 475f4ca706..62c296ad52 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Mención",
"notification.label.private_mention": "Mención privada",
"notification.label.private_reply": "Respuesta privada",
+ "notification.label.quote": "{name} citó tu publicación",
"notification.label.reply": "Respuesta",
"notification.mention": "Mención",
"notification.mentioned_you": "{name} te ha mencionado",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index 8f93fab6d4..397c9d14c5 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Említés",
"notification.label.private_mention": "Privát említés",
"notification.label.private_reply": "Privát válasz",
+ "notification.label.quote": "{name} idézte a bejegyzésedet",
"notification.label.reply": "Válasz",
"notification.mention": "Említés",
"notification.mentioned_you": "{name} megemlített",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 5168665f6a..9edc9ae567 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Menziona",
"notification.label.private_mention": "Menzione privata",
"notification.label.private_reply": "Rispondi in privato",
+ "notification.label.quote": "{name} ha citato il tuo post",
"notification.label.reply": "Rispondi",
"notification.mention": "Menziona",
"notification.mentioned_you": "{name} ti ha menzionato",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 54a1eac1ba..22cae4b455 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Vermelding",
"notification.label.private_mention": "Privébericht",
"notification.label.private_reply": "Privéreactie",
+ "notification.label.quote": "{name} heeft jouw bericht geciteerd",
"notification.label.reply": "Reactie",
"notification.mention": "Vermelding",
"notification.mentioned_you": "Je bent vermeld door {name}",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index a7fa70a28a..27d5f72c9c 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Bahsetme",
"notification.label.private_mention": "Özel bahsetme",
"notification.label.private_reply": "Özel yanıt",
+ "notification.label.quote": "{name} gönderini yeniden paylaştı",
"notification.label.reply": "Yanıt",
"notification.mention": "Bahsetme",
"notification.mentioned_you": "{name} sizden söz etti",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 5062434ab9..fc67e1d7ae 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -600,6 +600,7 @@
"notification.label.mention": "Lượt nhắc",
"notification.label.private_mention": "Nhắn riêng",
"notification.label.private_reply": "Trả lời riêng",
+ "notification.label.quote": "{name} đã trích dẫn tút của bạn",
"notification.label.reply": "Trả lời",
"notification.mention": "Nhắc đến bạn",
"notification.mentioned_you": "{name} nhắc đến bạn",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index b086b55b83..cafd061818 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -600,6 +600,7 @@
"notification.label.mention": "提及",
"notification.label.private_mention": "私訊",
"notification.label.private_reply": "私訊回嘟",
+ "notification.label.quote": "{name} 已引用您的嘟文",
"notification.label.reply": "回嘟",
"notification.mention": "提及",
"notification.mentioned_you": "{name} 已提及您",
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index 9e2ee5f55a..cea8949f23 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -36,6 +36,7 @@ const initialState = ImmutableMap({
follow_request: false,
favourite: false,
reblog: false,
+ quote: false,
mention: false,
poll: false,
status: false,
@@ -59,6 +60,7 @@ const initialState = ImmutableMap({
follow_request: false,
favourite: true,
reblog: true,
+ quote: true,
mention: true,
poll: true,
status: true,
@@ -72,6 +74,7 @@ const initialState = ImmutableMap({
follow_request: false,
favourite: true,
reblog: true,
+ quote: true,
mention: true,
poll: true,
status: true,
diff --git a/app/models/username_block.rb b/app/models/username_block.rb
index 18db4ca34e..33169a47f8 100644
--- a/app/models/username_block.rb
+++ b/app/models/username_block.rb
@@ -29,10 +29,12 @@ class UsernameBlock < ApplicationRecord
validates :username, presence: true, uniqueness: true
scope :matches_exactly, ->(str) { where(exact: true).where(normalized_username: str) }
- scope :matches_partially, ->(str) { where(exact: false).where(Arel::Nodes.build_quoted(str).matches(Arel::Nodes.build_quoted('%').concat(arel_table[:normalized_username]).concat(Arel::Nodes.build_quoted('%')))) }
+ scope :matches_partially, ->(str) { where(exact: false).where(Arel::Nodes.build_quoted(normalize_value_for(:normalized_username, str)).matches(Arel::Nodes.build_quoted('%').concat(arel_table[:normalized_username]).concat(Arel::Nodes.build_quoted('%')))) }
before_save :set_normalized_username
+ normalizes :normalized_username, with: ->(value) { value.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS) }
+
def comparison
exact? ? 'equals' : 'contains'
end
@@ -42,8 +44,7 @@ class UsernameBlock < ApplicationRecord
end
def self.matches?(str, allow_with_approval: false)
- normalized_str = str.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS)
- matches_exactly(normalized_str).or(matches_partially(normalized_str)).where(allow_with_approval: allow_with_approval).any?
+ matches_exactly(str).or(matches_partially(str)).where(allow_with_approval: allow_with_approval).any?
end
def to_log_human_identifier
@@ -53,10 +54,6 @@ class UsernameBlock < ApplicationRecord
private
def set_normalized_username
- self.normalized_username = normalize(username)
- end
-
- def normalize(str)
- str.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS)
+ self.normalized_username = username
end
end
diff --git a/config/initializers/rack_attack.rb b/config/initializers/rack_attack.rb
index f558ee5fe0..853b99d32f 100644
--- a/config/initializers/rack_attack.rb
+++ b/config/initializers/rack_attack.rb
@@ -126,7 +126,7 @@ class Rack::Attack
end
throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req|
- if req.post? && req.path_matches?('/auth/password')
+ if req.post? && req.path_matches?('/auth/confirmation')
req.params.dig('user', 'email').presence
elsif req.post? && req.path == '/api/v1/emails/confirmations'
req.authenticated_user_id
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 2057e4cc3d..7dfa928f57 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1660,6 +1660,10 @@ ca:
title: Nova menció
poll:
subject: Ha finalitzat l'enquesta de %{name}
+ quote:
+ body: 'La vostra publicació ha estat citada per %{name}:'
+ subject: "%{name} ha citat la vostra publicació"
+ title: Nova citació
reblog:
body: "%{name} ha impulsat el teu estat:"
subject: "%{name} ha impulsat el teu estat"
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index e4ebcd744c..5582a02740 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1765,6 +1765,10 @@ cs:
title: Nová zmínka
poll:
subject: Anketa od %{name} skončila
+ quote:
+ body: 'Váš příspěvek citoval účet %{name}:'
+ subject: "%{name} citovali váš příspěvek"
+ title: Nová citace
reblog:
body: 'Uživatel %{name} boostnul váš příspěvek:'
subject: Uživatel %{name} boostnul váš příspěvek
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 1b56425ee2..85de82443e 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1687,6 +1687,10 @@ da:
title: Ny omtale
poll:
subject: En afstemning fra %{name} er afsluttet
+ quote:
+ body: 'Dit indlæg blev citeret af %{name}:'
+ subject: "%{name} citerede dit indlæg"
+ title: Nyt citat
reblog:
body: 'Dit indlæg blev fremhævet af %{name}:'
subject: "%{name} fremhævede dit indlæg"
@@ -1905,7 +1909,7 @@ da:
ownership: Andres indlæg kan ikke fastgøres
reblog: En fremhævelse kan ikke fastgøres
quote_policies:
- followers: Kun egne følgere
+ followers: Kun dine følgere
nobody: Ingen
public: Alle
title: '%{name}: "%{quote}"'
diff --git a/config/locales/de.yml b/config/locales/de.yml
index adef04dfa8..69ff2ac545 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1687,6 +1687,10 @@ de:
title: Neue Erwähnung
poll:
subject: Eine Umfrage von %{name} ist beendet
+ quote:
+ body: 'Dein Beitrag wurde von %{name} zitiert:'
+ subject: "%{name} zitierte deinen Beitrag"
+ title: Neuer zitierter Beitrag
reblog:
body: 'Dein Beitrag wurde von %{name} geteilt:'
subject: "%{name} teilte deinen Beitrag"
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 2ad8bc6899..cddba5cdfb 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -1687,6 +1687,10 @@ el:
title: Νέα επισήμανση
poll:
subject: Μια δημοσκόπηση του %{name} έληξε
+ quote:
+ body: 'Η ανάρτησή σου παρατέθηκε από %{name}:'
+ subject: Ο/Η %{name} έκανε παράθεση της ανάρτησής σου
+ title: Νέα παράθεση
reblog:
body: 'Η ανάρτησή σου ενισχύθηκε από τον/την %{name}:'
subject: Ο/Η %{name} ενίσχυσε την ανάρτηση σου
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index f01db94590..04578632ac 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1687,6 +1687,10 @@ es-AR:
title: Nueva mención
poll:
subject: Terminó una encuesta de %{name}
+ quote:
+ body: 'Tu mensaje fue citado por %{name}:'
+ subject: "%{name} citó tu mensaje"
+ title: Nueva cita
reblog:
body: "%{name} adhirió a tu mensaje:"
subject: "%{name} adhirió a tu mensaje"
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index e7a6e3df62..10186de91e 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1687,6 +1687,10 @@ es-MX:
title: Nueva mención
poll:
subject: Una encuesta de %{name} ha terminado
+ quote:
+ body: 'Tu publicación fue citada por %{name}:'
+ subject: "%{name} citó tu publicación"
+ title: Nueva cita
reblog:
body: 'Tu publicación fue impulsada por %{name}:'
subject: "%{name} ha impulsado tu publicación"
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 2f7721a0ff..8b2d86911a 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1687,6 +1687,10 @@ es:
title: Nueva mención
poll:
subject: Una encuesta de %{name} ha terminado
+ quote:
+ body: 'Tu publicación ha sido citada por %{name}:'
+ subject: "%{name} citó tu publicación"
+ title: Nueva cita
reblog:
body: 'Tu publicación fue impulsada por %{name}:'
subject: "%{name} impulsó tu publicación"
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 6d7773a1f6..190a58b8ee 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1685,6 +1685,10 @@ fi:
title: Uusi maininta
poll:
subject: Äänestys käyttäjältä %{name} on päättynyt
+ quote:
+ body: "%{name} lainasi julkaisuasi:"
+ subject: "%{name} lainasi julkaisuasi"
+ title: Uusi lainaus
reblog:
body: "%{name} tehosti julkaisuasi:"
subject: "%{name} tehosti julkaisuasi"
diff --git a/config/locales/fr-CA.yml b/config/locales/fr-CA.yml
index 38de6ee861..c7da245c4a 100644
--- a/config/locales/fr-CA.yml
+++ b/config/locales/fr-CA.yml
@@ -1852,6 +1852,10 @@ 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: Vos abonné·es seulement
+ nobody: Personne
+ public: Tout le monde
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index da5224fcf5..918812a807 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1852,6 +1852,10 @@ 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: Vos abonné·es seulement
+ nobody: Personne
+ public: Tout le monde
title: "%{name} : « %{quote} »"
visibilities:
direct: Direct
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 4a2f593d09..45d0e62b6a 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1687,6 +1687,10 @@ gl:
title: Nova mención
poll:
subject: A enquisa de %{name} rematou
+ quote:
+ body: 'A túa publicación foi citada por %{name}:'
+ subject: "%{name} citou a túa publicación"
+ title: Nova cita
reblog:
body: 'A túa publicación promovida por %{name}:'
subject: "%{name} promoveu a túa publicación"
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 53f42bfa3b..46be493307 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1765,6 +1765,10 @@ he:
title: אזכור חדש
poll:
subject: סקר מאת %{name} הסתיים
+ quote:
+ body: 'הודעתך צוטטה על ידי %{name}:'
+ subject: "%{name} ציטט.ה את הודעתך"
+ title: ציטוט חדש
reblog:
body: 'הודעתך הודהדה על ידי %{name}:'
subject: הודעתך הודהדה על ידי%{name}
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 4e8f9e8051..454f5ce017 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1687,6 +1687,10 @@ hu:
title: Új említés
poll:
subject: "%{name} szavazása véget ért"
+ quote:
+ body: 'A bejegyzésedet %{name} idézte:'
+ subject: "%{name} idézte a bejegyzésedet"
+ title: Új idézet
reblog:
body: 'A bejegyzésedet %{name} megtolta:'
subject: "%{name} megtolta a bejegyzésedet"
@@ -1905,6 +1909,8 @@ hu:
ownership: Nem tűzheted ki valaki más bejegyzését
reblog: Megtolt bejegyzést nem tudsz kitűzni
quote_policies:
+ followers: Csak a követőid
+ nobody: Senki
public: Mindenki
title: "%{name}: „%{quote}”"
visibilities:
diff --git a/config/locales/ia.yml b/config/locales/ia.yml
index f2b00a0e55..1c7de3f382 100644
--- a/config/locales/ia.yml
+++ b/config/locales/ia.yml
@@ -1042,6 +1042,16 @@ ia:
other: Usate per %{count} personas in le ultime septimana
title: Recommendationes e tendentias
trending: In tendentia
+ username_blocks:
+ edit:
+ title: Modificar regula de nomine de usator
+ new:
+ create: Crear regula
+ title: Crear nove regula de nomine de usator
+ no_username_block_selected: Necun regula de usator ha essite cambiate perque necun ha essite seligite
+ not_permitted: Non permittite
+ title: Regulas de nomine de usator
+ updated_msg: Regula de nomine de usator actualisate con successo
warning_presets:
add_new: Adder nove
delete: Deler
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 5feccdc9bd..9126062915 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1691,6 +1691,10 @@ is:
title: Ný tilvísun
poll:
subject: Könnun frá %{name} er lokið
+ quote:
+ body: "%{name} vitnaði í færsluna þína:"
+ subject: "%{name} vitnaði í færsluna þína"
+ title: Ný tilvitnun
reblog:
body: "%{name} endurbirti færsluna þína:"
subject: "%{name} endurbirti færsluna þína"
diff --git a/config/locales/it.yml b/config/locales/it.yml
index cef3224f63..669947d5e8 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1689,6 +1689,10 @@ it:
title: Nuova menzione
poll:
subject: Un sondaggio da %{name} è terminato
+ quote:
+ body: 'Il tuo post è stato citato da %{name}:'
+ subject: "%{name} ha citato il tuo post"
+ title: Nuova citazione
reblog:
body: 'Il tuo status è stato condiviso da %{name}:'
subject: "%{name} ha condiviso il tuo status"
@@ -1907,6 +1911,8 @@ it:
ownership: Non puoi fissare in cima un post di qualcun altro
reblog: Un toot condiviso non può essere fissato in cima
quote_policies:
+ followers: Solo i tuoi seguaci
+ nobody: Nessuno
public: Tutti
title: '%{name}: "%{quote}"'
visibilities:
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 85fe706c44..206992ec8c 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1687,6 +1687,10 @@ nl:
title: Nieuwe vermelding
poll:
subject: Een peiling van %{name} is beëindigd
+ quote:
+ body: 'Jouw bericht werd door %{name} geciteerd:'
+ subject: "%{name} heeft jouw bericht geciteerd"
+ title: Nieuw citaat
reblog:
body: 'Jouw bericht werd door %{name} geboost:'
subject: "%{name} boostte jouw bericht"
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 64958711da..f979e68323 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -323,6 +323,7 @@ ca:
follow_request: Algú sol·licita seguir-te
mention: Algú et menciona
pending_account: Un nou compte necessita revisió
+ quote: Algú us ha citat
reblog: Algú comparteix el teu estat
report: S'ha enviat l'informe nou
software_updates:
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 5ca0de9dc8..b318f15709 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -331,6 +331,7 @@ cs:
follow_request: Někdo požádal o možnost vás sledovat
mention: Někdo vás zmínil
pending_account: Je třeba posoudit nový účet
+ quote: Někdo vás citoval
reblog: Někdo boostnul váš příspěvek
report: Je odesláno nové hlášení
software_updates:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index c5a436c2e2..58f6a129bb 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -329,6 +329,7 @@ da:
follow_request: Nogen anmodede om at følge dig
mention: Nogen omtalte dig
pending_account: Ny konto kræver gennemgang
+ quote: Nogle citerede dig
reblog: Nogen fremhævede dit indlæg
report: Ny anmeldelse indsendt
software_updates:
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 998befb111..62185c80f0 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -329,6 +329,7 @@ de:
follow_request: Jemand möchte mir folgen
mention: Ich wurde erwähnt
pending_account: Ein neues Konto muss überprüft werden
+ quote: Jemand zitierte dich
reblog: Mein Beitrag wurde geteilt
report: Eine neue Meldung wurde eingereicht
software_updates:
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index b3c3c2c6d9..fcbe7dc32d 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -329,6 +329,7 @@ el:
follow_request: Κάποιος ζήτησε να σε ακολουθήσει
mention: Κάποιος σε επισήμανε
pending_account: Νέος λογαριασμός χρειάζεται αναθεώρηση
+ quote: Κάποιος σε παρέθεσε
reblog: Κάποιος ενίσχυσε την ανάρτηση σου
report: Υποβλήθηκε νέα αναφορά
software_updates:
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index 0b7dde5cb8..f3972d01a9 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -329,6 +329,7 @@ es-AR:
follow_request: Una cuenta solicita seguirte
mention: Una cuenta te menciona
pending_account: Una nueva cuenta necesita revisión
+ quote: Alguien te citó
reblog: Una cuenta adhiere a tu mensaje
report: Se envió una nueva denuncia
software_updates:
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index 0aee8fab9d..6b20f6e6ae 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -56,7 +56,7 @@ es-MX:
scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales.
setting_aggregate_reblogs: No mostrar nuevos impulsos para las publicaciones que han sido recientemente impulsadas (sólo afecta a las publicaciones recibidas recientemente)
setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente
- setting_default_quote_policy: Este ajuste solo tendrá efecto en publicaciones creadas con la próxima versión de Mastodon, pero puedes configurarlo previamente.
+ setting_default_quote_policy: Esta configuración solo tendrá efecto en las publicaciones creadas con la próxima versión de Mastodon, pero puedes seleccionar tu preferencia como preparación.
setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un clic
setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
@@ -329,6 +329,7 @@ es-MX:
follow_request: Enviar correo electrónico cuando alguien solicita seguirte
mention: Enviar correo electrónico cuando alguien te mencione
pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión
+ quote: Alguien te citó
reblog: Enviar correo electrónico cuando alguien comparta su publicación
report: Nuevo reporte enviado
software_updates:
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index ce2a74c3e1..53115056f4 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -329,6 +329,7 @@ es:
follow_request: Enviar correo electrónico cuando alguien solicita seguirte
mention: Enviar correo electrónico cuando alguien te mencione
pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión
+ quote: Alguien te ha citado
reblog: Enviar correo electrónico cuando alguien comparta su publicación
report: Nuevo informe enviado
software_updates:
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index 5edb75cdb9..7ccf8ab5f7 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -328,6 +328,7 @@ fi:
follow_request: Joku pyysi lupaa seurata sinua
mention: Joku mainitsi sinut
pending_account: Uusi tili tarvitsee tarkastuksen
+ quote: Joku lainasi sinua
reblog: Joku tehosti julkaisuasi
report: Uusi raportti lähetettiin
software_updates:
diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml
index 8856c8906c..51a5b432a3 100644
--- a/config/locales/simple_form.fr-CA.yml
+++ b/config/locales/simple_form.fr-CA.yml
@@ -56,6 +56,7 @@ fr-CA:
scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez une permission générale, vous n’avez pas besoin de sélectionner les permissions plus précises.
setting_aggregate_reblogs: Ne pas afficher les nouveaux partages pour les messages déjà récemment partagés (n’affecte que les partages futurs)
setting_always_send_emails: Normalement, les notifications par courriel ne seront pas envoyées lorsque vous utilisez Mastodon activement
+ setting_default_quote_policy: Ce paramètre ne prendra effet que pour les messages créés avec la prochaine version de Mastodon, mais vous pouvez sélectionner votre préférence en avance.
setting_default_sensitive: Les médias sensibles sont cachés par défaut et peuvent être révélés d’un simple clic
setting_display_media_default: Masquer les médias marqués comme sensibles
setting_display_media_hide_all: Toujours masquer les médias
@@ -228,6 +229,7 @@ fr-CA:
setting_boost_modal: Demander confirmation avant de partager un message
setting_default_language: Langue de publication
setting_default_privacy: Confidentialité des messages
+ setting_default_quote_policy: Autoriser les citations pour
setting_default_sensitive: Toujours marquer les médias comme sensibles
setting_delete_modal: Demander confirmation avant de supprimer un message
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 53c4fbfba7..90218f8b8e 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -56,6 +56,7 @@ fr:
scopes: À quelles APIs l’application sera autorisée à accéder. Si vous sélectionnez une permission générale, vous n’avez pas besoin de sélectionner les permissions plus précises.
setting_aggregate_reblogs: Ne pas afficher les nouveaux partages pour les messages déjà récemment partagés (n’affecte que les partages futurs)
setting_always_send_emails: Normalement, les notifications par courriel ne seront pas envoyées lorsque vous utilisez Mastodon activement
+ setting_default_quote_policy: Ce paramètre ne prendra effet que pour les messages créés avec la prochaine version de Mastodon, mais vous pouvez sélectionner votre préférence en avance.
setting_default_sensitive: Les médias sensibles sont cachés par défaut et peuvent être révélés d’un simple clic
setting_display_media_default: Masquer les médias marqués comme sensibles
setting_display_media_hide_all: Toujours masquer les médias
@@ -228,6 +229,7 @@ fr:
setting_boost_modal: Demander confirmation avant de partager un message
setting_default_language: Langue de publication
setting_default_privacy: Confidentialité des messages
+ setting_default_quote_policy: Autoriser les citations pour
setting_default_sensitive: Toujours marquer les médias comme sensibles
setting_delete_modal: Demander confirmation avant de supprimer un message
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 18c259f22c..1225e67b73 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -329,6 +329,7 @@ gl:
follow_request: Enviar un correo cando alguén solicita seguirte
mention: Enviar un correo cando alguén te menciona
pending_account: Enviar un correo cando unha nova conta precisa revisión
+ quote: Citoute alguén
reblog: Enviar un correo cando alguén promociona a tua mensaxe
report: Enviouse unha nova denuncia
software_updates:
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 78c168f6fd..69c9f00cc5 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -331,6 +331,7 @@ he:
follow_request: מישהו.י ביקש.ה לעקוב אחריך
mention: שליחת דוא"ל כשפונים אלייך
pending_account: נדרשת סקירה של חשבון חדש
+ quote: שליחת דוא"ל כשמצטטים הודעה שלך
reblog: שליחת דוא"ל כשמהדהדים הודעה שלך
report: דו"ח חדש הוגש
software_updates:
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index 7e148d706c..f34d9a5232 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -56,6 +56,7 @@ hu:
scopes: Mely API-kat érheti el az alkalmazás. Ha felső szintű hatáskört választasz, nem kell egyesével kiválasztanod az alatta lévőeket.
setting_aggregate_reblogs: Ne mutassunk megtolásokat olyan bejegyzésekhez, melyeket nemrég toltak meg (csak új megtolásokra lép életbe)
setting_always_send_emails: Alapesetben nem küldünk e-mail-értesítéseket, ha aktívan használod a Mastodont
+ setting_default_quote_policy: A beállítás csak a Mastodon következő verziójával készült bejegyzésekre lesz hatással, de előre kiválaszthatod az előnyben részesített beállítást.
setting_default_sensitive: A kényes médiatartalmat alapesetben elrejtjük, de egyetlen kattintással előhozható
setting_display_media_default: Kényes tartalomnak jelölt média elrejtése
setting_display_media_hide_all: Média elrejtése mindig
@@ -328,6 +329,7 @@ hu:
follow_request: E-mail küldése, amikor valaki követni szeretne téged
mention: E-mail küldése, amikor valaki megemlít téged
pending_account: E-mail küldése, ha új fiókot kell engedélyezni
+ quote: E-mail küldése, amikor valaki idéz téged
reblog: Valaki megtolta a bejegyzésedet
report: Új bejelentést küldtek be
software_updates:
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 49b3d6da35..fc559af7ba 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -329,6 +329,7 @@ is:
follow_request: Einhver hefur beðið um að fylgjast með þér
mention: Einhver minntist á þig
pending_account: Nýr notandaaðgangur þarfnast yfirferðar
+ quote: Einhver vitnaði í þig
reblog: Einhver endurbirti færsluna þína
report: Ný kæra hefur verið send inn
software_updates:
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 0dc781c74e..f349680a36 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -56,6 +56,7 @@ it:
scopes: A quali API l'applicazione potrà avere accesso. Se selezionate un ambito di alto livello, non c'è bisogno di selezionare quelle singole.
setting_aggregate_reblogs: Non mostrare nuove condivisioni per toot che sono stati condivisi di recente (ha effetto solo sulle nuove condivisioni)
setting_always_send_emails: Normalmente le notifiche e-mail non vengono inviate quando si utilizza attivamente Mastodon
+ setting_default_quote_policy: Questa impostazione avrà effetto solo per i post creati con la prossima versione di Mastodon, ma puoi selezionare le tue preferenze in fase di preparazione.
setting_default_sensitive: Media con contenuti sensibili sono nascosti in modo predefinito e possono essere rivelati con un click
setting_display_media_default: Nascondi media segnati come sensibili
setting_display_media_hide_all: Nascondi sempre tutti i media
@@ -328,6 +329,7 @@ it:
follow_request: Invia email quando qualcuno chiede di seguirti
mention: Invia email quando qualcuno ti menziona
pending_account: Invia e-mail quando un nuovo account richiede l'approvazione
+ quote: Qualcuno ti ha citato
reblog: Qualcuno ha condiviso il tuo post
report: Una nuova segnalazione è stata inviata
software_updates:
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 1f0a4de912..53307d7e11 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -329,6 +329,7 @@ nl:
follow_request: Wanneer iemand jou wil volgen
mention: Je bent door iemand vermeld
pending_account: Wanneer een nieuw account moet worden beoordeeld
+ quote: Iemand heeft jou geciteerd
reblog: Wanneer iemand jouw bericht heeft geboost
report: Nieuwe rapportage is ingediend
software_updates:
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 2dffa39805..e403d34e60 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -329,6 +329,7 @@ tr:
follow_request: Biri seni takip etmek istedi
mention: Birisi senden bahsetti
pending_account: Yeni hesabın incelenmesi gerekiyor
+ quote: Birisi senden alıntı yaptı
reblog: Birisi gönderini boostladı
report: Yeni rapor gönderildi
software_updates:
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 8a0e901281..1fb1c542f1 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -317,6 +317,7 @@ uk:
follow_request: Коли хтось запитує дозвіл підписатися
mention: Коли хтось згадує вас
pending_account: Надсилати електронного листа, коли новий обліковий запис потребує розгляду
+ quote: Хтось процитував вас
reblog: Коли хтось поширює ваш допис
report: Нову скаргу надіслано
software_updates:
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index b33c5f4ccc..b2e79420e8 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -328,6 +328,7 @@ vi:
follow_request: Ai đó yêu cầu theo dõi bạn
mention: Ai đó nhắc đến bạn
pending_account: Phê duyệt tài khoản mới
+ quote: Ai đó trích dẫn bạn
reblog: Ai đó đăng lại tút của bạn
report: Ai đó gửi báo cáo
software_updates:
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 2b57647f9e..8fc48dfa98 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -328,6 +328,7 @@ zh-TW:
follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知
mention: 當有使用者於嘟文提及您時,傳送電子郵件通知
pending_account: 有新的帳號需要審核
+ quote: 當有使用者引用您的嘟文時
reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知
report: 新回報已遞交
software_updates:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 595e4bfcbf..5b8dd33720 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1596,7 +1596,7 @@ tr:
password: parola
sign_in_token: e-posta güvenlik kodu
webauthn: güvenlik anahtarları
- description_html: Eğer tanımadığınız bir faaliyet görüyorsanız, parolanızı değiştirmeyi ve iki aşamalı kimlik doğrulamayı etkinleştirmeyi düşünün.
+ description_html: Eğer tanımadığınız bir faaliyet görürseniz, parolanızı değiştirmeyi ve iki aşamalı kimlik doğrulamayı etkinleştirmeyi değerlendirin.
empty: Kimlik doğrulama geçmişi yok
failed_sign_in_html: "%{method} yöntemiyle %{ip} (%{browser}) adresinden başarısız oturum açma girişimi"
successful_sign_in_html: "%{method} yöntemiyle %{ip} (%{browser}) adresinden başarılı oturum açma"
@@ -1687,6 +1687,10 @@ tr:
title: Yeni bahsetme
poll:
subject: Anket %{name} tarafından sonlandırıldı
+ quote:
+ body: "%{name} durumunuzu yeniden paylaştı:"
+ subject: "%{name} gönderini yeniden paylaştı"
+ title: Yeni alıntı
reblog:
body: "%{name} durumunuzu yeniden paylaştı:"
subject: "%{name} durumunuzu yeniden paylaştı"
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index ad3926fbeb..ed0ce8d7b5 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1633,6 +1633,8 @@ uk:
title: Нова згадка
poll:
subject: Опитування від %{name} завершено
+ quote:
+ body: 'Ваш пост був процитований %{name}:'
reblog:
body: "%{name} поширює ваш допис:"
subject: "%{name} поширив ваш статус"
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 32625d4657..aa2b47a890 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1648,6 +1648,10 @@ vi:
title: Lượt nhắc mới
poll:
subject: Vốt của %{name} đã kết thúc
+ quote:
+ body: 'Tút của bạn được trích dẫn bởi %{name}:'
+ subject: "%{name} vừa trích dẫn tút của bạn"
+ title: Trích dẫn mới
reblog:
body: Tút của bạn vừa được %{name} đăng lại
subject: "%{name} vừa đăng lại tút của bạn"
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index fc29a3b531..dbc9c6b8a2 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1650,6 +1650,10 @@ zh-TW:
title: 新的提及
poll:
subject: 由 %{name} 發起的投票已結束
+ quote:
+ body: 您的嘟文被 %{name} 引用:
+ subject: "%{name} 已引用您的嘟文"
+ title: 新引用
reblog:
body: 您的嘟文被 %{name} 轉嘟:
subject: "%{name} 已轉嘟您的嘟文"
diff --git a/docker-compose.yml b/docker-compose.yml
index 8fe42fa0c9..39823fc812 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -59,7 +59,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/mastodon/mastodon:v4.4.2
+ image: ghcr.io/mastodon/mastodon:v4.4.3
restart: always
env_file: .env.production
command: bundle exec puma -C config/puma.rb
@@ -83,7 +83,7 @@ services:
# build:
# dockerfile: ./streaming/Dockerfile
# context: .
- image: ghcr.io/mastodon/mastodon-streaming:v4.4.2
+ image: ghcr.io/mastodon/mastodon-streaming:v4.4.3
restart: always
env_file: .env.production
command: node ./streaming/index.js
@@ -102,7 +102,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/mastodon/mastodon:v4.4.2
+ image: ghcr.io/mastodon/mastodon:v4.4.3
restart: always
env_file: .env.production
command: bundle exec sidekiq
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 7cb5dec677..cb8ff3f462 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -17,7 +17,7 @@ module Mastodon
end
def default_prerelease
- 'alpha.1'
+ 'alpha.2'
end
def prerelease
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index cd4181a00d..ea182a047f 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -219,16 +219,16 @@ RSpec.describe ApplicationController do
it_behaves_like 'error response', 410
end
- describe 'unprocessable_entity' do
+ describe 'unprocessable_content' do
controller do
- def route_unprocessable_entity
- unprocessable_entity
+ def route_unprocessable_content
+ unprocessable_content
end
end
subject do
- routes.draw { get 'route_unprocessable_entity' => 'anonymous#route_unprocessable_entity' }
- get 'route_unprocessable_entity'
+ routes.draw { get 'route_unprocessable_content' => 'anonymous#route_unprocessable_content' }
+ get 'route_unprocessable_content'
end
it_behaves_like 'error response', 422
diff --git a/spec/requests/api/v1/statuses/quotes_spec.rb b/spec/requests/api/v1/statuses/quotes_spec.rb
index bbf697ce32..9456556ce9 100644
--- a/spec/requests/api/v1/statuses/quotes_spec.rb
+++ b/spec/requests/api/v1/statuses/quotes_spec.rb
@@ -108,6 +108,12 @@ RSpec.describe 'API V1 Statuses Quotes' do
expect(response)
.to have_http_status(200)
+ expect(response.content_type)
+ .to start_with('application/json')
+ expect(response.parsed_body)
+ .to match(
+ a_hash_including(id: quote.status.id.to_s, quote: a_hash_including(state: 'revoked'))
+ )
end
end
diff --git a/spec/requests/api/v2/search_spec.rb b/spec/requests/api/v2/search_spec.rb
index 9c9f37e098..6beab4c8c7 100644
--- a/spec/requests/api/v2/search_spec.rb
+++ b/spec/requests/api/v2/search_spec.rb
@@ -98,7 +98,7 @@ RSpec.describe 'Search API' do
context 'when search raises syntax error' do
before { allow(Search).to receive(:new).and_raise(Mastodon::SyntaxError) }
- it 'returns http unprocessable_entity' do
+ it 'returns http unprocessable_content' do
get '/api/v2/search', headers: headers, params: params
expect(response).to have_http_status(422)