From a6794c066d422bff0b1e132ce22fd73fcd9cc56b Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 24 Jul 2025 01:09:24 +0200 Subject: [PATCH 01/16] =?UTF-8?q?Fix=20=E2=80=9CExpand=20this=20post?= =?UTF-8?q?=E2=80=9D=20link=20including=20user=20`@undefined`=20(#35478)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../features/picture_in_picture/components/footer.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx b/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx index 080aaca451..24c88f9505 100644 --- a/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx +++ b/app/javascript/mastodon/features/picture_in_picture/components/footer.tsx @@ -21,6 +21,7 @@ import { openModal } from 'mastodon/actions/modal'; import { IconButton } from 'mastodon/components/icon_button'; import { useIdentity } from 'mastodon/identity_context'; import { me } from 'mastodon/initial_state'; +import type { Account } from 'mastodon/models/account'; import type { Status } from 'mastodon/models/status'; import { makeGetStatus } from 'mastodon/selectors'; import type { RootState } from 'mastodon/store'; @@ -66,10 +67,7 @@ export const Footer: React.FC<{ const dispatch = useAppDispatch(); const getStatus = useMemo(() => makeGetStatus(), []) as GetStatusSelector; const status = useAppSelector((state) => getStatus(state, { id: statusId })); - const accountId = status?.get('account') as string | undefined; - const account = useAppSelector((state) => - accountId ? state.accounts.get(accountId) : undefined, - ); + const account = status?.get('account') as Account | undefined; const askReplyConfirmation = useAppSelector( (state) => (state.compose.get('text') as string).trim().length !== 0, ); From 7f9ad7eabf9d86731ce4af33a8d4a8d35ca3e077 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 24 Jul 2025 09:14:27 +0200 Subject: [PATCH 02/16] Enables cross-origin Web Workers (#35483) --- .../mastodon/features/emoji/index.ts | 4 +-- .../mastodon/features/emoji/loader.ts | 9 +++--- app/javascript/mastodon/utils/workers.ts | 29 +++++++++++++++++++ config/environments/development.rb | 3 ++ vite.config.mts | 5 ++++ 5 files changed, 44 insertions(+), 6 deletions(-) create mode 100644 app/javascript/mastodon/utils/workers.ts diff --git a/app/javascript/mastodon/features/emoji/index.ts b/app/javascript/mastodon/features/emoji/index.ts index 4f23dc5395..541cea9aa9 100644 --- a/app/javascript/mastodon/features/emoji/index.ts +++ b/app/javascript/mastodon/features/emoji/index.ts @@ -1,4 +1,5 @@ import initialState from '@/mastodon/initial_state'; +import { loadWorker } from '@/mastodon/utils/workers'; import { toSupportedLocale } from './locale'; @@ -9,9 +10,8 @@ let worker: Worker | null = null; export async function initializeEmoji() { if (!worker && 'Worker' in window) { try { - worker = new Worker(new URL('./worker', import.meta.url), { + worker = loadWorker(new URL('./worker', import.meta.url), { type: 'module', - credentials: 'omit', }); } catch (err) { console.warn('Error creating web worker:', err); diff --git a/app/javascript/mastodon/features/emoji/loader.ts b/app/javascript/mastodon/features/emoji/loader.ts index 482d9e5c35..454b8383f0 100644 --- a/app/javascript/mastodon/features/emoji/loader.ts +++ b/app/javascript/mastodon/features/emoji/loader.ts @@ -36,15 +36,16 @@ async function fetchAndCheckEtag( ): Promise { const locale = toSupportedLocaleOrCustom(localeOrCustom); - let uri: string; + // Use location.origin as this script may be loaded from a CDN domain. + const url = new URL(location.origin); if (locale === 'custom') { - uri = '/api/v1/custom_emojis'; + url.pathname = '/api/v1/custom_emojis'; } else { - uri = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`; + url.pathname = `/packs${isDevelopment() ? '-dev' : ''}/emoji/${locale}.json`; } const oldEtag = await loadLatestEtag(locale); - const response = await fetch(uri, { + const response = await fetch(url, { headers: { 'Content-Type': 'application/json', 'If-None-Match': oldEtag ?? '', // Send the old ETag to check for modifications diff --git a/app/javascript/mastodon/utils/workers.ts b/app/javascript/mastodon/utils/workers.ts new file mode 100644 index 0000000000..02dd66d86e --- /dev/null +++ b/app/javascript/mastodon/utils/workers.ts @@ -0,0 +1,29 @@ +/** + * Loads Web Worker that is compatible with cross-origin scripts for CDNs. + * + * Returns null if the environment doesn't support web workers. + */ +export function loadWorker(url: string | URL, options: WorkerOptions = {}) { + if (!('Worker' in window)) { + return null; + } + + try { + // Check if the script origin and the window origin are the same. + const scriptUrl = new URL(import.meta.url); + if (location.origin === scriptUrl.origin) { + // Not cross-origin, can just load normally. + return new Worker(url, options); + } + } catch (err) { + // In case the URL parsing fails. + console.warn('Error instantiating Worker:', err); + } + + // Import the worker script from a same-origin Blob. + const contents = `import ${JSON.stringify(url)};`; + const blob = URL.createObjectURL( + new Blob([contents], { type: 'text/javascript' }), + ); + return new Worker(blob, options); +} diff --git a/config/environments/development.rb b/config/environments/development.rb index ca9e876e26..79b491869c 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -19,6 +19,9 @@ Rails.application.configure do # Enable server timing. config.server_timing = true + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + config.asset_host = ENV['CDN_HOST'] if ENV['CDN_HOST'].present? + # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. if Rails.root.join('tmp', 'caching-dev.txt').exist? diff --git a/vite.config.mts b/vite.config.mts index 7f93157b7e..f7871ece4d 100644 --- a/vite.config.mts +++ b/vite.config.mts @@ -65,6 +65,11 @@ export const config: UserConfigFnPromise = async ({ mode, command }) => { // but it needs to be scoped to the whole domain 'Service-Worker-Allowed': '/', }, + hmr: { + // Forcing the protocol to be insecure helps if you are proxying your dev server with SSL, + // because Vite still tries to connect to localhost. + protocol: 'ws', + }, port: 3036, }, build: { From 4241ce9888a632ed10ac792fc4fa4d3fb3aea41f Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 24 Jul 2025 03:33:53 -0400 Subject: [PATCH 03/16] Silence json key duplicate warning from `api/web/push_subscriptions` (#35481) --- app/controllers/api/web/push_subscriptions_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/web/push_subscriptions_controller.rb b/app/controllers/api/web/push_subscriptions_controller.rb index 2711071b4a..ced68d39fc 100644 --- a/app/controllers/api/web/push_subscriptions_controller.rb +++ b/app/controllers/api/web/push_subscriptions_controller.rb @@ -49,7 +49,7 @@ class Api::Web::PushSubscriptionsController < Api::Web::BaseController { policy: 'all', alerts: Notification::TYPES.index_with { alerts_enabled }, - } + }.deep_stringify_keys end def alerts_enabled From 290e36d7e8af9d45c81ccf5b5567aa6e249eea54 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 24 Jul 2025 03:46:09 -0400 Subject: [PATCH 04/16] Finish migration of `api/web/push_subscriptions` controller->request spec (#35482) --- .../web/push_subscriptions_controller_spec.rb | 124 ------------------ .../api/web/push_subscriptions_spec.rb | 124 +++++++++++++++++- 2 files changed, 123 insertions(+), 125 deletions(-) delete mode 100644 spec/controllers/api/web/push_subscriptions_controller_spec.rb diff --git a/spec/controllers/api/web/push_subscriptions_controller_spec.rb b/spec/controllers/api/web/push_subscriptions_controller_spec.rb deleted file mode 100644 index 1e01709262..0000000000 --- a/spec/controllers/api/web/push_subscriptions_controller_spec.rb +++ /dev/null @@ -1,124 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe Api::Web::PushSubscriptionsController do - render_views - - let(:user) { Fabricate(:user) } - - let(:create_payload) do - { - subscription: { - endpoint: 'https://fcm.googleapis.com/fcm/send/fiuH06a27qE:APA91bHnSiGcLwdaxdyqVXNDR9w1NlztsHb6lyt5WDKOC_Z_Q8BlFxQoR8tWFSXUIDdkyw0EdvxTu63iqamSaqVSevW5LfoFwojws8XYDXv_NRRLH6vo2CdgiN4jgHv5VLt2A8ah6lUX', - keys: { - p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=', - auth: 'eH_C8rq2raXqlcBVDa1gLg==', - }, - standard: standard, - }, - } - end - - let(:alerts_payload) do - { - data: { - policy: 'all', - - alerts: { - follow: true, - follow_request: false, - favourite: false, - reblog: true, - mention: false, - poll: true, - status: false, - }, - }, - } - end - let(:standard) { '1' } - - before do - sign_in(user) - - stub_request(:post, create_payload[:subscription][:endpoint]).to_return(status: 200) - end - - describe 'POST #create' do - it 'saves push subscriptions' do - post :create, format: :json, params: create_payload - - expect(response).to have_http_status(200) - - user.reload - - expect(created_push_subscription) - .to have_attributes( - endpoint: eq(create_payload[:subscription][:endpoint]), - key_p256dh: eq(create_payload[:subscription][:keys][:p256dh]), - key_auth: eq(create_payload[:subscription][:keys][:auth]) - ) - .and be_standard - expect(user.session_activations.first.web_push_subscription).to eq(created_push_subscription) - end - - context 'when standard is provided as false value' do - let(:standard) { '0' } - - it 'saves push subscription with standard as false' do - post :create, format: :json, params: create_payload - - expect(created_push_subscription) - .to_not be_standard - end - end - - context 'with a user who has a session with a prior subscription' do - let!(:prior_subscription) { Fabricate(:web_push_subscription, session_activation: user.session_activations.last) } - - it 'destroys prior subscription when creating new one' do - post :create, format: :json, params: create_payload - - expect(response).to have_http_status(200) - expect { prior_subscription.reload }.to raise_error(ActiveRecord::RecordNotFound) - end - end - - context 'with initial data' do - it 'saves alert settings' do - post :create, format: :json, params: create_payload.merge(alerts_payload) - - expect(response).to have_http_status(200) - - expect(created_push_subscription.data['policy']).to eq 'all' - - %w(follow follow_request favourite reblog mention poll status).each do |type| - expect(created_push_subscription.data['alerts'][type]).to eq(alerts_payload[:data][:alerts][type.to_sym].to_s) - end - end - end - end - - describe 'PUT #update' do - it 'changes alert settings' do - post :create, format: :json, params: create_payload - - expect(response).to have_http_status(200) - - alerts_payload[:id] = created_push_subscription.id - - put :update, format: :json, params: alerts_payload - - expect(created_push_subscription.data['policy']).to eq 'all' - - %w(follow follow_request favourite reblog mention poll status).each do |type| - expect(created_push_subscription.data['alerts'][type]).to eq(alerts_payload[:data][:alerts][type.to_sym].to_s) - end - end - end - - def created_push_subscription - Web::PushSubscription.find_by(endpoint: create_payload[:subscription][:endpoint]) - end -end diff --git a/spec/requests/api/web/push_subscriptions_spec.rb b/spec/requests/api/web/push_subscriptions_spec.rb index 42545b3d6e..91d7b85bc5 100644 --- a/spec/requests/api/web/push_subscriptions_spec.rb +++ b/spec/requests/api/web/push_subscriptions_spec.rb @@ -3,6 +3,38 @@ require 'rails_helper' RSpec.describe 'API Web Push Subscriptions' do + let(:create_payload) do + { + subscription: { + endpoint: 'https://fcm.googleapis.com/fcm/send/fiuH06a27qE:APA91bHnSiGcLwdaxdyqVXNDR9w1NlztsHb6lyt5WDKOC_Z_Q8BlFxQoR8tWFSXUIDdkyw0EdvxTu63iqamSaqVSevW5LfoFwojws8XYDXv_NRRLH6vo2CdgiN4jgHv5VLt2A8ah6lUX', + keys: { + p256dh: 'BEm_a0bdPDhf0SOsrnB2-ategf1hHoCnpXgQsFj5JCkcoMrMt2WHoPfEYOYPzOIs9mZE8ZUaD7VA5vouy0kEkr8=', + auth: 'eH_C8rq2raXqlcBVDa1gLg==', + }, + standard: standard, + }, + } + end + + let(:alerts_payload) do + { + data: { + policy: 'all', + + alerts: { + follow: true, + follow_request: false, + favourite: false, + reblog: true, + mention: false, + poll: true, + status: false, + }, + }, + } + end + let(:standard) { '1' } + describe 'DELETE /api/web/push_subscriptions/:id' do subject { delete api_web_push_subscription_path(token) } @@ -54,7 +86,9 @@ RSpec.describe 'API Web Push Subscriptions' do end describe 'POST /api/web/push_subscriptions' do - before { sign_in Fabricate :user } + before { sign_in(user) } + + let(:user) { Fabricate :user } it 'gracefully handles invalid nested params' do post api_web_push_subscriptions_path, params: { subscription: 'invalid' } @@ -62,6 +96,69 @@ RSpec.describe 'API Web Push Subscriptions' do expect(response) .to have_http_status(400) end + + it 'saves push subscriptions with valid params' do + post api_web_push_subscriptions_path, params: create_payload + expect(response) + .to have_http_status(200) + + expect(created_push_subscription) + .to have_attributes( + endpoint: eq(create_payload[:subscription][:endpoint]), + key_p256dh: eq(create_payload[:subscription][:keys][:p256dh]), + key_auth: eq(create_payload[:subscription][:keys][:auth]) + ) + .and be_standard + expect(user.session_activations.first.web_push_subscription) + .to eq(created_push_subscription) + end + + context 'when standard is provided as false value' do + let(:standard) { '0' } + + it 'saves push subscription with standard as false' do + post api_web_push_subscriptions_path, params: create_payload + + expect(created_push_subscription) + .to_not be_standard + end + end + + context 'with a user who has a session with a prior subscription' do + before do + # Trigger creation of a `SessionActivation` for the user so that the + # prior_subscription setup and verification works as expected + get about_path + end + + let!(:prior_subscription) { Fabricate(:web_push_subscription, user:, session_activation: user.session_activations.last) } + + it 'destroys prior subscription when creating new one' do + post api_web_push_subscriptions_path, params: create_payload + + expect(response) + .to have_http_status(200) + expect { prior_subscription.reload } + .to raise_error(ActiveRecord::RecordNotFound) + end + end + + context 'with initial data' do + it 'saves alert settings' do + post api_web_push_subscriptions_path, params: create_payload.merge(alerts_payload) + + expect(response) + .to have_http_status(200) + + expect(created_push_subscription.data['policy']) + .to eq 'all' + + alert_types.each do |type| + expect(created_push_subscription.data['alerts'][type]) + .to eq(alerts_payload[:data][:alerts][type.to_sym].to_s) + end + end + end end describe 'PUT /api/web/push_subscriptions' do @@ -75,5 +172,30 @@ RSpec.describe 'API Web Push Subscriptions' do expect(response) .to have_http_status(400) end + + it 'changes existing alert settings' do + # Create record this way to correctly associate a `SessionActivation` + # during full POST->create cycle + post api_web_push_subscriptions_path params: create_payload + expect(response) + .to have_http_status(200) + + put api_web_push_subscription_path(created_push_subscription), params: alerts_payload + expect(created_push_subscription.data['policy']) + .to eq 'all' + alert_types.each do |type| + expect(created_push_subscription.data['alerts'][type]) + .to eq(alerts_payload[:data][:alerts][type.to_sym].to_s) + end + end + end + + def created_push_subscription + Web::PushSubscription + .find_by(endpoint: create_payload[:subscription][:endpoint]) + end + + def alert_types + Notification::LEGACY_TYPE_CLASS_MAP.values.map(&:to_s) end end From 469304359a0a034dc28182d1cb4976daa70e2aaf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:49:09 +0200 Subject: [PATCH 05/16] New Crowdin Translations (automated) (#35495) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 2 - app/javascript/mastodon/locales/ast.json | 1 - app/javascript/mastodon/locales/be.json | 2 - app/javascript/mastodon/locales/bg.json | 2 - app/javascript/mastodon/locales/ca.json | 4 +- app/javascript/mastodon/locales/cs.json | 4 +- app/javascript/mastodon/locales/cy.json | 2 - app/javascript/mastodon/locales/da.json | 4 +- app/javascript/mastodon/locales/de.json | 6 +- app/javascript/mastodon/locales/el.json | 2 - app/javascript/mastodon/locales/en-GB.json | 2 - app/javascript/mastodon/locales/eo.json | 18 +++- app/javascript/mastodon/locales/es-AR.json | 4 +- app/javascript/mastodon/locales/es-MX.json | 4 +- app/javascript/mastodon/locales/es.json | 4 +- app/javascript/mastodon/locales/et.json | 2 - app/javascript/mastodon/locales/eu.json | 8 +- app/javascript/mastodon/locales/fa.json | 2 - app/javascript/mastodon/locales/fi.json | 4 +- app/javascript/mastodon/locales/fo.json | 4 +- app/javascript/mastodon/locales/fr-CA.json | 2 - app/javascript/mastodon/locales/fr.json | 2 - app/javascript/mastodon/locales/fy.json | 2 - app/javascript/mastodon/locales/ga.json | 2 - app/javascript/mastodon/locales/gd.json | 2 - app/javascript/mastodon/locales/gl.json | 4 +- app/javascript/mastodon/locales/he.json | 4 +- app/javascript/mastodon/locales/hu.json | 4 +- app/javascript/mastodon/locales/ia.json | 2 - app/javascript/mastodon/locales/io.json | 2 - app/javascript/mastodon/locales/is.json | 4 +- app/javascript/mastodon/locales/it.json | 4 +- app/javascript/mastodon/locales/ja.json | 2 - app/javascript/mastodon/locales/kab.json | 2 - app/javascript/mastodon/locales/ko.json | 2 - app/javascript/mastodon/locales/ku.json | 1 - app/javascript/mastodon/locales/lad.json | 2 - app/javascript/mastodon/locales/lt.json | 2 - app/javascript/mastodon/locales/lv.json | 2 - app/javascript/mastodon/locales/nan.json | 2 - app/javascript/mastodon/locales/nl.json | 4 +- app/javascript/mastodon/locales/nn.json | 2 - app/javascript/mastodon/locales/no.json | 2 - app/javascript/mastodon/locales/pa.json | 1 - app/javascript/mastodon/locales/pl.json | 2 - app/javascript/mastodon/locales/pt-BR.json | 2 - app/javascript/mastodon/locales/pt-PT.json | 2 - app/javascript/mastodon/locales/ru.json | 6 +- app/javascript/mastodon/locales/sc.json | 2 - app/javascript/mastodon/locales/si.json | 2 - app/javascript/mastodon/locales/sk.json | 2 - app/javascript/mastodon/locales/sl.json | 2 - app/javascript/mastodon/locales/sq.json | 2 - app/javascript/mastodon/locales/sv.json | 2 - app/javascript/mastodon/locales/th.json | 2 - app/javascript/mastodon/locales/tok.json | 2 - app/javascript/mastodon/locales/tr.json | 2 - app/javascript/mastodon/locales/uk.json | 2 - app/javascript/mastodon/locales/vi.json | 4 +- app/javascript/mastodon/locales/zh-CN.json | 2 - app/javascript/mastodon/locales/zh-TW.json | 4 +- config/locales/ru.yml | 112 ++++++++++----------- 62 files changed, 113 insertions(+), 180 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 813a92761d..24acd77e31 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "عرض المزيد من المتابعين على {domain}", "hints.profiles.see_more_follows": "اطلع على المزيد من المتابعين على {domain}", "hints.profiles.see_more_posts": "عرض المزيد من المنشورات من {domain}", - "hints.threads.replies_may_be_missing": "قد تكون الردود الواردة من الخوادم الأخرى غائبة.", - "hints.threads.see_more": "اطلع على المزيد من الردود على {domain}", "home.column_settings.show_quotes": "إظهار الاقتباسات", "home.column_settings.show_reblogs": "اعرض المعاد نشرها", "home.column_settings.show_replies": "اعرض الردود", diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json index e039b9e612..cc92966431 100644 --- a/app/javascript/mastodon/locales/ast.json +++ b/app/javascript/mastodon/locales/ast.json @@ -266,7 +266,6 @@ "hashtag.counter_by_accounts": "{count, plural, one {{counter} participante} other {{counter} participantes}}", "hashtag.follow": "Siguir a la etiqueta", "hashtag.unfollow": "Dexar de siguir a la etiqueta", - "hints.threads.replies_may_be_missing": "Ye posible que falten les rempuestes d'otros sirvidores.", "home.column_settings.show_reblogs": "Amosar los artículos compartíos", "home.column_settings.show_replies": "Amosar les rempuestes", "home.pending_critical_update.body": "¡Anueva'l sirvidor de Mastodon namás que puedas!", diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json index 213ec61aca..0f49cc6979 100644 --- a/app/javascript/mastodon/locales/be.json +++ b/app/javascript/mastodon/locales/be.json @@ -404,8 +404,6 @@ "hints.profiles.see_more_followers": "Глядзець больш падпісаных на {domain}", "hints.profiles.see_more_follows": "Глядзець больш падпісак на {domain}", "hints.profiles.see_more_posts": "Глядзець больш допісаў на {domain}", - "hints.threads.replies_may_be_missing": "Адказы з іншых сервераў могуць адсутнічаць.", - "hints.threads.see_more": "Глядзіце больш адказаў на {domain}", "home.column_settings.show_quotes": "Паказаць цытаты", "home.column_settings.show_reblogs": "Паказваць пашырэнні", "home.column_settings.show_replies": "Паказваць адказы", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index 8628b68954..392f9470c0 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -419,8 +419,6 @@ "hints.profiles.see_more_followers": "Преглед на още последователи на {domain}", "hints.profiles.see_more_follows": "Преглед на още последвания на {domain}", "hints.profiles.see_more_posts": "Преглед на още публикации на {domain}", - "hints.threads.replies_may_be_missing": "Отговори от други сървъри може да липсват.", - "hints.threads.see_more": "Преглед на още отговори на {domain}", "home.column_settings.show_quotes": "Показване на цитираното", "home.column_settings.show_reblogs": "Показване на подсилванията", "home.column_settings.show_replies": "Показване на отговорите", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 7fab405f8e..645a375124 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Vegeu més seguidors a {domain}", "hints.profiles.see_more_follows": "Vegeu més seguiments a {domain}", "hints.profiles.see_more_posts": "Vegeu més publicacions a {domain}", - "hints.threads.replies_may_be_missing": "Es poden haver perdut respostes d'altres servidors.", - "hints.threads.see_more": "Vegeu més respostes a {domain}", "home.column_settings.show_quotes": "Mostrar les cites", "home.column_settings.show_reblogs": "Mostra els impulsos", "home.column_settings.show_replies": "Mostra les respostes", @@ -846,6 +844,8 @@ "status.bookmark": "Marca", "status.cancel_reblog_private": "Desfés l'impuls", "status.cannot_reblog": "No es pot impulsar aquest tut", + "status.context.load_new_replies": "Hi ha respostes noves", + "status.context.loading": "Comprovació de més respostes", "status.continued_thread": "Continuació del fil", "status.copy": "Copia l'enllaç al tut", "status.delete": "Elimina", diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json index f64a619607..24486800f3 100644 --- a/app/javascript/mastodon/locales/cs.json +++ b/app/javascript/mastodon/locales/cs.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Zobrazit více sledujících na {domain}", "hints.profiles.see_more_follows": "Zobrazit další sledování na {domain}", "hints.profiles.see_more_posts": "Zobrazit další příspěvky na {domain}", - "hints.threads.replies_may_be_missing": "Odpovědi z jiných serverů mohou chybět.", - "hints.threads.see_more": "Zobrazit další odpovědi na {domain}", "home.column_settings.show_quotes": "Zobrazit citace", "home.column_settings.show_reblogs": "Zobrazit boosty", "home.column_settings.show_replies": "Zobrazit odpovědi", @@ -847,6 +845,8 @@ "status.bookmark": "Přidat do záložek", "status.cancel_reblog_private": "Zrušit boostnutí", "status.cannot_reblog": "Tento příspěvek nemůže být boostnutý", + "status.context.load_new_replies": "K dispozici jsou nové odpovědi", + "status.context.loading": "Hledání dalších odpovědí", "status.continued_thread": "Pokračuje ve vlákně", "status.copy": "Zkopírovat odkaz na příspěvek", "status.delete": "Smazat", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index da40f1e010..dfd900bece 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Gweld mwy o ddilynwyr ar {domain}", "hints.profiles.see_more_follows": "Gweld mwy o 'yn dilyn' ar {domain}", "hints.profiles.see_more_posts": "Gweld mwy o bostiadau ar {domain}", - "hints.threads.replies_may_be_missing": "Mae'n bosibl y bydd ymatebion gan weinyddion eraill ar goll.", - "hints.threads.see_more": "Gweld mwy o ymatebion ar {domain}", "home.column_settings.show_quotes": "Dangos dyfyniadau", "home.column_settings.show_reblogs": "Dangos hybiau", "home.column_settings.show_replies": "Dangos ymatebion", diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json index 6a3542fee3..1cd633c747 100644 --- a/app/javascript/mastodon/locales/da.json +++ b/app/javascript/mastodon/locales/da.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Se flere følgere på {domain}", "hints.profiles.see_more_follows": "Se flere fulgte på {domain}", "hints.profiles.see_more_posts": "Se flere indlæg på {domain}", - "hints.threads.replies_may_be_missing": "Der kan mangle svar fra andre servere.", - "hints.threads.see_more": "Se flere svar på {domain}", "home.column_settings.show_quotes": "Vis citater", "home.column_settings.show_reblogs": "Vis fremhævelser", "home.column_settings.show_replies": "Vis svar", @@ -847,6 +845,8 @@ "status.bookmark": "Bogmærk", "status.cancel_reblog_private": "Fjern fremhævelse", "status.cannot_reblog": "Dette indlæg kan ikke fremhæves", + "status.context.load_new_replies": "Nye svar tilgængelige", + "status.context.loading": "Tjekker for flere svar", "status.continued_thread": "Fortsat tråd", "status.copy": "Kopiér link til indlæg", "status.delete": "Slet", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index f0beb10605..0bd451d64b 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -6,7 +6,7 @@ "about.domain_blocks.no_reason_available": "Grund unbekannt", "about.domain_blocks.preamble": "Mastodon erlaubt es dir grundsätzlich, alle Inhalte von allen Nutzer*innen auf allen Servern im Fediverse zu sehen und mit ihnen zu interagieren. Für diesen Server gibt es aber ein paar Ausnahmen.", "about.domain_blocks.silenced.explanation": "Standardmäßig werden von diesem Server keine Inhalte oder Profile angezeigt. Du kannst die Profile und Inhalte aber dennoch sehen, wenn du explizit nach diesen suchst oder diesen folgst.", - "about.domain_blocks.silenced.title": "Stummgeschaltet", + "about.domain_blocks.silenced.title": "Ausgeblendet", "about.domain_blocks.suspended.explanation": "Es werden keine Daten von diesem Server verarbeitet, gespeichert oder ausgetauscht, sodass eine Interaktion oder Kommunikation mit Nutzer*innen dieses Servers nicht möglich ist.", "about.domain_blocks.suspended.title": "Gesperrt", "about.language_label": "Sprache", @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Weitere Follower auf {domain} ansehen", "hints.profiles.see_more_follows": "Weitere gefolgte Profile auf {domain} ansehen", "hints.profiles.see_more_posts": "Weitere Beiträge auf {domain} ansehen", - "hints.threads.replies_may_be_missing": "Möglicherweise werden nicht alle Antworten von anderen Servern angezeigt.", - "hints.threads.see_more": "Weitere Antworten auf {domain} ansehen", "home.column_settings.show_quotes": "Zitierte Beiträge anzeigen", "home.column_settings.show_reblogs": "Geteilte Beiträge anzeigen", "home.column_settings.show_replies": "Antworten anzeigen", @@ -847,6 +845,8 @@ "status.bookmark": "Lesezeichen setzen", "status.cancel_reblog_private": "Beitrag nicht mehr teilen", "status.cannot_reblog": "Dieser Beitrag kann nicht geteilt werden", + "status.context.load_new_replies": "Neue Antworten verfügbar", + "status.context.loading": "Weitere Antworten werden abgerufen", "status.continued_thread": "Fortgeführter Thread", "status.copy": "Link zum Beitrag kopieren", "status.delete": "Beitrag löschen", diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json index 864632a635..8223d5d200 100644 --- a/app/javascript/mastodon/locales/el.json +++ b/app/javascript/mastodon/locales/el.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Δες περισσότερους ακόλουθους στο {domain}", "hints.profiles.see_more_follows": "Δες περισσότερα άτομα που ακολουθούνται στο {domain}", "hints.profiles.see_more_posts": "Δες περισσότερες αναρτήσεις στο {domain}", - "hints.threads.replies_may_be_missing": "Απαντήσεις από άλλους διακομιστές μπορεί να λείπουν.", - "hints.threads.see_more": "Δες περισσότερες απαντήσεις στο {domain}", "home.column_settings.show_quotes": "Εμφάνιση παραθεμάτων", "home.column_settings.show_reblogs": "Εμφάνιση προωθήσεων", "home.column_settings.show_replies": "Εμφάνιση απαντήσεων", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 1702076b3f..4f3a649f0b 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "See more followers on {domain}", "hints.profiles.see_more_follows": "See more follows on {domain}", "hints.profiles.see_more_posts": "See more posts on {domain}", - "hints.threads.replies_may_be_missing": "Replies from other servers may be missing.", - "hints.threads.see_more": "See more replies on {domain}", "home.column_settings.show_quotes": "Show quotes", "home.column_settings.show_reblogs": "Show boosts", "home.column_settings.show_replies": "Show replies", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index 3af96c22c4..92f529a8f4 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -1,7 +1,7 @@ { "about.blocks": "Reguligitaj serviloj", "about.contact": "Kontakto:", - "about.default_locale": "기본", + "about.default_locale": "Defaŭlta", "about.disclaimer": "Mastodon estas libera, malfermitkoda programo kaj varmarko de la firmao Mastodon gGmbH.", "about.domain_blocks.no_reason_available": "Kialo ne disponeblas", "about.domain_blocks.preamble": "Mastodon ĝenerale rajtigas vidi la enhavojn de uzantoj el aliaj serviloj en la fediverso, kaj komuniki kun ili. Jen la limigoj deciditaj de tiu ĉi servilo mem.", @@ -331,6 +331,7 @@ "featured_carousel.next": "Antaŭen", "featured_carousel.post": "Afiŝi", "featured_carousel.previous": "Malantaŭen", + "featured_carousel.slide": "{index} de {total}", "filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.", "filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!", "filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.", @@ -409,8 +410,7 @@ "hints.profiles.see_more_followers": "Vidi pli da sekvantoj sur {domain}", "hints.profiles.see_more_follows": "Vidi pli da sekvatoj sur {domain}", "hints.profiles.see_more_posts": "Vidi pli da afiŝoj sur {domain}", - "hints.threads.replies_may_be_missing": "Respondoj de aliaj serviloj eble mankas.", - "hints.threads.see_more": "Vidi pli da respondoj sur {domain}", + "home.column_settings.show_quotes": "Montri citaĵojn", "home.column_settings.show_reblogs": "Montri diskonigojn", "home.column_settings.show_replies": "Montri respondojn", "home.hide_announcements": "Kaŝi la anoncojn", @@ -533,8 +533,10 @@ "mute_modal.you_wont_see_mentions": "Vi ne vidos afiŝojn, kiuj mencias ilin.", "mute_modal.you_wont_see_posts": "Ili ankoraŭ povas vidi viajn afiŝojn, sed vi ne vidos iliajn.", "navigation_bar.about": "Pri", + "navigation_bar.account_settings": "Pasvorto kaj sekureco", "navigation_bar.administration": "Administrado", "navigation_bar.advanced_interface": "Malfermi altnivelan retpaĝan interfacon", + "navigation_bar.automated_deletion": "Aŭtomata forigo de afiŝoj", "navigation_bar.blocks": "Blokitaj uzantoj", "navigation_bar.bookmarks": "Legosignoj", "navigation_bar.direct": "Privataj mencioj", @@ -544,6 +546,7 @@ "navigation_bar.follow_requests": "Petoj de sekvado", "navigation_bar.followed_tags": "Sekvataj kradvortoj", "navigation_bar.follows_and_followers": "Sekvatoj kaj sekvantoj", + "navigation_bar.import_export": "Importo kaj eksporto", "navigation_bar.lists": "Listoj", "navigation_bar.logout": "Elsaluti", "navigation_bar.moderation": "Modereco", @@ -551,6 +554,7 @@ "navigation_bar.mutes": "Silentigitaj uzantoj", "navigation_bar.opened_in_classic_interface": "Afiŝoj, kontoj, kaj aliaj specifaj paĝoj kiuj estas malfermititaj defaulta en la klasika reta interfaco.", "navigation_bar.preferences": "Preferoj", + "navigation_bar.privacy_and_reach": "Privateco kaj atingo", "navigation_bar.search": "Serĉi", "not_signed_in_indicator.not_signed_in": "Necesas saluti por aliri tiun rimedon.", "notification.admin.report": "{name} raportis {target}", @@ -787,7 +791,7 @@ "search.quick_action.open_url": "Malfermi URL en Mastodono", "search.quick_action.status_search": "Afiŝoj kiuj konformas kun {x}", "search.search_or_paste": "Serĉu aŭ algluu URL-on", - "search_popout.full_text_search_disabled_message": "Ne havebla sur {domain}.", + "search_popout.full_text_search_disabled_message": "Ne disponebla sur {domain}.", "search_popout.full_text_search_logged_out_message": "Disponebla nur kiam ensalutinte.", "search_popout.language_code": "ISO-lingva kodo", "search_popout.options": "Serĉaj opcioj", @@ -820,6 +824,8 @@ "status.bookmark": "Aldoni al la legosignoj", "status.cancel_reblog_private": "Ne plu diskonigi", "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi", + "status.context.load_new_replies": "Disponeblaj novaj respondoj", + "status.context.loading": "Serĉante pliajn respondojn", "status.continued_thread": "Daŭrigis fadenon", "status.copy": "Kopii la ligilon al la afiŝo", "status.delete": "Forigi", @@ -845,6 +851,9 @@ "status.mute_conversation": "Silentigi konversacion", "status.open": "Pligrandigu ĉi tiun afiŝon", "status.pin": "Alpingli al la profilo", + "status.quote_error.not_found": "Ĉi tiu afiŝo ne povas esti montrata.", + "status.quote_error.rejected": "Ĉi tiu afiŝo ne povas esti montrata ĉar la originala aŭtoro ne permesas ĝian citadon.", + "status.quote_error.removed": "Ĉi tiu afiŝo estis forigita de ĝia aŭtoro.", "status.read_more": "Legi pli", "status.reblog": "Diskonigi", "status.reblog_private": "Diskonigi kun la sama videbleco", @@ -876,6 +885,7 @@ "tabs_bar.home": "Hejmo", "tabs_bar.menu": "Menuo", "tabs_bar.notifications": "Sciigoj", + "tabs_bar.publish": "Nova afiŝo", "tabs_bar.search": "Serĉi", "terms_of_service.effective_as_of": "Ĝi ekvalidas de {date}", "terms_of_service.title": "Kondiĉoj de uzado", diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json index 89f3873564..3eca9eab37 100644 --- a/app/javascript/mastodon/locales/es-AR.json +++ b/app/javascript/mastodon/locales/es-AR.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}", "hints.profiles.see_more_follows": "Ver más seguimientos en {domain}", "hints.profiles.see_more_posts": "Ver más mensajes en {domain}", - "hints.threads.replies_may_be_missing": "Es posible que falten respuestas de otros servidores.", - "hints.threads.see_more": "Ver más respuestas en {domain}", "home.column_settings.show_quotes": "Mostrar citas", "home.column_settings.show_reblogs": "Mostrar adhesiones", "home.column_settings.show_replies": "Mostrar respuestas", @@ -847,6 +845,8 @@ "status.bookmark": "Marcar", "status.cancel_reblog_private": "Quitar adhesión", "status.cannot_reblog": "No se puede adherir a este mensaje", + "status.context.load_new_replies": "Hay nuevas respuestas", + "status.context.loading": "Buscando más respuestas", "status.continued_thread": "Continuación de hilo", "status.copy": "Copiar enlace al mensaje", "status.delete": "Eliminar", diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json index d764b3dac9..67a91402f8 100644 --- a/app/javascript/mastodon/locales/es-MX.json +++ b/app/javascript/mastodon/locales/es-MX.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}", "hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}", "hints.profiles.see_more_posts": "Ver más publicaciones en {domain}", - "hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.", - "hints.threads.see_more": "Ver más respuestas en {domain}", "home.column_settings.show_quotes": "Mostrar citas", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", @@ -847,6 +845,8 @@ "status.bookmark": "Añadir marcador", "status.cancel_reblog_private": "Deshacer impulso", "status.cannot_reblog": "Esta publicación no puede ser impulsada", + "status.context.load_new_replies": "Nuevas respuestas disponibles", + "status.context.loading": "Comprobando si hay más respuestas", "status.continued_thread": "Hilo continuado", "status.copy": "Copiar enlace al estado", "status.delete": "Borrar", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 47d23e5b40..cbd79ea10f 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Ver más seguidores en {domain}", "hints.profiles.see_more_follows": "Ver más perfiles seguidos en {domain}", "hints.profiles.see_more_posts": "Ver más publicaciones en {domain}", - "hints.threads.replies_may_be_missing": "Puede que no se muestren algunas respuestas de otros servidores.", - "hints.threads.see_more": "Ver más respuestas en {domain}", "home.column_settings.show_quotes": "Mostrar citas", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respuestas", @@ -847,6 +845,8 @@ "status.bookmark": "Añadir marcador", "status.cancel_reblog_private": "Deshacer impulso", "status.cannot_reblog": "Esta publicación no se puede impulsar", + "status.context.load_new_replies": "Hay nuevas respuestas", + "status.context.loading": "Buscando más respuestas", "status.continued_thread": "Continuó el hilo", "status.copy": "Copiar enlace a la publicación", "status.delete": "Borrar", diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json index ffb33c7e7a..cf6c39cad4 100644 --- a/app/javascript/mastodon/locales/et.json +++ b/app/javascript/mastodon/locales/et.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Vaata rohkem jälgijaid kohas {domain}", "hints.profiles.see_more_follows": "Vaata rohkem jälgitavaid kohas {domain}", "hints.profiles.see_more_posts": "Vaata rohkem postitusi kohas {domain}", - "hints.threads.replies_may_be_missing": "Vastuseid teistest serveritest võib olla puudu.", - "hints.threads.see_more": "Vaata rohkem vastuseid kohas {domain}", "home.column_settings.show_quotes": "Näita tsiteeritut", "home.column_settings.show_reblogs": "Näita jagamisi", "home.column_settings.show_replies": "Näita vastuseid", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index b757fb0cda..65f3e87ac1 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -30,6 +30,7 @@ "account.edit_profile": "Editatu profila", "account.enable_notifications": "Jakinarazi @{name} erabiltzaileak argitaratzean", "account.endorse": "Nabarmendu profilean", + "account.familiar_followers_many": "Jarraitzaileak: {name1}, {name2} eta beste {othersCount, plural, one {ezagun bat} other {# ezagun}}", "account.familiar_followers_one": "{name1}-k jarraitzen du", "account.familiar_followers_two": "{name1}-k eta {name2}-k jarraitzen dute", "account.featured": "Gailenak", @@ -118,6 +119,8 @@ "annual_report.summary.most_used_hashtag.most_used_hashtag": "traola erabiliena", "annual_report.summary.most_used_hashtag.none": "Bat ere ez", "annual_report.summary.new_posts.new_posts": "bidalketa berriak", + "annual_report.summary.percentile.text": "Horrek jartzen zaitu top (e)an {domain} erabiltzaileen artean ", + "annual_report.summary.percentile.we_wont_tell_bernie": "Bernieri ez diogu ezer esango ;)..", "annual_report.summary.thanks": "Eskerrik asko Mastodonen parte izateagatik!", "attachments_list.unprocessed": "(prozesatu gabe)", "audio.hide": "Ezkutatu audioa", @@ -216,6 +219,7 @@ "confirmations.discard_draft.edit.message": "Jarraitzeak editatzen ari zaren mezuan egindako aldaketak baztertuko ditu.", "confirmations.discard_draft.edit.title": "Baztertu zure argitalpenari egindako aldaketak?", "confirmations.discard_draft.post.cancel": "Zirriborroa berrekin", + "confirmations.discard_draft.post.message": "Jarraituz gero, idazten ari zaren sarrera bertan behera geratuko da.", "confirmations.discard_draft.post.title": "Zure argitalpenaren zirriborroa baztertu nahi duzu?", "confirmations.discard_edit_media.confirm": "Baztertu", "confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?", @@ -413,8 +417,6 @@ "hints.profiles.see_more_followers": "Ikusi jarraitzaile gehiago {domain}-(e)n", "hints.profiles.see_more_follows": "Ikusi jarraitzaile gehiago {domain}-(e)n", "hints.profiles.see_more_posts": "Ikusi bidalketa gehiago {domain}-(e)n", - "hints.threads.replies_may_be_missing": "Baliteke beste zerbitzari batzuen erantzun batzuk ez erakustea.", - "hints.threads.see_more": "Ikusi erantzun gehiago {domain}-(e)n", "home.column_settings.show_quotes": "Erakutsi aipamenak", "home.column_settings.show_reblogs": "Erakutsi bultzadak", "home.column_settings.show_replies": "Erakutsi erantzunak", @@ -435,6 +437,7 @@ "ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.private_mentions_title": "Eskatu gabeko aipamen pribatuen jakinarazpenei ez ikusiarena egin?", "info_button.label": "Laguntza", + "info_button.what_is_alt_text": "

Zer da Alt testua?

Alt testuak irudiak deskribatzeko aukera ematen du, ikusmen-urritasunak, banda-zabalera txikiko konexioak edo testuinguru gehigarria nahi duten pertsonentzat.

Alt testu argi, zehatz eta objektiboen bidez, guztion irisgarritasuna eta ulermena hobetu ditzakezu.

  • Hartu elementu garrantzitsuenak
  • Laburbildu irudietako testua
  • Erabili esaldien egitura erregularra
  • Baztertu informazio erredundantea.
  • Enfokatu joeretan eta funtsezko elementuetan irudi konplexuetan (diagrametan edo mapetan, adibidez)
", "interaction_modal.action.favourite": "Jarraitzeko, zure kontutik atsegindu behar duzu.", "interaction_modal.action.follow": "Jarraitzeko zure kontutik jarraitu behar duzu.", "interaction_modal.action.reply": "Jarraitzeko zure kontutik erantzun behar duzu.", @@ -903,6 +906,7 @@ "video.hide": "Ezkutatu bideoa", "video.pause": "Pausatu", "video.play": "Jo", + "video.skip_forward": "Jauzi aurrerantz", "video.unmute": "Soinua ezarri", "video.volume_down": "Bolumena jaitsi", "video.volume_up": "Bolumena Igo" diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index fadbb24700..c35687e031 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "دیدن پی‌گیرندگان بیش‌تر روی {domain}", "hints.profiles.see_more_follows": "دیدن پی‌گرفته‌های بیش‌تر روی {domain}", "hints.profiles.see_more_posts": "دیدن فرسته‌های بیش‌تر روی {domain}", - "hints.threads.replies_may_be_missing": "شاید پاسخ‌ها از دیگر کارسازها نباشند.", - "hints.threads.see_more": "دیدن پاسخ‌های بیش‌تر روی {domain}", "home.column_settings.show_quotes": "نمایش نقل‌قول‌ها", "home.column_settings.show_reblogs": "نمایش تقویت‌ها", "home.column_settings.show_replies": "نمایش پاسخ‌ها", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 7de3fc07ea..36fcfd4e94 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Näytä lisää seuraajia palvelimella {domain}", "hints.profiles.see_more_follows": "Näytä lisää seurattavia palvelimella {domain}", "hints.profiles.see_more_posts": "Näytä lisää julkaisuja palvelimella {domain}", - "hints.threads.replies_may_be_missing": "Muiden palvelinten vastauksia saattaa puuttua.", - "hints.threads.see_more": "Näytä lisää vastauksia palvelimella {domain}", "home.column_settings.show_quotes": "Näytä lainaukset", "home.column_settings.show_reblogs": "Näytä tehostukset", "home.column_settings.show_replies": "Näytä vastaukset", @@ -847,6 +845,8 @@ "status.bookmark": "Lisää kirjanmerkki", "status.cancel_reblog_private": "Peru tehostus", "status.cannot_reblog": "Tätä julkaisua ei voi tehostaa", + "status.context.load_new_replies": "Uusia vastauksia saatavilla", + "status.context.loading": "Tarkistetaan lisävastauksia", "status.continued_thread": "Jatkoi ketjua", "status.copy": "Kopioi linkki julkaisuun", "status.delete": "Poista", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index afd75afc42..1bdccaeae8 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Sí fleiri fylgjarar á {domain}", "hints.profiles.see_more_follows": "Sí fleiri, ið viðkomandi fylgir, á {domain}", "hints.profiles.see_more_posts": "Sí fleiri postar á {domain}", - "hints.threads.replies_may_be_missing": "Svar frá øðrum ambætarum mangla møguliga.", - "hints.threads.see_more": "Sí fleiri svar á {domain}", "home.column_settings.show_quotes": "Vís siteringar", "home.column_settings.show_reblogs": "Vís lyft", "home.column_settings.show_replies": "Vís svar", @@ -847,6 +845,8 @@ "status.bookmark": "Goym", "status.cancel_reblog_private": "Strika stimbran", "status.cannot_reblog": "Tað ber ikki til at stimbra hendan postin", + "status.context.load_new_replies": "Nýggj svar tøk", + "status.context.loading": "Kanni um tað eru fleiri svar", "status.continued_thread": "Framhaldandi tráður", "status.copy": "Kopiera leinki til postin", "status.delete": "Strika", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 0fdd593859..840b0e508d 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -423,8 +423,6 @@ "hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}", "hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}", "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}", - "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.", - "hints.threads.see_more": "Afficher plus de réponses sur {domain}", "home.column_settings.show_quotes": "Afficher les citations", "home.column_settings.show_reblogs": "Afficher boosts", "home.column_settings.show_replies": "Afficher réponses", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 6f1bbae61c..c0c9580a46 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -423,8 +423,6 @@ "hints.profiles.see_more_followers": "Afficher plus d'abonné·e·s sur {domain}", "hints.profiles.see_more_follows": "Afficher plus d'abonné·e·s sur {domain}", "hints.profiles.see_more_posts": "Voir plus de messages sur {domain}", - "hints.threads.replies_may_be_missing": "Les réponses provenant des autres serveurs pourraient être manquantes.", - "hints.threads.see_more": "Afficher plus de réponses sur {domain}", "home.column_settings.show_quotes": "Afficher les citations", "home.column_settings.show_reblogs": "Afficher les partages", "home.column_settings.show_replies": "Afficher les réponses", diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json index 33c6d89d19..25f5c0cc01 100644 --- a/app/javascript/mastodon/locales/fy.json +++ b/app/javascript/mastodon/locales/fy.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Besjoch mear folgers op {domain}", "hints.profiles.see_more_follows": "Besjoch mear folge accounts op {domain}", "hints.profiles.see_more_posts": "Besjoch mear berjochten op {domain}", - "hints.threads.replies_may_be_missing": "Antwurden fan oare servers kinne ûntbrekke.", - "hints.threads.see_more": "Besjoch mear reaksjes op {domain}", "home.column_settings.show_quotes": "Sitaten toane", "home.column_settings.show_reblogs": "Boosts toane", "home.column_settings.show_replies": "Reaksjes toane", diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json index 92d06a05cf..bca4ed8d1e 100644 --- a/app/javascript/mastodon/locales/ga.json +++ b/app/javascript/mastodon/locales/ga.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Féach ar a thuilleadh leantóirí ar {domain}", "hints.profiles.see_more_follows": "Féach tuilleadh seo a leanas ar {domain}", "hints.profiles.see_more_posts": "Féach ar a thuilleadh postálacha ar {domain}", - "hints.threads.replies_may_be_missing": "Seans go bhfuil freagraí ó fhreastalaithe eile in easnamh.", - "hints.threads.see_more": "Féach ar a thuilleadh freagraí ar {domain}", "home.column_settings.show_quotes": "Taispeáin Sleachta", "home.column_settings.show_reblogs": "Taispeáin moltaí", "home.column_settings.show_replies": "Taispeán freagraí", diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json index 208e117037..c783182cd5 100644 --- a/app/javascript/mastodon/locales/gd.json +++ b/app/javascript/mastodon/locales/gd.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Faic barrachd luchd-leantainn air {domain}", "hints.profiles.see_more_follows": "Faic barrachd a tha 'gan leantainn air {domain}", "hints.profiles.see_more_posts": "Faic barrachd phostaichean air {domain}", - "hints.threads.replies_may_be_missing": "Dh’fhaoidte gu bheil freagairtean o fhrithealaichean eile a dhìth.", - "hints.threads.see_more": "Faic barrachd fhreagairtean air {domain}", "home.column_settings.show_quotes": "Seall luaidhean", "home.column_settings.show_reblogs": "Seall na brosnachaidhean", "home.column_settings.show_replies": "Seall na freagairtean", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 7cb227215e..6a8570c1d0 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Mira máis seguidoras en {domain}", "hints.profiles.see_more_follows": "Mira máis seguimentos en {domain}", "hints.profiles.see_more_posts": "Mira máis publicacións en {domain}", - "hints.threads.replies_may_be_missing": "Poderían faltar respostas desde outros servidores.", - "hints.threads.see_more": "Mira máis respostas en {domain}", "home.column_settings.show_quotes": "Mostrar citas", "home.column_settings.show_reblogs": "Amosar compartidos", "home.column_settings.show_replies": "Amosar respostas", @@ -847,6 +845,8 @@ "status.bookmark": "Marcar", "status.cancel_reblog_private": "Desfacer compartido", "status.cannot_reblog": "Esta publicación non pode ser promovida", + "status.context.load_new_replies": "Non hai respostas dispoñibles", + "status.context.loading": "Mirando se hai máis respostas", "status.continued_thread": "Continua co fío", "status.copy": "Copiar ligazón á publicación", "status.delete": "Eliminar", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index cb5ffb52db..715ec36f54 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "צפיה בעוד עוקבים משרת {domain}", "hints.profiles.see_more_follows": "צפיה בעוד נעקבים בשרת {domain}", "hints.profiles.see_more_posts": "צפיה בעוד פרסומים בשרת {domain}", - "hints.threads.replies_may_be_missing": "תגובות משרתים אחרים עלולות להיות חסרות.", - "hints.threads.see_more": "צפיה בעוד תגובות משרת {domain}", "home.column_settings.show_quotes": "הצגת ציטוטים", "home.column_settings.show_reblogs": "הצגת הדהודים", "home.column_settings.show_replies": "הצגת תגובות", @@ -847,6 +845,8 @@ "status.bookmark": "סימניה", "status.cancel_reblog_private": "הסרת הדהוד", "status.cannot_reblog": "לא ניתן להדהד חצרוץ זה", + "status.context.load_new_replies": "הגיעו תגובות חדשות", + "status.context.loading": "מחפש תגובות חדשות", "status.continued_thread": "שרשור מתמשך", "status.copy": "העתק/י קישור להודעה זו", "status.delete": "מחיקה", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index abd9b8ad11..06a8bf8846 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "További követők megtekintése itt: {domain}", "hints.profiles.see_more_follows": "További követések megtekintése itt: {domain}", "hints.profiles.see_more_posts": "További bejegyzések megtekintése itt: {domain}", - "hints.threads.replies_may_be_missing": "A más kiszolgálókról érkező válaszok lehet, hogy hiányoznak.", - "hints.threads.see_more": "További válaszok megtekintése itt: {domain}", "home.column_settings.show_quotes": "Idézetek megjelenítése", "home.column_settings.show_reblogs": "Megtolások megjelenítése", "home.column_settings.show_replies": "Válaszok megjelenítése", @@ -847,6 +845,8 @@ "status.bookmark": "Könyvjelzőzés", "status.cancel_reblog_private": "Megtolás visszavonása", "status.cannot_reblog": "Ezt a bejegyzést nem lehet megtolni", + "status.context.load_new_replies": "Új válaszok érhetőek el", + "status.context.loading": "További válaszok keresése", "status.continued_thread": "Folytatott szál", "status.copy": "Link másolása bejegyzésbe", "status.delete": "Törlés", diff --git a/app/javascript/mastodon/locales/ia.json b/app/javascript/mastodon/locales/ia.json index f9deb2f859..2edb77b7f3 100644 --- a/app/javascript/mastodon/locales/ia.json +++ b/app/javascript/mastodon/locales/ia.json @@ -404,8 +404,6 @@ "hints.profiles.see_more_followers": "Vider plus de sequitores sur {domain}", "hints.profiles.see_more_follows": "Vider plus de sequites sur {domain}", "hints.profiles.see_more_posts": "Vider plus de messages sur {domain}", - "hints.threads.replies_may_be_missing": "Responsas de altere servitores pote mancar.", - "hints.threads.see_more": "Vider plus de responsas sur {domain}", "home.column_settings.show_reblogs": "Monstrar impulsos", "home.column_settings.show_replies": "Monstrar responsas", "home.hide_announcements": "Celar annuncios", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index 69e549ea88..deb1cab89a 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -383,8 +383,6 @@ "hints.profiles.see_more_followers": "Vidar plu multa sequanti sur {domain}", "hints.profiles.see_more_follows": "Vidar plu multa sequati sur {domain}", "hints.profiles.see_more_posts": "Vidar plu multa posti sur {domain}", - "hints.threads.replies_may_be_missing": "Respondi de altra servili forsan ne esas hike.", - "hints.threads.see_more": "Vidar plu multa demandi sur {domain}", "home.column_settings.show_reblogs": "Montrar repeti", "home.column_settings.show_replies": "Montrar respondi", "home.hide_announcements": "Celez anunci", diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json index 52b3f5d97d..54aec7cbee 100644 --- a/app/javascript/mastodon/locales/is.json +++ b/app/javascript/mastodon/locales/is.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Sjá fleiri fylgjendur á {domain}", "hints.profiles.see_more_follows": "Sjá fleiri sem þú fylgist með á {domain}", "hints.profiles.see_more_posts": "Sjá fleiri færslur á {domain}", - "hints.threads.replies_may_be_missing": "Svör af öðrum netþjónum gæti vantað.", - "hints.threads.see_more": "Sjá fleiri svör á {domain}", "home.column_settings.show_quotes": "Birta tilvitnanir", "home.column_settings.show_reblogs": "Sýna endurbirtingar", "home.column_settings.show_replies": "Birta svör", @@ -847,6 +845,8 @@ "status.bookmark": "Bókamerki", "status.cancel_reblog_private": "Taka úr endurbirtingu", "status.cannot_reblog": "Þessa færslu er ekki hægt að endurbirta", + "status.context.load_new_replies": "Ný svör hafa borist", + "status.context.loading": "Athuga með fleiri svör", "status.continued_thread": "Hélt samtali áfram", "status.copy": "Afrita tengil í færslu", "status.delete": "Eyða", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index f39862e7cc..5134b39e67 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Vedi altri seguaci su {domain}", "hints.profiles.see_more_follows": "Vedi altri profili seguiti su {domain}", "hints.profiles.see_more_posts": "Vedi altri post su {domain}", - "hints.threads.replies_may_be_missing": "Le risposte da altri server potrebbero essere mancanti.", - "hints.threads.see_more": "Vedi altre risposte su {domain}", "home.column_settings.show_quotes": "Mostra le citazioni", "home.column_settings.show_reblogs": "Mostra reblog", "home.column_settings.show_replies": "Mostra risposte", @@ -847,6 +845,8 @@ "status.bookmark": "Aggiungi segnalibro", "status.cancel_reblog_private": "Annulla reblog", "status.cannot_reblog": "Questo post non può essere condiviso", + "status.context.load_new_replies": "Nuove risposte disponibili", + "status.context.loading": "Controllo per altre risposte", "status.continued_thread": "Discussione continua", "status.copy": "Copia link al post", "status.delete": "Elimina", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index ff12bf1dd1..59ed074012 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -423,8 +423,6 @@ "hints.profiles.see_more_followers": "{domain} で正確な情報を見る", "hints.profiles.see_more_follows": "{domain} で正確な情報を見る", "hints.profiles.see_more_posts": "{domain} でその他の投稿を見る", - "hints.threads.replies_may_be_missing": "リモートの返信は表示されない場合があります。", - "hints.threads.see_more": "{domain} でその他の返信を見る", "home.column_settings.show_quotes": "引用を表示", "home.column_settings.show_reblogs": "ブースト表示", "home.column_settings.show_replies": "返信表示", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 0c2faa120e..0bc4665a25 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -297,8 +297,6 @@ "hashtag.follow": "Ḍfeṛ ahacṭag", "hashtag.mute": "Sgugem #{hashtag}", "hashtags.and_other": "…d {count, plural, one {}other {# nniḍen}}", - "hints.threads.replies_may_be_missing": "Tiririyin d-yusan deg iqeddacen nniḍen, yezmer ur d-ddant ara.", - "hints.threads.see_more": "Wali ugar n tririt deg {domain}", "home.column_settings.show_reblogs": "Ssken-d beṭṭu", "home.column_settings.show_replies": "Ssken-d tiririyin", "home.hide_announcements": "Ffer ulɣuyen", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 6c2cc7ea14..cfb3ba8c61 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "{domain}에서 더 많은 팔로워 보기", "hints.profiles.see_more_follows": "{domain}에서 더 많은 팔로우 보기", "hints.profiles.see_more_posts": "{domain}에서 더 많은 게시물 보기", - "hints.threads.replies_may_be_missing": "다른 서버의 답글은 일부 누락되었을 수 있습니다.", - "hints.threads.see_more": "{domain}에서 더 많은 답글 보기", "home.column_settings.show_quotes": "인용 보기", "home.column_settings.show_reblogs": "부스트 표시", "home.column_settings.show_replies": "답글 표시", diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json index 63110fda87..f628721f47 100644 --- a/app/javascript/mastodon/locales/ku.json +++ b/app/javascript/mastodon/locales/ku.json @@ -272,7 +272,6 @@ "hashtag.column_settings.tag_toggle": "Ji bo vê stûnê hin pêvekan tevlî bike", "hashtag.follow": "Hashtagê bişopîne", "hashtag.unfollow": "Hashtagê neşopîne", - "hints.threads.replies_may_be_missing": "Beriv ji rajekarên din dibe ku wendayî bin.", "home.column_settings.show_reblogs": "Bilindkirinan nîşan bike", "home.column_settings.show_replies": "Bersivan nîşan bide", "home.hide_announcements": "Reklaman veşêre", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index 83ffe1834b..7c6ce24a8f 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -368,8 +368,6 @@ "hints.profiles.see_more_followers": "Ve mas suivantes en {domain}", "hints.profiles.see_more_follows": "Ve mas segidos en {domain}", "hints.profiles.see_more_posts": "Ve mas puvlikasyones en {domain}", - "hints.threads.replies_may_be_missing": "Puede mankar repuestas de otros sirvidores.", - "hints.threads.see_more": "Ve mas repuestas en {domain}", "home.column_settings.show_reblogs": "Amostra repartajasyones", "home.column_settings.show_replies": "Amostra repuestas", "home.hide_announcements": "Eskonde pregones", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 944ab8d964..ed5fa83171 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -396,8 +396,6 @@ "hints.profiles.see_more_followers": "Žiūrėti daugiau sekėjų serveryje {domain}", "hints.profiles.see_more_follows": "Žiūrėti daugiau sekimų serveryje {domain}", "hints.profiles.see_more_posts": "Žiūrėti daugiau įrašų serveryje {domain}", - "hints.threads.replies_may_be_missing": "Atsakymai iš kitų serverių gali būti nepateikti.", - "hints.threads.see_more": "Žiūrėti daugiau atsakymų serveryje {domain}", "home.column_settings.show_reblogs": "Rodyti pakėlimus", "home.column_settings.show_replies": "Rodyti atsakymus", "home.hide_announcements": "Slėpti skelbimus", diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json index 104528c0e1..ee3c143412 100644 --- a/app/javascript/mastodon/locales/lv.json +++ b/app/javascript/mastodon/locales/lv.json @@ -386,8 +386,6 @@ "hints.profiles.see_more_followers": "Skatīt vairāk sekotāju {domain}", "hints.profiles.see_more_follows": "Skatīt vairāk sekojumu {domain}", "hints.profiles.see_more_posts": "Skatīt vairāk ierakstu {domain}", - "hints.threads.replies_may_be_missing": "Var trūkt atbilžu no citiem serveriem.", - "hints.threads.see_more": "Skatīt vairāk atbilžu {domain}", "home.column_settings.show_quotes": "Rādīt citātus", "home.column_settings.show_reblogs": "Rādīt pastiprinātos ierakstus", "home.column_settings.show_replies": "Rādīt atbildes", diff --git a/app/javascript/mastodon/locales/nan.json b/app/javascript/mastodon/locales/nan.json index 48e1b75c2b..e7e8d2c0cd 100644 --- a/app/javascript/mastodon/locales/nan.json +++ b/app/javascript/mastodon/locales/nan.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "佇 {domain} 看koh khah tsē跟tuè lí ê", "hints.profiles.see_more_follows": "佇 {domain} 看koh khah tsē lí跟tuè ê", "hints.profiles.see_more_posts": "佇 {domain} 看koh khah tsē ê PO文", - "hints.threads.replies_may_be_missing": "Tuì其他ê服侍器來ê回應可能有phah m̄見。", - "hints.threads.see_more": "佇 {domain} 看koh khah tsē ê回應", "home.column_settings.show_quotes": "顯示引用", "home.column_settings.show_reblogs": "顯示轉PO", "home.column_settings.show_replies": "顯示回應", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 90593ac205..04ceb2591b 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Bekijk meer volgers op {domain}", "hints.profiles.see_more_follows": "Bekijk meer gevolgde accounts op {domain}", "hints.profiles.see_more_posts": "Bekijk meer berichten op {domain}", - "hints.threads.replies_may_be_missing": "Antwoorden van andere servers kunnen ontbreken.", - "hints.threads.see_more": "Bekijk meer reacties op {domain}", "home.column_settings.show_quotes": "Citaten tonen", "home.column_settings.show_reblogs": "Boosts tonen", "home.column_settings.show_replies": "Reacties tonen", @@ -847,6 +845,8 @@ "status.bookmark": "Bladwijzer toevoegen", "status.cancel_reblog_private": "Niet langer boosten", "status.cannot_reblog": "Dit bericht kan niet geboost worden", + "status.context.load_new_replies": "Nieuwe reacties beschikbaar", + "status.context.loading": "Op nieuwe reacties aan het controleren", "status.continued_thread": "Vervolg van gesprek", "status.copy": "Link naar bericht kopiëren", "status.delete": "Verwijderen", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index b739208ab3..b5b97007c8 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Sjå fleire fylgjarar på {domain}", "hints.profiles.see_more_follows": "Sjå fleire fylgjer på {domain}", "hints.profiles.see_more_posts": "Sjå fleire innlegg på {domain}", - "hints.threads.replies_may_be_missing": "Svar frå andre tenarar manglar kanskje.", - "hints.threads.see_more": "Sjå fleire svar på {domain}", "home.column_settings.show_quotes": "Vis sitat", "home.column_settings.show_reblogs": "Vis framhevingar", "home.column_settings.show_replies": "Vis svar", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index ca7c43e1e9..8ef9b6a481 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -417,8 +417,6 @@ "hints.profiles.see_more_followers": "Se flere følgere på {domain}", "hints.profiles.see_more_follows": "Se flere som følger på {domain}", "hints.profiles.see_more_posts": "Se flere innlegg på {domain}", - "hints.threads.replies_may_be_missing": "Svar fra andre servere mangler kanskje.", - "hints.threads.see_more": "Se flere svar på {domain}", "home.column_settings.show_quotes": "Vis sitater", "home.column_settings.show_reblogs": "Vis fremhevinger", "home.column_settings.show_replies": "Vis svar", diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json index 5236d246c0..50756eebbf 100644 --- a/app/javascript/mastodon/locales/pa.json +++ b/app/javascript/mastodon/locales/pa.json @@ -276,7 +276,6 @@ "hints.profiles.see_more_followers": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋਅਰ ਵੇਖੋ", "hints.profiles.see_more_follows": "{domain} ਉੱਤੇ ਹੋਰ ਫ਼ਾਲੋ ਨੂੰ ਵੇਖੋ", "hints.profiles.see_more_posts": "{domain} ਉੱਤੇ ਹੋਰ ਪੋਸਟਾਂ ਨੂੰ ਵੇਖੋ", - "hints.threads.see_more": "{domain} ਤੋਂ ਹੋਰ ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ", "home.column_settings.show_reblogs": "ਬੂਸਟਾਂ ਨੂੰ ਵੇਖੋ", "home.column_settings.show_replies": "ਜਵਾਬਾਂ ਨੂੰ ਵੇਖੋ", "home.hide_announcements": "ਐਲਾਨਾਂ ਨੂੰ ਓਹਲੇ ਕਰੋ", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index 1967a2333c..bbe5789d2a 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -383,8 +383,6 @@ "hints.profiles.see_more_followers": "Zobacz więcej obserwujących na {domain}", "hints.profiles.see_more_follows": "Zobacz więcej obserwowanych na {domain}", "hints.profiles.see_more_posts": "Zobacz więcej wpisów na {domain}", - "hints.threads.replies_may_be_missing": "Komentarze z innych serwerów mogą być niewidoczne.", - "hints.threads.see_more": "Zobacz więcej komentarzy na {domain}", "home.column_settings.show_reblogs": "Pokazuj podbicia", "home.column_settings.show_replies": "Pokazuj odpowiedzi", "home.hide_announcements": "Ukryj ogłoszenia", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index b437786b9b..f576270193 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -414,8 +414,6 @@ "hints.profiles.see_more_followers": "Ver mais seguidores no {domain}", "hints.profiles.see_more_follows": "Ver mais seguidores no {domain}", "hints.profiles.see_more_posts": "Ver mais publicações em {domain}", - "hints.threads.replies_may_be_missing": "Respostas de outros servidores podem estar faltando.", - "hints.threads.see_more": "Ver mais respostas no {domain}", "home.column_settings.show_reblogs": "Mostrar boosts", "home.column_settings.show_replies": "Mostrar respostas", "home.hide_announcements": "Ocultar comunicados", diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json index 424e48ef2e..15ccc7cb32 100644 --- a/app/javascript/mastodon/locales/pt-PT.json +++ b/app/javascript/mastodon/locales/pt-PT.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Ver mais seguidores em {domain}", "hints.profiles.see_more_follows": "Ver mais perfis seguidos em {domain}", "hints.profiles.see_more_posts": "Ver mais publicações em {domain}", - "hints.threads.replies_may_be_missing": "É possível que não estejam a ser mostradas todas as respostas de outros servidores.", - "hints.threads.see_more": "Ver mais respostas em {domain}", "home.column_settings.show_quotes": "Mostrar citações", "home.column_settings.show_reblogs": "Mostrar impulsos", "home.column_settings.show_replies": "Mostrar respostas", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index e2022b52d9..40d8341713 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -45,7 +45,7 @@ "account.followers_counter": "{count, plural, one {{counter} подписчик} few {{counter} подписчика} other {{counter} подписчиков}}", "account.followers_you_know_counter": "{count, plural, one {{counter} ваш знакомый} other {{counter} ваших знакомых}}", "account.following": "Подписки", - "account.following_counter": "{count, plural, one {# подписка} many {# подписок} other {# подписки}}", + "account.following_counter": "{count, plural, one {{counter} подписка} few {{counter} подписки} many {{counter} подписок} other {{counter} подписок}}", "account.follows.empty": "Этот пользователь пока ни на кого не подписался.", "account.follows_you": "Подписан(а) на вас", "account.go_to_profile": "Перейти к профилю", @@ -273,7 +273,7 @@ "domain_block_modal.they_cant_follow": "Пользователи с этого сервера не смогут подписаться на вас.", "domain_block_modal.they_wont_know": "Пользователи с этого сервера не будут знать, что вы их блокируете.", "domain_block_modal.title": "Заблокировать домен?", - "domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчика} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.", + "domain_block_modal.you_will_lose_num_followers": "Вы потеряете {followersCount, plural, one {{followersCountDisplay} подписчика} few {{followersCountDisplay} подписчиков} other {{followersCountDisplay} подписчиков}} и {followingCount, plural, one {{followingCountDisplay} подписку} few {{followingCountDisplay} подписки} other {{followingCountDisplay} подписок}}.", "domain_block_modal.you_will_lose_relationships": "Вы потеряете все подписки и всех подписчиков с этого сервера.", "domain_block_modal.you_wont_see_posts": "Вы не будете видеть посты и уведомления от пользователей с этого сервера.", "domain_pill.activitypub_lets_connect": "Благодаря ему вы можете связываться и взаимодействовать не только с пользователями Mastodon, но и с пользователями других платформ.", @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Перейдите на {domain}, чтобы увидеть всех подписчиков", "hints.profiles.see_more_follows": "Перейдите на {domain}, чтобы увидеть все подписки", "hints.profiles.see_more_posts": "Перейдите на {domain}, чтобы увидеть все посты", - "hints.threads.replies_may_be_missing": "Некоторые ответы с других серверов могут здесь отсутствовать.", - "hints.threads.see_more": "Перейдите на {domain}, чтобы увидеть все ответы", "home.column_settings.show_quotes": "Показывать цитирования", "home.column_settings.show_reblogs": "Показывать продвижения", "home.column_settings.show_replies": "Показывать ответы", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index d893bc2a0d..fb856ba8a1 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -313,8 +313,6 @@ "hashtags.and_other": "… e {count, plural, one {un'àteru} other {àteros #}}", "hints.profiles.posts_may_be_missing": "Podet èssere chi ammanchent tzertas publicatziones de custu profilu.", "hints.profiles.see_more_posts": "Bide prus publicatziones a {domain}", - "hints.threads.replies_may_be_missing": "Podet èssere chi ammanchent rispostas dae àteros serbidores.", - "hints.threads.see_more": "Bide prus rispostas a {domain}", "home.column_settings.show_reblogs": "Ammustra is cumpartziduras", "home.column_settings.show_replies": "Ammustra rispostas", "home.hide_announcements": "Cua annùntzios", diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json index 9f9bd1590f..438ca0b735 100644 --- a/app/javascript/mastodon/locales/si.json +++ b/app/javascript/mastodon/locales/si.json @@ -406,8 +406,6 @@ "hints.profiles.see_more_followers": "{domain}හි තවත් අනුගාමිකයින් බලන්න", "hints.profiles.see_more_follows": "{domain}හි තවත් පහත ඒවා බලන්න.", "hints.profiles.see_more_posts": "{domain}හි තවත් සටහන් බලන්න", - "hints.threads.replies_may_be_missing": "අනෙකුත් සේවාදායකයන්ගෙන් ලැබෙන පිළිතුරු අස්ථානගත වී තිබිය හැක.", - "hints.threads.see_more": "{domain}හි තවත් පිළිතුරු බලන්න.", "home.column_settings.show_reblogs": "බූස්ට් පෙන්වන්න", "home.column_settings.show_replies": "පිළිතුරු පෙන්වන්න", "home.hide_announcements": "නිවේදන සඟවන්න", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index 63fd556f79..091ddf8ca2 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -365,8 +365,6 @@ "hints.profiles.see_more_followers": "Pozri viac nasledovateľov na {domain}", "hints.profiles.see_more_follows": "Pozri viac nasledovateľov na {domain}", "hints.profiles.see_more_posts": "Pozri viac príspevkov na {domain}", - "hints.threads.replies_may_be_missing": "Odpovede z ostatných serverov môžu chýbať.", - "hints.threads.see_more": "Pozri viac odpovedí na {domain}", "home.column_settings.show_reblogs": "Zobraziť zdieľania", "home.column_settings.show_replies": "Zobraziť odpovede", "home.hide_announcements": "Skryť oznámenia", diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json index 7213af3666..c256318fee 100644 --- a/app/javascript/mastodon/locales/sl.json +++ b/app/javascript/mastodon/locales/sl.json @@ -383,8 +383,6 @@ "hints.profiles.see_more_followers": "Pokaži več sledilcev na {domain}", "hints.profiles.see_more_follows": "Pokaži več sledenih ljudi na zbirališču {domain}", "hints.profiles.see_more_posts": "Pokaži več objav na {domain}", - "hints.threads.replies_may_be_missing": "Odgovori z drugih strežnikov morda manjkajo.", - "hints.threads.see_more": "Pokaži več odgovorov na {domain}", "home.column_settings.show_reblogs": "Pokaži izpostavitve", "home.column_settings.show_replies": "Pokaži odgovore", "home.hide_announcements": "Skrij obvestila", diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json index b5a7cb0e88..75c0068160 100644 --- a/app/javascript/mastodon/locales/sq.json +++ b/app/javascript/mastodon/locales/sq.json @@ -419,8 +419,6 @@ "hints.profiles.see_more_followers": "Shihni më tepër ndjekës në {domain}", "hints.profiles.see_more_follows": "Shihni më tepër ndjekje në {domain}", "hints.profiles.see_more_posts": "Shihni më tepër postime në {domain}", - "hints.threads.replies_may_be_missing": "Mund të mungojnë përgjigje nga shërbyes të tjerë.", - "hints.threads.see_more": "Shihni më tepër përgjigje në {domain}", "home.column_settings.show_quotes": "Shfaq thonjëza", "home.column_settings.show_reblogs": "Shfaq përforcime", "home.column_settings.show_replies": "Shfaq përgjigje", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index 0808963e5f..48f15b28b8 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Se fler följare på {domain}", "hints.profiles.see_more_follows": "Se fler följare på {domain}", "hints.profiles.see_more_posts": "Se fler inlägg på {domain}", - "hints.threads.replies_may_be_missing": "Det kan saknas svar från andra servrar.", - "hints.threads.see_more": "Se fler svar på {domain}", "home.column_settings.show_quotes": "Visa citat", "home.column_settings.show_reblogs": "Visa boostar", "home.column_settings.show_replies": "Visa svar", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 603c1ab61f..03faba8a66 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -397,8 +397,6 @@ "hints.profiles.see_more_followers": "ดูผู้ติดตามเพิ่มเติมใน {domain}", "hints.profiles.see_more_follows": "ดูการติดตามเพิ่มเติมใน {domain}", "hints.profiles.see_more_posts": "ดูโพสต์เพิ่มเติมใน {domain}", - "hints.threads.replies_may_be_missing": "การตอบกลับจากเซิร์ฟเวอร์อื่น ๆ อาจขาดหายไป", - "hints.threads.see_more": "ดูการตอบกลับเพิ่มเติมใน {domain}", "home.column_settings.show_reblogs": "แสดงการดัน", "home.column_settings.show_replies": "แสดงการตอบกลับ", "home.hide_announcements": "ซ่อนประกาศ", diff --git a/app/javascript/mastodon/locales/tok.json b/app/javascript/mastodon/locales/tok.json index c48ffa5fe2..cabee09314 100644 --- a/app/javascript/mastodon/locales/tok.json +++ b/app/javascript/mastodon/locales/tok.json @@ -371,8 +371,6 @@ "hints.profiles.see_more_followers": "o lukin e jan ni lon ma {domain}: ona li kute e jan ni.", "hints.profiles.see_more_follows": "o lukin e jan ni lon ma {domain}: jan ni li kute e ona.", "hints.profiles.see_more_posts": "o lukin e toki ante lon ma {domain}", - "hints.threads.replies_may_be_missing": "toki pi ma ante li weka lon ken.", - "hints.threads.see_more": "o lukin e toki ante lon ma {domain}", "home.column_settings.show_reblogs": "o lukin e pana toki", "home.hide_announcements": "o lukin ala e toki lawa suli", "home.pending_critical_update.body": "o sin e ilo Mastodon lon tenpo lili a!", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index a45acff11f..c50ac3cbaa 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "{domain} adresinde daha fazla takipçi gör", "hints.profiles.see_more_follows": "{domain} adresinde daha fazla takip edilen gör", "hints.profiles.see_more_posts": "{domain} adresinde daha fazla gönderi gör", - "hints.threads.replies_may_be_missing": "Diğer sunuculardan yanıtlar eksik olabilir.", - "hints.threads.see_more": "{domain} adresinde daha fazla yanıt gör", "home.column_settings.show_quotes": "Alıntıları göster", "home.column_settings.show_reblogs": "Yeniden paylaşımları göster", "home.column_settings.show_replies": "Yanıtları göster", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 56ff3444f4..e956bd05e7 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -395,8 +395,6 @@ "hints.profiles.see_more_followers": "Переглянути більше підписників на {domain}", "hints.profiles.see_more_follows": "Переглянути більше підписок на {domain}", "hints.profiles.see_more_posts": "Переглянути більше дописів на {domain}", - "hints.threads.replies_may_be_missing": "Відповіді з інших серверів можуть бути не показані.", - "hints.threads.see_more": "Переглянути більше відповідей на {domain}", "home.column_settings.show_reblogs": "Показувати поширення", "home.column_settings.show_replies": "Показувати відповіді", "home.hide_announcements": "Приховати оголошення", diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json index ec6e7188f2..b5c8c3ec23 100644 --- a/app/javascript/mastodon/locales/vi.json +++ b/app/javascript/mastodon/locales/vi.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "Xem thêm người theo dõi ở {domain}", "hints.profiles.see_more_follows": "Xem thêm người mà người này theo dõi ở {domain}", "hints.profiles.see_more_posts": "Xem thêm tút ở {domain}", - "hints.threads.replies_may_be_missing": "Những trả lời từ máy chủ khác có thể không đầy đủ.", - "hints.threads.see_more": "Xem thêm ở {domain}", "home.column_settings.show_quotes": "Hiện những trích dẫn", "home.column_settings.show_reblogs": "Hiện những lượt đăng lại", "home.column_settings.show_replies": "Hiện những tút dạng trả lời", @@ -847,6 +845,8 @@ "status.bookmark": "Lưu", "status.cancel_reblog_private": "Bỏ đăng lại", "status.cannot_reblog": "Không thể đăng lại tút này", + "status.context.load_new_replies": "Có những trả lời mới", + "status.context.loading": "Kiểm tra nhiều trả lời hơn", "status.continued_thread": "Tiếp tục chủ đề", "status.copy": "Sao chép URL", "status.delete": "Xóa", diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json index 8928f253b1..c6e0aa7f27 100644 --- a/app/javascript/mastodon/locales/zh-CN.json +++ b/app/javascript/mastodon/locales/zh-CN.json @@ -412,8 +412,6 @@ "hints.profiles.see_more_followers": "在 {domain} 查看更多关注者", "hints.profiles.see_more_follows": "在 {domain} 查看更多关注", "hints.profiles.see_more_posts": "在 {domain} 查看更多嘟文", - "hints.threads.replies_may_be_missing": "来自其它实例的回复可能没有完全显示。", - "hints.threads.see_more": "在 {domain} 查看更多回复", "home.column_settings.show_quotes": "显示引用", "home.column_settings.show_reblogs": "显示转嘟", "home.column_settings.show_replies": "显示回复", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 8fe9f71a69..40eed25a49 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -424,8 +424,6 @@ "hints.profiles.see_more_followers": "於 {domain} 檢視更多跟隨者", "hints.profiles.see_more_follows": "於 {domain} 檢視更多正在跟隨", "hints.profiles.see_more_posts": "於 {domain} 檢視更多嘟文", - "hints.threads.replies_may_be_missing": "來自其他站點之回覆或有缺失。", - "hints.threads.see_more": "於 {domain} 檢視更多回覆", "home.column_settings.show_quotes": "顯示引用嘟文", "home.column_settings.show_reblogs": "顯示轉嘟", "home.column_settings.show_replies": "顯示回覆", @@ -847,6 +845,8 @@ "status.bookmark": "書籤", "status.cancel_reblog_private": "取消轉嘟", "status.cannot_reblog": "這則嘟文無法被轉嘟", + "status.context.load_new_replies": "有新回嘟", + "status.context.loading": "正在檢查更多回嘟", "status.continued_thread": "接續討論串", "status.copy": "複製嘟文連結", "status.delete": "刪除", diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 971846789b..f961e0fba4 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -1477,56 +1477,56 @@ ru: other: Проверьте введённые вами данные! Далее по странице вы можете увидеть %{count} сообщений об ошибке imports: errors: - empty: Пустой CSV-файл - incompatible_type: Несовместимость с выбранным типом импорта - invalid_csv_file: 'Неверный файл CSV. Ошибка: %{error}' + empty: Файл CSV пуст + incompatible_type: Несовместим с выбранным типом данных для импорта + invalid_csv_file: 'Ошибка при чтении файла CSV: %{error}' over_rows_processing_limit: содержит более %{count} строк too_large: Файл слишком большой failures: Ошибки - imported: Импортирован - mismatched_types_warning: Возможно, вы выбрали неверный тип для этого импорта, пожалуйста, перепроверьте. + imported: Импортировано + mismatched_types_warning: По-видимому, вы выбрали неверный тип данных для импорта. Проверьте всё внимательно! modes: merge: Объединить - merge_long: Сохранить имеющиеся данные и добавить новые. - overwrite: Перезаписать - overwrite_long: Перезаписать имеющиеся данные новыми. + merge_long: Добавить новые данные к уже имеющимся + overwrite: Заменить + overwrite_long: Заменить имеющиеся данные новыми overwrite_preambles: blocking_html: - few: Вы собираетесь заменить свой список блокировки, в котором сейчас %{count} аккаунта, из файла %{filename}. - many: Вы собираетесь заменить свой список блокировки, в котором сейчас %{count} аккаунов, из файла %{filename}. - one: Вы собираетесь заменить свой список блокировки, в котором сейчас %{count} аккаунт, из файла %{filename}. - other: Вы собираетесь заменить свой список блокировки, в котором сейчас %{count} аккаунтов, из файла %{filename}. + few: Вы собираетесь заменить свой список заблокированных пользователей данными из файла %{filename}, после чего вы будете блокировать %{count} пользователей. + many: Вы собираетесь заменить свой список заблокированных пользователей данными из файла %{filename}, после чего вы будете блокировать %{count} пользователей. + one: Вы собираетесь заменить свой список заблокированных пользователей данными из файла %{filename}, после чего вы будете блокировать %{count} пользователя. + other: Вы собираетесь заменить свой список заблокированных пользователей данными из файла %{filename}, после чего вы будете блокировать %{count} пользователей. bookmarks_html: - few: Вы собираетесь заменить свои закладки, в которых сейчас %{count} поста, из файла %{filename}. - many: Вы собираетесь заменить свои закладки, в которых сейчас %{count} постов, из файла %{filename}. - one: Вы собираетесь заменить свои закладки, в которых сейчас %{count} пост, из файла %{filename}. - other: Вы собираетесь заменить свои закладки, в которых сейчас %{count} постов, из файла %{filename}. + few: Вы собираетесь заменить свои закладки данными из файла %{filename}, после чего у вас в закладках будет %{count} поста. + many: Вы собираетесь заменить свои закладки данными из файла %{filename}, после чего у вас в закладках будет %{count} постов. + one: Вы собираетесь заменить свои закладки данными из файла %{filename}, после чего у вас в закладках будет %{count} пост. + other: Вы собираетесь заменить свои закладки данными из файла %{filename}, после чего у вас в закладках будет %{count} постов. domain_blocking_html: - few: Вы собираетесь заменить свой список доменных блокировок, в котором сейчас %{count} домена, из файла %{filename}. - many: Вы собираетесь заменить свой список доменных блокировок, в котором сейчас %{count} доменов, из файла %{filename}. - one: Вы собираетесь заменить свой список доменных блокировок, в котором сейчас %{count} домен, из файла %{filename}. - other: Вы собираетесь заменить свой список доменных блокировок, в котором сейчас %{count} доменов, из файла %{filename}. + few: Вы собираетесь заменить свой список заблокированных доменов данными из файла %{filename}, после чего вы будете блокировать %{count} домена. + many: Вы собираетесь заменить свой список заблокированных доменов данными из файла %{filename}, после чего вы будете блокировать %{count} доменов. + one: Вы собираетесь заменить свой список заблокированных доменов данными из файла %{filename}, после чего вы будете блокировать %{count} домен. + other: Вы собираетесь заменить свой список заблокированных доменов данными из файла %{filename}, после чего вы будете блокировать %{count} доменов. following_html: - few: Вы собираетесь подписаться на %{count} аккаунта из файла %{filename} и отписаться от всех прочих. - many: Вы собираетесь подписаться на %{count} аккаунтов из файла %{filename} и отписаться от всех прочих. - one: Вы собираетесь подписаться на %{count} аккаунт из файла %{filename} и отписаться от всех прочих. - other: Вы собираетесь подписаться на %{count} аккаунтов из файла %{filename} и отписаться от всех прочих. + few: Вы собираетесь подписаться на %{count} пользователей из файла %{filename} и отписаться от всех прочих. + many: Вы собираетесь подписаться на %{count} пользователей из файла %{filename} и отписаться от всех прочих. + one: Вы собираетесь подписаться на %{count} пользователя из файла %{filename} и отписаться от всех прочих. + other: Вы собираетесь подписаться на %{count} пользователей из файла %{filename} и отписаться от всех прочих. lists_html: - few: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} аккаунта. - many: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} аккаунтов. - one: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будет добавлен %{count} аккаунт. - other: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} аккаунтов. + few: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} пользователя. + many: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} пользователей. + one: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будет добавлен %{count} пользователь. + other: Вы собираетесь заменить свои списки содержимым файла %{filename}. В новые списки будут добавлены %{count} пользователей. muting_html: - few: Вы собираетесь заменить свой список игнорируемых пользователей списком из %{count} аккаунтов из файла %{filename}. - many: Вы собираетесь заменить свой список игнорируемых пользователей списком из %{count} аккаунтов из файла %{filename}. - one: Вы собираетесь заменить свой список игнорируемых пользователей списком из %{count} аккаунта из файла %{filename}. - other: Вы собираетесь заменить свой список игнорируемых пользователей списком из %{count} аккаунтов из файла %{filename}. + few: Вы собираетесь заменить свой список игнорируемых пользователей данными из файла %{filename}, после чего вы будете игнорировать %{count} пользователей. + many: Вы собираетесь заменить свой список игнорируемых пользователей данными из файла %{filename}, после чего вы будете игнорировать %{count} пользователей. + one: Вы собираетесь заменить свой список игнорируемых пользователей данными из файла %{filename}, после чего вы будете игнорировать %{count} пользователя. + other: Вы собираетесь заменить свой список игнорируемых пользователей данными из файла %{filename}, после чего вы будете игнорировать %{count} пользователей. preambles: blocking_html: - few: Вы собираетесь заблокировать %{count} аккаунта из файла %{filename}. - many: Вы собираетесь заблокировать %{count} аккаунтов из файла %{filename}. - one: Вы собираетесь заблокировать %{count} аккаунт из файла %{filename}. - other: Вы собираетесь заблокировать %{count} аккаунтов из файла %{filename}. + few: Вы собираетесь заблокировать %{count} пользователей из файла %{filename}. + many: Вы собираетесь заблокировать %{count} пользователей из файла %{filename}. + one: Вы собираетесь заблокировать %{count} пользователя из файла %{filename}. + other: Вы собираетесь заблокировать %{count} пользователей из файла %{filename}. bookmarks_html: few: Вы собираетесь добавить %{count} поста из файла %{filename} в свои закладки. many: Вы собираетесь добавить %{count} постов из файла %{filename} в свои закладки. @@ -1538,20 +1538,20 @@ ru: one: Вы собираетесь заблокировать %{count} домен из файла %{filename}. other: Вы собираетесь заблокировать %{count} доменов из файла %{filename}. following_html: - few: Вы собираетесь подписаться на %{count} аккаунта из файла %{filename}. - many: Вы собираетесь подписаться на %{count} аккаунтов из файла %{filename}. - one: Вы собираетесь подписаться на %{count} аккаунт из файла %{filename}. - other: Вы собираетесь подписаться на %{count} аккаунтов из файла %{filename}. + few: Вы собираетесь подписаться на %{count} пользователей из файла %{filename}. + many: Вы собираетесь подписаться на %{count} пользователей из файла %{filename}. + one: Вы собираетесь подписаться на %{count} пользователя из файла %{filename}. + other: Вы собираетесь подписаться на %{count} пользователей из файла %{filename}. lists_html: - few: Вы собираетесь добавить %{count} аккаунта из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. - many: Вы собираетесь добавить %{count} аккаунтов из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. - one: Вы собираетесь добавить %{count} аккаунт из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. - other: Вы собираетесь добавить %{count} аккаунтов из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. + few: Вы собираетесь добавить %{count} пользователей из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. + many: Вы собираетесь добавить %{count} пользователей из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. + one: Вы собираетесь добавить %{count} пользователя из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. + other: Вы собираетесь добавить %{count} пользователей из файла %{filename} в свои списки. Если соответствующих списков нет, они будут созданы. muting_html: - few: Вы собираетесь начать игнорировать %{count} аккаунта из файла %{filename}. - many: Вы собираетесь начать игнорировать %{count} аккаунтов из файла %{filename}. - one: Вы собираетесь начать игнорировать %{count} аккаунт из файла %{filename}. - other: Вы собираетесь начать игнорировать %{count} аккаунтов из файла %{filename}. + few: Вы собираетесь игнорировать %{count} пользователей из файла %{filename}. + many: Вы собираетесь игнорировать %{count} пользователей из файла %{filename}. + one: Вы собираетесь игнорировать %{count} пользователя из файла %{filename}. + other: Вы собираетесь игнорировать %{count} пользователей из файла %{filename}. preface: Вы можете загрузить некоторые данные, например, списки людей, на которых Вы подписаны или которых блокируете, в Вашу учётную запись на этом узле из файлов, экспортированных с другого узла. recent_imports: Недавно импортированное states: @@ -1563,23 +1563,23 @@ ru: success: Ваши данные были успешно загружены и будут обработаны с должной скоростью time_started: Началось в titles: - blocking: Импорт заблокированных аккаунтов + blocking: Импорт списка заблокированных пользователей bookmarks: Импорт закладок - domain_blocking: Импорт заблокированных доменов - following: Импорт последующих аккаунтов - lists: Импортировать список - muting: Импорт отключенных аккаунтов + domain_blocking: Импорт списка заблокированных доменов + following: Импорт подписок + lists: Импорт списков + muting: Импорт списка игнорируемых пользователей type: Тип импорта type_groups: constructive: Подписки и закладки destructive: Блокировки и игнорируемые types: - blocking: Список блокировки + blocking: Заблокированные пользователи bookmarks: Закладки - domain_blocking: Список доменных блокировок + domain_blocking: Заблокированные домены following: Подписки lists: Списки - muting: Список глушения + muting: Игнорируемые пользователи upload: Загрузить invites: delete: Удалить From e54e96d61fd8b0682034d9ad50aa1c457bfbc7a5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 24 Jul 2025 03:49:20 -0400 Subject: [PATCH 06/16] Extract params hash for `api/v1/push/subscriptions#create` (#35475) --- .../api/v1/push/subscriptions_controller.rb | 23 ++++++++------ .../api/v1/push/subscriptions_spec.rb | 31 +++++++++++++------ 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/app/controllers/api/v1/push/subscriptions_controller.rb b/app/controllers/api/v1/push/subscriptions_controller.rb index f2c52f2846..3b0cda7d93 100644 --- a/app/controllers/api/v1/push/subscriptions_controller.rb +++ b/app/controllers/api/v1/push/subscriptions_controller.rb @@ -16,16 +16,7 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController def create with_redis_lock("push_subscription:#{current_user.id}") do destroy_web_push_subscriptions! - - @push_subscription = Web::PushSubscription.create!( - endpoint: subscription_params[:endpoint], - key_p256dh: subscription_params[:keys][:p256dh], - key_auth: subscription_params[:keys][:auth], - standard: subscription_params[:standard] || false, - data: data_params, - user_id: current_user.id, - access_token_id: doorkeeper_token.id - ) + @push_subscription = Web::PushSubscription.create!(web_push_subscription_params) end render json: @push_subscription, serializer: REST::WebPushSubscriptionSerializer @@ -55,6 +46,18 @@ class Api::V1::Push::SubscriptionsController < Api::BaseController not_found if @push_subscription.nil? end + def web_push_subscription_params + { + access_token_id: doorkeeper_token.id, + data: data_params, + endpoint: subscription_params[:endpoint], + key_auth: subscription_params[:keys][:auth], + key_p256dh: subscription_params[:keys][:p256dh], + standard: subscription_params[:standard] || false, + user_id: current_user.id, + } + end + def subscription_params params.expect(subscription: [:endpoint, :standard, keys: [:auth, :p256dh]]) end diff --git a/spec/requests/api/v1/push/subscriptions_spec.rb b/spec/requests/api/v1/push/subscriptions_spec.rb index 359de9d95c..bccbda6fa2 100644 --- a/spec/requests/api/v1/push/subscriptions_spec.rb +++ b/spec/requests/api/v1/push/subscriptions_spec.rb @@ -166,17 +166,30 @@ RSpec.describe 'API V1 Push Subscriptions' do describe 'GET /api/v1/push/subscription' do subject { get '/api/v1/push/subscription', headers: headers } - before { create_subscription_with_token } + context 'with a subscription' do + before { create_subscription_with_token } - it 'shows subscription details' do - subject + it 'shows subscription details' do + subject - expect(response) - .to have_http_status(200) - expect(response.content_type) - .to start_with('application/json') - expect(response.parsed_body) - .to include(endpoint: endpoint) + expect(response) + .to have_http_status(200) + expect(response.content_type) + .to start_with('application/json') + expect(response.parsed_body) + .to include(endpoint: endpoint) + end + end + + context 'without a subscription' do + it 'returns not found' do + subject + + expect(response) + .to have_http_status(404) + expect(response.content_type) + .to start_with('application/json') + end end end From 7d136feccf961121432e7771eca20bd8c7a70fb4 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 24 Jul 2025 09:51:56 +0200 Subject: [PATCH 07/16] Bump version to v4.4.2 (#35498) --- CHANGELOG.md | 20 ++++++++++++++++++++ docker-compose.yml | 6 +++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19be8ea68e..97a7234382 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ All notable changes to this project will be documented in this file. +## [4.4.2] - 2025-07-23 + +### Security + +- Update dependencies + +### Fixed + +- Fix menu not clickable in Firefox (#35390 and #35414 by @diondiondion) +- Add `lang` attribute to current composer language in alt text modal (#35412 by @diondiondion) +- Fix quote posts styling on notifications page (#35411 by @diondiondion) +- Improve a11y of custom select menus in notifications settings (#35403 by @diondiondion) +- Fix selected item in poll select menus is unreadable in Firefox (#35402 by @diondiondion) +- Update age limit wording (#35387 by @diondiondion) +- Fix support for quote verification in implicit status updates (#35384 by @ClearlyClaire) +- Improve `Dropdown` component accessibility (#35373 by @diondiondion) +- Fix processing some incoming quotes failing because of missing JSON-LD context (#35354 and #35380 by @ClearlyClaire) +- Make bio hashtags open the local page instead of the remote instance (#35349 by @ChaosExAnima) +- Fix styling of external log-in button (#35320 by @ClearlyClaire) + ## [4.4.1] - 2025-07-09 ### Fixed diff --git a/docker-compose.yml b/docker-compose.yml index e5d94b390f..8fe42fa0c9 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.1 + image: ghcr.io/mastodon/mastodon:v4.4.2 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.1 + image: ghcr.io/mastodon/mastodon-streaming:v4.4.2 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.1 + image: ghcr.io/mastodon/mastodon:v4.4.2 restart: always env_file: .env.production command: bundle exec sidekiq From 67be8208db4c73e282686c9d459a4c66f0d6b80a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 24 Jul 2025 09:52:34 +0200 Subject: [PATCH 08/16] chore(deps): update dependency haml_lint to v0.65.1 (#35497) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4c232743bf..f5a919a52f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -287,7 +287,7 @@ GEM activesupport (>= 5.1) haml (>= 4.0.6) railties (>= 5.1) - haml_lint (0.65.0) + haml_lint (0.65.1) haml (>= 5.0) parallel (~> 1.10) rainbow From 5c01ccc31fca955d16f11a2f611187cb823a0ec5 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 24 Jul 2025 04:03:28 -0400 Subject: [PATCH 09/16] Set flash options via redirect where possible (#35370) --- app/controllers/admin/confirmations_controller.rb | 6 ++---- app/controllers/admin/settings_controller.rb | 3 +-- app/controllers/auth/passwords_controller.rb | 3 +-- app/controllers/settings/sessions_controller.rb | 3 +-- .../webauthn_credentials_controller.rb | 6 ++---- 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/app/controllers/admin/confirmations_controller.rb b/app/controllers/admin/confirmations_controller.rb index 702550eecc..5d1555796f 100644 --- a/app/controllers/admin/confirmations_controller.rb +++ b/app/controllers/admin/confirmations_controller.rb @@ -19,15 +19,13 @@ module Admin log_action :resend, @user - flash[:notice] = I18n.t('admin.accounts.resend_confirmation.success') - redirect_to admin_accounts_path + redirect_to admin_accounts_path, notice: t('admin.accounts.resend_confirmation.success') end private def redirect_confirmed_user - flash[:error] = I18n.t('admin.accounts.resend_confirmation.already_confirmed') - redirect_to admin_accounts_path + redirect_to admin_accounts_path, flash: { error: t('admin.accounts.resend_confirmation.already_confirmed') } end def user_confirmed? diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 2ae5ec8255..a08375e0a4 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -14,8 +14,7 @@ module Admin @admin_settings = Form::AdminSettings.new(settings_params) if @admin_settings.save - flash[:notice] = I18n.t('generic.changes_saved_msg') - redirect_to after_update_redirect_path + redirect_to after_update_redirect_path, notice: t('generic.changes_saved_msg') else render :show end diff --git a/app/controllers/auth/passwords_controller.rb b/app/controllers/auth/passwords_controller.rb index 7c1ff59671..2680a1c5fd 100644 --- a/app/controllers/auth/passwords_controller.rb +++ b/app/controllers/auth/passwords_controller.rb @@ -19,8 +19,7 @@ class Auth::PasswordsController < Devise::PasswordsController private def redirect_invalid_reset_token - flash[:error] = I18n.t('auth.invalid_reset_password_token') - redirect_to new_password_path(resource_name) + redirect_to new_password_path(resource_name), flash: { error: t('auth.invalid_reset_password_token') } end def reset_password_token_is_valid? diff --git a/app/controllers/settings/sessions_controller.rb b/app/controllers/settings/sessions_controller.rb index ee2fc5dc80..fe59bdc491 100644 --- a/app/controllers/settings/sessions_controller.rb +++ b/app/controllers/settings/sessions_controller.rb @@ -8,8 +8,7 @@ class Settings::SessionsController < Settings::BaseController def destroy @session.destroy! - flash[:notice] = I18n.t('sessions.revoke_success') - redirect_to edit_user_registration_path + redirect_to edit_user_registration_path, notice: t('sessions.revoke_success') end private 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 9714d54f95..b01f08ed8f 100644 --- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb +++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb @@ -86,13 +86,11 @@ module Settings private def redirect_invalid_otp - flash[:error] = t('webauthn_credentials.otp_required') - redirect_to settings_two_factor_authentication_methods_path + redirect_to settings_two_factor_authentication_methods_path, flash: { error: t('webauthn_credentials.otp_required') } end def redirect_invalid_webauthn - flash[:error] = t('webauthn_credentials.not_enabled') - redirect_to settings_two_factor_authentication_methods_path + redirect_to settings_two_factor_authentication_methods_path, flash: { error: t('webauthn_credentials.not_enabled') } end end end From 8a1c43bf3b51c63dfb74d1cb5ec3a1d03e305e34 Mon Sep 17 00:00:00 2001 From: David Roetzel Date: Thu, 24 Jul 2025 10:23:41 +0200 Subject: [PATCH 10/16] Use default for preselected default privacy post setting (#35422) --- app/views/settings/preferences/other/show.html.haml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/views/settings/preferences/other/show.html.haml b/app/views/settings/preferences/other/show.html.haml index dd79695db7..e02bd2b177 100644 --- a/app/views/settings/preferences/other/show.html.haml +++ b/app/views/settings/preferences/other/show.html.haml @@ -21,6 +21,7 @@ .fields-group.fields-row__column.fields-row__column-6 = ff.input :default_privacy, collection: Status.selectable_visibilities, + selected: current_user.setting_default_privacy, hint: false, include_blank: false, label_method: ->(visibility) { safe_join([I18n.t("statuses.visibilities.#{visibility}"), I18n.t("statuses.visibilities.#{visibility}_long")], ' - ') }, From 8baed8b90e3e5d4e1df93a19b46c420148cdb42c Mon Sep 17 00:00:00 2001 From: Mayank <9084735+mayank99@users.noreply.github.com> Date: Thu, 24 Jul 2025 04:58:22 -0400 Subject: [PATCH 11/16] remove redundant `title` text from media modal images in web UI (#35468) --- app/javascript/mastodon/components/gifv.tsx | 2 -- .../mastodon/features/ui/components/zoomable_image.tsx | 2 -- 2 files changed, 4 deletions(-) diff --git a/app/javascript/mastodon/components/gifv.tsx b/app/javascript/mastodon/components/gifv.tsx index 8e3a434c14..d7d0b5f2ce 100644 --- a/app/javascript/mastodon/components/gifv.tsx +++ b/app/javascript/mastodon/components/gifv.tsx @@ -37,7 +37,6 @@ export const GIFV = forwardRef( role='button' tabIndex={0} aria-label={alt} - title={alt} lang={lang} onClick={handleClick} /> @@ -49,7 +48,6 @@ export const GIFV = forwardRef( role='button' tabIndex={0} aria-label={alt} - title={alt} lang={lang} width={width} height={height} diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.tsx b/app/javascript/mastodon/features/ui/components/zoomable_image.tsx index 09b39d3efa..1297d243d0 100644 --- a/app/javascript/mastodon/features/ui/components/zoomable_image.tsx +++ b/app/javascript/mastodon/features/ui/components/zoomable_image.tsx @@ -306,10 +306,8 @@ export const ZoomableImage: React.FC = ({ Date: Thu, 24 Jul 2025 09:00:32 +0000 Subject: [PATCH 12/16] fix(deps): update dependency @vitejs/plugin-react to v4.7.0 (#35421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 133 +++++++++++++++++++++++++++--------------------------- 1 file changed, 66 insertions(+), 67 deletions(-) diff --git a/yarn.lock b/yarn.lock index 67739e74d4..2c1faaa91a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -73,39 +73,39 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.10, @babel/core@npm:^7.27.4": - version: 7.27.4 - resolution: "@babel/core@npm:7.27.4" +"@babel/core@npm:^7.18.9, @babel/core@npm:^7.21.3, @babel/core@npm:^7.24.4, @babel/core@npm:^7.26.10, @babel/core@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/core@npm:7.28.0" dependencies: "@ampproject/remapping": "npm:^2.2.0" "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.27.3" + "@babel/generator": "npm:^7.28.0" "@babel/helper-compilation-targets": "npm:^7.27.2" "@babel/helper-module-transforms": "npm:^7.27.3" - "@babel/helpers": "npm:^7.27.4" - "@babel/parser": "npm:^7.27.4" + "@babel/helpers": "npm:^7.27.6" + "@babel/parser": "npm:^7.28.0" "@babel/template": "npm:^7.27.2" - "@babel/traverse": "npm:^7.27.4" - "@babel/types": "npm:^7.27.3" + "@babel/traverse": "npm:^7.28.0" + "@babel/types": "npm:^7.28.0" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/d2d17b106a8d91d3eda754bb3f26b53a12eb7646df73c2b2d2e9b08d90529186bc69e3823f70a96ec6e5719dc2372fb54e14ad499da47ceeb172d2f7008787b5 + checksum: 10c0/423302e7c721e73b1c096217880272e02020dfb697a55ccca60ad01bba90037015f84d0c20c6ce297cf33a19bb704bc5c2b3d3095f5284dfa592bd1de0b9e8c3 languageName: node linkType: hard -"@babel/generator@npm:^7.27.3": - version: 7.27.3 - resolution: "@babel/generator@npm:7.27.3" +"@babel/generator@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/generator@npm:7.28.0" dependencies: - "@babel/parser": "npm:^7.27.3" - "@babel/types": "npm:^7.27.3" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" + "@babel/parser": "npm:^7.28.0" + "@babel/types": "npm:^7.28.0" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" jsesc: "npm:^3.0.2" - checksum: 10c0/341622e17c61d008fc746b655ab95ef7febb543df8efb4148f57cf06e60ade1abe091ed7d6811df17b064d04d64f69bb7f35ab0654137116d55c54a73145a61a + checksum: 10c0/1b3d122268ea3df50fde707ad864d9a55c72621357d5cebb972db3dd76859c45810c56e16ad23123f18f80cc2692f5a015d2858361300f0f224a05dc43d36a92 languageName: node linkType: hard @@ -176,6 +176,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-globals@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/helper-globals@npm:7.28.0" + checksum: 10c0/5a0cd0c0e8c764b5f27f2095e4243e8af6fa145daea2b41b53c0c1414fe6ff139e3640f4e2207ae2b3d2153a1abd346f901c26c290ee7cb3881dd922d4ee9232 + languageName: node + linkType: hard + "@babel/helper-member-expression-to-functions@npm:^7.27.1": version: 7.27.1 resolution: "@babel/helper-member-expression-to-functions@npm:7.27.1" @@ -293,24 +300,24 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.27.4": - version: 7.27.4 - resolution: "@babel/helpers@npm:7.27.4" +"@babel/helpers@npm:^7.27.6": + version: 7.27.6 + resolution: "@babel/helpers@npm:7.27.6" dependencies: "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.27.3" - checksum: 10c0/3463551420926b3f403c1a30d66ac67bba5c4f73539a8ccb71544da129c4709ac37c57fac740ed8a261b3e6bbbf353b05e03b36ea1a6bf1081604b2a94ca43c1 + "@babel/types": "npm:^7.27.6" + checksum: 10c0/448bac96ef8b0f21f2294a826df9de6bf4026fd023f8a6bb6c782fe3e61946801ca24381490b8e58d861fee75cd695a1882921afbf1f53b0275ee68c938bd6d3 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.3, @babel/parser@npm:^7.27.4": - version: 7.27.4 - resolution: "@babel/parser@npm:7.27.4" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/parser@npm:7.28.0" dependencies: - "@babel/types": "npm:^7.27.3" + "@babel/types": "npm:^7.28.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/d1bf17e7508585235e2a76594ba81828e48851877112bb8abbecd7161a31fb66654e993e458ddaedb18a3d5fa31970e5f3feca5ae2900f51e6d8d3d35da70dbf + checksum: 10c0/c2ef81d598990fa949d1d388429df327420357cb5200271d0d0a2784f1e6d54afc8301eb8bdf96d8f6c77781e402da93c7dc07980fcc136ac5b9d5f1fce701b5 languageName: node linkType: hard @@ -1157,28 +1164,28 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4": - version: 7.27.4 - resolution: "@babel/traverse@npm:7.27.4" +"@babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.26.10, @babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.28.0": + version: 7.28.0 + resolution: "@babel/traverse@npm:7.28.0" dependencies: "@babel/code-frame": "npm:^7.27.1" - "@babel/generator": "npm:^7.27.3" - "@babel/parser": "npm:^7.27.4" + "@babel/generator": "npm:^7.28.0" + "@babel/helper-globals": "npm:^7.28.0" + "@babel/parser": "npm:^7.28.0" "@babel/template": "npm:^7.27.2" - "@babel/types": "npm:^7.27.3" + "@babel/types": "npm:^7.28.0" debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/6de8aa2a0637a6ee6d205bf48b9e923928a02415771fdec60085ed754dcdf605e450bb3315c2552fa51c31a4662275b45d5ae4ad527ce55a7db9acebdbbbb8ed + checksum: 10c0/32794402457827ac558173bcebdcc0e3a18fa339b7c41ca35621f9f645f044534d91bb923ff385f5f960f2e495f56ce18d6c7b0d064d2f0ccb55b285fa6bc7b9 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.4, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.4.4": - version: 7.27.3 - resolution: "@babel/types@npm:7.27.3" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.3, @babel/types@npm:^7.25.4, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.6, @babel/types@npm:^7.28.0, @babel/types@npm:^7.4.4": + version: 7.28.1 + resolution: "@babel/types@npm:7.28.1" dependencies: "@babel/helper-string-parser": "npm:^7.27.1" "@babel/helper-validator-identifier": "npm:^7.27.1" - checksum: 10c0/bafdfc98e722a6b91a783b6f24388f478fd775f0c0652e92220e08be2cc33e02d42088542f1953ac5e5ece2ac052172b3dadedf12bec9aae57899e92fb9a9757 + checksum: 10c0/5e99b346c11ee42ffb0cadc28159fe0b184d865a2cc1593df79b199772a534f6453969b4942aa5e4a55a3081863096e1cc3fc1c724d826926dc787cf229b845d languageName: node linkType: hard @@ -2542,14 +2549,13 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" +"@jridgewell/gen-mapping@npm:^0.3.12, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.12 + resolution: "@jridgewell/gen-mapping@npm:0.3.12" dependencies: - "@jridgewell/set-array": "npm:^1.2.1" - "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/sourcemap-codec": "npm:^1.5.0" "@jridgewell/trace-mapping": "npm:^0.3.24" - checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb + checksum: 10c0/32f771ae2467e4d440be609581f7338d786d3d621bac3469e943b9d6d116c23c4becb36f84898a92bbf2f3c0511365c54a945a3b86a83141547a2a360a5ec0c7 languageName: node linkType: hard @@ -2560,13 +2566,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.2.1": - version: 1.2.1 - resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 - languageName: node - linkType: hard - "@jridgewell/source-map@npm:^0.3.3": version: 0.3.6 resolution: "@jridgewell/source-map@npm:0.3.6" @@ -2577,20 +2576,20 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": - version: 0.3.25 - resolution: "@jridgewell/trace-mapping@npm:0.3.25" +"@jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.28": + version: 0.3.29 + resolution: "@jridgewell/trace-mapping@npm:0.3.29" dependencies: "@jridgewell/resolve-uri": "npm:^3.1.0" "@jridgewell/sourcemap-codec": "npm:^1.4.14" - checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 + checksum: 10c0/fb547ba31658c4d74eb17e7389f4908bf7c44cef47acb4c5baa57289daf68e6fe53c639f41f751b3923aca67010501264f70e7b49978ad1f040294b22c37b333 languageName: node linkType: hard @@ -3211,10 +3210,10 @@ __metadata: languageName: node linkType: hard -"@rolldown/pluginutils@npm:1.0.0-beta.19": - version: 1.0.0-beta.19 - resolution: "@rolldown/pluginutils@npm:1.0.0-beta.19" - checksum: 10c0/e4205df56e6231a347ac601d044af365639741d51b5bea4e91ecc37e19e9777cb79d1daa924b8709ddf1f743ed6922e4e68e2445126434c4d420d9f4416f4feb +"@rolldown/pluginutils@npm:1.0.0-beta.27": + version: 1.0.0-beta.27 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.27" + checksum: 10c0/9658f235b345201d4f6bfb1f32da9754ca164f892d1cb68154fe5f53c1df42bd675ecd409836dff46884a7847d6c00bdc38af870f7c81e05bba5c2645eb4ab9c languageName: node linkType: hard @@ -4735,18 +4734,18 @@ __metadata: linkType: hard "@vitejs/plugin-react@npm:^4.2.1": - version: 4.6.0 - resolution: "@vitejs/plugin-react@npm:4.6.0" + version: 4.7.0 + resolution: "@vitejs/plugin-react@npm:4.7.0" dependencies: - "@babel/core": "npm:^7.27.4" + "@babel/core": "npm:^7.28.0" "@babel/plugin-transform-react-jsx-self": "npm:^7.27.1" "@babel/plugin-transform-react-jsx-source": "npm:^7.27.1" - "@rolldown/pluginutils": "npm:1.0.0-beta.19" + "@rolldown/pluginutils": "npm:1.0.0-beta.27" "@types/babel__core": "npm:^7.20.5" react-refresh: "npm:^0.17.0" peerDependencies: - vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - checksum: 10c0/73b8f271978a0337debb255afd1667f49c2018c118962a8613120383375c4038255a5315cee2ef210dc7fd07cd30d5b12271077ad47db29980f8156b8a49be2c + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 + checksum: 10c0/692f23960972879485d647713663ec299c478222c96567d60285acf7c7dc5c178e71abfe9d2eefddef1eeb01514dacbc2ed68aad84628debf9c7116134734253 languageName: node linkType: hard From 6fc77a545bef8c15cdc262f100efc2915c5900ed Mon Sep 17 00:00:00 2001 From: diondiondion Date: Thu, 24 Jul 2025 16:30:56 +0200 Subject: [PATCH 13/16] fix: Fix TypeError on pages with empty feeds (#35504) --- app/javascript/mastodon/components/status_list.jsx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/javascript/mastodon/components/status_list.jsx b/app/javascript/mastodon/components/status_list.jsx index 70b7968fba..c3055aeeab 100644 --- a/app/javascript/mastodon/components/status_list.jsx +++ b/app/javascript/mastodon/components/status_list.jsx @@ -41,9 +41,11 @@ export default class StatusList extends ImmutablePureComponent { }; componentDidMount() { - this.columnHeaderHeight = parseFloat( - getComputedStyle(this.node.node).getPropertyValue('--column-header-height') - ) || 0; + this.columnHeaderHeight = this.node?.node + ? parseFloat( + getComputedStyle(this.node.node).getPropertyValue('--column-header-height') + ) || 0 + : 0; } getFeaturedStatusCount = () => { @@ -69,8 +71,8 @@ export default class StatusList extends ImmutablePureComponent { }; _selectChild = (id, index, direction) => { - const listContainer = this.node.node; - let listItem = listContainer.querySelector( + const listContainer = this.node?.node; + let listItem = listContainer?.querySelector( // :nth-child uses 1-based indexing `.item-list > :nth-child(${index + 1 + direction})` ); From dfaca794bf98e40954f1ef869f9c7e9274167d74 Mon Sep 17 00:00:00 2001 From: Echo Date: Thu, 24 Jul 2025 16:55:00 +0200 Subject: [PATCH 14/16] Force modern emoji experimental to be dev mode only (#35505) --- app/javascript/mastodon/components/account_bio.tsx | 6 ++---- .../mastodon/components/status_content.jsx | 5 +++-- .../mastodon/features/emoji/emoji_html.tsx | 4 ++-- app/javascript/mastodon/initial_state.js | 8 -------- app/javascript/mastodon/main.tsx | 10 +++++++--- app/javascript/mastodon/utils/environment.ts | 12 ++++++++++++ 6 files changed, 26 insertions(+), 19 deletions(-) diff --git a/app/javascript/mastodon/components/account_bio.tsx b/app/javascript/mastodon/components/account_bio.tsx index cdac41b8a7..b720b4746d 100644 --- a/app/javascript/mastodon/components/account_bio.tsx +++ b/app/javascript/mastodon/components/account_bio.tsx @@ -3,8 +3,8 @@ import { useCallback } from 'react'; import { useLinks } from 'mastodon/hooks/useLinks'; import { EmojiHTML } from '../features/emoji/emoji_html'; -import { isFeatureEnabled } from '../initial_state'; import { useAppSelector } from '../store'; +import { isModernEmojiEnabled } from '../utils/environment'; interface AccountBioProps { className: string; @@ -32,9 +32,7 @@ export const AccountBio: React.FC = ({ if (!account) { return ''; } - return isFeatureEnabled('modern_emojis') - ? account.note - : account.note_emojified; + return isModernEmojiEnabled() ? account.note : account.note_emojified; }); const extraEmojis = useAppSelector((state) => { const account = state.accounts.get(accountId); diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx index 02f06ec96a..e1fd7734e9 100644 --- a/app/javascript/mastodon/components/status_content.jsx +++ b/app/javascript/mastodon/components/status_content.jsx @@ -13,8 +13,9 @@ import ChevronRightIcon from '@/material-icons/400-24px/chevron_right.svg?react' import { Icon } from 'mastodon/components/icon'; import { Poll } from 'mastodon/components/poll'; import { identityContextPropShape, withIdentity } from 'mastodon/identity_context'; -import { autoPlayGif, isFeatureEnabled, languages as preloadedLanguages } from 'mastodon/initial_state'; +import { autoPlayGif, languages as preloadedLanguages } from 'mastodon/initial_state'; import { EmojiHTML } from '../features/emoji/emoji_html'; +import { isModernEmojiEnabled } from '../utils/environment'; const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) @@ -24,7 +25,7 @@ const MAX_HEIGHT = 706; // 22px * 32 (+ 2px padding at the top) * @returns {string} */ export function getStatusContent(status) { - if (isFeatureEnabled('modern_emojis')) { + if (isModernEmojiEnabled()) { return status.getIn(['translation', 'content']) || status.get('content'); } return status.getIn(['translation', 'contentHtml']) || status.get('contentHtml'); diff --git a/app/javascript/mastodon/features/emoji/emoji_html.tsx b/app/javascript/mastodon/features/emoji/emoji_html.tsx index 27af2dda27..85628e6723 100644 --- a/app/javascript/mastodon/features/emoji/emoji_html.tsx +++ b/app/javascript/mastodon/features/emoji/emoji_html.tsx @@ -5,8 +5,8 @@ import type { List as ImmutableList } from 'immutable'; import { isList } from 'immutable'; import type { ApiCustomEmojiJSON } from '@/mastodon/api_types/custom_emoji'; -import { isFeatureEnabled } from '@/mastodon/initial_state'; import type { CustomEmoji } from '@/mastodon/models/custom_emoji'; +import { isModernEmojiEnabled } from '@/mastodon/utils/environment'; import { useEmojiAppState } from './hooks'; import { emojifyElement } from './render'; @@ -25,7 +25,7 @@ export const EmojiHTML: React.FC = ({ extraEmojis, ...props }) => { - if (isFeatureEnabled('modern_emojis')) { + if (isModernEmojiEnabled()) { return ( Date: Thu, 24 Jul 2025 17:08:50 +0200 Subject: [PATCH 15/16] chore(deps): update dependency httplog to v1.7.2 (#35506) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f5a919a52f..ca95bbfdcf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -315,7 +315,7 @@ GEM http_accept_language (2.1.1) httpclient (2.9.0) mutex_m - httplog (1.7.1) + httplog (1.7.2) rack (>= 2.0) rainbow (>= 2.0.0) i18n (1.14.7) From a863e68d174b176dc350d8e3472c010cd37b7807 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 24 Jul 2025 17:45:12 +0200 Subject: [PATCH 16/16] Add restrictions on which quote posts can trend (#35507) --- app/models/trends/statuses.rb | 28 +++++++++++++++++++++------- spec/models/trends/statuses_spec.rb | 8 ++++++-- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb index c85b0170fd..e64369b08b 100644 --- a/app/models/trends/statuses.rb +++ b/app/models/trends/statuses.rb @@ -90,14 +90,28 @@ class Trends::Statuses < Trends::Base def eligible?(status) status.created_at.past? && - status.public_visibility? && - status.account.discoverable? && - !status.account.silenced? && - !status.account.sensitized? && - status.spoiler_text.blank? && - !status.sensitive? && + opted_into_trends?(status) && + !sensitive_content?(status) && !status.reply? && - valid_locale?(status.language) + valid_locale?(status.language) && + (status.quote.nil? || trendable_quote?(status.quote)) + end + + def opted_into_trends?(status) + status.public_visibility? && + status.account.discoverable? && + !status.account.silenced? + end + + def sensitive_content?(status) + status.account.sensitized? || status.spoiler_text.present? || status.sensitive? + end + + def trendable_quote?(quote) + quote.acceptable? && + quote.quoted_status.present? && + opted_into_trends?(quote.quoted_status) && + !sensitive_content?(quote.quoted_status) end def calculate_scores(statuses, at_time) diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb index 3983901042..54b227dad0 100644 --- a/spec/models/trends/statuses_spec.rb +++ b/spec/models/trends/statuses_spec.rb @@ -111,12 +111,16 @@ RSpec.describe Trends::Statuses do let!(:yesterday) { today - 1.day } let!(:status_foo) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: yesterday) } - let!(:status_bar) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) } + let!(:status_bar) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today, quote: Quote.new(state: :accepted, quoted_status: status_foo)) } let!(:status_baz) { Fabricate(:status, text: 'Baz', language: 'en', trendable: true, created_at: today) } + let!(:untrendable) { Fabricate(:status, text: 'Untrendable', language: 'en', trendable: true, visibility: :unlisted) } + let!(:untrendable_quote) { Fabricate(:status, text: 'Untrendable quote!', language: 'en', trendable: true, created_at: today, quote: Quote.new(state: :accepted, quoted_status: untrendable)) } before do default_threshold_value.times { reblog(status_foo, today) } default_threshold_value.times { reblog(status_bar, today) } + default_threshold_value.times { reblog(untrendable, today) } + default_threshold_value.times { reblog(untrendable_quote, today) } (default_threshold_value - 1).times { reblog(status_baz, today) } end @@ -129,7 +133,7 @@ RSpec.describe Trends::Statuses do results = subject.query.limit(10).to_a expect(results).to eq [status_bar, status_foo] - expect(results).to_not include(status_baz) + expect(results).to_not include(status_baz, untrendable, untrendable_quote) end end