From 7e501c59c2acc0bba7fb5b3d1b6ca43171c89f02 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Tue, 13 Aug 2024 09:14:41 +0200 Subject: [PATCH 01/40] Add a border above the timeline hint for statuses with replies (#31387) --- app/javascript/mastodon/components/timeline_hint.tsx | 7 +++++-- app/javascript/mastodon/features/status/index.jsx | 2 +- app/javascript/styles/mastodon/components.scss | 4 ++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/javascript/mastodon/components/timeline_hint.tsx b/app/javascript/mastodon/components/timeline_hint.tsx index bf2a2d8bba..6faad2fbb8 100644 --- a/app/javascript/mastodon/components/timeline_hint.tsx +++ b/app/javascript/mastodon/components/timeline_hint.tsx @@ -1,12 +1,15 @@ import { FormattedMessage } from 'react-intl'; +import classNames from 'classnames'; + interface Props { resource: JSX.Element; url: string; + className?: string; } -export const TimelineHint: React.FC = ({ resource, url }) => ( -
+export const TimelineHint: React.FC = ({ className, resource, url }) => ( +
} />; + remoteHint = } />; } const handlers = { diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 90881b0f19..7ffbf482c2 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4248,6 +4248,10 @@ a.status-card { } } +.timeline-hint--with-descendants { + border-top: 1px solid var(--background-border-color); +} + .regeneration-indicator { text-align: center; font-size: 16px; From f6d090fdf5912f390c3d1fe5b43f15c1f0704bd3 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Tue, 13 Aug 2024 09:26:23 +0200 Subject: [PATCH 02/40] Change avatars border radius (#31390) --- app/javascript/styles/mastodon/admin.scss | 6 +++--- app/javascript/styles/mastodon/components.scss | 5 +++-- app/javascript/styles/mastodon/containers.scss | 2 +- app/javascript/styles/mastodon/forms.scss | 2 +- app/javascript/styles/mastodon/variables.scss | 1 + 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index 61e949b27b..a1b4e74e0d 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -697,7 +697,7 @@ body, top: 15px; .avatar { - border-radius: 4px; + border-radius: var(--avatar-border-radius); width: 40px; height: 40px; } @@ -748,7 +748,7 @@ body, top: 15px; .avatar { - border-radius: 4px; + border-radius: var(--avatar-border-radius); width: 40px; height: 40px; } @@ -1595,7 +1595,7 @@ a.sparkline { position: absolute; inset-inline-start: 15px; top: 15px; - border-radius: 4px; + border-radius: var(--avatar-border-radius); width: 40px; height: 40px; } diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 7ffbf482c2..995568e147 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1996,13 +1996,14 @@ body > [data-popper-placement] { .account__avatar { display: block; position: relative; + border-radius: var(--avatar-border-radius); img { display: block; width: 100%; height: 100%; object-fit: cover; - border-radius: 4px; + border-radius: var(--avatar-border-radius); } &-inline { @@ -7975,7 +7976,7 @@ noscript { .account__avatar { background: var(--background-color); border: 1px solid var(--background-border-color); - border-radius: 4px; + border-radius: var(--avatar-border-radius); } } } diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss index 9363e428b3..ac1f862a09 100644 --- a/app/javascript/styles/mastodon/containers.scss +++ b/app/javascript/styles/mastodon/containers.scss @@ -81,7 +81,7 @@ height: 100%; display: block; margin: 0; - border-radius: 4px; + border-radius: var(--avatar-border-radius); } } diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss index f3cf66237f..cf8c1327dc 100644 --- a/app/javascript/styles/mastodon/forms.scss +++ b/app/javascript/styles/mastodon/forms.scss @@ -312,7 +312,7 @@ code { margin-bottom: 10px; max-width: 100%; height: auto; - border-radius: 4px; + border-radius: var(--avatar-border-radius); background: url('images/void.png'); &[src$='missing.png'] { diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index 2848a42b3f..2ba3dfb49d 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -108,4 +108,5 @@ $font-monospace: 'mastodon-font-monospace' !default; --surface-background-color: #{darken($ui-base-color, 4%)}; --surface-variant-background-color: #{$ui-base-color}; --surface-variant-active-background-color: #{lighten($ui-base-color, 4%)}; + --avatar-border-radius: 8px; } From 02df1b4e4a1690c934b0e4fb9aa32b832d6bc2a1 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 13 Aug 2024 03:37:32 -0400 Subject: [PATCH 03/40] Finish email allow/deny list naming migration (#30530) --- .rubocop_todo.yml | 1 - app/models/user.rb | 2 +- app/validators/email_mx_validator.rb | 8 ++-- ...l_validator.rb => user_email_validator.rb} | 10 ++--- .../auto_close_registrations_scheduler.rb | 2 +- config/initializers/blacklists.rb | 6 --- config/initializers/doorkeeper.rb | 2 +- config/initializers/email_domains_lists.rb | 6 +++ spec/models/user_spec.rb | 40 +++++++++---------- spec/validators/email_mx_validator_spec.rb | 8 ++-- ...r_spec.rb => user_email_validator_spec.rb} | 2 +- 11 files changed, 43 insertions(+), 44 deletions(-) rename app/validators/{blacklisted_email_validator.rb => user_email_validator.rb} (74%) delete mode 100644 config/initializers/blacklists.rb create mode 100644 config/initializers/email_domains_lists.rb rename spec/validators/{blacklisted_email_validator_spec.rb => user_email_validator_spec.rb} (96%) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 357ed99545..09acb795bf 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -40,7 +40,6 @@ Style/FetchEnvVar: - 'config/environments/production.rb' - 'config/initializers/2_limited_federation_mode.rb' - 'config/initializers/3_omniauth.rb' - - 'config/initializers/blacklists.rb' - 'config/initializers/cache_buster.rb' - 'config/initializers/devise.rb' - 'config/initializers/paperclip.rb' diff --git a/app/models/user.rb b/app/models/user.rb index 7285456926..f22b7ec684 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -100,7 +100,7 @@ class User < ApplicationRecord validates :email, presence: true, email_address: true - validates_with BlacklistedEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? } + validates_with UserEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? } validates_with EmailMxValidator, if: :validate_email_dns? validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create diff --git a/app/validators/email_mx_validator.rb b/app/validators/email_mx_validator.rb index 7943778943..f78b98d7dd 100644 --- a/app/validators/email_mx_validator.rb +++ b/app/validators/email_mx_validator.rb @@ -15,7 +15,7 @@ class EmailMxValidator < ActiveModel::Validator if resolved_ips.empty? user.errors.add(:email, :unreachable) - elsif on_blacklist?(resolved_domains, user.sign_up_ip) + elsif email_domain_blocked?(resolved_domains, user.sign_up_ip) user.errors.add(:email, :blocked) end end @@ -34,9 +34,9 @@ class EmailMxValidator < ActiveModel::Validator end def on_allowlist?(domain) - return false if Rails.configuration.x.email_domains_whitelist.blank? + return false if Rails.configuration.x.email_domains_allowlist.blank? - Rails.configuration.x.email_domains_whitelist.include?(domain) + Rails.configuration.x.email_domains_allowlist.include?(domain) end def resolve_mx(domain) @@ -58,7 +58,7 @@ class EmailMxValidator < ActiveModel::Validator [ips, records] end - def on_blacklist?(domains, attempt_ip) + def email_domain_blocked?(domains, attempt_ip) EmailDomainBlock.block?(domains, attempt_ip: attempt_ip) end end diff --git a/app/validators/blacklisted_email_validator.rb b/app/validators/user_email_validator.rb similarity index 74% rename from app/validators/blacklisted_email_validator.rb rename to app/validators/user_email_validator.rb index 9b3f2e33e5..21b22794ef 100644 --- a/app/validators/blacklisted_email_validator.rb +++ b/app/validators/user_email_validator.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class BlacklistedEmailValidator < ActiveModel::Validator +class UserEmailValidator < ActiveModel::Validator def validate(user) return if user.valid_invitation? || user.email.blank? @@ -23,18 +23,18 @@ class BlacklistedEmailValidator < ActiveModel::Validator end def not_allowed_through_configuration?(email) - return false if Rails.configuration.x.email_domains_whitelist.blank? + return false if Rails.configuration.x.email_domains_allowlist.blank? - domains = Rails.configuration.x.email_domains_whitelist.gsub('.', '\.') + domains = Rails.configuration.x.email_domains_allowlist.gsub('.', '\.') regexp = Regexp.new("@(.+\\.)?(#{domains})$", true) email !~ regexp end def disallowed_through_configuration?(email) - return false if Rails.configuration.x.email_domains_blacklist.blank? + return false if Rails.configuration.x.email_domains_denylist.blank? - domains = Rails.configuration.x.email_domains_blacklist.gsub('.', '\.') + domains = Rails.configuration.x.email_domains_denylist.gsub('.', '\.') regexp = Regexp.new("@(.+\\.)?(#{domains})", true) regexp.match?(email) diff --git a/app/workers/scheduler/auto_close_registrations_scheduler.rb b/app/workers/scheduler/auto_close_registrations_scheduler.rb index 6874502915..6226e6ea1f 100644 --- a/app/workers/scheduler/auto_close_registrations_scheduler.rb +++ b/app/workers/scheduler/auto_close_registrations_scheduler.rb @@ -11,7 +11,7 @@ class Scheduler::AutoCloseRegistrationsScheduler OPEN_REGISTRATIONS_MODERATOR_THRESHOLD = 1.week + UserTrackingConcern::SIGN_IN_UPDATE_FREQUENCY def perform - return if Rails.configuration.x.email_domains_whitelist.present? || ENV['DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS'] == 'true' + return if Rails.configuration.x.email_domains_allowlist.present? || ENV['DISABLE_AUTOMATIC_SWITCHING_TO_APPROVED_REGISTRATIONS'] == 'true' return unless Setting.registrations_mode == 'open' switch_to_approval_mode! unless active_moderators? diff --git a/config/initializers/blacklists.rb b/config/initializers/blacklists.rb deleted file mode 100644 index 0e3339c98e..0000000000 --- a/config/initializers/blacklists.rb +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -Rails.application.configure do - config.x.email_domains_blacklist = (ENV['EMAIL_DOMAIN_DENYLIST'] || ENV['EMAIL_DOMAIN_BLACKLIST']) || '' - config.x.email_domains_whitelist = (ENV['EMAIL_DOMAIN_ALLOWLIST'] || ENV['EMAIL_DOMAIN_WHITELIST']) || '' -end diff --git a/config/initializers/doorkeeper.rb b/config/initializers/doorkeeper.rb index 83100b1cf5..86fde3cacf 100644 --- a/config/initializers/doorkeeper.rb +++ b/config/initializers/doorkeeper.rb @@ -147,7 +147,7 @@ Doorkeeper.configure do force_ssl_in_redirect_uri false # Specify what redirect URI's you want to block during Application creation. - # Any redirect URI is whitelisted by default. + # Any redirect URI is allowed by default. # # You can use this option in order to forbid URI's with 'javascript' scheme # for example. diff --git a/config/initializers/email_domains_lists.rb b/config/initializers/email_domains_lists.rb new file mode 100644 index 0000000000..1361b1935a --- /dev/null +++ b/config/initializers/email_domains_lists.rb @@ -0,0 +1,6 @@ +# frozen_string_literal: true + +Rails.application.configure do + config.x.email_domains_denylist = ENV.fetch('EMAIL_DOMAIN_DENYLIST', nil) || ENV.fetch('EMAIL_DOMAIN_BLACKLIST', '') + config.x.email_domains_allowlist = ENV.fetch('EMAIL_DOMAIN_ALLOWLIST', nil) || ENV.fetch('EMAIL_DOMAIN_WHITELIST', '') +end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 4755500fc4..0f3e25576e 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -182,30 +182,30 @@ RSpec.describe User do end end - describe 'blacklist' do + describe 'email domains denylist integration' do around do |example| - old_blacklist = Rails.configuration.x.email_blacklist + original = Rails.configuration.x.email_domains_denylist - Rails.configuration.x.email_domains_blacklist = 'mvrht.com' + Rails.configuration.x.email_domains_denylist = 'mvrht.com' example.run - Rails.configuration.x.email_domains_blacklist = old_blacklist + Rails.configuration.x.email_domains_denylist = original end - it 'allows a non-blacklisted user to be created' do + it 'allows a user with an email domain that is not on the denylist to be created' do user = described_class.new(email: 'foo@example.com', account: account, password: password, agreement: true) expect(user).to be_valid end - it 'does not allow a blacklisted user to be created' do + it 'does not allow a user with an email domain on the deylist to be created' do user = described_class.new(email: 'foo@mvrht.com', account: account, password: password, agreement: true) expect(user).to_not be_valid end - it 'does not allow a subdomain blacklisted user to be created' do + it 'does not allow a user with an email where the subdomain is on the denylist to be created' do user = described_class.new(email: 'foo@mvrht.com.topdomain.tld', account: account, password: password, agreement: true) expect(user).to_not be_valid @@ -374,43 +374,43 @@ RSpec.describe User do end end - describe 'whitelist' do + describe 'allowlist integration' do around do |example| - old_whitelist = Rails.configuration.x.email_domains_whitelist + original = Rails.configuration.x.email_domains_allowlist - Rails.configuration.x.email_domains_whitelist = 'mastodon.space' + Rails.configuration.x.email_domains_allowlist = 'mastodon.space' example.run - Rails.configuration.x.email_domains_whitelist = old_whitelist + Rails.configuration.x.email_domains_allowlist = original end - it 'does not allow a user to be created unless they are whitelisted' do + it 'does not allow a user to be created when their email is not on the allowlist' do user = described_class.new(email: 'foo@example.com', account: account, password: password, agreement: true) expect(user).to_not be_valid end - it 'allows a user to be created if they are whitelisted' do + it 'allows a user to be created when their email is on the allowlist' do user = described_class.new(email: 'foo@mastodon.space', account: account, password: password, agreement: true) expect(user).to be_valid end - it 'does not allow a user with a whitelisted top domain as subdomain in their email address to be created' do + it 'does not allow a user with an email subdomain included on the top level domain allowlist to be created' do user = described_class.new(email: 'foo@mastodon.space.userdomain.com', account: account, password: password, agreement: true) expect(user).to_not be_valid end - context 'with a blacklisted subdomain' do + context 'with a subdomain on the denylist' do around do |example| - old_blacklist = Rails.configuration.x.email_blacklist + original = Rails.configuration.x.email_domains_denylist example.run - Rails.configuration.x.email_domains_blacklist = old_blacklist + Rails.configuration.x.email_domains_denylist = original end - it 'does not allow a user to be created with a specific blacklisted subdomain even if the top domain is whitelisted' do - Rails.configuration.x.email_domains_blacklist = 'blacklisted.mastodon.space' + it 'does not allow a user to be created with an email subdomain on the denylist even if the top domain is on the allowlist' do + Rails.configuration.x.email_domains_denylist = 'denylisted.mastodon.space' - user = described_class.new(email: 'foo@blacklisted.mastodon.space', account: account, password: password) + user = described_class.new(email: 'foo@denylisted.mastodon.space', account: account, password: password) expect(user).to_not be_valid end end diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb index bc26be8729..23a5f768ef 100644 --- a/spec/validators/email_mx_validator_spec.rb +++ b/spec/validators/email_mx_validator_spec.rb @@ -9,10 +9,10 @@ describe EmailMxValidator do context 'with an e-mail domain that is explicitly allowed' do around do |block| - tmp = Rails.configuration.x.email_domains_whitelist - Rails.configuration.x.email_domains_whitelist = 'example.com' + tmp = Rails.configuration.x.email_domains_allowlist + Rails.configuration.x.email_domains_allowlist = 'example.com' block.call - Rails.configuration.x.email_domains_whitelist = tmp + Rails.configuration.x.email_domains_allowlist = tmp end it 'does not add errors if there are no DNS records' do @@ -69,7 +69,7 @@ describe EmailMxValidator do expect(user.errors).to have_received(:add) end - it 'adds an error if the MX record is blacklisted' do + it 'adds an error if the MX record has an email domain block' do EmailDomainBlock.create!(domain: 'mail.example.com') configure_resolver( diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/user_email_validator_spec.rb similarity index 96% rename from spec/validators/blacklisted_email_validator_spec.rb rename to spec/validators/user_email_validator_spec.rb index 86760df2e7..92da04ea39 100644 --- a/spec/validators/blacklisted_email_validator_spec.rb +++ b/spec/validators/user_email_validator_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -RSpec.describe BlacklistedEmailValidator do +RSpec.describe UserEmailValidator do describe '#validate' do subject { described_class.new.validate(user) } From 862e793b455dc7f44b8ecd39a6ba32b9c4abd628 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 13 Aug 2024 07:42:08 +0000 Subject: [PATCH 04/40] New Crowdin Translations (automated) (#31394) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/cy.json | 11 +++++ app/javascript/mastodon/locales/eu.json | 36 +++++++++++++++ app/javascript/mastodon/locales/fo.json | 2 +- app/javascript/mastodon/locales/it.json | 4 ++ app/javascript/mastodon/locales/kab.json | 3 +- app/javascript/mastodon/locales/ko.json | 6 +++ app/javascript/mastodon/locales/la.json | 7 +-- app/javascript/mastodon/locales/lt.json | 16 +++++++ config/locales/da.yml | 2 +- config/locales/fo.yml | 9 ++++ config/locales/it.yml | 22 ++++----- config/locales/ko.yml | 8 ++++ config/locales/lt.yml | 10 ++++- config/locales/tr.yml | 57 ++++++++++++++++++++++++ 14 files changed, 175 insertions(+), 18 deletions(-) diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 9b9d341b14..33cad6a2ab 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -11,6 +11,7 @@ "about.not_available": "Nid yw'r wybodaeth hon ar gael ar y gweinydd hwn.", "about.powered_by": "Cyfrwng cymdeithasol datganoledig wedi ei yrru gan {mastodon}", "about.rules": "Rheolau'r gweinydd", + "account.account_note_header": "Nodyn personol", "account.add_or_remove_from_list": "Ychwanegu neu Ddileu o'r rhestrau", "account.badges.bot": "Bot", "account.badges.group": "Grŵp", @@ -299,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Defnyddiwch gategori sy'n bodoli eisoes neu crëu un newydd", "filter_modal.select_filter.title": "Hidlo'r postiad hwn", "filter_modal.title.status": "Hidlo postiad", + "filtered_notifications_banner.pending_requests": "Gan {count, plural, =0 {no one} one {un person} two {# berson} few {# pherson} other {# person}} efallai eich bod yn eu hadnabod", "filtered_notifications_banner.title": "Hysbysiadau wedi'u hidlo", "firehose.all": "Popeth", "firehose.local": "Gweinydd hwn", @@ -354,6 +356,7 @@ "home.pending_critical_update.link": "Gweld y diweddariadau", "home.pending_critical_update.title": "Mae diweddariad diogelwch hanfodol ar gael!", "home.show_announcements": "Dangos cyhoeddiadau", + "ignore_notifications_modal.ignore": "Anwybyddu hysbysiadau", "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.", "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.", "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.", @@ -479,6 +482,10 @@ "notification.favourite": "Hoffodd {name} eich postiad", "notification.follow": "Dilynodd {name} chi", "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn", + "notification.label.mention": "Crybwyll", + "notification.label.private_mention": "Crybwyll preifat", + "notification.label.reply": "Ateb", + "notification.mention": "Crybwyll", "notification.moderation-warning.learn_more": "Dysgu mwy", "notification.moderation_warning": "Rydych wedi derbyn rhybudd gan gymedrolwr", "notification.moderation_warning.action_delete_statuses": "Mae rhai o'ch postiadau wedi'u dileu.", @@ -500,6 +507,7 @@ "notification.update": "Golygodd {name} bostiad", "notification_requests.accept": "Derbyn", "notification_requests.dismiss": "Cau", + "notification_requests.exit_selection_mode": "Canslo", "notification_requests.maximize": "Mwyhau", "notification_requests.notifications_from": "Hysbysiadau gan {name}", "notification_requests.title": "Hysbysiadau wedi'u hidlo", @@ -539,6 +547,9 @@ "notifications.permission_denied": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd cais am ganiatâd porwr a wrthodwyd yn flaenorol", "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen", "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.", + "notifications.policy.accept": "Derbyn", + "notifications.policy.drop": "Anwybyddu", + "notifications.policy.filter": "Hidlo", "notifications.policy.filter_new_accounts.hint": "Crëwyd o fewn {days, lluosog, un {yr un diwrnod} arall {y # diwrnod}} diwethaf", "notifications.policy.filter_new_accounts_title": "Cyfrifon newydd", "notifications.policy.filter_not_followers_hint": "Gan gynnwys pobl sydd wedi bod yn eich dilyn am llai {days, plural, un {nag un diwrnod} arall {na # diwrnod}}", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index 34b62d949d..fdde338979 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -11,6 +11,7 @@ "about.not_available": "Zerbitzari honek ez du informazio hau eskuragarri jarri.", "about.powered_by": "{mastodon} erabiltzen duen sare sozial deszentralizatua", "about.rules": "Zerbitzariaren arauak", + "account.account_note_header": "Ohar pertsonala", "account.add_or_remove_from_list": "Gehitu edo kendu zerrendetatik", "account.badges.bot": "Bot-a", "account.badges.group": "Taldea", @@ -175,6 +176,7 @@ "confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?", "confirmations.edit.confirm": "Editatu", "confirmations.edit.message": "Orain editatzen baduzu, une honetan idazten ari zaren mezua gainidatziko da. Ziur jarraitu nahi duzula?", + "confirmations.edit.title": "Gainidatzi bidalketa?", "confirmations.logout.confirm": "Amaitu saioa", "confirmations.logout.message": "Ziur saioa amaitu nahi duzula?", "confirmations.logout.title": "Itxi saioa?", @@ -184,8 +186,10 @@ "confirmations.redraft.title": "Ezabatu eta berridatzi bidalketa?", "confirmations.reply.confirm": "Erantzun", "confirmations.reply.message": "Orain erantzuteak idazten ari zaren mezua gainidatziko du. Ziur jarraitu nahi duzula?", + "confirmations.reply.title": "Gainidatzi bidalketa?", "confirmations.unfollow.confirm": "Utzi jarraitzeari", "confirmations.unfollow.message": "Ziur {name} jarraitzeari utzi nahi diozula?", + "confirmations.unfollow.title": "Erabiltzailea jarraitzeari utzi?", "conversation.delete": "Ezabatu elkarrizketa", "conversation.mark_as_read": "Markatu irakurrita bezala", "conversation.open": "Ikusi elkarrizketa", @@ -348,6 +352,11 @@ "home.pending_critical_update.link": "Ikusi eguneraketak", "home.pending_critical_update.title": "Segurtasun eguneraketa kritikoa eskuragarri!", "home.show_announcements": "Erakutsi iragarpenak", + "ignore_notifications_modal.ignore": "Ezikusi jakinarazpenak", + "ignore_notifications_modal.limited_accounts_title": "Moderatutako kontuen jakinarazpenei ez ikusiarena egin?", + "ignore_notifications_modal.new_accounts_title": "Kontu berrien jakinarazpenei ez ikusiarena egin?", + "ignore_notifications_modal.not_followers_title": "Jarraitzen ez zaituzten pertsonen jakinarazpenei ez ikusiarena egin?", + "ignore_notifications_modal.not_following_title": "Jarraitzen ez dituzun pertsonen jakinarazpenei ez ikusiarena egin?", "interaction_modal.description.favourite": "Mastodon kontu batekin bidalketa hau gogoko egin dezakezu, egileari eskertzeko eta gerorako gordetzeko.", "interaction_modal.description.follow": "Mastodon kontu batekin {name} jarraitu dezakezu bere bidalketak zure hasierako denbora lerroan jasotzeko.", "interaction_modal.description.reblog": "Mastodon kontu batekin bidalketa hau bultzatu dezakezu, zure jarraitzaileekin partekatzeko.", @@ -466,6 +475,11 @@ "notification.favourite": "{name}(e)k zure bidalketa gogoko du", "notification.follow": "{name}(e)k jarraitzen dizu", "notification.follow_request": "{name}(e)k zu jarraitzeko eskaera egin du", + "notification.label.mention": "Aipamena", + "notification.label.private_mention": "Aipamen pribatua", + "notification.label.private_reply": "Erantzun pribatua", + "notification.label.reply": "Erantzuna", + "notification.mention": "Aipamena", "notification.moderation-warning.learn_more": "Informazio gehiago", "notification.moderation_warning": "Moderazio-abisu bat jaso duzu", "notification.moderation_warning.action_delete_statuses": "Argitalpen batzuk kendu dira.", @@ -476,6 +490,7 @@ "notification.moderation_warning.action_silence": "Kontua murriztu egin da.", "notification.moderation_warning.action_suspend": "Kontua itxi da.", "notification.own_poll": "Zure inkesta amaitu da", + "notification.poll": "Zuk erantzun duzun inkesta bat bukatu da", "notification.reblog": "{name}(e)k bultzada eman dio zure bidalketari", "notification.relationships_severance_event": "{name} erabiltzailearekin galdutako konexioak", "notification.relationships_severance_event.account_suspension": "{from} zerbitzariko administratzaile batek {target} bertan behera utzi du, hau da, ezin izango dituzu jaso hango eguneratzerik edo hangoekin elkarreragin.", @@ -483,9 +498,19 @@ "notification.status": "{name} erabiltzaileak bidalketa egin berri du", "notification.update": "{name} erabiltzaileak bidalketa bat editatu du", "notification_requests.accept": "Onartu", + "notification_requests.accept_all": "Onartu dena", + "notification_requests.confirm_accept_all.button": "Onartu dena", + "notification_requests.confirm_accept_all.title": "Onartu jakinarazpen-eskaerak?", + "notification_requests.confirm_dismiss_all.button": "Baztertu guztiak", + "notification_requests.confirm_dismiss_all.title": "Baztertu jakinarazpen-eskaerak?", "notification_requests.dismiss": "Baztertu", + "notification_requests.dismiss_all": "Baztertu guztiak", + "notification_requests.enter_selection_mode": "Hautatu", + "notification_requests.exit_selection_mode": "Utzi", + "notification_requests.maximize": "Maximizatu", "notification_requests.notifications_from": "{name} erabiltzailearen jakinarazpenak", "notification_requests.title": "Iragazitako jakinarazpenak", + "notification_requests.view": "Ikusi jakinarazpenak", "notifications.clear": "Garbitu jakinarazpenak", "notifications.clear_confirmation": "Ziur zure jakinarazpen guztiak behin betirako garbitu nahi dituzula?", "notifications.clear_title": "Garbitu jakinarazpenak?", @@ -522,6 +547,14 @@ "notifications.permission_denied": "Mahaigaineko jakinarazpenak ez daude erabilgarri, nabigatzaileari baimen eskaera ukatu zitzaiolako", "notifications.permission_denied_alert": "Mahaigaineko jakinarazpenak ezin dira gaitu, nabigatzaileari baimena ukatu zitzaiolako", "notifications.permission_required": "Mahaigaineko jakinarazpenak ez daude erabilgarri, horretarako behar den baimena ez delako eman.", + "notifications.policy.accept": "Onartu", + "notifications.policy.accept_hint": "Erakutsi jakinarazpenetan", + "notifications.policy.drop": "Ezikusi", + "notifications.policy.drop_hint": "Hutsera bidali, ez erakutsi inoiz gehiago", + "notifications.policy.filter": "Iragazi", + "notifications.policy.filter_hint": "Bidali filtratutako jakinarazpenen sarrerako ontzira", + "notifications.policy.filter_limited_accounts_hint": "Zerbitzariaren moderatzaileek mugatuta", + "notifications.policy.filter_limited_accounts_title": "Moderatutako kontuak", "notifications.policy.filter_new_accounts.hint": "Azken {days, plural, one {egunean} other {# egunetan}} sortua", "notifications.policy.filter_new_accounts_title": "Kontu berriak", "notifications.policy.filter_not_followers_hint": "{days, plural, one {Egun batez} other {# egunez}} baino gutxiago jarraitu zaituen jendea barne", @@ -656,6 +689,7 @@ "report.unfollow_explanation": "Kontu hau jarraitzen ari zara. Zure denbora-lerro nagusian bere bidalketak ez ikusteko, jarraitzeari utzi.", "report_notification.attached_statuses": "{count, plural, one {Bidalketa {count}} other {{count} bidalketa}} erantsita", "report_notification.categories.legal": "Legala", + "report_notification.categories.legal_sentence": "eduki ilegala", "report_notification.categories.other": "Bestelakoak", "report_notification.categories.other_sentence": "bestelakoak", "report_notification.categories.spam": "Spam", @@ -691,6 +725,7 @@ "server_banner.administered_by": "Administratzailea(k):", "server_banner.server_stats": "Zerbitzariaren estatistikak:", "sign_in_banner.create_account": "Sortu kontua", + "sign_in_banner.mastodon_is": "Mastodon gertatzen ari denari buruz egunean egoteko modurik onena da.", "sign_in_banner.sign_in": "Hasi saioa", "sign_in_banner.sso_redirect": "Hasi saioa edo izena eman", "status.admin_account": "Ireki @{name} erabiltzailearen moderazio interfazea", @@ -766,6 +801,7 @@ "timeline_hint.remote_resource_not_displayed": "Beste zerbitzarietako {resource} ez da bistaratzen.", "timeline_hint.resources.followers": "Jarraitzaileak", "timeline_hint.resources.follows": "Jarraitzen", + "timeline_hint.resources.replies": "Erantzun batzuk", "timeline_hint.resources.statuses": "Bidalketa zaharragoak", "trends.counter_by_accounts": "{count, plural, one {Pertsona {counter}} other {{counter} pertsona}} azken {days, plural, one {egunean} other {{days} egunetan}}", "trends.trending_now": "Joera orain", diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json index ec6b0e5357..36198e9e59 100644 --- a/app/javascript/mastodon/locales/fo.json +++ b/app/javascript/mastodon/locales/fo.json @@ -358,7 +358,7 @@ "home.show_announcements": "Vís kunngerðir", "ignore_notifications_modal.disclaimer": "Mastodon kann ikki upplýsa brúkarar um, at tú hevur latið sum um, at tú ikki hevur sæð teirra fráboðanir. At lata sum um, at tú ikki sær fráboðanir, forðar ikki, at boðini sjálv verða send.", "ignore_notifications_modal.filter_instead": "Filtrera ístaðin", - "ignore_notifications_modal.filter_to_act_users": "Tú kann framvegis góðtaka, avvísa og melda brúkarar", + "ignore_notifications_modal.filter_to_act_users": "Tú kanst framvegis góðtaka, avvísa og melda brúkarar", "ignore_notifications_modal.filter_to_avoid_confusion": "Filtrering ger tað lættari at sleppa undan møguligum misskiljingum", "ignore_notifications_modal.filter_to_review_separately": "Tú kanst kanna filtreraðar fráboðanir fyri seg", "ignore_notifications_modal.ignore": "Lat sum um tú ikki sær fráboðanir", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index c3cbbb9cf0..20f5f0aa08 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -358,7 +358,9 @@ "home.show_announcements": "Mostra annunci", "ignore_notifications_modal.disclaimer": "Mastodon non può informare gli utenti che hai ignorato le loro notifiche. Ignorare le notifiche non impedirà l'invio dei messaggi stessi.", "ignore_notifications_modal.filter_instead": "Filtra invece", + "ignore_notifications_modal.filter_to_act_users": "Potrai comunque accettare, rifiutare o segnalare gli utenti", "ignore_notifications_modal.filter_to_avoid_confusion": "Il filtraggio aiuta a evitare potenziali confusioni", + "ignore_notifications_modal.filter_to_review_separately": "Puoi rivedere le notifiche filtrate separatamente", "ignore_notifications_modal.ignore": "Ignora le notifiche", "ignore_notifications_modal.limited_accounts_title": "Ignorare le notifiche dagli account moderati?", "ignore_notifications_modal.new_accounts_title": "Ignorare le notifiche dai nuovi account?", @@ -575,6 +577,8 @@ "notifications.policy.accept": "Accetta", "notifications.policy.accept_hint": "Mostra nelle notifiche", "notifications.policy.drop": "Ignora", + "notifications.policy.drop_hint": "Scarta definitivamente, per non essere mai più visto", + "notifications.policy.filter": "Filtrare", "notifications.policy.filter_hint": "Invia alla casella in arrivo delle notifiche filtrate", "notifications.policy.filter_limited_accounts_hint": "Limitato dai moderatori del server", "notifications.policy.filter_limited_accounts_title": "Account moderati", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 8d4f128e9a..7b7ee85066 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -486,7 +486,7 @@ "privacy.private.short": "Imeḍfaren", "privacy.public.long": "Kra n win yellan deg Masṭudun neɣ berra-s", "privacy.public.short": "Azayez", - "privacy.unlisted.long": "Kra kan n ilguritmen", + "privacy.unlisted.long": "Kra kan yiwarzimen", "privacy_policy.last_updated": "Aleqqem aneggaru {date}", "privacy_policy.title": "Tasertit tabaḍnit", "recommended": "Yettuwelleh", @@ -629,6 +629,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} seg yiqeddacen-nniḍen ur d-ttwaskanent ara.", "timeline_hint.resources.followers": "Imeḍfaṛen", "timeline_hint.resources.follows": "T·Yeṭafaṛ", + "timeline_hint.resources.replies": "Kra tririyin", "timeline_hint.resources.statuses": "Tisuffaɣ tiqdimin", "trends.counter_by_accounts": "{count, plural, one {{counter} wemdan} other {{counter} medden}} deg {days, plural, one {ass} other {{days} wussan}} iɛeddan", "trends.trending_now": "Ayen mucaɛen tura", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 6cf8f67d3e..5954edc655 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -503,6 +503,8 @@ "notification.update": "{name} 님이 게시물을 수정했습니다", "notification_requests.accept": "수락", "notification_requests.dismiss": "지우기", + "notification_requests.enter_selection_mode": "선택", + "notification_requests.exit_selection_mode": "취소", "notification_requests.maximize": "최대화", "notification_requests.minimize_banner": "걸러진 알림 배너 최소화", "notification_requests.notifications_from": "{name} 님으로부터의 알림", @@ -543,6 +545,9 @@ "notifications.permission_denied": "권한이 거부되었기 때문에 데스크탑 알림을 활성화할 수 없음", "notifications.permission_denied_alert": "이전에 브라우저 권한이 거부되었기 때문에, 데스크탑 알림이 활성화 될 수 없습니다.", "notifications.permission_required": "필요한 권한이 승인되지 않아 데스크탑 알림을 사용할 수 없습니다.", + "notifications.policy.accept": "허용", + "notifications.policy.drop": "무시", + "notifications.policy.filter": "필터", "notifications.policy.filter_limited_accounts_hint": "서버 중재자에 의해 제한됨", "notifications.policy.filter_limited_accounts_title": "중재된 계정", "notifications.policy.filter_new_accounts.hint": "{days, plural, one {하루} other {#일}} 안에 만들어진", @@ -793,6 +798,7 @@ "timeline_hint.remote_resource_not_displayed": "다른 서버의 {resource} 표시는 할 수 없습니다.", "timeline_hint.resources.followers": "팔로워", "timeline_hint.resources.follows": "팔로우", + "timeline_hint.resources.replies": "몇몇 답글", "timeline_hint.resources.statuses": "이전 게시물", "trends.counter_by_accounts": "이전 {days}일 동안 {counter} 명의 사용자", "trends.trending_now": "지금 유행 중", diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json index 8a2512722e..4237f885a7 100644 --- a/app/javascript/mastodon/locales/la.json +++ b/app/javascript/mastodon/locales/la.json @@ -40,7 +40,7 @@ "compose_form.direct_message_warning_learn_more": "Discere plura", "compose_form.encryption_warning": "Posts on Mastodon are not end-to-end encrypted. Do not share any dangerous information over Mastodon.", "compose_form.hashtag_warning": "This post won't be listed under any hashtag as it is unlisted. Only public posts can be searched by hashtag.", - "compose_form.lock_disclaimer": "Tua ratio non est {clausa}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.", + "compose_form.lock_disclaimer": "Tua ratio non est {locked}. Quisquis te sequi potest ut visum accipiat nuntios tuos tantum pro sectatoribus.", "compose_form.lock_disclaimer.lock": "clausum", "compose_form.placeholder": "What is on your mind?", "compose_form.publish_form": "Barrire", @@ -128,6 +128,7 @@ "lightbox.next": "Secundum", "lists.account.add": "Adde ad tabellās", "lists.new.create": "Addere tabella", + "lists.subheading": "Tuae tabulae", "load_pending": "{count, plural, one {# novum item} other {# nova itema}}", "media_gallery.toggle_visible": "{number, plural, one {Cēla imaginem} other {Cēla imagines}}", "moved_to_account_banner.text": "Tua ratione {disabledAccount} interdum reposita est, quod ad {movedToAccount} migrāvisti.", @@ -146,7 +147,7 @@ "notification.moderation_warning.action_sensitive": "Tua nuntia hinc sensibiliter notabuntur.", "notification.moderation_warning.action_silence": "Ratio tua est limitata.", "notification.moderation_warning.action_suspend": "Ratio tua suspensus est.", - "notification.own_poll": "Suffragium tuum terminatum est.", + "notification.own_poll": "Suffragium tuum terminatum est", "notification.reblog": "{name} tuum nuntium amplificavit.", "notification.relationships_severance_event.account_suspension": "Admin ab {from} {target} suspendit, quod significat nōn iam posse tē novitātēs ab eīs accipere aut cum eīs interagere.", "notification.relationships_severance_event.domain_block": "Admin ab {from} {target} obsēcāvit, includēns {followersCount} ex tuīs sectātōribus et {followingCount, plural, one {# ratione} other {# rationibus}} quās sequeris.", @@ -161,7 +162,7 @@ "onboarding.actions.go_to_home": "Go to your home feed", "onboarding.follows.lead": "Tua domus feed est principalis via Mastodon experīrī. Quō plūrēs persōnas sequeris, eō actīvior et interessantior erit. Ad tē incipiendum, ecce quaedam suāsiones:", "onboarding.follows.title": "Popular on Mastodon", - "onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens...", + "onboarding.profile.display_name_hint": "Tuum nomen completum aut tuum nomen ludens…", "onboarding.start.lead": "Nunc pars es Mastodonis, singularis, socialis medii platformae decentralis ubi—non algorismus—tuam ipsius experientiam curas. Incipiāmus in nova hac socialis regione:", "onboarding.start.skip": "Want to skip right ahead?", "onboarding.start.title": "Perfecisti eam!", diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json index 45359a40a7..038ec8a7b3 100644 --- a/app/javascript/mastodon/locales/lt.json +++ b/app/javascript/mastodon/locales/lt.json @@ -358,7 +358,9 @@ "home.show_announcements": "Rodyti skelbimus", "ignore_notifications_modal.disclaimer": "„Mastodon“ negali informuoti naudotojų, kad ignoravai jų pranešimus. Ignoravus pranešimus, pačių pranešimų siuntimas nebus sustabdytas.", "ignore_notifications_modal.filter_instead": "Filtruoti vietoj to", + "ignore_notifications_modal.filter_to_act_users": "Vis dar galėsi priimti, atmesti arba pranešti naudotojus.", "ignore_notifications_modal.filter_to_avoid_confusion": "Filtravimas padeda išvengti galimos painiavos.", + "ignore_notifications_modal.filter_to_review_separately": "Filtruotus pranešimus gali peržiūrėti atskirai.", "ignore_notifications_modal.ignore": "Ignoruoti pranešimus", "ignore_notifications_modal.limited_accounts_title": "Ignoruoti pranešimus iš prižiūrėmų paskyrų?", "ignore_notifications_modal.new_accounts_title": "Ignoruoti pranešimus iš naujų paskyrų?", @@ -514,13 +516,26 @@ "notification.status": "{name} ką tik paskelbė", "notification.update": "{name} redagavo įrašą", "notification_requests.accept": "Priimti", + "notification_requests.accept_all": "Priimti visus", + "notification_requests.accept_multiple": "{count, plural, one {Priimti # prašymą} few {Priimti # prašymus} many {Priimti # prašymo} other {Priimti # prašymų}}", + "notification_requests.confirm_accept_all.button": "Priimti visus", + "notification_requests.confirm_accept_all.message": "Ketini priimti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Ar tikrai nori tęsti?", + "notification_requests.confirm_accept_all.title": "Priimti pranešimų prašymus?", + "notification_requests.confirm_dismiss_all.button": "Atmesti visus", + "notification_requests.confirm_dismiss_all.message": "Ketini atmesti {count, plural, one {# pranešimo prašymą} few {# pranešimų prašymus} many {# pranešimo prašymo} other {# pranešimų prašymų}}. Daugiau negalėsi lengvai pasiekti {count, plural, one {jo} few {jų} many {juos} other {jų}}. Ar tikrai nori tęsti?", + "notification_requests.confirm_dismiss_all.title": "Atmesti pranešimų prašymus?", "notification_requests.dismiss": "Atmesti", + "notification_requests.dismiss_all": "Atmesti visus", + "notification_requests.dismiss_multiple": "{count, plural, one {Atmesti # prašymą} few {Atmesti # prašymus} many {Atmesti # prašymo} other {Atmesti # prašymų}}", + "notification_requests.enter_selection_mode": "Pasirinkti", + "notification_requests.exit_selection_mode": "Atšaukti", "notification_requests.explainer_for_limited_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą.", "notification_requests.explainer_for_limited_remote_account": "Pranešimai iš šios paskyros buvo filtruojami, nes prižiūrėtojas (-a) apribojo paskyrą arba serverį.", "notification_requests.maximize": "Padidinti", "notification_requests.minimize_banner": "Mažinti filtruotų pranešimų reklamjuostę", "notification_requests.notifications_from": "Pranešimai iš {name}", "notification_requests.title": "Filtruojami pranešimai", + "notification_requests.view": "Peržiūrėti pranešimus", "notifications.clear": "Išvalyti pranešimus", "notifications.clear_confirmation": "Ar tikrai nori visam laikui išvalyti visus pranešimus?", "notifications.clear_title": "Valyti pranešimus?", @@ -810,6 +825,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} iš kitų serverių nerodomi.", "timeline_hint.resources.followers": "Sekėjai", "timeline_hint.resources.follows": "Seka", + "timeline_hint.resources.replies": "Kai kurie atsakymai", "timeline_hint.resources.statuses": "Senesni įrašai", "trends.counter_by_accounts": "{count, plural, one {{counter} žmogus} few {{counter} žmonės} many {{counter} žmogus} other {{counter} žmonių}} per {days, plural, one {dieną} few {{days} dienas} many {{days} dienas} other {{days} dienų}}", "trends.trending_now": "Tendencinga dabar", diff --git a/config/locales/da.yml b/config/locales/da.yml index 5b5d6cb184..416618ec99 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -686,7 +686,7 @@ da: moderation: Moderering special: Speciel delete: Slet - description_html: Med brugerrollerkan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder. + description_html: Med brugerroller kan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder. edit: Redigér rolle for '%{name} everyone: Standardtilladelser everyone_full_description_html: Dette er basisrollen med indvirkning på alle brugere, selv dem uden rolletildeling. Alle øvrige rolletilladelser nedarves herfra. diff --git a/config/locales/fo.yml b/config/locales/fo.yml index 3d7221deb7..7b1e11c264 100644 --- a/config/locales/fo.yml +++ b/config/locales/fo.yml @@ -31,6 +31,7 @@ fo: created_msg: Umsjónarviðmerking stovnað! destroyed_msg: Umsjónarviðmerking strikað! accounts: + add_email_domain_block: Forða t-post økisnavni approve: Vátta approved_msg: Góðkent tilmeldingarumbøn hjá %{username} are_you_sure: Ert tú vís/ur? @@ -129,6 +130,7 @@ fo: resubscribe: Tegna teg umaftur role: Leiklutur search: Leita + search_same_email_domain: Aðrir brúkarar við sama t-post-økisnavni search_same_ip: Aðrir brúkarar við somu IP security: Trygd security_measures: @@ -169,21 +171,26 @@ fo: approve_appeal: Góðkenn kæru approve_user: Góðkenn brúkara assigned_to_self_report: Tilluta melding + change_email_user: Broyt t-post hjá brúkara change_role_user: Broyt leiklut hjá brúkara confirm_user: Vátta brúkara create_account_warning: Stovna ávaring create_announcement: Stovna kunngerð + create_canonical_email_block: Stovna t-post-blokk create_custom_emoji: Stovna serligt kenslutekn create_domain_allow: Stovna navnaøkjaloyvi create_domain_block: Stovna navnaøkjablokering + create_email_domain_block: Stovna t-post-økisnavnablokk create_ip_block: Stovna IP reglu create_unavailable_domain: Stovna navnaøki, sum ikki er tøkt create_user_role: Stovna leiklut demote_user: Lækka brúkara í tign destroy_announcement: Strika kunngerð + destroy_canonical_email_block: Strika t-postablokk destroy_custom_emoji: Strika serligt kenslutekn destroy_domain_allow: Strika navnaøkjaloyvi destroy_domain_block: Strika navnaøkjablokering + destroy_email_domain_block: Strika t-posta-økisnavnablokk destroy_instance: Reinsa navnaøki destroy_ip_block: Strika IP reglu destroy_status: Strika post @@ -222,7 +229,9 @@ fo: approve_appeal_html: "%{name} góðkendi umsjónaráheitan frá %{target}" approve_user_html: "%{name} góðtók umsókn frá %{target}" assigned_to_self_report_html: "%{name} tillutaði frágreiðing %{target} til sín sjálvs" + change_email_user_html: "%{name} broytti t-postin hjá brúkara %{target}" change_role_user_html: "%{name} broytti leiklutin hjá %{target}" + confirm_user_html: "%{name} váttaði t-post hjá brúkara %{target}" create_account_warning_html: "%{name} sendi eina ávaring til %{target}" create_announcement_html: "%{name} stovnaði eina fráboðan %{target}" create_custom_emoji_html: "%{name} legði upp nýtt kenslutekn %{target}" diff --git a/config/locales/it.yml b/config/locales/it.yml index 52fca95c39..1664100101 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -907,16 +907,16 @@ it: trends: allow: Consenti approved: Approvato - confirm_allow: Si è sicuri di voler consentire i tag selezionati? - confirm_disallow: Si è sicuri di non voler consentire i tag selezionati? + confirm_allow: Sei sicuro di voler consentire i tag selezionati? + confirm_disallow: Sei sicuro di non voler consentire i tag selezionati? disallow: Non consentire links: allow: Consenti link allow_provider: Consenti editore - confirm_allow: Si è sicuri di voler consentire i link selezionati? - confirm_allow_provider: Si è sicuri di voler consentire i provider selezionati? - confirm_disallow: Si è sicuri di non voler consentire i link selezionati? - confirm_disallow_provider: Si è sicuri di non voler consentire i provider selezionati? + confirm_allow: Sei sicuro di voler consentire i link selezionati? + confirm_allow_provider: Sei sicuro di voler consentire i provider selezionati? + confirm_disallow: Sei sicuro di non voler consentire i link selezionati? + confirm_disallow_provider: Sei sicuro di non voler consentire i provider selezionati? description_html: Questi sono collegamenti che attualmente vengono molto condivisi dagli account di cui il server vede i post. Può aiutare i tuoi utenti a scoprire cosa sta succedendo nel mondo. Nessun link viene visualizzato pubblicamente finché non si approva chi lo pubblica. È anche possibile permettere o rifiutare i singoli collegamenti. disallow: Non consentire link disallow_provider: Non consentire editore @@ -940,10 +940,10 @@ it: statuses: allow: Consenti post allow_account: Consenti autore - confirm_allow: Si è sicuri di voler consentire gli stati selezionati? - confirm_allow_account: Si è sicuri di voler consentire gli account selezionati? - confirm_disallow: Si è sicuri di non voler consentire gli stati selezionati? - confirm_disallow_account: Si è sicuri di non voler consentire gli account selezionati? + confirm_allow: Sei sicuro di voler consentire gli stati selezionati? + confirm_allow_account: Sei sicuro di voler consentire gli account selezionati? + confirm_disallow: Sei sicuro di non voler consentire gli stati selezionati? + confirm_disallow_account: Sei sicuro di non voler consentire gli account selezionati? description_html: Questi sono post noti al tuo server che sono attualmente molto condivisi e preferiti. Può aiutare i tuoi utenti (nuovi e non) a trovare più persone da seguire. Nessun post viene visualizzato pubblicamente fino a quando si approva l'autore, e l'autore permette che il suo account sia suggerito ad altri. È anche possibile permettere o rifiutare singoli post. disallow: Non consentire post disallow_account: Non consentire autore @@ -976,7 +976,7 @@ it: used_by_over_week: one: Usato da una persona nell'ultima settimana other: Usato da %{count} persone nell'ultima settimana - title: Raccomandazioni e Tendenze + title: Raccomandazioni & Tendenze trending: Di tendenza warning_presets: add_new: Aggiungi nuovo diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 1cfcdcc0e6..03bfa646ba 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -414,8 +414,10 @@ ko: new: create: 도메인 추가하기 resolve: 도메인 검사 + title: 새 이메일 도메인 차단 not_permitted: 허용하지 않음 resolved_through_html: "%{domain}을 통해 리졸빙됨" + title: 차단된 이메일 도메인 export_domain_allows: new: title: 도메인 허용 목록 불러오기 @@ -1004,7 +1006,9 @@ ko: guide_link_text: 누구나 기여할 수 있습니다. sensitive_content: 민감한 내용 application_mailer: + notification_preferences: 이메일 설정 변경 salutation: "%{name} 님," + settings: '이메일 설정 변경: %{link}' unsubscribe: 구독 해제 view: '보기:' view_profile: 프로필 보기 @@ -1024,6 +1028,7 @@ ko: hint_html: 하나만 더! 당신이 사람인지 확인이 필요합니다 (스팸 계정을 거르기 위해서 필요한 과정입니다). 아래에 있는 CAPTCHA를 풀고 "계속"을 누르세요 title: 보안 체크 confirmations: + awaiting_review: 이메일 주소가 확인되었습니다! 이제 %{domain} 스태프가 가입을 검토할 것입니다. 계정이 승인되면 이메일을 받게 됩니다! awaiting_review_title: 가입 신청을 검토 중입니다 clicking_this_link: 이 링크를 클릭 login_link: 로그인 @@ -1051,6 +1056,7 @@ ko: or_log_in_with: 다른 방법으로 로그인 하려면 privacy_policy_agreement_html: 개인정보처리방침을 읽고 동의합니다 progress: + confirm: 이메일 확인 details: 세부사항 review: 심사 결과 rules: 규정을 수락합니다. @@ -1072,6 +1078,7 @@ ko: security: 보안 set_new_password: 새 암호 설정 setup: + email_below_hint_html: 스팸 폴더를 체크해보거나, 새로 요청할 수 있습니다. 이메일을 잘못 입력한 경우 수정할 수 있습니다. email_settings_hint_html: "%{email}을 인증하기 위해 우리가 보낸 링크를 누르세요. 여기서 기다리겠습니다." link_not_received: 링크를 못 받으셨나요? title: 수신함 확인하기 @@ -1351,6 +1358,7 @@ ko: authentication_methods: otp: 2단계 인증 앱 password: 암호 + sign_in_token: 이메일 보안 코드 webauthn: 보안 키 description_html: 확인되지 않은 활동이 보인다면, 암호를 바꾸거나 2단계 인증을 활성화 하는 것을 고려해 보세요. empty: 인증 이력이 존재하지 않습니다 diff --git a/config/locales/lt.yml b/config/locales/lt.yml index 44f7c7ddfc..dfcfcf1271 100644 --- a/config/locales/lt.yml +++ b/config/locales/lt.yml @@ -669,6 +669,7 @@ lt: title: Tendencingos saitažodžiai trendable: Gali pasirodyti tendencijose trending_rank: 'Tendencinga #%{rank}' + title: Rekomendacijos ir tendencijos trending: Tendencinga warning_presets: add_new: Pridėti naują @@ -887,7 +888,7 @@ lt: errors: too_large: Failas per didelis. modes: - merge: Sulieti + merge: Sujungti merge_long: Išsaugoti esančius įrašus ir pridėti naujus overwrite: Perrašyti overwrite_long: Pakeisti senus įrašus naujais @@ -931,6 +932,9 @@ lt: description_html: Jei pastebėjei neatpažįstamą veiklą, apsvarstyk galimybę pakeisti slaptažodį ir įjungti dvigubą tapatybės nustatymą. empty: Tapatybės nustatymas istorijos nėra title: Tapatybės nustatymo istorija + mail_subscriptions: + unsubscribe: + success_html: Daugiau negausi %{type} „Mastodon“ domene %{domain} į savo el. paštą %{email}. media_attachments: validations: images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką @@ -964,6 +968,8 @@ lt: subject: "%{name} pakėlė tavo įrašą" title: Naujas pakėlimas notifications: + administration_emails: Administratoriaus el. laiško pranešimai + email_events: Įvykiai, skirti el. laiško pranešimams email_events_hint: 'Pasirink įvykius, apie kuriuos nori gauti pranešimus:' number: human: @@ -1061,6 +1067,7 @@ lt: featured_tags: Rodomi saitažodžiai import: Importuoti migrate: Paskyros migracija + notifications: El. laiško pranešimai preferences: Nuostatos profile: Viešas profilis relationships: Sekimai ir sekėjai @@ -1205,6 +1212,7 @@ lt: invalid_otp_token: Netinkamas dviejų veiksnių kodas otp_lost_help_html: Jei praradai prieigą prie abiejų, gali susisiek su %{email} rate_limited: Per daug tapatybės nustatymo bandymų. Bandyk dar kartą vėliau. + seamless_external_login: Esi prisijungęs (-usi) per išorinę paslaugą, todėl slaptažodžio ir el. pašto nustatymai nepasiekiami. signed_in_as: 'Prisijungta kaip:' verification: extra_instructions_html: Patarimas: nuoroda tavo svetainėje gali būti nematoma. Svarbi dalis – tai, kad rel="me" neleidžia apsimesti interneto svetainėse, kuriose yra naudotojų sukurto turinio. Vietoj to gali naudoti net nuorodą puslapio antraštėje esančią žymę a, tačiau HTML turi būti pasiekiamas nevykdant JavaScript. diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 6782551f13..52d81df60c 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -31,6 +31,7 @@ tr: created_msg: Denetim notu başarıyla oluşturuldu! destroyed_msg: Denetim notu başarıyla yok edildi! accounts: + add_email_domain_block: E-posta alan adını engelle approve: Onayla approved_msg: "%{username} adlı kullanıcının kayıt başvurusu başarıyla onaylandı" are_you_sure: Emin misin? @@ -57,6 +58,7 @@ tr: demote: Düşür destroyed_msg: "%{username} adlı kullanıcının verilerinin silinmesi sıraya alındı" disable: Dondur + disable_sign_in_token_auth: E-posta token doğrulamayı devre dışı bırak disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat disabled: Kapalı display_name: Görünen isim @@ -65,6 +67,7 @@ tr: email: E-posta email_status: E-posta durumu enable: Etkinleştir + enable_sign_in_token_auth: E-posta token doğrulamayı etkinleştir enabled: Etkin enabled_msg: "%{username} hesabı başarıyla çözüldü" followers: Takipçi @@ -129,6 +132,7 @@ tr: resubscribe: Yeniden abone ol role: Rol search: Ara + search_same_email_domain: Aynı e-posta alan adına sahip diğer kullanıcılar search_same_ip: Aynı IP adresine sahip diğer kullanıcılar security: Güvenlik security_measures: @@ -169,21 +173,26 @@ tr: approve_appeal: İtirazı Onayla approve_user: Kullanıcıyı Onayla assigned_to_self_report: Raporu Ata + change_email_user: Kullanıcı E-postasını Değiştir change_role_user: Kullanıcının Rolünü Değiştir confirm_user: Kullanıcıyı Onayla create_account_warning: Uyarı Oluştur create_announcement: Duyuru Oluştur + create_canonical_email_block: E-posta Engeli Oluştur create_custom_emoji: Özel İfade Oluştur create_domain_allow: İzin Verilen Alan Adı Oluştur create_domain_block: Engellenen Alan Adı Oluştur + create_email_domain_block: E-Posta Alan Adı Engeli Oluştur create_ip_block: IP kuralı oluştur create_unavailable_domain: Mevcut Olmayan Alan Adı Oluştur create_user_role: Rol Oluştur demote_user: Kullanıcıyı Düşür destroy_announcement: Duyuru Sil + destroy_canonical_email_block: E-Posta Engelini Sil destroy_custom_emoji: Özel İfadeyi Sil destroy_domain_allow: İzin Verilen Alan Adını Sil destroy_domain_block: Engellenen Alan Adını Sil + destroy_email_domain_block: E-posta Alan Adı Engelini Sil destroy_instance: Alan adını temizle destroy_ip_block: IP kuralını sil destroy_status: Durumu Sil @@ -191,8 +200,10 @@ tr: destroy_user_role: Rolü Kaldır disable_2fa_user: 2AD Kapat disable_custom_emoji: Özel İfadeyi Devre Dışı Bırak + disable_sign_in_token_auth_user: Kullanıcı için E-posta Token Doğrulamayı Devre Dışı Bırak disable_user: Kullanıcıyı Devre Dışı Bırak enable_custom_emoji: Özel İfadeyi Etkinleştir + enable_sign_in_token_auth_user: Kullanıcı için E-posta Token Doğrulamayı Etkinleştir enable_user: Kullanıcıyı Etkinleştir memorialize_account: Hesabı Anıtlaştır promote_user: Kullanıcıyı Yükselt @@ -222,20 +233,26 @@ tr: approve_appeal_html: "%{name}, %{target} kullanıcısının yönetim kararına itirazını kabul etti" approve_user_html: "%{name}, %{target} konumundan kaydı onayladı" assigned_to_self_report_html: "%{name} kendilerine %{target} adlı raporu verdi" + change_email_user_html: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi" change_role_user_html: "%{name}, %{target} kişisinin rolünü değiştirdi" + confirm_user_html: "%{name} %{target} kullanıcısının e-posta adresini onayladı" create_account_warning_html: "%{name} %{target} 'a bir uyarı gönderdi" create_announcement_html: "%{name}, yeni %{target} duyurusunu oluşturdu" + create_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelledi" create_custom_emoji_html: "%{name} yeni %{target} ifadesini yükledi" create_domain_allow_html: "%{name}, %{target} alan adıyla birliğe izin verdi" create_domain_block_html: "%{name}, %{target} alan adını engelledi" + create_email_domain_block_html: "%{name}, %{target} e-posta alan adını engelledi" create_ip_block_html: "%{name}, %{target} IP adresi için kural oluşturdu" create_unavailable_domain_html: "%{name}, %{target} alan adına teslimatı durdurdu" create_user_role_html: "%{name}, %{target} rolünü oluşturdu" demote_user_html: "%{name}, %{target} kullanıcısını düşürdü" destroy_announcement_html: "%{name}, %{target} duyurusunu sildi" + destroy_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelini kaldırdı" destroy_custom_emoji_html: "%{name}, %{target} ifadesini sildi" destroy_domain_allow_html: "%{name}, %{target} alan adıyla birlik iznini kaldırdı" destroy_domain_block_html: "%{name}, %{target} alan adı engelini kaldırdı" + destroy_email_domain_block_html: "%{name}, %{target} e-posta alan adı engelini kaldırdı" destroy_instance_html: "%{name}, %{target} alan adını temizledi" destroy_ip_block_html: "%{name}, %{target} IP adresi kuralını sildi" destroy_status_html: "%{name}, %{target} kullanıcısının gönderisini kaldırdı" @@ -243,8 +260,10 @@ tr: destroy_user_role_html: "%{name}, %{target} rolünü sildi" disable_2fa_user_html: "%{name}, %{target} kullanıcısının iki aşamalı doğrulama gereksinimini kapattı" disable_custom_emoji_html: "%{name}, %{target} emojisini devre dışı bıraktı" + disable_sign_in_token_auth_user_html: "%{name}, %{target} için e-posta token doğrulamayı devre dışı bıraktı" disable_user_html: "%{name}, %{target} kullanıcısı için oturum açmayı devre dışı bıraktı" enable_custom_emoji_html: "%{name}, %{target} emojisini etkinleştirdi" + enable_sign_in_token_auth_user_html: "%{name}, %{target} için e-posta token doğrulamayı etkinleştirdi" enable_user_html: "%{name}, %{target} kullanıcısı için oturum açmayı etkinleştirdi" memorialize_account_html: "%{name}, %{target} kullanıcısının hesabını bir anıt sayfaya dönüştürdü" promote_user_html: "%{name}, %{target} kullanıcısını yükseltti" @@ -252,6 +271,7 @@ tr: reject_user_html: "%{name}, %{target} konumundan kaydı reddetti" remove_avatar_user_html: "%{name}, %{target} kullanıcısının avatarını kaldırdı" reopen_report_html: "%{name}, %{target} şikayetini yeniden açtı" + resend_user_html: "%{name}, %{target} için doğrulama e-postasını tekrar gönderdi" reset_password_user_html: "%{name}, %{target} kullanıcısının parolasını sıfırladı" resolve_report_html: "%{name}, %{target} şikayetini çözdü" sensitive_account_html: "%{name}, %{target} kullanıcısının medyasını hassas olarak işaretledi" @@ -412,6 +432,7 @@ tr: attempts_over_week: one: Son haftada %{count} deneme other: Son haftada %{count} kayıt denemesi + created_msg: E-posta alan adı kara listeye başarıyla eklendi delete: Sil dns: types: @@ -420,8 +441,12 @@ tr: new: create: Alan adı ekle resolve: Alan adı çözümleme + title: Yeni e-posta kara liste girişi + no_email_domain_block_selected: Seçim yapılmadığından hiç bir e-posta alan adı engeli değiştirilmedi not_permitted: İzin verilmedi + resolved_dns_records_hint_html: Alan adı aşağıdaki MX alan adlarına çözümleniyor, ancak hiç biri nihayetinde e-posta kabulünden sorum değil. Bir MX alan adını engellemek, görünen alan adı farklı osa bile aynı MX alan adını kullanan e-posta adreslerinden gelen kayıtları engelleyecektir. Başlıca e-posta sağlayıcıları engellememek için dikkatli olun. resolved_through_html: "%{domain} aracılığıyla çözümlendi" + title: Engelli e-posta alan adları export_domain_allows: new: title: Alan adı engellerini içe aktar @@ -575,6 +600,7 @@ tr: resolve_description_html: Bildirilen hesap için bir şey yapılmayacak, eylem kaydedilmeyecek ve bildirim kapatılacak. silence_description_html: Bu hesap sadece halihazırda takip edenler ve elle bakanlarca görünecek, böylece erişimi ciddi bir şekilde kısıtlanacak. Her zaman geri alınabilir. Bu hesaba yönelik tüm bildirimleri kapatır. suspend_description_html: Bu hesap ve tüm içeriği erişilmez olacak ve nihayetinde silinecek ve bu hesapla etkileşim mümkün olmayacaktır. 30 gün içinde geri alınabilir. Bu hesaba yönelik tüm bildiriimleri kapatır. + actions_description_html: Bu bildirimi çözmek için ne yapılması gerektiğine karar verin. Bildirilen hesap için ceza işlemi yaparsanız, İstenmeyen kategorisi seçilmemişse, onlara bir e-posta duyurusu gönderilecektir. actions_description_remote_html: Bu bildirimi çözmek için hangi eylemi yapmak istediğinize karar verin. Bu yalnızca sizin sunucunuzun bu uzak hesapla nasıl etkileşeğini ve içeriğiyle ne yapacağını etkiler. add_to_report: Bildirime daha fazlasını ekle already_suspended_badges: @@ -639,6 +665,7 @@ tr: delete_data_html: İlgili sürede askıdan alınması kaldırılmazsa @%{acct} hesabının profilini ve içeriğini şu andan itibaren 30 gün içinde sil preview_preamble_html: "@%{acct} aşağıdaki içerikle bir uyarı alacaktır:" record_strike_html: "@%{acct} hesabına karşı bir eylem kaydet, böylece bu hesabın gelecekteki ihlallerini üst makama taşımanıza yardımcı olacaktır" + send_email_html: "@%{acct} adlı kullanıcıya uyarı e-maili gönder" warning_placeholder: İsteğe bağlı ek nedenden denetim eylemi. target_origin: Şikayet edilen hesabın kökeni title: Şikayetler @@ -678,6 +705,7 @@ tr: manage_appeals: İtirazları Yönetme manage_appeals_description: Kullanıcıların denetleme eylemlerine itirazları gözden geçirmesine izin verir manage_blocks: Engelleri Yönetme + manage_blocks_description: Kullanıcıların e-posta sağlayıcıları ve IP adreslerini engellemesine izin verir manage_custom_emojis: Özel İfadeleri Yönetme manage_custom_emojis_description: Kullanıcıların sunucudaki özel ifadeleri yönetmesine izin verir manage_federation: Birleştirme Yönetme @@ -695,6 +723,7 @@ tr: manage_taxonomies: Kategorileri Yönetme manage_taxonomies_description: Kullanıcıların öne çıkan içeriği incelemesine ve etiket ayarlarını güncellemesine izin verir manage_user_access: Kullanıcı Erişimini Yönetme + manage_user_access_description: Kullanıcıların, diğer kullanıcıların iki aşamalı yetkilendirme, e-posta adreslerini değiştirme ve parolalarını sıfırlama eylemlerini etkisizleştirmesine izin verir manage_users: Kullanıcıları Yönetme manage_users_description: Kullanıcıların, diğer kullanıcıların ayrıntılarını görüntülemesine ve onlara karşı denetim eylemleri gerçekleştirmesine izin verir manage_webhooks: Webhookları Yönetme @@ -769,6 +798,7 @@ tr: destroyed_msg: Site yüklemesi başarıyla silindi! software_updates: critical_update: Kritik — lütfen hemen güncelleyin + description: Son düzeltme ve özelliklerden yararlanmak için Mastodon kurulumunu güncel tutmanızı öneriyoruz. Üstelik güvenlik sorunlarından kaçınmak için Mastodon'u zamanında güncellemek kritiktir. Bu nedenlerle Mastodon her 30 dakikada bir güncellemeleri denetler ve e-posta bildirim seçeneğinize göre size haber verir. documentation_link: Daha fazlası release_notes: Sürüm notları title: Mevcut güncellemeler @@ -1031,7 +1061,9 @@ tr: guide_link_text: Herkes katkıda bulunabilir. sensitive_content: Hassas içerik application_mailer: + notification_preferences: E-posta tercihlerini değiştir salutation: "%{name}," + settings: 'E-posta tercihlerini değiştir: %{link}' unsubscribe: Abonelikten çık view: 'Görüntüle:' view_profile: Profili görüntüle @@ -1051,6 +1083,7 @@ tr: hint_html: Sadece bir şey daha! Sizin bir insan olduğunuzu doğrulamamız gerekiyor (bu, spam'i dışarıda tutabilmemiz içindir!). Aşağıdaki CAPTCHA'yı çözün ve "Devam Et" düğmesini tıklayın. title: Güvenlik denetimi confirmations: + awaiting_review: E-posta adresiniz doğrulandı! %{domain} çalışanları şimdi kaydınızı inceliyorlar. Hesabınızı onayladıklarında bir e-posta alacaksınız! awaiting_review_title: Kaydınız inceleniyor clicking_this_link: bu bağlantıyı tıklamayı login_link: oturum aç @@ -1058,6 +1091,7 @@ tr: redirect_to_app_html: "%{app_name} uygulamasına yönlendirileceksiniz. Eğer yönlendirme olmazsa, %{clicking_this_link} veya uygulamaya geri dönmeyi deneyin." registration_complete: "%{domain} sunucusunda kaydınız şimdi tamamlandı!" welcome_title: Hoşgeldin %{name}! + wrong_email_hint: Eğer bu e-posta adresi doğru değilse, hesap ayarlarında değiştirebilirsiniz. delete_account: Hesabı sil delete_account_html: Hesabını silmek istersen, buradan devam edebilirsin. Onay istenir. description: @@ -1078,6 +1112,7 @@ tr: or_log_in_with: 'Veya şununla oturum açın:' privacy_policy_agreement_html: Gizlilik politikasını okudum ve kabul ettim progress: + confirm: E-postanızı onaylayın details: Ayrıntılarınız review: İncelememiz rules: Kabul kuralları @@ -1099,8 +1134,10 @@ tr: security: Güvenlik set_new_password: Yeni parola belirle setup: + email_below_hint_html: İstenmeyenler dizininize bakın veya başka bir onay bağlantısı isteyin. Eğer yanlışsa e-posta adresinizi de düzeltebilirsiniz. email_settings_hint_html: "%{email} adresinizi doğrulamak için size gönderdiğimiz bağlantıya tıklayın. Biz burada bekliyoruz." link_not_received: Bağlantı gelmedi mi? + new_confirmation_instructions_sent: Birkaç dakika içerisinde onaylama bağlantısını içeren yeni bir e-posta alacaksınız! title: Gelen kutunuzu kontrol edin sign_in: preamble_html: "%{domain} kimlik bilgilerinizi kullanarak giriş yapın. Eğer hesabınız başka bir sunucuda barındırılıyorsa, burada giriş yapamazsınız." @@ -1111,7 +1148,9 @@ tr: title: "%{domain} için kurulumunuzu yapalım." status: account_status: Hesap durumu + confirming: E-posta onaylamanın tamamlanması bekleniyor. functional: Hesabınız tamamen kullanıma hazır. + pending: Başvurunuz personelimiz tarafından gözden geçirilmeyi beklemektedir. Bu biraz zaman alabilir. Başvurunuz onaylanırsa bir e-posta alacaksınız. redirecting_to: Hesabınız aktif değil çünkü şu anda %{acct} adresine yönlendirilmektedir. self_destruct: "%{domain} kapandığı için, hesabınıza sadece kısıtlı erişiminiz olacak." view_strikes: Hesabınıza yönelik eski eylemleri görüntüleyin @@ -1154,6 +1193,9 @@ tr: before: 'Devam etmeden önce, lütfen bu notları dikkatlice okuyun:' caches: Diğer sunucular tarafından ön belleğe alınan içerik kalabilir data_removal: Gönderileriniz ve diğer verileriniz kalıcı olarak silinecektir + email_change_html: Hesabınızı silmeden e-posta adresinizi değiştirebilirsiniz + email_contact_html: Eğer hala ulaşmazsa, yardım almak için %{email} adresine e-posta gönderebilirsiniz + email_reconfirmation_html: Eğer onaylama e-postası ulaşmıyorsa, tekrar talep edebilirsiniz irreversible: Hesabınızı geri yükleyemeyecek ya da yeniden etkinleştiremeyeceksiniz more_details_html: Daha fazla ayrıntı için, gizlilik politikasına göz atın. username_available: Kullanıcı adınız tekrar kullanılabilir olacaktır @@ -1386,6 +1428,7 @@ tr: authentication_methods: otp: iki aşamalı kimlik doğrulama uygulaması password: parola + sign_in_token: e-posta güvenlik kodu webauthn: güvenlik anahtarları description_html: Eğer tanımadığınız bir faaliyet görüyorsanız, parolanızı değiştirmeyi ve iki aşamalı kimlik doğrulamayı etkinleştirmeyi düşünün. empty: Kimlik doğrulama geçmişi yok @@ -1396,6 +1439,16 @@ tr: unsubscribe: action: Evet, abonelikten çık complete: Abonelikten çık + confirmation_html: '%{domain} üzerindeki Mastodon için %{type} almayı durdurarak %{email} adresinize aboneliğinizi iptal etmek istediğinizden emin misiniz? e-posta bildirim ayarlarınızdan her zaman yeniden abone olabilirsiniz.' + emails: + notification_emails: + favourite: favori bildirim e-postaları + follow: takip bildirim e-postaları + follow_request: takip isteği bildirim e-postaları + mention: bahsetme bildirim e-postaları + reblog: öne çıkanlar bildirim e-postaları + resubscribe_html: Abonelikten yanlışlıkla çıktıysanız, e-posta bildirim ayarlarınızdan yeniden abone olabilirsiniz. + success_html: Artık %{email} adresindeki e-postanıza %{domain} üzerindeki Mastodon için %{type} almayacaksınız. title: Abonelikten çık media_attachments: validations: @@ -1476,6 +1529,8 @@ tr: update: subject: "%{name} bir gönderiyi düzenledi" notifications: + administration_emails: Yönetici e-posta bildirimleri + email_events: E-posta bildirimi etkinlikleri email_events_hint: 'Bildirim almak istediğiniz olayları seçin:' number: human: @@ -1634,6 +1689,7 @@ tr: import: İçe aktar import_and_export: İçe ve dışa aktar migrate: Hesap taşıma + notifications: E-posta bildirimleri preferences: Tercihler profile: Profil relationships: Takip edilenler ve takipçiler @@ -1880,6 +1936,7 @@ tr: invalid_otp_token: Geçersiz iki adımlı doğrulama kodu otp_lost_help_html: Her ikisine de erişiminizi kaybettiyseniz, %{email} ile irtibata geçebilirsiniz rate_limited: Çok fazla kimlik doğrulama denemesi. Daha sonra tekrar deneyin. + seamless_external_login: Harici bir servis aracılığıyla oturum açtınız, bu nedenle parola ve e-posta ayarları mevcut değildir. signed_in_as: 'Oturum açtı:' verification: extra_instructions_html: İpucu: Web sitenizdeki bağlantı görünmez olabilir. Önemli olan, kullanıcı tarafından oluşturulan içeriğe sahip web sitelerinde kimliğe bürünmeyi önleyen rel="me"'dir. Sayfa başlığında a yerine bir bağlantı etiketi de kullanabilirsiniz, ancak HTML'ye JavaScript çalıştırılmadan erişilebilir olmalıdır. From 2ed13071ef110f3d7d11938e760fde7cabf58388 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 13 Aug 2024 10:48:10 +0200 Subject: [PATCH 05/40] Fix what was intended as a comment being interpreted as strings (#31398) --- app/services/notify_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb index 788381fe6b..695f4153c6 100644 --- a/app/services/notify_service.rb +++ b/app/services/notify_service.rb @@ -5,6 +5,7 @@ class NotifyService < BaseService MAXIMUM_GROUP_SPAN_HOURS = 12 + # TODO: the severed_relationships type probably warrants email notifications NON_EMAIL_TYPES = %i( admin.report admin.sign_up @@ -12,7 +13,6 @@ class NotifyService < BaseService poll status moderation_warning - # TODO: this probably warrants an email notification severed_relationships ).freeze From 2b1670da48ea532300db79a82f0e6e4202f5b337 Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 13 Aug 2024 19:48:28 +0200 Subject: [PATCH 06/40] Fix modal border and padding inconsistencies (#31399) --- app/javascript/styles/mastodon/components.scss | 9 +++++---- app/javascript/styles/mastodon/variables.scss | 1 + 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 995568e147..6ef498c79b 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2837,7 +2837,7 @@ $ui-header-logo-wordmark-width: 99px; overflow: hidden; } -@media screen and (width >= 631px) { +@media screen and (width > $mobile-breakpoint) { .columns-area { padding: 0; } @@ -5736,7 +5736,7 @@ a.status-card { user-select: text; display: flex; - @media screen and (width <= 630px) { + @media screen and (width <= $mobile-breakpoint) { margin-top: auto; } } @@ -6095,7 +6095,7 @@ a.status-card { border-radius: 0 0 16px 16px; border-top: 0; - @media screen and (max-width: $no-gap-breakpoint) { + @media screen and (max-width: $mobile-breakpoint) { border-radius: 0; border-bottom: 0; padding-bottom: 32px; @@ -9097,8 +9097,9 @@ noscript { backdrop-filter: var(--background-filter); border: 1px solid var(--modal-border-color); padding: 24px; + box-sizing: border-box; - @media screen and (max-width: $no-gap-breakpoint) { + @media screen and (max-width: $mobile-breakpoint) { border-radius: 16px 16px 0 0; border-bottom: 0; padding-bottom: 32px; diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss index 2ba3dfb49d..92b4770fe3 100644 --- a/app/javascript/styles/mastodon/variables.scss +++ b/app/javascript/styles/mastodon/variables.scss @@ -88,6 +88,7 @@ $media-modal-media-max-width: 100%; $media-modal-media-max-height: 80%; $no-gap-breakpoint: 1175px; +$mobile-breakpoint: 630px; $font-sans-serif: 'mastodon-font-sans-serif' !default; $font-display: 'mastodon-font-display' !default; From c3e1d86d589d4f54df6d5b2752822aa7b577bf29 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Tue, 13 Aug 2024 19:49:23 +0200 Subject: [PATCH 07/40] Fix log out from user menu not working on Safari (#31402) --- app/controllers/auth/sessions_controller.rb | 11 ++++ .../confirmation_modals/log_out.tsx | 2 +- app/javascript/mastodon/utils/log_out.ts | 50 +++++++------------ spec/requests/log_out_spec.rb | 30 +++++++++++ spec/system/log_out_spec.rb | 43 ++++++++++++++++ 5 files changed, 102 insertions(+), 34 deletions(-) create mode 100644 spec/requests/log_out_spec.rb create mode 100644 spec/system/log_out_spec.rb diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index 6210e4dbf9..a2fed644fe 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -187,4 +187,15 @@ class Auth::SessionsController < Devise::SessionsController def second_factor_attempts_key(user) "2fa_auth_attempts:#{user.id}:#{Time.now.utc.hour}" end + + def respond_to_on_destroy + respond_to do |format| + format.json do + render json: { + redirect_to: after_sign_out_path_for(resource_name), + }, status: 200 + end + format.all { super } + end + end end diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx index 48d24182ed..ec61146877 100644 --- a/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx +++ b/app/javascript/mastodon/features/ui/components/confirmation_modals/log_out.tsx @@ -25,7 +25,7 @@ export const ConfirmLogOutModal: React.FC = ({ const intl = useIntl(); const onConfirm = useCallback(() => { - logOut(); + void logOut(); }, []); return ( diff --git a/app/javascript/mastodon/utils/log_out.ts b/app/javascript/mastodon/utils/log_out.ts index b08a61a6a2..f8e98f1be9 100644 --- a/app/javascript/mastodon/utils/log_out.ts +++ b/app/javascript/mastodon/utils/log_out.ts @@ -1,36 +1,20 @@ -export const logOut = () => { - const form = document.createElement('form'); +import api from 'mastodon/api'; - const methodInput = document.createElement('input'); - methodInput.setAttribute('name', '_method'); - methodInput.setAttribute('value', 'delete'); - methodInput.setAttribute('type', 'hidden'); - form.appendChild(methodInput); +export async function logOut() { + try { + const response = await api(false).delete<{ redirect_to?: string }>( + '/auth/sign_out', + { headers: { Accept: 'application/json' }, withCredentials: true }, + ); - const csrfToken = document.querySelector( - 'meta[name=csrf-token]', - ); - - const csrfParam = document.querySelector( - 'meta[name=csrf-param]', - ); - - if (csrfParam && csrfToken) { - const csrfInput = document.createElement('input'); - csrfInput.setAttribute('name', csrfParam.content); - csrfInput.setAttribute('value', csrfToken.content); - csrfInput.setAttribute('type', 'hidden'); - form.appendChild(csrfInput); + if (response.status === 200 && response.data.redirect_to) + window.location.href = response.data.redirect_to; + else + console.error( + 'Failed to log out, got an unexpected non-redirect response from the server', + response, + ); + } catch (error) { + console.error('Failed to log out, response was an error', error); } - - const submitButton = document.createElement('input'); - submitButton.setAttribute('type', 'submit'); - form.appendChild(submitButton); - - form.method = 'post'; - form.action = '/auth/sign_out'; - form.style.display = 'none'; - - document.body.appendChild(form); - submitButton.click(); -}; +} diff --git a/spec/requests/log_out_spec.rb b/spec/requests/log_out_spec.rb new file mode 100644 index 0000000000..62ca1ac547 --- /dev/null +++ b/spec/requests/log_out_spec.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe 'Log Out' do + include RoutingHelper + + describe 'DELETE /auth/sign_out' do + let(:user) { Fabricate(:user) } + + before do + sign_in user + end + + it 'Logs out the user and redirect' do + delete '/auth/sign_out' + + expect(response).to redirect_to('/auth/sign_in') + end + + it 'Logs out the user and return a page to redirect to with a JSON request' do + delete '/auth/sign_out', headers: { 'HTTP_ACCEPT' => 'application/json' } + + expect(response).to have_http_status(200) + expect(response.media_type).to eq 'application/json' + + expect(body_as_json[:redirect_to]).to eq '/auth/sign_in' + end + end +end diff --git a/spec/system/log_out_spec.rb b/spec/system/log_out_spec.rb new file mode 100644 index 0000000000..376f19712e --- /dev/null +++ b/spec/system/log_out_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe 'Log out' do + include ProfileStories + + before do + as_a_logged_in_user + end + + describe 'Logging out from the preferences' do + it 'logs the user out' do + visit settings_path + + within '.sidebar' do + click_on 'Logout' + end + + expect(page).to have_title(I18n.t('auth.login')) + expect(page).to have_current_path('/auth/sign_in') + end + end + + describe 'Logging out from the JS app', :js, :streaming do + it 'logs the user out' do + visit root_path + + within '.navigation-bar' do + click_on 'Menu' + end + + within '.dropdown-menu' do + click_on 'Logout' + end + + click_on 'Log out' + + expect(page).to have_title(I18n.t('auth.login')) + expect(page).to have_current_path('/auth/sign_in') + end + end +end From 12582d095ed7f4a40bb95d94560b9bc9928b813e Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 13 Aug 2024 21:32:27 +0200 Subject: [PATCH 08/40] Fix styling of notification browser permission denied banner (#31406) --- .../notifications/components/column_settings.jsx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.jsx b/app/javascript/mastodon/features/notifications/components/column_settings.jsx index d511c5365f..359f0fb126 100644 --- a/app/javascript/mastodon/features/notifications/components/column_settings.jsx +++ b/app/javascript/mastodon/features/notifications/components/column_settings.jsx @@ -45,14 +45,18 @@ class ColumnSettings extends PureComponent { return (
- {alertsEnabled && browserSupport && browserPermission === 'denied' && ( - - )} -
+ {alertsEnabled && browserSupport && browserPermission === 'denied' && ( +
+ + + +
+ )} + {alertsEnabled && browserSupport && browserPermission === 'default' && (
From 3a787d785c1bac120304e0e5a0c6353f93acd92c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Aug 2024 20:09:38 +0000 Subject: [PATCH 09/40] Update docker/build-push-action action to v6 (#31381) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build-container-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-container-image.yml b/.github/workflows/build-container-image.yml index dbb32af9bf..03a0f5bf37 100644 --- a/.github/workflows/build-container-image.yml +++ b/.github/workflows/build-container-image.yml @@ -85,7 +85,7 @@ jobs: tags: ${{ inputs.tags }} labels: ${{ inputs.labels }} - - uses: docker/build-push-action@v5 + - uses: docker/build-push-action@v6 with: context: . file: ${{ inputs.file_to_build }} From 2e85167188bcded572c5839bcabdf1c920fbd927 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Tue, 13 Aug 2024 17:37:26 -0400 Subject: [PATCH 10/40] Only run PR rebase needed check on non-fork repos (#31401) --- .github/workflows/rebase-needed.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml index 8784397a8f..f0fc8b0db7 100644 --- a/.github/workflows/rebase-needed.yml +++ b/.github/workflows/rebase-needed.yml @@ -10,6 +10,7 @@ permissions: jobs: label-rebase-needed: runs-on: ubuntu-latest + if: github.repository == 'mastodon/mastodon' concurrency: group: ${{ github.workflow }}-${{ github.ref }} From d7674392059f8a3939fdfa8d835b1d31f883c094 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Aug 2024 21:53:36 +0000 Subject: [PATCH 11/40] Update dependency axios to v1.7.4 [SECURITY] (#31409) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 08379101ba..1df8452b46 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5188,13 +5188,13 @@ __metadata: linkType: hard "axios@npm:^1.4.0": - version: 1.7.3 - resolution: "axios@npm:1.7.3" + version: 1.7.4 + resolution: "axios@npm:1.7.4" dependencies: follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/a18cbe559203efa05fb1fec2d1898e23bf6329bd2575784ee32aa11b5bbe1d54b9f472c49a261294125519cf62aa4fe5ef6e647bb7482eafc15bffe15ab314ce + checksum: 10c0/5ea1a93140ca1d49db25ef8e1bd8cfc59da6f9220159a944168860ad15a2743ea21c5df2967795acb15cbe81362f5b157fdebbea39d53117ca27658bab9f7f17 languageName: node linkType: hard From 7d4b602cb28675da01df6ae27faacff8d70c1711 Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Tue, 13 Aug 2024 16:54:03 -0500 Subject: [PATCH 12/40] Fix collapsable column borders in Safari and improve Safari scrollbars (#31389) --- .../styles/mastodon/components.scss | 15 +++++---- app/javascript/styles/mastodon/reset.scss | 31 ++++--------------- 2 files changed, 15 insertions(+), 31 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 6ef498c79b..b049635d16 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -4503,10 +4503,19 @@ a.status-card { opacity: 1; z-index: 1; position: relative; + border-left: 1px solid var(--background-border-color); + border-right: 1px solid var(--background-border-color); + border-bottom: 1px solid var(--background-border-color); + + @media screen and (max-width: $no-gap-breakpoint) { + border-left: 0; + border-right: 0; + } &.collapsed { max-height: 0; opacity: 0.5; + border-bottom: 0; } &.animating { @@ -4523,13 +4532,7 @@ a.status-card { } .column-header__collapsible-inner { - border: 1px solid var(--background-border-color); border-top: 0; - - @media screen and (max-width: $no-gap-breakpoint) { - border-left: 0; - border-right: 0; - } } .column-header__setting-btn { diff --git a/app/javascript/styles/mastodon/reset.scss b/app/javascript/styles/mastodon/reset.scss index f54ed5bc79..f8a4a08ced 100644 --- a/app/javascript/styles/mastodon/reset.scss +++ b/app/javascript/styles/mastodon/reset.scss @@ -54,40 +54,21 @@ table { } html { - scrollbar-color: lighten($ui-base-color, 4%) rgba($base-overlay-background, 0.1); + scrollbar-color: var(--background-border-color); } ::-webkit-scrollbar { - width: 12px; - height: 12px; + width: 4px; + height: 4px; } ::-webkit-scrollbar-thumb { - background: lighten($ui-base-color, 4%); - border: 0px none $base-border-color; - border-radius: 50px; -} - -::-webkit-scrollbar-thumb:hover { - background: lighten($ui-base-color, 6%); -} - -::-webkit-scrollbar-thumb:active { - background: lighten($ui-base-color, 4%); + background-color: $ui-highlight-color; + opacity: .25; } ::-webkit-scrollbar-track { - border: 0px none $base-border-color; - border-radius: 0; - background: rgba($base-overlay-background, 0.1); -} - -::-webkit-scrollbar-track:hover { - background: $ui-base-color; -} - -::-webkit-scrollbar-track:active { - background: $ui-base-color; + background-color: var(--background-border-color); } ::-webkit-scrollbar-corner { From 6bd7da72e9394eca4a8ee1addaad1a5118d50881 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Aug 2024 22:28:13 +0000 Subject: [PATCH 13/40] Update crowdin/github-action action to v2 (#31380) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/crowdin-download.yml | 2 +- .github/workflows/crowdin-upload.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/crowdin-download.yml b/.github/workflows/crowdin-download.yml index e9da7cb26f..0faa7e4939 100644 --- a/.github/workflows/crowdin-download.yml +++ b/.github/workflows/crowdin-download.yml @@ -26,7 +26,7 @@ jobs: # Download the translation files from Crowdin - name: crowdin action - uses: crowdin/github-action@v1 + uses: crowdin/github-action@v2 with: upload_sources: false upload_translations: false diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index c1da4088e9..b7a0a2b819 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@v4 - name: crowdin action - uses: crowdin/github-action@v1 + uses: crowdin/github-action@v2 with: upload_sources: true upload_translations: false From 0d85a79f19fef0c604e8fecfd5dfa9654adc4b95 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Wed, 14 Aug 2024 08:47:15 +0200 Subject: [PATCH 14/40] Fix notification screen crashing in rare cases where the status no longer exists (#31403) --- app/javascript/mastodon/actions/notification_groups.ts | 4 ++-- app/javascript/mastodon/api_types/notifications.ts | 4 ++-- .../notifications_v2/components/notification_mention.tsx | 6 +++++- .../components/notification_with_status.tsx | 4 +++- app/javascript/mastodon/models/notification_group.ts | 6 +++--- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/javascript/mastodon/actions/notification_groups.ts b/app/javascript/mastodon/actions/notification_groups.ts index ab62f8715c..fd6a48e9f3 100644 --- a/app/javascript/mastodon/actions/notification_groups.ts +++ b/app/javascript/mastodon/actions/notification_groups.ts @@ -47,7 +47,7 @@ function dispatchAssociatedRecords( fetchedAccounts.push(notification.moderation_warning.target_account); } - if ('status' in notification) { + if ('status' in notification && notification.status) { fetchedStatuses.push(notification.status); } }); @@ -119,7 +119,7 @@ export const processNewNotificationForGroups = createAppAsyncThunk( if ( (notification.type === 'mention' || notification.type === 'update') && - notification.status.filtered + notification.status?.filtered ) { const filters = notification.status.filtered.filter((result) => result.filter.context.includes('notifications'), diff --git a/app/javascript/mastodon/api_types/notifications.ts b/app/javascript/mastodon/api_types/notifications.ts index ed73ceda6b..4ab9a4c90a 100644 --- a/app/javascript/mastodon/api_types/notifications.ts +++ b/app/javascript/mastodon/api_types/notifications.ts @@ -60,12 +60,12 @@ export interface BaseNotificationGroupJSON { interface NotificationGroupWithStatusJSON extends BaseNotificationGroupJSON { type: NotificationWithStatusType; - status_id: string; + status_id: string | null; } interface NotificationWithStatusJSON extends BaseNotificationJSON { type: NotificationWithStatusType; - status: ApiStatusJSON; + status: ApiStatusJSON | null; } interface ReportNotificationGroupJSON extends BaseNotificationGroupJSON { diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx index b7cd995118..1929446bb2 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_mention.tsx @@ -37,7 +37,11 @@ export const NotificationMention: React.FC<{ unread: boolean; }> = ({ notification, unread }) => { const [isDirect, isReply] = useAppSelector((state) => { - const status = state.statuses.get(notification.statusId) as Status; + const status = state.statuses.get(notification.statusId) as + | Status + | undefined; + + if (!status) return [false, false] as const; return [ status.get('visibility') === 'direct', diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx index c7dd9f6be2..5d5cb98185 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_with_status.tsx @@ -23,7 +23,7 @@ export const NotificationWithStatus: React.FC<{ icon: IconProp; iconId: string; accountIds: string[]; - statusId: string; + statusId: string | undefined; count: number; labelRenderer: LabelRenderer; unread: boolean; @@ -76,6 +76,8 @@ export const NotificationWithStatus: React.FC<{ [dispatch, statusId], ); + if (!statusId) return null; + return (
extends BaseNotificationGroup { type: Type; - statusId: string; + statusId: string | undefined; } interface BaseNotification @@ -126,7 +126,7 @@ export function createNotificationGroupFromJSON( case 'update': { const { status_id: statusId, ...groupWithoutStatus } = group; return { - statusId, + statusId: statusId ?? undefined, sampleAccountIds, ...groupWithoutStatus, }; @@ -183,7 +183,7 @@ export function createNotificationGroupFromNotificationJSON( case 'mention': case 'poll': case 'update': - return { ...group, statusId: notification.status.id }; + return { ...group, statusId: notification.status?.id }; case 'admin.report': return { ...group, report: createReportFromJSON(notification.report) }; case 'severed_relationships': From feaf2f24377f01eef1929becc8270a979149bc40 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Wed, 14 Aug 2024 08:53:12 +0200 Subject: [PATCH 15/40] Update renovate config to fix #31379 (#31408) --- .github/renovate.json5 | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 2cf7bec8ee..968c77cac2 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -87,6 +87,7 @@ }, { // Update devDependencies every week, with one grouped PR + matchManagers: ['npm'], matchDepTypes: 'devDependencies', matchUpdateTypes: ['patch', 'minor'], groupName: 'devDependencies (non-major)', @@ -95,8 +96,7 @@ { // Group all eslint-related packages with `eslint` in the same PR matchManagers: ['npm'], - matchPackageNames: ['eslint'], - matchPackagePrefixes: ['eslint-', '@typescript-eslint/'], + matchPackageNames: ['eslint', 'eslint-*', '@typescript-eslint/*'], matchUpdateTypes: ['patch', 'minor'], groupName: 'eslint (non-major)', }, @@ -112,7 +112,8 @@ }, { // Update @types/* packages every week, with one grouped PR - matchPackagePrefixes: '@types/', + matchManagers: ['npm'], + matchPackageNames: '@types/*', matchUpdateTypes: ['patch', 'minor'], groupName: 'DefinitelyTyped types (non-major)', extends: ['schedule:weekly'], @@ -129,23 +130,21 @@ { // Group all RuboCop packages with `rubocop` in the same PR matchManagers: ['bundler'], - matchPackageNames: ['rubocop'], - matchPackagePrefixes: ['rubocop-'], + matchPackageNames: ['rubocop', 'rubocop-*'], matchUpdateTypes: ['patch', 'minor'], groupName: 'RuboCop (non-major)', }, { // Group all RSpec packages with `rspec` in the same PR matchManagers: ['bundler'], - matchPackageNames: ['rspec'], - matchPackagePrefixes: ['rspec-'], + matchPackageNames: ['rspec', 'rspec-*'], matchUpdateTypes: ['patch', 'minor'], groupName: 'RSpec (non-major)', }, { // Group all opentelemetry-ruby packages in the same PR matchManagers: ['bundler'], - matchPackagePrefixes: ['opentelemetry-'], + matchPackageNames: ['opentelemetry-*'], matchUpdateTypes: ['patch', 'minor'], groupName: 'opentelemetry-ruby (non-major)', }, From 202f43ccc658237bff7c8a072510e4bc20c980d1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 09:04:01 +0200 Subject: [PATCH 16/40] New Crowdin Translations (automated) (#31411) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/bg.json | 8 ++ app/javascript/mastodon/locales/cy.json | 42 ++++++++++- app/javascript/mastodon/locales/eu.json | 5 ++ app/javascript/mastodon/locales/fr-CA.json | 1 + app/javascript/mastodon/locales/fr.json | 1 + app/javascript/mastodon/locales/he.json | 37 +++++++++- app/javascript/mastodon/locales/hu.json | 2 +- app/javascript/mastodon/locales/nn.json | 2 + config/locales/cy.yml | 86 +++++++++++++++++++--- config/locales/he.yml | 13 +++- config/locales/nn.yml | 5 ++ config/locales/simple_form.he.yml | 4 +- 12 files changed, 185 insertions(+), 21 deletions(-) diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index f60e330d1c..6687c64a6d 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -482,6 +482,8 @@ "notification.favourite": "{name} направи любима публикацията ви", "notification.follow": "{name} ви последва", "notification.follow_request": "{name} поиска да ви последва", + "notification.label.mention": "Споменаване", + "notification.mention": "Споменаване", "notification.moderation-warning.learn_more": "Научете повече", "notification.moderation_warning": "Получихте предупреждение за модериране", "notification.moderation_warning.action_delete_statuses": "Някои от публикациите ви са премахнати.", @@ -503,12 +505,15 @@ "notification.update": "{name} промени публикация", "notification_requests.accept": "Приемам", "notification_requests.dismiss": "Отхвърлям", + "notification_requests.enter_selection_mode": "Изберете", + "notification_requests.exit_selection_mode": "Отказ", "notification_requests.explainer_for_limited_account": "Известията от този акаунт са прецедени, защото акаунтът е ограничен от модератор.", "notification_requests.explainer_for_limited_remote_account": "Известията от този акаунт са прецедени, защото акаунтът или сървърът му е ограничен от модератор.", "notification_requests.maximize": "Максимизиране", "notification_requests.minimize_banner": "Минимизиране на банера за филтрирани известия", "notification_requests.notifications_from": "Известия от {name}", "notification_requests.title": "Филтрирани известия", + "notification_requests.view": "Преглед на известията", "notifications.clear": "Изчистване на известията", "notifications.clear_confirmation": "Наистина ли искате да изчистите завинаги всичките си известия?", "notifications.clear_title": "Изчиствате ли известията?", @@ -545,6 +550,9 @@ "notifications.permission_denied": "Известията на работния плот не са налични поради предварително отказана заявка за разрешение в браузъра", "notifications.permission_denied_alert": "Известията на работния плот не могат да се включат, тъй като разрешението на браузъра е отказвано преди", "notifications.permission_required": "Известията на работния плот ги няма, щото няма дадено нужното позволение.", + "notifications.policy.accept": "Приемам", + "notifications.policy.accept_hint": "Показване в известия", + "notifications.policy.filter": "Филтър", "notifications.policy.filter_limited_accounts_hint": "Ограничено от модераторите на сървъра", "notifications.policy.filter_limited_accounts_title": "Модерирани акаунти", "notifications.policy.filter_new_accounts.hint": "Сътворено през {days, plural, one {последния ден} other {последните # дена}}", diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json index 33cad6a2ab..8b86b49e06 100644 --- a/app/javascript/mastodon/locales/cy.json +++ b/app/javascript/mastodon/locales/cy.json @@ -356,7 +356,17 @@ "home.pending_critical_update.link": "Gweld y diweddariadau", "home.pending_critical_update.title": "Mae diweddariad diogelwch hanfodol ar gael!", "home.show_announcements": "Dangos cyhoeddiadau", + "ignore_notifications_modal.disclaimer": "Ni all Mastodon hysbysu defnyddwyr eich bod wedi anwybyddu eu hysbysiadau. Ni fydd anwybyddu hysbysiadau yn atal y negeseuon eu hunain rhag cael eu hanfon.", + "ignore_notifications_modal.filter_instead": "Hidlo yn lle hynny", + "ignore_notifications_modal.filter_to_act_users": "Byddwch yn dal i allu derbyn, gwrthod neu adrodd ar ddefnyddwyr", + "ignore_notifications_modal.filter_to_avoid_confusion": "Mae hidlo yn helpu i osgoi dryswch posibl", + "ignore_notifications_modal.filter_to_review_separately": "Gallwch adolygu hysbysiadau wedi'u hidlo ar wahân", "ignore_notifications_modal.ignore": "Anwybyddu hysbysiadau", + "ignore_notifications_modal.limited_accounts_title": "Anwybyddu hysbysiadau o gyfrifon wedi'u cymedroli?", + "ignore_notifications_modal.new_accounts_title": "Anwybyddu hysbysiadau o gyfrifon newydd?", + "ignore_notifications_modal.not_followers_title": "Anwybyddu hysbysiadau gan bobl nad ydynt yn eich dilyn?", + "ignore_notifications_modal.not_following_title": "Anwybyddu hysbysiadau gan bobl nad ydych yn eu dilyn?", + "ignore_notifications_modal.private_mentions_title": "Anwybyddu hysbysiadau o Grybwylliadau Preifat digymell?", "interaction_modal.description.favourite": "Gyda chyfrif ar Mastodon, gallwch chi hoffi'r postiad hwn er mwyn roi gwybod i'r awdur eich bod chi'n ei werthfawrogi ac yn ei gadw ar gyfer nes ymlaen.", "interaction_modal.description.follow": "Gyda chyfrif ar Mastodon, gallwch ddilyn {name} i dderbyn eu postiadau yn eich llif cartref.", "interaction_modal.description.reblog": "Gyda chyfrif ar Mastodon, gallwch hybu'r postiad hwn i'w rannu â'ch dilynwyr.", @@ -475,6 +485,7 @@ "navigation_bar.security": "Diogelwch", "not_signed_in_indicator.not_signed_in": "Rhaid i chi fewngofnodi i weld yr adnodd hwn.", "notification.admin.report": "Adroddwyd ar {name} {target}", + "notification.admin.report_account": "{name} reported {count, plural, one {un post} other {# postsiadau}} from {target} for {category}", "notification.admin.report_account_other": "Adroddodd {name} {count, plural, one {un post} two {# bost} few {# phost} other {# post}} gan {target}", "notification.admin.report_statuses": "Adroddodd {name} {target} ar gyfer {category}", "notification.admin.report_statuses_other": "Adroddodd {name} {target}", @@ -484,6 +495,7 @@ "notification.follow_request": "Mae {name} wedi gwneud cais i'ch dilyn", "notification.label.mention": "Crybwyll", "notification.label.private_mention": "Crybwyll preifat", + "notification.label.private_reply": "Ateb preifat", "notification.label.reply": "Ateb", "notification.mention": "Crybwyll", "notification.moderation-warning.learn_more": "Dysgu mwy", @@ -506,11 +518,26 @@ "notification.status": "{name} newydd ei bostio", "notification.update": "Golygodd {name} bostiad", "notification_requests.accept": "Derbyn", + "notification_requests.accept_all": "Derbyn y cyfan", + "notification_requests.accept_multiple": "{count, plural, one {Derbyn # cais} other {Derbyn # cais}}", + "notification_requests.confirm_accept_all.button": "Derbyn y cyfan", + "notification_requests.confirm_accept_all.message": "Rydych ar fin derbyn {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. A ydych yn siŵr eich bod am fwrw ymlaen?", + "notification_requests.confirm_accept_all.title": "Derbyn ceisiadau hysbysu?", + "notification_requests.confirm_dismiss_all.button": "Diystyru pob un", + "notification_requests.confirm_dismiss_all.message": "Rydych ar fin diystyru {count, plural, one {un cais hysbysu} other {# cais hysbysiad}}. Ni fyddwch yn gallu cyrchu {count, plural, one {it} other {them}} yn hawdd eto. A ydych yn siŵr eich bod am fwrw ymlaen?", + "notification_requests.confirm_dismiss_all.title": "Diystyru ceisiadau hysbysu?", "notification_requests.dismiss": "Cau", + "notification_requests.dismiss_all": "Diystyru pob un", + "notification_requests.dismiss_multiple": "{count, plural, one {Diystyru # cais} other {Diystyru # cais}}", + "notification_requests.enter_selection_mode": "Dewis", "notification_requests.exit_selection_mode": "Canslo", + "notification_requests.explainer_for_limited_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif wedi'i gyfyngu gan gymedrolwr.", + "notification_requests.explainer_for_limited_remote_account": "Mae hysbysiadau o'r cyfrif hwn wedi'u hidlo oherwydd bod y cyfrif neu ei weinydd wedi'i gyfyngu gan gymedrolwr.", "notification_requests.maximize": "Mwyhau", + "notification_requests.minimize_banner": "Lleihau baner hysbysiadau wedi'u hidlo", "notification_requests.notifications_from": "Hysbysiadau gan {name}", "notification_requests.title": "Hysbysiadau wedi'u hidlo", + "notification_requests.view": "Gweld hysbysiadau", "notifications.clear": "Clirio hysbysiadau", "notifications.clear_confirmation": "Ydych chi'n siŵr eich bod am glirio'ch holl hysbysiadau am byth?", "notifications.clear_title": "Clirio hysbysiadau?", @@ -548,8 +575,13 @@ "notifications.permission_denied_alert": "Nid oes modd galluogi hysbysiadau bwrdd gwaith, gan fod caniatâd porwr wedi'i wrthod o'r blaen", "notifications.permission_required": "Nid oes hysbysiadau bwrdd gwaith ar gael oherwydd na roddwyd y caniatâd gofynnol.", "notifications.policy.accept": "Derbyn", + "notifications.policy.accept_hint": "Dangos mewn hysbysiadau", "notifications.policy.drop": "Anwybyddu", + "notifications.policy.drop_hint": "Anfon i'r gwagle, byth i'w gweld eto", "notifications.policy.filter": "Hidlo", + "notifications.policy.filter_hint": "Anfon i flwch derbyn hysbysiadau wedi'u hidlo", + "notifications.policy.filter_limited_accounts_hint": "Cyfyngedig gan gymedrolwyr gweinydd", + "notifications.policy.filter_limited_accounts_title": "Cyfrifon wedi'u cymedroli", "notifications.policy.filter_new_accounts.hint": "Crëwyd o fewn {days, lluosog, un {yr un diwrnod} arall {y # diwrnod}} diwethaf", "notifications.policy.filter_new_accounts_title": "Cyfrifon newydd", "notifications.policy.filter_not_followers_hint": "Gan gynnwys pobl sydd wedi bod yn eich dilyn am llai {days, plural, un {nag un diwrnod} arall {na # diwrnod}}", @@ -558,19 +590,20 @@ "notifications.policy.filter_not_following_title": "Pobl nad ydych yn eu dilyn", "notifications.policy.filter_private_mentions_hint": "Wedi'i hidlo oni bai ei fod mewn ymateb i'ch crybwylliad eich hun neu os ydych yn dilyn yr anfonwr", "notifications.policy.filter_private_mentions_title": "Crybwylliadau preifat digymell", + "notifications.policy.title": "Rheoli hysbysiadau gan…", "notifications_permission_banner.enable": "Galluogi hysbysiadau bwrdd gwaith", "notifications_permission_banner.how_to_control": "I dderbyn hysbysiadau pan nad yw Mastodon ar agor, galluogwch hysbysiadau bwrdd gwaith. Gallwch reoli'n union pa fathau o ryngweithiadau sy'n cynhyrchu hysbysiadau bwrdd gwaith trwy'r botwm {icon} uchod unwaith y byddan nhw wedi'u galluogi.", "notifications_permission_banner.title": "Peidiwch â cholli dim", - "onboarding.action.back": "Ewch â fi yn ôl", - "onboarding.actions.back": "Ewch â fi yn ôl", - "onboarding.actions.go_to_explore": "Gweld beth yw'r tuedd", + "onboarding.action.back": "Ewch â fi nôl", + "onboarding.actions.back": "Ewch â fi nôl", + "onboarding.actions.go_to_explore": "Gweld beth sy'n trendio", "onboarding.actions.go_to_home": "Ewch i'ch ffrwd gartref", "onboarding.compose.template": "Helo, #Mastodon!", "onboarding.follows.empty": "Yn anffodus, nid oes modd dangos unrhyw ganlyniadau ar hyn o bryd. Gallwch geisio defnyddio chwilio neu bori'r dudalen archwilio i ddod o hyd i bobl i'w dilyn, neu ceisio eto yn nes ymlaen.", "onboarding.follows.lead": "Rydych chi'n curadu eich ffrwd gartref eich hun. Po fwyaf o bobl y byddwch chi'n eu dilyn, y mwyaf egnïol a diddorol fydd hi. Gall y proffiliau hyn fod yn fan cychwyn da - gallwch chi bob amser eu dad-ddilyn yn nes ymlaen:", "onboarding.follows.title": "Yn boblogaidd ar Mastodon", "onboarding.profile.discoverable": "Gwnewch fy mhroffil yn un y gellir ei ddarganfod", - "onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a thueddiadau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.", + "onboarding.profile.discoverable_hint": "Pan fyddwch yn optio i mewn i ddarganfodadwyedd ar Mastodon, gall eich postiadau ymddangos mewn canlyniadau chwilio a threndiau, ac efallai y bydd eich proffil yn cael ei awgrymu i bobl sydd â diddordebau tebyg i chi.", "onboarding.profile.display_name": "Enw dangos", "onboarding.profile.display_name_hint": "Eich enw llawn neu'ch enw hwyl…", "onboarding.profile.lead": "Gallwch chi bob amser gwblhau hyn yn ddiweddarach yn y gosodiadau, lle mae hyd yn oed mwy o ddewisiadau cyfaddasu ar gael.", @@ -798,6 +831,7 @@ "timeline_hint.remote_resource_not_displayed": "Nid yw {resource} o weinyddion eraill yn cael ei ddangos.", "timeline_hint.resources.followers": "Dilynwyr", "timeline_hint.resources.follows": "Yn dilyn", + "timeline_hint.resources.replies": "Rhai atebion", "timeline_hint.resources.statuses": "Postiadau hŷn", "trends.counter_by_accounts": "{count, plural, zero {neb} one {{counter} person} two {{counter} berson} few {{counter} pherson} other {{counter} o bobl}} yn y {days, plural, one {diwrnod diwethaf} two {ddeuddydd diwethaf} other {{days} diwrnod diwethaf}}", "trends.trending_now": "Yn trendio nawr", diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json index fdde338979..b2a8fe0da3 100644 --- a/app/javascript/mastodon/locales/eu.json +++ b/app/javascript/mastodon/locales/eu.json @@ -35,7 +35,9 @@ "account.follow_back": "Jarraitu bueltan", "account.followers": "Jarraitzaileak", "account.followers.empty": "Ez du inork erabiltzaile hau jarraitzen oraindik.", + "account.followers_counter": "{count, plural, one {{counter} jarraitzaile} other {{counter} jarraitzaile}}", "account.following": "Jarraitzen", + "account.following_counter": "{count, plural, one {{counter} jarraitzen} other {{counter} jarraitzen}}", "account.follows.empty": "Erabiltzaile honek ez du inor jarraitzen oraindik.", "account.go_to_profile": "Joan profilera", "account.hide_reblogs": "Ezkutatu @{name} erabiltzailearen bultzadak", @@ -61,6 +63,7 @@ "account.requested_follow": "{name}-(e)k zu jarraitzeko eskaera egin du", "account.share": "Partekatu @{name} erabiltzailearen profila", "account.show_reblogs": "Erakutsi @{name} erabiltzailearen bultzadak", + "account.statuses_counter": "{count, plural, one {{counter} bidalketa} other {{counter} bidalketa}}", "account.unblock": "Desblokeatu @{name}", "account.unblock_domain": "Berriz erakutsi {domain}", "account.unblock_short": "Desblokeatu", @@ -352,6 +355,7 @@ "home.pending_critical_update.link": "Ikusi eguneraketak", "home.pending_critical_update.title": "Segurtasun eguneraketa kritikoa eskuragarri!", "home.show_announcements": "Erakutsi iragarpenak", + "ignore_notifications_modal.filter_instead": "Iragazi ez ikusiarena egin beharrean", "ignore_notifications_modal.ignore": "Ezikusi jakinarazpenak", "ignore_notifications_modal.limited_accounts_title": "Moderatutako kontuen jakinarazpenei ez ikusiarena egin?", "ignore_notifications_modal.new_accounts_title": "Kontu berrien jakinarazpenei ez ikusiarena egin?", @@ -563,6 +567,7 @@ "notifications.policy.filter_not_following_title": "Jarraitzen ez duzun jendea", "notifications.policy.filter_private_mentions_hint": "Iragazita, baldin eta zure aipamenaren erantzuna bada edo bidaltzailea jarraitzen baduzu", "notifications.policy.filter_private_mentions_title": "Eskatu gabeko aipamen pribatuak", + "notifications.policy.title": "Kudeatu honen jakinarazpaenak…", "notifications_permission_banner.enable": "Gaitu mahaigaineko jakinarazpenak", "notifications_permission_banner.how_to_control": "Mastodon irekita ez dagoenean jakinarazpenak jasotzeko, gaitu mahaigaineko jakinarazpenak. Mahaigaineko jakinarazpenak ze elkarrekintzak eragingo dituzten zehazki kontrolatu dezakezu goiko {icon} botoia erabiliz, gaituta daudenean.", "notifications_permission_banner.title": "Ez galdu ezer inoiz", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index b0609e3e82..1ad821ee07 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -11,6 +11,7 @@ "about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.", "about.powered_by": "Réseau social décentralisé propulsé par {mastodon}", "about.rules": "Règles du serveur", + "account.account_note_header": "Note personnelle", "account.add_or_remove_from_list": "Ajouter ou enlever de listes", "account.badges.bot": "Bot", "account.badges.group": "Groupe", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 9c983dd0e2..141a856e31 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -11,6 +11,7 @@ "about.not_available": "Cette information n'a pas été rendue disponible sur ce serveur.", "about.powered_by": "Réseau social décentralisé propulsé par {mastodon}", "about.rules": "Règles du serveur", + "account.account_note_header": "Note personnelle", "account.add_or_remove_from_list": "Ajouter ou retirer des listes", "account.badges.bot": "Bot", "account.badges.group": "Groupe", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 4af37bce85..e90826ded1 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -284,15 +284,15 @@ "explore.trending_links": "חדשות", "explore.trending_statuses": "הודעות", "explore.trending_tags": "תגיות", - "filter_modal.added.context_mismatch_explanation": "קטגוריית הסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.", + "filter_modal.added.context_mismatch_explanation": "קטגוריית המסנן הזאת לא חלה על ההקשר שממנו הגעת אל ההודעה הזו. אם תרצה/י שההודעה תסונן גם בהקשר זה, תצטרך/י לערוך את הסנן.", "filter_modal.added.context_mismatch_title": "אין התאמה להקשר!", "filter_modal.added.expired_explanation": "פג תוקפה של קטגוריית הסינון הזו, יש צורך לשנות את תאריך התפוגה כדי שהסינון יוחל.", - "filter_modal.added.expired_title": "פג תוקף הפילטר!", + "filter_modal.added.expired_title": "פג תוקף המסנן!", "filter_modal.added.review_and_configure": "לסקירה והתאמה מתקדמת של קטגוריית הסינון הזו, לכו ל{settings_link}.", "filter_modal.added.review_and_configure_title": "אפשרויות סינון", "filter_modal.added.settings_link": "דף הגדרות", "filter_modal.added.short_explanation": "ההודעה הזו הוספה לקטגוריית הסינון הזו: {title}.", - "filter_modal.added.title": "הפילטר הוסף!", + "filter_modal.added.title": "המסנן הוסף!", "filter_modal.select_filter.context_mismatch": "לא חל בהקשר זה", "filter_modal.select_filter.expired": "פג התוקף", "filter_modal.select_filter.prompt_new": "קטגוריה חדשה {name}", @@ -356,8 +356,16 @@ "home.pending_critical_update.link": "צפיה בעדכונים", "home.pending_critical_update.title": "יצא עדכון אבטחה חשוב!", "home.show_announcements": "הצג הכרזות", + "ignore_notifications_modal.filter_instead": "לסנן במקום", "ignore_notifications_modal.filter_to_act_users": "עדיין ביכולתך לקבל, לדחות ולדווח על משתמשים אחרים", + "ignore_notifications_modal.filter_to_avoid_confusion": "סינון מסייע למניעת בלבולים אפשריים", "ignore_notifications_modal.filter_to_review_separately": "ניתן לסקור התראות מפולטרות בנפרד", + "ignore_notifications_modal.ignore": "להתעלם מהתראות", + "ignore_notifications_modal.limited_accounts_title": "להתעלם מהתראות מחשבונות תחת פיקוח?", + "ignore_notifications_modal.new_accounts_title": "להתעלם מהתראות מחשבונות חדשים?", + "ignore_notifications_modal.not_followers_title": "להתעלם מהתראות מא.נשים שאינם עוקביך?", + "ignore_notifications_modal.not_following_title": "להתעלם מהתראות מא.נשים שאינם נעקביך?", + "ignore_notifications_modal.private_mentions_title": "להתעלם מהתראות מאיזכורים פרטיים?", "interaction_modal.description.favourite": "עם חשבון מסטודון, ניתן לחבב את ההודעה כדי לומר למחבר/ת שהערכת את תוכנו או כדי לשמור אותו לקריאה בעתיד.", "interaction_modal.description.follow": "עם חשבון מסטודון, ניתן לעקוב אחרי {name} כדי לקבל את הפוסטים שלו/ה בפיד הבית.", "interaction_modal.description.reblog": "עם חשבון מסטודון, ניתן להדהד את החצרוץ ולשתף עם עוקבים.", @@ -509,13 +517,26 @@ "notification.status": "{name} הרגע פרסמו", "notification.update": "{name} ערכו הודעה", "notification_requests.accept": "לקבל", + "notification_requests.accept_all": "לקבל את כל הבקשות", + "notification_requests.accept_multiple": "{count, plural,one {לאשר קבלת בקשה}other {לאשר קבלת # בקשות}}", + "notification_requests.confirm_accept_all.button": "לקבל את כל הבקשות", + "notification_requests.confirm_accept_all.message": "אתם עומדים לאשר {count, plural,one {בקשת התראה אחת}other {# בקשות התראה}}. להמשיך?", + "notification_requests.confirm_accept_all.title": "לקבל בקשות התראה?", + "notification_requests.confirm_dismiss_all.button": "דחיית כל הבקשות", + "notification_requests.confirm_dismiss_all.message": "אתם עומדים לדחות {count, plural,one {בקשת התראה}other {# בקשות התראה}}. לא תוכלו למצוא {count, plural,one {אותה}other {אותן}} בקלות אחר כך. להמשיך?", + "notification_requests.confirm_dismiss_all.title": "לדחות בקשות התראה?", "notification_requests.dismiss": "לבטל", + "notification_requests.dismiss_all": "דחיית כל הבקשות", + "notification_requests.dismiss_multiple": "{count, plural,one {לדחות בקשה}other {לדחות # בקשות}} לקבלת התראה", + "notification_requests.enter_selection_mode": "בחירה", + "notification_requests.exit_selection_mode": "ביטול", "notification_requests.explainer_for_limited_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה הוגבל על ידי מנהלי הדיונים.", "notification_requests.explainer_for_limited_remote_account": "התראות על פעולות חשבון זה סוננו כי חשבון זה או השרת שלו הוגבלו על ידי מנהלי הדיונים.", "notification_requests.maximize": "הגדלה למקסימום", - "notification_requests.minimize_banner": "להקטין את כותרת ההודעות המפולטרות", + "notification_requests.minimize_banner": "להקטין את כותרת ההודעות המסוננות", "notification_requests.notifications_from": "התראות מ־ {name}", "notification_requests.title": "התראות מסוננות", + "notification_requests.view": "הצגת ההתראות", "notifications.clear": "הסרת התראות", "notifications.clear_confirmation": "להסיר את כל ההתראות לצמיתות ? ", "notifications.clear_title": "לנקות התראות?", @@ -552,6 +573,12 @@ "notifications.permission_denied": "לא ניתן להציג התראות מסך כיוון כיוון שהרשאות דפדפן נשללו בעבר", "notifications.permission_denied_alert": "לא ניתן לאפשר נוטיפיקציות מסך שכן הדפדפן סורב הרשאה בעבר", "notifications.permission_required": "לא ניתן לאפשר נוטיפיקציות מסך כיוון שהרשאה דרושה לא ניתנה.", + "notifications.policy.accept": "אישור", + "notifications.policy.accept_hint": "הצגה בהתראות", + "notifications.policy.drop": "להתעלם", + "notifications.policy.drop_hint": "שליחה אל מצולות הנשיה, ולא יוודעו אודותיה לעולם", + "notifications.policy.filter": "מסנן", + "notifications.policy.filter_hint": "שליחה לתיבה נכנסת מסוננת", "notifications.policy.filter_limited_accounts_hint": "הוגבל על ידי מנהלי הדיונים", "notifications.policy.filter_limited_accounts_title": "חשבון מוגבל", "notifications.policy.filter_new_accounts.hint": "נוצר {days, plural,one {ביום האחרון} two {ביומיים האחרונים} other {ב־# הימים האחרונים}}", @@ -562,6 +589,7 @@ "notifications.policy.filter_not_following_title": "משתמשים שאינך עוקב(ת) אחריהםן", "notifications.policy.filter_private_mentions_hint": "מסונן אלא אם זו תשובה למינשון שלך או אם אתם עוקבים אחרי העונה", "notifications.policy.filter_private_mentions_title": "מינשונים בפרטי שלא הוזמנו", + "notifications.policy.title": "ניהול התראות מ…", "notifications_permission_banner.enable": "לאפשר נוטיפיקציות מסך", "notifications_permission_banner.how_to_control": "כדי לקבל התראות גם כאשר מסטודון סגור יש לאפשר התראות מסך. ניתן לשלוט בדיוק איזה סוג של אינטראקציות יביא להתראות מסך דרך כפתור ה- {icon} מרגע שהן מאופשרות.", "notifications_permission_banner.title": "לעולם אל תחמיץ דבר", @@ -802,6 +830,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} משרתים אחרים לא מוצגים.", "timeline_hint.resources.followers": "עוקבים", "timeline_hint.resources.follows": "נעקבים", + "timeline_hint.resources.replies": "מספר תשובות", "timeline_hint.resources.statuses": "הודעות ישנות יותר", "trends.counter_by_accounts": "{count, plural, one {אדם אחד} other {{count} א.נשים}} {days, plural, one {מאז אתמול} two {ביומיים האחרונים} other {במשך {days} הימים האחרונים}}", "trends.trending_now": "נושאים חמים", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index 08a79e50c2..eb618c4666 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -358,7 +358,7 @@ "home.show_announcements": "Közlemények megjelenítése", "ignore_notifications_modal.disclaimer": "A Mastodon nem tudja értesíteni azokat a felhasználókat, akiknek figyelmen kívül hagytad az értesítéseit. Az értesítések figyelmen kívül hagyása nem állítja meg az üzenetek elküldését.", "ignore_notifications_modal.filter_instead": "Inkább szűrés", - "ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudja fogadni, el tudja utasítani vagy jelenteni tudja a felhasználókat", + "ignore_notifications_modal.filter_to_act_users": "Továbbra is el tudod fogadni, el tudod utasítani vagy tudod jelenteni a felhasználókat", "ignore_notifications_modal.filter_to_avoid_confusion": "A szűrés segít elkerülni a lehetséges félreértéseket", "ignore_notifications_modal.filter_to_review_separately": "A szűrt értesítések külön tekinthetők át", "ignore_notifications_modal.ignore": "Értesítések figyelmen kívül hagyása", diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json index 23d7a28772..1b0e490e60 100644 --- a/app/javascript/mastodon/locales/nn.json +++ b/app/javascript/mastodon/locales/nn.json @@ -358,7 +358,9 @@ "home.show_announcements": "Vis kunngjeringar", "ignore_notifications_modal.disclaimer": "Mastodon kan ikkje informera brukarane at du overser varsla deira. Å oversjå varsel vil ikkje hindra at meldingane blir sende.", "ignore_notifications_modal.filter_instead": "Filtrer i staden", + "ignore_notifications_modal.filter_to_act_users": "Du kan framleis godta, avvisa eller rapportera brukarar", "ignore_notifications_modal.filter_to_avoid_confusion": "Å filtrera hjelper til å unngå mogleg forvirring", + "ignore_notifications_modal.filter_to_review_separately": "Du kan gå gjennom filtrerte varslingar for seg", "ignore_notifications_modal.ignore": "Oversjå varsel", "ignore_notifications_modal.limited_accounts_title": "Oversjå varsel frå modererte kontoar?", "ignore_notifications_modal.new_accounts_title": "Oversjå varsel frå nye kontoar?", diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 2fa312969d..73b35bf8bf 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -21,7 +21,7 @@ cy: link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date} nothing_here: Does dim byd yma! pin_errors: - following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod. + following: Rhaid i chi fod yn dilyn y person rydych am ei gymeradwyo, yn barod posts: few: Postiadau many: Postiadau @@ -39,6 +39,7 @@ cy: created_msg: Crëwyd nodyn cymedroli'n llwyddiannus! destroyed_msg: Dinistriwyd nodyn cymedroli yn llwyddiannus! accounts: + add_email_domain_block: Rhwystro parth e-bost approve: Cymeradwyo approved_msg: Wedi llwyddo i gymeradwyo cais cofrestru %{username} are_you_sure: Ydych chi'n siŵr? @@ -65,6 +66,7 @@ cy: demote: Diraddio destroyed_msg: Mae data %{username} bellach mewn ciw i gael ei ddileu yn fuan disable: Rhewi + disable_sign_in_token_auth: Analluogi dilysu tocyn e-bost disable_two_factor_authentication: Diffodd 2FA disabled: Wedi rhewi display_name: Enw sgrin @@ -73,6 +75,7 @@ cy: email: E-bost email_status: Statws e-bost enable: Dadrewi + enable_sign_in_token_auth: Galluogi dilysu tocyn e-bost enabled: Wedi ei alluogi enabled_msg: Wedi dadrewi cyfrif %{username} yn llwyddiannus followers: Dilynwyr @@ -141,6 +144,7 @@ cy: resubscribe: Ail danysgrifio role: Rôl search: Chwilio + search_same_email_domain: Defnyddwyr eraill gyda'r un parth e-bost search_same_ip: Defnyddwyr eraill gyda'r un IP security: Diogelwch security_measures: @@ -181,21 +185,26 @@ cy: approve_appeal: Cymeradwyo'r Apêl approve_user: Cymeradwyo Defnyddiwr assigned_to_self_report: Neilltuo Adroddiad + change_email_user: Newid E-bost ar gyfer Defnyddiwr change_role_user: Newid Rôl y Defnyddiwr confirm_user: Cadarnhau Defnyddiwr create_account_warning: Creu Rhybydd create_announcement: Creu Cyhoeddiad + create_canonical_email_block: Creu Rhwystr E-bost create_custom_emoji: Creu Emoji Addasedig create_domain_allow: Creu Caniatáu Parth create_domain_block: Creu Gwaharddiad Parth + create_email_domain_block: Creu Rhwystr Parth E-bost create_ip_block: Creu rheol IP create_unavailable_domain: Creu Parth Ddim ar Gael create_user_role: Creu Rôl demote_user: Diraddio Defnyddiwr destroy_announcement: Dileu Cyhoeddiad + destroy_canonical_email_block: Dileu Rhwystr E-bost destroy_custom_emoji: Dileu Emoji Addasedig destroy_domain_allow: Dileu Caniatáu Parth destroy_domain_block: Dileu Gwaharddiad Parth + destroy_email_domain_block: Dileu Rhwystr Parth E-bost destroy_instance: Clirio Parth destroy_ip_block: Dileu rheol IP destroy_status: Dileu Postiad @@ -203,8 +212,10 @@ cy: destroy_user_role: Dileu Rôl disable_2fa_user: Diffodd 2FA disable_custom_emoji: Analluogi Emoji Addasedig + disable_sign_in_token_auth_user: Analluogi Dilysu Tocyn E-bost Defnyddiwr disable_user: Analluogi Defnyddiwr enable_custom_emoji: Galluogi Emoji Addasedig + enable_sign_in_token_auth_user: Galluogi Dilysu Tocyn E-bost Defnyddiwr enable_user: Galluogi Defnyddiwr memorialize_account: Cofadeilio Cyfrif promote_user: Dyrchafu Defnyddiwr @@ -234,20 +245,26 @@ cy: approve_appeal_html: Mae %{name} wedi cymeradwyo penderfyniad cymedroli gan %{target} approve_user_html: Mae %{name} wedi cymeradwyo cofrestru gan %{target} assigned_to_self_report_html: Mae %{name} wedi neilltuo adroddiad %{target} iddyn nhw eu hunain + change_email_user_html: Mae %{name} wedi newid cyfeiriad e-bost defnyddiwr %{target} change_role_user_html: Mae %{name} wedi newid rôl %{target} + confirm_user_html: Mae %{name} wedi cadarnhau cyfeiriad e-bost defnyddiwr %{target} create_account_warning_html: Mae %{name} wedi anfon rhybudd at %{target} create_announcement_html: Mae %{name} wedi creu cyhoeddiad newydd %{target} + create_canonical_email_block_html: Mae %{name} wedi'i rwystro e-bost gyda'r hash %{target} create_custom_emoji_html: Mae %{name} wedi llwytho emoji newydd %{target} create_domain_allow_html: Mae %{name} wedi caniatáu ffedereiddio â pharth %{target} create_domain_block_html: Mae %{name} wedi rhwystro parth %{target} + create_email_domain_block_html: Mae %{name} wedi rhwystro parth e-bost %{target} create_ip_block_html: Mae %{name} wedi creu rheol ar gyfer IP %{target} create_unavailable_domain_html: Mae %{name} wedi stopio danfon i barth %{target} create_user_role_html: Mae %{name} wedi creu rôl %{target} demote_user_html: Mae %{name} wedi israddio defnyddiwr %{target} destroy_announcement_html: Mae %{name} wedi dileu cyhoeddiad %{target} + destroy_canonical_email_block_html: Mae %{name} wedi dad-rwystro parth e-bost %{target} destroy_custom_emoji_html: Mae %{name} wedi dileu emoji %{target} destroy_domain_allow_html: Mae %{name} wedi gwrthod ffederasiwn gyda pharth %{target} destroy_domain_block_html: Mae %{name} wedi dad rwystro parth %{target} + destroy_email_domain_block_html: Mae %{name} wedi dad-rwystro parth e-bost %{target} destroy_instance_html: Mae %{name} wedi dileu parth %{target} destroy_ip_block_html: Mae %{name} dileu rheol ar gyfer IP %{target} destroy_status_html: Mae %{name} wedi tynnu postiad gan %{target} @@ -255,8 +272,10 @@ cy: destroy_user_role_html: Mae %{name} wedi dileu rôl %{target} disable_2fa_user_html: Mae %{name} wedi analluogi gofyniad dau ffactor ar gyfer defnyddiwr %{target} disable_custom_emoji_html: Mae %{name} wedi analluogi emoji %{target} + disable_sign_in_token_auth_user_html: Mae %{name} wedi analluogi dilysiad tocyn e-bost %{target} disable_user_html: Mae %{name} wedi analluogi mewngofnodi defnyddiwr %{target} enable_custom_emoji_html: Mae %{name} wedi analluogi emoji %{target} + enable_sign_in_token_auth_user_html: Mae %{name} wedi galluogi dilysiad tocyn e-bost %{target} enable_user_html: Mae %{name} wedi galluogi mewngofnodi defnyddiwr %{target} memorialize_account_html: Newidiodd %{name} gyfrif %{target} i dudalen memoriam promote_user_html: Mae %{name} wedi hyrwyddo defnyddiwr %{target} @@ -264,6 +283,7 @@ cy: reject_user_html: Mae %{name} wedi gwrthod cofrestriad gan %{target} remove_avatar_user_html: Mae %{name} wedi tynnu afatar %{target} reopen_report_html: Mae %{name} wedi ailagor adroddiad %{target} + resend_user_html: Mae %{name} wedi ail anfon e-bost cadarnhau i%{target} reset_password_user_html: Mae %{name} wedi ailosod cyfrinair defnyddiwr %{target} resolve_report_html: Mae %{name} wedi datrys adroddiad %{target} sensitive_account_html: Mae %{name} wedi marcio cyfrwng %{target} fel un sensitif @@ -444,6 +464,7 @@ cy: other: "%{count} ymgais i gofrestru dros yr wythnos ddiwethaf" two: "%{count} ymgais i gofrestru dros yr wythnos ddiwethaf" zero: "%{count} o ymgeisiadau i gofrestru dros yr wythnos ddiwethaf" + created_msg: Parth e-bost wedi'i rwystro'n llwyddiannus delete: Dileu dns: types: @@ -452,8 +473,12 @@ cy: new: create: Ychwanegu parth resolve: Datrys parth + title: Rhwystro parth e-bost newydd + no_email_domain_block_selected: Ni newidiwyd unrhyw rwystro parth e-bost gan na ddewiswyd yr un ohonyn nhw not_permitted: Dim caniatâd + resolved_dns_records_hint_html: Mae'r enw parth yn cyd-fynd â'r parthau MX canlynol, sy'n gyfrifol yn y pen draw am dderbyn e-bost. Bydd rhwystro parth MX yn rhwystro cofrestriadau o unrhyw gyfeiriad e-bost sy'n defnyddio'r un parth MX, hyd yn oed os yw'r enw parth gweladwy yn wahanol. Byddwch yn ofalus i beidio â rhwystro'r prif ddarparwyr e-bost. resolved_through_html: Wedi'i ddatrys trwy %{domain} + title: Parthau e-bost wedi'u rhwystro export_domain_allows: new: title: Mewnforio parth yn caniatáu @@ -623,6 +648,7 @@ cy: resolve_description_html: Ni fydd unrhyw gamau yn cael eu cymryd yn erbyn y cyfrif a adroddwyd, ni chofnodwyd rhybudd, a bydd yr adroddiad yn cael ei gau. silence_description_html: Bydd y cyfrif yn weladwy i'r rhai sydd eisoes yn ei ddilyn neu'n edrych arno â llaw, gan gyfyngu'n ddifrifol ar ei gyrhaeddiad. Mae modd ei ddychwelyd bob amser. Yn cau pob adroddiad yn erbyn y cyfrif hwn. suspend_description_html: Bydd y cyfrif a'i holl gynnwys yn anhygyrch ac yn cael ei ddileu yn y pen draw, a bydd rhyngweithio ag ef yn amhosibl. Yn gildroadwy o fewn 30 diwrnod. Yn cau pob adroddiad yn erbyn y cyfrif hwn. + actions_description_html: Penderfynwch pa gamau i'w cymryd i delio gyda'r adroddiad hwn. Os cymerwch gamau cosbi yn erbyn y cyfrif a adroddwyd, bydd hysbysiad e-bost yn cael ei anfon atyn nhw, ac eithrio pan fydd y categori Sbam yn cael ei ddewis. actions_description_remote_html: Penderfynwch pa gamau i'w cymryd i ddatrys yr adroddiad hwn. Bydd hyn ond yn effeithio ar sut mae'ch gweinydd yn cyfathrebu â'r cyfrif hwn o bell ac yn trin ei gynnwys. add_to_report: Ychwanegu rhagor i adroddiad already_suspended_badges: @@ -687,6 +713,7 @@ cy: delete_data_html: Dileu proffil a chynnwys @%{acct} 30 diwrnod o nawr oni bai ei b/fod heb ei h/atal yn y cyfamser preview_preamble_html: 'Bydd @%{acct} yn derbyn rhybudd gyda''r cynnwys canlynol:' record_strike_html: Recordio rhybudd yn erbyn @%{acct} i'ch helpu i ddwysáu ar achosion o dorri rheolau yn y dyfodol o'r cyfrif hwn + send_email_html: Anfon e-bost rhybuddio at @%{acct} warning_placeholder: Rhesymeg ychwanegol dewisol ar gyfer y cam cymedroli. target_origin: Tarddiad y cyfrif a adroddwyd title: Adroddiadau @@ -734,6 +761,7 @@ cy: manage_appeals: Rheoli Apeliadau manage_appeals_description: Yn caniatáu i ddefnyddwyr adolygu apeliadau yn erbyn camau cymedroli manage_blocks: Rheoli Blociau + manage_blocks_description: Yn caniatáu i ddefnyddwyr rwystro darparwyr e-bost a chyfeiriadau IP manage_custom_emojis: Rheoli Emojis Cyfaddas manage_custom_emojis_description: Yn caniatáu i ddefnyddwyr reoli emojis cyfaddas ar y gweinydd manage_federation: Rheoli Ffederasiwn @@ -751,6 +779,7 @@ cy: manage_taxonomies: Rheoli Tacsonomeg manage_taxonomies_description: Yn caniatáu i ddefnyddwyr adolygu cynnwys sy'n trendio a diweddaru gosodiadau hashnodau manage_user_access: Rheoli Mynediad Defnyddwyr + manage_user_access_description: Yn caniatáu i ddefnyddwyr analluogi dilysiad dau ffactor defnyddwyr eraill, newid eu cyfeiriad e-bost, ac ailosod eu cyfrinair manage_users: Rheoli Defnyddwyr manage_users_description: Yn caniatáu i ddefnyddwyr weld manylion defnyddwyr eraill a chyflawni camau cymedroli yn eu herbyn manage_webhooks: Rheoli Bachau Gwe @@ -825,6 +854,7 @@ cy: destroyed_msg: Llwytho i fyny i'r wefan wedi'i dileu yn llwyddiannus! software_updates: critical_update: Hanfodol - diweddarwch yn fuan + description: Argymhellir cadw'ch gosodiad Mastodon yn gyfredol i elwa o'r atgyweiriadau a'r nodweddion diweddaraf. Hefyd, weithiau mae'n hanfodol diweddaru Mastodon mewn modd amserol er mwyn osgoi materion diogelwch. Am y rhesymau hyn, mae Mastodon yn gwirio am ddiweddariadau bob 30 munud, a bydd yn eich hysbysu yn unol â'ch dewisiadau hysbysu e-bost. documentation_link: Dysgu rhagor release_notes: Nodiadau ryddhau title: Diweddariadau ar gael @@ -912,13 +942,13 @@ cy: message_html: "Mae eich storfa gwrthrychau wedi'i cham ffurfweddu. Mae preifatrwydd eich defnyddwyr mewn perygl." tags: moderation: - not_trendable: Ddim yn dueddol + not_trendable: Ddim yn trendio not_usable: Ddim yn ddefnyddiadwy pending_review: O dan ystyriaeth review_requested: Gofynnwyd am adolygiad reviewed: Adolygwyd title: Statws - trendable: Tueddadwy + trendable: Trendadwy unreviewed: Heb ei adolygu usable: Defnyddiadwy name: Enw @@ -933,10 +963,16 @@ cy: trends: allow: Caniatáu approved: Cymeradwywyd + confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r tagiau a ddewiswyd? + confirm_disallow: Ydych chi'n siŵr eich bod am wrthod y tagiau hyn? disallow: Gwrthod links: allow: Caniatáu dolen allow_provider: Caniatáu cyhoeddwr + confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r dolenni hyn? + confirm_allow_provider: Ydych chi'n siŵr eich bod am ganiatáu'r darparwyr hyn? + confirm_disallow: Ydych chi'n siŵr eich bod am wrthod y dolenni hyn? + confirm_disallow_provider: A ydych yn siŵr eich bod am wrthod y darparwyr hyn? description_html: Mae'r rhain yn ddolenni sy'n cael eu rhannu llawer ar hyn o bryd gan gyfrifon y mae eich gweinydd yn gweld postiadau ohonyn nhw. Gall helpu eich defnyddwyr i ddarganfod beth sy'n digwydd yn y byd. Ni chaiff unrhyw ddolenni eu dangos yn gyhoeddus nes i chi gymeradwyo'r cyhoeddwr. Gallwch hefyd ganiatáu neu wrthod dolenni unigol. disallow: Gwrthod dolen disallow_provider: Gwrthod y cyhoeddwr @@ -952,18 +988,22 @@ cy: zero: Wedi'i rannu gan %{count} o bobl dros yr wythnos ddiwethaf title: Dolenni sy'n trendio usage_comparison: Wedi'i rannu %{today} gwaith heddiw, o'i gymharu â %{yesterday} ddoe - not_allowed_to_trend: Dim caniatâd i dueddu + not_allowed_to_trend: Dim caniatâd i trendio only_allowed: Derbyniwyd yn unig pending_review: Yn aros am adolygiad preview_card_providers: - allowed: Gall dolenni gan y cyhoeddwr hwn greu tuedd + allowed: Gall dolenni gan y cyhoeddwr hwn greu trend description_html: Mae'r rhain yn barthau lle mae dolenni'n cael eu rhannu'n aml ar eich gweinydd. Ni fydd dolenni'n trendio'n gyhoeddus oni bai bod parth y ddolen yn cael ei gymeradwyo. Mae eich cymeradwyaeth (neu eich gwrthodiad) yn ymestyn i is-barthau. - rejected: Ni fydd dolenni gan y cyhoeddwr hwn yn creu tuedd + rejected: Ni fydd dolenni gan y cyhoeddwr hwn yn creu trend title: Cyhoeddwyr rejected: Gwrthodwyd statuses: allow: Caniatáu postiad allow_account: Caniatáu awdur + confirm_allow: Ydych chi'n siŵr eich bod am ganiatáu'r statws hyn? + confirm_allow_account: Ydych chi'n siŵr eich bod am ganiatáu'r cyfrifon hyn? + confirm_disallow: A ydych yn siŵr eich bod am wrthod y statws hyn? + confirm_disallow_account: A ydych yn siŵr eich bod am wrthod y cyfrifon hyn? description_html: Mae'r rhain yn bostiadau y mae eich gweinydd yn gwybod amdanyn nhw sy'n cael eu rhannu a'u ffafrio llawer ar hyn o bryd. Gall helpu eich defnyddwyr newydd a'ch defnyddwyr sy'n dychwelyd i ddod o hyd i fwy o bobl i'w dilyn. Ni chaiff unrhyw bostiadau eu dangos yn gyhoeddus nes i chi gymeradwyo'r awdur, ac mae'r awdur yn caniatáu i'w cyfrif gael ei awgrymu i eraill. Gallwch hefyd ganiatáu neu wrthod postiadau unigol. disallow: Gwrthod postiad disallow_account: Gwrthod awdur @@ -1004,6 +1044,7 @@ cy: other: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf two: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf zero: Wedi'i ddefnyddio gan %{count} o bobl dros yr wythnos ddiwethaf + title: Argymhellion a Threndiau trending: Trendio warning_presets: add_new: Ychwanegu newydd @@ -1092,7 +1133,9 @@ cy: guide_link_text: Gall pawb gyfrannu. sensitive_content: Cynnwys sensitif application_mailer: + notification_preferences: Newid dewisiadau e-bost salutation: "%{name}," + settings: 'Newid dewisiadau e-bost: %{link}' unsubscribe: Dad-danysgrifio view: 'Gweld:' view_profile: Gweld proffil @@ -1112,6 +1155,7 @@ cy: hint_html: Un peth arall! Mae angen i ni gadarnhau eich bod yn ddynol (mae hyn er mwyn i ni allu cadw'r sbam allan!). Datryswch y CAPTCHA isod a chliciwch "Parhau". title: Gwiriad diogelwch confirmations: + awaiting_review: Mae eich cyfeiriad e-bost wedi'i gadarnhau! Mae aelod o staff %{domain} bellach yn adolygu'ch cofrestriad. Byddwch yn derbyn e-bost os ydyn nhw'n cymeradwyo eich cyfrif! awaiting_review_title: Mae eich cofrestriad yn cael ei adolygu clicking_this_link: clicio ar y ddolen hon login_link: mewngofnodi @@ -1119,6 +1163,7 @@ cy: redirect_to_app_html: Dylech fod wedi cael eich ailgyfeirio i ap %{app_name}. Os na ddigwyddodd hynny, rhowch gynnig ar %{clicking_this_link} neu ewch eich hun i'r ap. registration_complete: Mae eich cofrestriad ar %{domain} bellach wedi'i gwblhau! welcome_title: Croeso, %{name}! + wrong_email_hint: Os nad yw'r cyfeiriad e-bost hwnnw'n gywir, gallwch ei newid yng ngosodiadau'r cyfrif. delete_account: Dileu cyfrif delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd parhau yma. Bydd gofyn i chi gadarnhau. description: @@ -1139,6 +1184,7 @@ cy: or_log_in_with: Neu mewngofnodwch gyda privacy_policy_agreement_html: Rwyf wedi darllen ac yn cytuno i'r polisi preifatrwydd progress: + confirm: Cadarnhau'r e-bost details: Eich manylion review: Ein hadolygiad rules: Derbyn rheolau @@ -1160,8 +1206,10 @@ cy: security: Diogelwch set_new_password: Gosod cyfrinair newydd setup: + email_below_hint_html: Gwiriwch eich ffolder sbam, neu gofynnwch am un arall. Gallwch gywiro eich cyfeiriad e-bost os yw'n anghywir. email_settings_hint_html: Cliciwch ar y ddolen a anfonwyd atoch i wirio %{email}. Byddwn yn aros yma amdanoch. link_not_received: Heb gael dolen? + new_confirmation_instructions_sent: Byddwch yn derbyn e-bost newydd gyda'r ddolen gadarnhau ymhen ychydig funudau! title: Gwiriwch eich blwch derbyn sign_in: preamble_html: Mewngofnodwch gyda'ch manylion %{domain}. Os yw eich cyfrif yn cael ei gynnal ar weinydd gwahanol, ni fydd modd i chi fewngofnodi yma. @@ -1172,7 +1220,9 @@ cy: title: Gadewch i ni eich gosod ar %{domain}. status: account_status: Statws cyfrif + confirming: Wrthi'n aros i gadarnhad e-bost gael ei gwblhau. functional: Mae eich cyfrif nawr yn weithredol. + pending: Mae eich cais yn aros i gael ei adolygu gan ein staff. Gall hyn gymryd peth amser. Byddwch yn derbyn e-bost os caiff eich cais ei gymeradwyo. redirecting_to: Mae eich cyfrif yn anweithredol oherwydd ei fod ar hyn o bryd yn ailgyfeirio i %{acct}. self_destruct: Gab fod parth %{domain} yn cau, dim ond mynediad cyfyngedig fyddwch yn ei gael i'ch cyfrif. view_strikes: Gweld rybuddion y gorffennol yn erbyn eich cyfrif @@ -1215,6 +1265,9 @@ cy: before: 'Cyn bwrw ymlaen, darllenwch y nodiadau hyn yn ofalus:' caches: Efallai bydd cynnwys sydd wedi'i storio dros dro gan weinyddion eraill yn parhau data_removal: Bydd eich postiadau a data arall yn cael eu dileu'n barhaol + email_change_html: Gallwch newid eich cyfeiriad e-bost heb ddileu eich cyfrif + email_contact_html: Os nad yw byth wedi cyrraedd, gallwch anfon e-bost at %{email} am help + email_reconfirmation_html: Os nad ydych yn derbyn yr e-bost cadarnhau, gallwch ofyn amdano eto irreversible: Fyddwch chi ddim yn gallu adfer nac ail-greu eich cyfrif more_details_html: Am fwy o fanylion, darllenwch y polisi preifatrwydd. username_available: Bydd eich enw defnyddiwr ar gael eto @@ -1479,6 +1532,7 @@ cy: authentication_methods: otp: ap dilysu dau ffactor password: cyfrinair + sign_in_token: cod diogelwch e-bost webauthn: allweddi diogelwch description_html: Os ydych yn gweld gweithgaredd nad ydych yn ei adnabod, ystyriwch newid eich cyfrinair a galluogi dilysu dau ffactor. empty: Dim hanes dilysu ar gael @@ -1489,6 +1543,16 @@ cy: unsubscribe: action: Iawn, dad-danysgrifio complete: Dad-danysgrifiwyd + confirmation_html: Ydych chi'n siŵr eich bod am ddad-danysgrifio rhag derbyn %{type} Mastodon ar %{domain} i'ch e-bost yn %{email}? Gallwch ail-danysgrifio o'ch gosodiadau hysbysu e-bost rhywbryd eto . + emails: + notification_emails: + favourite: e-bost hysbysu hoffi + follow: e-byst hysbysu dilyn + follow_request: e-byst ceisiadau dilyn + mention: e-byst hysbysu crybwylliadau + reblog: e-byst hysbysiadau hybu + resubscribe_html: Os ydych wedi dad-danysgrifio trwy gamgymeriad, gallwch ail-danysgrifio drwy'ch gosodiadau hysbysu e-bost . + success_html: Ni fyddwch bellach yn derbyn %{type} ar gyfer Mastodon ar %{domain} i'ch e-bost am %{email}. title: Dad-danysgrifio media_attachments: validations: @@ -1569,6 +1633,8 @@ cy: update: subject: Golygodd %{name} bostiad notifications: + administration_emails: E-byst hysbysiadau gweinyddol + email_events: Digwyddiadau ar gyfer hysbysiadau e-bost email_events_hint: 'Dewiswch ddigwyddiadau yr ydych am dderbyn hysbysiadau ar eu cyfer:' number: human: @@ -1727,6 +1793,7 @@ cy: import: Mewnforio import_and_export: Mewnforio ac allforio migrate: Mudo cyfrif + notifications: Hysbysiadau e-bost preferences: Dewisiadau profile: Proffil cyhoeddus relationships: Yn dilyn a dilynwyr @@ -1983,9 +2050,9 @@ cy: other: "%{people} o bobl yn y 2 ddiwrnod diwethaf" two: "%{people} o bobl yn y 2 ddiwrnod diwethaf" zero: "%{people} o bobl yn y 2 ddiwrnod diwethaf" - hashtags_subtitle: Gweld beth sy'n tueddu dros y 2 ddiwrnod diwethaf - hashtags_title: Hashnodau tuedd - hashtags_view_more: Gweld mwy o hashnodau tuedd + hashtags_subtitle: Gweld beth sy'n trendio dros y 2 ddiwrnod diwethaf + hashtags_title: Hashnodau trendio + hashtags_view_more: Gweld mwy o hashnodau trendio post_action: Creu post_step: Dywedwch helo wrth y byd gyda thestun, lluniau, fideos neu arolygon barn. post_title: Creu'ch postiad cyntaf @@ -2001,6 +2068,7 @@ cy: invalid_otp_token: Côd dau-ffactor annilys otp_lost_help_html: Os colloch chi fynediad i'r ddau, mae modd i chi gysylltu a %{email} rate_limited: Gormod o geisiadau dilysu, ceisiwch eto yn nes ymlaen. + seamless_external_login: Rydych chi wedi mewngofnodi trwy wasanaeth allanol, felly nid yw gosodiadau cyfrinair ac e-bost ar gael. signed_in_as: 'Wedi mewngofnodi fel:' verification: extra_instructions_html: Awgrym: Gall y ddolen ar eich gwefan fod yn anweledig. Y rhan bwysig yw rel="me" sy'n atal dynwarediad ar wefannau gyda chynnwys sy'n cael ei gynyrchu gan ddefnyddwyr. Gallwch hyd yn oed ddefnyddio tag link ym mhennyn y dudalen yn lle a, ond rhaid i'r HTML fod yn hygyrch heb weithredu JavaScript. diff --git a/config/locales/he.yml b/config/locales/he.yml index 85632c7c53..6c02e12b95 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -35,6 +35,7 @@ he: created_msg: הודעת מנחה נוצרה בהצלחה! destroyed_msg: הודעת מנחה נמחקה בהצלחה! accounts: + add_email_domain_block: חסימת מתחם דוא"ל approve: אשר approved_msg: בקשת %{username} להירשם אושרה בהצלחה are_you_sure: בטוח? @@ -905,10 +906,16 @@ he: trends: allow: לאפשר approved: אישור + confirm_allow: 'וידוא: האם לאשר את התגיות שנבחרו?' + confirm_disallow: 'וידוא: האם לאסור את התגיות שנבחרו?' disallow: לא לאשר links: allow: אישור קישורית allow_provider: אישור מפרסם + confirm_allow: 'וידוא: האם לאשר את הקישורים שנבחרו?' + confirm_allow_provider: 'וידוא: האם לאשר את הספקים שנבחרו?' + confirm_disallow: 'וידוא: האם לאסור את הקישורים שנבחרו?' + confirm_disallow_provider: 'וידוא: האם לאסור את הספקים שנבחרו?' description_html: בקישוריות אלה נעשה כרגע שימוש על ידי חשבונות רבים שהשרת שלך רואה הודעות מהם. זה עשוי לסייע למשתמשיך לברר מה קורה בעולם. שום קישוריות לא יוצגו עד שתאשרו את המפרסם. ניתן גם לאפשר או לדחות קישוריות ספציפיות. disallow: לא לאשר קישורית disallow_provider: לא לאשר מפרסם @@ -934,6 +941,10 @@ he: statuses: allow: הרשאת הודעה allow_account: הרשאת מחבר/ת + confirm_allow: 'וידוא: האם לאשר את הסטטוסים שנבחרו?' + confirm_allow_account: 'וידוא: האם לאשר את החשבונות שנבחרו?' + confirm_disallow: 'וידוא: האם לאסור את הסטטוסים שנבחרו?' + confirm_disallow_account: 'וידוא: האם לאסור את החשבונות שנבחרו?' description_html: אלו הן הודעות שהשרת שלך מכיר וזוכות להדהודים וחיבובים רבים כרגע. זה עשוי למשתמשיך החדשים והחוזרים למצוא עוד נעקבים. ההודעות לא מוצגות עד שיאושר המחבר/ת, והמחבר/ת יאשרו שחשבונים יומלץ לאחרים. ניתן לאשר או לדחות הודעות ספציפיות. disallow: לדחות הודעה disallow_account: לא לאשר מחבר/ת @@ -1301,7 +1312,7 @@ he: statuses: back_to_filter: חזרה לפילטר batch: - remove: הסרה מפילטר + remove: הסרה ממסנן index: hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב. title: הודעות שסוננו diff --git a/config/locales/nn.yml b/config/locales/nn.yml index e5af5c1c64..a845c1fbb6 100644 --- a/config/locales/nn.yml +++ b/config/locales/nn.yml @@ -1448,6 +1448,7 @@ nn: mention: e-postar om omtaler reblog: e-postar om framhevingar resubscribe_html: Om du har avslutta abonnementet ved ein feil, kan du abonnera på nytt i innstillingar for e-postvarsling. + success_html: Du vil ikkje lenger få %{type} frå Mastodon på %{domain} til e-posten på %{email}. title: Meld av media_attachments: validations: @@ -1528,6 +1529,8 @@ nn: update: subject: "%{name} redigerte et innlegg" notifications: + administration_emails: Epostvarsel for administrator + email_events: Hendingar for epostvarsel email_events_hint: 'Velg hendelser som du vil motta varslinger for:' number: human: @@ -1686,6 +1689,7 @@ nn: import: Hent inn import_and_export: Importer og eksporter migrate: Kontoflytting + notifications: Epostvarsel preferences: Innstillingar profile: Profil relationships: Fylgjar og fylgjarar @@ -1932,6 +1936,7 @@ nn: invalid_otp_token: Ugyldig tostegskode otp_lost_help_html: Hvis du mistet tilgangen til begge deler, kan du komme i kontakt med %{email} rate_limited: For mange autentiseringsforsøk, prøv igjen seinare. + seamless_external_login: Du er logga inn gjennom ei ekstern tenest, så passord- og epostinnstillingar er ikkje tilgjengelege. signed_in_as: 'Logga inn som:' verification: extra_instructions_html: Tips: Linken på nettsida di kan vera usynleg. Den viktige delen er rel="me", som på nettstader med brukargenerert innhald vil hindra at andre kan låst som dei er deg. Du kan til og med bruka link i staden for a i toppteksten til sida, men HTML-koden må vera tilgjengeleg utan å måtte køyra JavaScript. diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml index 95a334bb3a..9e2becc52f 100644 --- a/config/locales/simple_form.he.yml +++ b/config/locales/simple_form.he.yml @@ -73,8 +73,8 @@ he: filters: action: בחרו איזו פעולה לבצע כאשר הודעה מתאימה למסנן actions: - hide: הסתר את התוכן המסונן, כאילו לא היה קיים - warn: הסתר את התוכן המסונן מאחורי אזהרה עם כותרת המסנן + hide: הסתרת התוכן המסונן, כאילו לא היה קיים + warn: הסתרת התוכן המסונן מאחורי אזהרה עם כותרת המסנן form_admin_settings: activity_api_enabled: מספר ההודעות שפורסמו מקומית, משתמשים פעילים, והרשמות חדשות בדליים שבועיים app_icon: WEBP, PNG, GIF או JPG. גובר על אייקון ברירת המחדל ביישומון על מכשירים ניידים ומחליף אותו באייקון נבחר. From ee6d3a83f125a4f5eac604c5ee32856aa2c68b70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 09:32:19 +0200 Subject: [PATCH 17/40] Update dependency concurrent-ruby to v1.3.4 (#31412) 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 e4d787eb64..f71b71ee4a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -168,7 +168,7 @@ GEM climate_control (1.2.0) cocoon (1.2.15) color_diff (0.1) - concurrent-ruby (1.3.3) + concurrent-ruby (1.3.4) connection_pool (2.4.1) cose (1.3.0) cbor (~> 0.5.9) From 3e3450be3613afd522db99e230ec5f47528ba509 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 07:33:32 +0000 Subject: [PATCH 18/40] Update dependency cssnano to v7.0.5 (#31413) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 224 +++++++++++++++++++++++++++--------------------------- 1 file changed, 112 insertions(+), 112 deletions(-) diff --git a/yarn.lock b/yarn.lock index 1df8452b46..fb8b6252aa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5691,17 +5691,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1": - version: 4.23.1 - resolution: "browserslist@npm:4.23.1" +"browserslist@npm:^4.0.0, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": + version: 4.23.3 + resolution: "browserslist@npm:4.23.3" dependencies: - caniuse-lite: "npm:^1.0.30001629" - electron-to-chromium: "npm:^1.4.796" - node-releases: "npm:^2.0.14" - update-browserslist-db: "npm:^1.0.16" + caniuse-lite: "npm:^1.0.30001646" + electron-to-chromium: "npm:^1.5.4" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" bin: browserslist: cli.js - checksum: 10c0/eb47c7ab9d60db25ce2faca70efeb278faa7282a2f62b7f2fa2f92e5f5251cf65144244566c86559419ff4f6d78f59ea50e39911321ad91f3b27788901f1f5e9 + checksum: 10c0/3063bfdf812815346447f4796c8f04601bf5d62003374305fd323c2a463e42776475bcc5309264e39bcf9a8605851e53560695991a623be988138b3ff8c66642 languageName: node linkType: hard @@ -5903,10 +5903,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001629": - version: 1.0.30001636 - resolution: "caniuse-lite@npm:1.0.30001636" - checksum: 10c0/e5f965b4da7bae1531fd9f93477d015729ff9e3fa12670ead39a9e6cdc4c43e62c272d47857c5cc332e7b02d697cb3f2f965a1030870ac7476da60c2fc81ee94 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001646": + version: 1.0.30001651 + resolution: "caniuse-lite@npm:1.0.30001651" + checksum: 10c0/7821278952a6dbd17358e5d08083d258f092e2a530f5bc1840657cb140fbbc5ec44293bc888258c44a18a9570cde149ed05819ac8320b9710cf22f699891e6ad languageName: node linkType: hard @@ -6771,43 +6771,43 @@ __metadata: languageName: node linkType: hard -"cssnano-preset-default@npm:^7.0.4": - version: 7.0.4 - resolution: "cssnano-preset-default@npm:7.0.4" +"cssnano-preset-default@npm:^7.0.5": + version: 7.0.5 + resolution: "cssnano-preset-default@npm:7.0.5" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" css-declaration-sorter: "npm:^7.2.0" cssnano-utils: "npm:^5.0.0" - postcss-calc: "npm:^10.0.0" - postcss-colormin: "npm:^7.0.1" - postcss-convert-values: "npm:^7.0.2" - postcss-discard-comments: "npm:^7.0.1" - postcss-discard-duplicates: "npm:^7.0.0" + postcss-calc: "npm:^10.0.1" + postcss-colormin: "npm:^7.0.2" + postcss-convert-values: "npm:^7.0.3" + postcss-discard-comments: "npm:^7.0.2" + postcss-discard-duplicates: "npm:^7.0.1" postcss-discard-empty: "npm:^7.0.0" postcss-discard-overridden: "npm:^7.0.0" - postcss-merge-longhand: "npm:^7.0.2" - postcss-merge-rules: "npm:^7.0.2" + postcss-merge-longhand: "npm:^7.0.3" + postcss-merge-rules: "npm:^7.0.3" postcss-minify-font-values: "npm:^7.0.0" postcss-minify-gradients: "npm:^7.0.0" - postcss-minify-params: "npm:^7.0.1" - postcss-minify-selectors: "npm:^7.0.2" + postcss-minify-params: "npm:^7.0.2" + postcss-minify-selectors: "npm:^7.0.3" postcss-normalize-charset: "npm:^7.0.0" postcss-normalize-display-values: "npm:^7.0.0" postcss-normalize-positions: "npm:^7.0.0" postcss-normalize-repeat-style: "npm:^7.0.0" postcss-normalize-string: "npm:^7.0.0" postcss-normalize-timing-functions: "npm:^7.0.0" - postcss-normalize-unicode: "npm:^7.0.1" + postcss-normalize-unicode: "npm:^7.0.2" postcss-normalize-url: "npm:^7.0.0" postcss-normalize-whitespace: "npm:^7.0.0" postcss-ordered-values: "npm:^7.0.1" - postcss-reduce-initial: "npm:^7.0.1" + postcss-reduce-initial: "npm:^7.0.2" postcss-reduce-transforms: "npm:^7.0.0" postcss-svgo: "npm:^7.0.1" - postcss-unique-selectors: "npm:^7.0.1" + postcss-unique-selectors: "npm:^7.0.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/0083821e778bdf7b8aa9589408a01a717be730f73584e7b81756a6fcf87af05b8f17342025e666572a8d573cc30783f2d817b0f7ad63670398bc3135b017ccad + checksum: 10c0/ffa7c6fa16c6ad98b7732fc563de74d492e6ad6d243a9f00431c0cbdbc576bcd49226d2695d881465d32dea0a2916add40ac10e7560dd7b5de9fd0fa25ee081b languageName: node linkType: hard @@ -6821,14 +6821,14 @@ __metadata: linkType: hard "cssnano@npm:^7.0.0": - version: 7.0.4 - resolution: "cssnano@npm:7.0.4" + version: 7.0.5 + resolution: "cssnano@npm:7.0.5" dependencies: - cssnano-preset-default: "npm:^7.0.4" + cssnano-preset-default: "npm:^7.0.5" lilconfig: "npm:^3.1.2" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/3939a0b37b11cb4bae92f7916517c7ba21257551f92517b49a640d5df32e855fb7e73321f4be44d2c2de578309c05d711cdcb1976e95607b1b7f92bd4cbd1350 + checksum: 10c0/cb43ed964787dca33efb44d8f4fea8a49c495db44d1d12940493f0dd5d63db78e01c5b140fe42b480b332733602a25f4c85186d00977eb3070b29f7422761985 languageName: node linkType: hard @@ -7469,10 +7469,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.796": - version: 1.4.806 - resolution: "electron-to-chromium@npm:1.4.806" - checksum: 10c0/44f925ba64bb623d0482cd2f14fcfb27017cec1f11ee642e0d49cb128cd714ba5e074c2cd8756dfc18010aa66d3c64039cdea891905f7c17160a8963db574fab +"electron-to-chromium@npm:^1.5.4": + version: 1.5.7 + resolution: "electron-to-chromium@npm:1.5.7" + checksum: 10c0/be4460bbe3d2186a16d53a03da67fde6fd06ad41943553ce517a45d52e03424732a982f75528e8a2d5fb042d6afde64186aa482caec0fb925daa5a74cf5ef060 languageName: node linkType: hard @@ -12378,10 +12378,10 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 languageName: node linkType: hard @@ -13323,15 +13323,15 @@ __metadata: languageName: node linkType: hard -"postcss-calc@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-calc@npm:10.0.0" +"postcss-calc@npm:^10.0.1": + version: 10.0.1 + resolution: "postcss-calc@npm:10.0.1" dependencies: - postcss-selector-parser: "npm:^6.0.16" + postcss-selector-parser: "npm:^6.1.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.38 - checksum: 10c0/d4d529f2f71b49f17441eed74a7564ccd2779c72ed8648d4bb2530261a27c0ca01fe6a07260e7bf57e55f46dd68dea07e52fd1a6b538db7bc13015124be258a5 + checksum: 10c0/5e38cc6f082f87e82067497b41684410784223ecd3701bf52242ea9f2f467f1fad6b5a561f8aa3be307d89435b4060f58aeb27c4064003586daf653cc4d91fef languageName: node linkType: hard @@ -13385,29 +13385,29 @@ __metadata: languageName: node linkType: hard -"postcss-colormin@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-colormin@npm:7.0.1" +"postcss-colormin@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-colormin@npm:7.0.2" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" caniuse-api: "npm:^3.0.0" colord: "npm:^2.9.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/e01e9e129ce39320cf10bb09ee2a3ab5b44b77805d3f7827eea07297644838b85c33b78996eeae0a1aba327ffd72a6ab1d24949ebc831523e310e916d5500371 + checksum: 10c0/76d09fb7e0218698e622a7c2cfc9087985f48f3a7e44f2655d5eefac4ae9c04198ae9d408dc7ace15d3aa5bde80e7031e462b0cb9b5bd50cfa76bbb1503c755b languageName: node linkType: hard -"postcss-convert-values@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-convert-values@npm:7.0.2" +"postcss-convert-values@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-convert-values@npm:7.0.3" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/beb59faf6aae97e6d3c233c5e6ed06cc60d65c49eec576036e3d0da1a831a1e827e3d41f5e81d016440b4f0bdf1406268ae069c4d5b38a6667b310c3da079d22 + checksum: 10c0/dbb6278bd8d8b11e448933d823426c883bff3f6abeaa23c7530cc4668b9da6f714e073840f280273f8a14022c3a99eb461ec732f7539e062b32f5281e1be6526 languageName: node linkType: hard @@ -13465,23 +13465,23 @@ __metadata: languageName: node linkType: hard -"postcss-discard-comments@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-discard-comments@npm:7.0.1" +"postcss-discard-comments@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-discard-comments@npm:7.0.2" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/64de3fced7e0e49dfea6aede8a5ca495b81dcd01c3c47734a5fbc86a3cb2b1ae39e1958e34e9bea64ecabd5fb4d8c287ec1d6189cf175c2434c6b6582da79948 + checksum: 10c0/c01632e643b6ec1f61ad59efe06a9e8dfc7fcedeb1551ae48fc33fa801353f6222e31954286cd97171c694f34c2b4c7f7a2213fd0f913e37c34d0353258ed234 languageName: node linkType: hard -"postcss-discard-duplicates@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-discard-duplicates@npm:7.0.0" +"postcss-discard-duplicates@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-discard-duplicates@npm:7.0.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/37d568dc18d47b8b9f0fd6d5115b1faf96c2bf429fc4586508a773533479e18627d6260cad6a3ca7d3bfc2f220fd9448410aee40e07f2ec6c6f96bbe3595dbc8 + checksum: 10c0/5cc2cac249f68004864865ea2ec38b7d5e28184f33e904e531ff57b533aacb73ec49e4a7d83219184001b8d167e5bcabc1673248134468d7ebaa0bfb9ff78f0a languageName: node linkType: hard @@ -13617,29 +13617,29 @@ __metadata: languageName: node linkType: hard -"postcss-merge-longhand@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-merge-longhand@npm:7.0.2" +"postcss-merge-longhand@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-merge-longhand@npm:7.0.3" dependencies: postcss-value-parser: "npm:^4.2.0" - stylehacks: "npm:^7.0.2" + stylehacks: "npm:^7.0.3" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/71d22418e5850e134bfcf2038acb1c91eeb48d9b6f9e4c0252fee757e11dc4ae351097a855c327fbc38dc7658fa6edc7cc7f458c08bb4044b82c6005dc565fcb + checksum: 10c0/b968c3d16f3edc6075b20219a1165c089dc454a6a42951dcdfc94adb932fb96ef7bcd465c6cd21b0e5b55ac08921355ddbbbc7cdcf87a345e4bef8b3cdd2e7e9 languageName: node linkType: hard -"postcss-merge-rules@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-merge-rules@npm:7.0.2" +"postcss-merge-rules@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-merge-rules@npm:7.0.3" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" caniuse-api: "npm:^3.0.0" cssnano-utils: "npm:^5.0.0" - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/fbad20382ca45f1b3b5ff704c075f899cc9ba8418ae6effbdeb9e7c1f9b5c24996d1941ad36cd0936d60cbf127a72f235b2cbb0c44d9239a8a61042406d95b4a + checksum: 10c0/3cd20484ab6d15c62eded408248d5eeaba52a573935943f933865680e070a0e75b3a7447802c575bc86e1fae667cf51d9d5766537835d9b8c090337b5adf928e languageName: node linkType: hard @@ -13667,28 +13667,28 @@ __metadata: languageName: node linkType: hard -"postcss-minify-params@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-minify-params@npm:7.0.1" +"postcss-minify-params@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-minify-params@npm:7.0.2" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" cssnano-utils: "npm:^5.0.0" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/84e1c4de5af47178c1f48e10ce16341560f32bb2becf5ec9b014103f6c706174bc70885e2e13ced4de9b4f1959fb970193261cbd4751c8b87d5159e859e8c5ec + checksum: 10c0/0e041f70554bae9d4a66c8ab2f2f3ed8bf73862c9d5ff9972ac7f1a596badd1544f093fa2362dd33e96c038af9e10287cdbfec9f480c49bffdcbaca9fdcb1e4e languageName: node linkType: hard -"postcss-minify-selectors@npm:^7.0.2": - version: 7.0.2 - resolution: "postcss-minify-selectors@npm:7.0.2" +"postcss-minify-selectors@npm:^7.0.3": + version: 7.0.3 + resolution: "postcss-minify-selectors@npm:7.0.3" dependencies: cssesc: "npm:^3.0.0" - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/87e0c21a0135b6c61b58d62c4c1e0cbd3cfb516ff8105db714c6a33a5edc477846ae220399d368e4ef6518529c711aa2dee9ff49e9befd93e83d5c939f3084a1 + checksum: 10c0/5211f63a1672f646a1bab57bd8eac0816d42adacb5e286ad5e6e342a795bb0d086bd6044a1b338311ca28f33f2c1833165ee611eaa671287379821ba3c5d68ad languageName: node linkType: hard @@ -13813,15 +13813,15 @@ __metadata: languageName: node linkType: hard -"postcss-normalize-unicode@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-normalize-unicode@npm:7.0.1" +"postcss-normalize-unicode@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-normalize-unicode@npm:7.0.2" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/fcabac738765f608cb211ac01a19f9a7d784f99d223ef6f31352f37b9bcf008e0ca7849414c9e77116be8660d78b01dba6fc4a87cee7c9a977d3c2741d6a222d + checksum: 10c0/0df1aac932cc2340715178fd024e0f6d872ea5a4bee1bc8357317a75a7b2c904d885f754cc162af001aa2a9ded7c54fac7cbcd701e21e995c1ace92dc08f2b9d languageName: node linkType: hard @@ -13981,15 +13981,15 @@ __metadata: languageName: node linkType: hard -"postcss-reduce-initial@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-reduce-initial@npm:7.0.1" +"postcss-reduce-initial@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-reduce-initial@npm:7.0.2" dependencies: - browserslist: "npm:^4.23.1" + browserslist: "npm:^4.23.3" caniuse-api: "npm:^3.0.0" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/3e7c6c1d0cc4ace38f44971f02d0dd98131af678cf114aa05cfa0c066420019d5329c221ef8507644b8a79d0e76534303f747c97860ac777fe17f57110edefe1 + checksum: 10c0/1e6fafaf5fac52b351c8de156ed62e4e1f48da7eb07f9ce90da54b45dca61da9af1e954b8a343271cb3e4ec99e0c5f18d7f9f96da0ca144511fca04498fac78c languageName: node linkType: hard @@ -14049,7 +14049,7 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.16, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1": +"postcss-selector-parser@npm:^6.0.13, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.1.0, postcss-selector-parser@npm:^6.1.1": version: 6.1.1 resolution: "postcss-selector-parser@npm:6.1.1" dependencies: @@ -14071,14 +14071,14 @@ __metadata: languageName: node linkType: hard -"postcss-unique-selectors@npm:^7.0.1": - version: 7.0.1 - resolution: "postcss-unique-selectors@npm:7.0.1" +"postcss-unique-selectors@npm:^7.0.2": + version: 7.0.2 + resolution: "postcss-unique-selectors@npm:7.0.2" dependencies: - postcss-selector-parser: "npm:^6.1.0" + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/6352d71ce2f65265f545831c2ce3686bd71961d08a2247c545d717d93d23b1eb08bb986efc11194d31970eea4cb42207b9aa9a3f4666d75492a6cbf1493cf466 + checksum: 10c0/cc54c57cd1c5a6e3e166ec63cc036d9e2df80b05e508d9ce754ca4193bf8c1bfcc16b3c6f0d81b8352a3282201d249b90bb87abacfcfb9065c9e3705ea5d110e languageName: node linkType: hard @@ -16603,15 +16603,15 @@ __metadata: languageName: node linkType: hard -"stylehacks@npm:^7.0.2": - version: 7.0.2 - resolution: "stylehacks@npm:7.0.2" +"stylehacks@npm:^7.0.3": + version: 7.0.3 + resolution: "stylehacks@npm:7.0.3" dependencies: - browserslist: "npm:^4.23.1" - postcss-selector-parser: "npm:^6.1.0" + browserslist: "npm:^4.23.3" + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.4.31 - checksum: 10c0/552299e869ac430e1076c025ace6c80bdfd5b672632435625eb1bd45ff5611aad7f3ee810e72edc04dc0fc3761e08dec40d27b72c50b95690eea2de43238b8d8 + checksum: 10c0/5030334b06ef705b5700444dab120b540b09159e935e75b60f25bd56db1d85f0d11755f0b0f64ce3f12c5a72ff1b6f57fea49c26d18eb0de2334d6a143b94f8d languageName: node linkType: hard @@ -17552,9 +17552,9 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.16": - version: 1.0.16 - resolution: "update-browserslist-db@npm:1.0.16" +"update-browserslist-db@npm:^1.1.0": + version: 1.1.0 + resolution: "update-browserslist-db@npm:1.1.0" dependencies: escalade: "npm:^3.1.2" picocolors: "npm:^1.0.1" @@ -17562,7 +17562,7 @@ __metadata: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 10c0/5995399fc202adbb51567e4810e146cdf7af630a92cc969365a099150cb00597e425cc14987ca7080b09a4d0cfd2a3de53fbe72eebff171aed7f9bb81f9bf405 + checksum: 10c0/a7452de47785842736fb71547651c5bbe5b4dc1e3722ccf48a704b7b34e4dcf633991eaa8e4a6a517ffb738b3252eede3773bef673ef9021baa26b056d63a5b9 languageName: node linkType: hard From 7996a9543dd893c772355f41a9ac41b3854fee18 Mon Sep 17 00:00:00 2001 From: Claire Date: Wed, 14 Aug 2024 09:34:30 +0200 Subject: [PATCH 19/40] Change notification request acceptance to immediately delete the request (#31256) --- .../accept_notification_request_service.rb | 3 +- app/workers/unfilter_notifications_worker.rb | 21 +++++++-- ...ccept_notification_request_service_spec.rb | 19 ++++++++ .../unfilter_notifications_worker_spec.rb | 46 +++++++++++++++++++ 4 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 spec/services/accept_notification_request_service_spec.rb create mode 100644 spec/workers/unfilter_notifications_worker_spec.rb diff --git a/app/services/accept_notification_request_service.rb b/app/services/accept_notification_request_service.rb index e49eae6fd3..ad27ae3300 100644 --- a/app/services/accept_notification_request_service.rb +++ b/app/services/accept_notification_request_service.rb @@ -3,6 +3,7 @@ class AcceptNotificationRequestService < BaseService def call(request) NotificationPermission.create!(account: request.account, from_account: request.from_account) - UnfilterNotificationsWorker.perform_async(request.id) + UnfilterNotificationsWorker.perform_async(request.account_id, request.from_account_id) + request.destroy! end end diff --git a/app/workers/unfilter_notifications_worker.rb b/app/workers/unfilter_notifications_worker.rb index 223654aa16..5939a691fb 100644 --- a/app/workers/unfilter_notifications_worker.rb +++ b/app/workers/unfilter_notifications_worker.rb @@ -3,8 +3,19 @@ class UnfilterNotificationsWorker include Sidekiq::Worker - def perform(notification_request_id) - @notification_request = NotificationRequest.find(notification_request_id) + # Earlier versions of the feature passed a `notification_request` ID + # If `to_account_id` is passed, the first argument is an account ID + # TODO for after 4.3.0: drop the single-argument case + def perform(notification_request_or_account_id, from_account_id = nil) + if from_account_id.present? + @notification_request = nil + @from_account = Account.find(from_account_id) + @recipient = Account.find(notification_request_or_account_id) + else + @notification_request = NotificationRequest.find(notification_request_or_account_id) + @from_account = @notification_request.from_account + @recipient = @notification_request.account + end push_to_conversations! unfilter_notifications! @@ -16,7 +27,7 @@ class UnfilterNotificationsWorker private def push_to_conversations! - notifications_with_private_mentions.find_each { |notification| AccountConversation.add_status(@notification_request.account, notification.target_status) } + notifications_with_private_mentions.reorder(nil).find_each(order: :desc) { |notification| AccountConversation.add_status(@recipient, notification.target_status) } end def unfilter_notifications! @@ -24,11 +35,11 @@ class UnfilterNotificationsWorker end def remove_request! - @notification_request.destroy! + @notification_request&.destroy! end def filtered_notifications - Notification.where(account: @notification_request.account, from_account: @notification_request.from_account, filtered: true) + Notification.where(account: @recipient, from_account: @from_account, filtered: true) end def notifications_with_private_mentions diff --git a/spec/services/accept_notification_request_service_spec.rb b/spec/services/accept_notification_request_service_spec.rb new file mode 100644 index 0000000000..bf67a52225 --- /dev/null +++ b/spec/services/accept_notification_request_service_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require 'rails_helper' + +RSpec.describe AcceptNotificationRequestService do + subject { described_class.new } + + let(:notification_request) { Fabricate(:notification_request) } + + describe '#call' do + it 'destroys the notification request, creates a permission, and queues a worker' do + expect { subject.call(notification_request) } + .to change { NotificationRequest.exists?(notification_request.id) }.to(false) + .and change { NotificationPermission.exists?(account_id: notification_request.account_id, from_account_id: notification_request.from_account_id) }.to(true) + + expect(UnfilterNotificationsWorker).to have_enqueued_sidekiq_job(notification_request.account_id, notification_request.from_account_id) + end + end +end diff --git a/spec/workers/unfilter_notifications_worker_spec.rb b/spec/workers/unfilter_notifications_worker_spec.rb new file mode 100644 index 0000000000..3f43b298a5 --- /dev/null +++ b/spec/workers/unfilter_notifications_worker_spec.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe UnfilterNotificationsWorker do + let(:recipient) { Fabricate(:account) } + let(:sender) { Fabricate(:account) } + + before do + # Populate multiple kinds of filtered notifications + private_message = Fabricate(:status, account: sender, visibility: :direct) + mention = Fabricate(:mention, account: recipient, status: private_message) + Fabricate(:notification, filtered: true, from_account: sender, account: recipient, type: :mention, activity: mention) + follow_request = sender.request_follow!(recipient) + Fabricate(:notification, filtered: true, from_account: sender, account: recipient, type: :follow_request, activity: follow_request) + end + + shared_examples 'shared behavior' do + it 'unfilters notifications and adds private messages to conversations' do + expect { subject } + .to change { recipient.notifications.where(from_account_id: sender.id).pluck(:filtered) }.from([true, true]).to([false, false]) + .and change { recipient.conversations.exists?(last_status_id: sender.statuses.first.id) }.to(true) + end + end + + describe '#perform' do + context 'with single argument (prerelease behavior)' do + subject { described_class.new.perform(notification_request.id) } + + let(:notification_request) { Fabricate(:notification_request, from_account: sender, account: recipient) } + + it_behaves_like 'shared behavior' + + it 'destroys the notification request' do + expect { subject } + .to change { NotificationRequest.exists?(notification_request.id) }.to(false) + end + end + + context 'with two arguments' do + subject { described_class.new.perform(recipient.id, sender.id) } + + it_behaves_like 'shared behavior' + end + end +end From 8d969079334afc8b5abf04e4791fd404096214b4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 07:35:33 +0000 Subject: [PATCH 20/40] Update dependency @types/webpack to v4.41.39 (#31379) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fb8b6252aa..0b93feb012 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4129,8 +4129,8 @@ __metadata: linkType: hard "@types/webpack@npm:^4.41.33": - version: 4.41.38 - resolution: "@types/webpack@npm:4.41.38" + version: 4.41.39 + resolution: "@types/webpack@npm:4.41.39" dependencies: "@types/node": "npm:*" "@types/tapable": "npm:^1" @@ -4138,7 +4138,7 @@ __metadata: "@types/webpack-sources": "npm:*" anymatch: "npm:^3.0.0" source-map: "npm:^0.6.0" - checksum: 10c0/5a0a7465d45a0e7701a8c863e88c6cba7660b37e4aeab851c71baf505dbab2e178be1cac82488c2e7d0ea11fb703ceddb53476daec3ec9a004e2fc1554233483 + checksum: 10c0/740420d092abb80b70263b02609bde209801b060d8e6f3a399a129945cb09182c2ce63dc816908bfbcdb123b35dc4c4fb51367aac2b5974537694cac2631db21 languageName: node linkType: hard From 95c11d365d9f3e4581fbafda0e3e47be39ee23a2 Mon Sep 17 00:00:00 2001 From: Jeong Arm Date: Wed, 14 Aug 2024 17:57:42 +0900 Subject: [PATCH 21/40] Don't push to cache buster if attachment path is nil (#31414) --- app/models/media_attachment.rb | 2 +- spec/models/media_attachment_spec.rb | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index a9470e1ad2..6708cd7793 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -422,7 +422,7 @@ class MediaAttachment < ApplicationRecord attachment = public_send(attachment_name) styles = DEFAULT_STYLES | attachment.styles.keys styles.map { |style| attachment.path(style) } - end + end.compact rescue => e # We really don't want any error here preventing media deletion Rails.logger.warn "Error #{e.class} busting cache: #{e.message}" diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb index 3297387ff7..50f8d00a54 100644 --- a/spec/models/media_attachment_spec.rb +++ b/spec/models/media_attachment_spec.rb @@ -302,12 +302,10 @@ RSpec.describe MediaAttachment, :attachment_processing do it 'queues CacheBusterWorker jobs' do original_path = media.file.path(:original) small_path = media.file.path(:small) - thumbnail_path = media.thumbnail.path(:original) expect { media.destroy } .to enqueue_sidekiq_job(CacheBusterWorker).with(original_path) .and enqueue_sidekiq_job(CacheBusterWorker).with(small_path) - .and enqueue_sidekiq_job(CacheBusterWorker).with(thumbnail_path) end end From 4fdaf4513dbfb53a57b9a30857ef62b47a375757 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:21:51 +0200 Subject: [PATCH 22/40] Update dependency oj to v3.16.5 (#31417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f71b71ee4a..33d3828404 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -460,8 +460,9 @@ GEM concurrent-ruby (~> 1.0, >= 1.0.2) sidekiq (>= 3.5) statsd-ruby (~> 1.4, >= 1.4.0) - oj (3.16.4) + oj (3.16.5) bigdecimal (>= 3.0) + ostruct (>= 0.2) omniauth (2.1.2) hashie (>= 3.4.6) rack (>= 2.2.3) @@ -582,6 +583,7 @@ GEM opentelemetry-semantic_conventions (1.10.1) opentelemetry-api (~> 1.0) orm_adapter (0.5.0) + ostruct (0.6.0) ox (2.14.18) parallel (1.25.1) parser (3.3.4.0) From 5b2750e384539a68c31a538bdc0a0842095cc902 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 11:45:14 +0200 Subject: [PATCH 23/40] Update dependency libvips to v8.15.3 (#31416) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a0af1eda6b..65440bb281 100644 --- a/Dockerfile +++ b/Dockerfile @@ -191,7 +191,7 @@ FROM build AS libvips # libvips version to compile, change with [--build-arg VIPS_VERSION="8.15.2"] # renovate: datasource=github-releases depName=libvips packageName=libvips/libvips -ARG VIPS_VERSION=8.15.2 +ARG VIPS_VERSION=8.15.3 # libvips download URL, change with [--build-arg VIPS_URL="https://github.com/libvips/libvips/releases/download"] ARG VIPS_URL=https://github.com/libvips/libvips/releases/download From b5ad4aae238d6beded6afd69132ff3770efe4ac6 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:48:01 +0200 Subject: [PATCH 24/40] Update dependency propshaft to v0.9.1 (#31421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 33d3828404..2a3a2b3893 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -603,7 +603,7 @@ GEM actionmailer (>= 3) net-smtp premailer (~> 1.7, >= 1.7.9) - propshaft (0.9.0) + propshaft (0.9.1) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack @@ -906,7 +906,7 @@ GEM xorcist (1.1.3) xpath (3.2.0) nokogiri (~> 1.8) - zeitwerk (2.6.16) + zeitwerk (2.6.17) PLATFORMS ruby From b5e799d165386525bebbd7ae7dde68a163332307 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 13:12:16 +0000 Subject: [PATCH 25/40] Update dependency postcss to v8.4.41 (#31420) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 0b93feb012..597d073567 100644 --- a/yarn.lock +++ b/yarn.lock @@ -14090,13 +14090,13 @@ __metadata: linkType: hard "postcss@npm:^8.2.15, postcss@npm:^8.4.24, postcss@npm:^8.4.40": - version: 8.4.40 - resolution: "postcss@npm:8.4.40" + version: 8.4.41 + resolution: "postcss@npm:8.4.41" dependencies: nanoid: "npm:^3.3.7" picocolors: "npm:^1.0.1" source-map-js: "npm:^1.2.0" - checksum: 10c0/65ed67573e5443beaeb582282ff27a6be7c7fe3b4d9fa15761157616f2b97510cb1c335023c26220b005909f007337026d6e3ff092f25010b484ad484e80ea7f + checksum: 10c0/c1828fc59e7ec1a3bf52b3a42f615dba53c67960ed82a81df6441b485fe43c20aba7f4e7c55425762fd99c594ecabbaaba8cf5b30fd79dfec5b52a9f63a2d690 languageName: node linkType: hard From 5c91610e5391b888d2e25f1c2c52cb395944fd70 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:23:17 +0000 Subject: [PATCH 26/40] Update dependency postcss-preset-env to v10.0.1 (#31422) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 154 +++++++++++++++++++++++++++--------------------------- 1 file changed, 77 insertions(+), 77 deletions(-) diff --git a/yarn.lock b/yarn.lock index 597d073567..f0d64d73bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1579,10 +1579,10 @@ __metadata: languageName: node linkType: hard -"@csstools/color-helpers@npm:^4.2.1": - version: 4.2.1 - resolution: "@csstools/color-helpers@npm:4.2.1" - checksum: 10c0/72e11b186ad0f6019a9b4b3752e620fa798c2a40cf47e8cad565dff46e572c9342eb8cf804542d7886344a1e540555d77f20119ace6b2d8a45b6e5ef8a41685c +"@csstools/color-helpers@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/color-helpers@npm:5.0.1" + checksum: 10c0/77fa3b7236eaa3f36dea24708ac0d5e53168903624ac5aed54615752a0730cd20773fda50e742ce868012eca8c000cc39688e05869e79f34714230ab6968d1e6 languageName: node linkType: hard @@ -1596,16 +1596,16 @@ __metadata: languageName: node linkType: hard -"@csstools/css-color-parser@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/css-color-parser@npm:3.0.0" +"@csstools/css-color-parser@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/css-color-parser@npm:3.0.1" dependencies: - "@csstools/color-helpers": "npm:^4.2.1" + "@csstools/color-helpers": "npm:^5.0.1" "@csstools/css-calc": "npm:^2.0.0" peerDependencies: "@csstools/css-parser-algorithms": ^3.0.0 "@csstools/css-tokenizer": ^3.0.0 - checksum: 10c0/9b56ba3b56691d2133f1d9b881131bfd9745024a79f825284109adac05578e15ae3eed0e99c98db162932d69770fc970b5b005996c32cdf7167af3418da263c3 + checksum: 10c0/8890a621f916cbbf49e749d4e85e934ce55c9f9c339abcc5f4a64bc165605a6e8dd3cad9d3bbc994d2419a3b38981dca84b93ae50aa91d492fb5f0f4c9d95969 languageName: node linkType: hard @@ -1673,33 +1673,33 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-color-function@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-color-function@npm:4.0.0" +"@csstools/postcss-color-function@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-color-function@npm:4.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/ff0c0c44f5d17bc5e7ea287eff9c10ca334a84d086998a6b243a209f1795d32ba872357935f4176e5206b88dc8d2a204f452c13bc940540b7122e9e807511ac6 + checksum: 10c0/f0d3dd0677d381df54987d13ea63a59e911816d98a22eda7a5e55ca2908f52afc42fbffb73a8d25a18632b936dc38f6ada9f3e2dd7911cf775ce3718657420f4 languageName: node linkType: hard -"@csstools/postcss-color-mix-function@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-color-mix-function@npm:3.0.0" +"@csstools/postcss-color-mix-function@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/postcss-color-mix-function@npm:3.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/120e96581834b2363df1fb653959dc243d93c01bcd70bf2e34418c20cd418a75f8b4e2e81da6955345619dcbb246e7d023f395521522bacb455583c15f61c677 + checksum: 10c0/ff76400d132c42d70f58b0908ab602b550b43720320288eb4ca1f185e7340c6f232b2a789ac94be255fc7bedc3c6125314d564297d23606fb2c91a1e2d79c40b languageName: node linkType: hard @@ -1742,46 +1742,46 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-gamut-mapping@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/postcss-gamut-mapping@npm:2.0.0" +"@csstools/postcss-gamut-mapping@npm:^2.0.1": + version: 2.0.1 + resolution: "@csstools/postcss-gamut-mapping@npm:2.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/be1d7f4c96f3bbcb69ed4ccc2ff406a884ae7129e6542ab6800782fbfe4e077159352409961f2da8054ec9fabbf6ed211288f1004c96632a1f6b10bef332d880 + checksum: 10c0/3415c420463dd481a3ddf5b104f15661492d9aa3613c109f9b7354b2664965a92036045e157945348cf2c06e075b89a0c0c4f49c8a00d41c827c5b61de297cd0 languageName: node linkType: hard -"@csstools/postcss-gradients-interpolation-method@npm:^5.0.0": - version: 5.0.0 - resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.0" +"@csstools/postcss-gradients-interpolation-method@npm:^5.0.1": + version: 5.0.1 + resolution: "@csstools/postcss-gradients-interpolation-method@npm:5.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/04e29fd877a499b9570665aea5b23cd70635b538dd903b9f9706ddd85a2d9c93445aea4b6b7dbcf8986ab58b45bb502ec5060044d945096d0af2eb6cebadb88e + checksum: 10c0/a1c5d6bf308ff9e1972cb39030859cd135246f8f697e5d1278ddd8ed27ce53eb76b3e628acc64145290006f45140d0a4a65e5df71f131d3e6447f0e5d3301088 languageName: node linkType: hard -"@csstools/postcss-hwb-function@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-hwb-function@npm:4.0.0" +"@csstools/postcss-hwb-function@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-hwb-function@npm:4.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/1aff69ca364417ac2b7ef1c737f88567f441bfd54d93d7b635e0ad605c61edcc2282bc0e2df73c83d1c6a24487e0acec34a4585d27d5f6027402aaea71696190 + checksum: 10c0/3247c3ab75d3cdb0ca80f7bb63d944ce933694ee9d7ee68aea11e727e883e0d35936b4a29e28700bda5eea2be26917a6c95c22a6b244e945cc558669f88b8a6e languageName: node linkType: hard @@ -1819,9 +1819,9 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-light-dark-function@npm:^2.0.0": - version: 2.0.0 - resolution: "@csstools/postcss-light-dark-function@npm:2.0.0" +"@csstools/postcss-light-dark-function@npm:^2.0.1": + version: 2.0.1 + resolution: "@csstools/postcss-light-dark-function@npm:2.0.1" dependencies: "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" @@ -1829,7 +1829,7 @@ __metadata: "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/d0eb1e04854c4ae425c6aff51ce9d0db90e9457aea3307d3ed916f500d2b5a3314a25d3487ea893e7b006a34c0d155462566d6066c8c54baec33eb104891c6db + checksum: 10c0/4caf23781daa72f036a830b7fc2c07cde1122afd7bc7c6a291992b5264ea92c1fb22ec2ed684c5ce50e6e848f6d0ea39ef34a5679ea37a546b8db6eb555e3f80 languageName: node linkType: hard @@ -1933,18 +1933,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-oklab-function@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-oklab-function@npm:4.0.0" +"@csstools/postcss-oklab-function@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-oklab-function@npm:4.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/9e228049645e6a6baa77d6e7e35b3862f3e2e4836fbf2de43fa246d91f0efa36e7f18eae3f2b224c61e72628aaf14d4bff86c555fb06378d5e05e71dca92f9ec + checksum: 10c0/b4450fb792c505936e1f9290e8df5420e98ccba78fa1badc9261ff99bebff8cc3b1f050e518728de791acadba08b5e8c213d97b479f551b72b4f8a5793625998 languageName: node linkType: hard @@ -1959,18 +1959,18 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-relative-color-syntax@npm:^3.0.0": - version: 3.0.0 - resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.0" +"@csstools/postcss-relative-color-syntax@npm:^3.0.1": + version: 3.0.1 + resolution: "@csstools/postcss-relative-color-syntax@npm:3.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/d7ae180d746bd9778d8b9f74f8d644f4c6a98b29659423d4ee2b48f461e90a3e30b44dcf44a181ade083b6c6d1b0346b7b3e62fe67fdeaba59a13f050a19c7d1 + checksum: 10c0/95a0001549b0fcae6add7db6264d16183734a9dd94e54e9b606b0dcefbd96540d8917707eef2525a5024e4078ef039acfa05c2c1b309fe444a7fc1f1c05d6594 languageName: node linkType: hard @@ -1998,15 +1998,15 @@ __metadata: languageName: node linkType: hard -"@csstools/postcss-text-decoration-shorthand@npm:^4.0.0": - version: 4.0.0 - resolution: "@csstools/postcss-text-decoration-shorthand@npm:4.0.0" +"@csstools/postcss-text-decoration-shorthand@npm:^4.0.1": + version: 4.0.1 + resolution: "@csstools/postcss-text-decoration-shorthand@npm:4.0.1" dependencies: - "@csstools/color-helpers": "npm:^4.2.1" + "@csstools/color-helpers": "npm:^5.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/dedc98134648d5306e795e4176b2c39a578a237669562e7d934d0b0ac7411d37bab4065c8b0adfc075b57250daba62f045b86c79286b5f9be55502acef0d88c6 + checksum: 10c0/81950e248d6019c0066353895e0fa2a5c684b754c9af349218cb919534f5ebf79e5e9c7a10b3af1e9c56de2f246968de3b87a00d8c4102e5f88e0f05c04f9889 languageName: node linkType: hard @@ -13346,18 +13346,18 @@ __metadata: languageName: node linkType: hard -"postcss-color-functional-notation@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-color-functional-notation@npm:7.0.0" +"postcss-color-functional-notation@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-color-functional-notation@npm:7.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/6afe7b681a16783a27fa9600db348f995dfdbc9c945f6cdcec94ee2419e09cfd1c6e533264b830207f130e19ae18ff689ad9b48bced338f27f898eaecd61f844 + checksum: 10c0/0cdfae4d85cb34425c8363b699b5da6f0c8cc43e7ce3b7fdd1fd39429ee81a4af75f973cd5c8293b1072688064da17a0a633827f23667e8cc0ff16217f0004eb languageName: node linkType: hard @@ -13568,18 +13568,18 @@ __metadata: languageName: node linkType: hard -"postcss-lab-function@npm:^7.0.0": - version: 7.0.0 - resolution: "postcss-lab-function@npm:7.0.0" +"postcss-lab-function@npm:^7.0.1": + version: 7.0.1 + resolution: "postcss-lab-function@npm:7.0.1" dependencies: - "@csstools/css-color-parser": "npm:^3.0.0" + "@csstools/css-color-parser": "npm:^3.0.1" "@csstools/css-parser-algorithms": "npm:^3.0.0" "@csstools/css-tokenizer": "npm:^3.0.0" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" "@csstools/utilities": "npm:^2.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/f3647bcdd8d6140631b97276ecf51f40df2c7564610262a20c608c37c8ab79bf6e02888419dc657afc4720a7378e3ad19f4fdf811a69363424160d548ac68daf + checksum: 10c0/8a6f3f465911c5c608650e3ebec01097d274109eea0fceb925f1ca52213c67a6496570ff2ba9af0a6c2153e208ef1d10cc43ad81f38405f5d39639680f7150a9 languageName: node linkType: hard @@ -13900,22 +13900,22 @@ __metadata: linkType: hard "postcss-preset-env@npm:^10.0.0": - version: 10.0.0 - resolution: "postcss-preset-env@npm:10.0.0" + version: 10.0.1 + resolution: "postcss-preset-env@npm:10.0.1" dependencies: "@csstools/postcss-cascade-layers": "npm:^5.0.0" - "@csstools/postcss-color-function": "npm:^4.0.0" - "@csstools/postcss-color-mix-function": "npm:^3.0.0" + "@csstools/postcss-color-function": "npm:^4.0.1" + "@csstools/postcss-color-mix-function": "npm:^3.0.1" "@csstools/postcss-content-alt-text": "npm:^2.0.0" "@csstools/postcss-exponential-functions": "npm:^2.0.0" "@csstools/postcss-font-format-keywords": "npm:^4.0.0" - "@csstools/postcss-gamut-mapping": "npm:^2.0.0" - "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.0" - "@csstools/postcss-hwb-function": "npm:^4.0.0" + "@csstools/postcss-gamut-mapping": "npm:^2.0.1" + "@csstools/postcss-gradients-interpolation-method": "npm:^5.0.1" + "@csstools/postcss-hwb-function": "npm:^4.0.1" "@csstools/postcss-ic-unit": "npm:^4.0.0" "@csstools/postcss-initial": "npm:^2.0.0" "@csstools/postcss-is-pseudo-class": "npm:^5.0.0" - "@csstools/postcss-light-dark-function": "npm:^2.0.0" + "@csstools/postcss-light-dark-function": "npm:^2.0.1" "@csstools/postcss-logical-float-and-clear": "npm:^3.0.0" "@csstools/postcss-logical-overflow": "npm:^2.0.0" "@csstools/postcss-logical-overscroll-behavior": "npm:^2.0.0" @@ -13925,12 +13925,12 @@ __metadata: "@csstools/postcss-media-queries-aspect-ratio-number-values": "npm:^3.0.0" "@csstools/postcss-nested-calc": "npm:^4.0.0" "@csstools/postcss-normalize-display-values": "npm:^4.0.0" - "@csstools/postcss-oklab-function": "npm:^4.0.0" + "@csstools/postcss-oklab-function": "npm:^4.0.1" "@csstools/postcss-progressive-custom-properties": "npm:^4.0.0" - "@csstools/postcss-relative-color-syntax": "npm:^3.0.0" + "@csstools/postcss-relative-color-syntax": "npm:^3.0.1" "@csstools/postcss-scope-pseudo-class": "npm:^4.0.0" "@csstools/postcss-stepped-value-functions": "npm:^4.0.0" - "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.0" + "@csstools/postcss-text-decoration-shorthand": "npm:^4.0.1" "@csstools/postcss-trigonometric-functions": "npm:^4.0.0" "@csstools/postcss-unset-value": "npm:^4.0.0" autoprefixer: "npm:^10.4.19" @@ -13941,7 +13941,7 @@ __metadata: cssdb: "npm:^8.1.0" postcss-attribute-case-insensitive: "npm:^7.0.0" postcss-clamp: "npm:^4.1.0" - postcss-color-functional-notation: "npm:^7.0.0" + postcss-color-functional-notation: "npm:^7.0.1" postcss-color-hex-alpha: "npm:^10.0.0" postcss-color-rebeccapurple: "npm:^10.0.0" postcss-custom-media: "npm:^11.0.0" @@ -13954,7 +13954,7 @@ __metadata: postcss-font-variant: "npm:^5.0.0" postcss-gap-properties: "npm:^6.0.0" postcss-image-set-function: "npm:^7.0.0" - postcss-lab-function: "npm:^7.0.0" + postcss-lab-function: "npm:^7.0.1" postcss-logical: "npm:^8.0.0" postcss-nesting: "npm:^13.0.0" postcss-opacity-percentage: "npm:^2.0.0" @@ -13966,7 +13966,7 @@ __metadata: postcss-selector-not: "npm:^8.0.0" peerDependencies: postcss: ^8.4 - checksum: 10c0/0b61c44233ee7fd17e32912ce028edc19998f30183f1ff2186523c4f9eac4a2a36513af31670e13ceb05f2146c4549a0b870ba0de0e3a08e77a9d57d8de72654 + checksum: 10c0/5849915d040413f68ab71b3489daaa5b6687b4d4710da47a0d1420df0890858f0b53c9ec6755d872dbe38a2695ab12584be654456e3d6ce311b88927209c02b2 languageName: node linkType: hard From 3cc2968344b204449fa6808df2333ce8d5a73d10 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 14:55:01 +0000 Subject: [PATCH 27/40] Update dependency wicg-inert to v3.1.3 (#31423) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index f0d64d73bf..2de7428b66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18269,9 +18269,9 @@ __metadata: linkType: hard "wicg-inert@npm:^3.1.2": - version: 3.1.2 - resolution: "wicg-inert@npm:3.1.2" - checksum: 10c0/5b20eaedcb30f1093fb6afd0480a059e40814da56c6052469c6fe95dd2d288b89c55ed1bdbfae4db70fd5ec8148dda8dd3b671a27a26870c8f77626b13cedd1b + version: 3.1.3 + resolution: "wicg-inert@npm:3.1.3" + checksum: 10c0/160b981584e40d3a568af16a93b70dca847d9fce6d6704b40c60a9a1435f77406cc1abc56aa1bb5a63669c6cb819f09d51d7f27c16f3829cb86052e3fd27f2b0 languageName: node linkType: hard From a1ddaa9ee96ab1d05f4e37f3472b0418e0d5628e Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Wed, 14 Aug 2024 12:09:23 -0500 Subject: [PATCH 28/40] Fix removal of border from account listing (#31432) --- app/javascript/styles/mastodon/admin.scss | 1 + app/javascript/styles/mastodon/components.scss | 1 + 2 files changed, 2 insertions(+) diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss index a1b4e74e0d..0df8d7a271 100644 --- a/app/javascript/styles/mastodon/admin.scss +++ b/app/javascript/styles/mastodon/admin.scss @@ -872,6 +872,7 @@ a.name-tag, .account { padding: 0; + border: none; &__avatar-wrapper { margin-inline-start: 0; diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index b049635d16..8373cad0ce 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -1808,6 +1808,7 @@ body > [data-popper-placement] { .account { padding: 16px; + border-bottom: 1px solid var(--background-border-color); .account__display-name { flex: 1 1 auto; From 9194197de580242e7572aa00b7c07bff6170cf7e Mon Sep 17 00:00:00 2001 From: Michael Stanclift Date: Wed, 14 Aug 2024 14:23:45 -0500 Subject: [PATCH 29/40] Modify profile directory page image borders (#31391) --- app/javascript/styles/mastodon/components.scss | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 8373cad0ce..08f43c59cb 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -7372,9 +7372,18 @@ a.status-card { } .scrollable .account-card__title__avatar { - img, + img { + border: 2px solid var(--background-color); + } + .account__avatar { - border-color: lighten($ui-base-color, 8%); + border: none; + } +} + +.scrollable .account-card__header { + img { + border-radius: 4px; } } From 4545b8d6cbab59591135ce8d0dfc75ad84c46e73 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Thu, 15 Aug 2024 08:44:13 +0200 Subject: [PATCH 30/40] Add the ability to ignore specific browser errors for a spec (#31436) --- ...javascript_errors.rb => browser_errors.rb} | 19 ++++++++++++++++--- spec/system/log_out_spec.rb | 3 +++ 2 files changed, 19 insertions(+), 3 deletions(-) rename spec/support/{javascript_errors.rb => browser_errors.rb} (66%) diff --git a/spec/support/javascript_errors.rb b/spec/support/browser_errors.rb similarity index 66% rename from spec/support/javascript_errors.rb rename to spec/support/browser_errors.rb index ef5945f37d..8a31ba3ab6 100644 --- a/spec/support/javascript_errors.rb +++ b/spec/support/browser_errors.rb @@ -1,23 +1,36 @@ # frozen_string_literal: true +module BrowserErrorsHelpers + def ignore_js_error(error) + @ignored_js_errors_for_spec << error + end +end + RSpec.configure do |config| + config.include BrowserErrorsHelpers, :js, type: :system + + config.before(:each, :js, type: :system) do + @ignored_js_errors_for_spec = [] + end + config.after(:each, :js, type: :system) do # Classes of intermittent ignorable errors ignored_errors = [ /Error while trying to use the following icon from the Manifest/, # https://github.com/mastodon/mastodon/pull/30793 /Manifest: Line: 1, column: 1, Syntax error/, # Similar parsing/interruption issue as above - ] + ].concat(@ignored_js_errors_for_spec) + errors = page.driver.browser.logs.get(:browser).reject do |error| ignored_errors.any? { |pattern| pattern.match(error.message) } end if errors.present? - aggregate_failures 'javascript errrors' do + aggregate_failures 'browser errrors' do errors.each do |error| expect(error.level).to_not eq('SEVERE'), error.message next unless error.level == 'WARNING' - warn 'WARN: javascript warning' + warn 'WARN: browser warning' warn error.message end end diff --git a/spec/system/log_out_spec.rb b/spec/system/log_out_spec.rb index 376f19712e..f50f7c2d18 100644 --- a/spec/system/log_out_spec.rb +++ b/spec/system/log_out_spec.rb @@ -24,6 +24,9 @@ describe 'Log out' do describe 'Logging out from the JS app', :js, :streaming do it 'logs the user out' do + # The frontend tries to load announcements after a short delay, but the session might be expired by then, and the browser will output an error. + ignore_js_error(/Failed to load resource: the server responded with a status of 422/) + visit root_path within '.navigation-bar' do From 5d04e297755c4a8b4e908f706d272520521341d4 Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Thu, 15 Aug 2024 08:45:00 +0200 Subject: [PATCH 31/40] Disable Chrome's search engine selection screen when running system specs (#31437) --- spec/support/capybara.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/spec/support/capybara.rb b/spec/support/capybara.rb index be1378ffac..4357d51382 100644 --- a/spec/support/capybara.rb +++ b/spec/support/capybara.rb @@ -6,14 +6,20 @@ Capybara.app_host = "http://#{Capybara.server_host}:#{Capybara.server_port}" require 'selenium/webdriver' +def common_chrome_options + options = Selenium::WebDriver::Chrome::Options.new + options.add_argument '--window-size=1680,1050' + options.add_argument '--disable-search-engine-choice-screen' + options +end + Capybara.register_driver :chrome do |app| - Capybara::Selenium::Driver.new(app, browser: :chrome) + Capybara::Selenium::Driver.new(app, browser: :chrome, options: common_chrome_options) end Capybara.register_driver :headless_chrome do |app| - options = Selenium::WebDriver::Chrome::Options.new + options = common_chrome_options options.add_argument '--headless=new' - options.add_argument '--window-size=1680,1050' Capybara::Selenium::Driver.new( app, From 9a245527329b8fac8019945a8831991dca0bdd82 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:11:33 +0200 Subject: [PATCH 32/40] New Crowdin Translations (automated) (#31440) Co-authored-by: GitHub Actions --- app/javascript/mastodon/locales/ar.json | 19 ++++++++ app/javascript/mastodon/locales/de.json | 6 +-- app/javascript/mastodon/locales/en-GB.json | 50 +++++++++++++++++++ app/javascript/mastodon/locales/fi.json | 4 +- app/javascript/mastodon/locales/fr-CA.json | 18 +++++++ app/javascript/mastodon/locales/fr.json | 18 +++++++ app/javascript/mastodon/locales/gl.json | 2 +- app/javascript/mastodon/locales/he.json | 1 + app/javascript/mastodon/locales/kab.json | 7 +++ app/javascript/mastodon/locales/lad.json | 26 +++++++++- app/javascript/mastodon/locales/sc.json | 26 ++++++++++ app/javascript/mastodon/locales/uk.json | 3 +- config/locales/ar.yml | 4 ++ config/locales/de.yml | 22 ++++----- config/locales/devise.de.yml | 4 +- config/locales/doorkeeper.ar.yml | 1 + config/locales/fi.yml | 4 +- config/locales/gl.yml | 4 +- config/locales/he.yml | 57 ++++++++++++++++++++++ config/locales/hu.yml | 2 +- config/locales/kab.yml | 6 +++ config/locales/lad.yml | 41 ++++++++++++++++ config/locales/simple_form.ar.yml | 3 ++ config/locales/simple_form.fr-CA.yml | 2 + config/locales/simple_form.fr.yml | 2 + config/locales/simple_form.gl.yml | 6 +-- config/locales/uk.yml | 37 ++++++++++++++ config/locales/zh-TW.yml | 2 +- 28 files changed, 347 insertions(+), 30 deletions(-) diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index e7b3e7dacb..48448196be 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -11,6 +11,7 @@ "about.not_available": "لم يتم توفير هذه المعلومات على هذا الخادم.", "about.powered_by": "شبكة اجتماعية لامركزية مدعومة من {mastodon}", "about.rules": "قواعد الخادم", + "account.account_note_header": "ملاحظة شخصية", "account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة", "account.badges.bot": "آلي", "account.badges.group": "فريق", @@ -176,9 +177,11 @@ "confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟", "confirmations.logout.confirm": "خروج", "confirmations.logout.message": "متأكد من أنك تريد الخروج؟", + "confirmations.logout.title": "أتريد المغادرة؟", "confirmations.mute.confirm": "أكتم", "confirmations.redraft.confirm": "إزالة وإعادة الصياغة", "confirmations.redraft.message": "هل أنت متأكد من أنك تريد حذف هذا المنشور و إعادة صياغته؟ سوف تفقد جميع الإعجابات و الترقيات أما الردود المتصلة به فستُصبِح يتيمة.", + "confirmations.redraft.title": "أتريد حذف وإعادة صياغة المنشور؟", "confirmations.reply.confirm": "رد", "confirmations.reply.message": "الرد في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد كتابتها. متأكد من أنك تريد المواصلة؟", "confirmations.unfollow.confirm": "إلغاء المتابعة", @@ -464,6 +467,11 @@ "notification.favourite": "أضاف {name} منشورك إلى مفضلته", "notification.follow": "يتابعك {name}", "notification.follow_request": "لقد طلب {name} متابعتك", + "notification.label.mention": "إشارة", + "notification.label.private_mention": "إشارة خاصة", + "notification.label.private_reply": "رد خاص", + "notification.label.reply": "ردّ", + "notification.mention": "إشارة", "notification.moderation-warning.learn_more": "اعرف المزيد", "notification.moderation_warning": "لقد تلقيت تحذيرًا بالإشراف", "notification.moderation_warning.action_delete_statuses": "تم إزالة بعض مشاركاتك.", @@ -474,6 +482,7 @@ "notification.moderation_warning.action_silence": "لقد تم تقييد حسابك.", "notification.moderation_warning.action_suspend": "لقد تم تعليق حسابك.", "notification.own_poll": "انتهى استطلاعك للرأي", + "notification.poll": "لقد انتهى استطلاع رأي صوتت فيه", "notification.reblog": "قام {name} بمشاركة منشورك", "notification.relationships_severance_event": "فقدت الاتصالات مع {name}", "notification.relationships_severance_event.account_suspension": "قام مشرف من {from} بتعليق {target}، مما يعني أنك لم يعد بإمكانك تلقي التحديثات منهم أو التفاعل معهم.", @@ -483,7 +492,13 @@ "notification.status": "{name} نشر للتو", "notification.update": "عدّلَ {name} منشورًا", "notification_requests.accept": "موافقة", + "notification_requests.accept_all": "قبول الكل", + "notification_requests.confirm_accept_all.button": "قبول الكل", + "notification_requests.confirm_dismiss_all.button": "تجاهل الكل", "notification_requests.dismiss": "تخطي", + "notification_requests.dismiss_all": "تجاهل الكل", + "notification_requests.enter_selection_mode": "اختر", + "notification_requests.exit_selection_mode": "إلغاء", "notification_requests.notifications_from": "إشعارات من {name}", "notification_requests.title": "الإشعارات المصفاة", "notifications.clear": "مسح الإشعارات", @@ -654,8 +669,11 @@ "report_notification.attached_statuses": "{count, plural, one {{count} منشور} other {{count} منشورات}} مرفقة", "report_notification.categories.legal": "أمور قانونية", "report_notification.categories.other": "آخر", + "report_notification.categories.other_sentence": "آخر", "report_notification.categories.spam": "مزعج", + "report_notification.categories.spam_sentence": "مزعج", "report_notification.categories.violation": "القاعدة المنتهَكة", + "report_notification.categories.violation_sentence": "انتهاك لقاعدة", "report_notification.open": "فتح التقرير", "search.no_recent_searches": "ما من عمليات بحث تمت مؤخرًا", "search.placeholder": "ابحث", @@ -760,6 +778,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} من الخوادم الأخرى لا يتم عرضها.", "timeline_hint.resources.followers": "المتابِعون", "timeline_hint.resources.follows": "المتابَعون", + "timeline_hint.resources.replies": "بعض الردود", "timeline_hint.resources.statuses": "المنشورات القديمة", "trends.counter_by_accounts": "{count, plural, one {شخص واحد} two {شخصان} few {{counter} أشخاصٍ} many {{counter} شخصًا} other {{counter} شخصًا}} {days, plural, one {خلال اليوم الماضي} two {خلال اليومَيْنِ الماضيَيْنِ} few {خلال {days} أيام الماضية} many {خلال {days} يومًا الماضية} other {خلال {days} يومٍ الماضية}}", "trends.trending_now": "المتداولة الآن", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 620c5e190a..2d49f172e6 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -356,7 +356,7 @@ "home.pending_critical_update.link": "Updates ansehen", "home.pending_critical_update.title": "Kritisches Sicherheitsupdate verfügbar!", "home.show_announcements": "Ankündigungen anzeigen", - "ignore_notifications_modal.disclaimer": "Mastodon kann anderen Nutzer*innen nicht mitteilen, dass du deren Benachrichtigungen ignorierst. Das Ignorieren von Benachrichtigung wird das Absenden der Nachricht selbst nicht unterbinden.", + "ignore_notifications_modal.disclaimer": "Mastodon kann anderen Nutzer*innen nicht mitteilen, dass du deren Benachrichtigungen ignorierst. Das Ignorieren von Benachrichtigungen wird nicht das Absenden der Nachricht selbst unterbinden.", "ignore_notifications_modal.filter_instead": "Stattdessen filtern", "ignore_notifications_modal.filter_to_act_users": "Du wirst weiterhin die Möglichkeit haben, andere Nutzer*innen zu genehmigen, abzulehnen oder zu melden", "ignore_notifications_modal.filter_to_avoid_confusion": "Filtern hilft, mögliches Durcheinander zu vermeiden", @@ -578,7 +578,7 @@ "notifications.policy.accept_hint": "In Benachrichtigungen anzeigen", "notifications.policy.drop": "Ignorieren", "notifications.policy.drop_hint": "In die Leere senden und nie wieder sehen", - "notifications.policy.filter": "Filter", + "notifications.policy.filter": "Filtern", "notifications.policy.filter_hint": "An gefilterte Benachrichtigungen im Posteingang senden", "notifications.policy.filter_limited_accounts_hint": "Durch Server-Moderator*innen eingeschränkt", "notifications.policy.filter_limited_accounts_title": "Moderierte Konten", @@ -586,7 +586,7 @@ "notifications.policy.filter_new_accounts_title": "Neuen Konten", "notifications.policy.filter_not_followers_hint": "Einschließlich Profilen, die dir seit weniger als {days, plural, one {einem Tag} other {# Tagen}} folgen", "notifications.policy.filter_not_followers_title": "Profilen, die mir nicht folgen", - "notifications.policy.filter_not_following_hint": "Solange du sie nicht manuell akzeptierst", + "notifications.policy.filter_not_following_hint": "Bis du sie manuell genehmigst", "notifications.policy.filter_not_following_title": "Profilen, denen ich nicht folge", "notifications.policy.filter_private_mentions_hint": "Solange sie keine Antwort auf deine Erwähnung ist oder du dem Profil nicht folgst", "notifications.policy.filter_private_mentions_title": "Unerwünschten privaten Erwähnungen", diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json index 64e22505b2..8315333994 100644 --- a/app/javascript/mastodon/locales/en-GB.json +++ b/app/javascript/mastodon/locales/en-GB.json @@ -11,6 +11,7 @@ "about.not_available": "This information has not been made available on this server.", "about.powered_by": "Decentralised social media powered by {mastodon}", "about.rules": "Server rules", + "account.account_note_header": "Personal note", "account.add_or_remove_from_list": "Add or Remove from lists", "account.badges.bot": "Automated", "account.badges.group": "Group", @@ -170,21 +171,28 @@ "confirmations.block.confirm": "Block", "confirmations.delete.confirm": "Delete", "confirmations.delete.message": "Are you sure you want to delete this post?", + "confirmations.delete.title": "Delete post?", "confirmations.delete_list.confirm": "Delete", "confirmations.delete_list.message": "Are you sure you want to permanently delete this list?", + "confirmations.delete_list.title": "Delete list?", "confirmations.discard_edit_media.confirm": "Discard", "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?", "confirmations.edit.confirm": "Edit", "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.edit.title": "Overwrite post?", "confirmations.logout.confirm": "Log out", "confirmations.logout.message": "Are you sure you want to log out?", + "confirmations.logout.title": "Log out?", "confirmations.mute.confirm": "Mute", "confirmations.redraft.confirm": "Delete & redraft", "confirmations.redraft.message": "Are you sure you want to delete this post and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.", + "confirmations.redraft.title": "Delete & redraft post?", "confirmations.reply.confirm": "Reply", "confirmations.reply.message": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?", + "confirmations.reply.title": "Overwrite post?", "confirmations.unfollow.confirm": "Unfollow", "confirmations.unfollow.message": "Are you sure you want to unfollow {name}?", + "confirmations.unfollow.title": "Unfollow user?", "conversation.delete": "Delete conversation", "conversation.mark_as_read": "Mark as read", "conversation.open": "View conversation", @@ -292,6 +300,7 @@ "filter_modal.select_filter.subtitle": "Use an existing category or create a new one", "filter_modal.select_filter.title": "Filter this post", "filter_modal.title.status": "Filter a post", + "filtered_notifications_banner.pending_requests": "From {count, plural, =0 {no one} one {one person} other {# people}} you may know", "filtered_notifications_banner.title": "Filtered notifications", "firehose.all": "All", "firehose.local": "This server", @@ -347,6 +356,16 @@ "home.pending_critical_update.link": "See updates", "home.pending_critical_update.title": "Critical security update available!", "home.show_announcements": "Show announcements", + "ignore_notifications_modal.disclaimer": "Mastodon cannot inform users that you've ignored their notifications. Ignoring notifications will not stop the messages themselves from being sent.", + "ignore_notifications_modal.filter_instead": "Filter instead", + "ignore_notifications_modal.filter_to_act_users": "You'll still be able to accept, reject, or report users", + "ignore_notifications_modal.filter_to_avoid_confusion": "Filtering helps avoid potential confusion", + "ignore_notifications_modal.filter_to_review_separately": "You can review filtered notifications separately", + "ignore_notifications_modal.ignore": "Ignore notifications", + "ignore_notifications_modal.limited_accounts_title": "Ignore notifications from restricted accounts?", + "ignore_notifications_modal.new_accounts_title": "Ignore notifications from new accounts?", + "ignore_notifications_modal.not_followers_title": "Ignore notifications from people not following you?", + "ignore_notifications_modal.not_following_title": "Ignore notifications from people you don't follow?", "interaction_modal.description.favourite": "With an account on Mastodon, you can favourite this post to let the author know you appreciate it and save it for later.", "interaction_modal.description.follow": "With an account on Mastodon, you can follow {name} to receive their posts in your home feed.", "interaction_modal.description.reblog": "With an account on Mastodon, you can boost this post to share it with your own followers.", @@ -473,6 +492,11 @@ "notification.favourite": "{name} favourited your post", "notification.follow": "{name} followed you", "notification.follow_request": "{name} has requested to follow you", + "notification.label.mention": "Mention", + "notification.label.private_mention": "Private mention", + "notification.label.private_reply": "Private reply", + "notification.label.reply": "Reply", + "notification.mention": "Mention", "notification.moderation-warning.learn_more": "Learn more", "notification.moderation_warning": "You have received a moderation warning", "notification.moderation_warning.action_delete_statuses": "Some of your posts have been removed.", @@ -493,11 +517,28 @@ "notification.status": "{name} just posted", "notification.update": "{name} edited a post", "notification_requests.accept": "Accept", + "notification_requests.accept_all": "Accept all", + "notification_requests.accept_multiple": "{count, plural, one {Accept 1 request} other {Accept # requests}}", + "notification_requests.confirm_accept_all.button": "Accept all", + "notification_requests.confirm_accept_all.message": "You are about to accept {count, plural, one {one notification request} other {# notification requests}}. Are you sure you want to proceed?", + "notification_requests.confirm_accept_all.title": "Accept notification requests?", + "notification_requests.confirm_dismiss_all.button": "Dismiss all", + "notification_requests.confirm_dismiss_all.message": "You are about to dismiss {count, plural, one {one notification request} other {# notification requests}}. You won't be able to easily access {count, plural, one {it} other {them}} again. Are you sure you want to proceed?", + "notification_requests.confirm_dismiss_all.title": "Dismiss notification requests?", "notification_requests.dismiss": "Dismiss", + "notification_requests.dismiss_all": "Dismiss all", + "notification_requests.dismiss_multiple": "{count, plural, one {Dismiss one request} other {Dismiss # requests}}", + "notification_requests.enter_selection_mode": "Select", + "notification_requests.exit_selection_mode": "Cancel", + "notification_requests.explainer_for_limited_account": "Notifications from this account have been filtered because the account has been limited by a moderator.", + "notification_requests.explainer_for_limited_remote_account": "Notifications from this account have been filtered because the account or its server has been limited by a moderator.", + "notification_requests.minimize_banner": "Minimize filtered notifications banner", "notification_requests.notifications_from": "Notifications from {name}", "notification_requests.title": "Filtered notifications", + "notification_requests.view": "View notifications", "notifications.clear": "Clear notifications", "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?", + "notifications.clear_title": "Clear notifications?", "notifications.column_settings.admin.report": "New reports:", "notifications.column_settings.admin.sign_up": "New sign-ups:", "notifications.column_settings.alert": "Desktop notifications", @@ -531,6 +572,13 @@ "notifications.permission_denied": "Desktop notifications are unavailable due to previously denied browser permissions request", "notifications.permission_denied_alert": "Desktop notifications can't be enabled, as browser permission has been denied before", "notifications.permission_required": "Desktop notifications are unavailable because the required permission has not been granted.", + "notifications.policy.accept": "Accept", + "notifications.policy.drop": "Ignore", + "notifications.policy.drop_hint": "Send to the void, never to be seen again", + "notifications.policy.filter": "Filter", + "notifications.policy.filter_hint": "Send to filtered notifications inbox", + "notifications.policy.filter_limited_accounts_hint": "Limited by server moderators", + "notifications.policy.filter_limited_accounts_title": "Moderated accounts", "notifications.policy.filter_new_accounts.hint": "Created within the past {days, plural, one {one day} other {# days}}", "notifications.policy.filter_new_accounts_title": "New accounts", "notifications.policy.filter_not_followers_hint": "Including people who have been following you fewer than {days, plural, one {one day} other {# days}}", @@ -539,6 +587,7 @@ "notifications.policy.filter_not_following_title": "People you don't follow", "notifications.policy.filter_private_mentions_hint": "Filtered unless it's in reply to your own mention or if you follow the sender", "notifications.policy.filter_private_mentions_title": "Unsolicited private mentions", + "notifications.policy.title": "Manage notifications from…", "notifications_permission_banner.enable": "Enable desktop notifications", "notifications_permission_banner.how_to_control": "To receive notifications when Mastodon isn't open, enable desktop notifications. You can control precisely which types of interactions generate desktop notifications through the {icon} button above once they're enabled.", "notifications_permission_banner.title": "Never miss a thing", @@ -779,6 +828,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.", "timeline_hint.resources.followers": "Followers", "timeline_hint.resources.follows": "Follows", + "timeline_hint.resources.replies": "Some replies", "timeline_hint.resources.statuses": "Older posts", "trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} people}} in the past {days, plural, one {day} other {{days} days}}", "trends.trending_now": "Trending now", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index b583f80fe1..9b48f1bf37 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -327,7 +327,7 @@ "footer.about": "Tietoja", "footer.directory": "Profiilihakemisto", "footer.get_app": "Hanki sovellus", - "footer.invite": "Kutsu ihmisiä", + "footer.invite": "Kutsu käyttäjiä", "footer.keyboard_shortcuts": "Pikanäppäimet", "footer.privacy_policy": "Tietosuojakäytäntö", "footer.source_code": "Näytä lähdekoodi", @@ -366,7 +366,7 @@ "ignore_notifications_modal.new_accounts_title": "Sivuutetaanko ilmoitukset uusilta tileiltä?", "ignore_notifications_modal.not_followers_title": "Sivuutetaanko ilmoitukset käyttäjiltä, jotka eivät seuraa sinua?", "ignore_notifications_modal.not_following_title": "Sivuutetaanko ilmoitukset käyttäjiltä, joita et seuraa?", - "ignore_notifications_modal.private_mentions_title": "Sivuutetaanko ilmoitukset ei-toivotuista yksityismaininnoista?", + "ignore_notifications_modal.private_mentions_title": "Sivuutetaanko ilmoitukset pyytämättömistä yksityismaininnoista?", "interaction_modal.description.favourite": "Mastodon-tilillä voit lisätä tämän julkaisun suosikkeihisi osoittaaksesi tekijälle arvostavasi sitä ja tallentaaksesi sen tulevaa käyttöä varten.", "interaction_modal.description.follow": "Mastodon-tilillä voit seurata käyttäjää {name} saadaksesi hänen julkaisunsa kotisyötteeseesi.", "interaction_modal.description.reblog": "Mastodon-tilillä voit tehostaa tätä julkaisua jakaaksesi sen seuraajiesi kanssa.", diff --git a/app/javascript/mastodon/locales/fr-CA.json b/app/javascript/mastodon/locales/fr-CA.json index 1ad821ee07..9cf1d8a69b 100644 --- a/app/javascript/mastodon/locales/fr-CA.json +++ b/app/javascript/mastodon/locales/fr-CA.json @@ -35,6 +35,7 @@ "account.follow_back": "S'abonner en retour", "account.followers": "abonné·e·s", "account.followers.empty": "Personne ne suit ce compte pour l'instant.", + "account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}", "account.following": "Abonné·e", "account.follows.empty": "Ce compte ne suit personne présentement.", "account.go_to_profile": "Voir ce profil", @@ -313,6 +314,7 @@ "follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.", "follow_suggestions.personalized_suggestion": "Suggestion personnalisée", "follow_suggestions.popular_suggestion": "Suggestion populaire", + "follow_suggestions.popular_suggestion_longer": "Populaire sur {domain}", "follow_suggestions.view_all": "Tout afficher", "follow_suggestions.who_to_follow": "Qui suivre", "followed_tags": "Hashtags suivis", @@ -466,7 +468,19 @@ "notification.favourite": "{name} a ajouté votre publication à ses favoris", "notification.follow": "{name} vous suit", "notification.follow_request": "{name} a demandé à vous suivre", + "notification.label.private_mention": "Mention privée", + "notification.label.private_reply": "Répondre en privé", + "notification.moderation-warning.learn_more": "En savoir plus", + "notification.moderation_warning": "Vous avez reçu un avertissement de modération", + "notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.", + "notification.moderation_warning.action_disable": "Votre compte a été désactivé.", + "notification.moderation_warning.action_mark_statuses_as_sensitive": "Certains de vos messages ont été marqués comme sensibles.", + "notification.moderation_warning.action_none": "Votre compte a reçu un avertissement de modération.", + "notification.moderation_warning.action_sensitive": "Vos messages seront désormais marqués comme sensibles.", + "notification.moderation_warning.action_silence": "Votre compte a été limité.", + "notification.moderation_warning.action_suspend": "Votre compte a été suspendu.", "notification.own_poll": "Votre sondage est terminé", + "notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.reblog": "{name} a boosté votre message", "notification.relationships_severance_event": "Connexions perdues avec {name}", "notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.", @@ -476,6 +490,9 @@ "notification.status": "{name} vient de publier", "notification.update": "{name} a modifié une publication", "notification_requests.accept": "Accepter", + "notification_requests.accept_all": "Tout accepter", + "notification_requests.confirm_accept_all.button": "Tout accepter", + "notification_requests.confirm_dismiss_all.button": "Tout rejeter", "notification_requests.dismiss": "Rejeter", "notification_requests.notifications_from": "Notifications de {name}", "notification_requests.title": "Notifications filtrées", @@ -649,6 +666,7 @@ "report_notification.categories.legal": "Mentions légales", "report_notification.categories.other": "Autre", "report_notification.categories.spam": "Spam", + "report_notification.categories.spam_sentence": "indésirable", "report_notification.categories.violation": "Infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", "search.no_recent_searches": "Aucune recherche récente", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index 141a856e31..6546cbb1e9 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -35,6 +35,7 @@ "account.follow_back": "S'abonner en retour", "account.followers": "Abonné·e·s", "account.followers.empty": "Personne ne suit cet·te utilisateur·rice pour l’instant.", + "account.followers_counter": "{count, plural, one {{counter} abonné·e} other {{counter} abonné·e·s}}", "account.following": "Abonnements", "account.follows.empty": "Cet·te utilisateur·rice ne suit personne pour l’instant.", "account.go_to_profile": "Aller au profil", @@ -313,6 +314,7 @@ "follow_suggestions.hints.similar_to_recently_followed": "Ce profil est similaire aux profils que vous avez suivis le plus récemment.", "follow_suggestions.personalized_suggestion": "Suggestion personnalisée", "follow_suggestions.popular_suggestion": "Suggestion populaire", + "follow_suggestions.popular_suggestion_longer": "Populaire sur {domain}", "follow_suggestions.view_all": "Tout afficher", "follow_suggestions.who_to_follow": "Qui suivre", "followed_tags": "Hashtags suivis", @@ -466,7 +468,19 @@ "notification.favourite": "{name} a ajouté votre message à ses favoris", "notification.follow": "{name} vous suit", "notification.follow_request": "{name} a demandé à vous suivre", + "notification.label.private_mention": "Mention privée", + "notification.label.private_reply": "Répondre en privé", + "notification.moderation-warning.learn_more": "En savoir plus", + "notification.moderation_warning": "Vous avez reçu un avertissement de modération", + "notification.moderation_warning.action_delete_statuses": "Certains de vos messages ont été supprimés.", + "notification.moderation_warning.action_disable": "Votre compte a été désactivé.", + "notification.moderation_warning.action_mark_statuses_as_sensitive": "Certains de vos messages ont été marqués comme sensibles.", + "notification.moderation_warning.action_none": "Votre compte a reçu un avertissement de modération.", + "notification.moderation_warning.action_sensitive": "Vos messages seront désormais marqués comme sensibles.", + "notification.moderation_warning.action_silence": "Votre compte a été limité.", + "notification.moderation_warning.action_suspend": "Votre compte a été suspendu.", "notification.own_poll": "Votre sondage est terminé", + "notification.poll": "Un sondage auquel vous avez participé vient de se terminer", "notification.reblog": "{name} a partagé votre message", "notification.relationships_severance_event": "Connexions perdues avec {name}", "notification.relationships_severance_event.account_suspension": "Un·e administrateur·rice de {from} a suspendu {target}, ce qui signifie que vous ne pourrez plus recevoir de mises à jour ou interagir avec lui.", @@ -476,6 +490,9 @@ "notification.status": "{name} vient de publier", "notification.update": "{name} a modifié un message", "notification_requests.accept": "Accepter", + "notification_requests.accept_all": "Tout accepter", + "notification_requests.confirm_accept_all.button": "Tout accepter", + "notification_requests.confirm_dismiss_all.button": "Tout rejeter", "notification_requests.dismiss": "Rejeter", "notification_requests.notifications_from": "Notifications de {name}", "notification_requests.title": "Notifications filtrées", @@ -649,6 +666,7 @@ "report_notification.categories.legal": "Légal", "report_notification.categories.other": "Autre", "report_notification.categories.spam": "Spam", + "report_notification.categories.spam_sentence": "indésirable", "report_notification.categories.violation": "Infraction aux règles du serveur", "report_notification.open": "Ouvrir le signalement", "search.no_recent_searches": "Aucune recherche récente", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 7d71400206..c344c19b7e 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -834,7 +834,7 @@ "timeline_hint.resources.replies": "Algunhas respostas", "timeline_hint.resources.statuses": "Publicacións antigas", "trends.counter_by_accounts": "{count, plural, one {{counter} persoa} other {{counter} persoas}} {days, plural, one {no último día} other {nos {days} últimos días}}", - "trends.trending_now": "Tendencias actuais", + "trends.trending_now": "Temas populares", "ui.beforeunload": "O borrador perderase se saes de Mastodon.", "units.short.billion": "{count}B", "units.short.million": "{count}M", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index e90826ded1..e9cbfcbcc3 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -356,6 +356,7 @@ "home.pending_critical_update.link": "צפיה בעדכונים", "home.pending_critical_update.title": "יצא עדכון אבטחה חשוב!", "home.show_announcements": "הצג הכרזות", + "ignore_notifications_modal.disclaimer": "מסטודון אינו יכול ליידע משתמשים שהתעלמתם מהתראותיהם. התעלמות מהתראות לא תחסום את ההודעות עצמן מלהשלח.", "ignore_notifications_modal.filter_instead": "לסנן במקום", "ignore_notifications_modal.filter_to_act_users": "עדיין ביכולתך לקבל, לדחות ולדווח על משתמשים אחרים", "ignore_notifications_modal.filter_to_avoid_confusion": "סינון מסייע למניעת בלבולים אפשריים", diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json index 7b7ee85066..420ba495f0 100644 --- a/app/javascript/mastodon/locales/kab.json +++ b/app/javascript/mastodon/locales/kab.json @@ -391,6 +391,10 @@ "notification.favourite": "{name} yesmenyaf addad-ik·im", "notification.follow": "iṭṭafar-ik·em-id {name}", "notification.follow_request": "{name} yessuter-d ad k·m-yeḍfeṛ", + "notification.label.private_mention": "Abdar uslig", + "notification.label.private_reply": "Tiririt tusligt", + "notification.label.reply": "Tiririt", + "notification.mention": "Abdar", "notification.moderation-warning.learn_more": "Issin ugar", "notification.moderation_warning.action_suspend": "Yettwaseḥbes umiḍan-ik.", "notification.own_poll": "Tafrant-ik·im tfuk", @@ -399,6 +403,7 @@ "notification.status": "{name} akken i d-yessufeɣ", "notification_requests.accept": "Qbel", "notification_requests.dismiss": "Agi", + "notification_requests.exit_selection_mode": "Sefsex", "notification_requests.notifications_from": "Alɣuten sɣur {name}", "notifications.clear": "Sfeḍ alɣuten", "notifications.clear_confirmation": "Tebɣiḍ s tidet ad tekkseḍ akk alɣuten-inek·em i lebda?", @@ -430,6 +435,7 @@ "notifications.group": "{count} n walɣuten", "notifications.mark_as_read": "Creḍ meṛṛa alɣuten am wakken ttwaɣran", "notifications.permission_denied": "D awezɣi ad yili wermad n walɣuten n tnarit axateṛ turagt tettwagdel", + "notifications.policy.drop": "Anef-as", "notifications.policy.filter_new_accounts.hint": "Imiḍanen imaynuten i d-yennulfan deg {days, plural, one {yiwen n wass} other {# n wussan}} yezrin", "notifications.policy.filter_new_accounts_title": "Imiḍan imaynuten", "notifications.policy.filter_not_followers_hint": "Ula d wid akked tid i k·m-id-iḍefren, ur wwiḍen ara {days, plural, one {yiwen wass} other {# wussan}}", @@ -537,6 +543,7 @@ "report_notification.categories.legal": "Azerfan", "report_notification.categories.other": "Ayen nniḍen", "report_notification.categories.spam": "Aspam", + "report_notification.categories.spam_sentence": "aspam", "report_notification.open": "Ldi aneqqis", "search.no_recent_searches": "Ulac inadiyen ineggura", "search.placeholder": "Nadi", diff --git a/app/javascript/mastodon/locales/lad.json b/app/javascript/mastodon/locales/lad.json index f4954ed3a9..0b0449c96a 100644 --- a/app/javascript/mastodon/locales/lad.json +++ b/app/javascript/mastodon/locales/lad.json @@ -11,6 +11,7 @@ "about.not_available": "Esta enformasyon no esta desponivle en este sirvidor.", "about.powered_by": "Redes sosyalas desentralizadas kon uzo de {mastodon}", "about.rules": "Reglas del sirvidor", + "account.account_note_header": "Nota personala", "account.add_or_remove_from_list": "Adjusta a o kita de listas", "account.badges.bot": "Otomatizado", "account.badges.group": "Grupo", @@ -165,21 +166,26 @@ "confirmations.block.confirm": "Bloka", "confirmations.delete.confirm": "Efasa", "confirmations.delete.message": "Estas siguro ke keres efasar esta publikasyon?", + "confirmations.delete.title": "Efasar publikasyon?", "confirmations.delete_list.confirm": "Efasa", "confirmations.delete_list.message": "Estas siguro ke keres permanentemente efasar esta lista?", + "confirmations.delete_list.title": "Efasa lista?", "confirmations.discard_edit_media.confirm": "Anula", "confirmations.discard_edit_media.message": "Tienes trokamientos no guadrados en la deskripsion o vista previa. Keres efasarlos entanto?", "confirmations.edit.confirm": "Edita", "confirmations.edit.message": "Si edites agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.logout.confirm": "Sal", "confirmations.logout.message": "Estas siguro ke keres salir de tu kuento?", + "confirmations.logout.title": "Salir?", "confirmations.mute.confirm": "Silensia", "confirmations.redraft.confirm": "Efasa i reeskrive", "confirmations.redraft.message": "Estas siguro ke keres efasar esta publikasyon i reeskrivirla? Pedreras todos los favoritos i repartajasyones asosiados kon esta publikasyon i repuestas a eya seran guerfanadas.", + "confirmations.redraft.title": "Efasar i reeskrivir?", "confirmations.reply.confirm": "Arisponde", "confirmations.reply.message": "Si arispondas agora, kitaras el mesaj kualo estas eskriviendo aktualmente. Estas siguro ke keres fazerlo?", "confirmations.unfollow.confirm": "Desige", "confirmations.unfollow.message": "Estas siguro ke keres deshar de segir a {name}?", + "confirmations.unfollow.title": "Desige utilizador?", "conversation.delete": "Efasa konversasyon", "conversation.mark_as_read": "Marka komo meldado", "conversation.open": "Ve konversasyon", @@ -277,6 +283,7 @@ "filter_modal.select_filter.subtitle": "Kulanea una kategoria egzistente o kriya mueva", "filter_modal.select_filter.title": "Filtra esta publikasyon", "filter_modal.title.status": "Filtra una publikasyon", + "filtered_notifications_banner.pending_requests": "De {count, plural, =0 {dingun} one {una persona} other {# personas}} ke puedes koneser", "filtered_notifications_banner.title": "Avizos filtrados", "firehose.all": "Todo", "firehose.local": "Este sirvidor", @@ -330,6 +337,7 @@ "home.pending_critical_update.link": "Ve aktualizasyones", "home.pending_critical_update.title": "Aktualizasyon de seguridad kritika esta desponivle!", "home.show_announcements": "Amostra pregones", + "ignore_notifications_modal.ignore": "Inyora avizos", "interaction_modal.description.favourite": "Kon un kuento en Mastodon, puedes markar esta publikasyon komo favorita para ke el autor sepa ke te plaze i para guadrarla para dempues.", "interaction_modal.description.follow": "Kon un kuento en Mastodon, puedes segir a {name} para risivir sus publikasyones en tu linya temporal prinsipala.", "interaction_modal.description.reblog": "Kon un kuento en Mastodon, puedes repartajar esta publikasyon para amostrarla a tus suivantes.", @@ -400,7 +408,7 @@ "lists.exclusive": "Eskonder estas publikasyones de linya prinsipala", "lists.new.create": "Adjusta lista", "lists.new.title_placeholder": "Titolo de mueva lista", - "lists.replies_policy.followed": "Kualseker utilizardo segido", + "lists.replies_policy.followed": "Kualseker utilizador segido", "lists.replies_policy.list": "Miembros de la lista", "lists.replies_policy.none": "Dinguno", "lists.replies_policy.title": "Amostra repuestas a:", @@ -449,6 +457,10 @@ "notification.favourite": "A {name} le plaze tu publikasyon", "notification.follow": "{name} te ampeso a segir", "notification.follow_request": "{name} tiene solisitado segirte", + "notification.label.mention": "Enmenta", + "notification.label.private_mention": "Enmentadura privada", + "notification.label.reply": "Arisponde", + "notification.mention": "Enmenta", "notification.moderation-warning.learn_more": "Ambezate mas", "notification.moderation_warning.action_disable": "Tu kuento tiene sido inkapasitado.", "notification.moderation_warning.action_mark_statuses_as_sensitive": "Algunas de tus publikasyones tienen sido markadas komo sensivles.", @@ -463,14 +475,21 @@ "notification.status": "{name} publiko algo", "notification.update": "{name} edito una publikasyon", "notification_requests.accept": "Acheta", + "notification_requests.accept_all": "Acheta todos", + "notification_requests.confirm_accept_all.button": "Acheta todos", "notification_requests.dismiss": "Kita", + "notification_requests.enter_selection_mode": "Eskoje", + "notification_requests.exit_selection_mode": "Anula", "notification_requests.notifications_from": "Avizos de {name}", "notification_requests.title": "Avizos filtrados", + "notification_requests.view": "Amostra avizos", "notifications.clear": "Efasa avizos", "notifications.clear_confirmation": "Estas siguro ke keres permanentemente efasar todos tus avizos?", + "notifications.clear_title": "Efasar avizos?", "notifications.column_settings.admin.report": "Muveos raportos:", "notifications.column_settings.admin.sign_up": "Muevas enrejistrasyones:", "notifications.column_settings.alert": "Avizos de ensimameza", + "notifications.column_settings.beta.category": "Funksyones eksperimentalas", "notifications.column_settings.favourite": "Te plazen:", "notifications.column_settings.filter_bar.advanced": "Amostra todas las kategorias", "notifications.column_settings.filter_bar.category": "Vara de filtrado rapido", @@ -499,6 +518,10 @@ "notifications.permission_denied": "Avizos de ensimameza no estan desponivles porke ya se tiene refuzado el permiso", "notifications.permission_denied_alert": "\"No se pueden kapasitar los avizos de ensimameza, porke ya se tiene refuzado el permiso de navigador", "notifications.permission_required": "Avizos de ensimameza no estan desponivles porke los nesesarios permisos no tienen sido risividos.", + "notifications.policy.accept": "Acheta", + "notifications.policy.accept_hint": "Amostra en avizos", + "notifications.policy.drop": "Inyora", + "notifications.policy.filter": "Filtra", "notifications.policy.filter_new_accounts.hint": "Kriyadas durante {days, plural, one {el ultimo diya} other {los ultimos # diyas}}", "notifications.policy.filter_new_accounts_title": "Muevos kuentos", "notifications.policy.filter_not_followers_title": "Personas ke te no sigen", @@ -739,6 +762,7 @@ "timeline_hint.remote_resource_not_displayed": "{resource} de otros sirvidores no se amostran.", "timeline_hint.resources.followers": "Suivantes", "timeline_hint.resources.follows": "Segidos", + "timeline_hint.resources.replies": "Algunas repuestas", "timeline_hint.resources.statuses": "Publikasyones mas viejas", "trends.counter_by_accounts": "{count, plural, one {{counter} kuento} other {{counter} kuentos}} en los ultimos {days, plural, one {diyas} other {{days} diyas}}", "trends.trending_now": "Trendes", diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json index cc23b3b1d8..8c08d4e54e 100644 --- a/app/javascript/mastodon/locales/sc.json +++ b/app/javascript/mastodon/locales/sc.json @@ -11,6 +11,7 @@ "about.not_available": "Custa informatzione no est istada posta a disponimentu in custu serbidore.", "about.powered_by": "Rete sotziale detzentralizada impulsada dae {mastodon}", "about.rules": "Règulas de su serbidore", + "account.account_note_header": "Nota personale", "account.add_or_remove_from_list": "Agiunghe o boga dae is listas", "account.badges.bot": "Automatizadu", "account.badges.group": "Grupu", @@ -27,6 +28,7 @@ "account.edit_profile": "Modìfica profilu", "account.enable_notifications": "Notìfica·mi cando @{name} pùblicat messàgios", "account.endorse": "Cussìgia in su profilu tuo", + "account.featured_tags.last_status_at": "Ùrtima publicatzione in su {date}", "account.featured_tags.last_status_never": "Peruna publicatzione", "account.featured_tags.title": "Etichetas de {name} in evidèntzia", "account.follow": "Sighi", @@ -71,10 +73,15 @@ "account.unmute_notifications_short": "Ativa is notìficas", "account.unmute_short": "Ativa su sonu", "account_note.placeholder": "Incarca pro agiùnghere una nota", + "admin.dashboard.daily_retention": "Tassu de ritentzione de is utentes a pustis de sa registratzione", + "admin.dashboard.monthly_retention": "Tassu de ritentzione de utentes pro mese a pustis de sa registratzione", + "admin.dashboard.retention.average": "Mèdiu", + "admin.dashboard.retention.cohort": "Mese de registratzione", "admin.dashboard.retention.cohort_size": "Utentes noos", "admin.impact_report.instance_accounts": "Contos de profilu chi custu diat cantzellare", "admin.impact_report.instance_followers": "Sighiduras chi is utentes nostros diant pèrdere", "admin.impact_report.instance_follows": "Sighiduras chi is utentes issoro diant pèrdere", + "admin.impact_report.title": "Resumu de s'impatu", "alert.rate_limited.message": "Torra·bi a proare a pustis de {retry_time, time, medium}.", "alert.rate_limited.title": "Màssimu de rechestas barigadu", "alert.unexpected.message": "Ddoe est istada una faddina.", @@ -82,6 +89,7 @@ "announcement.announcement": "Annùntziu", "attachments_list.unprocessed": "(non protzessadu)", "audio.hide": "Cua s'àudio", + "block_modal.remote_users_caveat": "Amus a pedire a su serbidore {domain} de rispetare sa detzisione tua. Nointames custu, su rispetu no est garantidu ca unos cantos serbidores diant pòdere gestire is blocos de manera diferente. Is publicatzione pùblicas diant pòdere ancora èssere visìbiles a is utentes chi no ant fatu s'atzessu.", "block_modal.show_less": "Ammustra·nde prus pagu", "block_modal.show_more": "Ammustra·nde prus", "block_modal.they_cant_mention": "Non ti podent mentovare nen sighire.", @@ -91,7 +99,9 @@ "block_modal.you_wont_see_mentions": "No as a bìdere is publicatziones chi mèntovent custa persone.", "boost_modal.combo": "Podes incarcare {combo} pro brincare custu sa borta chi benit", "bundle_column_error.copy_stacktrace": "Còpia s'informe de faddina", + "bundle_column_error.error.body": "Sa pàgina pedida non faghiat a dda renderizare. Diat pòdere èssere pro neghe de una faddina in su còdighe nostru, o de unu problema de cumpatibilidade de su navigadore.", "bundle_column_error.error.title": "Oh, no!", + "bundle_column_error.network.body": "Ddoe est àpidu un'errore proende a carrigare custa pàgina. Custu diat pòdere derivare dae unu problema temporàneu cun sa connessione ìnternet tua a su serbidore.", "bundle_column_error.network.title": "Faddina de connessione", "bundle_column_error.retry": "Torra·bi a proare", "bundle_column_error.return": "Torra a sa pàgina printzipale", @@ -138,6 +148,7 @@ "compose_form.lock_disclaimer.lock": "blocadu", "compose_form.placeholder": "A ite ses pensende?", "compose_form.poll.duration": "Longària de su sondàgiu", + "compose_form.poll.multiple": "Sèberu mùltiplu", "compose_form.poll.option_placeholder": "Optzione {number}", "compose_form.poll.single": "Sèbera·nde una", "compose_form.poll.switch_to_multiple": "Muda su sondàgiu pro permìtere multi-optziones", @@ -154,9 +165,12 @@ "confirmations.block.confirm": "Bloca", "confirmations.delete.confirm": "Cantzella", "confirmations.delete.message": "Seguru chi boles cantzellare custa publicatzione?", + "confirmations.delete.title": "Cantzellare sa publicatzione?", "confirmations.delete_list.confirm": "Cantzella", "confirmations.delete_list.message": "Seguru chi boles cantzellare custa lista in manera permanente?", + "confirmations.delete_list.title": "Cantzellare sa lista?", "confirmations.discard_edit_media.confirm": "Iscarta", + "confirmations.discard_edit_media.message": "Tenes modìficas non sarvadas a is descritziones o a is anteprimas de is cuntenutos, ddas boles iscartare su matessi?", "confirmations.edit.confirm": "Modìfica", "confirmations.logout.confirm": "Essi·nche", "confirmations.logout.message": "Seguru chi boles essire?", @@ -182,9 +196,21 @@ "disabled_account_banner.text": "Su contu tuo {disabledAccount} no est ativu.", "dismissable_banner.dismiss": "Iscarta", "domain_block_modal.block": "Bloca su serbidore", + "domain_block_modal.block_account_instead": "Bloca imbetzes a @{name}", + "domain_block_modal.they_can_interact_with_old_posts": "Is persones de custu serbidore podent ancora interagire cun is publicatziones betzas tuas.", + "domain_block_modal.they_cant_follow": "Perunu dae custu serbidore ti podet sighire.", + "domain_block_modal.they_wont_know": "No ant a ischire chi t'ant blocadu.", "domain_block_modal.title": "Boles blocare su domìniu?", + "domain_block_modal.you_wont_see_posts": "No as a bìdere publicatziones o notìficas dae utentes in custu serbidore.", + "domain_pill.activitypub_lets_connect": "Ti permitit de ti collegare e de interagire cun persones no isceti in Mastodon, ma in aplicatziones sotziales diferentes puru.", + "domain_pill.activitypub_like_language": "ActivityPub est a tipu sa limba chi Mastodon chistionat cun àteras retes sotziales.", "domain_pill.server": "Serbidore", + "domain_pill.their_handle": "S'identificadore suo:", + "domain_pill.their_server": "Sa domo digitale sua, in ue istant totu is publicatziones suas.", "domain_pill.username": "Nòmine de utente", + "domain_pill.your_handle": "S'identificadore tuo:", + "domain_pill.your_server": "Sa domo digitale tua, in ue istant totu is publicatziones tuas. Custa non t'agradat? Tràmuda serbidore in cale si siat momentu e bati·ti fintzas in fatu is sighidores tuos.", + "domain_pill.your_username": "S'identificadore ùnicu tuo in custu serbidore. Si podent agatare utentes cun su matessi nòmine de utente in àteros serbidores.", "embed.instructions": "Inserta custa publicatzione in su situ web tuo copiende su còdighe de suta.", "embed.preview": "At a aparèssere aici:", "emoji_button.activity": "Atividade", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 52dbb3e27c..1466ff0524 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -356,7 +356,8 @@ "home.pending_critical_update.link": "Переглянути оновлення", "home.pending_critical_update.title": "Доступне критичне оновлення безпеки!", "home.show_announcements": "Показати оголошення", - "ignore_notifications_modal.filter_to_review_separately": "Ви можете відслідковувати відфільтровані сповіщення окремо", + "ignore_notifications_modal.filter_to_act_users": "Ви все ще зможете прийняти, відхилити або поскаржитися на користувачів", + "ignore_notifications_modal.filter_to_review_separately": "Ви можете переглянути відфільтровані сповіщення окремо", "ignore_notifications_modal.ignore": "Ігнорувати сповіщення", "interaction_modal.description.favourite": "Маючи обліковий запис на Mastodon, ви можете вподобати цей допис, щоб дати автору знати, що ви його цінуєте, і зберегти його на потім.", "interaction_modal.description.follow": "Маючи обліковий запис на Mastodon, ви можете підписатися на {name}, щоб отримувати дописи цього користувача у свою стрічку.", diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 1a2d9a2906..8a142d0bd5 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -900,6 +900,8 @@ ar: message_html: "تم تكوين مخزن الكائنات الخاص بك بشكل خاطئ. خصوصية المستخدمين في خطر." tags: review: حالة المراجعة + search: البحث + title: الوسوم updated_msg: تم تحديث إعدادات الوسوم بنجاح title: الإدارة trends: @@ -1107,6 +1109,7 @@ ar: or_log_in_with: أو قم بتسجيل الدخول بواسطة privacy_policy_agreement_html: لقد قرأتُ وأوافق على سياسة الخصوصية progress: + confirm: تأكيد عنوان البريد الإلكتروني details: تفاصيلك review: رأيُنا rules: قبول القواعد @@ -1695,6 +1698,7 @@ ar: import: استيراد import_and_export: استيراد وتصدير migrate: تهجير الحساب + notifications: إشعارات البريد الإلكتروني preferences: التفضيلات profile: الملف التعريفي relationships: المتابِعون والمتابَعون diff --git a/config/locales/de.yml b/config/locales/de.yml index fe47c15370..9bb070caf3 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -59,7 +59,7 @@ de: destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht disable: Einfrieren disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren - disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren + disable_two_factor_authentication: Zwei-Faktor-Authentisierung deaktivieren disabled: Eingefroren display_name: Anzeigename domain: Domain @@ -723,7 +723,7 @@ de: manage_taxonomies: Hashtags verwalten manage_taxonomies_description: Ermöglicht Benutzer*innen, die Trends zu überprüfen und die Hashtag-Einstellungen zu aktualisieren manage_user_access: Kontozugriff verwalten - manage_user_access_description: Erlaubt Nutzer*innen, die Zwei-Faktor-Authentisierung (2FA) anderer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen + manage_user_access_description: Erlaubt Nutzer*innen, die Zwei-Faktor-Authentisierung anderer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen manage_users: Konten verwalten manage_users_description: Erlaubt es Benutzer*innen, die Details anderer Profile einzusehen und diese Accounts zu moderieren manage_webhooks: Webhooks verwalten @@ -1430,7 +1430,7 @@ de: password: Passwort sign_in_token: E-Mail-Sicherheitscode webauthn: Sicherheitsschlüssel - description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung (2FA) aktivieren. + description_html: Wenn du verdächtige Aktivitäten bemerkst, die du nicht verstehst oder zuordnen kannst, solltest du dringend dein Passwort ändern und ungeachtet dessen die Zwei-Faktor-Authentisierung aktivieren. empty: Kein Anmeldeverlauf verfügbar failed_sign_in_html: Fehlgeschlagener Anmeldeversuch mit %{method} von %{ip} (%{browser}) successful_sign_in_html: Erfolgreiches Anmelden mit %{method} von %{ip} (%{browser}) @@ -1696,7 +1696,7 @@ de: severed_relationships: Getrennte Beziehungen statuses_cleanup: Automatische Löschung strikes: Maßnahmen - two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) + two_factor_authentication: Zwei-Faktor-Authentisierung webauthn_authentication: Sicherheitsschlüssel severed_relationships: download: Herunterladen (%{count}) @@ -1815,14 +1815,14 @@ de: too_many_requests: Der Übersetzungsdienst hat kürzlich zu viele Anfragen erhalten. two_factor_authentication: add: Hinzufügen - disable: Zwei-Faktor-Authentisierung (2FA) deaktivieren - disabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich deaktiviert + disable: Zwei-Faktor-Authentisierung deaktivieren + disabled_success: Zwei-Faktor-Authentisierung erfolgreich deaktiviert edit: Bearbeiten enabled: Zwei-Faktor-Authentisierung (2FA) ist aktiviert enabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich aktiviert generate_recovery_codes: Wiederherstellungscodes erstellen - lost_recovery_codes: Wiederherstellungscodes ermöglichen es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf die Zwei-Faktor-Authentisierung (2FA) oder den Sicherheitsschlüssel hast. Solltest du diese Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Deine alten, bereits erstellten Wiederherstellungscodes werden dadurch ungültig. - methods: Methoden der Zwei-Faktor-Authentisierung (2FA) + lost_recovery_codes: Wiederherstellungscodes ermöglichen es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf die Zwei-Faktor-Authentisierung oder den Sicherheitsschlüssel hast. Solltest du diese Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Deine alten, bereits erstellten Wiederherstellungscodes werden dadurch ungültig. + methods: Methoden der Zwei-Faktor-Authentisierung otp: Authentisierungs-App recovery_codes: Wiederherstellungscodes sichern recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu erstellt @@ -1855,7 +1855,7 @@ de: change_password: dein Passwort zu ändern details: 'Hier sind die Details zu den Anmeldeversuchen:' explanation: Wir haben eine Anmeldung zu deinem Konto von einer neuen IP-Adresse festgestellt. - further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung (2FA) für dein Konto zu aktivieren, um es abzusichern. + further_actions_html: Wenn du das nicht warst, empfehlen wir dir schnellstmöglich, %{action} und die Zwei-Faktor-Authentisierung für dein Konto zu aktivieren, um es abzusichern. subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen title: Eine neue Anmeldung warning: @@ -1933,7 +1933,7 @@ de: users: follow_limit_reached: Du kannst nicht mehr als %{limit} Profilen folgen go_to_sso_account_settings: Kontoeinstellungen des Identitätsanbieters aufrufen - invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung (2FA) + invalid_otp_token: Ungültiger Code der Zwei-Faktor-Authentisierung otp_lost_help_html: Wenn du beides nicht mehr weißt, melde dich bitte bei uns unter der E-Mail-Adresse %{email} rate_limited: Zu viele Authentisierungsversuche. Bitte versuche es später noch einmal. seamless_external_login: Du bist über einen externen Dienst angemeldet, daher sind Passwort- und E-Mail-Einstellungen nicht verfügbar. @@ -1960,5 +1960,5 @@ de: nickname_hint: Gib den Spitznamen deines neuen Sicherheitsschlüssels ein not_enabled: Du hast WebAuthn noch nicht aktiviert not_supported: Dieser Browser unterstützt keine Sicherheitsschlüssel - otp_required: Um Sicherheitsschlüssel zu verwenden, aktiviere zunächst die Zwei-Faktor-Authentisierung (2FA). + otp_required: Um Sicherheitsschlüssel zu verwenden, aktiviere zunächst die Zwei-Faktor-Authentisierung. registered_on: Registriert am %{date} diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml index 032132cf5c..f22f834e61 100644 --- a/config/locales/devise.de.yml +++ b/config/locales/devise.de.yml @@ -49,12 +49,12 @@ de: title: Passwort zurücksetzen two_factor_disabled: explanation: Das Anmelden ist jetzt nur noch mit einer E-Mail-Adresse und einem Passwort möglich. - subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) deaktiviert' + subject: 'Mastodon: Zwei‐Faktor‐Authentisierung deaktiviert' subtitle: Zwei-Faktor-Authentisierung wurde für dein Konto deaktiviert. title: 2FA deaktiviert two_factor_enabled: explanation: Für das Anmelden wird ein Token benötigt, das von der hinterlegten TOTP-App generiert wird. - subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) aktiviert' + subject: 'Mastodon: Zwei‐Faktor‐Authentisierung aktiviert' subtitle: Zwei-Faktor-Authentisierung wurde für dein Konto aktiviert. title: 2FA aktiviert two_factor_recovery_codes_changed: diff --git a/config/locales/doorkeeper.ar.yml b/config/locales/doorkeeper.ar.yml index 889c182a3f..3cecbd495a 100644 --- a/config/locales/doorkeeper.ar.yml +++ b/config/locales/doorkeeper.ar.yml @@ -135,6 +135,7 @@ ar: media: الوسائط المرفقة mutes: تم كتمها notifications: الإشعارات + profile: مِلَفّ مَستُدون التعريفي الخاص بك push: الإشعارات reports: الشكاوى search: البحث diff --git a/config/locales/fi.yml b/config/locales/fi.yml index 0ec9ae7fe7..aaf30fa760 100644 --- a/config/locales/fi.yml +++ b/config/locales/fi.yml @@ -699,7 +699,7 @@ fi: delete_user_data: Poistaa käyttäjän tiedot delete_user_data_description: Sallii käyttäjien poistaa muiden käyttäjien tiedot viipymättä invite_users: Kutsua käyttäjiä - invite_users_description: Sallii käyttäjien kutsua uusia ihmisiä palvelimelle + invite_users_description: Sallii käyttäjien kutsua uusia käyttäjiä palvelimelle manage_announcements: Hallita tiedotteita manage_announcements_description: Sallii käyttäjien hallita palvelimen tiedotteita manage_appeals: Hallita valituksia @@ -1420,7 +1420,7 @@ fi: table: expires_at: Vanhenee uses: Käyttökertoja - title: Kutsu ihmisiä + title: Kutsu käyttäjiä lists: errors: limit: Sinulla on enimmäismäärä listoja diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 27c71182b6..431bc1f915 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -830,7 +830,7 @@ gl: reblogs: Promocións status_changed: Publicación editada title: Publicacións da conta - trending: Tendencia + trending: Popular visibility: Visibilidade with_media: con medios strikes: @@ -977,7 +977,7 @@ gl: one: Utilizado por unha persoa na última semana other: Utilizado por %{count} persoas na última semana title: Recomendacións e Suxestións - trending: Tendencias + trending: Popularidade warning_presets: add_new: Engadir novo delete: Eliminar diff --git a/config/locales/he.yml b/config/locales/he.yml index 6c02e12b95..d090302311 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -62,6 +62,7 @@ he: demote: הורדה בדרגה destroyed_msg: הנתונים של %{username} נכנסו לתור המחיקה וצפויים להימחק באופן מיידי disable: הקפאה + disable_sign_in_token_auth: ביטול הזדהות באמצעות אסימון דוא״ל disable_two_factor_authentication: ביטול הזדהות דו־שלבית disabled: מוקפא display_name: שם תצוגה @@ -70,6 +71,7 @@ he: email: דוא״ל email_status: מצב דוא״ל enable: ביטול הקפאה + enable_sign_in_token_auth: הפעלת אסימון הזדהות בדוא״ל enabled: מופעל enabled_msg: ביטול השעית החשבון של %{username} בוצע בהצלחה followers: עוקבים @@ -136,6 +138,7 @@ he: resubscribe: להרשם מחדש role: תפקיד search: חיפוש + search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל search_same_ip: משתמשים אחרים מאותה כתובת IP security: אבטחה security_measures: @@ -176,21 +179,26 @@ he: approve_appeal: אישור ערעור approve_user: אישור משתמש assigned_to_self_report: הקצאת דו"ח + change_email_user: שינוי כתובת דוא"ל למשתמש change_role_user: שינוי תפקיד למשתמש confirm_user: אשר משתמש create_account_warning: יצירת אזהרה create_announcement: יצירת הכרזה + create_canonical_email_block: יצירת חסימת דואל create_custom_emoji: יצירת אמוג'י מיוחד create_domain_allow: יצירת דומיין מותר create_domain_block: יצירת דומיין חסום + create_email_domain_block: יצירת חסימת דומיין דוא"ל create_ip_block: יצירת כלל IP create_unavailable_domain: יצירת דומיין בלתי זמין create_user_role: יצירת תפקיד demote_user: הורדת משתמש בדרגה destroy_announcement: מחיקת הכרזה + destroy_canonical_email_block: מחיקת חסימת דואל destroy_custom_emoji: מחיקת אמוג'י יחודי destroy_domain_allow: מחיקת דומיין מותר destroy_domain_block: מחיקת דומיין חסום + destroy_email_domain_block: מחיקת חסימת דומיין דוא"ל destroy_instance: טיהור דומיין destroy_ip_block: מחיקת כלל IP destroy_status: מחיקת הודעה @@ -198,8 +206,10 @@ he: destroy_user_role: מחיקת תפקיד disable_2fa_user: השעיית זיהוי דו-גורמי disable_custom_emoji: השעיית אמוג'י מיוחד + disable_sign_in_token_auth_user: השעיית אסימון הזדהות בדוא"ל של משתמש disable_user: השעיית משתמש enable_custom_emoji: הפעלת אמוג'י מיוחד + enable_sign_in_token_auth_user: הפעלת אסימון הזדהות בדוא"ל של משתמש enable_user: אפשור משתמש memorialize_account: הנצחת חשבון promote_user: קידום משתמש @@ -229,20 +239,26 @@ he: approve_appeal_html: "%{name} אישר/ה ערעור על החלטת מנהלי הקהילה מ-%{target}" approve_user_html: "%{name} אישר/ה הרשמה מ-%{target}" assigned_to_self_report_html: '%{name} הקצה/תה דו"ח %{target} לעצמם' + change_email_user_html: '%{name} שינה\שינתה את כתובת הדוא"ל של המשתמש %{target}' change_role_user_html: "%{name} שינה את התפקיד של %{target}" + confirm_user_html: '%{name} אישר/ה את כותבת הדו"אל של המשתמש %{target}' create_account_warning_html: "%{name} שלח/ה אזהרה ל %{target}" create_announcement_html: "%{name} יצר/ה הכרזה חדשה %{target}" + create_canonical_email_block_html: "%{name} חסם/ה את הדואל %{target}" create_custom_emoji_html: "%{name} העלו אמוג'י חדש %{target}" create_domain_allow_html: "%{name} אישר/ה פדרציה עם הדומיין %{target}" create_domain_block_html: "%{name} חסם/ה את הדומיין %{target}" + create_email_domain_block_html: '%{name} חסם/ה את דומיין הדוא"ל %{target}' create_ip_block_html: "%{name} יצר/ה כלל עבור IP %{target}" create_unavailable_domain_html: "%{name} הפסיק/ה משלוח לדומיין %{target}" create_user_role_html: "%{name} יצר את התפקיד של %{target}" demote_user_html: "%{name} הוריד/ה בדרגה את המשתמש %{target}" destroy_announcement_html: "%{name} מחק/ה את ההכרזה %{target}" + destroy_canonical_email_block_html: "%{name} הסיר/ה חסימה מדואל %{target}" destroy_custom_emoji_html: "%{name} מחק אמוג'י של %{target}" destroy_domain_allow_html: "%{name} לא התיר/ה פדרציה עם הדומיין %{target}" destroy_domain_block_html: "%{name} הסיר/ה חסימה מהדומיין %{target}" + destroy_email_domain_block_html: '%{name} הסיר/ה חסימה מדומיין הדוא"ל %{target}' destroy_instance_html: "%{name} טיהר/ה את הדומיין %{target}" destroy_ip_block_html: "%{name} מחק/ה את הכלל עבור IP %{target}" destroy_status_html: ההודעה של %{target} הוסרה ע"י %{name} @@ -250,8 +266,10 @@ he: destroy_user_role_html: "%{name} ביטל את התפקיד של %{target}" disable_2fa_user_html: "%{name} ביטל/ה את הדרישה לאימות דו-גורמי למשתמש %{target}" disable_custom_emoji_html: "%{name} השבית/ה את האמוג'י %{target}" + disable_sign_in_token_auth_user_html: '%{name} השבית/ה את האימות בעזרת אסימון דוא"ל עבור %{target}' disable_user_html: "%{name} חסם/ה כניסה מהמשתמש/ת %{target}" enable_custom_emoji_html: "%{name} אפשר/ה את האמוג'י %{target}" + enable_sign_in_token_auth_user_html: '%{name} אפשר/ה אימות בעזרת אסימון דוא"ל עבור %{target}' enable_user_html: "%{name} אפשר/ה כניסה עבור המשתמש %{target}" memorialize_account_html: "%{name} הפך/ה את חשבונו של %{target} לדף הנצחה" promote_user_html: "%{name} העלה בדרגה את המשתמש %{target}" @@ -259,6 +277,7 @@ he: reject_user_html: "%{name} דחו הרשמה מ-%{target}" remove_avatar_user_html: "%{name} הסירו את תמונת הפרופיל של %{target}" reopen_report_html: '%{name} פתח מחדש דו"ח %{target}' + resend_user_html: "%{name} הפעיל.ה שליחה מחדש של דואל אימות עבור %{target}" reset_password_user_html: הסיסמה עבור המשתמש %{target} התאפסה על־ידי %{name} resolve_report_html: '%{name} פתר/ה דו"ח %{target}' sensitive_account_html: "%{name} סימן/ה את המדיה של %{target} כרגיש" @@ -429,6 +448,7 @@ he: one: "%{count} נסיון במשך השבוע שעבר" other: "%{count} נסיונות הרשמה במשך השבוע שעבר" two: "%{count} נסיונות הרשמה במשך השבוע שעבר" + created_msg: מתחם כתובות דואל נחסם בהצלחה delete: מחיקה dns: types: @@ -437,8 +457,12 @@ he: new: create: הוספת דומיין resolve: פתור דומיין + title: חסימת מתחם כתובות דואל חדש + no_email_domain_block_selected: לא בוצעו שינויים לחסימת מתחמי דוא"ל שכן לא נבחרו מתחמים not_permitted: נאסר + resolved_dns_records_hint_html: שם הדומיין מוביל למתחמי ה-MX הבאים, שהם בסופו של דבר אחראיים לקבלת דוא"ל. חסימת שם MX תוביל לחסימת הרשמות מכל כתובת דוא"ל שעושה שימוש בכתובת MX זו, אפילו אם הדומיין הגלוי שונה. יש להמנע מלחסום ספקי דוא"ל מובילים. resolved_through_html: נמצא דרך %{domain} + title: מתחמי כתובות דוא"ל חסומים export_domain_allows: new: title: יבוא רשימת שרתים מאושרים @@ -600,6 +624,7 @@ he: resolve_description_html: אף פעולה לא תבוצע נגד החשבון עליו דווח, לא תירשם עבירה, והדיווח ייסגר. silence_description_html: הפרופיל יהיה גלוי אך ורק לאלה שכבר עוקבים אחריו או לאלה שיחפשו אותו ידנית, מה שיגביל מאד את תפוצתו. ניתן תמיד להחזיר את המצב לקדמותו. פעולה זו תסגור את כל הדיווחים נגד הפרופיל. suspend_description_html: חשבון זה על כל תכניו יחסמו וברבות הימים ימחקו, כל פעילות מולו לא תתאפשר. הפעולה ניתנת לביטול תוך 30 ימים, והיא תסגור כל דיווח התלוי ועומד נגד החשבון. + actions_description_html: בחר/י איזו פעולה לבצע על מנת לפתור את הדו"ח. אם תופעל פעולת ענישה כנגד החשבון המדווח, הודעת דוא"ל תשלח אליהם, אלא אם נבחרה קטגוריית הספאם. actions_description_remote_html: בחרו איזו פעולה לבצע כדי לפתור את הדיווח שהוגש. פעולה זו תשפיע רק על התקשורת מול השרת שלך עם החשבון המרוחק ותוכנו. add_to_report: הוספת פרטים לדיווח already_suspended_badges: @@ -664,6 +689,7 @@ he: delete_data_html: למחוק את הפרופיל והתוכן של @%{acct} בעוד 30 יום אלא אם תוסר ההגבלה עליהם לפני כן preview_preamble_html: 'שליחת אזהרה אל @%{acct} בזו הלשון:' record_strike_html: ציין נקודה שחורה נגד @%{acct} כדי לסייע בשיפוטו בדיווחים עתידיים על חריגות + send_email_html: שליחת דואל אזהרה אל @%{acct} warning_placeholder: צידוקים אפשריים נוספים לפעולה המשמעתית. target_origin: מקור החשבון המדווח title: דיווחים @@ -707,6 +733,7 @@ he: manage_appeals: ניהול ערעורים manage_appeals_description: מאפשר למשתמשים לסקור ערעורים כנגד פעולות מודרציה manage_blocks: ניהול חסימות + manage_blocks_description: מאפשר למשתמשים לחסום ספקי דוא"ל וכתובות IP manage_custom_emojis: ניהול סמלונים בהתאמה אישית manage_custom_emojis_description: מאפשר למשתמשים לנהל סמלונים בהתאמה אישית של השרת manage_federation: ניהול פדרציה @@ -724,6 +751,7 @@ he: manage_taxonomies: ניהול טקסונומיות manage_taxonomies_description: מאפשר למשתמשים לסקור תוכן אופנתי (טרנדי) ולעדכן אפשרויות של תגיות. manage_user_access: ניהול גישת משתמשים + manage_user_access_description: מאפשר למשתמשים לבטל אימות דו-שלבי של משתמשים אחרים, לשנות את כתובות הדוא"ל שלהם, ולאפס את סיסמתם manage_users: ניהול משתמשים manage_users_description: מאפשר למשתמשים לצפות בפרטים של משתמשים אחרים ולבצע פעולות מודרציה לפיהם manage_webhooks: ניהול Webhooks @@ -798,6 +826,7 @@ he: destroyed_msg: העלאת אתר נמחקה בהצלחה! software_updates: critical_update: חשוב -- יש לעדכן במהירות + description: מומלץ לשמור את התקנת המסטודון שלך עדכנית כדי להרוויח מהיכולות והתיקונים האחרונים. למעלה מכך, לעיתים קריטי לעדכן את מסטודון בהקדם כדי להמנע מפרצות אבטחה. מסיבות אלו, השרת יבדוק כל 30 דקות, ויודיע לך לפי העדפות הדואל שלך. documentation_link: למידע נוסף release_notes: פרטי הגרסה title: עדכונים זמינים @@ -981,6 +1010,7 @@ he: one: הוצגה על ידי משתמש בודד במשך השבוע שעבר other: הוצגה על ידי %{count} משתמשים במשך השבוע שעבר two: הוצגה על ידי %{count} משתמשים במשך השבוע שעבר + title: המלצות ונושאים חמים trending: נושאים חמים warning_presets: add_new: הוספת חדש @@ -1067,7 +1097,9 @@ he: guide_link_text: כולם יכולים לתרום. sensitive_content: תוכן רגיש application_mailer: + notification_preferences: שינוי העדפות דוא"ל salutation: "%{name}," + settings: 'שינוי הגדרות דוא"ל: %{link}' unsubscribe: בטל מנוי view: 'תצוגה:' view_profile: צפיה בפרופיל @@ -1087,6 +1119,7 @@ he: hint_html: עוד דבר אחד, עלינו לאשרר שאת(ה) אנושיים (לצורך סינון ספאם). נא לפתור את הקאפצ'ה להלן וללחוץ "המשך". title: בדיקות אבטחה confirmations: + awaiting_review: כתובת הדואל שלך אושרה! צוות %{domain} עכשיו יבדוק את הרשמתך. תשלח אליך הודעת דואל אם הצוות יאשר את החשבון! awaiting_review_title: הרשמתך עוברת בדיקה clicking_this_link: לחיצה על קישור זה login_link: כניסה @@ -1094,6 +1127,7 @@ he: redirect_to_app_html: כאן אמורה היתה להיות הפניה אוטמטית ליישומון %{app_name}. אם זה לא קרה, ניתן לנסות שוב על ידי %{clicking_this_link} או חזרה ידנית אל היישומון. registration_complete: הרשמתך לשרת %{domain} הושלמה כעת! welcome_title: ברוך/ה הבא/ה, %{name}! + wrong_email_hint: אם כתובת הדואל הזו איננה נכונה, ניתן לשנות אותה בעמוד ההגדרות. delete_account: מחיקת חשבון delete_account_html: אם ברצונך למחוק את החשבון, ניתן להמשיך כאן. תתבקש/י לספק אישור נוסף. description: @@ -1114,6 +1148,7 @@ he: or_log_in_with: או התחבר באמצעות privacy_policy_agreement_html: קראתי והסכמתי למדיניות הפרטיות progress: + confirm: אימות כתובת הדואל details: הפרטים שלך review: הבדיקה שלנו rules: הסכמה לתקנות @@ -1135,8 +1170,10 @@ he: security: אבטחה set_new_password: סיסמה חדשה setup: + email_below_hint_html: אנא בדקו בתיקיית הספאם, או בקשו קוד חדש. ניתן לתקן את הכתובת אם נפלה תקלדה. email_settings_hint_html: לחצו על הקישור שנשלח כדי לאשר את הכתובת %{email}. אנו ממתינים פה. link_not_received: לא קיבלת קישור? + new_confirmation_instructions_sent: אתם עומדים לקבל הודעת דואל חדשה עם קיש/ור אימות בדקות הקרובות! title: בדוק/בדקי את תיבת הדואר הנכנס שלך sign_in: preamble_html: הכנס.י עם שם וסיסמה מאתר %{domain}. אם חשבונך מתארח בשרת אחר, לא ניתן להתחבר איתו פה. @@ -1147,7 +1184,9 @@ he: title: הבה ניצור לך חשבון בשרת %{domain}. status: account_status: מצב חשבון + confirming: ממתין שדוא"ל האישור יושלם. functional: החשבון שלכם פעיל לגמרי. + pending: בקשתך ממתינה לאישור על ידי הצוות שלנו. זה עשוי לקחת זמן מה. דוא"ל יישלח אליך אם בקשתך התקבלה. redirecting_to: חשבונכם לא פעיל כעת מכיוון שמפנה ל%{acct}. self_destruct: מכיוון שהשרת %{domain} בתהליכי סגירה, תהיה לך גישה מוגבלת בלבד לחשבונך. view_strikes: צפיה בעברות קודמות שנרשמו נגד חשבונך @@ -1190,6 +1229,9 @@ he: before: 'לפני שנמשיך, נא לקרוא בזהירות את ההערות הבאות:' caches: מידע שהוטמן על ידי שרתים אחרים עשוי להתמיד data_removal: הודעותיך וכל מידע אחר יוסרו לתמיד + email_change_html: ניתן לשנות את כתובת הדוא"ל שלך מבלי למחוק את החשבון + email_contact_html: אם הוא עדיין לא הגיע, ניתן לקבל עזרה על ידי משלוח דואל ל-%{email} + email_reconfirmation_html: אם לא מתקבל דוא"ל האישור, ניתן לבקש אותו שוב irreversible: לא ניתן יהיה לשחזר או להפעיל מחדש את חשבונך more_details_html: לפרטים נוספים, ראו את מדיניות הפרטיות. username_available: שם המשתמש שלך שוב יהיה זמין @@ -1438,6 +1480,7 @@ he: authentication_methods: otp: יישומון אימות דו-שלבי password: סיסמה + sign_in_token: קוד אימות בדוא"ל webauthn: מפתחות אבטחה description_html: אם את/ה רואה פעילות שאינך מזהה, אנא שנה/י את סיסמתך והפעל/י אימות דו-גורמי. empty: הסטוריית אימותים אינה זמינה @@ -1448,6 +1491,16 @@ he: unsubscribe: action: כן, לבטל הרשמה complete: הפסקת הרשמה + confirmation_html: יש לאשר את ביטול ההרשמה להודעות %{type} ממסטודון בשרת %{domain} לכתובת הדואל %{email}. תמיד אפשר להרשם מחדש בכיוונוני הודעות דואל. + emails: + notification_emails: + favourite: הודעות דואל לגבי חיבובים + follow: הודעות דואל לגבי עוקבים חדשים + follow_request: הודעות דואל לגבי בקשות מעקב + mention: הודעות דואל לגבי איזכורים + reblog: הודעות דואל לגבי הידהודים + resubscribe_html: אם ביטול ההרשמה היה בטעות, ניתן להרשם מחדש מתוך מסך הגדרות ההרשמה שלך. + success_html: לא יגיעו אליך יותר הודעות %{type} משרת מסטודון %{domain} לכתובת הדואל %{email}. title: הפסקת הרשמה media_attachments: validations: @@ -1528,6 +1581,8 @@ he: update: subject: "%{name} ערכו הודעה" notifications: + administration_emails: התראות לדוא"ל חשבון מנהל + email_events: ארועים להתראות דוא"ל email_events_hint: 'בחר/י ארועים עבורים תרצה/י לקבל התראות:' number: human: @@ -1686,6 +1741,7 @@ he: import: יבוא import_and_export: יבוא ויצוא migrate: הגירת חשבון + notifications: התראות בדואל preferences: העדפות profile: פרופיל relationships: נעקבים ועוקבים @@ -1946,6 +2002,7 @@ he: invalid_otp_token: קוד דו-שלבי שגוי otp_lost_help_html: אם איבדת גישה לשניהם, ניתן ליצור קשר ב-%{email} rate_limited: יותר מדי ניסיונות אימות, נסו שוב מאוחר יותר. + seamless_external_login: את.ה מחובר דרך שירות חיצוני, לכן אפשרויות הסיסמא והדוא"ל לא מאופשרות. signed_in_as: 'מחובר בתור:' verification: extra_instructions_html: טיפ: הלינק באתר שלך יכול להיות מוסתר. החלק החשוב הוא rel="me" שמונע התחזות על אתרים עם תוכן משתמשים. ניתן גם ליצור תגית link בכותרת העמוד במקום קישור a אבל קוד ה־HTML חייב להופיע שם ללא הרצה של ג'אווהסקריפט. diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 8775ed543c..5eb4d04881 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -1194,7 +1194,7 @@ hu: caches: Más szerverek által cache-elt tartalmak még megmaradhatnak data_removal: Bejegyzéseid és minden más adatod véglegesen törlődni fog email_change_html: Megváltoztathatod az e-mail-címed a fiókod törlése nélkül - email_contact_html: Ha még mindig nem érkezik meg, akkor segítségért írjon a(z) %{email} e-mail-címre + email_contact_html: Ha még mindig nem érkezik meg, akkor segítségért írj a(z) %{email} e-mail-címre email_reconfirmation_html: Ha nem kaptad meg a megerősítő e-mailt, itt újrakérheted irreversible: Nem fogod tudni visszaállítani vagy újraaktiválni a fiókodat more_details_html: A részletekért nézd meg az adatvédelmi szabályzatot. diff --git a/config/locales/kab.yml b/config/locales/kab.yml index b45450de04..3aed6c55e7 100644 --- a/config/locales/kab.yml +++ b/config/locales/kab.yml @@ -429,6 +429,9 @@ kab: action: Wali ileqqman yellan software_version_patch_check: action: Wali ileqqman yellan + tags: + search: Anadi + title: Ihacṭagen title: Tadbelt trends: allow: Sireg @@ -476,6 +479,7 @@ kab: title: Asefqed n tɣellist confirmations: clicking_this_link: tekki ɣef wassaɣ-a + login_link: qqen proceed_to_login_html: Tzemreḍ tura ad tkemmleḍ ɣer %{login_link}. welcome_title: Ansuf yessek·em, %{name}! delete_account: Kkes amiḍan @@ -493,6 +497,7 @@ kab: or_log_in_with: Neɣ eqqen s privacy_policy_agreement_html: Ɣriɣ yerna qebleɣ tasertit n tbaḍnit progress: + confirm: Sentem imayl details: Isalli-inek review: Tamuɣli-nneɣ rules: Qbel ilugan @@ -566,6 +571,7 @@ kab: edit_profile: basic_information: Talɣut tamatut hint_html: "Mudd udem i wayen ttwalin medden deg umaɣnu-inek azayez ɣer yidis n yiznan-ik. Imdanen niḍen zemren ad k-ḍefren yernu ad gen assaɣ yid-k mi ara tesɛuḍ amaɣnu yeccuṛen ed tugna n umaɣnu." + other: Ayen nniḍen errors: '404': Asebter i tettnadiḍ ulac-it da. '500': diff --git a/config/locales/lad.yml b/config/locales/lad.yml index 0267892fc8..40be2627da 100644 --- a/config/locales/lad.yml +++ b/config/locales/lad.yml @@ -31,6 +31,7 @@ lad: created_msg: Nota de moderasyon kriyada kon sukseso! destroyed_msg: Nota de moderasyon destruida kon sukseso! accounts: + add_email_domain_block: Bloka domeno de posta approve: Achetar approved_msg: La solisitasyon de enrejistrasyon de %{username} achetada djustamente are_you_sure: Estas siguro? @@ -57,6 +58,7 @@ lad: demote: Degrada destroyed_msg: Los datos de %{username} estan agora en kola para ser supremir pishin disable: Inkapasita + disable_sign_in_token_auth: Inkapasita la autentifikasyon por token de posta elektronika disable_two_factor_authentication: Inkapasita autentifikasyon en dos pasos disabled: Inkapasitada display_name: Nombre amostrado @@ -65,6 +67,7 @@ lad: email: Posta elektronika email_status: Estatus de posta enable: Kapasita + enable_sign_in_token_auth: Kapasita la autentifikasyon por token de posta elektronika enabled: Kapasitada enabled_msg: El kuento de %{username} fue kapasitado djustamente followers: Suivantes @@ -129,6 +132,7 @@ lad: resubscribe: Reabona role: Rolo search: Bushka + search_same_email_domain: Otros utilizadores kon el mezmo domeno de posta search_same_ip: Otros utilizadores kon el mezmo adreso IP security: Sigurita security_measures: @@ -169,21 +173,26 @@ lad: approve_appeal: Acheta apelasyon approve_user: Acheta utilizador assigned_to_self_report: Asinya raporto + change_email_user: Troka posta elektronika del utilizador change_role_user: Troka rolo de utilizador confirm_user: Konfirma utilizador create_account_warning: Kriya avertensya create_announcement: Kriya pregon + create_canonical_email_block: Kriya bloko de posta elektronika create_custom_emoji: Kriya emoji personalizado create_domain_allow: Kriya permiso de domeno create_domain_block: Kriya bloko de domeno + create_email_domain_block: Kriya bloko de domeno de posta create_ip_block: Kriya regla de IP create_unavailable_domain: Kriya domeno no desponivle create_user_role: Kriya rolo demote_user: Degrada utilizador destroy_announcement: Efasa pregon + destroy_canonical_email_block: Efasa bloko de posta elektronika destroy_custom_emoji: Efasa emoji personalizado destroy_domain_allow: Efasa permiso de domeno destroy_domain_block: Efasa bloko de domeno + destroy_email_domain_block: Efasa bloko de domeno de posta destroy_instance: Efasa domeno destroy_ip_block: Efasa regla de IP destroy_status: Efasa publikasyon @@ -191,8 +200,10 @@ lad: destroy_user_role: Efasa rolo disable_2fa_user: Inkapasita autentifikasyon en dos pasos disable_custom_emoji: Inkapasita emoji personalizados + disable_sign_in_token_auth_user: Inkapasita la autentifikasyon por token de posta elektronika para el utilizador disable_user: Inkapasita utilizador enable_custom_emoji: Kapasita emoji personalizados + enable_sign_in_token_auth_user: Kapasita la autentifikasyon por token de posta para el utilizador enable_user: Kapasita utilizador memorialize_account: Transforma en kuento komemorativo promote_user: Promove utilizador @@ -221,20 +232,26 @@ lad: approve_appeal_html: "%{name} acheto la solisitasyon de moderasyon de %{target}" approve_user_html: "%{name} acheto el enrejistramiento de %{target}" assigned_to_self_report_html: "%{name} asinyo el raporto %{target} a si mezmo" + change_email_user_html: "%{name} troko el adreso de posta elektronika del utilizador %{target}" change_role_user_html: "%{name} troko el rolo de %{target}" + confirm_user_html: "%{name} konfirmo el adreso de posta elektronika del utilizador %{target}" create_account_warning_html: "%{name} embio una avertensya a %{target}" create_announcement_html: "%{name} kriyo un muevo pregon %{target}" + create_canonical_email_block_html: "%{name} bloko la posta elektronika kon el hash %{target}" create_custom_emoji_html: "%{name} kargo el muevo emoji %{target}" create_domain_allow_html: "%{name} perimitio la federasyon kon el domeno %{target}" create_domain_block_html: "%{name} bloko el domeno %{target}" + create_email_domain_block_html: "%{name} bloko el domeno de posta elektronika %{target}" create_ip_block_html: "%{name} kriyo una regla para IP %{target}" create_unavailable_domain_html: "%{name} detuvo las entregas al domeno %{target}" create_user_role_html: "%{name} kriyo el rolo %{target}" demote_user_html: "%{name} degrado a %{target}" destroy_announcement_html: "%{name} supremio el pregon %{target}" + destroy_canonical_email_block_html: "%{name} dezbloko la posta elektronika kon el hash %{target}" destroy_custom_emoji_html: "%{name} supremio el emoji %{target}" destroy_domain_allow_html: "%{name} bloko la federasyon kon el domeno %{target}" destroy_domain_block_html: "%{name} dezbloko el domeno %{target}" + destroy_email_domain_block_html: "%{name} dezbloko el domeno de posta elektronika %{target}" destroy_instance_html: "\"%{name} purgo el domeno %{target}" destroy_ip_block_html: "%{name} supremio una regla para la IP %{target}" destroy_status_html: "%{name} supremio una publikasyon de %{target}" @@ -242,8 +259,10 @@ lad: destroy_user_role_html: "%{name} supremio el rolo %{target}" disable_2fa_user_html: "%{name} dezaktivo el rekerimiento en dos pasos para el utilizador %{target}" disable_custom_emoji_html: "%{name} dezaktivo el emoji %{target}" + disable_sign_in_token_auth_user_html: "%{name} inkapasito la autentifikasyon por token de posta elektronika para %{target}" disable_user_html: "%{name} inkapasito la koneksion kon el kuento para el utilizador %{target}" enable_custom_emoji_html: "%{name} aktivo el emoji %{target}" + enable_sign_in_token_auth_user_html: "%{name} tiene kapasitado la autentifikasyon por token de posta elektronika para %{target}" enable_user_html: "%{name} kapasito koneksion kon kuento para el utilizador %{target}" memorialize_account_html: "%{name} konvirtio el kuento de %{target} en una pajina de bendicha memoria" promote_user_html: "%{name} promosyon al utilizador %{target}" @@ -251,6 +270,7 @@ lad: reject_user_html: "%{name} refuzo el enrejistramiento de %{target}" remove_avatar_user_html: "%{name} supremio la imaje de profil de %{target}" reopen_report_html: "%{name} reavrio el raporto %{target}" + resend_user_html: "%{name} tiene reembiado la posta de konfirmasyon para %{target}" reset_password_user_html: "%{name} reinisyo el kod del utilizador %{target}" resolve_report_html: "%{name} rezolvio el raporto %{target}" sensitive_account_html: "%{name} marko la multimedia de %{target} komo sensivle" @@ -410,6 +430,7 @@ lad: attempts_over_week: one: "\"%{count} prova durante la ultima semana" other: "%{count} provas de enrejistrarse durante la ultima semana" + created_msg: Domeno de posta blokado kon sukseso delete: Efasa dns: types: @@ -418,6 +439,7 @@ lad: new: create: Adjusta domeno resolve: Rezolve domeno + title: Bloka muevo domeno de posta not_permitted: Sin permiso resolved_through_html: Rezolvido por %{domain} export_domain_allows: @@ -848,7 +870,13 @@ lad: action: Ve aki para mas enformasyon message_html: "Tu magazinaje de objektos es mal konfigurado. La privasita de tus utilizadores esta en riziko." tags: + moderation: + title: Estado + name: Nombre + reset: Reinisya review: Estado de revizion + search: Bushka + title: Etiketas updated_msg: Konfigurasyon de etiketas aktualizada kon sukseso title: Administrasyon trends: @@ -1043,6 +1071,7 @@ lad: or_log_in_with: O konektate kon tu kuento kon privacy_policy_agreement_html: Tengo meldado i acheto la politika de privasita progress: + confirm: Konfirma posta details: Tus detalyos review: Muestra revizyon rules: Acheta reglas @@ -1361,6 +1390,15 @@ lad: unsubscribe: action: Si, dezabona complete: Dezabonado + emails: + notification_emails: + favourite: avizos de favoritos por posta + follow: avizos de segidores por posta + follow_request: avizos de solisitasyones de segimyento por posta + mention: avizos de enmentaduras por posta + reblog: avizos de repartajasyones por posta + resubscribe_html: Si tyenes deabonado por yerro, puedes reabonar en tus opsyones de avizos por posta elektronika. + success_html: Ya no risiviras %{type} de Mastodon en %{domain} a tu posta en %{email}. title: Dezabona media_attachments: validations: @@ -1441,6 +1479,8 @@ lad: update: subject: "%{name} edito una publikasyon" notifications: + administration_emails: Avizos de administrasyon por posta + email_events: Evenimyentos para avizos por posta email_events_hint: 'Eskoje los evenimientos para los kualos keres risivir avizos:' number: human: @@ -1599,6 +1639,7 @@ lad: import: Importo import_and_export: Importo i eksporto migrate: Migrasyon de kuento + notifications: Avizos por posta elektronika preferences: Preferensyas profile: Profil publiko relationships: Segidos i suivantes diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml index 744da9d055..f6d177badf 100644 --- a/config/locales/simple_form.ar.yml +++ b/config/locales/simple_form.ar.yml @@ -242,11 +242,13 @@ ar: warn: إخفاء بتحذير form_admin_settings: activity_api_enabled: نشر مُجمل الإحصائيات عن نشاط المستخدمين في واجهة برمجة التطبيقات API + app_icon: أيقونة التطبيق backups_retention_period: فترة الاحتفاظ بأرشيف المستخدم bootstrap_timeline_accounts: أوصي دائما بهذه الحسابات للمستخدمين الجدد closed_registrations_message: رسالة مخصصة عندما يكون التسجيل غير متاح content_cache_retention_period: مدة الاحتفاظ بالمحتوى البعيد custom_css: سي أس أس CSS مخصص + favicon: أيقونة المفضلة mascot: جالب حظ مخصص (قديم) media_cache_retention_period: مدة الاحتفاظ بالتخزين المؤقت للوسائط peers_api_enabled: نشر قائمة للخوادم المكتشَفة في واجهة برمجة التطبيقات API @@ -311,6 +313,7 @@ ar: listable: اسمح لهذا الوسم بالظهور في البحث وفي دليل الصفحات التعريفية name: الوسم trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة + usable: السماح للمنشورات باستخدام هذا الوسم محليا user: role: الدور time_zone: النطاق الزمني diff --git a/config/locales/simple_form.fr-CA.yml b/config/locales/simple_form.fr-CA.yml index 5edffb49d4..b9582fab74 100644 --- a/config/locales/simple_form.fr-CA.yml +++ b/config/locales/simple_form.fr-CA.yml @@ -237,10 +237,12 @@ fr-CA: warn: Cacher derrière un avertissement form_admin_settings: activity_api_enabled: Publie des statistiques agrégées sur l'activité des utilisateur⋅rice⋅s dans l'API + app_icon: Icône de l'appli backups_retention_period: Période d'archivage utilisateur bootstrap_timeline_accounts: Toujours recommander ces comptes aux nouveaux utilisateurs closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles custom_css: CSS personnalisé + favicon: Favicon mascot: Mascotte personnalisée (héritée) media_cache_retention_period: Durée de rétention des médias dans le cache peers_api_enabled: Publie la liste des serveurs découverts dans l'API diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml index 9694b00b48..99e0e1f210 100644 --- a/config/locales/simple_form.fr.yml +++ b/config/locales/simple_form.fr.yml @@ -237,10 +237,12 @@ fr: warn: Cacher derrière un avertissement form_admin_settings: activity_api_enabled: Publie des statistiques agrégées sur l'activité des utilisateur⋅rice⋅s dans l'API + app_icon: Icône de l'appli backups_retention_period: Durée de rétention des archives utilisateur bootstrap_timeline_accounts: Toujours recommander ces comptes aux nouveaux⋅elles utilisateur⋅rice⋅s closed_registrations_message: Message personnalisé lorsque les inscriptions ne sont pas disponibles custom_css: CSS personnalisé + favicon: Favicon mascot: Mascotte personnalisée (héritée) media_cache_retention_period: Durée de rétention des médias dans le cache peers_api_enabled: Publie la liste des serveurs découverts dans l'API diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index a7074af0f9..9adaa31efc 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -99,9 +99,9 @@ gl: theme: Decorado que verán visitantes e novas usuarias. thumbnail: Imaxe con proporcións 2:1 mostrada xunto á información sobre o servidor. timeline_preview: Visitantes e usuarias non conectadas poderán ver as publicacións públicas máis recentes do servidor. - trendable_by_default: Omitir a revisión manual das tendencias. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo. + trendable_by_default: Omitir a revisión manual dos contidos populares. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo. trends: As tendencias mostran publicacións, cancelos e novas historias que teñen popularidade no teu servidor. - trends_as_landing_page: Mostrar contidos en voga para as persoas sen sesión iniciada e visitantes no lugar dunha descrición deste servidor. Require ter activado Tendencias. + trends_as_landing_page: Mostrar contidos en voga para as persoas sen sesión iniciada e visitantes no lugar dunha descrición deste servidor. Require ter activado Popularidade. form_challenge: current_password: Estás entrando nun área segura imports: @@ -303,7 +303,7 @@ gl: label: Hai unha nova versión de Mastodon dispoñible none: Non notificar nunca as actualizacións (non se aconsella) patch: Notificar as actualizacións de arranxos - trending_tag: Hai que revisar unha nova tendencia + trending_tag: Hai que revisar un novo tema popular rule: hint: Información adicional text: Regra diff --git a/config/locales/uk.yml b/config/locales/uk.yml index 4add810bc6..eeeb117d6c 100644 --- a/config/locales/uk.yml +++ b/config/locales/uk.yml @@ -35,6 +35,7 @@ uk: created_msg: Нотатку модератора успішно створено! destroyed_msg: Нотатку модератора успішно видалено! accounts: + add_email_domain_block: Заблокувати домен до е-пошти approve: Схвалити approved_msg: Заявку на реєстрацію %{username} затверджено are_you_sure: Ви впевнені? @@ -61,6 +62,7 @@ uk: demote: Усунути destroyed_msg: Дані %{username} тепер в черзі на негайне видалення disable: Заморозити + disable_sign_in_token_auth: Вимкнути автентифікацію за допомогою токена е-пошти disable_two_factor_authentication: Вимкнути двофакторну авторизацію disabled: Вимкнено display_name: Відображуване ім'я @@ -69,6 +71,7 @@ uk: email: Електронна пошта email_status: Стан електронної пошти enable: Розморозити + enable_sign_in_token_auth: Увімкнути автентифікацію за допомогою токена е-пошти enabled: Увімкнено enabled_msg: Обліковий запис %{username} успішно розморожено followers: Підписники @@ -135,6 +138,7 @@ uk: resubscribe: Перепідписатися role: Роль search: Пошук + search_same_email_domain: Інші користувачі з тим самим доменом е-пошти search_same_ip: Інші користувачі з тим самим IP security: Безпека security_measures: @@ -175,21 +179,26 @@ uk: approve_appeal: Затвердити апеляцію approve_user: Затвердити користувачів assigned_to_self_report: Призначити звіт + change_email_user: Змінити електронну пошту для користувача change_role_user: Змінити роль користувача confirm_user: Підтвердити користувача create_account_warning: Створити попередження create_announcement: Створити оголошення + create_canonical_email_block: Створити блокування електронної пошти create_custom_emoji: Створити користувацьке емодзі create_domain_allow: Створити дозвіл на домен create_domain_block: Створити блокування домену + create_email_domain_block: Створити блокування домену е-пошти create_ip_block: Створити правило IP create_unavailable_domain: Створити недоступний домен create_user_role: Створити роль demote_user: Понизити користувача destroy_announcement: Видалити оголошення + destroy_canonical_email_block: Видалити блокування електронної пошти destroy_custom_emoji: Видалити користувацьке емодзі destroy_domain_allow: Видалити дозвіл на домен destroy_domain_block: Видалити блокування домену + destroy_email_domain_block: Видалити блокування домену е-пошти destroy_instance: Очистити домен destroy_ip_block: Видалити правило IP destroy_status: Видалити допис @@ -197,8 +206,10 @@ uk: destroy_user_role: Знищити роль disable_2fa_user: Вимкнути 2FA disable_custom_emoji: Вимкнути користувацькі емодзі + disable_sign_in_token_auth_user: Вимкнути автентифікацію за допомогою токена е-пошти для користувача disable_user: Відключити користувача enable_custom_emoji: Увімкнути користувацькі емодзі + enable_sign_in_token_auth_user: Увімкнути автентифікацію за допомогою токена е-пошти для користувача enable_user: Активувати користувача memorialize_account: Меморіалізувати акаунт promote_user: Підвищити користувача @@ -228,20 +239,26 @@ uk: approve_appeal_html: "%{name} затвердили звернення на оскарження рішення від %{target}" approve_user_html: "%{name} схвалює реєстрацію від %{target}" assigned_to_self_report_html: "%{name} створює скаргу %{target} на себе" + change_email_user_html: "%{name} змінює адресу е-пошти користувача %{target}" change_role_user_html: "%{name} змінює роль %{target}" + confirm_user_html: "%{name} підтверджує стан адреси е-пошти користувача %{target}" create_account_warning_html: "%{name} надсилає попередження до %{target}" create_announcement_html: "%{name} створює нове оголошення %{target}" + create_canonical_email_block_html: "%{name} блокує адресу е-пошти з хешем %{target}" create_custom_emoji_html: "%{name} завантажує нові емодзі %{target}" create_domain_allow_html: "%{name} дозволяє федерацію з доменом %{target}" create_domain_block_html: "%{name} блокує домен %{target}" + create_email_domain_block_html: "%{name} блокує домен електронної пошти %{target}" create_ip_block_html: "%{name} створює правило для IP %{target}" create_unavailable_domain_html: "%{name} зупиняє доставляння на домен %{target}" create_user_role_html: "%{name} створює роль %{target}" demote_user_html: "%{name} понижує користувача %{target}" destroy_announcement_html: "%{name} видаляє оголошення %{target}" + destroy_canonical_email_block_html: "%{name} розблоковує електронну пошту з хешем %{target}" destroy_custom_emoji_html: "%{name} видаляє емоджі %{target}" destroy_domain_allow_html: "%{name} скасовує федерацію з доменом %{target}" destroy_domain_block_html: "%{name} розблокує домен %{target}" + destroy_email_domain_block_html: "%{name} розблоковує домен електронної пошти %{target}" destroy_instance_html: "%{name} очищує домен %{target}" destroy_ip_block_html: "%{name} видаляє правило для IP %{target}" destroy_status_html: "%{name} вилучає допис %{target}" @@ -249,8 +266,10 @@ uk: destroy_user_role_html: "%{name} видаляє роль %{target}" disable_2fa_user_html: "%{name} вимикає двоетапну перевірку для користувача %{target}" disable_custom_emoji_html: "%{name} вимикає емодзі %{target}" + disable_sign_in_token_auth_user_html: "%{name} вимикає автентифікацію через токен е-пошти для %{target}" disable_user_html: "%{name} вимикає вхід для користувача %{target}" enable_custom_emoji_html: "%{name} вмикає емодзі %{target}" + enable_sign_in_token_auth_user_html: "%{name} вмикає автентифікацію через токен е-пошти для %{target}" enable_user_html: "%{name} вмикає вхід для користувача %{target}" memorialize_account_html: "%{name} перетворює обліковий запис %{target} на сторінку пам'яті" promote_user_html: "%{name} підвищує користувача %{target}" @@ -258,6 +277,7 @@ uk: reject_user_html: "%{name} відхиляє реєстрацію від %{target}" remove_avatar_user_html: "%{name} прибирає аватар %{target}" reopen_report_html: "%{name} знову відкриває звіт %{target}" + resend_user_html: "%{name} надсилає підтверджувальний лист для %{target}" reset_password_user_html: "%{name} скидає пароль користувача %{target}" resolve_report_html: "%{name} розв'язує скаргу %{target}" sensitive_account_html: "%{name} позначає медіа від %{target} делікатним" @@ -428,6 +448,7 @@ uk: many: "%{count} спроб входу за останній тиждень" one: "%{count} спроба за останній тиждень" other: "%{count} спроби входу за останній тиждень" + created_msg: Домен е-пошти заблоковано delete: Видалити dns: types: @@ -436,6 +457,8 @@ uk: new: create: Додати домен resolve: Розв'язати домен + title: Заблокувати новий домен е-пошти + no_email_domain_block_selected: Налаштування блокування доменів електронної пошти не змінено, оскільки жоден домен вибрано not_permitted: Не дозволено resolved_through_html: Розв'язано через %{domain} export_domain_allows: @@ -1412,6 +1435,7 @@ uk: authentication_methods: otp: застосунок двофакторної автентифікації password: пароль + sign_in_token: код безпеки е-поштою webauthn: ключі безпеки description_html: Якщо ви помітили невідомі вам дії, тоді подумайте про зміну свого пароля та можливість увімкнення двофакторної автентифікації. empty: Немає історії входів @@ -1422,6 +1446,15 @@ uk: unsubscribe: action: Так, відписатися complete: Відписалися + emails: + notification_emails: + favourite: отримувати сповіщення про вподобання електронною поштою + follow: отримувати сповіщення про підписки електронною поштою + follow_request: отримувати сповіщення про запити на стеження електронною поштою + mention: отримувати сповіщення про згадки електронною поштою + reblog: отримувати сповіщення про поширення електронною поштою + resubscribe_html: Якщо ви відписалися помилково, ви можете повторно підписатися в налаштуваннях сповіщень електронною поштою. + success_html: Ви більше не отримуватимете %{type} для Mastodon %{domain} на адресу %{email}. title: Відписатися media_attachments: validations: @@ -1502,6 +1535,8 @@ uk: update: subject: "%{name} змінює допис" notifications: + administration_emails: Сповіщення е-пошти адміністратора + email_events: Події, про які сповіщати електронною поштою email_events_hint: 'Оберіть події, про які ви хочете отримувати сповіщення:' number: human: @@ -1660,6 +1695,7 @@ uk: import: Імпорт import_and_export: Імпорт та експорт migrate: Міграція облікового запису + notifications: Сповіщення е-поштою preferences: Налаштування profile: Загальнодоступний профіль relationships: Підписки та підписники @@ -1920,6 +1956,7 @@ uk: invalid_otp_token: Введено неправильний код otp_lost_help_html: Якщо ви втратили доступ до обох, ви можете отримати доступ з %{email} rate_limited: Забагато спроб з'єднання. Спробуйте ще раз пізніше. + seamless_external_login: Ви увійшли за допомогою зовнішньої служби, тому налаштування пароля та електронної пошти недоступні. signed_in_as: 'Ви увійшли як:' verification: extra_instructions_html: Порада: Посилання на ваш сайт може бути невидимим. Важлива частина — це rel="me", яка не запобігає видаванню себе за іншу особу на вебсайтах з користувацьким наповненням. Ви навіть можете використовувати тег link у заголовку сторінки замість a, але HTML має бути доступним без виконання JavaScript. diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index c0403a0169..df1d1cc810 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -1218,7 +1218,7 @@ zh-TW: invalid_domain: 並非一個有效網域 edit_profile: basic_information: 基本資訊 - hint_html: "自訂人們能於您個人檔案及嘟文旁所見之內容。當您完成填寫個人檔案以及設定大頭貼後,其他人們比較願意跟隨您並與您互動。" + hint_html: "自訂人們能於您個人檔案及嘟文旁所見之內容。當您完成填寫個人檔案及設定大頭貼後,其他人們比較願意跟隨您並與您互動。" other: 其他 errors: '400': 您所送出的請求無效或格式不正確。 From 78d08da1fb52caa3408bba7c46733c85b9bdf194 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:53:33 +0200 Subject: [PATCH 33/40] Update opentelemetry-ruby (non-major) (#31446) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index cf930dadb6..5b82fa98dd 100644 --- a/Gemfile +++ b/Gemfile @@ -112,7 +112,7 @@ group :opentelemetry do gem 'opentelemetry-instrumentation-http', '~> 0.23.2', require: false gem 'opentelemetry-instrumentation-http_client', '~> 0.22.3', require: false gem 'opentelemetry-instrumentation-net_http', '~> 0.22.4', require: false - gem 'opentelemetry-instrumentation-pg', '~> 0.27.1', require: false + gem 'opentelemetry-instrumentation-pg', '~> 0.28.0', require: false gem 'opentelemetry-instrumentation-rack', '~> 0.24.1', require: false gem 'opentelemetry-instrumentation-rails', '~> 0.31.0', require: false gem 'opentelemetry-instrumentation-redis', '~> 0.25.3', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 2a3a2b3893..dacb034265 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -551,7 +551,7 @@ GEM opentelemetry-instrumentation-net_http (0.22.7) opentelemetry-api (~> 1.0) opentelemetry-instrumentation-base (~> 0.22.1) - opentelemetry-instrumentation-pg (0.27.4) + opentelemetry-instrumentation-pg (0.28.0) opentelemetry-api (~> 1.0) opentelemetry-helpers-sql-obfuscation opentelemetry-instrumentation-base (~> 0.22.1) @@ -997,7 +997,7 @@ DEPENDENCIES opentelemetry-instrumentation-http (~> 0.23.2) opentelemetry-instrumentation-http_client (~> 0.22.3) opentelemetry-instrumentation-net_http (~> 0.22.4) - opentelemetry-instrumentation-pg (~> 0.27.1) + opentelemetry-instrumentation-pg (~> 0.28.0) opentelemetry-instrumentation-rack (~> 0.24.1) opentelemetry-instrumentation-rails (~> 0.31.0) opentelemetry-instrumentation-redis (~> 0.25.3) From a0afbba54d272a0b1c2068b05ec95fc21701e8f5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 11:54:27 +0200 Subject: [PATCH 34/40] Update dependency sanitize to v6.1.3 (#31434) 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 dacb034265..fdd5231ad2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -779,7 +779,7 @@ GEM fugit (~> 1.1, >= 1.1.6) safety_net_attestation (0.4.0) jwt (~> 2.0) - sanitize (6.1.2) + sanitize (6.1.3) crass (~> 1.0.2) nokogiri (>= 1.12.0) scenic (1.8.0) From 622628a199d42a43adc57b8f42faf1fb4500dd91 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:00:15 +0000 Subject: [PATCH 35/40] Update dependency rspec-rails to v6.1.4 (#31442) 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 fdd5231ad2..a34b56a882 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -723,7 +723,7 @@ GEM rspec-mocks (3.13.1) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) - rspec-rails (6.1.3) + rspec-rails (6.1.4) actionpack (>= 6.1) activesupport (>= 6.1) railties (>= 6.1) From 32a78e56e0a9934f65b89a455f2d118642b998de Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Fri, 16 Aug 2024 12:00:59 +0200 Subject: [PATCH 36/40] Add a follow button & follower count on follow notifications (#31433) --- .../components/notification_follow.tsx | 55 +++++++++++++++---- .../notification_follow_request.tsx | 4 +- .../notification_group_with_status.tsx | 12 +++- .../styles/mastodon/components.scss | 12 ++++ 4 files changed, 68 insertions(+), 15 deletions(-) diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx index 0ed96ae636..3760096d44 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_follow.tsx @@ -1,7 +1,11 @@ import { FormattedMessage } from 'react-intl'; import PersonAddIcon from '@/material-icons/400-24px/person_add-fill.svg?react'; +import { FollowersCounter } from 'mastodon/components/counters'; +import { FollowButton } from 'mastodon/components/follow_button'; +import { ShortNumber } from 'mastodon/components/short_number'; import type { NotificationGroupFollow } from 'mastodon/models/notification_group'; +import { useAppSelector } from 'mastodon/store'; import type { LabelRenderer } from './notification_group_with_status'; import { NotificationGroupWithStatus } from './notification_group_with_status'; @@ -14,18 +18,45 @@ const labelRenderer: LabelRenderer = (values) => ( /> ); +const FollowerCount: React.FC<{ accountId: string }> = ({ accountId }) => { + const account = useAppSelector((s) => s.accounts.get(accountId)); + + if (!account) return null; + + return ( + + ); +}; + export const NotificationFollow: React.FC<{ notification: NotificationGroupFollow; unread: boolean; -}> = ({ notification, unread }) => ( - -); +}> = ({ notification, unread }) => { + let actions: JSX.Element | undefined; + let additionalContent: JSX.Element | undefined; + + if (notification.sampleAccountIds.length === 1) { + // only display those if the group contains 1 account, otherwise it does not makes sense + const account = notification.sampleAccountIds[0]; + + if (account) { + actions = ; + additionalContent = ; + } + } + + return ( + + ); +}; diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_follow_request.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_follow_request.tsx index 8c9837efa3..281bfd94af 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_follow_request.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_follow_request.tsx @@ -46,7 +46,7 @@ export const NotificationFollowRequest: React.FC<{ }, [dispatch, notification.sampleAccountIds]); const actions = ( -
+ <> -
+ ); return ( diff --git a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx index 2af73c8362..8f555956e0 100644 --- a/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx +++ b/app/javascript/mastodon/features/notifications_v2/components/notification_group_with_status.tsx @@ -31,6 +31,7 @@ export const NotificationGroupWithStatus: React.FC<{ labelSeeMoreHref?: string; type: string; unread: boolean; + additionalContent?: JSX.Element; }> = ({ icon, iconId, @@ -43,6 +44,7 @@ export const NotificationGroupWithStatus: React.FC<{ labelSeeMoreHref, type, unread, + additionalContent, }) => { const dispatch = useAppDispatch(); @@ -92,7 +94,9 @@ export const NotificationGroupWithStatus: React.FC<{
- {actions} + {actions && ( +
{actions}
+ )}
@@ -106,6 +110,12 @@ export const NotificationGroupWithStatus: React.FC<{
)} + + {additionalContent && ( +
+ {additionalContent} +
+ )}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 08f43c59cb..895762b803 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -10486,6 +10486,13 @@ noscript { gap: 8px; flex: 1 1 auto; overflow: hidden; + container-type: inline-size; + + @container (width < 350px) { + &__header time { + display: none; + } + } &__header { display: flex; @@ -10525,6 +10532,11 @@ noscript { border-radius: 8px; padding: 8px; } + + &__additional-content { + color: $darker-text-color; + margin-top: -8px; // to offset the parent's `gap` property + } } &__avatar-group { From a2dfe5a7797ca6e265f3f91cbfdbedf50bb03c1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:33:24 +0000 Subject: [PATCH 37/40] Update dependency test-prof to v1.4.0 (#31431) 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 a34b56a882..3d5a312399 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -838,7 +838,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) terrapin (1.0.1) climate_control - test-prof (1.3.3.1) + test-prof (1.4.0) thor (1.3.1) tilt (2.3.0) timeout (0.4.1) From 367d3841af5c358848b84efac49f63a93ff1e2e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 10:34:40 +0000 Subject: [PATCH 38/40] Update dependency aws-sdk-s3 to v1.158.0 (#31447) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3d5a312399..61bdb1d39c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -100,16 +100,16 @@ GEM attr_required (1.0.2) awrence (1.2.1) aws-eventstream (1.3.0) - aws-partitions (1.961.0) - aws-sdk-core (3.201.3) + aws-partitions (1.964.0) + aws-sdk-core (3.201.5) aws-eventstream (~> 1, >= 1.3.0) aws-partitions (~> 1, >= 1.651.0) - aws-sigv4 (~> 1.8) + aws-sigv4 (~> 1.9) jmespath (~> 1, >= 1.6.1) aws-sdk-kms (1.88.0) aws-sdk-core (~> 3, >= 3.201.0) aws-sigv4 (~> 1.5) - aws-sdk-s3 (1.157.0) + aws-sdk-s3 (1.158.0) aws-sdk-core (~> 3, >= 3.201.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.5) From 1acbb628b93f0304c4f77ec74cd18fc7d860a9e2 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 16 Aug 2024 14:52:57 +0200 Subject: [PATCH 39/40] Update changelog for v4.2.11 (#31452) --- CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ docker-compose.yml | 6 +++--- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7c3d96ba4a..d47c9bc168 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ All notable changes to this project will be documented in this file. +## |4.2.11] - 2024-08-16 + +### Added + +- Add support for incoming `` tag ([mediaformat](https://github.com/mastodon/mastodon/pull/31375)) + +### Changed + +- Change logic of block/mute bypass for mentions from moderators to only apply to visible roles with moderation powers ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/31271)) + +### Fixed + +- Fix incorrect rate limit on PUT requests ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/31356)) +- Fix presence of `ß` in adjacent word preventing mention and hashtag matching ([adamniedzielski](https://github.com/mastodon/mastodon/pull/31122)) +- Fix processing of webfinger responses with multiple `self` links ([adamniedzielski](https://github.com/mastodon/mastodon/pull/31110)) +- Fix duplicate `orderedItems` in user archive's `outbox.json` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/31099)) +- Fix click event handling when clicking outside of an open dropdown menu ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/31251)) +- Fix status processing failing halfway when a remote post has a malformed `replies` attribute ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/31246)) +- Fix `--verbose` option of `tootctl media remove`, which was previously erroneously removed ([mjankowski](https://github.com/mastodon/mastodon/pull/30536)) +- Fix division by zero on some video/GIF files ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/30600)) +- Fix Web UI trying to save user settings despite being logged out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/30324)) +- Fix hashtag regexp matching some link anchors ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/30190)) +- Fix local account search on LDAP login being case-sensitive ([raucao](https://github.com/mastodon/mastodon/pull/30113)) +- Fix development environment admin account not being auto-approved ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/29958)) +- Fix report reason selector in moderation interface not unselecting rules when changing category ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/29026)) +- Fix already-invalid reports failing to resolve ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/29027)) +- Fix OCR when using S3/CDN for assets ([vmstan](https://github.com/mastodon/mastodon/pull/28551)) +- Fix error when encountering malformed `Tag` objects from Kbin ([ShadowJonathan](https://github.com/mastodon/mastodon/pull/28235)) +- Fix not all allowed image formats showing in file picker when uploading custom emoji ([june128](https://github.com/mastodon/mastodon/pull/28076)) +- Fix search popout listing unusable search options when logged out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/27918)) +- Fix processing of featured collections lacking an `items` attribute ([tribela](https://github.com/mastodon/mastodon/pull/27581)) +- Fix `mastodon:stats` decoration of stats rake task ([mjankowski](https://github.com/mastodon/mastodon/pull/31104)) + ## [4.2.10] - 2024-07-04 ### Security diff --git a/docker-compose.yml b/docker-compose.yml index 7a6f9be509..1c4ab536a8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -58,7 +58,7 @@ services: web: build: . - image: ghcr.io/mastodon/mastodon:v4.2.10 + image: ghcr.io/mastodon/mastodon:v4.2.11 restart: always env_file: .env.production command: bundle exec puma -C config/puma.rb @@ -79,7 +79,7 @@ services: streaming: build: . - image: ghcr.io/mastodon/mastodon:v4.2.10 + image: ghcr.io/mastodon/mastodon:v4.2.11 restart: always env_file: .env.production command: node ./streaming @@ -97,7 +97,7 @@ services: sidekiq: build: . - image: ghcr.io/mastodon/mastodon:v4.2.10 + image: ghcr.io/mastodon/mastodon:v4.2.11 restart: always env_file: .env.production command: bundle exec sidekiq From 2d589a5ed445b474ab7cec27b0db2a331ed7bd49 Mon Sep 17 00:00:00 2001 From: Claire Date: Fri, 16 Aug 2024 19:11:23 +0200 Subject: [PATCH 40/40] Fix incorrect activity matching in notification unfiltering worker (#31456) --- app/workers/unfilter_notifications_worker.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/workers/unfilter_notifications_worker.rb b/app/workers/unfilter_notifications_worker.rb index 5939a691fb..4351758907 100644 --- a/app/workers/unfilter_notifications_worker.rb +++ b/app/workers/unfilter_notifications_worker.rb @@ -43,6 +43,6 @@ class UnfilterNotificationsWorker end def notifications_with_private_mentions - filtered_notifications.joins(mention: :status).merge(Status.where(visibility: :direct)).includes(mention: :status) + filtered_notifications.where(type: :mention).joins(mention: :status).merge(Status.where(visibility: :direct)).includes(mention: :status) end end