mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-05 17:31:12 +00:00
Merge branch 'main' into feature/require-mfa-by-admin
This commit is contained in:
commit
7af438159a
22
CHANGELOG.md
22
CHANGELOG.md
|
@ -2,6 +2,28 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
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
|
## [4.4.2] - 2025-07-23
|
||||||
|
|
||||||
### Security
|
### Security
|
||||||
|
|
|
@ -144,7 +144,7 @@ GEM
|
||||||
rack-test (>= 0.6.3)
|
rack-test (>= 0.6.3)
|
||||||
regexp_parser (>= 1.5, < 3.0)
|
regexp_parser (>= 1.5, < 3.0)
|
||||||
xpath (~> 3.2)
|
xpath (~> 3.2)
|
||||||
capybara-playwright-driver (0.5.6)
|
capybara-playwright-driver (0.5.7)
|
||||||
addressable
|
addressable
|
||||||
capybara
|
capybara
|
||||||
playwright-ruby-client (>= 1.16.0)
|
playwright-ruby-client (>= 1.16.0)
|
||||||
|
@ -438,7 +438,7 @@ GEM
|
||||||
mime-types (3.7.0)
|
mime-types (3.7.0)
|
||||||
logger
|
logger
|
||||||
mime-types-data (~> 3.2025, >= 3.2025.0507)
|
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_mime (1.1.5)
|
||||||
mini_portile2 (2.8.9)
|
mini_portile2 (2.8.9)
|
||||||
minitest (5.25.5)
|
minitest (5.25.5)
|
||||||
|
@ -610,7 +610,7 @@ GEM
|
||||||
pg (1.6.1)
|
pg (1.6.1)
|
||||||
pghero (3.7.0)
|
pghero (3.7.0)
|
||||||
activerecord (>= 7.1)
|
activerecord (>= 7.1)
|
||||||
playwright-ruby-client (1.54.0)
|
playwright-ruby-client (1.54.1)
|
||||||
concurrent-ruby (>= 1.1.6)
|
concurrent-ruby (>= 1.1.6)
|
||||||
mime-types (>= 3.0)
|
mime-types (>= 3.0)
|
||||||
pp (0.6.2)
|
pp (0.6.2)
|
||||||
|
|
|
@ -19,7 +19,7 @@ class Api::V1::Statuses::QuotesController < Api::V1::Statuses::BaseController
|
||||||
|
|
||||||
RevokeQuoteService.new.call(@quote)
|
RevokeQuoteService.new.call(@quote)
|
||||||
|
|
||||||
render_empty # TODO: do we want to return something? an updated status?
|
render json: @quote.status, serializer: REST::StatusSerializer
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -20,7 +20,7 @@ class Api::V2::SearchController < Api::BaseController
|
||||||
@search = Search.new(search_results)
|
@search = Search.new(search_results)
|
||||||
render json: @search, serializer: REST::SearchSerializer
|
render json: @search, serializer: REST::SearchSerializer
|
||||||
rescue Mastodon::SyntaxError
|
rescue Mastodon::SyntaxError
|
||||||
unprocessable_entity
|
unprocessable_content
|
||||||
rescue ActiveRecord::RecordNotFound
|
rescue ActiveRecord::RecordNotFound
|
||||||
not_found
|
not_found
|
||||||
end
|
end
|
||||||
|
|
|
@ -29,7 +29,7 @@ class ApplicationController < ActionController::Base
|
||||||
rescue_from Mastodon::NotPermittedError, with: :forbidden
|
rescue_from Mastodon::NotPermittedError, with: :forbidden
|
||||||
rescue_from ActionController::RoutingError, ActiveRecord::RecordNotFound, with: :not_found
|
rescue_from ActionController::RoutingError, ActiveRecord::RecordNotFound, with: :not_found
|
||||||
rescue_from ActionController::UnknownFormat, with: :not_acceptable
|
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::RateLimitExceededError, with: :too_many_requests
|
||||||
|
|
||||||
rescue_from(*Mastodon::HTTP_CONNECTION_ERRORS, with: :internal_server_error)
|
rescue_from(*Mastodon::HTTP_CONNECTION_ERRORS, with: :internal_server_error)
|
||||||
|
@ -124,7 +124,7 @@ class ApplicationController < ActionController::Base
|
||||||
respond_with_error(410)
|
respond_with_error(410)
|
||||||
end
|
end
|
||||||
|
|
||||||
def unprocessable_entity
|
def unprocessable_content
|
||||||
respond_with_error(422)
|
respond_with_error(422)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,7 @@ module Settings
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
flash[:error] = I18n.t('webauthn_credentials.create.error')
|
flash[:error] = I18n.t('webauthn_credentials.create.error')
|
||||||
status = :unprocessable_entity
|
status = :unprocessable_content
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
flash[:error] = t('webauthn_credentials.create.error')
|
flash[:error] = t('webauthn_credentials.create.error')
|
||||||
|
|
|
@ -161,7 +161,9 @@ export const processNewNotificationForGroups = createAppAsyncThunk(
|
||||||
if (!showInColumn) return;
|
if (!showInColumn) return;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(notification.type === 'mention' || notification.type === 'update') &&
|
(notification.type === 'mention' ||
|
||||||
|
notification.type === 'update' ||
|
||||||
|
notification.type === 'quote') &&
|
||||||
notification.status?.filtered
|
notification.status?.filtered
|
||||||
) {
|
) {
|
||||||
const filters = notification.status.filtered.filter((result) =>
|
const filters = notification.status.filtered.filter((result) =>
|
||||||
|
|
|
@ -31,7 +31,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
||||||
|
|
||||||
let filtered = false;
|
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'));
|
const filters = notification.status.filtered.filter(result => result.filter.context.includes('notifications'));
|
||||||
|
|
||||||
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
if (filters.some(result => result.filter.filter_action === 'hide')) {
|
||||||
|
|
|
@ -143,6 +143,17 @@ class ColumnSettings extends PureComponent {
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section role='group' aria-labelledby='notifications-quote'>
|
||||||
|
<h3 id='notifications-quote'><FormattedMessage id='notifications.column_settings.quote' defaultMessage='Quotes:' /></h3>
|
||||||
|
|
||||||
|
<div className='column-settings__row'>
|
||||||
|
<SettingToggle disabled={browserPermission === 'denied'} prefix='notifications_desktop' settings={settings} settingPath={['alerts', 'quote']} onChange={onChange} label={alertStr} />
|
||||||
|
{showPushSettings && <SettingToggle prefix='notifications_push' settings={pushSettings} settingPath={['alerts', 'quote']} onChange={this.onPushChange} label={pushStr} />}
|
||||||
|
<SettingToggle prefix='notifications' settings={settings} settingPath={['shows', 'quote']} onChange={onChange} label={showStr} />
|
||||||
|
<SettingToggle prefix='notifications' settings={settings} settingPath={['sounds', 'quote']} onChange={onChange} label={soundStr} />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<section role='group' aria-labelledby='notifications-poll'>
|
<section role='group' aria-labelledby='notifications-poll'>
|
||||||
<h3 id='notifications-poll'><FormattedMessage id='notifications.column_settings.poll' defaultMessage='Poll results:' /></h3>
|
<h3 id='notifications-poll'><FormattedMessage id='notifications.column_settings.poll' defaultMessage='Poll results:' /></h3>
|
||||||
|
|
||||||
|
|
|
@ -497,6 +497,8 @@
|
||||||
"keyboard_shortcuts.translate": "per a traduir una publicació",
|
"keyboard_shortcuts.translate": "per a traduir una publicació",
|
||||||
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
|
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
|
||||||
"keyboard_shortcuts.up": "Apuja a la llista",
|
"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.close": "Tanca",
|
||||||
"lightbox.next": "Següent",
|
"lightbox.next": "Següent",
|
||||||
"lightbox.previous": "Anterior",
|
"lightbox.previous": "Anterior",
|
||||||
|
@ -597,6 +599,7 @@
|
||||||
"notification.label.mention": "Menció",
|
"notification.label.mention": "Menció",
|
||||||
"notification.label.private_mention": "Menció privada",
|
"notification.label.private_mention": "Menció privada",
|
||||||
"notification.label.private_reply": "Resposta en privat",
|
"notification.label.private_reply": "Resposta en privat",
|
||||||
|
"notification.label.quote": "{name} ha citat la vostra publicació",
|
||||||
"notification.label.reply": "Resposta",
|
"notification.label.reply": "Resposta",
|
||||||
"notification.mention": "Menció",
|
"notification.mention": "Menció",
|
||||||
"notification.mentioned_you": "{name} us ha mencionat",
|
"notification.mentioned_you": "{name} us ha mencionat",
|
||||||
|
@ -872,6 +875,11 @@
|
||||||
"status.open": "Amplia el tut",
|
"status.open": "Amplia el tut",
|
||||||
"status.pin": "Fixa en el perfil",
|
"status.pin": "Fixa en el perfil",
|
||||||
"status.quote_error.filtered": "No es mostra a causa d'un dels vostres filtres",
|
"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.read_more": "Més informació",
|
||||||
"status.reblog": "Impulsa",
|
"status.reblog": "Impulsa",
|
||||||
"status.reblog_private": "Impulsa amb la visibilitat original",
|
"status.reblog_private": "Impulsa amb la visibilitat original",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Omtale",
|
"notification.label.mention": "Omtale",
|
||||||
"notification.label.private_mention": "Privat omtale",
|
"notification.label.private_mention": "Privat omtale",
|
||||||
"notification.label.private_reply": "Privat svar",
|
"notification.label.private_reply": "Privat svar",
|
||||||
|
"notification.label.quote": "{name} citerede dit indlæg",
|
||||||
"notification.label.reply": "Svar",
|
"notification.label.reply": "Svar",
|
||||||
"notification.mention": "Omtale",
|
"notification.mention": "Omtale",
|
||||||
"notification.mentioned_you": "{name} omtalte dig",
|
"notification.mentioned_you": "{name} omtalte dig",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Επισήμανση",
|
"notification.label.mention": "Επισήμανση",
|
||||||
"notification.label.private_mention": "Ιδιωτική επισήμανση",
|
"notification.label.private_mention": "Ιδιωτική επισήμανση",
|
||||||
"notification.label.private_reply": "Ιδιωτική απάντηση",
|
"notification.label.private_reply": "Ιδιωτική απάντηση",
|
||||||
|
"notification.label.quote": "Ο/Η {name} έκανε παράθεση της ανάρτησής σου",
|
||||||
"notification.label.reply": "Απάντηση",
|
"notification.label.reply": "Απάντηση",
|
||||||
"notification.mention": "Επισήμανση",
|
"notification.mention": "Επισήμανση",
|
||||||
"notification.mentioned_you": "Ο χρήστης {name} σε επισήμανε",
|
"notification.mentioned_you": "Ο χρήστης {name} σε επισήμανε",
|
||||||
|
|
|
@ -658,6 +658,7 @@
|
||||||
"notifications.column_settings.mention": "Mentions:",
|
"notifications.column_settings.mention": "Mentions:",
|
||||||
"notifications.column_settings.poll": "Poll results:",
|
"notifications.column_settings.poll": "Poll results:",
|
||||||
"notifications.column_settings.push": "Push notifications",
|
"notifications.column_settings.push": "Push notifications",
|
||||||
|
"notifications.column_settings.quote": "Quotes:",
|
||||||
"notifications.column_settings.reblog": "Boosts:",
|
"notifications.column_settings.reblog": "Boosts:",
|
||||||
"notifications.column_settings.show": "Show in column",
|
"notifications.column_settings.show": "Show in column",
|
||||||
"notifications.column_settings.sound": "Play sound",
|
"notifications.column_settings.sound": "Play sound",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Mención",
|
"notification.label.mention": "Mención",
|
||||||
"notification.label.private_mention": "Mención privada",
|
"notification.label.private_mention": "Mención privada",
|
||||||
"notification.label.private_reply": "Respuesta privada",
|
"notification.label.private_reply": "Respuesta privada",
|
||||||
|
"notification.label.quote": "{name} citó tu mensaje",
|
||||||
"notification.label.reply": "Respuesta",
|
"notification.label.reply": "Respuesta",
|
||||||
"notification.mention": "Mención",
|
"notification.mention": "Mención",
|
||||||
"notification.mentioned_you": "{name} te mencionó",
|
"notification.mentioned_you": "{name} te mencionó",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Mención",
|
"notification.label.mention": "Mención",
|
||||||
"notification.label.private_mention": "Mención privada",
|
"notification.label.private_mention": "Mención privada",
|
||||||
"notification.label.private_reply": "Respuesta privada",
|
"notification.label.private_reply": "Respuesta privada",
|
||||||
|
"notification.label.quote": "{name} citó tu publicación",
|
||||||
"notification.label.reply": "Respuesta",
|
"notification.label.reply": "Respuesta",
|
||||||
"notification.mention": "Mención",
|
"notification.mention": "Mención",
|
||||||
"notification.mentioned_you": "{name} te mencionó",
|
"notification.mentioned_you": "{name} te mencionó",
|
||||||
|
@ -877,7 +878,7 @@
|
||||||
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
"status.quote_error.filtered": "Oculto debido a uno de tus filtros",
|
||||||
"status.quote_error.not_available": "Publicación no disponible",
|
"status.quote_error.not_available": "Publicación no disponible",
|
||||||
"status.quote_error.pending_approval": "Publicación pendiente",
|
"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_error.pending_approval_popout.title": "¿Cita pendiente? Mantén la calma",
|
||||||
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
"status.quote_post_author": "Ha citado una publicación de @{name}",
|
||||||
"status.read_more": "Leer más",
|
"status.read_more": "Leer más",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Mención",
|
"notification.label.mention": "Mención",
|
||||||
"notification.label.private_mention": "Mención privada",
|
"notification.label.private_mention": "Mención privada",
|
||||||
"notification.label.private_reply": "Respuesta privada",
|
"notification.label.private_reply": "Respuesta privada",
|
||||||
|
"notification.label.quote": "{name} citó tu publicación",
|
||||||
"notification.label.reply": "Respuesta",
|
"notification.label.reply": "Respuesta",
|
||||||
"notification.mention": "Mención",
|
"notification.mention": "Mención",
|
||||||
"notification.mentioned_you": "{name} te ha mencionado",
|
"notification.mentioned_you": "{name} te ha mencionado",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Említés",
|
"notification.label.mention": "Említés",
|
||||||
"notification.label.private_mention": "Privát említés",
|
"notification.label.private_mention": "Privát említés",
|
||||||
"notification.label.private_reply": "Privát válasz",
|
"notification.label.private_reply": "Privát válasz",
|
||||||
|
"notification.label.quote": "{name} idézte a bejegyzésedet",
|
||||||
"notification.label.reply": "Válasz",
|
"notification.label.reply": "Válasz",
|
||||||
"notification.mention": "Említés",
|
"notification.mention": "Említés",
|
||||||
"notification.mentioned_you": "{name} megemlített",
|
"notification.mentioned_you": "{name} megemlített",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Menziona",
|
"notification.label.mention": "Menziona",
|
||||||
"notification.label.private_mention": "Menzione privata",
|
"notification.label.private_mention": "Menzione privata",
|
||||||
"notification.label.private_reply": "Rispondi in privato",
|
"notification.label.private_reply": "Rispondi in privato",
|
||||||
|
"notification.label.quote": "{name} ha citato il tuo post",
|
||||||
"notification.label.reply": "Rispondi",
|
"notification.label.reply": "Rispondi",
|
||||||
"notification.mention": "Menziona",
|
"notification.mention": "Menziona",
|
||||||
"notification.mentioned_you": "{name} ti ha menzionato",
|
"notification.mentioned_you": "{name} ti ha menzionato",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Vermelding",
|
"notification.label.mention": "Vermelding",
|
||||||
"notification.label.private_mention": "Privébericht",
|
"notification.label.private_mention": "Privébericht",
|
||||||
"notification.label.private_reply": "Privéreactie",
|
"notification.label.private_reply": "Privéreactie",
|
||||||
|
"notification.label.quote": "{name} heeft jouw bericht geciteerd",
|
||||||
"notification.label.reply": "Reactie",
|
"notification.label.reply": "Reactie",
|
||||||
"notification.mention": "Vermelding",
|
"notification.mention": "Vermelding",
|
||||||
"notification.mentioned_you": "Je bent vermeld door {name}",
|
"notification.mentioned_you": "Je bent vermeld door {name}",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Bahsetme",
|
"notification.label.mention": "Bahsetme",
|
||||||
"notification.label.private_mention": "Özel bahsetme",
|
"notification.label.private_mention": "Özel bahsetme",
|
||||||
"notification.label.private_reply": "Özel yanıt",
|
"notification.label.private_reply": "Özel yanıt",
|
||||||
|
"notification.label.quote": "{name} gönderini yeniden paylaştı",
|
||||||
"notification.label.reply": "Yanıt",
|
"notification.label.reply": "Yanıt",
|
||||||
"notification.mention": "Bahsetme",
|
"notification.mention": "Bahsetme",
|
||||||
"notification.mentioned_you": "{name} sizden söz etti",
|
"notification.mentioned_you": "{name} sizden söz etti",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "Lượt nhắc",
|
"notification.label.mention": "Lượt nhắc",
|
||||||
"notification.label.private_mention": "Nhắn riêng",
|
"notification.label.private_mention": "Nhắn riêng",
|
||||||
"notification.label.private_reply": "Trả lời 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.label.reply": "Trả lời",
|
||||||
"notification.mention": "Nhắc đến bạn",
|
"notification.mention": "Nhắc đến bạn",
|
||||||
"notification.mentioned_you": "{name} nhắc đến bạn",
|
"notification.mentioned_you": "{name} nhắc đến bạn",
|
||||||
|
|
|
@ -600,6 +600,7 @@
|
||||||
"notification.label.mention": "提及",
|
"notification.label.mention": "提及",
|
||||||
"notification.label.private_mention": "私訊",
|
"notification.label.private_mention": "私訊",
|
||||||
"notification.label.private_reply": "私訊回嘟",
|
"notification.label.private_reply": "私訊回嘟",
|
||||||
|
"notification.label.quote": "{name} 已引用您的嘟文",
|
||||||
"notification.label.reply": "回嘟",
|
"notification.label.reply": "回嘟",
|
||||||
"notification.mention": "提及",
|
"notification.mention": "提及",
|
||||||
"notification.mentioned_you": "{name} 已提及您",
|
"notification.mentioned_you": "{name} 已提及您",
|
||||||
|
|
|
@ -36,6 +36,7 @@ const initialState = ImmutableMap({
|
||||||
follow_request: false,
|
follow_request: false,
|
||||||
favourite: false,
|
favourite: false,
|
||||||
reblog: false,
|
reblog: false,
|
||||||
|
quote: false,
|
||||||
mention: false,
|
mention: false,
|
||||||
poll: false,
|
poll: false,
|
||||||
status: false,
|
status: false,
|
||||||
|
@ -59,6 +60,7 @@ const initialState = ImmutableMap({
|
||||||
follow_request: false,
|
follow_request: false,
|
||||||
favourite: true,
|
favourite: true,
|
||||||
reblog: true,
|
reblog: true,
|
||||||
|
quote: true,
|
||||||
mention: true,
|
mention: true,
|
||||||
poll: true,
|
poll: true,
|
||||||
status: true,
|
status: true,
|
||||||
|
@ -72,6 +74,7 @@ const initialState = ImmutableMap({
|
||||||
follow_request: false,
|
follow_request: false,
|
||||||
favourite: true,
|
favourite: true,
|
||||||
reblog: true,
|
reblog: true,
|
||||||
|
quote: true,
|
||||||
mention: true,
|
mention: true,
|
||||||
poll: true,
|
poll: true,
|
||||||
status: true,
|
status: true,
|
||||||
|
|
|
@ -29,10 +29,12 @@ class UsernameBlock < ApplicationRecord
|
||||||
validates :username, presence: true, uniqueness: true
|
validates :username, presence: true, uniqueness: true
|
||||||
|
|
||||||
scope :matches_exactly, ->(str) { where(exact: true).where(normalized_username: str) }
|
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
|
before_save :set_normalized_username
|
||||||
|
|
||||||
|
normalizes :normalized_username, with: ->(value) { value.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS) }
|
||||||
|
|
||||||
def comparison
|
def comparison
|
||||||
exact? ? 'equals' : 'contains'
|
exact? ? 'equals' : 'contains'
|
||||||
end
|
end
|
||||||
|
@ -42,8 +44,7 @@ class UsernameBlock < ApplicationRecord
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.matches?(str, allow_with_approval: false)
|
def self.matches?(str, allow_with_approval: false)
|
||||||
normalized_str = str.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS)
|
matches_exactly(str).or(matches_partially(str)).where(allow_with_approval: allow_with_approval).any?
|
||||||
matches_exactly(normalized_str).or(matches_partially(normalized_str)).where(allow_with_approval: allow_with_approval).any?
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def to_log_human_identifier
|
def to_log_human_identifier
|
||||||
|
@ -53,10 +54,6 @@ class UsernameBlock < ApplicationRecord
|
||||||
private
|
private
|
||||||
|
|
||||||
def set_normalized_username
|
def set_normalized_username
|
||||||
self.normalized_username = normalize(username)
|
self.normalized_username = username
|
||||||
end
|
|
||||||
|
|
||||||
def normalize(str)
|
|
||||||
str.downcase.gsub(Regexp.union(HOMOGLYPHS.keys), HOMOGLYPHS)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -126,7 +126,7 @@ class Rack::Attack
|
||||||
end
|
end
|
||||||
|
|
||||||
throttle('throttle_email_confirmations/email', limit: 5, period: 30.minutes) do |req|
|
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
|
req.params.dig('user', 'email').presence
|
||||||
elsif req.post? && req.path == '/api/v1/emails/confirmations'
|
elsif req.post? && req.path == '/api/v1/emails/confirmations'
|
||||||
req.authenticated_user_id
|
req.authenticated_user_id
|
||||||
|
|
|
@ -1660,6 +1660,10 @@ ca:
|
||||||
title: Nova menció
|
title: Nova menció
|
||||||
poll:
|
poll:
|
||||||
subject: Ha finalitzat l'enquesta de %{name}
|
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:
|
reblog:
|
||||||
body: "%{name} ha impulsat el teu estat:"
|
body: "%{name} ha impulsat el teu estat:"
|
||||||
subject: "%{name} ha impulsat el teu estat"
|
subject: "%{name} ha impulsat el teu estat"
|
||||||
|
|
|
@ -1765,6 +1765,10 @@ cs:
|
||||||
title: Nová zmínka
|
title: Nová zmínka
|
||||||
poll:
|
poll:
|
||||||
subject: Anketa od %{name} skončila
|
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:
|
reblog:
|
||||||
body: 'Uživatel %{name} boostnul váš příspěvek:'
|
body: 'Uživatel %{name} boostnul váš příspěvek:'
|
||||||
subject: Uživatel %{name} boostnul váš příspěvek
|
subject: Uživatel %{name} boostnul váš příspěvek
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ da:
|
||||||
title: Ny omtale
|
title: Ny omtale
|
||||||
poll:
|
poll:
|
||||||
subject: En afstemning fra %{name} er afsluttet
|
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:
|
reblog:
|
||||||
body: 'Dit indlæg blev fremhævet af %{name}:'
|
body: 'Dit indlæg blev fremhævet af %{name}:'
|
||||||
subject: "%{name} fremhævede dit indlæg"
|
subject: "%{name} fremhævede dit indlæg"
|
||||||
|
@ -1905,7 +1909,7 @@ da:
|
||||||
ownership: Andres indlæg kan ikke fastgøres
|
ownership: Andres indlæg kan ikke fastgøres
|
||||||
reblog: En fremhævelse kan ikke fastgøres
|
reblog: En fremhævelse kan ikke fastgøres
|
||||||
quote_policies:
|
quote_policies:
|
||||||
followers: Kun egne følgere
|
followers: Kun dine følgere
|
||||||
nobody: Ingen
|
nobody: Ingen
|
||||||
public: Alle
|
public: Alle
|
||||||
title: '%{name}: "%{quote}"'
|
title: '%{name}: "%{quote}"'
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ de:
|
||||||
title: Neue Erwähnung
|
title: Neue Erwähnung
|
||||||
poll:
|
poll:
|
||||||
subject: Eine Umfrage von %{name} ist beendet
|
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:
|
reblog:
|
||||||
body: 'Dein Beitrag wurde von %{name} geteilt:'
|
body: 'Dein Beitrag wurde von %{name} geteilt:'
|
||||||
subject: "%{name} teilte deinen Beitrag"
|
subject: "%{name} teilte deinen Beitrag"
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ el:
|
||||||
title: Νέα επισήμανση
|
title: Νέα επισήμανση
|
||||||
poll:
|
poll:
|
||||||
subject: Μια δημοσκόπηση του %{name} έληξε
|
subject: Μια δημοσκόπηση του %{name} έληξε
|
||||||
|
quote:
|
||||||
|
body: 'Η ανάρτησή σου παρατέθηκε από %{name}:'
|
||||||
|
subject: Ο/Η %{name} έκανε παράθεση της ανάρτησής σου
|
||||||
|
title: Νέα παράθεση
|
||||||
reblog:
|
reblog:
|
||||||
body: 'Η ανάρτησή σου ενισχύθηκε από τον/την %{name}:'
|
body: 'Η ανάρτησή σου ενισχύθηκε από τον/την %{name}:'
|
||||||
subject: Ο/Η %{name} ενίσχυσε την ανάρτηση σου
|
subject: Ο/Η %{name} ενίσχυσε την ανάρτηση σου
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ es-AR:
|
||||||
title: Nueva mención
|
title: Nueva mención
|
||||||
poll:
|
poll:
|
||||||
subject: Terminó una encuesta de %{name}
|
subject: Terminó una encuesta de %{name}
|
||||||
|
quote:
|
||||||
|
body: 'Tu mensaje fue citado por %{name}:'
|
||||||
|
subject: "%{name} citó tu mensaje"
|
||||||
|
title: Nueva cita
|
||||||
reblog:
|
reblog:
|
||||||
body: "%{name} adhirió a tu mensaje:"
|
body: "%{name} adhirió a tu mensaje:"
|
||||||
subject: "%{name} adhirió a tu mensaje"
|
subject: "%{name} adhirió a tu mensaje"
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ es-MX:
|
||||||
title: Nueva mención
|
title: Nueva mención
|
||||||
poll:
|
poll:
|
||||||
subject: Una encuesta de %{name} ha terminado
|
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:
|
reblog:
|
||||||
body: 'Tu publicación fue impulsada por %{name}:'
|
body: 'Tu publicación fue impulsada por %{name}:'
|
||||||
subject: "%{name} ha impulsado tu publicación"
|
subject: "%{name} ha impulsado tu publicación"
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ es:
|
||||||
title: Nueva mención
|
title: Nueva mención
|
||||||
poll:
|
poll:
|
||||||
subject: Una encuesta de %{name} ha terminado
|
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:
|
reblog:
|
||||||
body: 'Tu publicación fue impulsada por %{name}:'
|
body: 'Tu publicación fue impulsada por %{name}:'
|
||||||
subject: "%{name} impulsó tu publicación"
|
subject: "%{name} impulsó tu publicación"
|
||||||
|
|
|
@ -1685,6 +1685,10 @@ fi:
|
||||||
title: Uusi maininta
|
title: Uusi maininta
|
||||||
poll:
|
poll:
|
||||||
subject: Äänestys käyttäjältä %{name} on päättynyt
|
subject: Äänestys käyttäjältä %{name} on päättynyt
|
||||||
|
quote:
|
||||||
|
body: "%{name} lainasi julkaisuasi:"
|
||||||
|
subject: "%{name} lainasi julkaisuasi"
|
||||||
|
title: Uusi lainaus
|
||||||
reblog:
|
reblog:
|
||||||
body: "%{name} tehosti julkaisuasi:"
|
body: "%{name} tehosti julkaisuasi:"
|
||||||
subject: "%{name} tehosti julkaisuasi"
|
subject: "%{name} tehosti julkaisuasi"
|
||||||
|
|
|
@ -1852,6 +1852,10 @@ fr-CA:
|
||||||
limit: Vous avez déjà épinglé le nombre maximum de messages
|
limit: Vous avez déjà épinglé le nombre maximum de messages
|
||||||
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
|
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
|
||||||
reblog: Un partage ne peut pas être épinglé
|
reblog: Un partage ne peut pas être épinglé
|
||||||
|
quote_policies:
|
||||||
|
followers: Vos abonné·es seulement
|
||||||
|
nobody: Personne
|
||||||
|
public: Tout le monde
|
||||||
title: "%{name} : « %{quote} »"
|
title: "%{name} : « %{quote} »"
|
||||||
visibilities:
|
visibilities:
|
||||||
direct: Direct
|
direct: Direct
|
||||||
|
|
|
@ -1852,6 +1852,10 @@ fr:
|
||||||
limit: Vous avez déjà épinglé le nombre maximum de messages
|
limit: Vous avez déjà épinglé le nombre maximum de messages
|
||||||
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
|
ownership: Vous ne pouvez pas épingler un message ne vous appartenant pas
|
||||||
reblog: Un partage ne peut pas être épinglé
|
reblog: Un partage ne peut pas être épinglé
|
||||||
|
quote_policies:
|
||||||
|
followers: Vos abonné·es seulement
|
||||||
|
nobody: Personne
|
||||||
|
public: Tout le monde
|
||||||
title: "%{name} : « %{quote} »"
|
title: "%{name} : « %{quote} »"
|
||||||
visibilities:
|
visibilities:
|
||||||
direct: Direct
|
direct: Direct
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ gl:
|
||||||
title: Nova mención
|
title: Nova mención
|
||||||
poll:
|
poll:
|
||||||
subject: A enquisa de %{name} rematou
|
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:
|
reblog:
|
||||||
body: 'A túa publicación promovida por %{name}:'
|
body: 'A túa publicación promovida por %{name}:'
|
||||||
subject: "%{name} promoveu a túa publicación"
|
subject: "%{name} promoveu a túa publicación"
|
||||||
|
|
|
@ -1765,6 +1765,10 @@ he:
|
||||||
title: אזכור חדש
|
title: אזכור חדש
|
||||||
poll:
|
poll:
|
||||||
subject: סקר מאת %{name} הסתיים
|
subject: סקר מאת %{name} הסתיים
|
||||||
|
quote:
|
||||||
|
body: 'הודעתך צוטטה על ידי %{name}:'
|
||||||
|
subject: "%{name} ציטט.ה את הודעתך"
|
||||||
|
title: ציטוט חדש
|
||||||
reblog:
|
reblog:
|
||||||
body: 'הודעתך הודהדה על ידי %{name}:'
|
body: 'הודעתך הודהדה על ידי %{name}:'
|
||||||
subject: הודעתך הודהדה על ידי%{name}
|
subject: הודעתך הודהדה על ידי%{name}
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ hu:
|
||||||
title: Új említés
|
title: Új említés
|
||||||
poll:
|
poll:
|
||||||
subject: "%{name} szavazása véget ért"
|
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:
|
reblog:
|
||||||
body: 'A bejegyzésedet %{name} megtolta:'
|
body: 'A bejegyzésedet %{name} megtolta:'
|
||||||
subject: "%{name} megtolta a bejegyzésedet"
|
subject: "%{name} megtolta a bejegyzésedet"
|
||||||
|
@ -1905,6 +1909,8 @@ hu:
|
||||||
ownership: Nem tűzheted ki valaki más bejegyzését
|
ownership: Nem tűzheted ki valaki más bejegyzését
|
||||||
reblog: Megtolt bejegyzést nem tudsz kitűzni
|
reblog: Megtolt bejegyzést nem tudsz kitűzni
|
||||||
quote_policies:
|
quote_policies:
|
||||||
|
followers: Csak a követőid
|
||||||
|
nobody: Senki
|
||||||
public: Mindenki
|
public: Mindenki
|
||||||
title: "%{name}: „%{quote}”"
|
title: "%{name}: „%{quote}”"
|
||||||
visibilities:
|
visibilities:
|
||||||
|
|
|
@ -1042,6 +1042,16 @@ ia:
|
||||||
other: Usate per %{count} personas in le ultime septimana
|
other: Usate per %{count} personas in le ultime septimana
|
||||||
title: Recommendationes e tendentias
|
title: Recommendationes e tendentias
|
||||||
trending: In tendentia
|
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:
|
warning_presets:
|
||||||
add_new: Adder nove
|
add_new: Adder nove
|
||||||
delete: Deler
|
delete: Deler
|
||||||
|
|
|
@ -1691,6 +1691,10 @@ is:
|
||||||
title: Ný tilvísun
|
title: Ný tilvísun
|
||||||
poll:
|
poll:
|
||||||
subject: Könnun frá %{name} er lokið
|
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:
|
reblog:
|
||||||
body: "%{name} endurbirti færsluna þína:"
|
body: "%{name} endurbirti færsluna þína:"
|
||||||
subject: "%{name} endurbirti færsluna þína"
|
subject: "%{name} endurbirti færsluna þína"
|
||||||
|
|
|
@ -1689,6 +1689,10 @@ it:
|
||||||
title: Nuova menzione
|
title: Nuova menzione
|
||||||
poll:
|
poll:
|
||||||
subject: Un sondaggio da %{name} è terminato
|
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:
|
reblog:
|
||||||
body: 'Il tuo status è stato condiviso da %{name}:'
|
body: 'Il tuo status è stato condiviso da %{name}:'
|
||||||
subject: "%{name} ha condiviso il tuo status"
|
subject: "%{name} ha condiviso il tuo status"
|
||||||
|
@ -1907,6 +1911,8 @@ it:
|
||||||
ownership: Non puoi fissare in cima un post di qualcun altro
|
ownership: Non puoi fissare in cima un post di qualcun altro
|
||||||
reblog: Un toot condiviso non può essere fissato in cima
|
reblog: Un toot condiviso non può essere fissato in cima
|
||||||
quote_policies:
|
quote_policies:
|
||||||
|
followers: Solo i tuoi seguaci
|
||||||
|
nobody: Nessuno
|
||||||
public: Tutti
|
public: Tutti
|
||||||
title: '%{name}: "%{quote}"'
|
title: '%{name}: "%{quote}"'
|
||||||
visibilities:
|
visibilities:
|
||||||
|
|
|
@ -1687,6 +1687,10 @@ nl:
|
||||||
title: Nieuwe vermelding
|
title: Nieuwe vermelding
|
||||||
poll:
|
poll:
|
||||||
subject: Een peiling van %{name} is beëindigd
|
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:
|
reblog:
|
||||||
body: 'Jouw bericht werd door %{name} geboost:'
|
body: 'Jouw bericht werd door %{name} geboost:'
|
||||||
subject: "%{name} boostte jouw bericht"
|
subject: "%{name} boostte jouw bericht"
|
||||||
|
|
|
@ -323,6 +323,7 @@ ca:
|
||||||
follow_request: Algú sol·licita seguir-te
|
follow_request: Algú sol·licita seguir-te
|
||||||
mention: Algú et menciona
|
mention: Algú et menciona
|
||||||
pending_account: Un nou compte necessita revisió
|
pending_account: Un nou compte necessita revisió
|
||||||
|
quote: Algú us ha citat
|
||||||
reblog: Algú comparteix el teu estat
|
reblog: Algú comparteix el teu estat
|
||||||
report: S'ha enviat l'informe nou
|
report: S'ha enviat l'informe nou
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -331,6 +331,7 @@ cs:
|
||||||
follow_request: Někdo požádal o možnost vás sledovat
|
follow_request: Někdo požádal o možnost vás sledovat
|
||||||
mention: Někdo vás zmínil
|
mention: Někdo vás zmínil
|
||||||
pending_account: Je třeba posoudit nový účet
|
pending_account: Je třeba posoudit nový účet
|
||||||
|
quote: Někdo vás citoval
|
||||||
reblog: Někdo boostnul váš příspěvek
|
reblog: Někdo boostnul váš příspěvek
|
||||||
report: Je odesláno nové hlášení
|
report: Je odesláno nové hlášení
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ da:
|
||||||
follow_request: Nogen anmodede om at følge dig
|
follow_request: Nogen anmodede om at følge dig
|
||||||
mention: Nogen omtalte dig
|
mention: Nogen omtalte dig
|
||||||
pending_account: Ny konto kræver gennemgang
|
pending_account: Ny konto kræver gennemgang
|
||||||
|
quote: Nogle citerede dig
|
||||||
reblog: Nogen fremhævede dit indlæg
|
reblog: Nogen fremhævede dit indlæg
|
||||||
report: Ny anmeldelse indsendt
|
report: Ny anmeldelse indsendt
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ de:
|
||||||
follow_request: Jemand möchte mir folgen
|
follow_request: Jemand möchte mir folgen
|
||||||
mention: Ich wurde erwähnt
|
mention: Ich wurde erwähnt
|
||||||
pending_account: Ein neues Konto muss überprüft werden
|
pending_account: Ein neues Konto muss überprüft werden
|
||||||
|
quote: Jemand zitierte dich
|
||||||
reblog: Mein Beitrag wurde geteilt
|
reblog: Mein Beitrag wurde geteilt
|
||||||
report: Eine neue Meldung wurde eingereicht
|
report: Eine neue Meldung wurde eingereicht
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ el:
|
||||||
follow_request: Κάποιος ζήτησε να σε ακολουθήσει
|
follow_request: Κάποιος ζήτησε να σε ακολουθήσει
|
||||||
mention: Κάποιος σε επισήμανε
|
mention: Κάποιος σε επισήμανε
|
||||||
pending_account: Νέος λογαριασμός χρειάζεται αναθεώρηση
|
pending_account: Νέος λογαριασμός χρειάζεται αναθεώρηση
|
||||||
|
quote: Κάποιος σε παρέθεσε
|
||||||
reblog: Κάποιος ενίσχυσε την ανάρτηση σου
|
reblog: Κάποιος ενίσχυσε την ανάρτηση σου
|
||||||
report: Υποβλήθηκε νέα αναφορά
|
report: Υποβλήθηκε νέα αναφορά
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ es-AR:
|
||||||
follow_request: Una cuenta solicita seguirte
|
follow_request: Una cuenta solicita seguirte
|
||||||
mention: Una cuenta te menciona
|
mention: Una cuenta te menciona
|
||||||
pending_account: Una nueva cuenta necesita revisión
|
pending_account: Una nueva cuenta necesita revisión
|
||||||
|
quote: Alguien te citó
|
||||||
reblog: Una cuenta adhiere a tu mensaje
|
reblog: Una cuenta adhiere a tu mensaje
|
||||||
report: Se envió una nueva denuncia
|
report: Se envió una nueva denuncia
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -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.
|
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_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_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_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_default: Ocultar contenido multimedia marcado como sensible
|
||||||
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
|
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
|
follow_request: Enviar correo electrónico cuando alguien solicita seguirte
|
||||||
mention: Enviar correo electrónico cuando alguien te mencione
|
mention: Enviar correo electrónico cuando alguien te mencione
|
||||||
pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión
|
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
|
reblog: Enviar correo electrónico cuando alguien comparta su publicación
|
||||||
report: Nuevo reporte enviado
|
report: Nuevo reporte enviado
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ es:
|
||||||
follow_request: Enviar correo electrónico cuando alguien solicita seguirte
|
follow_request: Enviar correo electrónico cuando alguien solicita seguirte
|
||||||
mention: Enviar correo electrónico cuando alguien te mencione
|
mention: Enviar correo electrónico cuando alguien te mencione
|
||||||
pending_account: Enviar correo electrónico cuando una nueva cuenta necesita revisión
|
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
|
reblog: Enviar correo electrónico cuando alguien comparta su publicación
|
||||||
report: Nuevo informe enviado
|
report: Nuevo informe enviado
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -328,6 +328,7 @@ fi:
|
||||||
follow_request: Joku pyysi lupaa seurata sinua
|
follow_request: Joku pyysi lupaa seurata sinua
|
||||||
mention: Joku mainitsi sinut
|
mention: Joku mainitsi sinut
|
||||||
pending_account: Uusi tili tarvitsee tarkastuksen
|
pending_account: Uusi tili tarvitsee tarkastuksen
|
||||||
|
quote: Joku lainasi sinua
|
||||||
reblog: Joku tehosti julkaisuasi
|
reblog: Joku tehosti julkaisuasi
|
||||||
report: Uusi raportti lähetettiin
|
report: Uusi raportti lähetettiin
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -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.
|
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_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_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_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_default: Masquer les médias marqués comme sensibles
|
||||||
setting_display_media_hide_all: Toujours masquer les médias
|
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_boost_modal: Demander confirmation avant de partager un message
|
||||||
setting_default_language: Langue de publication
|
setting_default_language: Langue de publication
|
||||||
setting_default_privacy: Confidentialité des messages
|
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_default_sensitive: Toujours marquer les médias comme sensibles
|
||||||
setting_delete_modal: Demander confirmation avant de supprimer un message
|
setting_delete_modal: Demander confirmation avant de supprimer un message
|
||||||
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
|
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
|
||||||
|
|
|
@ -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.
|
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_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_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_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_default: Masquer les médias marqués comme sensibles
|
||||||
setting_display_media_hide_all: Toujours masquer les médias
|
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_boost_modal: Demander confirmation avant de partager un message
|
||||||
setting_default_language: Langue de publication
|
setting_default_language: Langue de publication
|
||||||
setting_default_privacy: Confidentialité des messages
|
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_default_sensitive: Toujours marquer les médias comme sensibles
|
||||||
setting_delete_modal: Demander confirmation avant de supprimer un message
|
setting_delete_modal: Demander confirmation avant de supprimer un message
|
||||||
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
|
setting_disable_hover_cards: Désactiver l'aperçu du profil au survol
|
||||||
|
|
|
@ -329,6 +329,7 @@ gl:
|
||||||
follow_request: Enviar un correo cando alguén solicita seguirte
|
follow_request: Enviar un correo cando alguén solicita seguirte
|
||||||
mention: Enviar un correo cando alguén te menciona
|
mention: Enviar un correo cando alguén te menciona
|
||||||
pending_account: Enviar un correo cando unha nova conta precisa revisión
|
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
|
reblog: Enviar un correo cando alguén promociona a tua mensaxe
|
||||||
report: Enviouse unha nova denuncia
|
report: Enviouse unha nova denuncia
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -331,6 +331,7 @@ he:
|
||||||
follow_request: מישהו.י ביקש.ה לעקוב אחריך
|
follow_request: מישהו.י ביקש.ה לעקוב אחריך
|
||||||
mention: שליחת דוא"ל כשפונים אלייך
|
mention: שליחת דוא"ל כשפונים אלייך
|
||||||
pending_account: נדרשת סקירה של חשבון חדש
|
pending_account: נדרשת סקירה של חשבון חדש
|
||||||
|
quote: שליחת דוא"ל כשמצטטים הודעה שלך
|
||||||
reblog: שליחת דוא"ל כשמהדהדים הודעה שלך
|
reblog: שליחת דוא"ל כשמהדהדים הודעה שלך
|
||||||
report: דו"ח חדש הוגש
|
report: דו"ח חדש הוגש
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -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.
|
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_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_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_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_default: Kényes tartalomnak jelölt média elrejtése
|
||||||
setting_display_media_hide_all: Média elrejtése mindig
|
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
|
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
|
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
|
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
|
reblog: Valaki megtolta a bejegyzésedet
|
||||||
report: Új bejelentést küldtek be
|
report: Új bejelentést küldtek be
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ is:
|
||||||
follow_request: Einhver hefur beðið um að fylgjast með þér
|
follow_request: Einhver hefur beðið um að fylgjast með þér
|
||||||
mention: Einhver minntist á þig
|
mention: Einhver minntist á þig
|
||||||
pending_account: Nýr notandaaðgangur þarfnast yfirferðar
|
pending_account: Nýr notandaaðgangur þarfnast yfirferðar
|
||||||
|
quote: Einhver vitnaði í þig
|
||||||
reblog: Einhver endurbirti færsluna þína
|
reblog: Einhver endurbirti færsluna þína
|
||||||
report: Ný kæra hefur verið send inn
|
report: Ný kæra hefur verið send inn
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -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.
|
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_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_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_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_default: Nascondi media segnati come sensibili
|
||||||
setting_display_media_hide_all: Nascondi sempre tutti i media
|
setting_display_media_hide_all: Nascondi sempre tutti i media
|
||||||
|
@ -328,6 +329,7 @@ it:
|
||||||
follow_request: Invia email quando qualcuno chiede di seguirti
|
follow_request: Invia email quando qualcuno chiede di seguirti
|
||||||
mention: Invia email quando qualcuno ti menziona
|
mention: Invia email quando qualcuno ti menziona
|
||||||
pending_account: Invia e-mail quando un nuovo account richiede l'approvazione
|
pending_account: Invia e-mail quando un nuovo account richiede l'approvazione
|
||||||
|
quote: Qualcuno ti ha citato
|
||||||
reblog: Qualcuno ha condiviso il tuo post
|
reblog: Qualcuno ha condiviso il tuo post
|
||||||
report: Una nuova segnalazione è stata inviata
|
report: Una nuova segnalazione è stata inviata
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ nl:
|
||||||
follow_request: Wanneer iemand jou wil volgen
|
follow_request: Wanneer iemand jou wil volgen
|
||||||
mention: Je bent door iemand vermeld
|
mention: Je bent door iemand vermeld
|
||||||
pending_account: Wanneer een nieuw account moet worden beoordeeld
|
pending_account: Wanneer een nieuw account moet worden beoordeeld
|
||||||
|
quote: Iemand heeft jou geciteerd
|
||||||
reblog: Wanneer iemand jouw bericht heeft geboost
|
reblog: Wanneer iemand jouw bericht heeft geboost
|
||||||
report: Nieuwe rapportage is ingediend
|
report: Nieuwe rapportage is ingediend
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -329,6 +329,7 @@ tr:
|
||||||
follow_request: Biri seni takip etmek istedi
|
follow_request: Biri seni takip etmek istedi
|
||||||
mention: Birisi senden bahsetti
|
mention: Birisi senden bahsetti
|
||||||
pending_account: Yeni hesabın incelenmesi gerekiyor
|
pending_account: Yeni hesabın incelenmesi gerekiyor
|
||||||
|
quote: Birisi senden alıntı yaptı
|
||||||
reblog: Birisi gönderini boostladı
|
reblog: Birisi gönderini boostladı
|
||||||
report: Yeni rapor gönderildi
|
report: Yeni rapor gönderildi
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -317,6 +317,7 @@ uk:
|
||||||
follow_request: Коли хтось запитує дозвіл підписатися
|
follow_request: Коли хтось запитує дозвіл підписатися
|
||||||
mention: Коли хтось згадує вас
|
mention: Коли хтось згадує вас
|
||||||
pending_account: Надсилати електронного листа, коли новий обліковий запис потребує розгляду
|
pending_account: Надсилати електронного листа, коли новий обліковий запис потребує розгляду
|
||||||
|
quote: Хтось процитував вас
|
||||||
reblog: Коли хтось поширює ваш допис
|
reblog: Коли хтось поширює ваш допис
|
||||||
report: Нову скаргу надіслано
|
report: Нову скаргу надіслано
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -328,6 +328,7 @@ vi:
|
||||||
follow_request: Ai đó yêu cầu theo dõi bạn
|
follow_request: Ai đó yêu cầu theo dõi bạn
|
||||||
mention: Ai đó nhắc đến bạn
|
mention: Ai đó nhắc đến bạn
|
||||||
pending_account: Phê duyệt tài khoản mới
|
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
|
reblog: Ai đó đăng lại tút của bạn
|
||||||
report: Ai đó gửi báo cáo
|
report: Ai đó gửi báo cáo
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -328,6 +328,7 @@ zh-TW:
|
||||||
follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知
|
follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知
|
||||||
mention: 當有使用者於嘟文提及您時,傳送電子郵件通知
|
mention: 當有使用者於嘟文提及您時,傳送電子郵件通知
|
||||||
pending_account: 有新的帳號需要審核
|
pending_account: 有新的帳號需要審核
|
||||||
|
quote: 當有使用者引用您的嘟文時
|
||||||
reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知
|
reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知
|
||||||
report: 新回報已遞交
|
report: 新回報已遞交
|
||||||
software_updates:
|
software_updates:
|
||||||
|
|
|
@ -1596,7 +1596,7 @@ tr:
|
||||||
password: parola
|
password: parola
|
||||||
sign_in_token: e-posta güvenlik kodu
|
sign_in_token: e-posta güvenlik kodu
|
||||||
webauthn: güvenlik anahtarları
|
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
|
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"
|
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"
|
successful_sign_in_html: "%{method} yöntemiyle %{ip} (%{browser}) adresinden başarılı oturum açma"
|
||||||
|
@ -1687,6 +1687,10 @@ tr:
|
||||||
title: Yeni bahsetme
|
title: Yeni bahsetme
|
||||||
poll:
|
poll:
|
||||||
subject: Anket %{name} tarafından sonlandırıldı
|
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:
|
reblog:
|
||||||
body: "%{name} durumunuzu yeniden paylaştı:"
|
body: "%{name} durumunuzu yeniden paylaştı:"
|
||||||
subject: "%{name} durumunuzu yeniden paylaştı"
|
subject: "%{name} durumunuzu yeniden paylaştı"
|
||||||
|
|
|
@ -1633,6 +1633,8 @@ uk:
|
||||||
title: Нова згадка
|
title: Нова згадка
|
||||||
poll:
|
poll:
|
||||||
subject: Опитування від %{name} завершено
|
subject: Опитування від %{name} завершено
|
||||||
|
quote:
|
||||||
|
body: 'Ваш пост був процитований %{name}:'
|
||||||
reblog:
|
reblog:
|
||||||
body: "%{name} поширює ваш допис:"
|
body: "%{name} поширює ваш допис:"
|
||||||
subject: "%{name} поширив ваш статус"
|
subject: "%{name} поширив ваш статус"
|
||||||
|
|
|
@ -1648,6 +1648,10 @@ vi:
|
||||||
title: Lượt nhắc mới
|
title: Lượt nhắc mới
|
||||||
poll:
|
poll:
|
||||||
subject: Vốt của %{name} đã kết thúc
|
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:
|
reblog:
|
||||||
body: Tút của bạn vừa được %{name} đăng lại
|
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"
|
subject: "%{name} vừa đăng lại tút của bạn"
|
||||||
|
|
|
@ -1650,6 +1650,10 @@ zh-TW:
|
||||||
title: 新的提及
|
title: 新的提及
|
||||||
poll:
|
poll:
|
||||||
subject: 由 %{name} 發起的投票已結束
|
subject: 由 %{name} 發起的投票已結束
|
||||||
|
quote:
|
||||||
|
body: 您的嘟文被 %{name} 引用:
|
||||||
|
subject: "%{name} 已引用您的嘟文"
|
||||||
|
title: 新引用
|
||||||
reblog:
|
reblog:
|
||||||
body: 您的嘟文被 %{name} 轉嘟:
|
body: 您的嘟文被 %{name} 轉嘟:
|
||||||
subject: "%{name} 已轉嘟您的嘟文"
|
subject: "%{name} 已轉嘟您的嘟文"
|
||||||
|
|
|
@ -59,7 +59,7 @@ services:
|
||||||
web:
|
web:
|
||||||
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
||||||
# build: .
|
# build: .
|
||||||
image: ghcr.io/mastodon/mastodon:v4.4.2
|
image: ghcr.io/mastodon/mastodon:v4.4.3
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bundle exec puma -C config/puma.rb
|
command: bundle exec puma -C config/puma.rb
|
||||||
|
@ -83,7 +83,7 @@ services:
|
||||||
# build:
|
# build:
|
||||||
# dockerfile: ./streaming/Dockerfile
|
# dockerfile: ./streaming/Dockerfile
|
||||||
# context: .
|
# context: .
|
||||||
image: ghcr.io/mastodon/mastodon-streaming:v4.4.2
|
image: ghcr.io/mastodon/mastodon-streaming:v4.4.3
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: node ./streaming/index.js
|
command: node ./streaming/index.js
|
||||||
|
@ -102,7 +102,7 @@ services:
|
||||||
sidekiq:
|
sidekiq:
|
||||||
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
# You can uncomment the following line if you want to not use the prebuilt image, for example if you have local code changes
|
||||||
# build: .
|
# build: .
|
||||||
image: ghcr.io/mastodon/mastodon:v4.4.2
|
image: ghcr.io/mastodon/mastodon:v4.4.3
|
||||||
restart: always
|
restart: always
|
||||||
env_file: .env.production
|
env_file: .env.production
|
||||||
command: bundle exec sidekiq
|
command: bundle exec sidekiq
|
||||||
|
|
|
@ -17,7 +17,7 @@ module Mastodon
|
||||||
end
|
end
|
||||||
|
|
||||||
def default_prerelease
|
def default_prerelease
|
||||||
'alpha.1'
|
'alpha.2'
|
||||||
end
|
end
|
||||||
|
|
||||||
def prerelease
|
def prerelease
|
||||||
|
|
|
@ -219,16 +219,16 @@ RSpec.describe ApplicationController do
|
||||||
it_behaves_like 'error response', 410
|
it_behaves_like 'error response', 410
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'unprocessable_entity' do
|
describe 'unprocessable_content' do
|
||||||
controller do
|
controller do
|
||||||
def route_unprocessable_entity
|
def route_unprocessable_content
|
||||||
unprocessable_entity
|
unprocessable_content
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
subject do
|
subject do
|
||||||
routes.draw { get 'route_unprocessable_entity' => 'anonymous#route_unprocessable_entity' }
|
routes.draw { get 'route_unprocessable_content' => 'anonymous#route_unprocessable_content' }
|
||||||
get 'route_unprocessable_entity'
|
get 'route_unprocessable_content'
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'error response', 422
|
it_behaves_like 'error response', 422
|
||||||
|
|
|
@ -108,6 +108,12 @@ RSpec.describe 'API V1 Statuses Quotes' do
|
||||||
|
|
||||||
expect(response)
|
expect(response)
|
||||||
.to have_http_status(200)
|
.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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -98,7 +98,7 @@ RSpec.describe 'Search API' do
|
||||||
context 'when search raises syntax error' do
|
context 'when search raises syntax error' do
|
||||||
before { allow(Search).to receive(:new).and_raise(Mastodon::SyntaxError) }
|
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
|
get '/api/v2/search', headers: headers, params: params
|
||||||
|
|
||||||
expect(response).to have_http_status(422)
|
expect(response).to have_http_status(422)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user