',
'@language': 'en',
- }
+ },
],
'https://www.w3.org/ns/activitystreams#published': {
'@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb
index 57941065a7..482fa9db44 100644
--- a/spec/workers/activitypub/move_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/move_distribution_worker_spec.rb
@@ -16,7 +16,7 @@ describe ActivityPub::MoveDistributionWorker do
it 'delivers to followers and known blockers' do
expect_push_bulk_to_match(ActivityPub::DeliveryWorker, [
[kind_of(String), migration.account.id, 'http://example.com'],
- [kind_of(String), migration.account.id, 'http://example2.com']
+ [kind_of(String), migration.account.id, 'http://example2.com'],
])
subject.perform(migration.id)
end
From c0d7c855b3f6865f16c909e803093cebbc3bd709 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 16:59:00 -0500
Subject: [PATCH 0060/1254] Autofix Rubocop RSpec/Capybara/FeatureMethods
(#23708)
---
.rubocop_todo.yml | 8 --------
spec/features/log_in_spec.rb | 22 +++++++++++-----------
spec/features/profile_spec.rb | 14 +++++++-------
3 files changed, 18 insertions(+), 26 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 5f03f3b783..77c4f012cf 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -602,14 +602,6 @@ RSpec/BeforeAfterAll:
Exclude:
- 'spec/requests/localization_spec.rb'
-# Offense count: 14
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnabledMethods.
-RSpec/Capybara/FeatureMethods:
- Exclude:
- - 'spec/features/log_in_spec.rb'
- - 'spec/features/profile_spec.rb'
-
# Offense count: 558
# Configuration parameters: Prefixes, AllowedPatterns.
# Prefixes: when, with, without
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb
index de1a6de031..329cdf34cb 100644
--- a/spec/features/log_in_spec.rb
+++ b/spec/features/log_in_spec.rb
@@ -2,21 +2,21 @@
require 'rails_helper'
-feature 'Log in' do
+describe 'Log in' do
include ProfileStories
- given(:email) { "test@example.com" }
- given(:password) { "password" }
- given(:confirmed_at) { Time.zone.now }
+ subject { page }
- background do
+ let(:email) { "test@example.com" }
+ let(:password) { "password" }
+ let(:confirmed_at) { Time.zone.now }
+
+ before do
as_a_registered_user
visit new_user_session_path
end
- subject { page }
-
- scenario 'A valid email and password user is able to log in' do
+ it 'A valid email and password user is able to log in' do
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
@@ -24,7 +24,7 @@ feature 'Log in' do
is_expected.to have_css('div.app-holder')
end
- scenario 'A invalid email and password user is not able to log in' do
+ it 'A invalid email and password user is not able to log in' do
fill_in 'user_email', with: 'invalid_email'
fill_in 'user_password', with: 'invalid_password'
click_on I18n.t('auth.login')
@@ -33,9 +33,9 @@ feature 'Log in' do
end
context do
- given(:confirmed_at) { nil }
+ let(:confirmed_at) { nil }
- scenario 'A unconfirmed user is able to log in' do
+ it 'A unconfirmed user is able to log in' do
fill_in 'user_email', with: email
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index ec4f9a53fe..d1c6919c1a 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -2,25 +2,25 @@
require 'rails_helper'
-feature 'Profile' do
+describe 'Profile' do
include ProfileStories
- given(:local_domain) { ENV['LOCAL_DOMAIN'] }
+ subject { page }
- background do
+ let(:local_domain) { ENV['LOCAL_DOMAIN'] }
+
+ before do
as_a_logged_in_user
with_alice_as_local_user
end
- subject { page }
-
- scenario 'I can view Annes public account' do
+ it 'I can view Annes public account' do
visit account_path('alice')
is_expected.to have_title("alice (@alice@#{local_domain})")
end
- scenario 'I can change my account' do
+ it 'I can change my account' do
visit settings_profile_path
fill_in 'Display name', with: 'Bob'
From 167709f6b0731c163619c58afcb0ca11bb393e54 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:00:17 -0500
Subject: [PATCH 0061/1254] Autofix Rubocop Style/BlockDelimiters (#23706)
---
.rubocop_todo.yml | 13 ---------
...8_add_visible_in_picker_to_custom_emoji.rb | 4 +--
.../settings/applications_controller_spec.rb | 4 +--
spec/lib/webfinger_resource_spec.rb | 28 +++++++++----------
4 files changed, 18 insertions(+), 31 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 77c4f012cf..73dae59c54 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2686,19 +2686,6 @@ Security/IoMethods:
- 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
-# Offense count: 9
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle, ProceduralMethods, FunctionalMethods, AllowedMethods, AllowedPatterns, AllowBracesOnProceduralOneLiners, BracesRequiredMethods.
-# SupportedStyles: line_count_based, semantic, braces_for_chaining, always_braces
-# ProceduralMethods: benchmark, bm, bmbm, create, each_with_object, measure, new, realtime, tap, with_object
-# FunctionalMethods: let, let!, subject, watch
-# AllowedMethods: lambda, proc, it
-Style/BlockDelimiters:
- Exclude:
- - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/lib/webfinger_resource_spec.rb'
-
# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/CaseLikeIf:
diff --git a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb
index 60a2871015..946e26ff2c 100644
--- a/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb
+++ b/db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb
@@ -1,7 +1,7 @@
class AddVisibleInPickerToCustomEmoji < ActiveRecord::Migration[5.1]
def change
- safety_assured {
+ safety_assured do
add_column :custom_emojis, :visible_in_picker, :boolean, default: true, null: false
- }
+ end
end
end
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index 75d3240f9c..a882a6fb8c 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -112,11 +112,11 @@ describe Settings::ApplicationsController do
describe 'PATCH #update' do
context 'success' do
- let(:opts) {
+ let(:opts) do
{
website: 'https://foo.bar/',
}
- }
+ end
def call_update
patch :update, params: {
diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb
index 5c7f475d69..ee007da70a 100644
--- a/spec/lib/webfinger_resource_spec.rb
+++ b/spec/lib/webfinger_resource_spec.rb
@@ -14,9 +14,9 @@ describe WebfingerResource do
it 'raises with a route whose controller is not AccountsController' do
resource = 'https://example.com/users/alice/other'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(ActiveRecord::RecordNotFound)
+ end.to raise_error(ActiveRecord::RecordNotFound)
end
it 'raises with a route whose action is not show' do
@@ -29,17 +29,17 @@ describe WebfingerResource do
expect(Rails.application.routes).to receive(:recognize_path).with(resource).and_return(recognized).at_least(:once)
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(ActiveRecord::RecordNotFound)
+ end.to raise_error(ActiveRecord::RecordNotFound)
end
it 'raises with a string that doesnt start with URL' do
resource = 'website for http://example.com/users/alice/other'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(WebfingerResource::InvalidRequest)
+ end.to raise_error(WebfingerResource::InvalidRequest)
end
it 'finds the username in a valid https route' do
@@ -68,9 +68,9 @@ describe WebfingerResource do
it 'raises on a non-local domain' do
resource = 'user@remote-host.com'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(ActiveRecord::RecordNotFound)
+ end.to raise_error(ActiveRecord::RecordNotFound)
end
it 'finds username for a local domain' do
@@ -94,17 +94,17 @@ describe WebfingerResource do
it 'raises on a non-local domain' do
resource = 'acct:user@remote-host.com'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(ActiveRecord::RecordNotFound)
+ end.to raise_error(ActiveRecord::RecordNotFound)
end
it 'raises on a nonsense domain' do
resource = 'acct:user@remote-host@remote-hostess.remote.local@remote'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(ActiveRecord::RecordNotFound)
+ end.to raise_error(ActiveRecord::RecordNotFound)
end
it 'finds the username for a local account if the domain is the local one' do
@@ -128,9 +128,9 @@ describe WebfingerResource do
it 'raises InvalidRequest' do
resource = 'df/:dfkj'
- expect {
+ expect do
WebfingerResource.new(resource).username
- }.to raise_error(WebfingerResource::InvalidRequest)
+ end.to raise_error(WebfingerResource::InvalidRequest)
end
end
end
From 2177daeae92b77be6797ba8f2ab6ebe1e641e078 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:09:40 -0500
Subject: [PATCH 0062/1254] Autofix Rubocop Style/RedundantBegin (#23703)
---
.rubocop_todo.yml | 73 -------------------
app/controllers/admin/dashboard_controller.rb | 12 ++-
.../api/v1/announcements_controller.rb | 4 +-
.../api/v1/trends/links_controller.rb | 12 ++-
.../api/v1/trends/statuses_controller.rb | 12 ++-
.../api/v1/trends/tags_controller.rb | 12 ++-
.../concerns/rate_limit_headers.rb | 12 ++-
.../two_factor_authentication_concern.rb | 12 ++-
app/helpers/admin/dashboard_helper.rb | 24 +++---
app/helpers/admin/trends/statuses_helper.rb | 12 ++-
app/helpers/branding_helper.rb | 14 ++--
app/helpers/domain_control_helper.rb | 12 ++-
app/helpers/formatting_helper.rb | 40 +++++-----
app/helpers/instance_helper.rb | 12 ++-
app/helpers/jsonld_helper.rb | 16 ++--
app/lib/activity_tracker.rb | 14 ++--
app/lib/activitypub/activity/create.rb | 38 +++++-----
app/lib/activitypub/forwarder.rb | 12 ++-
.../dimension/software_versions_dimension.rb | 12 ++-
.../dimension/space_usage_dimension.rb | 12 ++-
app/lib/extractor.rb | 10 +--
app/lib/importer/statuses_index_importer.rb | 12 ++-
app/lib/link_details_extractor.rb | 30 ++++----
app/lib/request.rb | 34 ++++-----
app/models/account.rb | 13 ++--
app/models/account/field.rb | 12 ++-
app/models/admin/account_action.rb | 12 ++-
app/models/announcement.rb | 12 ++-
app/models/concerns/account_merging.rb | 16 ++--
app/models/concerns/pam_authenticable.rb | 12 ++-
app/models/email_domain_block.rb | 12 ++-
app/models/form/admin_settings.rb | 12 ++-
app/models/form/custom_emoji_batch.rb | 12 ++-
app/models/notification.rb | 12 ++-
app/models/remote_follow.rb | 12 ++-
app/models/status.rb | 13 ++--
app/models/status_edit.rb | 14 ++--
app/models/trends/links.rb | 24 +++---
app/models/trends/statuses.rb | 24 +++---
app/models/trends/tag_filter.rb | 12 ++-
app/models/trends/tags.rb | 12 ++-
app/models/web/push_subscription.rb | 24 +++---
app/presenters/tag_relationships_presenter.rb | 12 ++-
app/services/account_search_service.rb | 16 ++--
.../fetch_featured_tags_collection_service.rb | 14 ++--
.../fetch_remote_status_service.rb | 12 ++-
app/services/fetch_link_card_service.rb | 16 ++--
app/services/process_mentions_service.rb | 12 ++-
app/services/reblog_service.rb | 12 ++-
app/services/resolve_account_service.rb | 12 ++-
app/validators/domain_validator.rb | 12 ++-
app/validators/existing_username_validator.rb | 14 ++--
app/validators/import_validator.rb | 12 ++-
app/workers/backup_worker.rb | 10 +--
app/workers/post_process_media_worker.rb | 12 ++-
.../follow_recommendations_scheduler.rb | 12 ++-
...0180528141303_fix_accounts_unique_index.rb | 16 ++--
.../20180812173710_copy_status_stats.rb | 10 +--
.../20181116173541_copy_account_stats.rb | 10 +--
lib/mastodon/accounts_cli.rb | 28 +++----
lib/mastodon/cli_helper.rb | 42 +++++------
lib/mastodon/ip_blocks_cli.rb | 12 ++-
lib/mastodon/maintenance_cli.rb | 64 ++++++----------
lib/mastodon/media_cli.rb | 12 ++-
lib/mastodon/search_cli.rb | 12 ++-
lib/mastodon/upgrade_cli.rb | 18 ++---
lib/paperclip/color_extractor.rb | 12 ++-
lib/sanitize_ext/sanitize_config.rb | 12 ++-
lib/tasks/db.rake | 14 ++--
69 files changed, 458 insertions(+), 695 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 73dae59c54..7620025cfd 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2958,79 +2958,6 @@ Style/RedundantArgument:
- 'app/helpers/application_helper.rb'
- 'lib/tasks/emojis.rake'
-# Offense count: 83
-# This cop supports safe autocorrection (--autocorrect).
-Style/RedundantBegin:
- Exclude:
- - 'app/controllers/admin/dashboard_controller.rb'
- - 'app/controllers/api/v1/announcements_controller.rb'
- - 'app/controllers/api/v1/trends/links_controller.rb'
- - 'app/controllers/api/v1/trends/statuses_controller.rb'
- - 'app/controllers/api/v1/trends/tags_controller.rb'
- - 'app/controllers/concerns/rate_limit_headers.rb'
- - 'app/controllers/concerns/two_factor_authentication_concern.rb'
- - 'app/helpers/admin/dashboard_helper.rb'
- - 'app/helpers/admin/trends/statuses_helper.rb'
- - 'app/helpers/branding_helper.rb'
- - 'app/helpers/domain_control_helper.rb'
- - 'app/helpers/formatting_helper.rb'
- - 'app/helpers/instance_helper.rb'
- - 'app/helpers/jsonld_helper.rb'
- - 'app/lib/activity_tracker.rb'
- - 'app/lib/activitypub/activity/create.rb'
- - 'app/lib/activitypub/forwarder.rb'
- - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb'
- - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb'
- - 'app/lib/extractor.rb'
- - 'app/lib/importer/statuses_index_importer.rb'
- - 'app/lib/link_details_extractor.rb'
- - 'app/lib/request.rb'
- - 'app/models/account.rb'
- - 'app/models/account/field.rb'
- - 'app/models/admin/account_action.rb'
- - 'app/models/announcement.rb'
- - 'app/models/concerns/account_merging.rb'
- - 'app/models/concerns/pam_authenticable.rb'
- - 'app/models/email_domain_block.rb'
- - 'app/models/form/admin_settings.rb'
- - 'app/models/form/custom_emoji_batch.rb'
- - 'app/models/notification.rb'
- - 'app/models/remote_follow.rb'
- - 'app/models/status.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/trends/links.rb'
- - 'app/models/trends/statuses.rb'
- - 'app/models/trends/tag_filter.rb'
- - 'app/models/trends/tags.rb'
- - 'app/models/web/push_subscription.rb'
- - 'app/presenters/tag_relationships_presenter.rb'
- - 'app/services/account_search_service.rb'
- - 'app/services/activitypub/fetch_featured_tags_collection_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/fetch_link_card_service.rb'
- - 'app/services/process_mentions_service.rb'
- - 'app/services/reblog_service.rb'
- - 'app/services/resolve_account_service.rb'
- - 'app/validators/domain_validator.rb'
- - 'app/validators/existing_username_validator.rb'
- - 'app/validators/import_validator.rb'
- - 'app/workers/backup_worker.rb'
- - 'app/workers/post_process_media_worker.rb'
- - 'app/workers/scheduler/follow_recommendations_scheduler.rb'
- - 'db/migrate/20180528141303_fix_accounts_unique_index.rb'
- - 'db/migrate/20180812173710_copy_status_stats.rb'
- - 'db/migrate/20181116173541_copy_account_stats.rb'
- - 'lib/mastodon/accounts_cli.rb'
- - 'lib/mastodon/cli_helper.rb'
- - 'lib/mastodon/ip_blocks_cli.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/mastodon/media_cli.rb'
- - 'lib/mastodon/search_cli.rb'
- - 'lib/mastodon/upgrade_cli.rb'
- - 'lib/paperclip/color_extractor.rb'
- - 'lib/sanitize_ext/sanitize_config.rb'
- - 'lib/tasks/db.rake'
-
# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantRegexpCharacterClass:
diff --git a/app/controllers/admin/dashboard_controller.rb b/app/controllers/admin/dashboard_controller.rb
index 924b623ad8..099512248f 100644
--- a/app/controllers/admin/dashboard_controller.rb
+++ b/app/controllers/admin/dashboard_controller.rb
@@ -18,13 +18,11 @@ module Admin
private
def redis_info
- @redis_info ||= begin
- if redis.is_a?(Redis::Namespace)
- redis.redis.info
- else
- redis.info
- end
- end
+ @redis_info ||= if redis.is_a?(Redis::Namespace)
+ redis.redis.info
+ else
+ redis.info
+ end
end
end
end
diff --git a/app/controllers/api/v1/announcements_controller.rb b/app/controllers/api/v1/announcements_controller.rb
index ee79fc19f1..82e9cf7de4 100644
--- a/app/controllers/api/v1/announcements_controller.rb
+++ b/app/controllers/api/v1/announcements_controller.rb
@@ -18,9 +18,7 @@ class Api::V1::AnnouncementsController < Api::BaseController
private
def set_announcements
- @announcements = begin
- Announcement.published.chronological
- end
+ @announcements = Announcement.published.chronological
end
def set_announcement
diff --git a/app/controllers/api/v1/trends/links_controller.rb b/app/controllers/api/v1/trends/links_controller.rb
index 8ff3b364e2..3ce20fb786 100644
--- a/app/controllers/api/v1/trends/links_controller.rb
+++ b/app/controllers/api/v1/trends/links_controller.rb
@@ -18,13 +18,11 @@ class Api::V1::Trends::LinksController < Api::BaseController
end
def set_links
- @links = begin
- if enabled?
- links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT))
- else
- []
- end
- end
+ @links = if enabled?
+ links_from_trends.offset(offset_param).limit(limit_param(DEFAULT_LINKS_LIMIT))
+ else
+ []
+ end
end
def links_from_trends
diff --git a/app/controllers/api/v1/trends/statuses_controller.rb b/app/controllers/api/v1/trends/statuses_controller.rb
index c275d5fc81..3aab92477d 100644
--- a/app/controllers/api/v1/trends/statuses_controller.rb
+++ b/app/controllers/api/v1/trends/statuses_controller.rb
@@ -16,13 +16,11 @@ class Api::V1::Trends::StatusesController < Api::BaseController
end
def set_statuses
- @statuses = begin
- if enabled?
- cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status)
- else
- []
- end
- end
+ @statuses = if enabled?
+ cache_collection(statuses_from_trends.offset(offset_param).limit(limit_param(DEFAULT_STATUSES_LIMIT)), Status)
+ else
+ []
+ end
end
def statuses_from_trends
diff --git a/app/controllers/api/v1/trends/tags_controller.rb b/app/controllers/api/v1/trends/tags_controller.rb
index 21adfa2a1f..75c3ed218b 100644
--- a/app/controllers/api/v1/trends/tags_controller.rb
+++ b/app/controllers/api/v1/trends/tags_controller.rb
@@ -18,13 +18,11 @@ class Api::V1::Trends::TagsController < Api::BaseController
end
def set_tags
- @tags = begin
- if enabled?
- tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT))
- else
- []
- end
- end
+ @tags = if enabled?
+ tags_from_trends.offset(offset_param).limit(limit_param(DEFAULT_TAGS_LIMIT))
+ else
+ []
+ end
end
def tags_from_trends
diff --git a/app/controllers/concerns/rate_limit_headers.rb b/app/controllers/concerns/rate_limit_headers.rb
index b21abfb033..30702f00e7 100644
--- a/app/controllers/concerns/rate_limit_headers.rb
+++ b/app/controllers/concerns/rate_limit_headers.rb
@@ -6,13 +6,11 @@ module RateLimitHeaders
class_methods do
def override_rate_limit_headers(method_name, options = {})
around_action(only: method_name, if: :current_account) do |_controller, block|
- begin
- block.call
- ensure
- rate_limiter = RateLimiter.new(current_account, options)
- rate_limit_headers = rate_limiter.to_headers
- response.headers.merge!(rate_limit_headers) unless response.headers['X-RateLimit-Remaining'].present? && rate_limit_headers['X-RateLimit-Remaining'].to_i > response.headers['X-RateLimit-Remaining'].to_i
- end
+ block.call
+ ensure
+ rate_limiter = RateLimiter.new(current_account, options)
+ rate_limit_headers = rate_limiter.to_headers
+ response.headers.merge!(rate_limit_headers) unless response.headers['X-RateLimit-Remaining'].present? && rate_limit_headers['X-RateLimit-Remaining'].to_i > response.headers['X-RateLimit-Remaining'].to_i
end
end
end
diff --git a/app/controllers/concerns/two_factor_authentication_concern.rb b/app/controllers/concerns/two_factor_authentication_concern.rb
index 27f2367a8e..e69b67a795 100644
--- a/app/controllers/concerns/two_factor_authentication_concern.rb
+++ b/app/controllers/concerns/two_factor_authentication_concern.rb
@@ -79,13 +79,11 @@ module TwoFactorAuthenticationConcern
@body_classes = 'lighter'
@webauthn_enabled = user.webauthn_enabled?
- @scheme_type = begin
- if user.webauthn_enabled? && user_params[:otp_attempt].blank?
- 'webauthn'
- else
- 'totp'
- end
- end
+ @scheme_type = if user.webauthn_enabled? && user_params[:otp_attempt].blank?
+ 'webauthn'
+ else
+ 'totp'
+ end
set_locale { render :two_factor }
end
diff --git a/app/helpers/admin/dashboard_helper.rb b/app/helpers/admin/dashboard_helper.rb
index c21d413419..6096ff1381 100644
--- a/app/helpers/admin/dashboard_helper.rb
+++ b/app/helpers/admin/dashboard_helper.rb
@@ -19,19 +19,17 @@ module Admin::DashboardHelper
end
def relevant_account_timestamp(account)
- timestamp, exact = begin
- if account.user_current_sign_in_at && account.user_current_sign_in_at < 24.hours.ago
- [account.user_current_sign_in_at, true]
- elsif account.user_current_sign_in_at
- [account.user_current_sign_in_at, false]
- elsif account.user_pending?
- [account.user_created_at, true]
- elsif account.last_status_at.present?
- [account.last_status_at, true]
- else
- [nil, false]
- end
- end
+ timestamp, exact = if account.user_current_sign_in_at && account.user_current_sign_in_at < 24.hours.ago
+ [account.user_current_sign_in_at, true]
+ elsif account.user_current_sign_in_at
+ [account.user_current_sign_in_at, false]
+ elsif account.user_pending?
+ [account.user_created_at, true]
+ elsif account.last_status_at.present?
+ [account.last_status_at, true]
+ else
+ [nil, false]
+ end
return '-' if timestamp.nil?
return t('generic.today') unless exact
diff --git a/app/helpers/admin/trends/statuses_helper.rb b/app/helpers/admin/trends/statuses_helper.rb
index 214c1e2a68..79fee44dc4 100644
--- a/app/helpers/admin/trends/statuses_helper.rb
+++ b/app/helpers/admin/trends/statuses_helper.rb
@@ -2,13 +2,11 @@
module Admin::Trends::StatusesHelper
def one_line_preview(status)
- text = begin
- if status.local?
- status.text.split("\n").first
- else
- Nokogiri::HTML(status.text).css('html > body > *').first&.text
- end
- end
+ text = if status.local?
+ status.text.split("\n").first
+ else
+ Nokogiri::HTML(status.text).css('html > body > *').first&.text
+ end
return '' if text.blank?
diff --git a/app/helpers/branding_helper.rb b/app/helpers/branding_helper.rb
index ad7702aea7..548c954110 100644
--- a/app/helpers/branding_helper.rb
+++ b/app/helpers/branding_helper.rb
@@ -23,14 +23,12 @@ module BrandingHelper
end
def render_symbol(version = :icon)
- path = begin
- case version
- when :icon
- 'logo-symbol-icon.svg'
- when :wordmark
- 'logo-symbol-wordmark.svg'
- end
- end
+ path = case version
+ when :icon
+ 'logo-symbol-icon.svg'
+ when :wordmark
+ 'logo-symbol-wordmark.svg'
+ end
render(file: Rails.root.join('app', 'javascript', 'images', path)).html_safe # rubocop:disable Rails/OutputSafety
end
diff --git a/app/helpers/domain_control_helper.rb b/app/helpers/domain_control_helper.rb
index ac60cad295..ffcf375ea7 100644
--- a/app/helpers/domain_control_helper.rb
+++ b/app/helpers/domain_control_helper.rb
@@ -4,13 +4,11 @@ module DomainControlHelper
def domain_not_allowed?(uri_or_domain)
return if uri_or_domain.blank?
- domain = begin
- if uri_or_domain.include?('://')
- Addressable::URI.parse(uri_or_domain).host
- else
- uri_or_domain
- end
- end
+ domain = if uri_or_domain.include?('://')
+ Addressable::URI.parse(uri_or_domain).host
+ else
+ uri_or_domain
+ end
if whitelist_mode?
!DomainAllow.allowed?(domain)
diff --git a/app/helpers/formatting_helper.rb b/app/helpers/formatting_helper.rb
index c709314897..d390b9bc96 100644
--- a/app/helpers/formatting_helper.rb
+++ b/app/helpers/formatting_helper.rb
@@ -21,30 +21,26 @@ module FormattingHelper
def rss_status_content_format(status)
html = status_content_format(status)
- before_html = begin
- if status.spoiler_text?
- tag.p do
- tag.strong do
- I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale)
- end
+ before_html = if status.spoiler_text?
+ tag.p do
+ tag.strong do
+ I18n.t('rss.content_warning', locale: available_locale_or_nil(status.language) || I18n.default_locale)
+ end
- status.spoiler_text
- end + tag.hr
- end
- end
+ status.spoiler_text
+ end + tag.hr
+ end
- after_html = begin
- if status.preloadable_poll
- tag.p do
- safe_join(
- status.preloadable_poll.options.map do |o|
- tag.send(status.preloadable_poll.multiple? ? 'checkbox' : 'radio', o, disabled: true)
- end,
- tag.br
- )
- end
- end
- end
+ after_html = if status.preloadable_poll
+ tag.p do
+ safe_join(
+ status.preloadable_poll.options.map do |o|
+ tag.send(status.preloadable_poll.multiple? ? 'checkbox' : 'radio', o, disabled: true)
+ end,
+ tag.br
+ )
+ end
+ end
prerender_custom_emojis(
safe_join([before_html, html, after_html]),
diff --git a/app/helpers/instance_helper.rb b/app/helpers/instance_helper.rb
index daacb535b6..bedfe6f304 100644
--- a/app/helpers/instance_helper.rb
+++ b/app/helpers/instance_helper.rb
@@ -10,13 +10,11 @@ module InstanceHelper
end
def description_for_sign_up
- prefix = begin
- if @invite.present?
- I18n.t('auth.description.prefix_invited_by_user', name: @invite.user.account.username)
- else
- I18n.t('auth.description.prefix_sign_up')
- end
- end
+ prefix = if @invite.present?
+ I18n.t('auth.description.prefix_invited_by_user', name: @invite.user.account.username)
+ else
+ I18n.t('auth.description.prefix_sign_up')
+ end
safe_join([prefix, I18n.t('auth.description.suffix')], ' ')
end
diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb
index e5787fd471..24362b61e7 100644
--- a/app/helpers/jsonld_helper.rb
+++ b/app/helpers/jsonld_helper.rb
@@ -26,15 +26,13 @@ module JsonLdHelper
# The url attribute can be a string, an array of strings, or an array of objects.
# The objects could include a mimeType. Not-included mimeType means it's text/html.
def url_to_href(value, preferred_type = nil)
- single_value = begin
- if value.is_a?(Array) && !value.first.is_a?(String)
- value.find { |link| preferred_type.nil? || ((link['mimeType'].presence || 'text/html') == preferred_type) }
- elsif value.is_a?(Array)
- value.first
- else
- value
- end
- end
+ single_value = if value.is_a?(Array) && !value.first.is_a?(String)
+ value.find { |link| preferred_type.nil? || ((link['mimeType'].presence || 'text/html') == preferred_type) }
+ elsif value.is_a?(Array)
+ value.first
+ else
+ value
+ end
if single_value.nil? || single_value.is_a?(String)
single_value
diff --git a/app/lib/activity_tracker.rb b/app/lib/activity_tracker.rb
index 6d3401b37b..8829d8605f 100644
--- a/app/lib/activity_tracker.rb
+++ b/app/lib/activity_tracker.rb
@@ -27,14 +27,12 @@ class ActivityTracker
(start_at.to_date...end_at.to_date).map do |date|
key = key_at(date.to_time(:utc))
- value = begin
- case @type
- when :basic
- redis.get(key).to_i
- when :unique
- redis.pfcount(key)
- end
- end
+ value = case @type
+ when :basic
+ redis.get(key).to_i
+ when :unique
+ redis.pfcount(key)
+ end
[date, value]
end
diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb
index f82112c02d..e2355bfbcc 100644
--- a/app/lib/activitypub/activity/create.rb
+++ b/app/lib/activitypub/activity/create.rb
@@ -108,26 +108,24 @@ class ActivityPub::Activity::Create < ActivityPub::Activity
def process_status_params
@status_parser = ActivityPub::Parser::StatusParser.new(@json, followers_collection: @account.followers_url)
- @params = begin
- {
- uri: @status_parser.uri,
- url: @status_parser.url || @status_parser.uri,
- account: @account,
- text: converted_object_type? ? converted_text : (@status_parser.text || ''),
- language: @status_parser.language,
- spoiler_text: converted_object_type? ? '' : (@status_parser.spoiler_text || ''),
- created_at: @status_parser.created_at,
- edited_at: @status_parser.edited_at && @status_parser.edited_at != @status_parser.created_at ? @status_parser.edited_at : nil,
- override_timestamps: @options[:override_timestamps],
- reply: @status_parser.reply,
- sensitive: @account.sensitized? || @status_parser.sensitive || false,
- visibility: @status_parser.visibility,
- thread: replied_to_status,
- conversation: conversation_from_uri(@object['conversation']),
- media_attachment_ids: process_attachments.take(4).map(&:id),
- poll: process_poll,
- }
- end
+ @params = {
+ uri: @status_parser.uri,
+ url: @status_parser.url || @status_parser.uri,
+ account: @account,
+ text: converted_object_type? ? converted_text : (@status_parser.text || ''),
+ language: @status_parser.language,
+ spoiler_text: converted_object_type? ? '' : (@status_parser.spoiler_text || ''),
+ created_at: @status_parser.created_at,
+ edited_at: @status_parser.edited_at && @status_parser.edited_at != @status_parser.created_at ? @status_parser.edited_at : nil,
+ override_timestamps: @options[:override_timestamps],
+ reply: @status_parser.reply,
+ sensitive: @account.sensitized? || @status_parser.sensitive || false,
+ visibility: @status_parser.visibility,
+ thread: replied_to_status,
+ conversation: conversation_from_uri(@object['conversation']),
+ media_attachment_ids: process_attachments.take(4).map(&:id),
+ poll: process_poll,
+ }
end
def process_audience
diff --git a/app/lib/activitypub/forwarder.rb b/app/lib/activitypub/forwarder.rb
index 4206b9d822..b01d63e586 100644
--- a/app/lib/activitypub/forwarder.rb
+++ b/app/lib/activitypub/forwarder.rb
@@ -28,13 +28,11 @@ class ActivityPub::Forwarder
end
def signature_account_id
- @signature_account_id ||= begin
- if in_reply_to_local?
- in_reply_to.account_id
- else
- reblogged_by_account_ids.first
- end
- end
+ @signature_account_id ||= if in_reply_to_local?
+ in_reply_to.account_id
+ else
+ reblogged_by_account_ids.first
+ end
end
def inboxes
diff --git a/app/lib/admin/metrics/dimension/software_versions_dimension.rb b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
index 816615f992..9ab3776c91 100644
--- a/app/lib/admin/metrics/dimension/software_versions_dimension.rb
+++ b/app/lib/admin/metrics/dimension/software_versions_dimension.rb
@@ -58,12 +58,10 @@ class Admin::Metrics::Dimension::SoftwareVersionsDimension < Admin::Metrics::Dim
end
def redis_info
- @redis_info ||= begin
- if redis.is_a?(Redis::Namespace)
- redis.redis.info
- else
- redis.info
- end
- end
+ @redis_info ||= if redis.is_a?(Redis::Namespace)
+ redis.redis.info
+ else
+ redis.info
+ end
end
end
diff --git a/app/lib/admin/metrics/dimension/space_usage_dimension.rb b/app/lib/admin/metrics/dimension/space_usage_dimension.rb
index 5867c5bab6..cc85608904 100644
--- a/app/lib/admin/metrics/dimension/space_usage_dimension.rb
+++ b/app/lib/admin/metrics/dimension/space_usage_dimension.rb
@@ -59,12 +59,10 @@ class Admin::Metrics::Dimension::SpaceUsageDimension < Admin::Metrics::Dimension
end
def redis_info
- @redis_info ||= begin
- if redis.is_a?(Redis::Namespace)
- redis.redis.info
- else
- redis.info
- end
- end
+ @redis_info ||= if redis.is_a?(Redis::Namespace)
+ redis.redis.info
+ else
+ redis.info
+ end
end
end
diff --git a/app/lib/extractor.rb b/app/lib/extractor.rb
index 1eba689ef1..540bbe1a92 100644
--- a/app/lib/extractor.rb
+++ b/app/lib/extractor.rb
@@ -8,12 +8,10 @@ module Extractor
module_function
def extract_entities_with_indices(text, options = {}, &block)
- entities = begin
- extract_urls_with_indices(text, options) +
- extract_hashtags_with_indices(text, check_url_overlap: false) +
- extract_mentions_or_lists_with_indices(text) +
- extract_extra_uris_with_indices(text)
- end
+ entities = extract_urls_with_indices(text, options) +
+ extract_hashtags_with_indices(text, check_url_overlap: false) +
+ extract_mentions_or_lists_with_indices(text) +
+ extract_extra_uris_with_indices(text)
return [] if entities.empty?
diff --git a/app/lib/importer/statuses_index_importer.rb b/app/lib/importer/statuses_index_importer.rb
index 5b5153d5c8..b0721c2e02 100644
--- a/app/lib/importer/statuses_index_importer.rb
+++ b/app/lib/importer/statuses_index_importer.rb
@@ -24,13 +24,11 @@ class Importer::StatusesIndexImporter < Importer::BaseImporter
# is called before rendering the data and we need to filter based
# on the results of the filter, so this filtering happens here instead
bulk.map! do |entry|
- new_entry = begin
- if entry[:index] && entry.dig(:index, :data, 'searchable_by').blank?
- { delete: entry[:index].except(:data) }
- else
- entry
- end
- end
+ new_entry = if entry[:index] && entry.dig(:index, :data, 'searchable_by').blank?
+ { delete: entry[:index].except(:data) }
+ else
+ entry
+ end
if new_entry[:index]
indexed += 1
diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb
index 2e0672abe1..74a7d0f3bc 100644
--- a/app/lib/link_details_extractor.rb
+++ b/app/lib/link_details_extractor.rb
@@ -232,26 +232,24 @@ class LinkDetailsExtractor
end
def structured_data
- @structured_data ||= begin
- # Some publications have more than one JSON-LD definition on the page,
- # and some of those definitions aren't valid JSON either, so we have
- # to loop through here until we find something that is the right type
- # and doesn't break
- document.xpath('//script[@type="application/ld+json"]').filter_map do |element|
- json_ld = element.content&.gsub(CDATA_JUNK_PATTERN, '')
+ # Some publications have more than one JSON-LD definition on the page,
+ # and some of those definitions aren't valid JSON either, so we have
+ # to loop through here until we find something that is the right type
+ # and doesn't break
+ @structured_data ||= document.xpath('//script[@type="application/ld+json"]').filter_map do |element|
+ json_ld = element.content&.gsub(CDATA_JUNK_PATTERN, '')
- next if json_ld.blank?
+ next if json_ld.blank?
- structured_data = StructuredData.new(html_entities.decode(json_ld))
+ structured_data = StructuredData.new(html_entities.decode(json_ld))
- next unless structured_data.valid?
+ next unless structured_data.valid?
- structured_data
- rescue Oj::ParseError, EncodingError
- Rails.logger.debug { "Invalid JSON-LD in #{@original_url}" }
- next
- end.first
- end
+ structured_data
+ rescue Oj::ParseError, EncodingError
+ Rails.logger.debug { "Invalid JSON-LD in #{@original_url}" }
+ next
+ end.first
end
def document
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 0508169dcb..be6a69b3ff 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -215,26 +215,24 @@ class Request
addr_by_socket = {}
addresses.each do |address|
- begin
- check_private_address(address, host)
+ check_private_address(address, host)
- sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0)
- sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s)
+ sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0)
+ sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s)
- sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1)
+ sock.setsockopt(::Socket::IPPROTO_TCP, ::Socket::TCP_NODELAY, 1)
- sock.connect_nonblock(sockaddr)
+ sock.connect_nonblock(sockaddr)
- # If that hasn't raised an exception, we somehow managed to connect
- # immediately, close pending sockets and return immediately
- socks.each(&:close)
- return sock
- rescue IO::WaitWritable
- socks << sock
- addr_by_socket[sock] = sockaddr
- rescue => e
- outer_e = e
- end
+ # If that hasn't raised an exception, we somehow managed to connect
+ # immediately, close pending sockets and return immediately
+ socks.each(&:close)
+ return sock
+ rescue IO::WaitWritable
+ socks << sock
+ addr_by_socket[sock] = sockaddr
+ rescue => e
+ outer_e = e
end
until socks.empty?
@@ -279,9 +277,7 @@ class Request
end
def private_address_exceptions
- @private_address_exceptions = begin
- (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(',').map { |addr| IPAddr.new(addr) }
- end
+ @private_address_exceptions = (ENV['ALLOWED_PRIVATE_ADDRESSES'] || '').split(',').map { |addr| IPAddr.new(addr) }
end
end
end
diff --git a/app/models/account.rb b/app/models/account.rb
index a96e204fab..2c0cd577e6 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -459,13 +459,12 @@ class Account < ApplicationRecord
return [] if text.blank?
text.scan(MENTION_RE).map { |match| match.first.split('@', 2) }.uniq.filter_map do |(username, domain)|
- domain = begin
- if TagManager.instance.local_domain?(domain)
- nil
- else
- TagManager.instance.normalize_domain(domain)
- end
- end
+ domain = if TagManager.instance.local_domain?(domain)
+ nil
+ else
+ TagManager.instance.normalize_domain(domain)
+ end
+
EntityCache.instance.mention(username, domain)
end
end
diff --git a/app/models/account/field.rb b/app/models/account/field.rb
index 4db4cac301..98c29726df 100644
--- a/app/models/account/field.rb
+++ b/app/models/account/field.rb
@@ -25,13 +25,11 @@ class Account::Field < ActiveModelSerializers::Model
end
def value_for_verification
- @value_for_verification ||= begin
- if account.local?
- value
- else
- extract_url_from_html
- end
- end
+ @value_for_verification ||= if account.local?
+ value
+ else
+ extract_url_from_html
+ end
end
def verifiable?
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index bce0d6e179..1ce28f5c82 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -166,13 +166,11 @@ class Admin::AccountAction
end
def reports
- @reports ||= begin
- if type == 'none'
- with_report? ? [report] : []
- else
- Report.where(target_account: target_account).unresolved
- end
- end
+ @reports ||= if type == 'none'
+ with_report? ? [report] : []
+ else
+ Report.where(target_account: target_account).unresolved
+ end
end
def warning_preset
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index 4b2cb4c6d0..898bf3efa9 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -54,13 +54,11 @@ class Announcement < ApplicationRecord
end
def statuses
- @statuses ||= begin
- if status_ids.nil?
- []
- else
- Status.where(id: status_ids, visibility: [:public, :unlisted])
- end
- end
+ @statuses ||= if status_ids.nil?
+ []
+ else
+ Status.where(id: status_ids, visibility: [:public, :unlisted])
+ end
end
def tags
diff --git a/app/models/concerns/account_merging.rb b/app/models/concerns/account_merging.rb
index 8161761fb5..41071633db 100644
--- a/app/models/concerns/account_merging.rb
+++ b/app/models/concerns/account_merging.rb
@@ -21,11 +21,9 @@ module AccountMerging
owned_classes.each do |klass|
klass.where(account_id: other_account.id).find_each do |record|
- begin
- record.update_attribute(:account_id, id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:account_id, id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
@@ -36,11 +34,9 @@ module AccountMerging
target_classes.each do |klass|
klass.where(target_account_id: other_account.id).find_each do |record|
- begin
- record.update_attribute(:target_account_id, id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:target_account_id, id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
diff --git a/app/models/concerns/pam_authenticable.rb b/app/models/concerns/pam_authenticable.rb
index 6169d4dfaa..f97f986a41 100644
--- a/app/models/concerns/pam_authenticable.rb
+++ b/app/models/concerns/pam_authenticable.rb
@@ -42,13 +42,11 @@ module PamAuthenticable
def self.pam_get_user(attributes = {})
return nil unless attributes[:email]
- resource = begin
- if Devise.check_at_sign && !attributes[:email].index('@')
- joins(:account).find_by(accounts: { username: attributes[:email] })
- else
- find_by(email: attributes[:email])
- end
- end
+ resource = if Devise.check_at_sign && !attributes[:email].index('@')
+ joins(:account).find_by(accounts: { username: attributes[:email] })
+ else
+ find_by(email: attributes[:email])
+ end
if resource.nil?
resource = new(email: attributes[:email], agreement: true)
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 10a0e51020..3a56e4f2aa 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -69,13 +69,11 @@ class EmailDomainBlock < ApplicationRecord
def extract_uris(domain_or_domains)
Array(domain_or_domains).map do |str|
- domain = begin
- if str.include?('@')
- str.split('@', 2).last
- else
- str
- end
- end
+ domain = if str.include?('@')
+ str.split('@', 2).last
+ else
+ str
+ end
Addressable::URI.new.tap { |u| u.host = domain.strip } if domain.present?
rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 070478e8ee..95c53084a7 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -76,13 +76,11 @@ class Form::AdminSettings
define_method(key) do
return instance_variable_get("@#{key}") if instance_variable_defined?("@#{key}")
- stored_value = begin
- if UPLOAD_KEYS.include?(key)
- SiteUpload.where(var: key).first_or_initialize(var: key)
- else
- Setting.public_send(key)
- end
- end
+ stored_value = if UPLOAD_KEYS.include?(key)
+ SiteUpload.where(var: key).first_or_initialize(var: key)
+ else
+ Setting.public_send(key)
+ end
instance_variable_set("@#{key}", stored_value)
end
diff --git a/app/models/form/custom_emoji_batch.rb b/app/models/form/custom_emoji_batch.rb
index f4fa84c102..484415f902 100644
--- a/app/models/form/custom_emoji_batch.rb
+++ b/app/models/form/custom_emoji_batch.rb
@@ -36,13 +36,11 @@ class Form::CustomEmojiBatch
def update!
custom_emojis.each { |custom_emoji| authorize(custom_emoji, :update?) }
- category = begin
- if category_id.present?
- CustomEmojiCategory.find(category_id)
- elsif category_name.present?
- CustomEmojiCategory.find_or_create_by!(name: category_name)
- end
- end
+ category = if category_id.present?
+ CustomEmojiCategory.find(category_id)
+ elsif category_name.present?
+ CustomEmojiCategory.find_or_create_by!(name: category_name)
+ end
custom_emojis.each do |custom_emoji|
custom_emoji.update(category_id: category&.id)
diff --git a/app/models/notification.rb b/app/models/notification.rb
index bbc63c1c05..01155c363e 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -87,13 +87,11 @@ class Notification < ApplicationRecord
class << self
def browserable(types: [], exclude_types: [], from_account_id: nil)
- requested_types = begin
- if types.empty?
- TYPES
- else
- types.map(&:to_sym) & TYPES
- end
- end
+ requested_types = if types.empty?
+ TYPES
+ else
+ types.map(&:to_sym) & TYPES
+ end
requested_types -= exclude_types.map(&:to_sym)
diff --git a/app/models/remote_follow.rb b/app/models/remote_follow.rb
index 911c067133..10715ac97d 100644
--- a/app/models/remote_follow.rb
+++ b/app/models/remote_follow.rb
@@ -36,13 +36,11 @@ class RemoteFollow
username, domain = value.strip.gsub(/\A@/, '').split('@')
- domain = begin
- if TagManager.instance.local_domain?(domain)
- nil
- else
- TagManager.instance.normalize_domain(domain)
- end
- end
+ domain = if TagManager.instance.local_domain?(domain)
+ nil
+ else
+ TagManager.instance.normalize_domain(domain)
+ end
[username, domain].compact.join('@')
rescue Addressable::URI::InvalidURIError
diff --git a/app/models/status.rb b/app/models/status.rb
index a924a985ff..102dfa9942 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -368,13 +368,12 @@ class Status < ApplicationRecord
return [] if text.blank?
text.scan(FetchLinkCardService::URL_PATTERN).map(&:second).uniq.filter_map do |url|
- status = begin
- if TagManager.instance.local_url?(url)
- ActivityPub::TagManager.instance.uri_to_resource(url, Status)
- else
- EntityCache.instance.status(url)
- end
- end
+ status = if TagManager.instance.local_url?(url)
+ ActivityPub::TagManager.instance.uri_to_resource(url, Status)
+ else
+ EntityCache.instance.status(url)
+ end
+
status&.distributable? ? status : nil
end
end
diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb
index e334702260..dd2d5fc1ec 100644
--- a/app/models/status_edit.rb
+++ b/app/models/status_edit.rb
@@ -51,14 +51,12 @@ class StatusEdit < ApplicationRecord
def ordered_media_attachments
return @ordered_media_attachments if defined?(@ordered_media_attachments)
- @ordered_media_attachments = begin
- if ordered_media_attachment_ids.nil?
- []
- else
- map = status.media_attachments.index_by(&:id)
- ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
- end
- end
+ @ordered_media_attachments = if ordered_media_attachment_ids.nil?
+ []
+ else
+ map = status.media_attachments.index_by(&:id)
+ ordered_media_attachment_ids.map.with_index { |media_attachment_id, index| PreservedMediaAttachment.new(media_attachment: map[media_attachment_id], description: media_descriptions[index]) }
+ end
end
def proper
diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb
index 8808b3ab6f..c94f7c0237 100644
--- a/app/models/trends/links.rb
+++ b/app/models/trends/links.rb
@@ -113,13 +113,11 @@ class Trends::Links < Trends::Base
max_score = preview_card.max_score
max_score = 0 if max_time.nil? || max_time < (at_time - options[:max_score_cooldown])
- score = begin
- if expected > observed || observed < options[:threshold]
- 0
- else
- ((observed - expected)**2) / expected
- end
- end
+ score = if expected > observed || observed < options[:threshold]
+ 0
+ else
+ ((observed - expected)**2) / expected
+ end
if score > max_score
max_score = score
@@ -129,13 +127,11 @@ class Trends::Links < Trends::Base
preview_card.update_columns(max_score: max_score, max_score_at: max_time)
end
- decaying_score = begin
- if max_score.zero? || !valid_locale?(preview_card.language)
- 0
- else
- max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
- end
- end
+ decaying_score = if max_score.zero? || !valid_locale?(preview_card.language)
+ 0
+ else
+ max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
+ end
[decaying_score, preview_card]
end
diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb
index c9ef7c8f2e..84bff9c027 100644
--- a/app/models/trends/statuses.rb
+++ b/app/models/trends/statuses.rb
@@ -99,21 +99,17 @@ class Trends::Statuses < Trends::Base
expected = 1.0
observed = (status.reblogs_count + status.favourites_count).to_f
- score = begin
- if expected > observed || observed < options[:threshold]
- 0
- else
- ((observed - expected)**2) / expected
- end
- end
+ score = if expected > observed || observed < options[:threshold]
+ 0
+ else
+ ((observed - expected)**2) / expected
+ end
- decaying_score = begin
- if score.zero? || !eligible?(status)
- 0
- else
- score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
- end
- end
+ decaying_score = if score.zero? || !eligible?(status)
+ 0
+ else
+ score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
+ end
[decaying_score, status]
end
diff --git a/app/models/trends/tag_filter.rb b/app/models/trends/tag_filter.rb
index 3b142efc45..46b747819e 100644
--- a/app/models/trends/tag_filter.rb
+++ b/app/models/trends/tag_filter.rb
@@ -13,13 +13,11 @@ class Trends::TagFilter
end
def results
- scope = begin
- if params[:status] == 'pending_review'
- Tag.unscoped
- else
- trending_scope
- end
- end
+ scope = if params[:status] == 'pending_review'
+ Tag.unscoped
+ else
+ trending_scope
+ end
params.each do |key, value|
next if key.to_s == 'page'
diff --git a/app/models/trends/tags.rb b/app/models/trends/tags.rb
index 19ade52ba4..9315329906 100644
--- a/app/models/trends/tags.rb
+++ b/app/models/trends/tags.rb
@@ -63,13 +63,11 @@ class Trends::Tags < Trends::Base
max_score = tag.max_score
max_score = 0 if max_time.nil? || max_time < (at_time - options[:max_score_cooldown])
- score = begin
- if expected > observed || observed < options[:threshold]
- 0
- else
- ((observed - expected)**2) / expected
- end
- end
+ score = if expected > observed || observed < options[:threshold]
+ 0
+ else
+ ((observed - expected)**2) / expected
+ end
if score > max_score
max_score = score
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index 6e46573ae0..dfaadf5cca 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -53,25 +53,21 @@ class Web::PushSubscription < ApplicationRecord
def associated_user
return @associated_user if defined?(@associated_user)
- @associated_user = begin
- if user_id.nil?
- session_activation.user
- else
- user
- end
- end
+ @associated_user = if user_id.nil?
+ session_activation.user
+ else
+ user
+ end
end
def associated_access_token
return @associated_access_token if defined?(@associated_access_token)
- @associated_access_token = begin
- if access_token_id.nil?
- find_or_create_access_token.token
- else
- access_token.token
- end
- end
+ @associated_access_token = if access_token_id.nil?
+ find_or_create_access_token.token
+ else
+ access_token.token
+ end
end
class << self
diff --git a/app/presenters/tag_relationships_presenter.rb b/app/presenters/tag_relationships_presenter.rb
index c3bdbaf071..52e24314be 100644
--- a/app/presenters/tag_relationships_presenter.rb
+++ b/app/presenters/tag_relationships_presenter.rb
@@ -4,12 +4,10 @@ class TagRelationshipsPresenter
attr_reader :following_map
def initialize(tags, current_account_id = nil, **options)
- @following_map = begin
- if current_account_id.nil?
- {}
- else
- TagFollow.select(:tag_id).where(tag_id: tags.map(&:id), account_id: current_account_id).each_with_object({}) { |f, h| h[f.tag_id] = true }.merge(options[:following_map] || {})
- end
- end
+ @following_map = if current_account_id.nil?
+ {}
+ else
+ TagFollow.select(:tag_id).where(tag_id: tags.map(&:id), account_id: current_account_id).each_with_object({}) { |f, h| h[f.tag_id] = true }.merge(options[:following_map] || {})
+ end
end
end
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index 85538870bf..dfc3a45f8f 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -32,15 +32,13 @@ class AccountSearchService < BaseService
return @exact_match if defined?(@exact_match)
- match = begin
- if options[:resolve]
- ResolveAccountService.new.call(query)
- elsif domain_is_local?
- Account.find_local(query_username)
- else
- Account.find_remote(query_username, query_domain)
- end
- end
+ match = if options[:resolve]
+ ResolveAccountService.new.call(query)
+ elsif domain_is_local?
+ Account.find_local(query_username)
+ else
+ Account.find_remote(query_username, query_domain)
+ end
match = nil if !match.nil? && !account.nil? && options[:following] && !account.following?(match)
diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb
index ab047a0f8b..ff1a88aa1e 100644
--- a/app/services/activitypub/fetch_featured_tags_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb
@@ -22,14 +22,12 @@ class ActivityPub::FetchFeaturedTagsCollectionService < BaseService
collection = fetch_collection(collection['first']) if collection['first'].present?
while collection.is_a?(Hash)
- items = begin
- case collection['type']
- when 'Collection', 'CollectionPage'
- collection['items']
- when 'OrderedCollection', 'OrderedCollectionPage'
- collection['orderedItems']
- end
- end
+ items = case collection['type']
+ when 'Collection', 'CollectionPage'
+ collection['items']
+ when 'OrderedCollection', 'OrderedCollectionPage'
+ collection['orderedItems']
+ end
break if items.blank?
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index 936737bf66..aea80f078a 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -9,13 +9,11 @@ class ActivityPub::FetchRemoteStatusService < BaseService
# Should be called when uri has already been checked for locality
def call(uri, id: true, prefetched_body: nil, on_behalf_of: nil, expected_actor_uri: nil, request_id: nil)
@request_id = request_id || "#{Time.now.utc.to_i}-status-#{uri}"
- @json = begin
- if prefetched_body.nil?
- fetch_resource(uri, id, on_behalf_of)
- else
- body_to_json(prefetched_body, compare_id: id ? uri : nil)
- end
- end
+ @json = if prefetched_body.nil?
+ fetch_resource(uri, id, on_behalf_of)
+ else
+ body_to_json(prefetched_body, compare_id: id ? uri : nil)
+ end
return unless supported_context?
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index 4d55aa5e23..d5fa9af541 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -69,16 +69,14 @@ class FetchLinkCardService < BaseService
end
def parse_urls
- urls = begin
- if @status.local?
- @status.text.scan(URL_PATTERN).map { |array| Addressable::URI.parse(array[1]).normalize }
- else
- document = Nokogiri::HTML(@status.text)
- links = document.css('a')
+ urls = if @status.local?
+ @status.text.scan(URL_PATTERN).map { |array| Addressable::URI.parse(array[1]).normalize }
+ else
+ document = Nokogiri::HTML(@status.text)
+ links = document.css('a')
- links.filter_map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.filter_map(&:normalize)
- end
- end
+ links.filter_map { |a| Addressable::URI.parse(a['href']) unless skip_link?(a) }.filter_map(&:normalize)
+ end
urls.reject { |uri| bad_url?(uri) }.first
end
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index 93a96667e0..b3b279147d 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -28,13 +28,11 @@ class ProcessMentionsService < BaseService
@status.text = @status.text.gsub(Account::MENTION_RE) do |match|
username, domain = Regexp.last_match(1).split('@')
- domain = begin
- if TagManager.instance.local_domain?(domain)
- nil
- else
- TagManager.instance.normalize_domain(domain)
- end
- end
+ domain = if TagManager.instance.local_domain?(domain)
+ nil
+ else
+ TagManager.instance.normalize_domain(domain)
+ end
mentioned_account = Account.find_remote(username, domain)
diff --git a/app/services/reblog_service.rb b/app/services/reblog_service.rb
index 7d2981709b..6ec0944744 100644
--- a/app/services/reblog_service.rb
+++ b/app/services/reblog_service.rb
@@ -20,13 +20,11 @@ class ReblogService < BaseService
return reblog unless reblog.nil?
- visibility = begin
- if reblogged_status.hidden?
- reblogged_status.visibility
- else
- options[:visibility] || account.user&.setting_default_privacy
- end
- end
+ visibility = if reblogged_status.hidden?
+ reblogged_status.visibility
+ else
+ options[:visibility] || account.user&.setting_default_privacy
+ end
reblog = account.statuses.create!(reblog: reblogged_status, text: '', visibility: visibility, rate_limit: options[:with_rate_limit])
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index c76df5a0e4..abe1534a55 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -71,13 +71,11 @@ class ResolveAccountService < BaseService
@username, @domain = uri.strip.gsub(/\A@/, '').split('@')
end
- @domain = begin
- if TagManager.instance.local_domain?(@domain)
- nil
- else
- TagManager.instance.normalize_domain(@domain)
- end
- end
+ @domain = if TagManager.instance.local_domain?(@domain)
+ nil
+ else
+ TagManager.instance.normalize_domain(@domain)
+ end
@uri = [@username, @domain].compact.join('@')
end
diff --git a/app/validators/domain_validator.rb b/app/validators/domain_validator.rb
index 6e4a854ff2..3a951f9a7e 100644
--- a/app/validators/domain_validator.rb
+++ b/app/validators/domain_validator.rb
@@ -4,13 +4,11 @@ class DomainValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
return if value.blank?
- domain = begin
- if options[:acct]
- value.split('@').last
- else
- value
- end
- end
+ domain = if options[:acct]
+ value.split('@').last
+ else
+ value
+ end
record.errors.add(attribute, I18n.t('domain_validator.invalid_domain')) unless compliant?(domain)
end
diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb
index 1c55968216..45de4f4a44 100644
--- a/app/validators/existing_username_validator.rb
+++ b/app/validators/existing_username_validator.rb
@@ -4,16 +4,14 @@ class ExistingUsernameValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
return if value.blank?
- usernames_and_domains = begin
- value.split(',').map do |str|
- username, domain = str.strip.gsub(/\A@/, '').split('@', 2)
- domain = nil if TagManager.instance.local_domain?(domain)
+ usernames_and_domains = value.split(',').map do |str|
+ username, domain = str.strip.gsub(/\A@/, '').split('@', 2)
+ domain = nil if TagManager.instance.local_domain?(domain)
- next if username.blank?
+ next if username.blank?
- [str, username, domain]
- end.compact
- end
+ [str, username, domain]
+ end.compact
usernames_with_no_accounts = usernames_and_domains.filter_map do |(str, username, domain)|
str unless Account.find_remote(username, domain)
diff --git a/app/validators/import_validator.rb b/app/validators/import_validator.rb
index cbad56df63..782baf5d6b 100644
--- a/app/validators/import_validator.rb
+++ b/app/validators/import_validator.rb
@@ -35,13 +35,11 @@ class ImportValidator < ActiveModel::Validator
def validate_following_import(import, row_count)
base_limit = FollowLimitValidator.limit_for_account(import.account)
- limit = begin
- if import.overwrite?
- base_limit
- else
- base_limit - import.account.following_count
- end
- end
+ limit = if import.overwrite?
+ base_limit
+ else
+ base_limit - import.account.following_count
+ end
import.errors.add(:data, I18n.t('users.follow_limit_reached', limit: base_limit)) if row_count > limit
end
diff --git a/app/workers/backup_worker.rb b/app/workers/backup_worker.rb
index 7b0b52844d..df933142ae 100644
--- a/app/workers/backup_worker.rb
+++ b/app/workers/backup_worker.rb
@@ -9,12 +9,10 @@ class BackupWorker
backup_id = msg['args'].first
ActiveRecord::Base.connection_pool.with_connection do
- begin
- backup = Backup.find(backup_id)
- backup.destroy
- rescue ActiveRecord::RecordNotFound
- true
- end
+ backup = Backup.find(backup_id)
+ backup.destroy
+ rescue ActiveRecord::RecordNotFound
+ true
end
end
diff --git a/app/workers/post_process_media_worker.rb b/app/workers/post_process_media_worker.rb
index 24201101c3..996d5def91 100644
--- a/app/workers/post_process_media_worker.rb
+++ b/app/workers/post_process_media_worker.rb
@@ -9,13 +9,11 @@ class PostProcessMediaWorker
media_attachment_id = msg['args'].first
ActiveRecord::Base.connection_pool.with_connection do
- begin
- media_attachment = MediaAttachment.find(media_attachment_id)
- media_attachment.processing = :failed
- media_attachment.save
- rescue ActiveRecord::RecordNotFound
- true
- end
+ media_attachment = MediaAttachment.find(media_attachment_id)
+ media_attachment.processing = :failed
+ media_attachment.save
+ rescue ActiveRecord::RecordNotFound
+ true
end
Sidekiq.logger.error("Processing media attachment #{media_attachment_id} failed with #{msg['error_message']}")
diff --git a/app/workers/scheduler/follow_recommendations_scheduler.rb b/app/workers/scheduler/follow_recommendations_scheduler.rb
index 57f78170e4..04008a9d99 100644
--- a/app/workers/scheduler/follow_recommendations_scheduler.rb
+++ b/app/workers/scheduler/follow_recommendations_scheduler.rb
@@ -19,13 +19,11 @@ class Scheduler::FollowRecommendationsScheduler
fallback_recommendations = FollowRecommendation.order(rank: :desc).limit(SET_SIZE)
Trends.available_locales.each do |locale|
- recommendations = begin
- if AccountSummary.safe.filtered.localized(locale).exists? # We can skip the work if no accounts with that language exist
- FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.account_id, recommendation.rank] }
- else
- []
- end
- end
+ recommendations = if AccountSummary.safe.filtered.localized(locale).exists? # We can skip the work if no accounts with that language exist
+ FollowRecommendation.localized(locale).order(rank: :desc).limit(SET_SIZE).map { |recommendation| [recommendation.account_id, recommendation.rank] }
+ else
+ []
+ end
# Use language-agnostic results if there are not enough language-specific ones
missing = SET_SIZE - recommendations.size
diff --git a/db/migrate/20180528141303_fix_accounts_unique_index.rb b/db/migrate/20180528141303_fix_accounts_unique_index.rb
index 3e33e2cac4..0b39f71079 100644
--- a/db/migrate/20180528141303_fix_accounts_unique_index.rb
+++ b/db/migrate/20180528141303_fix_accounts_unique_index.rb
@@ -106,21 +106,17 @@ class FixAccountsUniqueIndex < ActiveRecord::Migration[5.2]
# to check for (and skip past) uniqueness errors
[Favourite, Follow, FollowRequest, Block, Mute].each do |klass|
klass.where(account_id: duplicate_account.id).find_each do |record|
- begin
- record.update_attribute(:account_id, main_account.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:account_id, main_account.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
[Follow, FollowRequest, Block, Mute].each do |klass|
klass.where(target_account_id: duplicate_account.id).find_each do |record|
- begin
- record.update_attribute(:target_account_id, main_account.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:target_account_id, main_account.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
end
diff --git a/db/migrate/20180812173710_copy_status_stats.rb b/db/migrate/20180812173710_copy_status_stats.rb
index 9b2971bebc..45eb9501ce 100644
--- a/db/migrate/20180812173710_copy_status_stats.rb
+++ b/db/migrate/20180812173710_copy_status_stats.rb
@@ -43,12 +43,10 @@ class CopyStatusStats < ActiveRecord::Migration[5.2]
# We cannot use bulk INSERT or overarching transactions here because of possible
# uniqueness violations that we need to skip over
Status.unscoped.select('id, reblogs_count, favourites_count, created_at, updated_at').find_each do |status|
- begin
- params = [[nil, status.id], [nil, status.reblogs_count], [nil, status.favourites_count], [nil, status.created_at], [nil, status.updated_at]]
- exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ params = [[nil, status.id], [nil, status.reblogs_count], [nil, status.favourites_count], [nil, status.created_at], [nil, status.updated_at]]
+ exec_insert('INSERT INTO status_stats (status_id, reblogs_count, favourites_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5)', nil, params)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
end
diff --git a/db/migrate/20181116173541_copy_account_stats.rb b/db/migrate/20181116173541_copy_account_stats.rb
index 20dc851957..f908575cb1 100644
--- a/db/migrate/20181116173541_copy_account_stats.rb
+++ b/db/migrate/20181116173541_copy_account_stats.rb
@@ -43,12 +43,10 @@ class CopyAccountStats < ActiveRecord::Migration[5.2]
# We cannot use bulk INSERT or overarching transactions here because of possible
# uniqueness violations that we need to skip over
Account.unscoped.select('id, statuses_count, following_count, followers_count, created_at, updated_at').find_each do |account|
- begin
- params = [[nil, account.id], [nil, account[:statuses_count]], [nil, account[:following_count]], [nil, account[:followers_count]], [nil, account.created_at], [nil, account.updated_at]]
- exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ params = [[nil, account.id], [nil, account[:statuses_count]], [nil, account[:following_count]], [nil, account[:followers_count]], [nil, account.created_at], [nil, account.updated_at]]
+ exec_insert('INSERT INTO account_stats (account_id, statuses_count, following_count, followers_count, created_at, updated_at) VALUES ($1, $2, $3, $4, $5, $6)', nil, params)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
end
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 34afbc699d..db379eb853 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -490,14 +490,12 @@ module Mastodon
scope = Account.where(id: ::Follow.where(account: account).select(:target_account_id))
scope.find_each do |target_account|
- begin
- UnfollowService.new.call(account, target_account)
- rescue => e
- progress.log pastel.red("Error processing #{target_account.id}: #{e}")
- ensure
- progress.increment
- processed += 1
- end
+ UnfollowService.new.call(account, target_account)
+ rescue => e
+ progress.log pastel.red("Error processing #{target_account.id}: #{e}")
+ ensure
+ progress.increment
+ processed += 1
end
BootstrapTimelineWorker.perform_async(account.id)
@@ -507,14 +505,12 @@ module Mastodon
scope = Account.where(id: ::Follow.where(target_account: account).select(:account_id))
scope.find_each do |target_account|
- begin
- UnfollowService.new.call(target_account, account)
- rescue => e
- progress.log pastel.red("Error processing #{target_account.id}: #{e}")
- ensure
- progress.increment
- processed += 1
- end
+ UnfollowService.new.call(target_account, account)
+ rescue => e
+ progress.log pastel.red("Error processing #{target_account.id}: #{e}")
+ ensure
+ progress.increment
+ processed += 1
end
end
diff --git a/lib/mastodon/cli_helper.rb b/lib/mastodon/cli_helper.rb
index a78a28e273..8704edd75e 100644
--- a/lib/mastodon/cli_helper.rb
+++ b/lib/mastodon/cli_helper.rb
@@ -42,30 +42,28 @@ module Mastodon
items.each do |item|
futures << Concurrent::Future.execute(executor: pool) do
- begin
- if !progress.total.nil? && progress.progress + 1 > progress.total
- # The number of items has changed between start and now,
- # since there is no good way to predict the final count from
- # here, just change the progress bar to an indeterminate one
+ if !progress.total.nil? && progress.progress + 1 > progress.total
+ # The number of items has changed between start and now,
+ # since there is no good way to predict the final count from
+ # here, just change the progress bar to an indeterminate one
- progress.total = nil
- end
-
- progress.log("Processing #{item.id}") if options[:verbose]
-
- result = ActiveRecord::Base.connection_pool.with_connection do
- yield(item)
- ensure
- RedisConfiguration.pool.checkin if Thread.current[:redis]
- Thread.current[:redis] = nil
- end
-
- aggregate.increment(result) if result.is_a?(Integer)
- rescue => e
- progress.log pastel.red("Error processing #{item.id}: #{e}")
- ensure
- progress.increment
+ progress.total = nil
end
+
+ progress.log("Processing #{item.id}") if options[:verbose]
+
+ result = ActiveRecord::Base.connection_pool.with_connection do
+ yield(item)
+ ensure
+ RedisConfiguration.pool.checkin if Thread.current[:redis]
+ Thread.current[:redis] = nil
+ end
+
+ aggregate.increment(result) if result.is_a?(Integer)
+ rescue => e
+ progress.log pastel.red("Error processing #{item.id}: #{e}")
+ ensure
+ progress.increment
end
end
diff --git a/lib/mastodon/ip_blocks_cli.rb b/lib/mastodon/ip_blocks_cli.rb
index 5c38c1aca0..08939c0926 100644
--- a/lib/mastodon/ip_blocks_cli.rb
+++ b/lib/mastodon/ip_blocks_cli.rb
@@ -79,13 +79,11 @@ module Mastodon
skipped = 0
addresses.each do |address|
- ip_blocks = begin
- if options[:force]
- IpBlock.where('ip >>= ?', address)
- else
- IpBlock.where('ip <<= ?', address)
- end
- end
+ ip_blocks = if options[:force]
+ IpBlock.where('ip >>= ?', address)
+ else
+ IpBlock.where('ip <<= ?', address)
+ end
if ip_blocks.empty?
say("#{address} is not yet blocked", :yellow)
diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb
index a86a4f2f62..bb3802f564 100644
--- a/lib/mastodon/maintenance_cli.rb
+++ b/lib/mastodon/maintenance_cli.rb
@@ -98,11 +98,9 @@ module Mastodon
owned_classes.each do |klass|
klass.where(account_id: other_account.id).find_each do |record|
- begin
- record.update_attribute(:account_id, id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:account_id, id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
@@ -111,11 +109,9 @@ module Mastodon
target_classes.each do |klass|
klass.where(target_account_id: other_account.id).find_each do |record|
- begin
- record.update_attribute(:target_account_id, id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:target_account_id, id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
@@ -601,11 +597,9 @@ module Mastodon
owned_classes = [ConversationMute, AccountConversation]
owned_classes.each do |klass|
klass.where(conversation_id: duplicate_conv.id).find_each do |record|
- begin
- record.update_attribute(:account_id, main_conv.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:account_id, main_conv.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
end
@@ -629,47 +623,37 @@ module Mastodon
owned_classes << Bookmark if ActiveRecord::Base.connection.table_exists?(:bookmarks)
owned_classes.each do |klass|
klass.where(status_id: duplicate_status.id).find_each do |record|
- begin
- record.update_attribute(:status_id, main_status.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
- end
- end
-
- StatusPin.where(account_id: main_status.account_id, status_id: duplicate_status.id).find_each do |record|
- begin
record.update_attribute(:status_id, main_status.id)
rescue ActiveRecord::RecordNotUnique
next
end
end
+ StatusPin.where(account_id: main_status.account_id, status_id: duplicate_status.id).find_each do |record|
+ record.update_attribute(:status_id, main_status.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
+ end
+
Status.where(in_reply_to_id: duplicate_status.id).find_each do |record|
- begin
- record.update_attribute(:in_reply_to_id, main_status.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:in_reply_to_id, main_status.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
Status.where(reblog_of_id: duplicate_status.id).find_each do |record|
- begin
- record.update_attribute(:reblog_of_id, main_status.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:reblog_of_id, main_status.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
def merge_tags!(main_tag, duplicate_tag)
[FeaturedTag].each do |klass|
klass.where(tag_id: duplicate_tag.id).find_each do |record|
- begin
- record.update_attribute(:tag_id, main_tag.id)
- rescue ActiveRecord::RecordNotUnique
- next
- end
+ record.update_attribute(:tag_id, main_tag.id)
+ rescue ActiveRecord::RecordNotUnique
+ next
end
end
end
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index a901a6ab98..fc70c8785a 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -116,13 +116,11 @@ module Mastodon
loop do
objects = begin
- begin
- bucket.objects(start_after: last_key, prefix: prefix).limit(1000).map { |x| x }
- rescue => e
- progress.log(pastel.red("Error fetching list of files: #{e}"))
- progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key
- break
- end
+ bucket.objects(start_after: last_key, prefix: prefix).limit(1000).map { |x| x }
+ rescue => e
+ progress.log(pastel.red("Error fetching list of files: #{e}"))
+ progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key
+ break
end
break if objects.empty?
diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb
index b206854ab3..31e9a3d5af 100644
--- a/lib/mastodon/search_cli.rb
+++ b/lib/mastodon/search_cli.rb
@@ -43,13 +43,11 @@ module Mastodon
exit(1)
end
- indices = begin
- if options[:only]
- options[:only].map { |str| "#{str.camelize}Index".constantize }
- else
- INDICES
- end
- end
+ indices = if options[:only]
+ options[:only].map { |str| "#{str.camelize}Index".constantize }
+ else
+ INDICES
+ end
pool = Concurrent::FixedThreadPool.new(options[:concurrency], max_queue: options[:concurrency] * 10)
importers = indices.index_with { |index| "Importer::#{index.name}Importer".constantize.new(batch_size: options[:batch_size], executor: pool) }
diff --git a/lib/mastodon/upgrade_cli.rb b/lib/mastodon/upgrade_cli.rb
index 570b7e6fa8..2b60f9eee5 100644
--- a/lib/mastodon/upgrade_cli.rb
+++ b/lib/mastodon/upgrade_cli.rb
@@ -50,16 +50,14 @@ module Mastodon
styles << :original unless styles.include?(:original)
styles.each do |style|
- success = begin
- case Paperclip::Attachment.default_options[:storage]
- when :s3
- upgrade_storage_s3(progress, attachment, style)
- when :fog
- upgrade_storage_fog(progress, attachment, style)
- when :filesystem
- upgrade_storage_filesystem(progress, attachment, style)
- end
- end
+ success = case Paperclip::Attachment.default_options[:storage]
+ when :s3
+ upgrade_storage_s3(progress, attachment, style)
+ when :fog
+ upgrade_storage_fog(progress, attachment, style)
+ when :filesystem
+ upgrade_storage_filesystem(progress, attachment, style)
+ end
upgraded = true if style == :original && success
diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb
index d8a042c90f..733dcba80b 100644
--- a/lib/paperclip/color_extractor.rb
+++ b/lib/paperclip/color_extractor.rb
@@ -161,13 +161,11 @@ module Paperclip
def lighten_or_darken(color, by)
hue, saturation, light = rgb_to_hsl(color.r, color.g, color.b)
- light = begin
- if light < 50
- [100, light + by].min
- else
- [0, light - by].max
- end
- end
+ light = if light < 50
+ [100, light + by].min
+ else
+ [0, light - by].max
+ end
ColorDiff::Color::RGB.new(*hsl_to_rgb(hue, saturation, light))
end
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index baf6526626..d5e62897ff 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -41,13 +41,11 @@ class Sanitize
current_node = env[:node]
- scheme = begin
- if current_node['href'] =~ Sanitize::REGEX_PROTOCOL
- Regexp.last_match(1).downcase
- else
- :relative
- end
- end
+ scheme = if current_node['href'] =~ Sanitize::REGEX_PROTOCOL
+ Regexp.last_match(1).downcase
+ else
+ :relative
+ end
current_node.replace(Nokogiri::XML::Text.new(current_node.text, current_node.document)) unless LINK_PROTOCOLS.include?(scheme)
end
diff --git a/lib/tasks/db.rake b/lib/tasks/db.rake
index ca939fd1f0..e8a64b8fb2 100644
--- a/lib/tasks/db.rake
+++ b/lib/tasks/db.rake
@@ -4,16 +4,14 @@ namespace :db do
namespace :migrate do
desc 'Setup the db or migrate depending on state of db'
task setup: :environment do
- begin
- if ActiveRecord::Migrator.current_version.zero?
- Rake::Task['db:migrate'].invoke
- Rake::Task['db:seed'].invoke
- end
- rescue ActiveRecord::NoDatabaseError
- Rake::Task['db:setup'].invoke
- else
+ if ActiveRecord::Migrator.current_version.zero?
Rake::Task['db:migrate'].invoke
+ Rake::Task['db:seed'].invoke
end
+ rescue ActiveRecord::NoDatabaseError
+ Rake::Task['db:setup'].invoke
+ else
+ Rake::Task['db:migrate'].invoke
end
end
From 3680e032b43e9701c0bc1f3ed5238e58cd6b7ac8 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:10:19 -0500
Subject: [PATCH 0063/1254] Autofix Rubocop RSpec/EmptyLineAfterFinalLet
(#23707)
---
.rubocop_todo.yml | 21 -------------------
spec/config/initializers/rack_attack_spec.rb | 5 +++++
.../admin/reports_controller_spec.rb | 1 +
.../admin/resets_controller_spec.rb | 1 +
.../api/web/embeds_controller_spec.rb | 1 +
.../instance_actors_controller_spec.rb | 2 ++
spec/controllers/intents_controller_spec.rb | 1 +
.../settings/applications_controller_spec.rb | 1 +
.../settings/sessions_controller_spec.rb | 1 +
spec/controllers/shares_controller_spec.rb | 1 +
spec/lib/status_filter_spec.rb | 1 +
spec/models/account_spec.rb | 1 +
.../account_statuses_cleanup_policy_spec.rb | 1 +
spec/services/fetch_resource_service_spec.rb | 1 +
spec/services/import_service_spec.rb | 5 +++++
spec/services/precompute_feed_service_spec.rb | 1 +
spec/validators/poll_validator_spec.rb | 1 +
17 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 7620025cfd..03de56a2a5 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -825,27 +825,6 @@ RSpec/EmptyExampleGroup:
- 'spec/models/web/setting_spec.rb'
- 'spec/services/unmute_service_spec.rb'
-# Offense count: 25
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/EmptyLineAfterFinalLet:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
- - 'spec/controllers/admin/reports_controller_spec.rb'
- - 'spec/controllers/admin/resets_controller_spec.rb'
- - 'spec/controllers/api/web/embeds_controller_spec.rb'
- - 'spec/controllers/instance_actors_controller_spec.rb'
- - 'spec/controllers/intents_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/sessions_controller_spec.rb'
- - 'spec/controllers/shares_controller_spec.rb'
- - 'spec/lib/status_filter_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
- - 'spec/services/import_service_spec.rb'
- - 'spec/services/precompute_feed_service_spec.rb'
- - 'spec/validators/poll_validator_spec.rb'
-
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowConsecutiveOneLiners.
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 03695f5fd2..6d603caa94 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -36,11 +36,13 @@ describe Rack::Attack do
context 'for exact path' do
let(:path) { '/auth' }
+
it_behaves_like 'throttled endpoint'
end
context 'for path with format' do
let(:path) { '/auth.html' }
+
it_behaves_like 'throttled endpoint'
end
end
@@ -51,6 +53,7 @@ describe Rack::Attack do
context 'for exact path' do
let(:path) { '/api/v1/accounts' }
+
it_behaves_like 'throttled endpoint'
end
@@ -71,11 +74,13 @@ describe Rack::Attack do
context 'for exact path' do
let(:path) { '/auth/sign_in' }
+
it_behaves_like 'throttled endpoint'
end
context 'for path with format' do
let(:path) { '/auth/sign_in.html' }
+
it_behaves_like 'throttled endpoint'
end
end
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index 4cd1524bf7..4dcc277d99 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -4,6 +4,7 @@ describe Admin::ReportsController do
render_views
let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
+
before do
sign_in user, scope: :user
end
diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb
index aeb172318b..64fe027fda 100644
--- a/spec/controllers/admin/resets_controller_spec.rb
+++ b/spec/controllers/admin/resets_controller_spec.rb
@@ -4,6 +4,7 @@ describe Admin::ResetsController do
render_views
let(:account) { Fabricate(:account) }
+
before do
sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb
index a8fc1718f6..345c317ba6 100644
--- a/spec/controllers/api/web/embeds_controller_spec.rb
+++ b/spec/controllers/api/web/embeds_controller_spec.rb
@@ -6,6 +6,7 @@ describe Api::Web::EmbedsController do
render_views
let(:user) { Fabricate(:user) }
+
before { sign_in user }
describe 'POST #create' do
diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb
index 833539a76d..d6b4c793b8 100644
--- a/spec/controllers/instance_actors_controller_spec.rb
+++ b/spec/controllers/instance_actors_controller_spec.rb
@@ -43,11 +43,13 @@ RSpec.describe InstanceActorsController, type: :controller do
context 'without authorized fetch mode' do
let(:authorized_fetch_mode) { false }
+
it_behaves_like 'shared behavior'
end
context 'with authorized fetch mode' do
let(:authorized_fetch_mode) { true }
+
it_behaves_like 'shared behavior'
end
end
diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb
index ddfd5ea365..394f7d512b 100644
--- a/spec/controllers/intents_controller_spec.rb
+++ b/spec/controllers/intents_controller_spec.rb
@@ -4,6 +4,7 @@ RSpec.describe IntentsController, type: :controller do
render_views
let(:user) { Fabricate(:user) }
+
before { sign_in user, scope: :user }
describe 'GET #show' do
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index a882a6fb8c..35ad4b2e7a 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -175,6 +175,7 @@ describe Settings::ApplicationsController do
describe 'regenerate' do
let(:token) { user.token_for_app(app) }
+
before do
expect(token).to_not be_nil
post :regenerate, params: { id: app.id }
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index 52b204a6a3..0e312c5a68 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -5,6 +5,7 @@ describe Settings::SessionsController do
let(:user) { Fabricate(:user) }
let(:session_activation) { Fabricate(:session_activation, user: user) }
+
before { sign_in user, scope: :user }
describe 'DELETE #destroy' do
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
index d6de3016ae..e365b356e1 100644
--- a/spec/controllers/shares_controller_spec.rb
+++ b/spec/controllers/shares_controller_spec.rb
@@ -4,6 +4,7 @@ describe SharesController do
render_views
let(:user) { Fabricate(:user) }
+
before { sign_in user }
describe 'GTE #show' do
diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb
index a851014d9c..287fe00de6 100644
--- a/spec/lib/status_filter_spec.rb
+++ b/spec/lib/status_filter_spec.rb
@@ -32,6 +32,7 @@ describe StatusFilter do
context 'with real account' do
let(:account) { Fabricate(:account) }
+
subject { described_class.new(status, account) }
context 'when there are no connections' do
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 6cd769dc84..694432a1e5 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -3,6 +3,7 @@ require 'rails_helper'
RSpec.describe Account, type: :model do
context do
let(:bob) { Fabricate(:account, username: 'bob') }
+
subject { Fabricate(:account) }
describe '#suspend!' do
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index f116845162..d3c011b3a2 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -134,6 +134,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
describe '#invalidate_last_inspected' do
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
let(:status) { Fabricate(:status, id: 10, account: account) }
+
subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) }
before do
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 6f24e64187..c39f526328 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -8,6 +8,7 @@ RSpec.describe FetchResourceService, type: :service do
context 'with blank url' do
let(:url) { '' }
+
it { is_expected.to be_nil }
end
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 217d0ee244..399a43036a 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -18,6 +18,7 @@ RSpec.describe ImportService, type: :service do
describe 'when no accounts are muted' do
let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+
it 'mutes the listed accounts, including notifications' do
subject.call(import)
expect(account.muting.count).to eq 2
@@ -55,6 +56,7 @@ RSpec.describe ImportService, type: :service do
describe 'when no accounts are muted' do
let(:import) { Import.create(account: account, type: 'muting', data: csv) }
+
it 'mutes the listed accounts, respecting notifications' do
subject.call(import)
expect(account.muting.count).to eq 2
@@ -95,6 +97,7 @@ RSpec.describe ImportService, type: :service do
describe 'when no accounts are followed' do
let(:import) { Import.create(account: account, type: 'following', data: csv) }
+
it 'follows the listed accounts, including boosts' do
subject.call(import)
@@ -136,6 +139,7 @@ RSpec.describe ImportService, type: :service do
describe 'when no accounts are followed' do
let(:import) { Import.create(account: account, type: 'following', data: csv) }
+
it 'follows the listed accounts, respecting boosts' do
subject.call(import)
expect(account.following.count).to eq 1
@@ -224,6 +228,7 @@ RSpec.describe ImportService, type: :service do
describe 'when no bookmarks are set' do
let(:import) { Import.create(account: account, type: 'bookmarks', data: csv) }
+
it 'adds the toots the user has access to to bookmarks' do
local_status = Fabricate(:status, account: local_account, uri: 'https://local.com/users/foo/statuses/42', id: 42, local: true)
subject.call(import)
diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb
index 86b93b5d2f..b28824f9a2 100644
--- a/spec/services/precompute_feed_service_spec.rb
+++ b/spec/services/precompute_feed_service_spec.rb
@@ -7,6 +7,7 @@ RSpec.describe PrecomputeFeedService, type: :service do
describe 'call' do
let(:account) { Fabricate(:account) }
+
it 'fills a user timeline with statuses' do
account = Fabricate(:account)
status = Fabricate(:status, account: account)
diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb
index 941b83401f..a76c63ccc2 100644
--- a/spec/validators/poll_validator_spec.rb
+++ b/spec/validators/poll_validator_spec.rb
@@ -20,6 +20,7 @@ RSpec.describe PollValidator, type: :validator do
context 'expires just 5 min ago' do
let(:expires_at) { 5.minutes.from_now }
+
it 'not calls errors add' do
expect(errors).not_to have_received(:add)
end
From 1a021011009607283cc8e602a8d0ebe3ecd73d92 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:12:06 -0500
Subject: [PATCH 0064/1254] Autofix Rubocop Style/EmptyLambdaParameter (#23705)
---
.rubocop_todo.yml | 6 ------
spec/config/initializers/rack_attack_spec.rb | 6 +++---
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 03de56a2a5..83b2a37aaf 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2708,12 +2708,6 @@ Style/ConcatArrayLiterals:
Style/Documentation:
Enabled: false
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-Style/EmptyLambdaParameter:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
-
# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 6d603caa94..50d4505b70 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -32,7 +32,7 @@ describe Rack::Attack do
describe 'throttle excessive sign-up requests by IP address' do
context 'through the website' do
let(:limit) { 25 }
- let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
+ let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
let(:path) { '/auth' }
@@ -49,7 +49,7 @@ describe Rack::Attack do
context 'through the API' do
let(:limit) { 5 }
- let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
+ let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
let(:path) { '/api/v1/accounts' }
@@ -70,7 +70,7 @@ describe Rack::Attack do
describe 'throttle excessive sign-in requests by IP address' do
let(:limit) { 25 }
- let(:request) { ->() { post path, {}, 'REMOTE_ADDR' => remote_ip } }
+ let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
let(:path) { '/auth/sign_in' }
From ac3561098e9cd1fd1ccee558295eb9f3430099d6 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:17:59 -0500
Subject: [PATCH 0065/1254] Autofix Rubocop RSpec/LetBeforeExamples (#23671)
---
.rubocop_todo.yml | 6 ------
spec/models/user_spec.rb | 6 +++---
2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 83b2a37aaf..1c22c440b9 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1121,12 +1121,6 @@ RSpec/LeakyConstantDeclaration:
- 'spec/lib/settings/extend_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
-# Offense count: 2
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/LetBeforeExamples:
- Exclude:
- - 'spec/models/user_spec.rb'
-
# Offense count: 108
RSpec/LetSetup:
Exclude:
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 368165f16c..dde1503c0d 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -2,6 +2,9 @@ require 'rails_helper'
require 'devise_two_factor/spec_helpers'
RSpec.describe User, type: :model do
+ let(:password) { 'abcd1234' }
+ let(:account) { Fabricate(:account, username: 'alice') }
+
it_behaves_like 'two_factor_backupable'
describe 'otp_secret' do
@@ -96,9 +99,6 @@ RSpec.describe User, type: :model do
end
end
- let(:account) { Fabricate(:account, username: 'alice') }
- let(:password) { 'abcd1234' }
-
describe 'blacklist' do
around(:each) do |example|
old_blacklist = Rails.configuration.x.email_blacklist
From 81ad6c2e39393ff20450385cb37dd9bf6e6651e5 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Feb 2023 17:38:14 -0500
Subject: [PATCH 0066/1254] Autofix Rubocop Style/StringLiterals (#23695)
---
.rubocop_todo.yml | 82 -------------------
app/lib/webfinger.rb | 4 +-
.../20160305115639_add_devise_to_users.rb | 2 +-
.../20161122163057_remove_unneeded_indexes.rb | 6 +-
...0125145934_add_spoiler_text_to_statuses.rb | 2 +-
...95226_remove_duplicate_indexes_in_lists.rb | 4 +-
...for_api_v1_accounts_account_id_statuses.rb | 4 +-
.../20180617162849_remove_unused_indexes.rb | 6 +-
..._encrypted_message_ids_to_timestamp_ids.rb | 2 +-
...5_media_attachment_ids_to_timestamp_ids.rb | 2 +-
...0306164523_account_ids_to_timestamp_ids.rb | 2 +-
lib/mastodon/emoji_cli.rb | 2 +-
lib/rails/engine_extensions.rb | 2 +-
lib/tasks/mastodon.rake | 2 +-
.../admin/change_email_controller_spec.rb | 8 +-
.../api/v1/streaming_controller_spec.rb | 2 +-
.../application_controller_spec.rb | 4 +-
.../auth/registrations_controller_spec.rb | 20 ++---
.../auth/sessions_controller_spec.rb | 28 +++----
...authorized_applications_controller_spec.rb | 2 +-
.../settings/imports_controller_spec.rb | 4 +-
.../settings/profiles_controller_spec.rb | 4 +-
.../webauthn_credentials_controller_spec.rb | 2 +-
.../statuses_cleanup_controller_spec.rb | 4 +-
.../well_known/nodeinfo_controller_spec.rb | 4 +-
.../account_moderation_note_fabricator.rb | 2 +-
spec/fabricators/account_note_fabricator.rb | 2 +-
spec/fabricators/account_stat_fabricator.rb | 6 +-
.../account_tag_stat_fabricator.rb | 2 +-
.../account_warning_preset_fabricator.rb | 2 +-
.../admin_action_log_fabricator.rb | 2 +-
.../canonical_email_block_fabricator.rb | 2 +-
.../conversation_account_fabricator.rb | 2 +-
.../custom_emoji_category_fabricator.rb | 2 +-
spec/fabricators/domain_allow_fabricator.rb | 2 +-
.../encrypted_message_fabricator.rb | 4 +-
spec/fabricators/identity_fabricator.rb | 4 +-
spec/fabricators/ip_block_fabricator.rb | 8 +-
spec/fabricators/list_fabricator.rb | 2 +-
spec/fabricators/relay_fabricator.rb | 2 +-
spec/fabricators/report_fabricator.rb | 2 +-
spec/fabricators/report_note_fabricator.rb | 2 +-
.../session_activation_fabricator.rb | 2 +-
spec/fabricators/status_edit_fabricator.rb | 4 +-
spec/fabricators/status_fabricator.rb | 2 +-
spec/fabricators/status_stat_fabricator.rb | 6 +-
spec/fabricators/user_fabricator.rb | 2 +-
spec/fabricators/user_role_fabricator.rb | 4 +-
spec/features/log_in_spec.rb | 4 +-
spec/helpers/accounts_helper_spec.rb | 8 +-
spec/helpers/application_helper_spec.rb | 10 +--
spec/lib/feed_manager_spec.rb | 2 +-
spec/mailers/notification_mailer_spec.rb | 44 +++++-----
spec/mailers/user_mailer_spec.rb | 2 +-
spec/models/account_spec.rb | 58 ++++++-------
spec/models/media_attachment_spec.rb | 22 ++---
spec/models/web/push_subscription_spec.rb | 2 +-
spec/models/webauthn_credentials_spec.rb | 4 +-
spec/presenters/instance_presenter_spec.rb | 30 +++----
spec/rails_helper.rb | 2 +-
spec/requests/catch_all_route_request_spec.rb | 20 ++---
spec/requests/host_meta_request_spec.rb | 10 +--
spec/requests/localization_spec.rb | 6 +-
spec/services/account_search_service_spec.rb | 2 +-
.../fetch_remote_status_service_spec.rb | 40 ++++-----
spec/services/delete_account_service_spec.rb | 12 +--
spec/services/favourite_service_spec.rb | 4 +-
spec/services/fetch_link_card_service_spec.rb | 8 +-
spec/services/fetch_oembed_service_spec.rb | 6 +-
.../fetch_remote_status_service_spec.rb | 2 +-
spec/services/follow_service_spec.rb | 2 +-
spec/services/import_service_spec.rb | 4 +-
spec/services/post_status_service_spec.rb | 28 +++----
.../services/process_mentions_service_spec.rb | 8 +-
spec/services/resolve_account_service_spec.rb | 18 ++--
spec/spec_helper.rb | 6 +-
76 files changed, 277 insertions(+), 359 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1c22c440b9..e997478192 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -3057,88 +3057,6 @@ Style/StringConcatenation:
- 'spec/validators/disallowed_hashtags_validator_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
-# Offense count: 297
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
-# SupportedStyles: single_quotes, double_quotes
-Style/StringLiterals:
- Exclude:
- - 'app/lib/webfinger.rb'
- - 'db/migrate/20160305115639_add_devise_to_users.rb'
- - 'db/migrate/20161122163057_remove_unneeded_indexes.rb'
- - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb'
- - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb'
- - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'db/migrate/20180617162849_remove_unused_indexes.rb'
- - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb'
- - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb'
- - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb'
- - 'lib/mastodon/emoji_cli.rb'
- - 'lib/rails/engine_extensions.rb'
- - 'lib/tasks/mastodon.rake'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
- - 'spec/controllers/api/v1/streaming_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/auth/sessions_controller_spec.rb'
- - 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- - 'spec/controllers/settings/imports_controller_spec.rb'
- - 'spec/controllers/settings/profiles_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- - 'spec/controllers/statuses_cleanup_controller_spec.rb'
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
- - 'spec/fabricators/account_moderation_note_fabricator.rb'
- - 'spec/fabricators/account_note_fabricator.rb'
- - 'spec/fabricators/account_stat_fabricator.rb'
- - 'spec/fabricators/account_tag_stat_fabricator.rb'
- - 'spec/fabricators/account_warning_preset_fabricator.rb'
- - 'spec/fabricators/admin_action_log_fabricator.rb'
- - 'spec/fabricators/canonical_email_block_fabricator.rb'
- - 'spec/fabricators/conversation_account_fabricator.rb'
- - 'spec/fabricators/custom_emoji_category_fabricator.rb'
- - 'spec/fabricators/domain_allow_fabricator.rb'
- - 'spec/fabricators/encrypted_message_fabricator.rb'
- - 'spec/fabricators/identity_fabricator.rb'
- - 'spec/fabricators/ip_block_fabricator.rb'
- - 'spec/fabricators/list_fabricator.rb'
- - 'spec/fabricators/relay_fabricator.rb'
- - 'spec/fabricators/report_fabricator.rb'
- - 'spec/fabricators/report_note_fabricator.rb'
- - 'spec/fabricators/session_activation_fabricator.rb'
- - 'spec/fabricators/status_edit_fabricator.rb'
- - 'spec/fabricators/status_fabricator.rb'
- - 'spec/fabricators/status_stat_fabricator.rb'
- - 'spec/fabricators/user_fabricator.rb'
- - 'spec/fabricators/user_role_fabricator.rb'
- - 'spec/features/log_in_spec.rb'
- - 'spec/helpers/accounts_helper_spec.rb'
- - 'spec/helpers/application_helper_spec.rb'
- - 'spec/lib/feed_manager_spec.rb'
- - 'spec/mailers/notification_mailer_spec.rb'
- - 'spec/mailers/user_mailer_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/web/push_subscription_spec.rb'
- - 'spec/models/webauthn_credentials_spec.rb'
- - 'spec/presenters/instance_presenter_spec.rb'
- - 'spec/rails_helper.rb'
- - 'spec/requests/catch_all_route_request_spec.rb'
- - 'spec/requests/host_meta_request_spec.rb'
- - 'spec/requests/localization_spec.rb'
- - 'spec/services/account_search_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/delete_account_service_spec.rb'
- - 'spec/services/favourite_service_spec.rb'
- - 'spec/services/fetch_link_card_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/fetch_remote_status_service_spec.rb'
- - 'spec/services/follow_service_spec.rb'
- - 'spec/services/import_service_spec.rb'
- - 'spec/services/post_status_service_spec.rb'
- - 'spec/services/process_mentions_service_spec.rb'
- - 'spec/services/resolve_account_service_spec.rb'
- - 'spec/spec_helper.rb'
-
# Offense count: 272
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MinSize.
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index 7c0c10c338..42ddef47b4 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -99,7 +99,7 @@ class Webfinger
end
def standard_url
- if @domain.end_with? ".onion"
+ if @domain.end_with? '.onion'
"http://#{@domain}/.well-known/webfinger?resource=#{@uri}"
else
"https://#{@domain}/.well-known/webfinger?resource=#{@uri}"
@@ -107,7 +107,7 @@ class Webfinger
end
def host_meta_url
- if @domain.end_with? ".onion"
+ if @domain.end_with? '.onion'
"http://#{@domain}/.well-known/host-meta"
else
"https://#{@domain}/.well-known/host-meta"
diff --git a/db/migrate/20160305115639_add_devise_to_users.rb b/db/migrate/20160305115639_add_devise_to_users.rb
index 0e12e60536..fa1e521b2c 100644
--- a/db/migrate/20160305115639_add_devise_to_users.rb
+++ b/db/migrate/20160305115639_add_devise_to_users.rb
@@ -2,7 +2,7 @@ class AddDeviseToUsers < ActiveRecord::Migration[4.2]
def self.up
change_table(:users) do |t|
## Database authenticatable
- t.string :encrypted_password, null: false, default: ""
+ t.string :encrypted_password, null: false, default: ''
## Recoverable
t.string :reset_password_token
diff --git a/db/migrate/20161122163057_remove_unneeded_indexes.rb b/db/migrate/20161122163057_remove_unneeded_indexes.rb
index 3832b878d4..12cc9c5b23 100644
--- a/db/migrate/20161122163057_remove_unneeded_indexes.rb
+++ b/db/migrate/20161122163057_remove_unneeded_indexes.rb
@@ -1,7 +1,7 @@
class RemoveUnneededIndexes < ActiveRecord::Migration[5.0]
def change
- remove_index :notifications, name: "index_notifications_on_account_id"
- remove_index :settings, name: "index_settings_on_target_type_and_target_id"
- remove_index :statuses_tags, name: "index_statuses_tags_on_tag_id"
+ remove_index :notifications, name: 'index_notifications_on_account_id'
+ remove_index :settings, name: 'index_settings_on_target_type_and_target_id'
+ remove_index :statuses_tags, name: 'index_statuses_tags_on_tag_id'
end
end
diff --git a/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb b/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb
index 2c43210bab..39cd41c00f 100644
--- a/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb
+++ b/db/migrate/20170125145934_add_spoiler_text_to_statuses.rb
@@ -1,5 +1,5 @@
class AddSpoilerTextToStatuses < ActiveRecord::Migration[5.0]
def change
- add_column :statuses, :spoiler_text, :text, default: "", null: false
+ add_column :statuses, :spoiler_text, :text, default: '', null: false
end
end
diff --git a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb
index 03f2591a88..ba67eee86e 100644
--- a/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb
+++ b/db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb
@@ -1,6 +1,6 @@
class RemoveDuplicateIndexesInLists < ActiveRecord::Migration[5.1]
def change
- remove_index :list_accounts, name: "index_list_accounts_on_account_id"
- remove_index :list_accounts, name: "index_list_accounts_on_list_id"
+ remove_index :list_accounts, name: 'index_list_accounts_on_account_id'
+ remove_index :list_accounts, name: 'index_list_accounts_on_list_id'
end
end
diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
index ccd2ec7eac..e23880bf51 100644
--- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
+++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
@@ -5,11 +5,11 @@ class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecor
def change
safety_assured do
- add_index :statuses, [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 unless index_name_exists?(:statuses, "index_statuses_20180106")
+ add_index :statuses, [:account_id, :id, :visibility, :updated_at], order: { id: :desc }, algorithm: :concurrently, name: :index_statuses_20180106 unless index_name_exists?(:statuses, 'index_statuses_20180106')
end
# These index may not exists (see migration 20180514130000)
remove_index :statuses, column: [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently if index_exists?(:statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)')
- remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ["account_id", "id"], where: "(visibility = 3)")
+ remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ['account_id', 'id'], where: '(visibility = 3)')
end
end
diff --git a/db/migrate/20180617162849_remove_unused_indexes.rb b/db/migrate/20180617162849_remove_unused_indexes.rb
index 61add63855..9cd6b91648 100644
--- a/db/migrate/20180617162849_remove_unused_indexes.rb
+++ b/db/migrate/20180617162849_remove_unused_indexes.rb
@@ -1,7 +1,7 @@
class RemoveUnusedIndexes < ActiveRecord::Migration[5.2]
def change
- remove_index :statuses, name: "index_statuses_on_conversation_id"
- remove_index :users, name: "index_users_on_filtered_languages"
- remove_index :backups, name: "index_backups_on_user_id"
+ remove_index :statuses, name: 'index_statuses_on_conversation_id'
+ remove_index :users, name: 'index_users_on_filtered_languages'
+ remove_index :backups, name: 'index_backups_on_user_id'
end
end
diff --git a/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb b/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb
index 24d43a0bfd..c5c80b7953 100644
--- a/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb
+++ b/db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb
@@ -6,7 +6,7 @@ class EncryptedMessageIdsToTimestampIds < ActiveRecord::Migration[5.2]
end
def down
- execute("LOCK encrypted_messages")
+ execute('LOCK encrypted_messages')
execute("SELECT setval('encrypted_messages_id_seq', (SELECT MAX(id) FROM encrypted_messages))")
execute("ALTER TABLE encrypted_messages ALTER COLUMN id SET DEFAULT nextval('encrypted_messages_id_seq')")
end
diff --git a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb
index 5c6865b927..ccd65bf53f 100644
--- a/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb
+++ b/db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb
@@ -10,7 +10,7 @@ class MediaAttachmentIdsToTimestampIds < ActiveRecord::Migration[5.1]
end
def down
- execute("LOCK media_attachments")
+ execute('LOCK media_attachments')
execute("SELECT setval('media_attachments_id_seq', (SELECT MAX(id) FROM media_attachments))")
execute("ALTER TABLE media_attachments ALTER COLUMN id SET DEFAULT nextval('media_attachments_id_seq')")
end
diff --git a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb
index 39cd4cdea4..40c582842b 100644
--- a/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb
+++ b/db/migrate/20210306164523_account_ids_to_timestamp_ids.rb
@@ -10,7 +10,7 @@ class AccountIdsToTimestampIds < ActiveRecord::Migration[5.1]
end
def down
- execute("LOCK accounts")
+ execute('LOCK accounts')
execute("SELECT setval('accounts_id_seq', (SELECT MAX(id) FROM accounts))")
execute("ALTER TABLE accounts ALTER COLUMN id SET DEFAULT nextval('accounts_id_seq')")
end
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index a3e9479098..feb77107fb 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -49,7 +49,7 @@ module Mastodon
next if filename.start_with?('._')
shortcode = [options[:prefix], filename, options[:suffix]].compact.join
- custom_emoji = CustomEmoji.local.find_by("LOWER(shortcode) = ?", shortcode.downcase)
+ custom_emoji = CustomEmoji.local.find_by('LOWER(shortcode) = ?', shortcode.downcase)
if custom_emoji && !options[:overwrite]
skipped += 1
diff --git a/lib/rails/engine_extensions.rb b/lib/rails/engine_extensions.rb
index 4e3767db9e..1f5c2cd6cd 100644
--- a/lib/rails/engine_extensions.rb
+++ b/lib/rails/engine_extensions.rb
@@ -3,7 +3,7 @@ module Rails
# Rewrite task loading code to filter digitalocean.rake task
def run_tasks_blocks(app)
Railtie.instance_method(:run_tasks_blocks).bind_call(self, app)
- paths["lib/tasks"].existent.reject { |ext| ext.end_with?('digitalocean.rake') }.sort.each { |ext| load(ext) }
+ paths['lib/tasks'].existent.reject { |ext| ext.end_with?('digitalocean.rake') }.sort.each { |ext| load(ext) }
end
end
end
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 477daa01b8..179a730bc5 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -264,7 +264,7 @@ namespace :mastodon do
env['S3_ENDPOINT'] = prompt.ask('Storj DCS endpoint URL:') do |q|
q.required true
- q.default "https://gateway.storjshare.io"
+ q.default 'https://gateway.storjshare.io'
q.modify :strip
end
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index cf8a27d394..0814f327d8 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -9,8 +9,8 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do
sign_in admin
end
- describe "GET #show" do
- it "returns http success" do
+ describe 'GET #show' do
+ it 'returns http success' do
user = Fabricate(:user)
get :show, params: { account_id: user.account.id }
@@ -19,12 +19,12 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do
end
end
- describe "GET #update" do
+ describe 'GET #update' do
before do
allow(UserMailer).to receive(:confirmation_instructions).and_return(double('email', deliver_later: nil))
end
- it "returns http success" do
+ it 'returns http success' do
user = Fabricate(:user)
previous_email = user.email
diff --git a/spec/controllers/api/v1/streaming_controller_spec.rb b/spec/controllers/api/v1/streaming_controller_spec.rb
index 4ab409a541..9dbca01785 100644
--- a/spec/controllers/api/v1/streaming_controller_spec.rb
+++ b/spec/controllers/api/v1/streaming_controller_spec.rb
@@ -38,7 +38,7 @@ describe Api::V1::StreamingController do
[:scheme, :path, :query, :fragment].each do |part|
expect(redirect_to_uri.send(part)).to eq(request_uri.send(part)), "redirect target #{part}"
end
- expect(redirect_to_uri.host).to eq(@streaming_host), "redirect target host"
+ expect(redirect_to_uri.host).to eq(@streaming_host), 'redirect target host'
end
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 1b002e01cb..f14c451de1 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -27,7 +27,7 @@ describe ApplicationController, type: :controller do
expect(response).to have_http_status(code)
end
- it "renders template for http" do
+ it 'renders template for http' do
is_expected.to render_template("errors/#{code}", layout: 'error')
end
end
@@ -146,7 +146,7 @@ describe ApplicationController, type: :controller do
end
it 'does not store location for user if it is devise controller' do
- @request.env["devise.mapping"] = Devise.mappings[:user]
+ @request.env['devise.mapping'] = Devise.mappings[:user]
get 'create'
expect(controller.stored_location_for(:user)).to be_nil
end
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 38c003b534..7298bde003 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -32,7 +32,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
describe 'GET #edit' do
it 'returns http success' do
- request.env["devise.mapping"] = Devise.mappings[:user]
+ request.env['devise.mapping'] = Devise.mappings[:user]
sign_in(Fabricate(:user))
get :edit
expect(response).to have_http_status(200)
@@ -41,7 +41,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
describe 'GET #update' do
it 'returns http success' do
- request.env["devise.mapping"] = Devise.mappings[:user]
+ request.env['devise.mapping'] = Devise.mappings[:user]
sign_in(Fabricate(:user), scope: :user)
post :update
expect(response).to have_http_status(200)
@@ -49,7 +49,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
context 'when suspended' do
it 'returns http forbidden' do
- request.env["devise.mapping"] = Devise.mappings[:user]
+ request.env['devise.mapping'] = Devise.mappings[:user]
sign_in(Fabricate(:user, account_attributes: { username: 'test', suspended_at: Time.now.utc }), scope: :user)
post :update
expect(response).to have_http_status(403)
@@ -59,7 +59,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
describe 'GET #new' do
before do
- request.env["devise.mapping"] = Devise.mappings[:user]
+ request.env['devise.mapping'] = Devise.mappings[:user]
end
context do
@@ -92,7 +92,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
I18n.locale = current_locale
end
- before { request.env["devise.mapping"] = Devise.mappings[:user] }
+ before { request.env['devise.mapping'] = Devise.mappings[:user] }
context do
around do |example|
@@ -103,7 +103,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
subject do
Setting.registrations_mode = 'open'
- request.headers["Accept-Language"] = accept_language
+ request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
@@ -129,7 +129,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
subject do
Setting.registrations_mode = 'open'
- request.headers["Accept-Language"] = accept_language
+ request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'false' } }
end
@@ -149,7 +149,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
subject do
Setting.registrations_mode = 'approved'
- request.headers["Accept-Language"] = accept_language
+ request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
@@ -176,7 +176,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
subject do
Setting.registrations_mode = 'approved'
- request.headers["Accept-Language"] = accept_language
+ request.headers['Accept-Language'] = accept_language
invite = Fabricate(:invite, max_uses: nil, expires_at: 1.hour.ago)
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
@@ -208,7 +208,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
inviter = Fabricate(:user, confirmed_at: 2.days.ago)
Setting.registrations_mode = 'approved'
Setting.require_invite_text = true
- request.headers["Accept-Language"] = accept_language
+ request.headers['Accept-Language'] = accept_language
invite = Fabricate(:invite, user: inviter, max_uses: nil, expires_at: 1.hour.from_now)
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb
index 8f898ad1f6..eb03dff500 100644
--- a/spec/controllers/auth/sessions_controller_spec.rb
+++ b/spec/controllers/auth/sessions_controller_spec.rb
@@ -54,7 +54,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
context 'using PAM authentication', if: ENV['PAM_ENABLED'] == 'true' do
context 'using a valid password' do
before do
- post :create, params: { user: { email: "pam_user1", password: '123456' } }
+ post :create, params: { user: { email: 'pam_user1', password: '123456' } }
end
it 'redirects to home' do
@@ -68,7 +68,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
context 'using an invalid password' do
before do
- post :create, params: { user: { email: "pam_user1", password: 'WRONGPW' } }
+ post :create, params: { user: { email: 'pam_user1', password: 'WRONGPW' } }
end
it 'shows a login error' do
@@ -194,7 +194,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
post :create, params: { user: { email: user.email, password: user.password } }
end
- context "in single user mode" do
+ context 'in single user mode' do
let(:single_user_mode) { true }
it 'redirects to home' do
@@ -202,7 +202,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
end
- context "in non-single user mode" do
+ context 'in non-single user mode' do
let(:single_user_mode) { false }
it "redirects back to the user's page" do
@@ -230,8 +230,8 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
it 'renders two factor authentication page' do
- expect(controller).to render_template("two_factor")
- expect(controller).to render_template(partial: "_otp_authentication_form")
+ expect(controller).to render_template('two_factor')
+ expect(controller).to render_template(partial: '_otp_authentication_form')
end
end
@@ -246,8 +246,8 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
it 'renders two factor authentication page' do
- expect(controller).to render_template("two_factor")
- expect(controller).to render_template(partial: "_otp_authentication_form")
+ expect(controller).to render_template('two_factor')
+ expect(controller).to render_template(partial: '_otp_authentication_form')
end
end
@@ -257,8 +257,8 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
it 'renders two factor authentication page' do
- expect(controller).to render_template("two_factor")
- expect(controller).to render_template(partial: "_otp_authentication_form")
+ expect(controller).to render_template('two_factor')
+ expect(controller).to render_template(partial: '_otp_authentication_form')
end
end
@@ -359,8 +359,8 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
it 'renders webauthn authentication page' do
- expect(controller).to render_template("two_factor")
- expect(controller).to render_template(partial: "_webauthn_form")
+ expect(controller).to render_template('two_factor')
+ expect(controller).to render_template(partial: '_webauthn_form')
end
end
@@ -370,8 +370,8 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
it 'renders webauthn authentication page' do
- expect(controller).to render_template("two_factor")
- expect(controller).to render_template(partial: "_webauthn_form")
+ expect(controller).to render_template('two_factor')
+ expect(controller).to render_template(partial: '_webauthn_form')
end
end
diff --git a/spec/controllers/oauth/authorized_applications_controller_spec.rb b/spec/controllers/oauth/authorized_applications_controller_spec.rb
index 901e538e95..885bfa35b3 100644
--- a/spec/controllers/oauth/authorized_applications_controller_spec.rb
+++ b/spec/controllers/oauth/authorized_applications_controller_spec.rb
@@ -13,7 +13,7 @@ describe Oauth::AuthorizedApplicationsController do
shared_examples 'stores location for user' do
it 'stores location for user' do
subject
- expect(controller.stored_location_for(:user)).to eq "/oauth/authorized_applications"
+ expect(controller.stored_location_for(:user)).to eq '/oauth/authorized_applications'
end
end
diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb
index 8070a35db6..e50504cc5b 100644
--- a/spec/controllers/settings/imports_controller_spec.rb
+++ b/spec/controllers/settings/imports_controller_spec.rb
@@ -7,8 +7,8 @@ RSpec.describe Settings::ImportsController, type: :controller do
sign_in Fabricate(:user), scope: :user
end
- describe "GET #show" do
- it "returns http success" do
+ describe 'GET #show' do
+ it 'returns http success' do
get :show
expect(response).to have_http_status(200)
end
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index ee3aec8156..fbbca8bb92 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -10,8 +10,8 @@ RSpec.describe Settings::ProfilesController, type: :controller do
sign_in user, scope: :user
end
- describe "GET #show" do
- it "returns http success" do
+ describe 'GET #show' do
+ it 'returns http success' do
get :show
expect(response).to have_http_status(200)
end
diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
index 06989ffd2d..c3156c4e95 100644
--- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
@@ -137,7 +137,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
expect { get :options }.to_not change { user.webauthn_id }
end
- it "includes existing credentials in list of excluded credentials" do
+ it 'includes existing credentials in list of excluded credentials' do
get :options
excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].map { |credential| credential['id'] }
diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb
index 9247092603..347fe4027e 100644
--- a/spec/controllers/statuses_cleanup_controller_spec.rb
+++ b/spec/controllers/statuses_cleanup_controller_spec.rb
@@ -8,8 +8,8 @@ RSpec.describe StatusesCleanupController, type: :controller do
sign_in @user, scope: :user
end
- describe "GET #show" do
- it "returns http success" do
+ describe 'GET #show' do
+ it 'returns http success' do
get :show
expect(response).to have_http_status(200)
end
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 36e85f20d1..964a14706b 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -27,8 +27,8 @@ describe WellKnown::NodeInfoController, type: :controller do
json = body_as_json
- expect({ "foo" => 0 }).not_to match_json_schema("nodeinfo_2.0")
- expect(json).to match_json_schema("nodeinfo_2.0")
+ expect({ 'foo' => 0 }).not_to match_json_schema('nodeinfo_2.0')
+ expect(json).to match_json_schema('nodeinfo_2.0')
expect(json[:version]).to eq '2.0'
expect(json[:usage]).to be_a Hash
expect(json[:software]).to be_a Hash
diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb
index 9277af1655..343a41fb1a 100644
--- a/spec/fabricators/account_moderation_note_fabricator.rb
+++ b/spec/fabricators/account_moderation_note_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:account_moderation_note) do
- content "MyText"
+ content 'MyText'
account nil
end
diff --git a/spec/fabricators/account_note_fabricator.rb b/spec/fabricators/account_note_fabricator.rb
index 1b061745a3..285703b38c 100644
--- a/spec/fabricators/account_note_fabricator.rb
+++ b/spec/fabricators/account_note_fabricator.rb
@@ -1,5 +1,5 @@
Fabricator(:account_note) do
account
target_account { Fabricate(:account) }
- comment "User note text"
+ comment 'User note text'
end
diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb
index 2b06b47909..b1b47ffef4 100644
--- a/spec/fabricators/account_stat_fabricator.rb
+++ b/spec/fabricators/account_stat_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:account_stat) do
account nil
- statuses_count ""
- following_count ""
- followers_count ""
+ statuses_count ''
+ following_count ''
+ followers_count ''
end
diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb
index 9edb550bec..7a4de07f62 100644
--- a/spec/fabricators/account_tag_stat_fabricator.rb
+++ b/spec/fabricators/account_tag_stat_fabricator.rb
@@ -1,3 +1,3 @@
Fabricator(:account_tag_stat) do
- accounts_count ""
+ accounts_count ''
end
diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb
index 6c0b87e7cd..7e7c03cb81 100644
--- a/spec/fabricators/account_warning_preset_fabricator.rb
+++ b/spec/fabricators/account_warning_preset_fabricator.rb
@@ -1,3 +1,3 @@
Fabricator(:account_warning_preset) do
- text "MyText"
+ text 'MyText'
end
diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb
index 2f44e953d9..474bef1bce 100644
--- a/spec/fabricators/admin_action_log_fabricator.rb
+++ b/spec/fabricators/admin_action_log_fabricator.rb
@@ -1,5 +1,5 @@
Fabricator('Admin::ActionLog') do
account nil
- action "MyString"
+ action 'MyString'
target nil
end
diff --git a/spec/fabricators/canonical_email_block_fabricator.rb b/spec/fabricators/canonical_email_block_fabricator.rb
index a0b6e0d221..61afde3de2 100644
--- a/spec/fabricators/canonical_email_block_fabricator.rb
+++ b/spec/fabricators/canonical_email_block_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:canonical_email_block) do
- email "test@example.com"
+ email 'test@example.com'
reference_account { Fabricate(:account) }
end
diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb
index f57ffd5359..0fe7a494ef 100644
--- a/spec/fabricators/conversation_account_fabricator.rb
+++ b/spec/fabricators/conversation_account_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:conversation_account) do
account nil
conversation nil
- participant_account_ids ""
+ participant_account_ids ''
last_status nil
end
diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb
index f593b95ed4..119c343cf0 100644
--- a/spec/fabricators/custom_emoji_category_fabricator.rb
+++ b/spec/fabricators/custom_emoji_category_fabricator.rb
@@ -1,3 +1,3 @@
Fabricator(:custom_emoji_category) do
- name "MyString"
+ name 'MyString'
end
diff --git a/spec/fabricators/domain_allow_fabricator.rb b/spec/fabricators/domain_allow_fabricator.rb
index 6226b1e20b..6f62ce3b8c 100644
--- a/spec/fabricators/domain_allow_fabricator.rb
+++ b/spec/fabricators/domain_allow_fabricator.rb
@@ -1,3 +1,3 @@
Fabricator(:domain_allow) do
- domain "MyString"
+ domain 'MyString'
end
diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb
index e65f663024..4de0d7add2 100644
--- a/spec/fabricators/encrypted_message_fabricator.rb
+++ b/spec/fabricators/encrypted_message_fabricator.rb
@@ -3,6 +3,6 @@ Fabricator(:encrypted_message) do
from_account
from_device_id { Faker::Number.number(digits: 5) }
type 0
- body ""
- message_franking ""
+ body ''
+ message_franking ''
end
diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb
index bc832df9f7..fcfb15518f 100644
--- a/spec/fabricators/identity_fabricator.rb
+++ b/spec/fabricators/identity_fabricator.rb
@@ -1,5 +1,5 @@
Fabricator(:identity) do
user nil
- provider "MyString"
- uid "MyString"
+ provider 'MyString'
+ uid 'MyString'
end
diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb
index 1797f68776..5bd018f9c2 100644
--- a/spec/fabricators/ip_block_fabricator.rb
+++ b/spec/fabricators/ip_block_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:ip_block) do
- ip ""
- severity ""
- expires_at "2020-10-08 22:20:37"
- comment "MyText"
+ ip ''
+ severity ''
+ expires_at '2020-10-08 22:20:37'
+ comment 'MyText'
end
diff --git a/spec/fabricators/list_fabricator.rb b/spec/fabricators/list_fabricator.rb
index c3db690fa4..4ad29a386e 100644
--- a/spec/fabricators/list_fabricator.rb
+++ b/spec/fabricators/list_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:list) do
account
- title "MyString"
+ title 'MyString'
end
diff --git a/spec/fabricators/relay_fabricator.rb b/spec/fabricators/relay_fabricator.rb
index 488913f772..d6255866cf 100644
--- a/spec/fabricators/relay_fabricator.rb
+++ b/spec/fabricators/relay_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:relay) do
- inbox_url "https://example.com/inbox"
+ inbox_url 'https://example.com/inbox'
state :idle
end
diff --git a/spec/fabricators/report_fabricator.rb b/spec/fabricators/report_fabricator.rb
index 2c7101e094..3011c49c6f 100644
--- a/spec/fabricators/report_fabricator.rb
+++ b/spec/fabricators/report_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:report) do
account
target_account { Fabricate(:account) }
- comment "You nasty"
+ comment 'You nasty'
action_taken_at nil
end
diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb
index e139efffbc..33f3840746 100644
--- a/spec/fabricators/report_note_fabricator.rb
+++ b/spec/fabricators/report_note_fabricator.rb
@@ -1,5 +1,5 @@
Fabricator(:report_note) do
report
account { Fabricate(:account) }
- content "Test Content"
+ content 'Test Content'
end
diff --git a/spec/fabricators/session_activation_fabricator.rb b/spec/fabricators/session_activation_fabricator.rb
index 526faaec2b..a7fc3b017d 100644
--- a/spec/fabricators/session_activation_fabricator.rb
+++ b/spec/fabricators/session_activation_fabricator.rb
@@ -1,4 +1,4 @@
Fabricator(:session_activation) do
user
- session_id "MyString"
+ session_id 'MyString'
end
diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb
index 3141759e5c..0e5796b232 100644
--- a/spec/fabricators/status_edit_fabricator.rb
+++ b/spec/fabricators/status_edit_fabricator.rb
@@ -1,7 +1,7 @@
Fabricator(:status_edit) do
status nil
account nil
- text "MyText"
- spoiler_text "MyText"
+ text 'MyText'
+ spoiler_text 'MyText'
media_attachments_changed false
end
diff --git a/spec/fabricators/status_fabricator.rb b/spec/fabricators/status_fabricator.rb
index 04bbbcf4b0..8a0a8aa557 100644
--- a/spec/fabricators/status_fabricator.rb
+++ b/spec/fabricators/status_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:status) do
account
- text "Lorem ipsum dolor sit amet"
+ text 'Lorem ipsum dolor sit amet'
after_build do |status|
status.uri = Faker::Internet.device_token if !status.account.local? && status.uri.nil?
diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb
index 9c67fd404a..feba9fbcab 100644
--- a/spec/fabricators/status_stat_fabricator.rb
+++ b/spec/fabricators/status_stat_fabricator.rb
@@ -1,6 +1,6 @@
Fabricator(:status_stat) do
status_id nil
- replies_count ""
- reblogs_count ""
- favourites_count ""
+ replies_count ''
+ reblogs_count ''
+ favourites_count ''
end
diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb
index 10ad2c53a3..93ce07a74d 100644
--- a/spec/fabricators/user_fabricator.rb
+++ b/spec/fabricators/user_fabricator.rb
@@ -1,7 +1,7 @@
Fabricator(:user) do
account { Fabricate.build(:account, user: nil) }
email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } }
- password "123456789"
+ password '123456789'
confirmed_at { Time.zone.now }
agreement true
end
diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb
index ed0a7dc1f3..592b4edcaa 100644
--- a/spec/fabricators/user_role_fabricator.rb
+++ b/spec/fabricators/user_role_fabricator.rb
@@ -1,5 +1,5 @@
Fabricator(:user_role) do
- name "MyString"
- color ""
+ name 'MyString'
+ color ''
permissions 0
end
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb
index 329cdf34cb..5ae738ee26 100644
--- a/spec/features/log_in_spec.rb
+++ b/spec/features/log_in_spec.rb
@@ -7,8 +7,8 @@ describe 'Log in' do
subject { page }
- let(:email) { "test@example.com" }
- let(:password) { "password" }
+ let(:email) { 'test@example.com' }
+ let(:password) { 'password' }
let(:confirmed_at) { Time.zone.now }
before do
diff --git a/spec/helpers/accounts_helper_spec.rb b/spec/helpers/accounts_helper_spec.rb
index 2b35b23b79..1f412a39ff 100644
--- a/spec/helpers/accounts_helper_spec.rb
+++ b/spec/helpers/accounts_helper_spec.rb
@@ -13,15 +13,15 @@ RSpec.describe AccountsHelper, type: :helper do
describe '#display_name' do
it 'uses the display name when it exists' do
- account = Account.new(display_name: "Display", username: "Username")
+ account = Account.new(display_name: 'Display', username: 'Username')
- expect(helper.display_name(account)).to eq "Display"
+ expect(helper.display_name(account)).to eq 'Display'
end
it 'uses the username when display name is nil' do
- account = Account.new(display_name: nil, username: "Username")
+ account = Account.new(display_name: nil, username: 'Username')
- expect(helper.display_name(account)).to eq "Username"
+ expect(helper.display_name(account)).to eq 'Username'
end
end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 1dbd985bf4..b335a5e45e 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -5,8 +5,8 @@ describe ApplicationHelper do
it 'returns active when on the current page' do
allow(helper).to receive(:current_page?).and_return(true)
- result = helper.active_nav_class("/test")
- expect(result).to eq "active"
+ result = helper.active_nav_class('/test')
+ expect(result).to eq 'active'
end
it 'returns active when on a current page' do
@@ -14,14 +14,14 @@ describe ApplicationHelper do
allow(helper).to receive(:current_page?).with('/test').and_return(true)
result = helper.active_nav_class('/foo', '/test')
- expect(result).to eq "active"
+ expect(result).to eq 'active'
end
it 'returns empty string when not on current page' do
allow(helper).to receive(:current_page?).and_return(false)
- result = helper.active_nav_class("/test")
- expect(result).to eq ""
+ result = helper.active_nav_class('/test')
+ expect(result).to eq ''
end
end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index eb55c3983c..7195cec064 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -416,7 +416,7 @@ RSpec.describe FeedManager do
FeedManager.instance.merge_into_home(account, reblog.account)
- expect(redis.zscore("feed:home:0", reblog.id)).to eq nil
+ expect(redis.zscore('feed:home:0', reblog.id)).to eq nil
end
end
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index 29bdc349b8..6746871a3d 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -1,4 +1,4 @@
-require "rails_helper"
+require 'rails_helper'
RSpec.describe NotificationMailer, type: :mailer do
let(:receiver) { Fabricate(:user) }
@@ -19,69 +19,69 @@ RSpec.describe NotificationMailer, type: :mailer do
end
end
- describe "mention" do
+ describe 'mention' do
let(:mention) { Mention.create!(account: receiver.account, status: foreign_status) }
let(:mail) { NotificationMailer.mention(receiver.account, Notification.create!(account: receiver.account, activity: mention)) }
include_examples 'localized subject', 'notification_mailer.mention.subject', name: 'bob'
- it "renders the headers" do
- expect(mail.subject).to eq("You were mentioned by bob")
+ it 'renders the headers' do
+ expect(mail.subject).to eq('You were mentioned by bob')
expect(mail.to).to eq([receiver.email])
end
- it "renders the body" do
- expect(mail.body.encoded).to match("You were mentioned by bob")
+ it 'renders the body' do
+ expect(mail.body.encoded).to match('You were mentioned by bob')
expect(mail.body.encoded).to include 'The body of the foreign status'
end
end
- describe "follow" do
+ describe 'follow' do
let(:follow) { sender.follow!(receiver.account) }
let(:mail) { NotificationMailer.follow(receiver.account, Notification.create!(account: receiver.account, activity: follow)) }
include_examples 'localized subject', 'notification_mailer.follow.subject', name: 'bob'
- it "renders the headers" do
- expect(mail.subject).to eq("bob is now following you")
+ it 'renders the headers' do
+ expect(mail.subject).to eq('bob is now following you')
expect(mail.to).to eq([receiver.email])
end
- it "renders the body" do
- expect(mail.body.encoded).to match("bob is now following you")
+ it 'renders the body' do
+ expect(mail.body.encoded).to match('bob is now following you')
end
end
- describe "favourite" do
+ describe 'favourite' do
let(:favourite) { Favourite.create!(account: sender, status: own_status) }
let(:mail) { NotificationMailer.favourite(own_status.account, Notification.create!(account: receiver.account, activity: favourite)) }
include_examples 'localized subject', 'notification_mailer.favourite.subject', name: 'bob'
- it "renders the headers" do
- expect(mail.subject).to eq("bob favourited your post")
+ it 'renders the headers' do
+ expect(mail.subject).to eq('bob favourited your post')
expect(mail.to).to eq([receiver.email])
end
- it "renders the body" do
- expect(mail.body.encoded).to match("Your post was favourited by bob")
+ it 'renders the body' do
+ expect(mail.body.encoded).to match('Your post was favourited by bob')
expect(mail.body.encoded).to include 'The body of the own status'
end
end
- describe "reblog" do
+ describe 'reblog' do
let(:reblog) { Status.create!(account: sender, reblog: own_status) }
let(:mail) { NotificationMailer.reblog(own_status.account, Notification.create!(account: receiver.account, activity: reblog)) }
include_examples 'localized subject', 'notification_mailer.reblog.subject', name: 'bob'
- it "renders the headers" do
- expect(mail.subject).to eq("bob boosted your post")
+ it 'renders the headers' do
+ expect(mail.subject).to eq('bob boosted your post')
expect(mail.to).to eq([receiver.email])
end
- it "renders the body" do
- expect(mail.body.encoded).to match("Your post was boosted by bob")
+ it 'renders the body' do
+ expect(mail.body.encoded).to match('Your post was boosted by bob')
expect(mail.body.encoded).to include 'The body of the own status'
end
end
@@ -98,7 +98,7 @@ RSpec.describe NotificationMailer, type: :mailer do
end
it 'renders the body' do
- expect(mail.body.encoded).to match("bob has requested to follow you")
+ expect(mail.body.encoded).to match('bob has requested to follow you')
end
end
end
diff --git a/spec/mailers/user_mailer_spec.rb b/spec/mailers/user_mailer_spec.rb
index 2ed33c1e4a..9c22f60f1d 100644
--- a/spec/mailers/user_mailer_spec.rb
+++ b/spec/mailers/user_mailer_spec.rb
@@ -90,7 +90,7 @@ describe UserMailer, type: :mailer do
it 'renders warning notification' do
receiver.update!(locale: nil)
- expect(mail.body.encoded).to include I18n.t("user_mailer.warning.title.suspend", acct: receiver.account.acct)
+ expect(mail.body.encoded).to include I18n.t('user_mailer.warning.title.suspend', acct: receiver.account.acct)
expect(mail.body.encoded).to include strike.text
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 694432a1e5..7638356181 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -345,9 +345,9 @@ RSpec.describe Account, type: :model do
before do
_missing = Fabricate(
:account,
- display_name: "Missing",
- username: "missing",
- domain: "missing.com"
+ display_name: 'Missing',
+ username: 'missing',
+ domain: 'missing.com'
)
end
@@ -405,58 +405,58 @@ RSpec.describe Account, type: :model do
it 'finds accounts with matching display_name' do
match = Fabricate(
:account,
- display_name: "Display Name",
- username: "username",
- domain: "example.com"
+ display_name: 'Display Name',
+ username: 'username',
+ domain: 'example.com'
)
- results = Account.search_for("display")
+ results = Account.search_for('display')
expect(results).to eq [match]
end
it 'finds accounts with matching username' do
match = Fabricate(
:account,
- display_name: "Display Name",
- username: "username",
- domain: "example.com"
+ display_name: 'Display Name',
+ username: 'username',
+ domain: 'example.com'
)
- results = Account.search_for("username")
+ results = Account.search_for('username')
expect(results).to eq [match]
end
it 'finds accounts with matching domain' do
match = Fabricate(
:account,
- display_name: "Display Name",
- username: "username",
- domain: "example.com"
+ display_name: 'Display Name',
+ username: 'username',
+ domain: 'example.com'
)
- results = Account.search_for("example")
+ results = Account.search_for('example')
expect(results).to eq [match]
end
it 'limits by 10 by default' do
- 11.times.each { Fabricate(:account, display_name: "Display Name") }
- results = Account.search_for("display")
+ 11.times.each { Fabricate(:account, display_name: 'Display Name') }
+ results = Account.search_for('display')
expect(results.size).to eq 10
end
it 'accepts arbitrary limits' do
- 2.times.each { Fabricate(:account, display_name: "Display Name") }
- results = Account.search_for("display", limit: 1)
+ 2.times.each { Fabricate(:account, display_name: 'Display Name') }
+ results = Account.search_for('display', limit: 1)
expect(results.size).to eq 1
end
it 'ranks multiple matches higher' do
matches = [
- { username: "username", display_name: "username" },
- { display_name: "Display Name", username: "username", domain: "example.com" },
+ { username: 'username', display_name: 'username' },
+ { display_name: 'Display Name', username: 'username', domain: 'example.com' },
].map(&method(:Fabricate).curry(2).call(:account))
- results = Account.search_for("username")
+ results = Account.search_for('username')
expect(results).to eq matches
end
end
@@ -582,23 +582,23 @@ RSpec.describe Account, type: :model do
end
it 'limits by 10 by default' do
- 11.times { Fabricate(:account, display_name: "Display Name") }
- results = Account.advanced_search_for("display", account)
+ 11.times { Fabricate(:account, display_name: 'Display Name') }
+ results = Account.advanced_search_for('display', account)
expect(results.size).to eq 10
end
it 'accepts arbitrary limits' do
- 2.times { Fabricate(:account, display_name: "Display Name") }
- results = Account.advanced_search_for("display", account, limit: 1)
+ 2.times { Fabricate(:account, display_name: 'Display Name') }
+ results = Account.advanced_search_for('display', account, limit: 1)
expect(results.size).to eq 1
end
it 'ranks followed accounts higher' do
- match = Fabricate(:account, username: "Matching")
- followed_match = Fabricate(:account, username: "Matcher")
+ match = Fabricate(:account, username: 'Matching')
+ followed_match = Fabricate(:account, username: 'Matcher')
Fabricate(:follow, account: account, target_account: followed_match)
- results = Account.advanced_search_for("match", account)
+ results = Account.advanced_search_for('match', account)
expect(results).to eq [followed_match, match]
expect(results.first.rank).to be > results.last.rank
end
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 29fd313aec..d1a94d41a1 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -94,8 +94,8 @@ RSpec.describe MediaAttachment, type: :model do
end
it 'sets meta' do
- expect(media.file.meta["original"]["width"]).to eq 128
- expect(media.file.meta["original"]["height"]).to eq 128
+ expect(media.file.meta['original']['width']).to eq 128
+ expect(media.file.meta['original']['height']).to eq 128
end
end
@@ -118,9 +118,9 @@ RSpec.describe MediaAttachment, type: :model do
end
it 'sets meta' do
- expect(media.file.meta["original"]["width"]).to eq fixture[:width]
- expect(media.file.meta["original"]["height"]).to eq fixture[:height]
- expect(media.file.meta["original"]["aspect"]).to eq fixture[:aspect]
+ expect(media.file.meta['original']['width']).to eq fixture[:width]
+ expect(media.file.meta['original']['height']).to eq fixture[:height]
+ expect(media.file.meta['original']['aspect']).to eq fixture[:aspect]
end
end
end
@@ -154,12 +154,12 @@ RSpec.describe MediaAttachment, type: :model do
let(:media) { MediaAttachment.create(account: Fabricate(:account), file: attachment_fixture('attachment.jpg')) }
it 'sets meta for different style' do
- expect(media.file.meta["original"]["width"]).to eq 600
- expect(media.file.meta["original"]["height"]).to eq 400
- expect(media.file.meta["original"]["aspect"]).to eq 1.5
- expect(media.file.meta["small"]["width"]).to eq 588
- expect(media.file.meta["small"]["height"]).to eq 392
- expect(media.file.meta["small"]["aspect"]).to eq 1.5
+ expect(media.file.meta['original']['width']).to eq 600
+ expect(media.file.meta['original']['height']).to eq 400
+ expect(media.file.meta['original']['aspect']).to eq 1.5
+ expect(media.file.meta['small']['width']).to eq 588
+ expect(media.file.meta['small']['height']).to eq 392
+ expect(media.file.meta['small']['aspect']).to eq 1.5
end
it 'gives the file a random name' do
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index bd57195937..eeadbb71c2 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Web::PushSubscription, type: :model do
context "when notification is a #{type}" do
let(:notification_type) { type }
- it "returns boolean corresponding to alert setting" do
+ it 'returns boolean corresponding to alert setting' do
expect(subject.pushable?(notification)).to eq data[:alerts][type]
end
end
diff --git a/spec/models/webauthn_credentials_spec.rb b/spec/models/webauthn_credentials_spec.rb
index a63ae6cd24..e070a6b60e 100644
--- a/spec/models/webauthn_credentials_spec.rb
+++ b/spec/models/webauthn_credentials_spec.rb
@@ -35,8 +35,8 @@ RSpec.describe WebauthnCredential, type: :model do
end
it 'is invalid if already exist a webauthn credential with the same external id' do
- existing_webauthn_credential = Fabricate(:webauthn_credential, external_id: "_Typ0ygudDnk9YUVWLQayw")
- new_webauthn_credential = Fabricate.build(:webauthn_credential, external_id: "_Typ0ygudDnk9YUVWLQayw")
+ existing_webauthn_credential = Fabricate(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw')
+ new_webauthn_credential = Fabricate.build(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw')
new_webauthn_credential.valid?
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 659c2cc2ff..a451b5cba4 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -10,9 +10,9 @@ describe InstancePresenter do
Setting.site_short_description = site_description
end
- it "delegates site_description to Setting" do
- Setting.site_short_description = "Site desc"
- expect(instance_presenter.description).to eq "Site desc"
+ it 'delegates site_description to Setting' do
+ Setting.site_short_description = 'Site desc'
+ expect(instance_presenter.description).to eq 'Site desc'
end
end
@@ -23,9 +23,9 @@ describe InstancePresenter do
Setting.site_extended_description = site_extended_description
end
- it "delegates site_extended_description to Setting" do
- Setting.site_extended_description = "Extended desc"
- expect(instance_presenter.extended_description).to eq "Extended desc"
+ it 'delegates site_extended_description to Setting' do
+ Setting.site_extended_description = 'Extended desc'
+ expect(instance_presenter.extended_description).to eq 'Extended desc'
end
end
@@ -36,9 +36,9 @@ describe InstancePresenter do
Setting.site_contact_email = site_contact_email
end
- it "delegates contact_email to Setting" do
- Setting.site_contact_email = "admin@example.com"
- expect(instance_presenter.contact.email).to eq "admin@example.com"
+ it 'delegates contact_email to Setting' do
+ Setting.site_contact_email = 'admin@example.com'
+ expect(instance_presenter.contact.email).to eq 'admin@example.com'
end
end
@@ -49,15 +49,15 @@ describe InstancePresenter do
Setting.site_contact_username = site_contact_username
end
- it "returns the account for the site contact username" do
- Setting.site_contact_username = "aaa"
- account = Fabricate(:account, username: "aaa")
+ it 'returns the account for the site contact username' do
+ Setting.site_contact_username = 'aaa'
+ account = Fabricate(:account, username: 'aaa')
expect(instance_presenter.contact.account).to eq(account)
end
end
describe '#user_count' do
- it "returns the number of site users" do
+ it 'returns the number of site users' do
Rails.cache.write 'user_count', 123
expect(instance_presenter.user_count).to eq(123)
@@ -65,7 +65,7 @@ describe InstancePresenter do
end
describe '#status_count' do
- it "returns the number of local statuses" do
+ it 'returns the number of local statuses' do
Rails.cache.write 'local_status_count', 234
expect(instance_presenter.status_count).to eq(234)
@@ -73,7 +73,7 @@ describe InstancePresenter do
end
describe '#domain_count' do
- it "returns the number of known domains" do
+ it 'returns the number of known domains' do
Rails.cache.write 'distinct_domain_count', 345
expect(instance_presenter.domain_count).to eq(345)
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 20e48b9a39..9a14fc3b1d 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -1,7 +1,7 @@
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
-abort("The Rails environment is running in production mode!") if Rails.env.production?
+abort('The Rails environment is running in production mode!') if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb
index f965f55221..fb18965d85 100644
--- a/spec/requests/catch_all_route_request_spec.rb
+++ b/spec/requests/catch_all_route_request_spec.rb
@@ -1,21 +1,21 @@
-require "rails_helper"
+require 'rails_helper'
-describe "The catch all route" do
- describe "with a simple value" do
- it "returns a 404 page as html" do
- get "/test"
+describe 'The catch all route' do
+ describe 'with a simple value' do
+ it 'returns a 404 page as html' do
+ get '/test'
expect(response.status).to eq 404
- expect(response.media_type).to eq "text/html"
+ expect(response.media_type).to eq 'text/html'
end
end
- describe "with an implied format" do
- it "returns a 404 page as html" do
- get "/test.test"
+ describe 'with an implied format' do
+ it 'returns a 404 page as html' do
+ get '/test.test'
expect(response.status).to eq 404
- expect(response.media_type).to eq "text/html"
+ expect(response.media_type).to eq 'text/html'
end
end
end
diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb
index 0ca6414613..60153ba8c9 100644
--- a/spec/requests/host_meta_request_spec.rb
+++ b/spec/requests/host_meta_request_spec.rb
@@ -1,12 +1,12 @@
-require "rails_helper"
+require 'rails_helper'
-describe "The host_meta route" do
- describe "requested without accepts headers" do
- it "returns an xml response" do
+describe 'The host_meta route' do
+ describe 'requested without accepts headers' do
+ it 'returns an xml response' do
get host_meta_url
expect(response).to have_http_status(200)
- expect(response.media_type).to eq "application/xrd+xml"
+ expect(response.media_type).to eq 'application/xrd+xml'
end
end
end
diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb
index 0bc2786ac4..39eeee5f01 100644
--- a/spec/requests/localization_spec.rb
+++ b/spec/requests/localization_spec.rb
@@ -10,7 +10,7 @@ describe 'Localization' do
it 'uses a specific region when provided' do
headers = { 'Accept-Language' => 'zh-HK' }
- get "/auth/sign_in", headers: headers
+ get '/auth/sign_in', headers: headers
expect(response.body).to include(
I18n.t('auth.login', locale: 'zh-HK')
@@ -20,7 +20,7 @@ describe 'Localization' do
it 'falls back to a locale when region missing' do
headers = { 'Accept-Language' => 'es-FAKE' }
- get "/auth/sign_in", headers: headers
+ get '/auth/sign_in', headers: headers
expect(response.body).to include(
I18n.t('auth.login', locale: 'es')
@@ -30,7 +30,7 @@ describe 'Localization' do
it 'falls back to english when locale is missing' do
headers = { 'Accept-Language' => '12-FAKE' }
- get "/auth/sign_in", headers: headers
+ get '/auth/sign_in', headers: headers
expect(response.body).to include(
I18n.t('auth.login', locale: 'en')
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index 81cbc175e5..d3b5baad62 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -76,7 +76,7 @@ describe AccountSearchService, type: :service do
expect(results).to eq [partial]
end
- it "does not return suspended remote accounts" do
+ it 'does not return suspended remote accounts' do
remote = Fabricate(:account, username: 'a', domain: 'remote', display_name: 'e', suspended: true)
results = subject.call('a@example.com', nil, limit: 2)
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index e02054672e..4f3503ac2d 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:note) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234",
+ id: 'https://foo.bar/@foo/1234',
type: 'Note',
content: 'Lorem ipsum',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -46,7 +46,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234",
+ id: 'https://foo.bar/@foo/1234',
type: 'Video',
name: 'Nyan Cat 10 hours remix',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -54,13 +54,13 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
{
type: 'Link',
mimeType: 'application/x-bittorrent',
- href: "https://foo.bar/12345.torrent",
+ href: 'https://foo.bar/12345.torrent',
},
{
type: 'Link',
mimeType: 'text/html',
- href: "https://foo.bar/watch?v=12345",
+ href: 'https://foo.bar/watch?v=12345',
},
],
}
@@ -70,8 +70,8 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.url).to eq "https://foo.bar/watch?v=12345"
- expect(strip_tags(status.text)).to eq "Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345"
+ expect(status.url).to eq 'https://foo.bar/watch?v=12345'
+ expect(strip_tags(status.text)).to eq 'Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345'
end
end
@@ -79,7 +79,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234",
+ id: 'https://foo.bar/@foo/1234',
type: 'Audio',
name: 'Nyan Cat 10 hours remix',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -87,13 +87,13 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
{
type: 'Link',
mimeType: 'application/x-bittorrent',
- href: "https://foo.bar/12345.torrent",
+ href: 'https://foo.bar/12345.torrent',
},
{
type: 'Link',
mimeType: 'text/html',
- href: "https://foo.bar/watch?v=12345",
+ href: 'https://foo.bar/watch?v=12345',
},
],
}
@@ -103,8 +103,8 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.url).to eq "https://foo.bar/watch?v=12345"
- expect(strip_tags(status.text)).to eq "Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345"
+ expect(status.url).to eq 'https://foo.bar/watch?v=12345'
+ expect(strip_tags(status.text)).to eq 'Nyan Cat 10 hours remixhttps://foo.bar/watch?v=12345'
end
end
@@ -112,7 +112,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234",
+ id: 'https://foo.bar/@foo/1234',
type: 'Event',
name: "Let's change the world",
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -123,7 +123,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.url).to eq "https://foo.bar/@foo/1234"
+ expect(status.url).to eq 'https://foo.bar/@foo/1234'
expect(strip_tags(status.text)).to eq "Let's change the worldhttps://foo.bar/@foo/1234"
end
end
@@ -132,7 +132,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:note) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://real.address/@foo/1234",
+ id: 'https://real.address/@foo/1234',
type: 'Note',
content: 'Lorem ipsum',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -154,7 +154,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234/create",
+ id: 'https://foo.bar/@foo/1234/create',
type: 'Create',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: note,
@@ -174,11 +174,11 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234/create",
+ id: 'https://foo.bar/@foo/1234/create',
type: 'Create',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: {
- id: "https://real.address/@foo/1234",
+ id: 'https://real.address/@foo/1234',
type: 'Note',
content: 'Lorem ipsum',
attributedTo: ActivityPub::TagManager.instance.uri_for(sender),
@@ -208,7 +208,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1234/create",
+ id: 'https://foo.bar/@foo/1234/create',
type: 'Create',
actor: ActivityPub::TagManager.instance.uri_for(sender),
object: note.merge(updated: '2021-09-08T22:39:25Z'),
@@ -233,7 +233,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1",
+ id: 'https://foo.bar/@foo/1',
type: 'Note',
content: 'Lorem ipsum',
inReplyTo: 'https://foo.bar/@foo/2',
@@ -269,7 +269,7 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
let(:object) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://foo.bar/@foo/1",
+ id: 'https://foo.bar/@foo/1',
type: 'Note',
content: 'Lorem ipsum',
replies: {
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index 1fbe4d07c2..cc4b168fcd 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -59,8 +59,8 @@ RSpec.describe DeleteAccountService, type: :service do
describe '#call on local account' do
before do
- stub_request(:post, "https://alice.com/inbox").to_return(status: 201)
- stub_request(:post, "https://bob.com/inbox").to_return(status: 201)
+ stub_request(:post, 'https://alice.com/inbox').to_return(status: 201)
+ stub_request(:post, 'https://bob.com/inbox').to_return(status: 201)
end
let!(:remote_alice) { Fabricate(:account, inbox_url: 'https://alice.com/inbox', protocol: :activitypub) }
@@ -72,16 +72,16 @@ RSpec.describe DeleteAccountService, type: :service do
it 'sends a delete actor activity to all known inboxes' do
subject
- expect(a_request(:post, "https://alice.com/inbox")).to have_been_made.once
- expect(a_request(:post, "https://bob.com/inbox")).to have_been_made.once
+ expect(a_request(:post, 'https://alice.com/inbox')).to have_been_made.once
+ expect(a_request(:post, 'https://bob.com/inbox')).to have_been_made.once
end
end
end
describe '#call on remote account' do
before do
- stub_request(:post, "https://alice.com/inbox").to_return(status: 201)
- stub_request(:post, "https://bob.com/inbox").to_return(status: 201)
+ stub_request(:post, 'https://alice.com/inbox').to_return(status: 201)
+ stub_request(:post, 'https://bob.com/inbox').to_return(status: 201)
end
include_examples 'common behavior' do
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 9781f0d78b..8703c2af8f 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -23,7 +23,7 @@ RSpec.describe FavouriteService, type: :service do
let(:status) { Fabricate(:status, account: bob) }
before do
- stub_request(:post, "http://example.com/inbox").to_return(status: 200, body: "", headers: {})
+ stub_request(:post, 'http://example.com/inbox').to_return(status: 200, body: '', headers: {})
subject.call(sender, status)
end
@@ -32,7 +32,7 @@ RSpec.describe FavouriteService, type: :service do
end
it 'sends a like activity' do
- expect(a_request(:post, "http://example.com/inbox")).to have_been_made.once
+ expect(a_request(:post, 'http://example.com/inbox')).to have_been_made.once
end
end
end
diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb
index 4914c27532..458473c39e 100644
--- a/spec/services/fetch_link_card_service_spec.rb
+++ b/spec/services/fetch_link_card_service_spec.rb
@@ -30,7 +30,7 @@ RSpec.describe FetchLinkCardService, type: :service do
it 'works with SJIS' do
expect(a_request(:get, 'http://example.com/sjis')).to have_been_made.at_least_once
- expect(status.preview_cards.first.title).to eq("SJISのページ")
+ expect(status.preview_cards.first.title).to eq('SJISのページ')
end
end
@@ -39,7 +39,7 @@ RSpec.describe FetchLinkCardService, type: :service do
it 'works with SJIS even with wrong charset header' do
expect(a_request(:get, 'http://example.com/sjis_with_wrong_charset')).to have_been_made.at_least_once
- expect(status.preview_cards.first.title).to eq("SJISのページ")
+ expect(status.preview_cards.first.title).to eq('SJISのページ')
end
end
@@ -48,7 +48,7 @@ RSpec.describe FetchLinkCardService, type: :service do
it 'works with koi8-r' do
expect(a_request(:get, 'http://example.com/koi8-r')).to have_been_made.at_least_once
- expect(status.preview_cards.first.title).to eq("Московя начинаетъ только въ XVI ст. привлекать внимане иностранцевъ.")
+ expect(status.preview_cards.first.title).to eq('Московя начинаетъ только въ XVI ст. привлекать внимане иностранцевъ.')
end
end
@@ -66,7 +66,7 @@ RSpec.describe FetchLinkCardService, type: :service do
it 'works with Japanese path string' do
expect(a_request(:get, 'http://example.com/日本語')).to have_been_made.at_least_once
- expect(status.preview_cards.first.title).to eq("SJISのページ")
+ expect(status.preview_cards.first.title).to eq('SJISのページ')
end
end
diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb
index dcd0f80de5..cf46f2d390 100644
--- a/spec/services/fetch_oembed_service_spec.rb
+++ b/spec/services/fetch_oembed_service_spec.rb
@@ -6,9 +6,9 @@ describe FetchOEmbedService, type: :service do
subject { described_class.new }
before do
- stub_request(:get, "https://host.test/provider.json").to_return(status: 404)
- stub_request(:get, "https://host.test/provider.xml").to_return(status: 404)
- stub_request(:get, "https://host.test/empty_provider.json").to_return(status: 200)
+ stub_request(:get, 'https://host.test/provider.json').to_return(status: 404)
+ stub_request(:get, 'https://host.test/provider.xml').to_return(status: 404)
+ stub_request(:get, 'https://host.test/empty_provider.json').to_return(status: 200)
end
describe 'discover_provider' do
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index 4f6ad64967..02c62f8d60 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do
let(:note) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
- id: "https://example.org/@foo/1234",
+ id: 'https://example.org/@foo/1234',
type: 'Note',
content: 'Lorem ipsum',
attributedTo: ActivityPub::TagManager.instance.uri_for(account),
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index 412c04d76b..59073c27f2 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -140,7 +140,7 @@ RSpec.describe FollowService, type: :service do
let(:bob) { Fabricate(:account, username: 'bob', domain: 'example.com', protocol: :activitypub, inbox_url: 'http://example.com/inbox') }
before do
- stub_request(:post, "http://example.com/inbox").to_return(status: 200, body: "", headers: {})
+ stub_request(:post, 'http://example.com/inbox').to_return(status: 200, body: '', headers: {})
subject.call(sender, bob)
end
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 399a43036a..a12148833d 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe ImportService, type: :service do
let!(:eve) { Fabricate(:account, username: 'eve', domain: 'example.com', locked: false, protocol: :activitypub, inbox_url: 'https://example.com/inbox') }
before do
- stub_request(:post, "https://example.com/inbox").to_return(status: 200)
+ stub_request(:post, 'https://example.com/inbox').to_return(status: 200)
end
context 'import old-style list of muted users' do
@@ -186,7 +186,7 @@ RSpec.describe ImportService, type: :service do
# Make sure to not actually go to the remote server
before do
- stub_request(:post, "https://թութ.հայ/inbox").to_return(status: 200)
+ stub_request(:post, 'https://թութ.հայ/inbox').to_return(status: 200)
end
let(:csv) { attachment_fixture('utf8-followers.txt') }
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 7bb7dfb1f9..0b72253a5a 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -5,7 +5,7 @@ RSpec.describe PostStatusService, type: :service do
it 'creates a new status' do
account = Fabricate(:account)
- text = "test status update"
+ text = 'test status update'
status = subject.call(account, text: text)
@@ -16,7 +16,7 @@ RSpec.describe PostStatusService, type: :service do
it 'creates a new response status' do
in_reply_to_status = Fabricate(:status)
account = Fabricate(:account)
- text = "test status update"
+ text = 'test status update'
status = subject.call(account, text: text, thread: in_reply_to_status)
@@ -58,7 +58,7 @@ RSpec.describe PostStatusService, type: :service do
boosted_status = Fabricate(:status)
in_reply_to_status = Fabricate(:status, reblog: boosted_status)
account = Fabricate(:account)
- text = "test status update"
+ text = 'test status update'
status = subject.call(account, text: text, thread: in_reply_to_status)
@@ -75,7 +75,7 @@ RSpec.describe PostStatusService, type: :service do
end
it 'creates a status with spoiler text' do
- spoiler_text = "spoiler text"
+ spoiler_text = 'spoiler text'
status = create_status_with_options(spoiler_text: spoiler_text)
@@ -101,14 +101,14 @@ RSpec.describe PostStatusService, type: :service do
status = create_status_with_options(visibility: :private)
expect(status).to be_persisted
- expect(status.visibility).to eq "private"
+ expect(status.visibility).to eq 'private'
end
it 'creates a status with limited visibility for silenced users' do
status = subject.call(Fabricate(:account, silenced: true), text: 'test', visibility: :public)
expect(status).to be_persisted
- expect(status.visibility).to eq "unlisted"
+ expect(status.visibility).to eq 'unlisted'
end
it 'creates a status for the given application' do
@@ -135,7 +135,7 @@ RSpec.describe PostStatusService, type: :service do
allow(ProcessMentionsService).to receive(:new).and_return(mention_service)
account = Fabricate(:account)
- status = subject.call(account, text: "test status update")
+ status = subject.call(account, text: 'test status update')
expect(ProcessMentionsService).to have_received(:new)
expect(mention_service).to have_received(:call).with(status, save_records: false)
@@ -166,7 +166,7 @@ RSpec.describe PostStatusService, type: :service do
allow(ProcessHashtagsService).to receive(:new).and_return(hashtags_service)
account = Fabricate(:account)
- status = subject.call(account, text: "test status update")
+ status = subject.call(account, text: 'test status update')
expect(ProcessHashtagsService).to have_received(:new)
expect(hashtags_service).to have_received(:call).with(status)
@@ -178,7 +178,7 @@ RSpec.describe PostStatusService, type: :service do
account = Fabricate(:account)
- status = subject.call(account, text: "test status update")
+ status = subject.call(account, text: 'test status update')
expect(DistributionWorker).to have_received(:perform_async).with(status.id)
expect(ActivityPub::DistributionWorker).to have_received(:perform_async).with(status.id)
@@ -188,7 +188,7 @@ RSpec.describe PostStatusService, type: :service do
allow(LinkCrawlWorker).to receive(:perform_async)
account = Fabricate(:account)
- status = subject.call(account, text: "test status update")
+ status = subject.call(account, text: 'test status update')
expect(LinkCrawlWorker).to have_received(:perform_async).with(status.id)
end
@@ -199,7 +199,7 @@ RSpec.describe PostStatusService, type: :service do
status = subject.call(
account,
- text: "test status update",
+ text: 'test status update',
media_ids: [media.id]
)
@@ -212,7 +212,7 @@ RSpec.describe PostStatusService, type: :service do
status = subject.call(
account,
- text: "test status update",
+ text: 'test status update',
media_ids: [media.id]
)
@@ -225,7 +225,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(
account,
- text: "test status update",
+ text: 'test status update',
media_ids: [
Fabricate(:media_attachment, account: account),
Fabricate(:media_attachment, account: account),
@@ -250,7 +250,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(
account,
- text: "test status update",
+ text: 'test status update',
media_ids: [
video,
image,
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 0dd62c8070..6a16928e02 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -62,7 +62,7 @@ RSpec.describe ProcessMentionsService, type: :service do
context 'with an IDN domain' do
let!(:remote_user) { Fabricate(:account, username: 'sneak', protocol: :activitypub, domain: 'xn--hresiar-mxa.ch', inbox_url: 'http://example.com/inbox') }
- let!(:status) { Fabricate(:status, account: account, text: "Hello @sneak@hæresiar.ch") }
+ let!(:status) { Fabricate(:status, account: account, text: 'Hello @sneak@hæresiar.ch') }
before do
subject.call(status)
@@ -75,7 +75,7 @@ RSpec.describe ProcessMentionsService, type: :service do
context 'with an IDN TLD' do
let!(:remote_user) { Fabricate(:account, username: 'foo', protocol: :activitypub, domain: 'xn--y9a3aq.xn--y9a3aq', inbox_url: 'http://example.com/inbox') }
- let!(:status) { Fabricate(:status, account: account, text: "Hello @foo@հայ.հայ") }
+ let!(:status) { Fabricate(:status, account: account, text: 'Hello @foo@հայ.հայ') }
before do
subject.call(status)
@@ -91,8 +91,8 @@ RSpec.describe ProcessMentionsService, type: :service do
let!(:remote_user) { Fabricate(:account, username: 'remote_user', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox', last_webfingered_at: nil) }
before do
- stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404)
- stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com").to_return(status: 500)
+ stub_request(:get, 'https://example.com/.well-known/host-meta').to_return(status: 404)
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:remote_user@example.com').to_return(status: 500)
subject.call(status)
end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 1df30ea575..192225229d 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -4,11 +4,11 @@ RSpec.describe ResolveAccountService, type: :service do
subject { described_class.new }
before do
- stub_request(:get, "https://example.com/.well-known/host-meta").to_return(status: 404)
- stub_request(:get, "https://quitter.no/avatar/7477-300-20160211190340.png").to_return(request_fixture('avatar.txt'))
- stub_request(:get, "https://ap.example.com/.well-known/webfinger?resource=acct:foo@ap.example.com").to_return(request_fixture('activitypub-webfinger.txt'))
- stub_request(:get, "https://ap.example.com/users/foo").to_return(request_fixture('activitypub-actor.txt'))
- stub_request(:get, "https://ap.example.com/users/foo.atom").to_return(request_fixture('activitypub-feed.txt'))
+ stub_request(:get, 'https://example.com/.well-known/host-meta').to_return(status: 404)
+ stub_request(:get, 'https://quitter.no/avatar/7477-300-20160211190340.png').to_return(request_fixture('avatar.txt'))
+ stub_request(:get, 'https://ap.example.com/.well-known/webfinger?resource=acct:foo@ap.example.com').to_return(request_fixture('activitypub-webfinger.txt'))
+ stub_request(:get, 'https://ap.example.com/users/foo').to_return(request_fixture('activitypub-actor.txt'))
+ stub_request(:get, 'https://ap.example.com/users/foo.atom').to_return(request_fixture('activitypub-feed.txt'))
stub_request(:get, %r{https://ap.example.com/users/foo/\w+}).to_return(status: 404)
stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:hoge@example.com').to_return(status: 410)
end
@@ -56,8 +56,8 @@ RSpec.describe ResolveAccountService, type: :service do
context 'when there is an LRDD endpoint but no resolvable account' do
before do
- stub_request(:get, "https://quitter.no/.well-known/host-meta").to_return(request_fixture('.host-meta.txt'))
- stub_request(:get, "https://quitter.no/.well-known/webfinger?resource=acct:catsrgr8@quitter.no").to_return(status: 404)
+ stub_request(:get, 'https://quitter.no/.well-known/host-meta').to_return(request_fixture('.host-meta.txt'))
+ stub_request(:get, 'https://quitter.no/.well-known/webfinger?resource=acct:catsrgr8@quitter.no').to_return(status: 404)
end
it 'returns nil' do
@@ -67,7 +67,7 @@ RSpec.describe ResolveAccountService, type: :service do
context 'when there is no LRDD endpoint nor resolvable account' do
before do
- stub_request(:get, "https://example.com/.well-known/webfinger?resource=acct:catsrgr8@example.com").to_return(status: 404)
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:catsrgr8@example.com').to_return(status: 404)
end
it 'returns nil' do
@@ -153,7 +153,7 @@ RSpec.describe ResolveAccountService, type: :service do
context 'with multiple types' do
before do
- stub_request(:get, "https://ap.example.com/users/foo").to_return(request_fixture('activitypub-actor-individual.txt'))
+ stub_request(:get, 'https://ap.example.com/users/foo').to_return(request_fixture('activitypub-actor-individual.txt'))
end
it 'returns new remote account' do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 72c9ce8ae1..97b8d83c57 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -12,7 +12,7 @@ end
gc_counter = -1
RSpec.configure do |config|
- config.example_status_persistence_file_path = "tmp/rspec/examples.txt"
+ config.example_status_persistence_file_path = 'tmp/rspec/examples.txt'
config.expect_with :rspec do |expectations|
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
@@ -60,7 +60,7 @@ end
def expect_push_bulk_to_match(klass, matcher)
expect(Sidekiq::Client).to receive(:push_bulk).with(hash_including({
- "class" => klass,
- "args" => matcher,
+ 'class' => klass,
+ 'args' => matcher,
}))
end
From e0e63b73ee906abea5e359e695bff4276e6c3276 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 00:54:34 -0500
Subject: [PATCH 0067/1254] Autofix Rubocop RSpec/EmptyLineAfterHook (#23718)
---
.rubocop_todo.yml | 7 -------
spec/helpers/application_helper_spec.rb | 1 +
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e997478192..c3a62c2d99 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -825,13 +825,6 @@ RSpec/EmptyExampleGroup:
- 'spec/models/web/setting_spec.rb'
- 'spec/services/unmute_service_spec.rb'
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowConsecutiveOneLiners.
-RSpec/EmptyLineAfterHook:
- Exclude:
- - 'spec/helpers/application_helper_spec.rb'
-
# Offense count: 19
# This cop supports safe autocorrection (--autocorrect).
RSpec/EmptyLineAfterSubject:
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index b335a5e45e..6502cfebf2 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -82,6 +82,7 @@ describe ApplicationHelper do
before do
allow(helper).to receive(:user_signed_in?).and_return(true)
end
+
it 'does not show landing strip' do
expect(helper.show_landing_strip?).to eq false
end
From 77779ddebc9cad0aecb859f222c3ab6151c6267e Mon Sep 17 00:00:00 2001
From: Yamagishi Kazutoshi
Date: Sun, 19 Feb 2023 15:02:46 +0900
Subject: [PATCH 0068/1254] Fix devcontainer.json format (#23715)
---
.devcontainer/devcontainer.json | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index b98f6a21e0..6ac6993ee9 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -4,16 +4,22 @@
"service": "app",
"workspaceFolder": "/mastodon",
- // Set *default* container specific settings.json values on container create.
- "settings": {},
+ // Configure tool-specific properties.
+ "customizations": {
+ // Configure properties specific to VS Code.
+ "vscode": {
+ // Set *default* container specific settings.json values on container create.
+ "settings": {},
- // Add the IDs of extensions you want installed when the container is created.
- "extensions": [
- "EditorConfig.EditorConfig",
- "dbaeumer.vscode-eslint",
- "rebornix.Ruby",
- "webben.browserslist"
- ],
+ // Add the IDs of extensions you want installed when the container is created.
+ "extensions": [
+ "EditorConfig.EditorConfig",
+ "dbaeumer.vscode-eslint",
+ "rebornix.Ruby",
+ "webben.browserslist"
+ ]
+ }
+ },
"features": {
"ghcr.io/devcontainers/features/sshd:1": {
From 1d9ed916437609e7c5343ed3f96261e907dc5659 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 01:06:34 -0500
Subject: [PATCH 0069/1254] Move db migration CI to GitHub Actions (#23624)
---
.circleci/config.yml | 91 ---------------
.../workflows/test-migrations-one-step.yml | 100 ++++++++++++++++
.../workflows/test-migrations-two-step.yml | 108 ++++++++++++++++++
3 files changed, 208 insertions(+), 91 deletions(-)
create mode 100644 .github/workflows/test-migrations-one-step.yml
create mode 100644 .github/workflows/test-migrations-two-step.yml
diff --git a/.circleci/config.yml b/.circleci/config.yml
index 183ad9048e..3913a6b0f8 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -110,91 +110,6 @@ jobs:
name: Load database schema
- ruby/rspec-test
- test-migrations:
- executor:
- name: default
- ruby-version: '3.2'
- steps:
- - checkout
- - install-system-dependencies
- - install-ruby-dependencies:
- ruby-version: '3.2'
- - wait-db
- - run:
- command: ./bin/rails db:create
- name: Create database
- - run:
- command: ./bin/rails db:migrate VERSION=20171010025614
- name: Run migrations up to v2.0.0
- - run:
- command: ./bin/rails tests:migrations:populate_v2
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate VERSION=20180514140000
- name: Run migrations up to v2.4.0
- - run:
- command: ./bin/rails tests:migrations:populate_v2_4
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate VERSION=20180707154237
- name: Run migrations up to v2.4.3
- - run:
- command: ./bin/rails tests:migrations:populate_v2_4_3
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate
- name: Run all remaining migrations
- - run:
- command: ./bin/rails tests:migrations:check_database
- name: Check migration result
-
- test-two-step-migrations:
- executor:
- name: default
- ruby-version: '3.2'
- steps:
- - checkout
- - install-system-dependencies
- - install-ruby-dependencies:
- ruby-version: '3.2'
- - wait-db
- - run:
- command: ./bin/rails db:create
- name: Create database
- - run:
- command: ./bin/rails db:migrate VERSION=20171010025614
- name: Run migrations up to v2.0.0
- - run:
- command: ./bin/rails tests:migrations:populate_v2
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate VERSION=20180514140000
- name: Run pre-deployment migrations up to v2.4.0
- environment:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - run:
- command: ./bin/rails tests:migrations:populate_v2_4
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate VERSION=20180707154237
- name: Run migrations up to v2.4.3
- environment:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - run:
- command: ./bin/rails tests:migrations:populate_v2_4_3
- name: Populate database with test data
- - run:
- command: ./bin/rails db:migrate
- name: Run all remaining pre-deployment migrations
- environment:
- SKIP_POST_DEPLOYMENT_MIGRATIONS: true
- - run:
- command: ./bin/rails db:migrate
- name: Run all post-deployment migrations
- - run:
- command: ./bin/rails tests:migrations:check_database
- name: Check migration result
-
workflows:
version: 2
build-and-test:
@@ -211,9 +126,3 @@ workflows:
name: test-ruby<< matrix.ruby-version >>
requires:
- build
- - test-migrations:
- requires:
- - build
- - test-two-step-migrations:
- requires:
- - build
diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml
new file mode 100644
index 0000000000..8f070697ca
--- /dev/null
+++ b/.github/workflows/test-migrations-one-step.yml
@@ -0,0 +1,100 @@
+name: Test one step migrations
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ pull_request:
+
+jobs:
+ pre_job:
+ runs-on: ubuntu-latest
+
+ outputs:
+ should_skip: ${{ steps.skip_check.outputs.should_skip }}
+
+ steps:
+ - id: skip_check
+ uses: fkirc/skip-duplicate-actions@v5
+ with:
+ paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-one-step.yml"]'
+
+ test:
+ runs-on: ubuntu-latest
+ needs: pre_job
+ if: needs.pre_job.outputs.should_skip != 'true'
+
+ services:
+ postgres:
+ image: postgres:14.5
+ env:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_USER: postgres
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 5432:5432
+
+ redis:
+ image: redis:7.0
+ options: >-
+ --health-cmd "redis-cli ping"
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 6379:6379
+
+ env:
+ CONTINUOUS_INTEGRATION: true
+ DB_HOST: localhost
+ DB_USER: postgres
+ DB_PASS: postgres
+ DISABLE_SIMPLECOV: true
+ RAILS_ENV: test
+ BUNDLE_CLEAN: true
+ BUNDLE_FROZEN: true
+ BUNDLE_WITHOUT: 'development production'
+ BUNDLE_JOBS: 3
+ BUNDLE_RETRY: 3
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - name: Create database
+ run: './bin/rails db:create'
+
+ - name: Run migrations up to v2.0.0
+ run: './bin/rails db:migrate VERSION=20171010025614'
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2'
+
+ - name: Run migrations up to v2.4.0
+ run: './bin/rails db:migrate VERSION=20180514140000'
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2_4'
+
+ - name: Run migrations up to v2.4.3
+ run: './bin/rails db:migrate VERSION=20180707154237'
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2_4_3'
+
+ - name: Run all remaining migrations
+ run: './bin/rails db:migrate'
+
+ - name: Check migration result
+ run: './bin/rails tests:migrations:check_database'
diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml
new file mode 100644
index 0000000000..2fdce80254
--- /dev/null
+++ b/.github/workflows/test-migrations-two-step.yml
@@ -0,0 +1,108 @@
+name: Test two step migrations
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ pull_request:
+
+jobs:
+ pre_job:
+ runs-on: ubuntu-latest
+
+ outputs:
+ should_skip: ${{ steps.skip_check.outputs.should_skip }}
+
+ steps:
+ - id: skip_check
+ uses: fkirc/skip-duplicate-actions@v5
+ with:
+ paths: '["Gemfile*", ".ruby-version", "**/*.rb", ".github/workflows/test-migrations-two-step.yml"]'
+
+ test:
+ runs-on: ubuntu-latest
+ needs: pre_job
+ if: needs.pre_job.outputs.should_skip != 'true'
+
+ services:
+ postgres:
+ image: postgres:14.5
+ env:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_USER: postgres
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 5432:5432
+ redis:
+ image: redis:7.0
+ options: >-
+ --health-cmd "redis-cli ping"
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 6379:6379
+
+ env:
+ CONTINUOUS_INTEGRATION: true
+ DB_HOST: localhost
+ DB_USER: postgres
+ DB_PASS: postgres
+ DISABLE_SIMPLECOV: true
+ RAILS_ENV: test
+ BUNDLE_CLEAN: true
+ BUNDLE_FROZEN: true
+ BUNDLE_WITHOUT: 'development production'
+ BUNDLE_JOBS: 3
+ BUNDLE_RETRY: 3
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - name: Create database
+ run: './bin/rails db:create'
+
+ - name: Run migrations up to v2.0.0
+ run: './bin/rails db:migrate VERSION=20171010025614'
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2'
+
+ - name: Run pre-deployment migrations up to v2.4.0
+ run: './bin/rails db:migrate VERSION=20180514140000'
+ env:
+ SKIP_POST_DEPLOYMENT_MIGRATIONS: true
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2_4'
+
+ - name: Run migrations up to v2.4.3
+ run: './bin/rails db:migrate VERSION=20180707154237'
+ env:
+ SKIP_POST_DEPLOYMENT_MIGRATIONS: true
+
+ - name: Populate database with test data
+ run: './bin/rails tests:migrations:populate_v2_4_3'
+
+ - name: Run all remaining pre-deployment migrations
+ run: './bin/rails db:migrate'
+ env:
+ SKIP_POST_DEPLOYMENT_MIGRATIONS: true
+
+ - name: Run all post-deployment migrations
+ run: './bin/rails db:migrate'
+
+ - name: Check migration result
+ run: './bin/rails tests:migrations:check_database'
From b2283b68388bf5ec03da1ed367566a21a5e957f2 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 19 Feb 2023 07:11:18 +0100
Subject: [PATCH 0070/1254] Fix focus point of already-attached media not
saving after edit (#23566)
---
app/javascript/mastodon/actions/compose.js | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js
index 72e5929358..3756a975b7 100644
--- a/app/javascript/mastodon/actions/compose.js
+++ b/app/javascript/mastodon/actions/compose.js
@@ -165,11 +165,19 @@ export function submitCompose(routerHistory) {
// API call.
let media_attributes;
if (statusId !== null) {
- media_attributes = media.map(item => ({
- id: item.get('id'),
- description: item.get('description'),
- focus: item.get('focus'),
- }));
+ media_attributes = media.map(item => {
+ let focus;
+
+ if (item.getIn(['meta', 'focus'])) {
+ focus = `${item.getIn(['meta', 'focus', 'x']).toFixed(2)},${item.getIn(['meta', 'focus', 'y']).toFixed(2)}`;
+ }
+
+ return {
+ id: item.get('id'),
+ description: item.get('description'),
+ focus,
+ };
+ });
}
api(getState).request({
From fef6c59b3abe349132dbe910b6aa243e59b732bb Mon Sep 17 00:00:00 2001
From: AcesFullOfKings <6105690+theonefoster@users.noreply.github.com>
Date: Sun, 19 Feb 2023 06:12:32 +0000
Subject: [PATCH 0071/1254] Grammar fix (#23634)
---
config/locales/en.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 0a9c325c20..594a030b90 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1152,7 +1152,7 @@ en:
featured_tags:
add_new: Add new
errors:
- limit: You have already featured the maximum amount of hashtags
+ limit: You have already featured the maximum number of hashtags
hint_html: "What are featured hashtags? They are displayed prominently on your public profile and allow people to browse your public posts specifically under those hashtags. They are a great tool for keeping track of creative works or long-term projects."
filters:
contexts:
@@ -1264,7 +1264,7 @@ en:
title: Invite people
lists:
errors:
- limit: You have reached the maximum amount of lists
+ limit: You have reached the maximum number of lists
login_activities:
authentication_methods:
otp: two-factor authentication app
@@ -1585,7 +1585,7 @@ en:
'7889238': 3 months
min_age_label: Age threshold
min_favs: Keep posts favourited at least
- min_favs_hint: Doesn't delete any of your posts that has received at least this amount of favourites. Leave blank to delete posts regardless of their number of favourites
+ min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites
min_reblogs: Keep posts boosted at least
min_reblogs_hint: Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts
stream_entries:
From 6fdd596cc88622abc585ef3da96699f8f987dfb5 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 16 Feb 2023 01:30:56 -0500
Subject: [PATCH 0072/1254] [Glitch] Enable ESLint Promise plugin defaults
Port 5e1c0c3d946bef488f8e156ed3b5034740e731df to glitch-soc
Signed-off-by: Claire
---
app/javascript/flavours/glitch/utils/notifications.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/flavours/glitch/utils/notifications.js b/app/javascript/flavours/glitch/utils/notifications.js
index 7634cac21f..3cdf7caea0 100644
--- a/app/javascript/flavours/glitch/utils/notifications.js
+++ b/app/javascript/flavours/glitch/utils/notifications.js
@@ -3,7 +3,7 @@
const checkNotificationPromise = () => {
try {
- // eslint-disable-next-line promise/catch-or-return
+ // eslint-disable-next-line promise/catch-or-return, promise/valid-params
Notification.requestPermission().then();
} catch(e) {
return false;
From 229ab559dc96f53d05600514dc9f93d1cdc006bd Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Fri, 17 Feb 2023 09:51:27 +0100
Subject: [PATCH 0073/1254] [Glitch] Fix bad type for spellCheck attribute
Port cde13349cb0ad8e280156cef7fc50692f943b0b2 to glitch-soc
Signed-off-by: Claire
---
app/javascript/flavours/glitch/components/autosuggest_input.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/flavours/glitch/components/autosuggest_input.js b/app/javascript/flavours/glitch/components/autosuggest_input.js
index 1a030fb858..90ff298c0d 100644
--- a/app/javascript/flavours/glitch/components/autosuggest_input.js
+++ b/app/javascript/flavours/glitch/components/autosuggest_input.js
@@ -51,7 +51,7 @@ export default class AutosuggestInput extends ImmutablePureComponent {
searchTokens: PropTypes.arrayOf(PropTypes.string),
maxLength: PropTypes.number,
lang: PropTypes.string,
- spellCheck: PropTypes.string,
+ spellCheck: PropTypes.bool,
};
static defaultProps = {
From 8c8358b3cf514ee4f56f6273948d36bb92c99ac1 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 19 Feb 2023 07:11:18 +0100
Subject: [PATCH 0074/1254] [Glitch] Fix focus point of already-attached media
not saving after edit
Port b2283b68388bf5ec03da1ed367566a21a5e957f2 to glitch-soc
Signed-off-by: Claire
---
.../flavours/glitch/actions/compose.js | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/app/javascript/flavours/glitch/actions/compose.js b/app/javascript/flavours/glitch/actions/compose.js
index 01f0f36668..9c0ef83df5 100644
--- a/app/javascript/flavours/glitch/actions/compose.js
+++ b/app/javascript/flavours/glitch/actions/compose.js
@@ -186,11 +186,19 @@ export function submitCompose(routerHistory) {
// API call.
let media_attributes;
if (statusId !== null) {
- media_attributes = media.map(item => ({
- id: item.get('id'),
- description: item.get('description'),
- focus: item.get('focus'),
- }));
+ media_attributes = media.map(item => {
+ let focus;
+
+ if (item.getIn(['meta', 'focus'])) {
+ focus = `${item.getIn(['meta', 'focus', 'x']).toFixed(2)},${item.getIn(['meta', 'focus', 'y']).toFixed(2)}`;
+ }
+
+ return {
+ id: item.get('id'),
+ description: item.get('description'),
+ focus,
+ };
+ });
}
api(getState).request({
From dc0cc5a57d224b4c53bc58dad919b727055bd9a3 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 19 Feb 2023 11:02:27 +0100
Subject: [PATCH 0075/1254] Fix incorrect translation string in glitch-soc
captcha feature
---
app/views/auth/confirmations/captcha.html.haml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/views/auth/confirmations/captcha.html.haml b/app/views/auth/confirmations/captcha.html.haml
index 0fae367dbe..642f190623 100644
--- a/app/views/auth/confirmations/captcha.html.haml
+++ b/app/views/auth/confirmations/captcha.html.haml
@@ -11,4 +11,4 @@
= render_captcha
.actions
- %button.button= t('challenge.continue')
+ %button.button= t('challenge.confirm')
From 8ef09813a2b46d99fe9c7e39beba2a68052c17d1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:18:54 -0500
Subject: [PATCH 0076/1254] Autofix Rubocop Style/EmptyMethod (#23732)
---
.rubocop_todo.yml | 10 ----------
.../20181024224956_migrate_account_conversations.rb | 3 +--
...529143559_preserve_old_layout_for_existing_users.rb | 3 +--
db/migrate/20200510110808_reset_web_app_secret.rb | 3 +--
4 files changed, 3 insertions(+), 16 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index c3a62c2d99..6fb4716004 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2695,16 +2695,6 @@ Style/ConcatArrayLiterals:
Style/Documentation:
Enabled: false
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: compact, expanded
-Style/EmptyMethod:
- Exclude:
- - 'db/migrate/20181024224956_migrate_account_conversations.rb'
- - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- - 'db/migrate/20200510110808_reset_web_app_secret.rb'
-
# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
Style/ExplicitBlockArgument:
diff --git a/db/migrate/20181024224956_migrate_account_conversations.rb b/db/migrate/20181024224956_migrate_account_conversations.rb
index 9e6497d81f..aca6638e18 100644
--- a/db/migrate/20181024224956_migrate_account_conversations.rb
+++ b/db/migrate/20181024224956_migrate_account_conversations.rb
@@ -100,8 +100,7 @@ class MigrateAccountConversations < ActiveRecord::Migration[5.2]
end
end
- def down
- end
+ def down; end
private
diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
index 72b7c609d1..19e86fbfe1 100644
--- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
+++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
@@ -12,6 +12,5 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2]
end
end
- def down
- end
+ def down; end
end
diff --git a/db/migrate/20200510110808_reset_web_app_secret.rb b/db/migrate/20200510110808_reset_web_app_secret.rb
index b274844c58..8c0c06a83e 100644
--- a/db/migrate/20200510110808_reset_web_app_secret.rb
+++ b/db/migrate/20200510110808_reset_web_app_secret.rb
@@ -10,6 +10,5 @@ class ResetWebAppSecret < ActiveRecord::Migration[5.2]
web_app.save!
end
- def down
- end
+ def down; end
end
From 597767a9f7ca846be9fbca826aba362f8387a60f Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:19:40 -0500
Subject: [PATCH 0077/1254] Autofix Rubocop Rails/RedundantForeignKey (#23731)
---
.rubocop_todo.yml | 12 ------------
app/models/custom_filter.rb | 4 ++--
app/models/follow_recommendation.rb | 2 +-
app/models/report.rb | 2 +-
app/models/status.rb | 2 +-
app/models/user_ip.rb | 2 +-
.../20221101190723_backfill_admin_action_logs.rb | 2 +-
...0221206114142_backfill_admin_action_logs_again.rb | 2 +-
8 files changed, 8 insertions(+), 20 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 6fb4716004..1a524e6fdd 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2459,18 +2459,6 @@ Rails/RakeEnvironment:
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
-# Offense count: 8
-# This cop supports safe autocorrection (--autocorrect).
-Rails/RedundantForeignKey:
- Exclude:
- - 'app/models/custom_filter.rb'
- - 'app/models/follow_recommendation.rb'
- - 'app/models/report.rb'
- - 'app/models/status.rb'
- - 'app/models/user_ip.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
-
# Offense count: 29
# Configuration parameters: Include.
# Include: db/**/*.rb
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 5a4a974be4..b70e53bd53 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -33,8 +33,8 @@ class CustomFilter < ApplicationRecord
enum action: [:warn, :hide], _suffix: :action
belongs_to :account
- has_many :keywords, class_name: 'CustomFilterKeyword', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
- has_many :statuses, class_name: 'CustomFilterStatus', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
+ has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
+ has_many :statuses, class_name: 'CustomFilterStatus', inverse_of: :custom_filter, dependent: :destroy
accepts_nested_attributes_for :keywords, reject_if: :all_blank, allow_destroy: true
validates :title, :context, presence: true
diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb
index e552b5a88d..501f8ecb6e 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -12,7 +12,7 @@ class FollowRecommendation < ApplicationRecord
self.primary_key = :account_id
belongs_to :account_summary, foreign_key: :account_id
- belongs_to :account, foreign_key: :account_id
+ belongs_to :account
scope :localized, ->(locale) { joins(:account_summary).merge(AccountSummary.localized(locale)) }
diff --git a/app/models/report.rb b/app/models/report.rb
index 525d22ad5d..fe6c292c5b 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -32,7 +32,7 @@ class Report < ApplicationRecord
belongs_to :action_taken_by_account, class_name: 'Account', optional: true
belongs_to :assigned_account, class_name: 'Account', optional: true
- has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy
+ has_many :notes, class_name: 'ReportNote', inverse_of: :report, dependent: :destroy
has_many :notifications, as: :activity, dependent: :destroy
scope :unresolved, -> { where(action_taken_at: nil) }
diff --git a/app/models/status.rb b/app/models/status.rb
index 102dfa9942..e0ad291035 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -53,7 +53,7 @@ class Status < ApplicationRecord
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
belongs_to :account, inverse_of: :statuses
- belongs_to :in_reply_to_account, foreign_key: 'in_reply_to_account_id', class_name: 'Account', optional: true
+ belongs_to :in_reply_to_account, class_name: 'Account', optional: true
belongs_to :conversation, optional: true
belongs_to :preloadable_poll, class_name: 'Poll', foreign_key: 'poll_id', optional: true
diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb
index a8e802e136..1da6157629 100644
--- a/app/models/user_ip.rb
+++ b/app/models/user_ip.rb
@@ -11,7 +11,7 @@
class UserIp < ApplicationRecord
self.primary_key = :user_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
def readonly?
true
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 48ef1e6e31..6ab76a8f75 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -62,7 +62,7 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
# Cannot use usual polymorphic support because of namespacing issues
belongs_to :status, foreign_key: :target_id
belongs_to :account, foreign_key: :target_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
belongs_to :domain_block, foreign_key: :target_id
belongs_to :domain_allow, foreign_key: :target_id
belongs_to :email_domain_block, foreign_key: :target_id
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
index 279053ab94..42b7f3625b 100644
--- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -62,7 +62,7 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
# Cannot use usual polymorphic support because of namespacing issues
belongs_to :status, foreign_key: :target_id
belongs_to :account, foreign_key: :target_id
- belongs_to :user, foreign_key: :user_id
+ belongs_to :user
belongs_to :domain_block, foreign_key: :target_id
belongs_to :domain_allow, foreign_key: :target_id
belongs_to :email_domain_block, foreign_key: :target_id
From 21bf32635687770bc0026d769a69f49b89f8a0a2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:28:40 -0500
Subject: [PATCH 0078/1254] Autofix Rubocop Rails/Pluck (#23730)
---
.rubocop_todo.yml | 11 -----------
app/lib/importer/base_importer.rb | 2 +-
app/lib/link_details_extractor.rb | 8 ++++----
.../scheduler/accounts_statuses_cleanup_scheduler.rb | 2 +-
.../api/v1/notifications_controller_spec.rb | 12 ++++++------
.../api/v1/suggestions_controller_spec.rb | 2 +-
.../webauthn_credentials_controller_spec.rb | 2 +-
7 files changed, 14 insertions(+), 25 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1a524e6fdd..954e42f9eb 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2435,17 +2435,6 @@ Rails/Output:
Exclude:
- 'lib/mastodon/ip_blocks_cli.rb'
-# Offense count: 14
-# This cop supports safe autocorrection (--autocorrect).
-Rails/Pluck:
- Exclude:
- - 'app/lib/importer/base_importer.rb'
- - 'app/lib/link_details_extractor.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/suggestions_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
-
# Offense count: 9
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
diff --git a/app/lib/importer/base_importer.rb b/app/lib/importer/base_importer.rb
index ea522c600c..0cd1d34227 100644
--- a/app/lib/importer/base_importer.rb
+++ b/app/lib/importer/base_importer.rb
@@ -45,7 +45,7 @@ class Importer::BaseImporter
# Remove documents from the index that no longer exist in the database
def clean_up!
index.scroll_batches do |documents|
- ids = documents.map { |doc| doc['_id'] }
+ ids = documents.pluck('_id')
existence_map = index.adapter.target.where(id: ids).pluck(:id).each_with_object({}) { |id, map| map[id.to_s] = true }
tmp = ids.reject { |id| existence_map[id] }
diff --git a/app/lib/link_details_extractor.rb b/app/lib/link_details_extractor.rb
index 74a7d0f3bc..f8a0be636e 100644
--- a/app/lib/link_details_extractor.rb
+++ b/app/lib/link_details_extractor.rb
@@ -188,7 +188,7 @@ class LinkDetailsExtractor
end
def language
- valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').map { |element| element['lang'] }.first)
+ valid_locale_or_nil(structured_data&.language || opengraph_tag('og:locale') || document.xpath('//html').pick('lang'))
end
def icon
@@ -220,15 +220,15 @@ class LinkDetailsExtractor
end
def link_tag(name)
- document.xpath("//link[@rel=\"#{name}\"]").map { |link| link['href'] }.first
+ document.xpath("//link[@rel=\"#{name}\"]").pick('href')
end
def opengraph_tag(name)
- document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").map { |meta| meta['content'] }.first
+ document.xpath("//meta[@property=\"#{name}\" or @name=\"#{name}\"]").pick('content')
end
def meta_tag(name)
- document.xpath("//meta[@name=\"#{name}\"]").map { |meta| meta['content'] }.first
+ document.xpath("//meta[@name=\"#{name}\"]").pick('content')
end
def structured_data
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index bd92fe32c4..cc5b6e137a 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -67,7 +67,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
end
def compute_budget
- threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.map { |x| x['concurrency'] }.sum
+ threads = Sidekiq::ProcessSet.new.select { |x| x['queues'].include?('push') }.pluck('concurrency').sum
[PER_THREAD_BUDGET * threads, MAX_BUDGET].min
end
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index 46e177c0ec..22ebfa3dda 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -70,19 +70,19 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end
it 'includes reblog' do
- expect(body_as_json.map { |x| x[:type] }).to include 'reblog'
+ expect(body_as_json.pluck(:type)).to include 'reblog'
end
it 'includes mention' do
- expect(body_as_json.map { |x| x[:type] }).to include 'mention'
+ expect(body_as_json.pluck(:type)).to include 'mention'
end
it 'includes favourite' do
- expect(body_as_json.map { |x| x[:type] }).to include 'favourite'
+ expect(body_as_json.pluck(:type)).to include 'favourite'
end
it 'includes follow' do
- expect(body_as_json.map { |x| x[:type] }).to include 'follow'
+ expect(body_as_json.pluck(:type)).to include 'follow'
end
end
@@ -125,7 +125,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
it 'returns everything but excluded type' do
expect(body_as_json.size).to_not eq 0
- expect(body_as_json.map { |x| x[:type] }.uniq).to_not include 'mention'
+ expect(body_as_json.pluck(:type).uniq).to_not include 'mention'
end
end
@@ -139,7 +139,7 @@ RSpec.describe Api::V1::NotificationsController, type: :controller do
end
it 'returns only requested type' do
- expect(body_as_json.map { |x| x[:type] }.uniq).to eq ['mention']
+ expect(body_as_json.pluck(:type).uniq).to eq ['mention']
end
end
end
diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb
index 7805b6b4fe..35ba155e74 100644
--- a/spec/controllers/api/v1/suggestions_controller_spec.rb
+++ b/spec/controllers/api/v1/suggestions_controller_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe Api::V1::SuggestionsController, type: :controller do
json = body_as_json
expect(json.size).to be >= 1
- expect(json.map { |i| i[:id] }).to include(*[bob, jeff].map { |i| i.id.to_s })
+ expect(json.pluck(:id)).to include(*[bob, jeff].map { |i| i.id.to_s })
end
end
end
diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
index c3156c4e95..f060c3a4bd 100644
--- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
@@ -140,7 +140,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
it 'includes existing credentials in list of excluded credentials' do
get :options
- excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].map { |credential| credential['id'] }
+ excluded_credentials_ids = JSON.parse(response.body)['excludeCredentials'].pluck('id')
expect(excluded_credentials_ids).to match_array(user.webauthn_credentials.pluck(:external_id))
end
end
From a2fdb388eb412f3f90ec48bc990c7c2c24b8c072 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:32:10 -0500
Subject: [PATCH 0079/1254] Autofix Rubocop RSpec/ReturnFromStub (#23724)
---
.rubocop_todo.yml | 13 -------------
.../api/v1/accounts/credentials_controller_spec.rb | 2 +-
.../api/v1/apps/credentials_controller_spec.rb | 2 +-
.../favourited_by_accounts_controller_spec.rb | 2 +-
.../reblogged_by_accounts_controller_spec.rb | 2 +-
spec/controllers/api/v1/statuses_controller_spec.rb | 2 +-
spec/validators/blacklisted_email_validator_spec.rb | 2 +-
7 files changed, 6 insertions(+), 19 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 954e42f9eb..73ebdbfd81 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1923,19 +1923,6 @@ RSpec/RepeatedExampleGroupDescription:
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
-# Offense count: 6
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: and_return, block
-RSpec/ReturnFromStub:
- Exclude:
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses_controller_spec.rb'
- - 'spec/validators/blacklisted_email_validator_spec.rb'
-
# Offense count: 18
# This cop supports safe autocorrection (--autocorrect).
RSpec/ScatteredLet:
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index d8aa00a075..a56b9d8fa7 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -86,7 +86,7 @@ describe Api::V1::Accounts::CredentialsController do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
describe 'GET #show' do
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 0f811d5f37..470093c3c6 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -30,7 +30,7 @@ describe Api::V1::Apps::CredentialsController do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
describe 'GET #show' do
diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
index 4dcaba6bdc..c1c6f5f12c 100644
--- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :control
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
index dc36d4ca08..90187a5858 100644
--- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controll
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index e4e6e172ac..e839c8494f 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -219,7 +219,7 @@ RSpec.describe Api::V1::StatusesController, type: :controller do
context 'without an oauth token' do
before do
- allow(controller).to receive(:doorkeeper_token) { nil }
+ allow(controller).to receive(:doorkeeper_token).and_return(nil)
end
context 'with a private status' do
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index 351de07076..f9ee3b932a 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
let(:errors) { double(add: nil) }
before do
- allow(user).to receive(:valid_invitation?) { false }
+ allow(user).to receive(:valid_invitation?).and_return(false)
allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email }
end
From 65ba0d92ef78f82a3cf5bf04f13b3d7393da015d Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:33:27 -0500
Subject: [PATCH 0080/1254] Enable Rubocop RSpec/NotToNot (#23723)
---
.rubocop.yml | 3 +
.rubocop_todo.yml | 123 ------------------
.../collections_controller_spec.rb | 4 +-
.../activitypub/inboxes_controller_spec.rb | 6 +-
...ccount_moderation_notes_controller_spec.rb | 2 +-
.../admin/accounts_controller_spec.rb | 12 +-
.../admin/change_email_controller_spec.rb | 2 +-
.../admin/confirmations_controller_spec.rb | 2 +-
.../admin/domain_blocks_controller_spec.rb | 2 +-
.../admin/report_notes_controller_spec.rb | 4 +-
.../settings/profiles_controller_spec.rb | 2 +-
.../well_known/nodeinfo_controller_spec.rb | 2 +-
.../lib/activitypub/activity/announce_spec.rb | 2 +-
spec/lib/request_spec.rb | 2 +-
spec/lib/status_filter_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 2 +-
spec/models/account_spec.rb | 10 +-
.../concerns/account_interactions_spec.rb | 6 +-
spec/models/concerns/remotable_spec.rb | 4 +-
spec/models/public_feed_spec.rb | 28 ++--
spec/models/setting_spec.rb | 4 +-
spec/models/tag_spec.rb | 6 +-
spec/models/user_spec.rb | 4 +-
spec/services/account_search_service_spec.rb | 2 +-
.../process_collection_service_spec.rb | 10 +-
.../process_status_update_service_spec.rb | 4 +-
spec/services/block_domain_service_spec.rb | 6 +-
.../clear_domain_media_service_spec.rb | 6 +-
spec/services/import_service_spec.rb | 2 +-
spec/services/post_status_service_spec.rb | 4 +-
spec/services/search_service_spec.rb | 6 +-
.../blacklisted_email_validator_spec.rb | 2 +-
.../disallowed_hashtags_validator_spec.rb | 4 +-
spec/validators/email_mx_validator_spec.rb | 2 +-
.../validators/follow_limit_validator_spec.rb | 4 +-
spec/validators/poll_validator_spec.rb | 4 +-
.../status_length_validator_spec.rb | 4 +-
.../unreserved_username_validator_spec.rb | 4 +-
spec/validators/url_validator_spec.rb | 2 +-
spec/workers/feed_insert_worker_spec.rb | 6 +-
40 files changed, 94 insertions(+), 214 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 3783ccf48a..fc1969a645 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -94,6 +94,9 @@ Rails/Exit:
- 'lib/mastodon/cli_helper.rb'
- 'lib/cli.rb'
+RSpec/NotToNot:
+ EnforcedStyle: to_not
+
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 73ebdbfd81..9076891e2b 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1440,129 +1440,6 @@ RSpec/NoExpectationExample:
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/services/precompute_feed_service_spec.rb'
-# Offense count: 370
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: not_to, to_not
-RSpec/NotToNot:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
- - 'spec/controllers/accounts_controller_spec.rb'
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/roles_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/filters_controller_spec.rb'
- - 'spec/controllers/api/v1/media_controller_spec.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/polls/votes_controller_spec.rb'
- - 'spec/controllers/api/v1/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
- - 'spec/controllers/api/v2/filters_controller_spec.rb'
- - 'spec/controllers/auth/challenges_controller_spec.rb'
- - 'spec/controllers/auth/confirmations_controller_spec.rb'
- - 'spec/controllers/auth/passwords_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/concerns/challengable_concern_spec.rb'
- - 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- - 'spec/controllers/oauth/tokens_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- - 'spec/controllers/statuses_controller_spec.rb'
- - 'spec/helpers/application_helper_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/tag_manager_spec.rb'
- - 'spec/lib/delivery_failure_tracker_spec.rb'
- - 'spec/lib/feed_manager_spec.rb'
- - 'spec/lib/html_aware_formatter_spec.rb'
- - 'spec/lib/request_pool_spec.rb'
- - 'spec/lib/status_reach_finder_spec.rb'
- - 'spec/lib/vacuum/access_tokens_vacuum_spec.rb'
- - 'spec/lib/vacuum/backups_vacuum_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- - 'spec/lib/vacuum/statuses_vacuum_spec.rb'
- - 'spec/lib/vacuum/system_keys_vacuum_spec.rb'
- - 'spec/models/account/field_spec.rb'
- - 'spec/models/account_conversation_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/models/account_statuses_filter_spec.rb'
- - 'spec/models/concerns/remotable_spec.rb'
- - 'spec/models/concerns/status_threading_concern_spec.rb'
- - 'spec/models/follow_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/status_spec.rb'
- - 'spec/models/tag_feed_spec.rb'
- - 'spec/models/trends/statuses_spec.rb'
- - 'spec/models/trends/tags_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/webhook_spec.rb'
- - 'spec/policies/account_moderation_note_policy_spec.rb'
- - 'spec/policies/account_policy_spec.rb'
- - 'spec/policies/backup_policy_spec.rb'
- - 'spec/policies/custom_emoji_policy_spec.rb'
- - 'spec/policies/domain_block_policy_spec.rb'
- - 'spec/policies/email_domain_block_policy_spec.rb'
- - 'spec/policies/instance_policy_spec.rb'
- - 'spec/policies/invite_policy_spec.rb'
- - 'spec/policies/relay_policy_spec.rb'
- - 'spec/policies/report_note_policy_spec.rb'
- - 'spec/policies/report_policy_spec.rb'
- - 'spec/policies/settings_policy_spec.rb'
- - 'spec/policies/status_policy_spec.rb'
- - 'spec/policies/tag_policy_spec.rb'
- - 'spec/policies/user_policy_spec.rb'
- - 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/services/account_statuses_cleanup_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/app_sign_up_service_spec.rb'
- - 'spec/services/batched_remove_status_service_spec.rb'
- - 'spec/services/block_domain_service_spec.rb'
- - 'spec/services/bootstrap_timeline_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/favourite_service_spec.rb'
- - 'spec/services/fetch_link_card_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/fetch_remote_status_service_spec.rb'
- - 'spec/services/follow_service_spec.rb'
- - 'spec/services/mute_service_spec.rb'
- - 'spec/services/notify_service_spec.rb'
- - 'spec/services/remove_status_service_spec.rb'
- - 'spec/services/report_service_spec.rb'
- - 'spec/services/resolve_account_service_spec.rb'
- - 'spec/services/search_service_spec.rb'
- - 'spec/services/suspend_account_service_spec.rb'
- - 'spec/services/unallow_domain_service_spec.rb'
- - 'spec/services/unsuspend_account_service_spec.rb'
- - 'spec/services/update_status_service_spec.rb'
- - 'spec/support/examples/models/concerns/account_avatar.rb'
- - 'spec/support/examples/models/concerns/account_header.rb'
- - 'spec/validators/email_mx_validator_spec.rb'
- - 'spec/validators/note_length_validator_spec.rb'
- - 'spec/validators/reaction_validator_spec.rb'
- - 'spec/validators/status_length_validator_spec.rb'
- - 'spec/validators/unique_username_validator_spec.rb'
- - 'spec/workers/activitypub/fetch_replies_worker_spec.rb'
- - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-
# Offense count: 3
RSpec/PendingWithoutReason:
Exclude:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 4e35938dba..bf81cdb93c 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -60,7 +60,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'does not include contents of private pinned status' do
- expect(response.body).not_to include(private_pinned.text)
+ expect(response.body).to_not include(private_pinned.text)
end
context 'when account is permanently suspended' do
@@ -115,7 +115,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
it 'does not include contents of private pinned status' do
- expect(response.body).not_to include(private_pinned.text)
+ expect(response.body).to_not include(private_pinned.text)
end
end
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 2f023197be..7f4d6b2d3e 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
let(:synchronization_collection) { 'https://example.com/followers2' }
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
@@ -76,13 +76,13 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
let(:synchronization_url) { 'https://example.org/followers' }
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
context 'with matching digest' do
it 'does not start a synchronization job' do
- expect(ActivityPub::FollowersSynchronizationWorker).not_to have_received(:perform_async)
+ expect(ActivityPub::FollowersSynchronizationWorker).to_not have_received(:perform_async)
end
end
diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
index d3f3263f88..b8d6063227 100644
--- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb
+++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe Admin::AccountModerationNotesController, type: :controller do
let(:params) { { account_moderation_note: { target_account_id: target_account.id, content: '' } } }
it 'falls to create a note' do
- expect { subject }.not_to change { AccountModerationNote.count }
+ expect { subject }.to_not change { AccountModerationNote.count }
expect(subject).to render_template 'admin/accounts/show'
end
end
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 48204b7b6e..35d79740ac 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -84,7 +84,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
@@ -106,7 +106,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
@@ -115,7 +115,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
- expect(account.reload).not_to be_memorial
+ expect(account.reload).to_not be_memorial
end
end
end
@@ -133,7 +133,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'succeeds in enabling account' do
is_expected.to redirect_to admin_account_path(account.id)
- expect(user.reload).not_to be_disabled
+ expect(user.reload).to_not be_disabled
end
end
@@ -183,7 +183,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to approve account' do
is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_approved
+ expect(user.reload).to_not be_approved
end
end
end
@@ -223,7 +223,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to reject account' do
is_expected.to have_http_status :forbidden
- expect(user.reload).not_to be_approved
+ expect(user.reload).to_not be_approved
end
end
end
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index 0814f327d8..520842a19f 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -35,7 +35,7 @@ RSpec.describe Admin::ChangeEmailsController, type: :controller do
expect(user.email).to eq previous_email
expect(user.unconfirmed_email).to eq 'test@example.com'
- expect(user.confirmation_token).not_to be_nil
+ expect(user.confirmation_token).to_not be_nil
expect(UserMailer).to have_received(:confirmation_instructions).with(user, user.confirmation_token, { to: 'test@example.com' })
diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb
index 6268903c4e..7ca90f3e12 100644
--- a/spec/controllers/admin/confirmations_controller_spec.rb
+++ b/spec/controllers/admin/confirmations_controller_spec.rb
@@ -55,7 +55,7 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do
it 'does not resend confirmation mail' do
expect(subject).to redirect_to admin_accounts_path
expect(flash[:error]).to eq I18n.t('admin.accounts.resend_confirmation.already_confirmed')
- expect(UserMailer).not_to have_received(:confirmation_instructions)
+ expect(UserMailer).to_not have_received(:confirmation_instructions)
end
end
end
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 3b2fd6c5dc..92fc19efac 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -54,7 +54,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
post :create, params: { domain_block: { domain: 'example.com', severity: 'silence' } }
- expect(DomainBlockWorker).not_to have_received(:perform_async)
+ expect(DomainBlockWorker).to_not have_received(:perform_async)
expect(response).to render_template :new
end
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index fa7572d186..8a2603611c 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -34,7 +34,7 @@ describe Admin::ReportNotesController do
it 'creates a report note and does not resolve report' do
expect { subject }.to change { ReportNote.count }.by(1)
- expect(report.reload).not_to be_action_taken
+ expect(report.reload).to_not be_action_taken
expect(subject).to redirect_to admin_report_path(report)
end
end
@@ -49,7 +49,7 @@ describe Admin::ReportNotesController do
it 'creates a report note and unresolves report' do
expect { subject }.to change { ReportNote.count }.by(1)
- expect(report.reload).not_to be_action_taken
+ expect(report.reload).to_not be_action_taken
expect(subject).to redirect_to admin_report_path(report)
end
end
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index fbbca8bb92..c7a6ad6643 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -38,7 +38,7 @@ RSpec.describe Settings::ProfilesController, type: :controller do
put :update, params: { account: { avatar: fixture_file_upload('avatar.gif', 'image/gif') } }
expect(response).to redirect_to(settings_profile_path)
- expect(account.reload.avatar.instance.avatar_file_name).not_to be_nil
+ expect(account.reload.avatar.instance.avatar_file_name).to_not be_nil
expect(ActivityPub::UpdateDistributionWorker).to have_received(:perform_async).with(account.id)
end
end
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 964a14706b..e9436cd262 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -27,7 +27,7 @@ describe WellKnown::NodeInfoController, type: :controller do
json = body_as_json
- expect({ 'foo' => 0 }).not_to match_json_schema('nodeinfo_2.0')
+ expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0')
expect(json).to match_json_schema('nodeinfo_2.0')
expect(json[:version]).to eq '2.0'
expect(json[:usage]).to be_a Hash
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index 461c3757b3..adb13acc21 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -139,7 +139,7 @@ RSpec.describe ActivityPub::Activity::Announce do
end
it 'does not fetch the remote status' do
- expect(a_request(:get, 'https://example.com/actor/hello-world')).not_to have_been_made
+ expect(a_request(:get, 'https://example.com/actor/hello-world')).to_not have_been_made
expect(Status.find_by(uri: 'https://example.com/actor/hello-world')).to be_nil
end
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index e555a8b5a1..f63a836de4 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -102,7 +102,7 @@ describe Request do
it 'accepts body less than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
- expect { subject.perform { |response| response.body_with_limit } }.not_to raise_error
+ expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error
end
it 'rejects body by given size' do
diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb
index 287fe00de6..cdb4820590 100644
--- a/spec/lib/status_filter_spec.rb
+++ b/spec/lib/status_filter_spec.rb
@@ -10,7 +10,7 @@ describe StatusFilter do
subject { described_class.new(status, nil) }
context 'when there are no connections' do
- it { is_expected.not_to be_filtered }
+ it { is_expected.to_not be_filtered }
end
context 'when status account is silenced' do
@@ -36,7 +36,7 @@ describe StatusFilter do
subject { described_class.new(status, account) }
context 'when there are no connections' do
- it { is_expected.not_to be_filtered }
+ it { is_expected.to_not be_filtered }
end
context 'when status account is blocked' do
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index d4a3a6b594..cc742b65e6 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -18,7 +18,7 @@ RSpec.describe TextFormatter do
let(:text) { "line\nfeed" }
it 'removes line feeds' do
- is_expected.not_to include "\n"
+ is_expected.to_not include "\n"
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 7638356181..03ed12d780 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe Account, type: :model do
end
it 'does not raise an error' do
- expect { subject.suspend! }.not_to raise_error
+ expect { subject.suspend! }.to_not raise_error
end
end
end
@@ -206,7 +206,7 @@ RSpec.describe Account, type: :model do
end
it 'calls not ResolveAccountService#call' do
- expect_any_instance_of(ResolveAccountService).not_to receive(:call).with(acct)
+ expect_any_instance_of(ResolveAccountService).to_not receive(:call).with(acct)
account.refresh!
end
end
@@ -811,19 +811,19 @@ RSpec.describe Account, type: :model do
it 'is valid even if the username is longer than 30 characters' do
account = Fabricate.build(:account, domain: 'domain', username: Faker::Lorem.characters(number: 31))
account.valid?
- expect(account).not_to model_have_error_on_field(:username)
+ expect(account).to_not model_have_error_on_field(:username)
end
it 'is valid even if the display name is longer than 30 characters' do
account = Fabricate.build(:account, domain: 'domain', display_name: Faker::Lorem.characters(number: 31))
account.valid?
- expect(account).not_to model_have_error_on_field(:display_name)
+ expect(account).to_not model_have_error_on_field(:display_name)
end
it 'is valid even if the note is longer than 500 characters' do
account = Fabricate.build(:account, domain: 'domain', note: Faker::Lorem.characters(number: 501))
account.valid?
- expect(account).not_to model_have_error_on_field(:note)
+ expect(account).to_not model_have_error_on_field(:note)
end
end
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index b79c445948..b2d84308b5 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -163,7 +163,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(true)
+ end.to_not change { mute.reload.hide_notifications? }.from(true)
end
end
@@ -183,7 +183,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(true)
+ end.to_not change { mute.reload.hide_notifications? }.from(true)
end
end
end
@@ -207,7 +207,7 @@ describe AccountInteractions do
it 'returns Mute without updating mute.hide_notifications' do
expect do
expect(subject).to be_a Mute
- end.not_to change { mute.reload.hide_notifications? }.from(false)
+ end.to_not change { mute.reload.hide_notifications? }.from(false)
end
end
diff --git a/spec/models/concerns/remotable_spec.rb b/spec/models/concerns/remotable_spec.rb
index ca2d65d2d1..9645204276 100644
--- a/spec/models/concerns/remotable_spec.rb
+++ b/spec/models/concerns/remotable_spec.rb
@@ -147,8 +147,8 @@ RSpec.describe Remotable do
let(:code) { 500 }
it 'does not assign file' do
- expect(foo).not_to receive(:public_send).with("#{hoge}=", any_args)
- expect(foo).not_to receive(:public_send).with("#{hoge}_file_name=", any_args)
+ expect(foo).to_not receive(:public_send).with("#{hoge}=", any_args)
+ expect(foo).to_not receive(:public_send).with("#{hoge}_file_name=", any_args)
foo.hoge_remote_url = url
end
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index 0ffc343f17..be46639c52 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe PublicFeed, type: :model do
private_status = Fabricate(:status, visibility: :private)
expect(subject).to include(public_status.id)
- expect(subject).not_to include(private_status.id)
+ expect(subject).to_not include(private_status.id)
end
it 'does not include replies' do
@@ -19,7 +19,7 @@ RSpec.describe PublicFeed, type: :model do
reply = Fabricate(:status, in_reply_to_id: status.id)
expect(subject).to include(status.id)
- expect(subject).not_to include(reply.id)
+ expect(subject).to_not include(reply.id)
end
it 'does not include boosts' do
@@ -27,7 +27,7 @@ RSpec.describe PublicFeed, type: :model do
boost = Fabricate(:status, reblog_of_id: status.id)
expect(subject).to include(status.id)
- expect(subject).not_to include(boost.id)
+ expect(subject).to_not include(boost.id)
end
it 'filters out silenced accounts' do
@@ -36,7 +36,7 @@ RSpec.describe PublicFeed, type: :model do
silenced_status = Fabricate(:status, account: silenced_account)
expect(subject).to include(status.id)
- expect(subject).not_to include(silenced_status.id)
+ expect(subject).to_not include(silenced_status.id)
end
context 'without local_only option' do
@@ -87,7 +87,7 @@ RSpec.describe PublicFeed, type: :model do
it 'does not include remote instances statuses' do
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
end
@@ -96,13 +96,13 @@ RSpec.describe PublicFeed, type: :model do
it 'does not include remote instances statuses' do
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
it 'is not affected by personal domain blocks' do
viewer.block_domain!('test.com')
expect(subject).to include(local_status.id)
- expect(subject).not_to include(remote_status.id)
+ expect(subject).to_not include(remote_status.id)
end
end
end
@@ -119,7 +119,7 @@ RSpec.describe PublicFeed, type: :model do
let(:viewer) { nil }
it 'does not include local instances statuses' do
- expect(subject).not_to include(local_status.id)
+ expect(subject).to_not include(local_status.id)
expect(subject).to include(remote_status.id)
end
end
@@ -128,7 +128,7 @@ RSpec.describe PublicFeed, type: :model do
let(:viewer) { Fabricate(:account, username: 'viewer') }
it 'does not include local instances statuses' do
- expect(subject).not_to include(local_status.id)
+ expect(subject).to_not include(local_status.id)
expect(subject).to include(remote_status.id)
end
end
@@ -146,7 +146,7 @@ RSpec.describe PublicFeed, type: :model do
@account.block!(blocked)
blocked_status = Fabricate(:status, account: blocked)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
it 'excludes statuses from accounts who have blocked the account' do
@@ -154,7 +154,7 @@ RSpec.describe PublicFeed, type: :model do
blocker.block!(@account)
blocked_status = Fabricate(:status, account: blocker)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
it 'excludes statuses from accounts muted by the account' do
@@ -162,7 +162,7 @@ RSpec.describe PublicFeed, type: :model do
@account.mute!(muted)
muted_status = Fabricate(:status, account: muted)
- expect(subject).not_to include(muted_status.id)
+ expect(subject).to_not include(muted_status.id)
end
it 'excludes statuses from accounts from personally blocked domains' do
@@ -170,7 +170,7 @@ RSpec.describe PublicFeed, type: :model do
@account.block_domain!(blocked.domain)
blocked_status = Fabricate(:status, account: blocked)
- expect(subject).not_to include(blocked_status.id)
+ expect(subject).to_not include(blocked_status.id)
end
context 'with language preferences' do
@@ -182,7 +182,7 @@ RSpec.describe PublicFeed, type: :model do
expect(subject).to include(en_status.id)
expect(subject).to include(es_status.id)
- expect(subject).not_to include(fr_status.id)
+ expect(subject).to_not include(fr_status.id)
end
it 'includes all languages when user does not have a setting' do
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 83ba415a81..0772230943 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -38,7 +38,7 @@ RSpec.describe Setting, type: :model do
let(:cache_value) { 'cache-value' }
it 'calls not RailsSettings::Base#[]' do
- expect(RailsSettings::Base).not_to receive(:[]).with(key)
+ expect(RailsSettings::Base).to_not receive(:[]).with(key)
described_class[key]
end
@@ -104,7 +104,7 @@ RSpec.describe Setting, type: :model do
ActiveSupport::Notifications.subscribed callback, 'sql.active_record' do
described_class[key]
end
- expect(callback).not_to have_received(:call)
+ expect(callback).to_not have_received(:call)
end
it 'returns the cached value' do
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index 102d2f6251..7043449c5e 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -4,15 +4,15 @@ require 'rails_helper'
RSpec.describe Tag do
describe 'validations' do
it 'invalid with #' do
- expect(described_class.new(name: '#hello_world')).not_to be_valid
+ expect(described_class.new(name: '#hello_world')).to_not be_valid
end
it 'invalid with .' do
- expect(described_class.new(name: '.abcdef123')).not_to be_valid
+ expect(described_class.new(name: '.abcdef123')).to_not be_valid
end
it 'invalid with spaces' do
- expect(described_class.new(name: 'hello world')).not_to be_valid
+ expect(described_class.new(name: 'hello world')).to_not be_valid
end
it 'valid with aesthetic' do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index dde1503c0d..c2f7e99ac6 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -159,7 +159,7 @@ RSpec.describe User, type: :model do
it 'does not trigger the account.approved Web Hook' do
subject
- expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id)
+ expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id)
end
end
@@ -270,7 +270,7 @@ RSpec.describe User, type: :model do
it 'does not trigger the account.approved Web Hook' do
subject
- expect(TriggerWebhookWorker).not_to have_received(:perform_async).with('account.approved', 'Account', user.account_id)
+ expect(TriggerWebhookWorker).to_not have_received(:perform_async).with('account.approved', 'Account', user.account_id)
end
end
end
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index d3b5baad62..45e19d1ef7 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -63,7 +63,7 @@ describe AccountSearchService, type: :service do
allow(ResolveAccountService).to receive(:new).and_return(service)
results = subject.call('newuser@remote.com', nil, limit: 10, resolve: false)
- expect(service).not_to have_received(:call)
+ expect(service).to_not have_received(:call)
end
end
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index fbfa6d6c6b..d35d9596df 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -39,7 +39,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
end
it 'does not process payload' do
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, actor)
end
end
@@ -69,7 +69,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
it 'does not process payload if no signature exists' do
expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, forwarder)
end
@@ -87,7 +87,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
payload['signature'] = { 'type' => 'RsaSignature2017' }
expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
- expect(ActivityPub::Activity).not_to receive(:factory)
+ expect(ActivityPub::Activity).to_not receive(:factory)
subject.call(json, forwarder)
end
@@ -206,7 +206,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
end
it 'does not process forged payload' do
- expect(ActivityPub::Activity).not_to receive(:factory).with(
+ expect(ActivityPub::Activity).to_not receive(:factory).with(
hash_including(
'object' => hash_including(
'id' => 'https://example.com/users/bob/fake-status'
@@ -216,7 +216,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
anything
)
- expect(ActivityPub::Activity).not_to receive(:factory).with(
+ expect(ActivityPub::Activity).to_not receive(:factory).with(
hash_including(
'object' => hash_including(
'content' => '
puck was here
'
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 5d15f6ffeb..ae7db88bf1 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -214,11 +214,11 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
end
it 'does not create any edits' do
- expect { subject.call(status, json) }.not_to change { status.reload.edits.pluck(&:id) }
+ expect { subject.call(status, json) }.to_not change { status.reload.edits.pluck(&:id) }
end
it 'does not update the text, spoiler_text or edited_at' do
- expect { subject.call(status, json) }.not_to change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] }
+ expect { subject.call(status, json) }.to_not change { s = status.reload; [s.text, s.spoiler_text, s.edited_at] }
end
end
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index 242b02fff7..e24e48d415 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -67,9 +67,9 @@ RSpec.describe BlockDomainService, type: :service do
end
it 'leaves the domains status and attachments, but clears media' do
- expect { bad_status1.reload }.not_to raise_error
- expect { bad_status2.reload }.not_to raise_error
- expect { bad_attachment.reload }.not_to raise_error
+ expect { bad_status1.reload }.to_not raise_error
+ expect { bad_status2.reload }.to_not raise_error
+ expect { bad_attachment.reload }.to_not raise_error
expect(bad_attachment.file.exists?).to be false
end
end
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index 45b92e2c94..e90faf84d9 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -14,9 +14,9 @@ RSpec.describe ClearDomainMediaService, type: :service do
end
it 'leaves the domains status and attachments, but clears media' do
- expect { bad_status1.reload }.not_to raise_error
- expect { bad_status2.reload }.not_to raise_error
- expect { bad_attachment.reload }.not_to raise_error
+ expect { bad_status1.reload }.to_not raise_error
+ expect { bad_status2.reload }.to_not raise_error
+ expect { bad_attachment.reload }.to_not raise_error
expect(bad_attachment.file.exists?).to be false
end
end
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index a12148833d..2b1516ff08 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -234,7 +234,7 @@ RSpec.describe ImportService, type: :service do
subject.call(import)
expect(account.bookmarks.map(&:status).map(&:id)).to include(local_status.id)
expect(account.bookmarks.map(&:status).map(&:id)).to include(remote_status.id)
- expect(account.bookmarks.map(&:status).map(&:id)).not_to include(direct_status.id)
+ expect(account.bookmarks.map(&:status).map(&:id)).to_not include(direct_status.id)
expect(account.bookmarks.count).to eq 3
end
end
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 0b72253a5a..2148f18197 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe PostStatusService, type: :service do
end
it 'does not change statuses count' do
- expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.not_to change { [account.statuses_count, previous_status.replies_count] }
+ expect { subject.call(account, text: 'Hi future!', scheduled_at: future, thread: previous_status) }.to_not change { [account.statuses_count, previous_status.replies_count] }
end
end
@@ -157,7 +157,7 @@ RSpec.describe PostStatusService, type: :service do
expect do
subject.call(account, text: '@alice @alice @alice hey @alice')
- end.not_to raise_error
+ end.to_not raise_error
end
it 'processes hashtags' do
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 6f32007e83..7ec334a56c 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -13,8 +13,8 @@ describe SearchService, type: :service do
results = subject.call('', nil, 10)
expect(results).to eq(empty_results)
- expect(AccountSearchService).not_to have_received(:new)
- expect(Tag).not_to have_received(:search_for)
+ expect(AccountSearchService).to_not have_received(:new)
+ expect(Tag).to_not have_received(:search_for)
end
end
@@ -89,7 +89,7 @@ describe SearchService, type: :service do
allow(Tag).to receive(:search_for)
results = subject.call(query, nil, 10)
- expect(Tag).not_to have_received(:search_for)
+ expect(Tag).to_not have_received(:search_for)
expect(results).to eq empty_results
end
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index f9ee3b932a..cb807fe24c 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
let(:blocked_email) { false }
it 'does not add errors' do
- expect(subject).not_to have_received(:add).with(:email, :blocked)
+ expect(subject).to_not have_received(:add).with(:email, :blocked)
end
context 'when canonical e-mail is blocked' do
diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb
index 9deec0bb90..2c4ebc4f25 100644
--- a/spec/validators/disallowed_hashtags_validator_spec.rb
+++ b/spec/validators/disallowed_hashtags_validator_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
let(:reblog) { true }
it 'does not add errors' do
- expect(errors).not_to have_received(:add).with(:text, any_args)
+ expect(errors).to_not have_received(:add).with(:text, any_args)
end
end
@@ -31,7 +31,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
let(:disallowed_tags) { [] }
it 'does not add errors' do
- expect(errors).not_to have_received(:add).with(:text, any_args)
+ expect(errors).to_not have_received(:add).with(:text, any_args)
end
end
diff --git a/spec/validators/email_mx_validator_spec.rb b/spec/validators/email_mx_validator_spec.rb
index 6640d6058e..ffb6851d09 100644
--- a/spec/validators/email_mx_validator_spec.rb
+++ b/spec/validators/email_mx_validator_spec.rb
@@ -38,7 +38,7 @@ describe EmailMxValidator do
allow(Resolv::DNS).to receive(:open).and_yield(resolver)
subject.validate(user)
- expect(user.errors).not_to have_received(:add)
+ expect(user.errors).to_not have_received(:add)
end
it 'adds an error if the email domain name contains empty labels' do
diff --git a/spec/validators/follow_limit_validator_spec.rb b/spec/validators/follow_limit_validator_spec.rb
index cc8fbb6313..94ba0c47f8 100644
--- a/spec/validators/follow_limit_validator_spec.rb
+++ b/spec/validators/follow_limit_validator_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe FollowLimitValidator, type: :validator do
let(:_nil) { true }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:base, any_args)
+ expect(errors).to_not have_received(:add).with(:base, any_args)
end
end
@@ -43,7 +43,7 @@ RSpec.describe FollowLimitValidator, type: :validator do
let(:limit_reached) { false }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:base, any_args)
+ expect(errors).to_not have_received(:add).with(:base, any_args)
end
end
end
diff --git a/spec/validators/poll_validator_spec.rb b/spec/validators/poll_validator_spec.rb
index a76c63ccc2..f3f4b12881 100644
--- a/spec/validators/poll_validator_spec.rb
+++ b/spec/validators/poll_validator_spec.rb
@@ -15,14 +15,14 @@ RSpec.describe PollValidator, type: :validator do
let(:expires_at) { 1.day.from_now }
it 'have no errors' do
- expect(errors).not_to have_received(:add)
+ expect(errors).to_not have_received(:add)
end
context 'expires just 5 min ago' do
let(:expires_at) { 5.minutes.from_now }
it 'not calls errors add' do
- expect(errors).not_to have_received(:add)
+ expect(errors).to_not have_received(:add)
end
end
end
diff --git a/spec/validators/status_length_validator_spec.rb b/spec/validators/status_length_validator_spec.rb
index db9c728a8b..e132b5618a 100644
--- a/spec/validators/status_length_validator_spec.rb
+++ b/spec/validators/status_length_validator_spec.rb
@@ -7,13 +7,13 @@ describe StatusLengthValidator do
it 'does not add errors onto remote statuses' do
status = double(local?: false)
subject.validate(status)
- expect(status).not_to receive(:errors)
+ expect(status).to_not receive(:errors)
end
it 'does not add errors onto local reblogs' do
status = double(local?: false, reblog?: true)
subject.validate(status)
- expect(status).not_to receive(:errors)
+ expect(status).to_not receive(:errors)
end
it 'adds an error when content warning is over 500 characters' do
diff --git a/spec/validators/unreserved_username_validator_spec.rb b/spec/validators/unreserved_username_validator_spec.rb
index e2f051b086..3c6f71c590 100644
--- a/spec/validators/unreserved_username_validator_spec.rb
+++ b/spec/validators/unreserved_username_validator_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
let(:username) { nil }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:username, any_args)
+ expect(errors).to_not have_received(:add).with(:username, any_args)
end
end
@@ -36,7 +36,7 @@ RSpec.describe UnreservedUsernameValidator, type: :validator do
let(:reserved_username) { false }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(:username, any_args)
+ expect(errors).to_not have_received(:add).with(:username, any_args)
end
end
end
diff --git a/spec/validators/url_validator_spec.rb b/spec/validators/url_validator_spec.rb
index 85eadeb63a..966261b505 100644
--- a/spec/validators/url_validator_spec.rb
+++ b/spec/validators/url_validator_spec.rb
@@ -27,7 +27,7 @@ RSpec.describe URLValidator, type: :validator do
let(:compliant) { true }
it 'not calls errors.add' do
- expect(errors).not_to have_received(:add).with(attribute, any_args)
+ expect(errors).to_not have_received(:add).with(attribute, any_args)
end
end
end
diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb
index fb34970fc3..1a723d63a1 100644
--- a/spec/workers/feed_insert_worker_spec.rb
+++ b/spec/workers/feed_insert_worker_spec.rb
@@ -16,7 +16,7 @@ describe FeedInsertWorker do
result = subject.perform(nil, follower.id)
expect(result).to eq true
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
it 'skips push with missing account' do
@@ -25,7 +25,7 @@ describe FeedInsertWorker do
result = subject.perform(status.id, nil)
expect(result).to eq true
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
end
@@ -36,7 +36,7 @@ describe FeedInsertWorker do
result = subject.perform(status.id, follower.id)
expect(result).to be_nil
- expect(instance).not_to have_received(:push_to_home)
+ expect(instance).to_not have_received(:push_to_home)
end
it 'pushes the status onto the home timeline without filter' do
From dbc6d7b276aa1ccc085f76caa43cc091311af6b7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:45:50 -0500
Subject: [PATCH 0081/1254] Autofix Rubocop Lint/UnusedBlockArgument (#23712)
---
.rubocop_todo.yml | 8 --------
spec/lib/activitypub/activity/add_spec.rb | 4 ++--
spec/lib/request_pool_spec.rb | 2 +-
3 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 9076891e2b..e33d1d7451 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -278,14 +278,6 @@ Lint/OrAssignmentToConstant:
Exclude:
- 'lib/sanitize_ext/sanitize_config.rb'
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
-Lint/UnusedBlockArgument:
- Exclude:
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/request_pool_spec.rb'
-
# Offense count: 33
Lint/UselessAssignment:
Exclude:
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index 0b08e2924a..e21c871e67 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -48,7 +48,7 @@ RSpec.describe ActivityPub::Activity::Add do
end
it 'fetches the status and pins it' do
- allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil|
+ allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
expect(id).to eq true
expect(on_behalf_of&.following?(sender)).to eq true
@@ -62,7 +62,7 @@ RSpec.describe ActivityPub::Activity::Add do
context 'when there is no local follower' do
it 'tries to fetch the status' do
- allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil|
+ allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
expect(id).to eq true
expect(on_behalf_of).to eq nil
diff --git a/spec/lib/request_pool_spec.rb b/spec/lib/request_pool_spec.rb
index 4a144d7c7f..63dc9c5dd2 100644
--- a/spec/lib/request_pool_spec.rb
+++ b/spec/lib/request_pool_spec.rb
@@ -33,7 +33,7 @@ describe RequestPool do
subject
- threads = 20.times.map do |i|
+ threads = 20.times.map do |_i|
Thread.new do
20.times do
subject.with('http://example.com') do |http_client|
From bd1d57c2303b7a5df1af749d8851c9364a044e77 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 20:46:00 -0500
Subject: [PATCH 0082/1254] Autofix Rubocop RSpec/EmptyLineAfterSubject
(#23719)
---
.rubocop_todo.yml | 21 -------------------
.../collections_controller_spec.rb | 1 +
...lowers_synchronizations_controller_spec.rb | 1 +
.../activitypub/outboxes_controller_spec.rb | 1 +
.../activitypub/replies_controller_spec.rb | 1 +
.../admin/reports/actions_controller_spec.rb | 2 ++
.../api/web/embeds_controller_spec.rb | 1 +
spec/controllers/emojis_controller_spec.rb | 1 +
.../follower_accounts_controller_spec.rb | 1 +
.../following_accounts_controller_spec.rb | 1 +
.../relationships_controller_spec.rb | 1 +
spec/lib/activitypub/activity/delete_spec.rb | 2 ++
spec/lib/activitypub/activity/flag_spec.rb | 1 +
spec/models/admin/account_action_spec.rb | 1 +
spec/models/user_spec.rb | 2 ++
.../fetch_remote_status_service_spec.rb | 1 +
spec/workers/refollow_worker_spec.rb | 1 +
17 files changed, 19 insertions(+), 21 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e33d1d7451..02f84e70f9 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -817,27 +817,6 @@ RSpec/EmptyExampleGroup:
- 'spec/models/web/setting_spec.rb'
- 'spec/services/unmute_service_spec.rb'
-# Offense count: 19
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/EmptyLineAfterSubject:
- Exclude:
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/api/web/embeds_controller_spec.rb'
- - 'spec/controllers/emojis_controller_spec.rb'
- - 'spec/controllers/follower_accounts_controller_spec.rb'
- - 'spec/controllers/following_accounts_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/models/admin/account_action_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/services/fetch_remote_status_service_spec.rb'
- - 'spec/workers/refollow_worker_spec.rb'
-
# Offense count: 178
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index bf81cdb93c..19c0e0a646 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -38,6 +38,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
let(:remote_account) { nil }
subject(:response) { get :show, params: { id: 'featured', account_username: account.username } }
+
subject(:body) { body_as_json }
it 'returns http success' do
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index c19bb8cae7..893c8e14f1 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -35,6 +35,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
subject(:response) { get :show, params: { account_username: account.username } }
+
subject(:body) { body_as_json }
it 'returns http success' do
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index d8d42b7ae0..f84a902ea1 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -36,6 +36,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
let(:remote_account) { nil }
subject(:response) { get :show, params: { account_username: account.username, page: page } }
+
subject(:body) { body_as_json }
context 'with page not requested' do
diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb
index 394d4baabe..582ef863f2 100644
--- a/spec/controllers/activitypub/replies_controller_spec.rb
+++ b/spec/controllers/activitypub/replies_controller_spec.rb
@@ -181,6 +181,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do
describe 'GET #index' do
subject(:response) { get :index, params: { account_username: status.account.username, status_id: status.id, only_other_accounts: only_other_accounts } }
+
let(:only_other_accounts) { nil }
context 'with no signature' do
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index 9890ac9ce8..db3a1d311c 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -123,11 +123,13 @@ describe Admin::Reports::ActionsController do
context 'action as submit button' do
subject { post :create, params: { report_id: report.id, text: text, action => '' } }
+
it_behaves_like 'all action types'
end
context 'action as submit button' do
subject { post :create, params: { report_id: report.id, text: text, moderation_action: action } }
+
it_behaves_like 'all action types'
end
end
diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb
index 345c317ba6..b3ef73915c 100644
--- a/spec/controllers/api/web/embeds_controller_spec.rb
+++ b/spec/controllers/api/web/embeds_controller_spec.rb
@@ -11,6 +11,7 @@ describe Api::Web::EmbedsController do
describe 'POST #create' do
subject(:response) { post :create, params: { url: url } }
+
subject(:body) { JSON.parse(response.body, symbolize_names: true) }
context 'when successfully finds status' do
diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb
index fbbd11f648..9f66049642 100644
--- a/spec/controllers/emojis_controller_spec.rb
+++ b/spec/controllers/emojis_controller_spec.rb
@@ -7,6 +7,7 @@ describe EmojisController do
describe 'GET #show' do
subject(:response) { get :show, params: { id: emoji.id, format: :json } }
+
subject(:body) { JSON.parse(response.body, symbolize_names: true) }
it 'returns the right response' do
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index ab2e82e850..43fc4203cd 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -38,6 +38,7 @@ describe FollowerAccountsController do
context 'when format is json' do
subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } }
+
subject(:body) { JSON.parse(response.body) }
context 'with page' do
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index e43dbf882b..b41bf05751 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -38,6 +38,7 @@ describe FollowingAccountsController do
context 'when format is json' do
subject(:response) { get :index, params: { account_username: alice.username, page: page, format: :json } }
+
subject(:body) { JSON.parse(response.body) }
context 'with page' do
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index 2056a2ac29..cd09cf50b6 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -51,6 +51,7 @@ describe RelationshipsController do
context 'when select parameter is not provided' do
subject { patch :update }
+
include_examples 'redirects back to followers page'
end
diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb
index 9dfb8a61b4..40cd0fce95 100644
--- a/spec/lib/activitypub/activity/delete_spec.rb
+++ b/spec/lib/activitypub/activity/delete_spec.rb
@@ -30,6 +30,7 @@ RSpec.describe ActivityPub::Activity::Delete do
context 'when the status has been reblogged' do
describe '#perform' do
subject { described_class.new(json, sender) }
+
let!(:reblogger) { Fabricate(:account) }
let!(:follower) { Fabricate(:account, username: 'follower', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') }
let!(:reblog) { Fabricate(:status, account: reblogger, reblog: status) }
@@ -53,6 +54,7 @@ RSpec.describe ActivityPub::Activity::Delete do
context 'when the status has been reported' do
describe '#perform' do
subject { described_class.new(json, sender) }
+
let!(:reporter) { Fabricate(:account) }
before do
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index 7890fd1e8c..c2a5053567 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -110,6 +110,7 @@ RSpec.describe ActivityPub::Activity::Flag do
describe '#perform with a defined uri' do
subject { described_class.new(json, sender) }
+
let(:flag_id) { 'http://example.com/reports/1' }
before do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index b6a052b769..4516df2c2c 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -5,6 +5,7 @@ RSpec.describe Admin::AccountAction, type: :model do
describe '#save!' do
subject { account_action.save! }
+
let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:target_account) { Fabricate(:account) }
let(:type) { 'disable' }
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index c2f7e99ac6..d23439f1a9 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -409,6 +409,7 @@ RSpec.describe User, type: :model do
describe '#disable!' do
subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) }
+
let(:current_sign_in_at) { Time.zone.now }
before do
@@ -497,6 +498,7 @@ RSpec.describe User, type: :model do
describe '#active_for_authentication?' do
subject { user.active_for_authentication? }
+
let(:user) { Fabricate(:user, disabled: disabled, confirmed_at: confirmed_at) }
context 'when user is disabled' do
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index 02c62f8d60..ace520b8fc 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -16,6 +16,7 @@ RSpec.describe FetchRemoteStatusService, type: :service do
context 'protocol is :activitypub' do
subject { described_class.new.call(note[:id], prefetched_body: prefetched_body) }
+
let(:prefetched_body) { Oj.dump(note) }
before do
diff --git a/spec/workers/refollow_worker_spec.rb b/spec/workers/refollow_worker_spec.rb
index d9c2293b62..1dac15385b 100644
--- a/spec/workers/refollow_worker_spec.rb
+++ b/spec/workers/refollow_worker_spec.rb
@@ -4,6 +4,7 @@ require 'rails_helper'
describe RefollowWorker do
subject { described_class.new }
+
let(:account) { Fabricate(:account, domain: 'example.org', protocol: :activitypub) }
let(:alice) { Fabricate(:account, domain: nil, username: 'alice') }
let(:bob) { Fabricate(:account, domain: nil, username: 'bob') }
From aef0051fd0723ff03175a8851497056ed07d1a83 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:16:40 -0500
Subject: [PATCH 0083/1254] Enable Rubocop HTTP status rules (#23717)
---
.rubocop.yml | 6 +
.rubocop_todo.yml | 171 ------------------
app/controllers/api/v1/accounts_controller.rb | 2 +-
.../api/v1/emails/confirmations_controller.rb | 4 +-
app/controllers/auth/sessions_controller.rb | 4 +-
.../two_factor_authentication_concern.rb | 4 +-
.../webauthn_credentials_controller.rb | 2 +-
.../admin/accounts_controller_spec.rb | 22 +--
.../controllers/admin/base_controller_spec.rb | 2 +-
.../admin/instances_controller_spec.rb | 2 +-
.../admin/roles_controller_spec.rb | 16 +-
.../admin/users/roles_controller.rb | 4 +-
.../accounts/credentials_controller_spec.rb | 6 +-
.../v1/accounts/statuses_controller_spec.rb | 10 +-
.../reactions_controller_spec.rb | 4 +-
.../api/v1/announcements_controller_spec.rb | 4 +-
.../v1/apps/credentials_controller_spec.rb | 2 +-
.../api/v1/bookmarks_controller_spec.rb | 6 +-
.../emails/confirmations_controller_spec.rb | 6 +-
.../api/v1/favourites_controller_spec.rb | 6 +-
.../api/v1/media_controller_spec.rb | 6 +-
.../api/v1/timelines/home_controller_spec.rb | 2 +-
.../api/v1/timelines/list_controller_spec.rb | 4 +-
.../api/web/embeds_controller_spec.rb | 6 +-
.../auth/registrations_controller_spec.rb | 2 +-
.../auth/sessions_controller_spec.rb | 2 +-
.../export_controller_concern_spec.rb | 2 +-
.../disputes/strikes_controller_spec.rb | 2 +-
.../settings/applications_controller_spec.rb | 2 +-
.../settings/sessions_controller_spec.rb | 2 +-
spec/controllers/shares_controller_spec.rb | 2 +-
spec/requests/catch_all_route_request_spec.rb | 4 +-
32 files changed, 77 insertions(+), 242 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index fc1969a645..512c8458fb 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -88,6 +88,9 @@ Metrics/ModuleLength:
Metrics/PerceivedComplexity:
Max: 16 # RuboCop default 8
+Rails/HttpStatus:
+ EnforcedStyle: numeric
+
Rails/Exit:
Exclude:
- 'lib/mastodon/*_cli.rb'
@@ -97,6 +100,9 @@ Rails/Exit:
RSpec/NotToNot:
EnforcedStyle: to_not
+RSpec/Rails/HttpStatus:
+ EnforcedStyle: numeric
+
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 02f84e70f9..521608de6a 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1427,148 +1427,6 @@ RSpec/PredicateMatcher:
- 'spec/models/user_spec.rb'
- 'spec/services/post_status_service_spec.rb'
-# Offense count: 3
-# This cop supports unsafe autocorrection (--autocorrect-all).
-RSpec/Rails/HaveHttpStatus:
- Exclude:
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/requests/catch_all_route_request_spec.rb'
-
-# Offense count: 432
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: numeric, symbolic
-RSpec/Rails/HttpStatus:
- Exclude:
- - 'spec/controllers/about_controller_spec.rb'
- - 'spec/controllers/accounts_controller_spec.rb'
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/action_logs_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
- - 'spec/controllers/admin/confirmations_controller_spec.rb'
- - 'spec/controllers/admin/custom_emojis_controller_spec.rb'
- - 'spec/controllers/admin/dashboard_controller_spec.rb'
- - 'spec/controllers/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/email_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
- - 'spec/controllers/admin/instances_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/admin/reports_controller_spec.rb'
- - 'spec/controllers/admin/settings/branding_controller_spec.rb'
- - 'spec/controllers/admin/statuses_controller_spec.rb'
- - 'spec/controllers/admin/tags_controller_spec.rb'
- - 'spec/controllers/api/base_controller_spec.rb'
- - 'spec/controllers/api/oembed_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/lists_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/notes_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/pins_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/relationships_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/search_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements/reactions_controller_spec.rb'
- - 'spec/controllers/api/v1/announcements_controller_spec.rb'
- - 'spec/controllers/api/v1/apps/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/conversations_controller_spec.rb'
- - 'spec/controllers/api/v1/custom_emojis_controller_spec.rb'
- - 'spec/controllers/api/v1/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/endorsements_controller_spec.rb'
- - 'spec/controllers/api/v1/filters_controller_spec.rb'
- - 'spec/controllers/api/v1/follow_requests_controller_spec.rb'
- - 'spec/controllers/api/v1/instances/activity_controller_spec.rb'
- - 'spec/controllers/api/v1/instances/peers_controller_spec.rb'
- - 'spec/controllers/api/v1/instances_controller_spec.rb'
- - 'spec/controllers/api/v1/lists/accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/lists_controller_spec.rb'
- - 'spec/controllers/api/v1/markers_controller_spec.rb'
- - 'spec/controllers/api/v1/media_controller_spec.rb'
- - 'spec/controllers/api/v1/mutes_controller_spec.rb'
- - 'spec/controllers/api/v1/notifications_controller_spec.rb'
- - 'spec/controllers/api/v1/polls/votes_controller_spec.rb'
- - 'spec/controllers/api/v1/polls_controller_spec.rb'
- - 'spec/controllers/api/v1/reports_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/favourites_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/histories_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/mutes_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/pins_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/reblogs_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses/sources_controller_spec.rb'
- - 'spec/controllers/api/v1/statuses_controller_spec.rb'
- - 'spec/controllers/api/v1/streaming_controller_spec.rb'
- - 'spec/controllers/api/v1/suggestions_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/home_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/list_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/public_controller_spec.rb'
- - 'spec/controllers/api/v1/timelines/tag_controller_spec.rb'
- - 'spec/controllers/api/v1/trends/tags_controller_spec.rb'
- - 'spec/controllers/api/v2/admin/accounts_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/statuses_controller_spec.rb'
- - 'spec/controllers/api/v2/filters_controller_spec.rb'
- - 'spec/controllers/api/v2/search_controller_spec.rb'
- - 'spec/controllers/api/web/settings_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/auth/confirmations_controller_spec.rb'
- - 'spec/controllers/auth/passwords_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/auth/sessions_controller_spec.rb'
- - 'spec/controllers/authorize_interactions_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/export_controller_concern_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
- - 'spec/controllers/emojis_controller_spec.rb'
- - 'spec/controllers/follower_accounts_controller_spec.rb'
- - 'spec/controllers/following_accounts_controller_spec.rb'
- - 'spec/controllers/instance_actors_controller_spec.rb'
- - 'spec/controllers/intents_controller_spec.rb'
- - 'spec/controllers/invites_controller_spec.rb'
- - 'spec/controllers/manifests_controller_spec.rb'
- - 'spec/controllers/media_controller_spec.rb'
- - 'spec/controllers/media_proxy_controller_spec.rb'
- - 'spec/controllers/oauth/authorizations_controller_spec.rb'
- - 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/deletes_controller_spec.rb'
- - 'spec/controllers/settings/exports_controller_spec.rb'
- - 'spec/controllers/settings/imports_controller_spec.rb'
- - 'spec/controllers/settings/migrations_controller_spec.rb'
- - 'spec/controllers/settings/preferences/notifications_controller_spec.rb'
- - 'spec/controllers/settings/preferences/other_controller_spec.rb'
- - 'spec/controllers/settings/profiles_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/otp_authentication_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/recovery_codes_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
- - 'spec/controllers/settings/two_factor_authentication_methods_controller_spec.rb'
- - 'spec/controllers/statuses_cleanup_controller_spec.rb'
- - 'spec/controllers/statuses_controller_spec.rb'
- - 'spec/controllers/tags_controller_spec.rb'
- - 'spec/controllers/well_known/host_meta_controller_spec.rb'
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
- - 'spec/controllers/well_known/webfinger_controller_spec.rb'
- - 'spec/requests/host_meta_request_spec.rb'
- - 'spec/requests/webfinger_request_spec.rb'
-
# Offense count: 180
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Inferences.
@@ -2159,35 +2017,6 @@ Rails/HttpPositionalArguments:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
-# Offense count: 49
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: numeric, symbolic
-Rails/HttpStatus:
- Exclude:
- - 'app/controllers/activitypub/inboxes_controller.rb'
- - 'app/controllers/api/base_controller.rb'
- - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/activity_controller.rb'
- - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/peers_controller.rb'
- - 'app/controllers/api/v1/lists_controller.rb'
- - 'app/controllers/api/v1/markers_controller.rb'
- - 'app/controllers/api/v1/media_controller.rb'
- - 'app/controllers/api/v1/statuses_controller.rb'
- - 'app/controllers/api/v1/streaming_controller.rb'
- - 'app/controllers/api/v2/media_controller.rb'
- - 'app/controllers/api/v2/search_controller.rb'
- - 'app/controllers/api/web/base_controller.rb'
- - 'app/controllers/settings/pictures_controller.rb'
- - 'app/controllers/well_known/webfinger_controller.rb'
- - 'spec/controllers/api/base_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/localized_spec.rb'
- - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
-
# Offense count: 7
# Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb
diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb
index be84720aa9..7dff66efac 100644
--- a/app/controllers/api/v1/accounts_controller.rb
+++ b/app/controllers/api/v1/accounts_controller.rb
@@ -30,7 +30,7 @@ class Api::V1::AccountsController < Api::BaseController
self.response_body = Oj.dump(response.body)
self.status = response.status
rescue ActiveRecord::RecordInvalid => e
- render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: :unprocessable_entity
+ render json: ValidationErrorFormatter.new(e, 'account.username': :username, 'invite_request.text': :reason).as_json, status: 422
end
def follow
diff --git a/app/controllers/api/v1/emails/confirmations_controller.rb b/app/controllers/api/v1/emails/confirmations_controller.rb
index 3faaea2fb7..32fb8e39fa 100644
--- a/app/controllers/api/v1/emails/confirmations_controller.rb
+++ b/app/controllers/api/v1/emails/confirmations_controller.rb
@@ -15,10 +15,10 @@ class Api::V1::Emails::ConfirmationsController < Api::BaseController
private
def require_user_owned_by_application!
- render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: :forbidden unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id
+ render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: 403 unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id
end
def require_user_not_confirmed!
- render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: :forbidden unless !current_user.confirmed? || current_user.unconfirmed_email.present?
+ render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: 403 unless !current_user.confirmed? || current_user.unconfirmed_email.present?
end
end
diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb
index 3ce7426384..4f59fd501b 100644
--- a/app/controllers/auth/sessions_controller.rb
+++ b/app/controllers/auth/sessions_controller.rb
@@ -52,9 +52,9 @@ class Auth::SessionsController < Devise::SessionsController
session[:webauthn_challenge] = options_for_get.challenge
- render json: options_for_get, status: :ok
+ render json: options_for_get, status: 200
else
- render json: { error: t('webauthn_credentials.not_enabled') }, status: :unauthorized
+ render json: { error: t('webauthn_credentials.not_enabled') }, status: 401
end
end
diff --git a/app/controllers/concerns/two_factor_authentication_concern.rb b/app/controllers/concerns/two_factor_authentication_concern.rb
index e69b67a795..94f3ce00f1 100644
--- a/app/controllers/concerns/two_factor_authentication_concern.rb
+++ b/app/controllers/concerns/two_factor_authentication_concern.rb
@@ -57,10 +57,10 @@ module TwoFactorAuthenticationConcern
if valid_webauthn_credential?(user, webauthn_credential)
on_authentication_success(user, :webauthn)
- render json: { redirect_path: after_sign_in_path_for(user) }, status: :ok
+ render json: { redirect_path: after_sign_in_path_for(user) }, status: 200
else
on_authentication_failure(user, :webauthn, :invalid_credential)
- render json: { error: t('webauthn_credentials.invalid_credential') }, status: :unprocessable_entity
+ render json: { error: t('webauthn_credentials.invalid_credential') }, status: 422
end
end
diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
index a50d30f06f..e43818c941 100644
--- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
+++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
@@ -27,7 +27,7 @@ module Settings
session[:webauthn_challenge] = options_for_create.challenge
- render json: options_for_create, status: :ok
+ render json: options_for_create, status: 200
end
def create
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 35d79740ac..f5d68a8adb 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'fails to memorialize account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to enable account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to be_disabled
end
end
@@ -167,7 +167,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
it 'logs action' do
- is_expected.to have_http_status :found
+ is_expected.to have_http_status 302
log_item = Admin::ActionLog.last
@@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to approve account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -207,7 +207,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
it 'logs action' do
- is_expected.to have_http_status :found
+ is_expected.to have_http_status 302
log_item = Admin::ActionLog.last
@@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to reject account' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to redownload' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
@@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
@@ -303,7 +303,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
it 'fails to remove avatar' do
subject
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/base_controller_spec.rb b/spec/controllers/admin/base_controller_spec.rb
index 44be91951b..5fbf8777c7 100644
--- a/spec/controllers/admin/base_controller_spec.rb
+++ b/spec/controllers/admin/base_controller_spec.rb
@@ -15,7 +15,7 @@ describe Admin::BaseController, type: :controller do
sign_in(Fabricate(:user))
get :success
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'renders admin layout as a moderator' do
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index 337f7a80c7..a7e348b1ca 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { nil }
it 'fails to purge instance' do
- is_expected.to have_http_status :forbidden
+ is_expected.to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index 8ff8912054..e2b1030d9a 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -18,7 +18,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -38,7 +38,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -128,7 +128,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -145,7 +145,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
@@ -165,7 +165,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'does not update the role' do
@@ -203,7 +203,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
it 'does not update the role' do
@@ -224,7 +224,7 @@ describe Admin::RolesController do
context 'when user does not have permission to manage roles' do
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -241,7 +241,7 @@ describe Admin::RolesController do
let(:role_position) { current_role.position + 1 }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb
index bd6a3fa673..9fa8aef412 100644
--- a/spec/controllers/admin/users/roles_controller.rb
+++ b/spec/controllers/admin/users/roles_controller.rb
@@ -26,7 +26,7 @@ describe Admin::Users::RolesController do
let(:previous_role) { UserRole.create(name: 'Baz', permissions: UserRole::FLAGS[:administrator], position: 100) }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
@@ -74,7 +74,7 @@ describe Admin::Users::RolesController do
end
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index a56b9d8fa7..cf91aae38f 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -78,7 +78,7 @@ describe Api::V1::Accounts::CredentialsController do
end
it 'returns http unprocessable entity' do
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
end
end
end
@@ -92,14 +92,14 @@ describe Api::V1::Accounts::CredentialsController do
describe 'GET #show' do
it 'returns http unauthorized' do
get :show
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
describe 'PATCH #update' do
it 'returns http unauthorized' do
patch :update, params: { note: 'Foo' }
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
index 01d745fc0f..4630fac90d 100644
--- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
@@ -16,7 +16,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, limit: 1 }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
it 'returns expected headers' do
@@ -29,7 +29,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, only_media: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
end
@@ -44,7 +44,7 @@ describe Api::V1::Accounts::StatusesController do
end
it 'returns http success' do
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
it 'returns posts along with self replies' do
@@ -63,7 +63,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: user.account.id, pinned: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
end
@@ -79,7 +79,7 @@ describe Api::V1::Accounts::StatusesController do
it 'returns http success' do
get :index, params: { account_id: account.id, pinned: true }
- expect(response).to have_http_status(:ok)
+ expect(response).to have_http_status(200)
end
context 'when user does not follow account' do
diff --git a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
index 72620e2421..25c52aa1d3 100644
--- a/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
+++ b/spec/controllers/api/v1/announcements/reactions_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
put :update, params: { announcement_id: announcement.id, id: '😂' }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -43,7 +43,7 @@ RSpec.describe Api::V1::Announcements::ReactionsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
delete :destroy, params: { announcement_id: announcement.id, id: '😂' }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
diff --git a/spec/controllers/api/v1/announcements_controller_spec.rb b/spec/controllers/api/v1/announcements_controller_spec.rb
index 6ee46b60eb..eaab2abd80 100644
--- a/spec/controllers/api/v1/announcements_controller_spec.rb
+++ b/spec/controllers/api/v1/announcements_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do
context 'without token' do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
@@ -35,7 +35,7 @@ RSpec.describe Api::V1::AnnouncementsController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
post :dismiss, params: { id: announcement.id }
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 470093c3c6..701ba8acb4 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Apps::CredentialsController do
describe 'GET #show' do
it 'returns http unauthorized' do
get :show
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index d7c5847b0c..279d1a4359 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
get :index
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -24,7 +24,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'returns http forbidden' do
get :index
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
@@ -38,7 +38,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
index 15ac31cbc5..d272ff38d2 100644
--- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
+++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
context 'from a random app' do
it 'returns http forbidden' do
post :create
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
@@ -30,7 +30,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
it 'returns http forbidden' do
post :create
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
context 'but user changed e-mail and has not confirmed it' do
@@ -57,7 +57,7 @@ RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
context 'without an oauth token' do
it 'returns http unauthorized' do
post :create
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index 231f765008..512dd0c0d7 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
context 'without token' do
it 'returns http unauthorized' do
get :index
- expect(response).to have_http_status :unauthorized
+ expect(response).to have_http_status 401
end
end
@@ -24,7 +24,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'returns http forbidden' do
get :index
- expect(response).to have_http_status :forbidden
+ expect(response).to have_http_status 403
end
end
@@ -38,7 +38,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'returns http unprocessable entity' do
get :index
- expect(response).to have_http_status :unprocessable_entity
+ expect(response).to have_http_status 422
end
end
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index a1f6ddb244..ef1e439f9d 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -19,7 +19,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
end
it 'returns http 422' do
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
end
end
@@ -106,7 +106,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
it 'returns http not found' do
put :update, params: { id: media.id, description: 'Lorem ipsum!!!' }
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
@@ -126,7 +126,7 @@ RSpec.describe Api::V1::MediaController, type: :controller do
let(:status) { Fabricate(:status, account: user.account) }
it 'returns http not found' do
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
end
diff --git a/spec/controllers/api/v1/timelines/home_controller_spec.rb b/spec/controllers/api/v1/timelines/home_controller_spec.rb
index 131c2d92fa..bb46d0aba4 100644
--- a/spec/controllers/api/v1/timelines/home_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/home_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Timelines::HomeController do
it 'returns http unprocessable entity' do
get :show
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
expect(response.headers['Link']).to be_nil
end
end
diff --git a/spec/controllers/api/v1/timelines/list_controller_spec.rb b/spec/controllers/api/v1/timelines/list_controller_spec.rb
index 526c66a058..4ef5d41af8 100644
--- a/spec/controllers/api/v1/timelines/list_controller_spec.rb
+++ b/spec/controllers/api/v1/timelines/list_controller_spec.rb
@@ -36,7 +36,7 @@ describe Api::V1::Timelines::ListController do
describe 'GET #show' do
it 'returns http not found' do
get :show, params: { id: list.id }
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
end
end
@@ -48,7 +48,7 @@ describe Api::V1::Timelines::ListController do
it 'returns http unprocessable entity' do
get :show, params: { id: list.id }
- expect(response).to have_http_status(:unprocessable_entity)
+ expect(response).to have_http_status(422)
expect(response.headers['Link']).to be_nil
end
end
diff --git a/spec/controllers/api/web/embeds_controller_spec.rb b/spec/controllers/api/web/embeds_controller_spec.rb
index b3ef73915c..e03f5a3714 100644
--- a/spec/controllers/api/web/embeds_controller_spec.rb
+++ b/spec/controllers/api/web/embeds_controller_spec.rb
@@ -19,7 +19,7 @@ describe Api::Web::EmbedsController do
let(:url) { "http://#{Rails.configuration.x.web_domain}/@#{status.account.username}/#{status.id}" }
it 'returns a right response' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body[:author_name]).to eq status.account.username
end
end
@@ -37,7 +37,7 @@ describe Api::Web::EmbedsController do
let(:call_result) { { result: :ok } }
it 'returns a right response' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body[:result]).to eq 'ok'
end
end
@@ -46,7 +46,7 @@ describe Api::Web::EmbedsController do
let(:call_result) { nil }
it 'returns a right response' do
- expect(response).to have_http_status :not_found
+ expect(response).to have_http_status 404
end
end
end
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 7298bde003..52023eb2ef 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -245,7 +245,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
it 'returns http not found' do
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_http_status(404)
end
it 'does not delete user' do
diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb
index eb03dff500..58befa124c 100644
--- a/spec/controllers/auth/sessions_controller_spec.rb
+++ b/spec/controllers/auth/sessions_controller_spec.rb
@@ -422,7 +422,7 @@ RSpec.describe Auth::SessionsController, type: :controller do
it 'returns http success' do
get :webauthn_options
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
end
end
end
diff --git a/spec/controllers/concerns/export_controller_concern_spec.rb b/spec/controllers/concerns/export_controller_concern_spec.rb
index 1a5e46f8ef..003fd17f6f 100644
--- a/spec/controllers/concerns/export_controller_concern_spec.rb
+++ b/spec/controllers/concerns/export_controller_concern_spec.rb
@@ -29,7 +29,7 @@ describe ApplicationController, type: :controller do
it 'returns unauthorized when not signed in' do
get :index, format: :csv
- expect(response).to have_http_status(:unauthorized)
+ expect(response).to have_http_status(401)
end
end
end
diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb
index 157f9ec3c7..e060d37ac4 100644
--- a/spec/controllers/disputes/strikes_controller_spec.rb
+++ b/spec/controllers/disputes/strikes_controller_spec.rb
@@ -23,7 +23,7 @@ RSpec.describe Disputes::StrikesController, type: :controller do
let(:strike) { Fabricate(:account_warning) }
it 'returns http forbidden' do
- expect(response).to have_http_status(:forbidden)
+ expect(response).to have_http_status(403)
end
end
end
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index 35ad4b2e7a..33d874d107 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -32,7 +32,7 @@ describe Settings::ApplicationsController do
app.update!(owner: nil)
get :show, params: { id: app.id }
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
end
end
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index 0e312c5a68..59c18889ec 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -24,7 +24,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id + 1000 }
it 'destroys session activation' do
- is_expected.to have_http_status :not_found
+ is_expected.to have_http_status 404
end
end
end
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
index e365b356e1..0fde8c6927 100644
--- a/spec/controllers/shares_controller_spec.rb
+++ b/spec/controllers/shares_controller_spec.rb
@@ -13,7 +13,7 @@ describe SharesController do
before { get :show, params: { title: 'test title', text: 'test text', url: 'url1 url2' } }
it 'returns http success' do
- expect(response).to have_http_status :ok
+ expect(response).to have_http_status 200
expect(body_classes).to eq 'modal-layout compose-standalone'
end
end
diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb
index fb18965d85..dcfc1bf4bc 100644
--- a/spec/requests/catch_all_route_request_spec.rb
+++ b/spec/requests/catch_all_route_request_spec.rb
@@ -5,7 +5,7 @@ describe 'The catch all route' do
it 'returns a 404 page as html' do
get '/test'
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
expect(response.media_type).to eq 'text/html'
end
end
@@ -14,7 +14,7 @@ describe 'The catch all route' do
it 'returns a 404 page as html' do
get '/test.test'
- expect(response.status).to eq 404
+ expect(response).to have_http_status 404
expect(response.media_type).to eq 'text/html'
end
end
From 5179c47087e7807162f1466ec61a797586de007f Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:17:41 -0500
Subject: [PATCH 0084/1254] Autofix Rubocops RSpec/ScatteredLet (#23725)
---
.rubocop_todo.yml | 13 ------
.../admin/domain_blocks_controller_spec.rb | 9 ++--
.../v1/admin/domain_blocks_controller_spec.rb | 9 ++--
.../v1/push/subscriptions_controller_spec.rb | 14 +++---
spec/lib/activitypub/activity/create_spec.rb | 46 +++++++++----------
.../vacuum/media_attachments_vacuum_spec.rb | 5 +-
.../process_status_update_service_spec.rb | 28 ++++++-----
.../services/fan_out_on_write_service_spec.rb | 3 +-
spec/services/import_service_spec.rb | 12 ++---
9 files changed, 56 insertions(+), 83 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 521608de6a..308e0e69e2 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1629,19 +1629,6 @@ RSpec/RepeatedExampleGroupDescription:
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
-# Offense count: 18
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/ScatteredLet:
- Exclude:
- - 'spec/controllers/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/push/subscriptions_controller_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/import_service_spec.rb'
-
# Offense count: 12
RSpec/ScatteredSetup:
Exclude:
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index 92fc19efac..d58a0cafcd 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -72,16 +72,15 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
describe 'PUT #update' do
let!(:remote_account) { Fabricate(:account, domain: 'example.com') }
- let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
+ let(:subject) do
+ post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } }
+ end
+ let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
before do
BlockDomainService.new.call(domain_block)
end
- let(:subject) do
- post :update, params: { id: domain_block.id, domain_block: { domain: 'example.com', severity: new_severity } }
- end
-
context 'downgrading a domain suspension to silence' do
let(:original_severity) { 'suspend' }
let(:new_severity) { 'silence' }
diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
index 606def602f..b367ab9ce3 100644
--- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
@@ -73,16 +73,15 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
describe 'PUT #update' do
let!(:remote_account) { Fabricate(:account, domain: 'example.com') }
- let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
+ let(:subject) do
+ post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity }
+ end
+ let(:domain_block) { Fabricate(:domain_block, domain: 'example.com', severity: original_severity) }
before do
BlockDomainService.new.call(domain_block)
end
- let(:subject) do
- post :update, params: { id: domain_block.id, domain: 'example.com', severity: new_severity }
- end
-
context 'downgrading a domain suspension to silence' do
let(:original_severity) { 'suspend' }
let(:new_severity) { 'silence' }
diff --git a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
index 67f09da2dc..1681914680 100644
--- a/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
+++ b/spec/controllers/api/v1/push/subscriptions_controller_spec.rb
@@ -5,13 +5,7 @@ require 'rails_helper'
describe Api::V1::Push::SubscriptionsController do
render_views
- let(:user) { Fabricate(:user) }
- let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') }
-
- before do
- allow(controller).to receive(:doorkeeper_token) { token }
- end
-
+ let(:user) { Fabricate(:user) }
let(:create_payload) do
{
subscription: {
@@ -23,7 +17,6 @@ describe Api::V1::Push::SubscriptionsController do
},
}.with_indifferent_access
end
-
let(:alerts_payload) do
{
data: {
@@ -41,6 +34,11 @@ describe Api::V1::Push::SubscriptionsController do
},
}.with_indifferent_access
end
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'push') }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
describe 'POST #create' do
before do
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index 132e0c31cd..ddbdb07aa8 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -753,10 +753,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'with an encrypted message' do
let(:recipient) { Fabricate(:account) }
- let(:target_device) { Fabricate(:device, account: recipient) }
-
- subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -778,6 +774,9 @@ RSpec.describe ActivityPub::Activity::Create do
},
}
end
+ let(:target_device) { Fabricate(:device, account: recipient) }
+
+ subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
before do
subject.perform
@@ -833,13 +832,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender replies to local status' do
let!(:local_status) { Fabricate(:status) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -849,6 +841,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
@@ -859,13 +857,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender targets a local user' do
let!(:local_account) { Fabricate(:account) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -875,6 +866,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
@@ -885,13 +882,6 @@ RSpec.describe ActivityPub::Activity::Create do
context 'when sender cc\'s a local user' do
let!(:local_account) { Fabricate(:account) }
-
- subject { described_class.new(json, sender, delivery: true) }
-
- before do
- subject.perform
- end
-
let(:object_json) do
{
id: [ActivityPub::TagManager.instance.uri_for(sender), '#bar'].join,
@@ -901,6 +891,12 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
+ subject { described_class.new(json, sender, delivery: true) }
+
+ before do
+ subject.perform
+ end
+
it 'creates status' do
status = sender.statuses.first
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index be8458d9bf..436237b25f 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -2,12 +2,11 @@ require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
let(:retention_period) { 7.days }
-
- subject { described_class.new(retention_period) }
-
let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) }
let(:local_status) { Fabricate(:status) }
+ subject { described_class.new(retention_period) }
+
describe '#perform' do
let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index ae7db88bf1..9a6d75ec04 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -6,20 +6,6 @@ end
RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) }
-
- let(:alice) { Fabricate(:account) }
- let(:bob) { Fabricate(:account) }
-
- let(:mentions) { [] }
- let(:tags) { [] }
- let(:media_attachments) { [] }
-
- before do
- mentions.each { |a| Fabricate(:mention, status: status, account: a) }
- tags.each { |t| status.tags << t }
- media_attachments.each { |m| status.media_attachments << m }
- end
-
let(:payload) do
{
'@context': 'https://www.w3.org/ns/activitystreams',
@@ -34,9 +20,21 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
],
}
end
-
let(:json) { Oj.load(Oj.dump(payload)) }
+ let(:alice) { Fabricate(:account) }
+ let(:bob) { Fabricate(:account) }
+
+ let(:mentions) { [] }
+ let(:tags) { [] }
+ let(:media_attachments) { [] }
+
+ before do
+ mentions.each { |a| Fabricate(:mention, status: status, account: a) }
+ tags.each { |t| status.tags << t }
+ media_attachments.each { |m| status.media_attachments << m }
+ end
+
subject { described_class.new }
describe '#call' do
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index 59e15d2301..3c294cf95b 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -2,6 +2,7 @@ require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
let(:last_active_at) { Time.now.utc }
+ let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
let!(:alice) { Fabricate(:user, current_sign_in_at: last_active_at).account }
let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account }
@@ -9,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do
subject { described_class.new }
- let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
-
before do
bob.follow!(alice)
tom.follow!(alice)
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 2b1516ff08..4a517fb933 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -183,15 +183,14 @@ RSpec.describe ImportService, type: :service do
subject { ImportService.new }
let!(:nare) { Fabricate(:account, username: 'nare', domain: 'թութ.հայ', locked: false, protocol: :activitypub, inbox_url: 'https://թութ.հայ/inbox') }
+ let(:csv) { attachment_fixture('utf8-followers.txt') }
+ let(:import) { Import.create(account: account, type: 'following', data: csv) }
# Make sure to not actually go to the remote server
before do
stub_request(:post, 'https://թութ.հայ/inbox').to_return(status: 200)
end
- let(:csv) { attachment_fixture('utf8-followers.txt') }
- let(:import) { Import.create(account: account, type: 'following', data: csv) }
-
it 'follows the listed account' do
expect(account.follow_requests.count).to eq 0
subject.call(import)
@@ -203,6 +202,9 @@ RSpec.describe ImportService, type: :service do
subject { ImportService.new }
let(:csv) { attachment_fixture('bookmark-imports.txt') }
+ let(:local_account) { Fabricate(:account, username: 'foo', domain: '') }
+ let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') }
+ let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) }
around(:each) do |example|
local_before = Rails.configuration.x.local_domain
@@ -214,10 +216,6 @@ RSpec.describe ImportService, type: :service do
Rails.configuration.x.local_domain = local_before
end
- let(:local_account) { Fabricate(:account, username: 'foo', domain: '') }
- let!(:remote_status) { Fabricate(:status, uri: 'https://example.com/statuses/1312') }
- let!(:direct_status) { Fabricate(:status, uri: 'https://example.com/statuses/direct', visibility: :direct) }
-
before do
service = double
allow(ActivityPub::FetchRemoteStatusService).to receive(:new).and_return(service)
From f0e1b12c101e0dd0ddaaef8bdcc166624dba62d5 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 21:18:08 -0500
Subject: [PATCH 0085/1254] Autofix Rubocop Style/ExplicitBlockArgument
(#23704)
---
.rubocop_todo.yml | 6 ------
app/mailers/application_mailer.rb | 6 ++----
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 308e0e69e2..c452d1bd2c 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2323,12 +2323,6 @@ Style/ConcatArrayLiterals:
Style/Documentation:
Enabled: false
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-Style/ExplicitBlockArgument:
- Exclude:
- - 'app/mailers/application_mailer.rb'
-
# Offense count: 10
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
diff --git a/app/mailers/application_mailer.rb b/app/mailers/application_mailer.rb
index a37682eca6..73b623576c 100644
--- a/app/mailers/application_mailer.rb
+++ b/app/mailers/application_mailer.rb
@@ -9,9 +9,7 @@ class ApplicationMailer < ActionMailer::Base
protected
- def locale_for_account(account)
- I18n.with_locale(account.user_locale || I18n.default_locale) do
- yield
- end
+ def locale_for_account(account, &block)
+ I18n.with_locale(account.user_locale || I18n.default_locale, &block)
end
end
From 44a7d87cb1f5df953b6c14c16c59e2e4ead1bcb9 Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Mon, 20 Feb 2023 03:20:59 +0100
Subject: [PATCH 0086/1254] Rename JSX files with proper `.jsx` extension
(#23733)
---
.eslintrc.js | 5 ++++-
.github/workflows/lint-js.yml | 2 ++
.github/workflows/test-js.yml | 2 ++
...st_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} | 0
.../{avatar-test.js.snap => avatar-test.jsx.snap} | 0
...tar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} | 0
.../{button-test.js.snap => button-test.jsx.snap} | 0
...{display_name-test.js.snap => display_name-test.jsx.snap} | 0
...{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} | 0
.../components/__tests__/{avatar-test.js => avatar-test.jsx} | 0
.../{avatar_overlay-test.js => avatar_overlay-test.jsx} | 0
.../components/__tests__/{button-test.js => button-test.jsx} | 0
.../{display_name-test.js => display_name-test.jsx} | 0
.../mastodon/components/{account.js => account.jsx} | 0
.../mastodon/components/admin/{Counter.js => Counter.jsx} | 0
.../components/admin/{Dimension.js => Dimension.jsx} | 0
.../{ReportReasonSelector.js => ReportReasonSelector.jsx} | 0
.../components/admin/{Retention.js => Retention.jsx} | 0
.../mastodon/components/admin/{Trends.js => Trends.jsx} | 0
.../components/{animated_number.js => animated_number.jsx} | 0
.../components/{attachment_list.js => attachment_list.jsx} | 0
.../{autosuggest_emoji.js => autosuggest_emoji.jsx} | 0
.../{autosuggest_hashtag.js => autosuggest_hashtag.jsx} | 0
.../{autosuggest_input.js => autosuggest_input.jsx} | 0
.../{autosuggest_textarea.js => autosuggest_textarea.jsx} | 0
app/javascript/mastodon/components/{avatar.js => avatar.jsx} | 0
.../components/{avatar_composite.js => avatar_composite.jsx} | 0
.../components/{avatar_overlay.js => avatar_overlay.jsx} | 0
.../mastodon/components/{blurhash.js => blurhash.jsx} | 0
app/javascript/mastodon/components/{button.js => button.jsx} | 0
app/javascript/mastodon/components/{check.js => check.jsx} | 0
app/javascript/mastodon/components/{column.js => column.jsx} | 0
.../{column_back_button.js => column_back_button.jsx} | 0
...olumn_back_button_slim.js => column_back_button_slim.jsx} | 0
.../components/{column_header.js => column_header.jsx} | 0
.../components/{common_counter.js => common_counter.jsx} | 0
.../{dismissable_banner.js => dismissable_banner.jsx} | 0
.../components/{display_name.js => display_name.jsx} | 0
app/javascript/mastodon/components/{domain.js => domain.jsx} | 0
.../components/{dropdown_menu.js => dropdown_menu.jsx} | 0
.../components/edited_timestamp/{index.js => index.jsx} | 0
.../components/{error_boundary.js => error_boundary.jsx} | 0
app/javascript/mastodon/components/{gifv.js => gifv.jsx} | 0
.../mastodon/components/{hashtag.js => hashtag.jsx} | 0
app/javascript/mastodon/components/{icon.js => icon.jsx} | 0
.../mastodon/components/{icon_button.js => icon_button.jsx} | 0
.../components/{icon_with_badge.js => icon_with_badge.jsx} | 0
app/javascript/mastodon/components/{image.js => image.jsx} | 0
.../components/{inline_account.js => inline_account.jsx} | 0
...observer_article.js => intersection_observer_article.jsx} | 0
.../mastodon/components/{load_gap.js => load_gap.jsx} | 0
.../mastodon/components/{load_more.js => load_more.jsx} | 0
.../components/{load_pending.js => load_pending.jsx} | 0
.../{loading_indicator.js => loading_indicator.jsx} | 0
app/javascript/mastodon/components/{logo.js => logo.jsx} | 0
.../{media_attachments.js => media_attachments.jsx} | 0
.../components/{media_gallery.js => media_gallery.jsx} | 0
.../{missing_indicator.js => missing_indicator.jsx} | 0
.../mastodon/components/{modal_root.js => modal_root.jsx} | 0
.../{navigation_portal.js => navigation_portal.jsx} | 0
...ot_signed_in_indicator.js => not_signed_in_indicator.jsx} | 0
...ure_placeholder.js => picture_in_picture_placeholder.jsx} | 0
app/javascript/mastodon/components/{poll.js => poll.jsx} | 0
.../components/{radio_button.js => radio_button.jsx} | 0
...{regeneration_indicator.js => regeneration_indicator.jsx} | 0
.../{relative_timestamp.js => relative_timestamp.jsx} | 0
.../components/{scrollable_list.js => scrollable_list.jsx} | 0
.../components/{server_banner.js => server_banner.jsx} | 0
.../components/{short_number.js => short_number.jsx} | 0
.../mastodon/components/{skeleton.js => skeleton.jsx} | 0
app/javascript/mastodon/components/{status.js => status.jsx} | 0
.../{status_action_bar.js => status_action_bar.jsx} | 0
.../components/{status_content.js => status_content.jsx} | 0
.../mastodon/components/{status_list.js => status_list.jsx} | 0
.../components/{timeline_hint.js => timeline_hint.jsx} | 0
.../{account_container.js => account_container.jsx} | 0
.../containers/{admin_component.js => admin_component.jsx} | 0
.../{compose_container.js => compose_container.jsx} | 0
.../containers/{domain_container.js => domain_container.jsx} | 0
.../mastodon/containers/{mastodon.js => mastodon.jsx} | 0
.../containers/{media_container.js => media_container.jsx} | 0
.../containers/{status_container.js => status_container.jsx} | 0
.../mastodon/features/about/{index.js => index.jsx} | 0
.../account/components/{account_note.js => account_note.jsx} | 0
.../components/{featured_tags.js => featured_tags.jsx} | 0
.../{follow_request_note.js => follow_request_note.jsx} | 0
.../features/account/components/{header.js => header.jsx} | 0
.../features/account/{navigation.js => navigation.jsx} | 0
.../components/{media_item.js => media_item.jsx} | 0
.../features/account_gallery/{index.js => index.jsx} | 0
.../account_timeline/components/{header.js => header.jsx} | 0
.../{limited_account_hint.js => limited_account_hint.jsx} | 0
.../components/{moved_note.js => moved_note.jsx} | 0
.../containers/{header_container.js => header_container.jsx} | 0
.../features/account_timeline/{index.js => index.jsx} | 0
.../mastodon/features/audio/{index.js => index.jsx} | 0
.../mastodon/features/blocks/{index.js => index.jsx} | 0
.../features/bookmarked_statuses/{index.js => index.jsx} | 0
.../closed_registrations_modal/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/community_timeline/{index.js => index.jsx} | 0
.../compose/components/{action_bar.js => action_bar.jsx} | 0
.../{autosuggest_account.js => autosuggest_account.jsx} | 0
.../{character_counter.js => character_counter.jsx} | 0
.../compose/components/{compose_form.js => compose_form.jsx} | 0
.../{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} | 0
.../{language_dropdown.js => language_dropdown.jsx} | 0
.../components/{navigation_bar.js => navigation_bar.jsx} | 0
.../compose/components/{poll_button.js => poll_button.jsx} | 0
.../compose/components/{poll_form.js => poll_form.jsx} | 0
.../components/{privacy_dropdown.js => privacy_dropdown.jsx} | 0
.../components/{reply_indicator.js => reply_indicator.jsx} | 0
.../features/compose/components/{search.js => search.jsx} | 0
.../components/{search_results.js => search_results.jsx} | 0
.../components/{text_icon_button.js => text_icon_button.jsx} | 0
.../features/compose/components/{upload.js => upload.jsx} | 0
.../components/{upload_button.js => upload_button.jsx} | 0
.../compose/components/{upload_form.js => upload_form.jsx} | 0
.../components/{upload_progress.js => upload_progress.jsx} | 0
.../features/compose/components/{warning.js => warning.jsx} | 0
...ve_button_container.js => sensitive_button_container.jsx} | 0
.../{warning_container.js => warning_container.jsx} | 0
.../mastodon/features/compose/{index.js => index.jsx} | 0
.../components/{conversation.js => conversation.jsx} | 0
.../{conversations_list.js => conversations_list.jsx} | 0
.../features/direct_timeline/{index.js => index.jsx} | 0
.../components/{account_card.js => account_card.jsx} | 0
.../mastodon/features/directory/{index.js => index.jsx} | 0
.../mastodon/features/domain_blocks/{index.js => index.jsx} | 0
.../features/explore/components/{story.js => story.jsx} | 0
.../mastodon/features/explore/{index.js => index.jsx} | 0
.../mastodon/features/explore/{links.js => links.jsx} | 0
.../mastodon/features/explore/{results.js => results.jsx} | 0
.../mastodon/features/explore/{statuses.js => statuses.jsx} | 0
.../features/explore/{suggestions.js => suggestions.jsx} | 0
.../mastodon/features/explore/{tags.js => tags.jsx} | 0
.../features/favourited_statuses/{index.js => index.jsx} | 0
.../mastodon/features/favourites/{index.js => index.jsx} | 0
.../filters/{added_to_filter.js => added_to_filter.jsx} | 0
.../features/filters/{select_filter.js => select_filter.jsx} | 0
.../components/{account.js => account.jsx} | 0
.../features/follow_recommendations/{index.js => index.jsx} | 0
.../{account_authorize.js => account_authorize.jsx} | 0
.../features/follow_requests/{index.js => index.jsx} | 0
.../mastodon/features/followed_tags/{index.js => index.jsx} | 0
.../mastodon/features/followers/{index.js => index.jsx} | 0
.../mastodon/features/following/{index.js => index.jsx} | 0
.../features/generic_not_found/{index.js => index.jsx} | 0
.../components/{announcements.js => announcements.jsx} | 0
.../getting_started/components/{trends.js => trends.jsx} | 0
.../features/getting_started/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/hashtag_timeline/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../mastodon/features/home_timeline/{index.js => index.jsx} | 0
.../features/interaction_modal/{index.js => index.jsx} | 0
.../features/keyboard_shortcuts/{index.js => index.jsx} | 0
.../list_adder/components/{account.js => account.jsx} | 0
.../features/list_adder/components/{list.js => list.jsx} | 0
.../mastodon/features/list_adder/{index.js => index.jsx} | 0
.../list_editor/components/{account.js => account.jsx} | 0
.../components/{edit_list_form.js => edit_list_form.jsx} | 0
.../list_editor/components/{search.js => search.jsx} | 0
.../mastodon/features/list_editor/{index.js => index.jsx} | 0
.../mastodon/features/list_timeline/{index.js => index.jsx} | 0
.../lists/components/{new_list_form.js => new_list_form.jsx} | 0
.../mastodon/features/lists/{index.js => index.jsx} | 0
.../mastodon/features/mutes/{index.js => index.jsx} | 0
.../{clear_column_button.js => clear_column_button.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../components/{filter_bar.js => filter_bar.jsx} | 0
.../components/{follow_request.js => follow_request.jsx} | 0
...rant_permission_button.js => grant_permission_button.jsx} | 0
.../components/{notification.js => notification.jsx} | 0
...mission_banner.js => notifications_permission_banner.jsx} | 0
.../notifications/components/{report.js => report.jsx} | 0
.../components/{setting_toggle.js => setting_toggle.jsx} | 0
.../mastodon/features/notifications/{index.js => index.jsx} | 0
.../picture_in_picture/components/{footer.js => footer.jsx} | 0
.../picture_in_picture/components/{header.js => header.jsx} | 0
.../features/picture_in_picture/{index.js => index.jsx} | 0
.../features/pinned_statuses/{index.js => index.jsx} | 0
.../mastodon/features/privacy_policy/{index.js => index.jsx} | 0
.../components/{column_settings.js => column_settings.jsx} | 0
.../features/public_timeline/{index.js => index.jsx} | 0
.../mastodon/features/reblogs/{index.js => index.jsx} | 0
.../mastodon/features/report/{category.js => category.jsx} | 0
.../mastodon/features/report/{comment.js => comment.jsx} | 0
.../features/report/components/{option.js => option.jsx} | 0
.../components/{status_check_box.js => status_check_box.jsx} | 0
.../mastodon/features/report/{rules.js => rules.jsx} | 0
.../mastodon/features/report/{statuses.js => statuses.jsx} | 0
.../mastodon/features/report/{thanks.js => thanks.jsx} | 0
.../features/standalone/compose/{index.js => index.jsx} | 0
.../status/components/{action_bar.js => action_bar.jsx} | 0
.../features/status/components/{card.js => card.jsx} | 0
.../components/{detailed_status.js => detailed_status.jsx} | 0
.../mastodon/features/status/{index.js => index.jsx} | 0
.../subscribed_languages_modal/{index.js => index.jsx} | 0
.../components/__tests__/{column-test.js => column-test.jsx} | 0
.../ui/components/{actions_modal.js => actions_modal.jsx} | 0
.../ui/components/{audio_modal.js => audio_modal.jsx} | 0
.../ui/components/{block_modal.js => block_modal.jsx} | 0
.../ui/components/{boost_modal.js => boost_modal.jsx} | 0
.../features/ui/components/{bundle.js => bundle.jsx} | 0
.../{bundle_column_error.js => bundle_column_error.jsx} | 0
.../{bundle_modal_error.js => bundle_modal_error.jsx} | 0
.../features/ui/components/{column.js => column.jsx} | 0
.../ui/components/{column_header.js => column_header.jsx} | 0
.../ui/components/{column_link.js => column_link.jsx} | 0
.../ui/components/{column_loading.js => column_loading.jsx} | 0
.../{column_subheading.js => column_subheading.jsx} | 0
.../ui/components/{columns_area.js => columns_area.jsx} | 0
.../{compare_history_modal.js => compare_history_modal.jsx} | 0
.../ui/components/{compose_panel.js => compose_panel.jsx} | 0
.../{confirmation_modal.js => confirmation_modal.jsx} | 0
...isabled_account_banner.js => disabled_account_banner.jsx} | 0
.../ui/components/{drawer_loading.js => drawer_loading.jsx} | 0
.../ui/components/{embed_modal.js => embed_modal.jsx} | 0
.../ui/components/{filter_modal.js => filter_modal.jsx} | 0
.../{focal_point_modal.js => focal_point_modal.jsx} | 0
...quests_column_link.js => follow_requests_column_link.jsx} | 0
.../features/ui/components/{header.js => header.jsx} | 0
.../ui/components/{image_loader.js => image_loader.jsx} | 0
.../ui/components/{image_modal.js => image_modal.jsx} | 0
.../ui/components/{link_footer.js => link_footer.jsx} | 0
.../features/ui/components/{list_panel.js => list_panel.jsx} | 0
.../ui/components/{media_modal.js => media_modal.jsx} | 0
.../ui/components/{modal_loading.js => modal_loading.jsx} | 0
.../features/ui/components/{modal_root.js => modal_root.jsx} | 0
.../features/ui/components/{mute_modal.js => mute_modal.jsx} | 0
.../components/{navigation_panel.js => navigation_panel.jsx} | 0
.../ui/components/{report_modal.js => report_modal.jsx} | 0
.../ui/components/{sign_in_banner.js => sign_in_banner.jsx} | 0
.../ui/components/{upload_area.js => upload_area.jsx} | 0
.../ui/components/{video_modal.js => video_modal.jsx} | 0
.../ui/components/{zoomable_image.js => zoomable_image.jsx} | 0
app/javascript/mastodon/features/ui/{index.js => index.jsx} | 0
.../{react_router_helpers.js => react_router_helpers.jsx} | 0
.../ui/util/{reduced_motion.js => reduced_motion.jsx} | 0
.../mastodon/features/video/{index.js => index.jsx} | 0
app/javascript/mastodon/{main.js => main.jsx} | 0
app/javascript/mastodon/utils/{icons.js => icons.jsx} | 0
app/javascript/packs/{admin.js => admin.jsx} | 0
app/javascript/packs/{public.js => public.jsx} | 0
app/javascript/packs/{share.js => share.jsx} | 0
config/webpacker.yml | 1 +
package.json | 2 +-
248 files changed, 10 insertions(+), 2 deletions(-)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{autosuggest_emoji-test.js.snap => autosuggest_emoji-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar-test.js.snap => avatar-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{avatar_overlay-test.js.snap => avatar_overlay-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{button-test.js.snap => button-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/__snapshots__/{display_name-test.js.snap => display_name-test.jsx.snap} (100%)
rename app/javascript/mastodon/components/__tests__/{autosuggest_emoji-test.js => autosuggest_emoji-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{avatar-test.js => avatar-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{avatar_overlay-test.js => avatar_overlay-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{button-test.js => button-test.jsx} (100%)
rename app/javascript/mastodon/components/__tests__/{display_name-test.js => display_name-test.jsx} (100%)
rename app/javascript/mastodon/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Counter.js => Counter.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Dimension.js => Dimension.jsx} (100%)
rename app/javascript/mastodon/components/admin/{ReportReasonSelector.js => ReportReasonSelector.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Retention.js => Retention.jsx} (100%)
rename app/javascript/mastodon/components/admin/{Trends.js => Trends.jsx} (100%)
rename app/javascript/mastodon/components/{animated_number.js => animated_number.jsx} (100%)
rename app/javascript/mastodon/components/{attachment_list.js => attachment_list.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_emoji.js => autosuggest_emoji.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_hashtag.js => autosuggest_hashtag.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_input.js => autosuggest_input.jsx} (100%)
rename app/javascript/mastodon/components/{autosuggest_textarea.js => autosuggest_textarea.jsx} (100%)
rename app/javascript/mastodon/components/{avatar.js => avatar.jsx} (100%)
rename app/javascript/mastodon/components/{avatar_composite.js => avatar_composite.jsx} (100%)
rename app/javascript/mastodon/components/{avatar_overlay.js => avatar_overlay.jsx} (100%)
rename app/javascript/mastodon/components/{blurhash.js => blurhash.jsx} (100%)
rename app/javascript/mastodon/components/{button.js => button.jsx} (100%)
rename app/javascript/mastodon/components/{check.js => check.jsx} (100%)
rename app/javascript/mastodon/components/{column.js => column.jsx} (100%)
rename app/javascript/mastodon/components/{column_back_button.js => column_back_button.jsx} (100%)
rename app/javascript/mastodon/components/{column_back_button_slim.js => column_back_button_slim.jsx} (100%)
rename app/javascript/mastodon/components/{column_header.js => column_header.jsx} (100%)
rename app/javascript/mastodon/components/{common_counter.js => common_counter.jsx} (100%)
rename app/javascript/mastodon/components/{dismissable_banner.js => dismissable_banner.jsx} (100%)
rename app/javascript/mastodon/components/{display_name.js => display_name.jsx} (100%)
rename app/javascript/mastodon/components/{domain.js => domain.jsx} (100%)
rename app/javascript/mastodon/components/{dropdown_menu.js => dropdown_menu.jsx} (100%)
rename app/javascript/mastodon/components/edited_timestamp/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/components/{error_boundary.js => error_boundary.jsx} (100%)
rename app/javascript/mastodon/components/{gifv.js => gifv.jsx} (100%)
rename app/javascript/mastodon/components/{hashtag.js => hashtag.jsx} (100%)
rename app/javascript/mastodon/components/{icon.js => icon.jsx} (100%)
rename app/javascript/mastodon/components/{icon_button.js => icon_button.jsx} (100%)
rename app/javascript/mastodon/components/{icon_with_badge.js => icon_with_badge.jsx} (100%)
rename app/javascript/mastodon/components/{image.js => image.jsx} (100%)
rename app/javascript/mastodon/components/{inline_account.js => inline_account.jsx} (100%)
rename app/javascript/mastodon/components/{intersection_observer_article.js => intersection_observer_article.jsx} (100%)
rename app/javascript/mastodon/components/{load_gap.js => load_gap.jsx} (100%)
rename app/javascript/mastodon/components/{load_more.js => load_more.jsx} (100%)
rename app/javascript/mastodon/components/{load_pending.js => load_pending.jsx} (100%)
rename app/javascript/mastodon/components/{loading_indicator.js => loading_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{logo.js => logo.jsx} (100%)
rename app/javascript/mastodon/components/{media_attachments.js => media_attachments.jsx} (100%)
rename app/javascript/mastodon/components/{media_gallery.js => media_gallery.jsx} (100%)
rename app/javascript/mastodon/components/{missing_indicator.js => missing_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{modal_root.js => modal_root.jsx} (100%)
rename app/javascript/mastodon/components/{navigation_portal.js => navigation_portal.jsx} (100%)
rename app/javascript/mastodon/components/{not_signed_in_indicator.js => not_signed_in_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{picture_in_picture_placeholder.js => picture_in_picture_placeholder.jsx} (100%)
rename app/javascript/mastodon/components/{poll.js => poll.jsx} (100%)
rename app/javascript/mastodon/components/{radio_button.js => radio_button.jsx} (100%)
rename app/javascript/mastodon/components/{regeneration_indicator.js => regeneration_indicator.jsx} (100%)
rename app/javascript/mastodon/components/{relative_timestamp.js => relative_timestamp.jsx} (100%)
rename app/javascript/mastodon/components/{scrollable_list.js => scrollable_list.jsx} (100%)
rename app/javascript/mastodon/components/{server_banner.js => server_banner.jsx} (100%)
rename app/javascript/mastodon/components/{short_number.js => short_number.jsx} (100%)
rename app/javascript/mastodon/components/{skeleton.js => skeleton.jsx} (100%)
rename app/javascript/mastodon/components/{status.js => status.jsx} (100%)
rename app/javascript/mastodon/components/{status_action_bar.js => status_action_bar.jsx} (100%)
rename app/javascript/mastodon/components/{status_content.js => status_content.jsx} (100%)
rename app/javascript/mastodon/components/{status_list.js => status_list.jsx} (100%)
rename app/javascript/mastodon/components/{timeline_hint.js => timeline_hint.jsx} (100%)
rename app/javascript/mastodon/containers/{account_container.js => account_container.jsx} (100%)
rename app/javascript/mastodon/containers/{admin_component.js => admin_component.jsx} (100%)
rename app/javascript/mastodon/containers/{compose_container.js => compose_container.jsx} (100%)
rename app/javascript/mastodon/containers/{domain_container.js => domain_container.jsx} (100%)
rename app/javascript/mastodon/containers/{mastodon.js => mastodon.jsx} (100%)
rename app/javascript/mastodon/containers/{media_container.js => media_container.jsx} (100%)
rename app/javascript/mastodon/containers/{status_container.js => status_container.jsx} (100%)
rename app/javascript/mastodon/features/about/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{account_note.js => account_note.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{featured_tags.js => featured_tags.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{follow_request_note.js => follow_request_note.jsx} (100%)
rename app/javascript/mastodon/features/account/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/account/{navigation.js => navigation.jsx} (100%)
rename app/javascript/mastodon/features/account_gallery/components/{media_item.js => media_item.jsx} (100%)
rename app/javascript/mastodon/features/account_gallery/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{limited_account_hint.js => limited_account_hint.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/components/{moved_note.js => moved_note.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/containers/{header_container.js => header_container.jsx} (100%)
rename app/javascript/mastodon/features/account_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/audio/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/blocks/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/bookmarked_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/closed_registrations_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/community_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/community_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{action_bar.js => action_bar.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{autosuggest_account.js => autosuggest_account.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{character_counter.js => character_counter.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{compose_form.js => compose_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{emoji_picker_dropdown.js => emoji_picker_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{language_dropdown.js => language_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{navigation_bar.js => navigation_bar.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{poll_button.js => poll_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{poll_form.js => poll_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{privacy_dropdown.js => privacy_dropdown.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{reply_indicator.js => reply_indicator.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{search.js => search.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{search_results.js => search_results.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{text_icon_button.js => text_icon_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload.js => upload.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_button.js => upload_button.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_form.js => upload_form.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{upload_progress.js => upload_progress.jsx} (100%)
rename app/javascript/mastodon/features/compose/components/{warning.js => warning.jsx} (100%)
rename app/javascript/mastodon/features/compose/containers/{sensitive_button_container.js => sensitive_button_container.jsx} (100%)
rename app/javascript/mastodon/features/compose/containers/{warning_container.js => warning_container.jsx} (100%)
rename app/javascript/mastodon/features/compose/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/components/{conversation.js => conversation.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/components/{conversations_list.js => conversations_list.jsx} (100%)
rename app/javascript/mastodon/features/direct_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/directory/components/{account_card.js => account_card.jsx} (100%)
rename app/javascript/mastodon/features/directory/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/domain_blocks/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/explore/components/{story.js => story.jsx} (100%)
rename app/javascript/mastodon/features/explore/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/explore/{links.js => links.jsx} (100%)
rename app/javascript/mastodon/features/explore/{results.js => results.jsx} (100%)
rename app/javascript/mastodon/features/explore/{statuses.js => statuses.jsx} (100%)
rename app/javascript/mastodon/features/explore/{suggestions.js => suggestions.jsx} (100%)
rename app/javascript/mastodon/features/explore/{tags.js => tags.jsx} (100%)
rename app/javascript/mastodon/features/favourited_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/favourites/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/filters/{added_to_filter.js => added_to_filter.jsx} (100%)
rename app/javascript/mastodon/features/filters/{select_filter.js => select_filter.jsx} (100%)
rename app/javascript/mastodon/features/follow_recommendations/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/follow_recommendations/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/follow_requests/components/{account_authorize.js => account_authorize.jsx} (100%)
rename app/javascript/mastodon/features/follow_requests/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/followed_tags/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/followers/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/following/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/generic_not_found/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/components/{announcements.js => announcements.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/components/{trends.js => trends.jsx} (100%)
rename app/javascript/mastodon/features/getting_started/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/hashtag_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/hashtag_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/home_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/home_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/interaction_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/keyboard_shortcuts/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/components/{list.js => list.jsx} (100%)
rename app/javascript/mastodon/features/list_adder/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{account.js => account.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{edit_list_form.js => edit_list_form.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/components/{search.js => search.jsx} (100%)
rename app/javascript/mastodon/features/list_editor/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/list_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/lists/components/{new_list_form.js => new_list_form.jsx} (100%)
rename app/javascript/mastodon/features/lists/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/mutes/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{clear_column_button.js => clear_column_button.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{filter_bar.js => filter_bar.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{follow_request.js => follow_request.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{grant_permission_button.js => grant_permission_button.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{notification.js => notification.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{notifications_permission_banner.js => notifications_permission_banner.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{report.js => report.jsx} (100%)
rename app/javascript/mastodon/features/notifications/components/{setting_toggle.js => setting_toggle.jsx} (100%)
rename app/javascript/mastodon/features/notifications/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/components/{footer.js => footer.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/picture_in_picture/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/pinned_statuses/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/privacy_policy/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/public_timeline/components/{column_settings.js => column_settings.jsx} (100%)
rename app/javascript/mastodon/features/public_timeline/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/reblogs/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/report/{category.js => category.jsx} (100%)
rename app/javascript/mastodon/features/report/{comment.js => comment.jsx} (100%)
rename app/javascript/mastodon/features/report/components/{option.js => option.jsx} (100%)
rename app/javascript/mastodon/features/report/components/{status_check_box.js => status_check_box.jsx} (100%)
rename app/javascript/mastodon/features/report/{rules.js => rules.jsx} (100%)
rename app/javascript/mastodon/features/report/{statuses.js => statuses.jsx} (100%)
rename app/javascript/mastodon/features/report/{thanks.js => thanks.jsx} (100%)
rename app/javascript/mastodon/features/standalone/compose/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{action_bar.js => action_bar.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{card.js => card.jsx} (100%)
rename app/javascript/mastodon/features/status/components/{detailed_status.js => detailed_status.jsx} (100%)
rename app/javascript/mastodon/features/status/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/subscribed_languages_modal/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/__tests__/{column-test.js => column-test.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{actions_modal.js => actions_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{audio_modal.js => audio_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{block_modal.js => block_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{boost_modal.js => boost_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle.js => bundle.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle_column_error.js => bundle_column_error.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{bundle_modal_error.js => bundle_modal_error.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column.js => column.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_header.js => column_header.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_link.js => column_link.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_loading.js => column_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{column_subheading.js => column_subheading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{columns_area.js => columns_area.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{compare_history_modal.js => compare_history_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{compose_panel.js => compose_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{confirmation_modal.js => confirmation_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{disabled_account_banner.js => disabled_account_banner.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{drawer_loading.js => drawer_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{embed_modal.js => embed_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{filter_modal.js => filter_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{focal_point_modal.js => focal_point_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{follow_requests_column_link.js => follow_requests_column_link.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{header.js => header.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{image_loader.js => image_loader.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{image_modal.js => image_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{link_footer.js => link_footer.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{list_panel.js => list_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{media_modal.js => media_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{modal_loading.js => modal_loading.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{modal_root.js => modal_root.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{mute_modal.js => mute_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{navigation_panel.js => navigation_panel.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{report_modal.js => report_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{sign_in_banner.js => sign_in_banner.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{upload_area.js => upload_area.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{video_modal.js => video_modal.jsx} (100%)
rename app/javascript/mastodon/features/ui/components/{zoomable_image.js => zoomable_image.jsx} (100%)
rename app/javascript/mastodon/features/ui/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/features/ui/util/{react_router_helpers.js => react_router_helpers.jsx} (100%)
rename app/javascript/mastodon/features/ui/util/{reduced_motion.js => reduced_motion.jsx} (100%)
rename app/javascript/mastodon/features/video/{index.js => index.jsx} (100%)
rename app/javascript/mastodon/{main.js => main.jsx} (100%)
rename app/javascript/mastodon/utils/{icons.js => icons.jsx} (100%)
rename app/javascript/packs/{admin.js => admin.jsx} (100%)
rename app/javascript/packs/{public.js => public.jsx} (100%)
rename app/javascript/packs/{share.js => share.jsx} (100%)
diff --git a/.eslintrc.js b/.eslintrc.js
index b5ab511f8b..606a87e415 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -43,7 +43,7 @@ module.exports = {
version: 'detect',
},
'import/extensions': [
- '.js',
+ '.js', '.jsx',
],
'import/ignore': [
'node_modules',
@@ -52,6 +52,7 @@ module.exports = {
'import/resolver': {
node: {
paths: ['app/javascript'],
+ extensions: ['.js', '.jsx'],
},
},
},
@@ -111,6 +112,7 @@ module.exports = {
semi: 'error',
'valid-typeof': 'error',
+ 'react/jsx-filename-extension': ['error', { 'allow': 'as-needed' }],
'react/jsx-boolean-value': 'error',
'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
'react/jsx-curly-spacing': 'error',
@@ -185,6 +187,7 @@ module.exports = {
'always',
{
js: 'never',
+ jsx: 'never',
},
],
'import/newline-after-import': 'error',
diff --git a/.github/workflows/lint-js.yml b/.github/workflows/lint-js.yml
index 3e0d9d1a92..44929f63db 100644
--- a/.github/workflows/lint-js.yml
+++ b/.github/workflows/lint-js.yml
@@ -10,6 +10,7 @@ on:
- '.prettier*'
- '.eslint*'
- '**/*.js'
+ - '**/*.jsx'
- '.github/workflows/lint-js.yml'
pull_request:
@@ -20,6 +21,7 @@ on:
- '.prettier*'
- '.eslint*'
- '**/*.js'
+ - '**/*.jsx'
- '.github/workflows/lint-js.yml'
jobs:
diff --git a/.github/workflows/test-js.yml b/.github/workflows/test-js.yml
index 60b8e318ef..6a1cacb3f0 100644
--- a/.github/workflows/test-js.yml
+++ b/.github/workflows/test-js.yml
@@ -8,6 +8,7 @@ on:
- 'yarn.lock'
- '.nvmrc'
- '**/*.js'
+ - '**/*.jsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
@@ -17,6 +18,7 @@ on:
- 'yarn.lock'
- '.nvmrc'
- '**/*.js'
+ - '**/*.jsx'
- '**/*.snap'
- '.github/workflows/test-js.yml'
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js b/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js
rename to app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.js b/app/javascript/mastodon/components/__tests__/avatar-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar-test.js
rename to app/javascript/mastodon/components/__tests__/avatar-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar_overlay-test.js b/app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar_overlay-test.js
rename to app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/button-test.js b/app/javascript/mastodon/components/__tests__/button-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/button-test.js
rename to app/javascript/mastodon/components/__tests__/button-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/display_name-test.js
rename to app/javascript/mastodon/components/__tests__/display_name-test.jsx
diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/components/account.js
rename to app/javascript/mastodon/components/account.jsx
diff --git a/app/javascript/mastodon/components/admin/Counter.js b/app/javascript/mastodon/components/admin/Counter.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Counter.js
rename to app/javascript/mastodon/components/admin/Counter.jsx
diff --git a/app/javascript/mastodon/components/admin/Dimension.js b/app/javascript/mastodon/components/admin/Dimension.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Dimension.js
rename to app/javascript/mastodon/components/admin/Dimension.jsx
diff --git a/app/javascript/mastodon/components/admin/ReportReasonSelector.js b/app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/ReportReasonSelector.js
rename to app/javascript/mastodon/components/admin/ReportReasonSelector.jsx
diff --git a/app/javascript/mastodon/components/admin/Retention.js b/app/javascript/mastodon/components/admin/Retention.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Retention.js
rename to app/javascript/mastodon/components/admin/Retention.jsx
diff --git a/app/javascript/mastodon/components/admin/Trends.js b/app/javascript/mastodon/components/admin/Trends.jsx
similarity index 100%
rename from app/javascript/mastodon/components/admin/Trends.js
rename to app/javascript/mastodon/components/admin/Trends.jsx
diff --git a/app/javascript/mastodon/components/animated_number.js b/app/javascript/mastodon/components/animated_number.jsx
similarity index 100%
rename from app/javascript/mastodon/components/animated_number.js
rename to app/javascript/mastodon/components/animated_number.jsx
diff --git a/app/javascript/mastodon/components/attachment_list.js b/app/javascript/mastodon/components/attachment_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/attachment_list.js
rename to app/javascript/mastodon/components/attachment_list.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_emoji.js b/app/javascript/mastodon/components/autosuggest_emoji.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_emoji.js
rename to app/javascript/mastodon/components/autosuggest_emoji.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_hashtag.js b/app/javascript/mastodon/components/autosuggest_hashtag.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_hashtag.js
rename to app/javascript/mastodon/components/autosuggest_hashtag.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_input.js b/app/javascript/mastodon/components/autosuggest_input.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_input.js
rename to app/javascript/mastodon/components/autosuggest_input.jsx
diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.jsx
similarity index 100%
rename from app/javascript/mastodon/components/autosuggest_textarea.js
rename to app/javascript/mastodon/components/autosuggest_textarea.jsx
diff --git a/app/javascript/mastodon/components/avatar.js b/app/javascript/mastodon/components/avatar.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar.js
rename to app/javascript/mastodon/components/avatar.jsx
diff --git a/app/javascript/mastodon/components/avatar_composite.js b/app/javascript/mastodon/components/avatar_composite.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar_composite.js
rename to app/javascript/mastodon/components/avatar_composite.jsx
diff --git a/app/javascript/mastodon/components/avatar_overlay.js b/app/javascript/mastodon/components/avatar_overlay.jsx
similarity index 100%
rename from app/javascript/mastodon/components/avatar_overlay.js
rename to app/javascript/mastodon/components/avatar_overlay.jsx
diff --git a/app/javascript/mastodon/components/blurhash.js b/app/javascript/mastodon/components/blurhash.jsx
similarity index 100%
rename from app/javascript/mastodon/components/blurhash.js
rename to app/javascript/mastodon/components/blurhash.jsx
diff --git a/app/javascript/mastodon/components/button.js b/app/javascript/mastodon/components/button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/button.js
rename to app/javascript/mastodon/components/button.jsx
diff --git a/app/javascript/mastodon/components/check.js b/app/javascript/mastodon/components/check.jsx
similarity index 100%
rename from app/javascript/mastodon/components/check.js
rename to app/javascript/mastodon/components/check.jsx
diff --git a/app/javascript/mastodon/components/column.js b/app/javascript/mastodon/components/column.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column.js
rename to app/javascript/mastodon/components/column.jsx
diff --git a/app/javascript/mastodon/components/column_back_button.js b/app/javascript/mastodon/components/column_back_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_back_button.js
rename to app/javascript/mastodon/components/column_back_button.jsx
diff --git a/app/javascript/mastodon/components/column_back_button_slim.js b/app/javascript/mastodon/components/column_back_button_slim.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_back_button_slim.js
rename to app/javascript/mastodon/components/column_back_button_slim.jsx
diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.jsx
similarity index 100%
rename from app/javascript/mastodon/components/column_header.js
rename to app/javascript/mastodon/components/column_header.jsx
diff --git a/app/javascript/mastodon/components/common_counter.js b/app/javascript/mastodon/components/common_counter.jsx
similarity index 100%
rename from app/javascript/mastodon/components/common_counter.js
rename to app/javascript/mastodon/components/common_counter.jsx
diff --git a/app/javascript/mastodon/components/dismissable_banner.js b/app/javascript/mastodon/components/dismissable_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/components/dismissable_banner.js
rename to app/javascript/mastodon/components/dismissable_banner.jsx
diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.jsx
similarity index 100%
rename from app/javascript/mastodon/components/display_name.js
rename to app/javascript/mastodon/components/display_name.jsx
diff --git a/app/javascript/mastodon/components/domain.js b/app/javascript/mastodon/components/domain.jsx
similarity index 100%
rename from app/javascript/mastodon/components/domain.js
rename to app/javascript/mastodon/components/domain.jsx
diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.jsx
similarity index 100%
rename from app/javascript/mastodon/components/dropdown_menu.js
rename to app/javascript/mastodon/components/dropdown_menu.jsx
diff --git a/app/javascript/mastodon/components/edited_timestamp/index.js b/app/javascript/mastodon/components/edited_timestamp/index.jsx
similarity index 100%
rename from app/javascript/mastodon/components/edited_timestamp/index.js
rename to app/javascript/mastodon/components/edited_timestamp/index.jsx
diff --git a/app/javascript/mastodon/components/error_boundary.js b/app/javascript/mastodon/components/error_boundary.jsx
similarity index 100%
rename from app/javascript/mastodon/components/error_boundary.js
rename to app/javascript/mastodon/components/error_boundary.jsx
diff --git a/app/javascript/mastodon/components/gifv.js b/app/javascript/mastodon/components/gifv.jsx
similarity index 100%
rename from app/javascript/mastodon/components/gifv.js
rename to app/javascript/mastodon/components/gifv.jsx
diff --git a/app/javascript/mastodon/components/hashtag.js b/app/javascript/mastodon/components/hashtag.jsx
similarity index 100%
rename from app/javascript/mastodon/components/hashtag.js
rename to app/javascript/mastodon/components/hashtag.jsx
diff --git a/app/javascript/mastodon/components/icon.js b/app/javascript/mastodon/components/icon.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon.js
rename to app/javascript/mastodon/components/icon.jsx
diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon_button.js
rename to app/javascript/mastodon/components/icon_button.jsx
diff --git a/app/javascript/mastodon/components/icon_with_badge.js b/app/javascript/mastodon/components/icon_with_badge.jsx
similarity index 100%
rename from app/javascript/mastodon/components/icon_with_badge.js
rename to app/javascript/mastodon/components/icon_with_badge.jsx
diff --git a/app/javascript/mastodon/components/image.js b/app/javascript/mastodon/components/image.jsx
similarity index 100%
rename from app/javascript/mastodon/components/image.js
rename to app/javascript/mastodon/components/image.jsx
diff --git a/app/javascript/mastodon/components/inline_account.js b/app/javascript/mastodon/components/inline_account.jsx
similarity index 100%
rename from app/javascript/mastodon/components/inline_account.js
rename to app/javascript/mastodon/components/inline_account.jsx
diff --git a/app/javascript/mastodon/components/intersection_observer_article.js b/app/javascript/mastodon/components/intersection_observer_article.jsx
similarity index 100%
rename from app/javascript/mastodon/components/intersection_observer_article.js
rename to app/javascript/mastodon/components/intersection_observer_article.jsx
diff --git a/app/javascript/mastodon/components/load_gap.js b/app/javascript/mastodon/components/load_gap.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_gap.js
rename to app/javascript/mastodon/components/load_gap.jsx
diff --git a/app/javascript/mastodon/components/load_more.js b/app/javascript/mastodon/components/load_more.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_more.js
rename to app/javascript/mastodon/components/load_more.jsx
diff --git a/app/javascript/mastodon/components/load_pending.js b/app/javascript/mastodon/components/load_pending.jsx
similarity index 100%
rename from app/javascript/mastodon/components/load_pending.js
rename to app/javascript/mastodon/components/load_pending.jsx
diff --git a/app/javascript/mastodon/components/loading_indicator.js b/app/javascript/mastodon/components/loading_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/loading_indicator.js
rename to app/javascript/mastodon/components/loading_indicator.jsx
diff --git a/app/javascript/mastodon/components/logo.js b/app/javascript/mastodon/components/logo.jsx
similarity index 100%
rename from app/javascript/mastodon/components/logo.js
rename to app/javascript/mastodon/components/logo.jsx
diff --git a/app/javascript/mastodon/components/media_attachments.js b/app/javascript/mastodon/components/media_attachments.jsx
similarity index 100%
rename from app/javascript/mastodon/components/media_attachments.js
rename to app/javascript/mastodon/components/media_attachments.jsx
diff --git a/app/javascript/mastodon/components/media_gallery.js b/app/javascript/mastodon/components/media_gallery.jsx
similarity index 100%
rename from app/javascript/mastodon/components/media_gallery.js
rename to app/javascript/mastodon/components/media_gallery.jsx
diff --git a/app/javascript/mastodon/components/missing_indicator.js b/app/javascript/mastodon/components/missing_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/missing_indicator.js
rename to app/javascript/mastodon/components/missing_indicator.jsx
diff --git a/app/javascript/mastodon/components/modal_root.js b/app/javascript/mastodon/components/modal_root.jsx
similarity index 100%
rename from app/javascript/mastodon/components/modal_root.js
rename to app/javascript/mastodon/components/modal_root.jsx
diff --git a/app/javascript/mastodon/components/navigation_portal.js b/app/javascript/mastodon/components/navigation_portal.jsx
similarity index 100%
rename from app/javascript/mastodon/components/navigation_portal.js
rename to app/javascript/mastodon/components/navigation_portal.jsx
diff --git a/app/javascript/mastodon/components/not_signed_in_indicator.js b/app/javascript/mastodon/components/not_signed_in_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/not_signed_in_indicator.js
rename to app/javascript/mastodon/components/not_signed_in_indicator.jsx
diff --git a/app/javascript/mastodon/components/picture_in_picture_placeholder.js b/app/javascript/mastodon/components/picture_in_picture_placeholder.jsx
similarity index 100%
rename from app/javascript/mastodon/components/picture_in_picture_placeholder.js
rename to app/javascript/mastodon/components/picture_in_picture_placeholder.jsx
diff --git a/app/javascript/mastodon/components/poll.js b/app/javascript/mastodon/components/poll.jsx
similarity index 100%
rename from app/javascript/mastodon/components/poll.js
rename to app/javascript/mastodon/components/poll.jsx
diff --git a/app/javascript/mastodon/components/radio_button.js b/app/javascript/mastodon/components/radio_button.jsx
similarity index 100%
rename from app/javascript/mastodon/components/radio_button.js
rename to app/javascript/mastodon/components/radio_button.jsx
diff --git a/app/javascript/mastodon/components/regeneration_indicator.js b/app/javascript/mastodon/components/regeneration_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/components/regeneration_indicator.js
rename to app/javascript/mastodon/components/regeneration_indicator.jsx
diff --git a/app/javascript/mastodon/components/relative_timestamp.js b/app/javascript/mastodon/components/relative_timestamp.jsx
similarity index 100%
rename from app/javascript/mastodon/components/relative_timestamp.js
rename to app/javascript/mastodon/components/relative_timestamp.jsx
diff --git a/app/javascript/mastodon/components/scrollable_list.js b/app/javascript/mastodon/components/scrollable_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/scrollable_list.js
rename to app/javascript/mastodon/components/scrollable_list.jsx
diff --git a/app/javascript/mastodon/components/server_banner.js b/app/javascript/mastodon/components/server_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/components/server_banner.js
rename to app/javascript/mastodon/components/server_banner.jsx
diff --git a/app/javascript/mastodon/components/short_number.js b/app/javascript/mastodon/components/short_number.jsx
similarity index 100%
rename from app/javascript/mastodon/components/short_number.js
rename to app/javascript/mastodon/components/short_number.jsx
diff --git a/app/javascript/mastodon/components/skeleton.js b/app/javascript/mastodon/components/skeleton.jsx
similarity index 100%
rename from app/javascript/mastodon/components/skeleton.js
rename to app/javascript/mastodon/components/skeleton.jsx
diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status.js
rename to app/javascript/mastodon/components/status.jsx
diff --git a/app/javascript/mastodon/components/status_action_bar.js b/app/javascript/mastodon/components/status_action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_action_bar.js
rename to app/javascript/mastodon/components/status_action_bar.jsx
diff --git a/app/javascript/mastodon/components/status_content.js b/app/javascript/mastodon/components/status_content.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_content.js
rename to app/javascript/mastodon/components/status_content.jsx
diff --git a/app/javascript/mastodon/components/status_list.js b/app/javascript/mastodon/components/status_list.jsx
similarity index 100%
rename from app/javascript/mastodon/components/status_list.js
rename to app/javascript/mastodon/components/status_list.jsx
diff --git a/app/javascript/mastodon/components/timeline_hint.js b/app/javascript/mastodon/components/timeline_hint.jsx
similarity index 100%
rename from app/javascript/mastodon/components/timeline_hint.js
rename to app/javascript/mastodon/components/timeline_hint.jsx
diff --git a/app/javascript/mastodon/containers/account_container.js b/app/javascript/mastodon/containers/account_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/account_container.js
rename to app/javascript/mastodon/containers/account_container.jsx
diff --git a/app/javascript/mastodon/containers/admin_component.js b/app/javascript/mastodon/containers/admin_component.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/admin_component.js
rename to app/javascript/mastodon/containers/admin_component.jsx
diff --git a/app/javascript/mastodon/containers/compose_container.js b/app/javascript/mastodon/containers/compose_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/compose_container.js
rename to app/javascript/mastodon/containers/compose_container.jsx
diff --git a/app/javascript/mastodon/containers/domain_container.js b/app/javascript/mastodon/containers/domain_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/domain_container.js
rename to app/javascript/mastodon/containers/domain_container.jsx
diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/mastodon.js
rename to app/javascript/mastodon/containers/mastodon.jsx
diff --git a/app/javascript/mastodon/containers/media_container.js b/app/javascript/mastodon/containers/media_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/media_container.js
rename to app/javascript/mastodon/containers/media_container.jsx
diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.jsx
similarity index 100%
rename from app/javascript/mastodon/containers/status_container.js
rename to app/javascript/mastodon/containers/status_container.jsx
diff --git a/app/javascript/mastodon/features/about/index.js b/app/javascript/mastodon/features/about/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/about/index.js
rename to app/javascript/mastodon/features/about/index.jsx
diff --git a/app/javascript/mastodon/features/account/components/account_note.js b/app/javascript/mastodon/features/account/components/account_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/account_note.js
rename to app/javascript/mastodon/features/account/components/account_note.jsx
diff --git a/app/javascript/mastodon/features/account/components/featured_tags.js b/app/javascript/mastodon/features/account/components/featured_tags.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/featured_tags.js
rename to app/javascript/mastodon/features/account/components/featured_tags.jsx
diff --git a/app/javascript/mastodon/features/account/components/follow_request_note.js b/app/javascript/mastodon/features/account/components/follow_request_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/follow_request_note.js
rename to app/javascript/mastodon/features/account/components/follow_request_note.jsx
diff --git a/app/javascript/mastodon/features/account/components/header.js b/app/javascript/mastodon/features/account/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/components/header.js
rename to app/javascript/mastodon/features/account/components/header.jsx
diff --git a/app/javascript/mastodon/features/account/navigation.js b/app/javascript/mastodon/features/account/navigation.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account/navigation.js
rename to app/javascript/mastodon/features/account/navigation.jsx
diff --git a/app/javascript/mastodon/features/account_gallery/components/media_item.js b/app/javascript/mastodon/features/account_gallery/components/media_item.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_gallery/components/media_item.js
rename to app/javascript/mastodon/features/account_gallery/components/media_item.jsx
diff --git a/app/javascript/mastodon/features/account_gallery/index.js b/app/javascript/mastodon/features/account_gallery/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_gallery/index.js
rename to app/javascript/mastodon/features/account_gallery/index.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/header.js b/app/javascript/mastodon/features/account_timeline/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/header.js
rename to app/javascript/mastodon/features/account_timeline/components/header.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js b/app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/limited_account_hint.js
rename to app/javascript/mastodon/features/account_timeline/components/limited_account_hint.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/components/moved_note.js b/app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/components/moved_note.js
rename to app/javascript/mastodon/features/account_timeline/components/moved_note.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/containers/header_container.js b/app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/containers/header_container.js
rename to app/javascript/mastodon/features/account_timeline/containers/header_container.jsx
diff --git a/app/javascript/mastodon/features/account_timeline/index.js b/app/javascript/mastodon/features/account_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/account_timeline/index.js
rename to app/javascript/mastodon/features/account_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/audio/index.js b/app/javascript/mastodon/features/audio/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/audio/index.js
rename to app/javascript/mastodon/features/audio/index.jsx
diff --git a/app/javascript/mastodon/features/blocks/index.js b/app/javascript/mastodon/features/blocks/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/blocks/index.js
rename to app/javascript/mastodon/features/blocks/index.jsx
diff --git a/app/javascript/mastodon/features/bookmarked_statuses/index.js b/app/javascript/mastodon/features/bookmarked_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/bookmarked_statuses/index.js
rename to app/javascript/mastodon/features/bookmarked_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/closed_registrations_modal/index.js b/app/javascript/mastodon/features/closed_registrations_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/closed_registrations_modal/index.js
rename to app/javascript/mastodon/features/closed_registrations_modal/index.jsx
diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.js b/app/javascript/mastodon/features/community_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/community_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/community_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/community_timeline/index.js
rename to app/javascript/mastodon/features/community_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/compose/components/action_bar.js b/app/javascript/mastodon/features/compose/components/action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/action_bar.js
rename to app/javascript/mastodon/features/compose/components/action_bar.jsx
diff --git a/app/javascript/mastodon/features/compose/components/autosuggest_account.js b/app/javascript/mastodon/features/compose/components/autosuggest_account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/autosuggest_account.js
rename to app/javascript/mastodon/features/compose/components/autosuggest_account.jsx
diff --git a/app/javascript/mastodon/features/compose/components/character_counter.js b/app/javascript/mastodon/features/compose/components/character_counter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/character_counter.js
rename to app/javascript/mastodon/features/compose/components/character_counter.jsx
diff --git a/app/javascript/mastodon/features/compose/components/compose_form.js b/app/javascript/mastodon/features/compose/components/compose_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/compose_form.js
rename to app/javascript/mastodon/features/compose/components/compose_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js b/app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.js
rename to app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.js b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/language_dropdown.js
rename to app/javascript/mastodon/features/compose/components/language_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/navigation_bar.js b/app/javascript/mastodon/features/compose/components/navigation_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/navigation_bar.js
rename to app/javascript/mastodon/features/compose/components/navigation_bar.jsx
diff --git a/app/javascript/mastodon/features/compose/components/poll_button.js b/app/javascript/mastodon/features/compose/components/poll_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/poll_button.js
rename to app/javascript/mastodon/features/compose/components/poll_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/poll_form.js b/app/javascript/mastodon/features/compose/components/poll_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/poll_form.js
rename to app/javascript/mastodon/features/compose/components/poll_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/privacy_dropdown.js b/app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/privacy_dropdown.js
rename to app/javascript/mastodon/features/compose/components/privacy_dropdown.jsx
diff --git a/app/javascript/mastodon/features/compose/components/reply_indicator.js b/app/javascript/mastodon/features/compose/components/reply_indicator.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/reply_indicator.js
rename to app/javascript/mastodon/features/compose/components/reply_indicator.jsx
diff --git a/app/javascript/mastodon/features/compose/components/search.js b/app/javascript/mastodon/features/compose/components/search.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/search.js
rename to app/javascript/mastodon/features/compose/components/search.jsx
diff --git a/app/javascript/mastodon/features/compose/components/search_results.js b/app/javascript/mastodon/features/compose/components/search_results.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/search_results.js
rename to app/javascript/mastodon/features/compose/components/search_results.jsx
diff --git a/app/javascript/mastodon/features/compose/components/text_icon_button.js b/app/javascript/mastodon/features/compose/components/text_icon_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/text_icon_button.js
rename to app/javascript/mastodon/features/compose/components/text_icon_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload.js b/app/javascript/mastodon/features/compose/components/upload.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload.js
rename to app/javascript/mastodon/features/compose/components/upload.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_button.js b/app/javascript/mastodon/features/compose/components/upload_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_button.js
rename to app/javascript/mastodon/features/compose/components/upload_button.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_form.js b/app/javascript/mastodon/features/compose/components/upload_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_form.js
rename to app/javascript/mastodon/features/compose/components/upload_form.jsx
diff --git a/app/javascript/mastodon/features/compose/components/upload_progress.js b/app/javascript/mastodon/features/compose/components/upload_progress.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/upload_progress.js
rename to app/javascript/mastodon/features/compose/components/upload_progress.jsx
diff --git a/app/javascript/mastodon/features/compose/components/warning.js b/app/javascript/mastodon/features/compose/components/warning.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/components/warning.js
rename to app/javascript/mastodon/features/compose/components/warning.jsx
diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.js b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/containers/sensitive_button_container.js
rename to app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
diff --git a/app/javascript/mastodon/features/compose/containers/warning_container.js b/app/javascript/mastodon/features/compose/containers/warning_container.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/containers/warning_container.js
rename to app/javascript/mastodon/features/compose/containers/warning_container.jsx
diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/compose/index.js
rename to app/javascript/mastodon/features/compose/index.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversation.js b/app/javascript/mastodon/features/direct_timeline/components/conversation.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/components/conversation.js
rename to app/javascript/mastodon/features/direct_timeline/components/conversation.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/components/conversations_list.js b/app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/components/conversations_list.js
rename to app/javascript/mastodon/features/direct_timeline/components/conversations_list.jsx
diff --git a/app/javascript/mastodon/features/direct_timeline/index.js b/app/javascript/mastodon/features/direct_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/direct_timeline/index.js
rename to app/javascript/mastodon/features/direct_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/directory/components/account_card.js b/app/javascript/mastodon/features/directory/components/account_card.jsx
similarity index 100%
rename from app/javascript/mastodon/features/directory/components/account_card.js
rename to app/javascript/mastodon/features/directory/components/account_card.jsx
diff --git a/app/javascript/mastodon/features/directory/index.js b/app/javascript/mastodon/features/directory/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/directory/index.js
rename to app/javascript/mastodon/features/directory/index.jsx
diff --git a/app/javascript/mastodon/features/domain_blocks/index.js b/app/javascript/mastodon/features/domain_blocks/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/domain_blocks/index.js
rename to app/javascript/mastodon/features/domain_blocks/index.jsx
diff --git a/app/javascript/mastodon/features/explore/components/story.js b/app/javascript/mastodon/features/explore/components/story.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/components/story.js
rename to app/javascript/mastodon/features/explore/components/story.jsx
diff --git a/app/javascript/mastodon/features/explore/index.js b/app/javascript/mastodon/features/explore/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/index.js
rename to app/javascript/mastodon/features/explore/index.jsx
diff --git a/app/javascript/mastodon/features/explore/links.js b/app/javascript/mastodon/features/explore/links.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/links.js
rename to app/javascript/mastodon/features/explore/links.jsx
diff --git a/app/javascript/mastodon/features/explore/results.js b/app/javascript/mastodon/features/explore/results.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/results.js
rename to app/javascript/mastodon/features/explore/results.jsx
diff --git a/app/javascript/mastodon/features/explore/statuses.js b/app/javascript/mastodon/features/explore/statuses.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/statuses.js
rename to app/javascript/mastodon/features/explore/statuses.jsx
diff --git a/app/javascript/mastodon/features/explore/suggestions.js b/app/javascript/mastodon/features/explore/suggestions.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/suggestions.js
rename to app/javascript/mastodon/features/explore/suggestions.jsx
diff --git a/app/javascript/mastodon/features/explore/tags.js b/app/javascript/mastodon/features/explore/tags.jsx
similarity index 100%
rename from app/javascript/mastodon/features/explore/tags.js
rename to app/javascript/mastodon/features/explore/tags.jsx
diff --git a/app/javascript/mastodon/features/favourited_statuses/index.js b/app/javascript/mastodon/features/favourited_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/favourited_statuses/index.js
rename to app/javascript/mastodon/features/favourited_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/favourites/index.js b/app/javascript/mastodon/features/favourites/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/favourites/index.js
rename to app/javascript/mastodon/features/favourites/index.jsx
diff --git a/app/javascript/mastodon/features/filters/added_to_filter.js b/app/javascript/mastodon/features/filters/added_to_filter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/filters/added_to_filter.js
rename to app/javascript/mastodon/features/filters/added_to_filter.jsx
diff --git a/app/javascript/mastodon/features/filters/select_filter.js b/app/javascript/mastodon/features/filters/select_filter.jsx
similarity index 100%
rename from app/javascript/mastodon/features/filters/select_filter.js
rename to app/javascript/mastodon/features/filters/select_filter.jsx
diff --git a/app/javascript/mastodon/features/follow_recommendations/components/account.js b/app/javascript/mastodon/features/follow_recommendations/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_recommendations/components/account.js
rename to app/javascript/mastodon/features/follow_recommendations/components/account.jsx
diff --git a/app/javascript/mastodon/features/follow_recommendations/index.js b/app/javascript/mastodon/features/follow_recommendations/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_recommendations/index.js
rename to app/javascript/mastodon/features/follow_recommendations/index.jsx
diff --git a/app/javascript/mastodon/features/follow_requests/components/account_authorize.js b/app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_requests/components/account_authorize.js
rename to app/javascript/mastodon/features/follow_requests/components/account_authorize.jsx
diff --git a/app/javascript/mastodon/features/follow_requests/index.js b/app/javascript/mastodon/features/follow_requests/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/follow_requests/index.js
rename to app/javascript/mastodon/features/follow_requests/index.jsx
diff --git a/app/javascript/mastodon/features/followed_tags/index.js b/app/javascript/mastodon/features/followed_tags/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/followed_tags/index.js
rename to app/javascript/mastodon/features/followed_tags/index.jsx
diff --git a/app/javascript/mastodon/features/followers/index.js b/app/javascript/mastodon/features/followers/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/followers/index.js
rename to app/javascript/mastodon/features/followers/index.jsx
diff --git a/app/javascript/mastodon/features/following/index.js b/app/javascript/mastodon/features/following/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/following/index.js
rename to app/javascript/mastodon/features/following/index.jsx
diff --git a/app/javascript/mastodon/features/generic_not_found/index.js b/app/javascript/mastodon/features/generic_not_found/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/generic_not_found/index.js
rename to app/javascript/mastodon/features/generic_not_found/index.jsx
diff --git a/app/javascript/mastodon/features/getting_started/components/announcements.js b/app/javascript/mastodon/features/getting_started/components/announcements.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/components/announcements.js
rename to app/javascript/mastodon/features/getting_started/components/announcements.jsx
diff --git a/app/javascript/mastodon/features/getting_started/components/trends.js b/app/javascript/mastodon/features/getting_started/components/trends.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/components/trends.js
rename to app/javascript/mastodon/features/getting_started/components/trends.jsx
diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/getting_started/index.js
rename to app/javascript/mastodon/features/getting_started/index.jsx
diff --git a/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js b/app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/hashtag_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/hashtag_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/hashtag_timeline/index.js b/app/javascript/mastodon/features/hashtag_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/hashtag_timeline/index.js
rename to app/javascript/mastodon/features/hashtag_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/home_timeline/components/column_settings.js b/app/javascript/mastodon/features/home_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/home_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/home_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/home_timeline/index.js
rename to app/javascript/mastodon/features/home_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/interaction_modal/index.js b/app/javascript/mastodon/features/interaction_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/interaction_modal/index.js
rename to app/javascript/mastodon/features/interaction_modal/index.jsx
diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/keyboard_shortcuts/index.js
rename to app/javascript/mastodon/features/keyboard_shortcuts/index.jsx
diff --git a/app/javascript/mastodon/features/list_adder/components/account.js b/app/javascript/mastodon/features/list_adder/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/components/account.js
rename to app/javascript/mastodon/features/list_adder/components/account.jsx
diff --git a/app/javascript/mastodon/features/list_adder/components/list.js b/app/javascript/mastodon/features/list_adder/components/list.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/components/list.js
rename to app/javascript/mastodon/features/list_adder/components/list.jsx
diff --git a/app/javascript/mastodon/features/list_adder/index.js b/app/javascript/mastodon/features/list_adder/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_adder/index.js
rename to app/javascript/mastodon/features/list_adder/index.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/account.js b/app/javascript/mastodon/features/list_editor/components/account.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/account.js
rename to app/javascript/mastodon/features/list_editor/components/account.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/edit_list_form.js b/app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/edit_list_form.js
rename to app/javascript/mastodon/features/list_editor/components/edit_list_form.jsx
diff --git a/app/javascript/mastodon/features/list_editor/components/search.js b/app/javascript/mastodon/features/list_editor/components/search.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/components/search.js
rename to app/javascript/mastodon/features/list_editor/components/search.jsx
diff --git a/app/javascript/mastodon/features/list_editor/index.js b/app/javascript/mastodon/features/list_editor/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_editor/index.js
rename to app/javascript/mastodon/features/list_editor/index.jsx
diff --git a/app/javascript/mastodon/features/list_timeline/index.js b/app/javascript/mastodon/features/list_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/list_timeline/index.js
rename to app/javascript/mastodon/features/list_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/lists/components/new_list_form.js b/app/javascript/mastodon/features/lists/components/new_list_form.jsx
similarity index 100%
rename from app/javascript/mastodon/features/lists/components/new_list_form.js
rename to app/javascript/mastodon/features/lists/components/new_list_form.jsx
diff --git a/app/javascript/mastodon/features/lists/index.js b/app/javascript/mastodon/features/lists/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/lists/index.js
rename to app/javascript/mastodon/features/lists/index.jsx
diff --git a/app/javascript/mastodon/features/mutes/index.js b/app/javascript/mastodon/features/mutes/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/mutes/index.js
rename to app/javascript/mastodon/features/mutes/index.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/clear_column_button.js b/app/javascript/mastodon/features/notifications/components/clear_column_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/clear_column_button.js
rename to app/javascript/mastodon/features/notifications/components/clear_column_button.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/column_settings.js b/app/javascript/mastodon/features/notifications/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/column_settings.js
rename to app/javascript/mastodon/features/notifications/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/filter_bar.js b/app/javascript/mastodon/features/notifications/components/filter_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/filter_bar.js
rename to app/javascript/mastodon/features/notifications/components/filter_bar.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/follow_request.js b/app/javascript/mastodon/features/notifications/components/follow_request.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/follow_request.js
rename to app/javascript/mastodon/features/notifications/components/follow_request.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/grant_permission_button.js b/app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/grant_permission_button.js
rename to app/javascript/mastodon/features/notifications/components/grant_permission_button.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/notification.js b/app/javascript/mastodon/features/notifications/components/notification.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/notification.js
rename to app/javascript/mastodon/features/notifications/components/notification.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js b/app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/notifications_permission_banner.js
rename to app/javascript/mastodon/features/notifications/components/notifications_permission_banner.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/report.js b/app/javascript/mastodon/features/notifications/components/report.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/report.js
rename to app/javascript/mastodon/features/notifications/components/report.jsx
diff --git a/app/javascript/mastodon/features/notifications/components/setting_toggle.js b/app/javascript/mastodon/features/notifications/components/setting_toggle.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/components/setting_toggle.js
rename to app/javascript/mastodon/features/notifications/components/setting_toggle.jsx
diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/notifications/index.js
rename to app/javascript/mastodon/features/notifications/index.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/components/footer.js b/app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/components/footer.js
rename to app/javascript/mastodon/features/picture_in_picture/components/footer.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/components/header.js b/app/javascript/mastodon/features/picture_in_picture/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/components/header.js
rename to app/javascript/mastodon/features/picture_in_picture/components/header.jsx
diff --git a/app/javascript/mastodon/features/picture_in_picture/index.js b/app/javascript/mastodon/features/picture_in_picture/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/picture_in_picture/index.js
rename to app/javascript/mastodon/features/picture_in_picture/index.jsx
diff --git a/app/javascript/mastodon/features/pinned_statuses/index.js b/app/javascript/mastodon/features/pinned_statuses/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/pinned_statuses/index.js
rename to app/javascript/mastodon/features/pinned_statuses/index.jsx
diff --git a/app/javascript/mastodon/features/privacy_policy/index.js b/app/javascript/mastodon/features/privacy_policy/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/privacy_policy/index.js
rename to app/javascript/mastodon/features/privacy_policy/index.jsx
diff --git a/app/javascript/mastodon/features/public_timeline/components/column_settings.js b/app/javascript/mastodon/features/public_timeline/components/column_settings.jsx
similarity index 100%
rename from app/javascript/mastodon/features/public_timeline/components/column_settings.js
rename to app/javascript/mastodon/features/public_timeline/components/column_settings.jsx
diff --git a/app/javascript/mastodon/features/public_timeline/index.js b/app/javascript/mastodon/features/public_timeline/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/public_timeline/index.js
rename to app/javascript/mastodon/features/public_timeline/index.jsx
diff --git a/app/javascript/mastodon/features/reblogs/index.js b/app/javascript/mastodon/features/reblogs/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/reblogs/index.js
rename to app/javascript/mastodon/features/reblogs/index.jsx
diff --git a/app/javascript/mastodon/features/report/category.js b/app/javascript/mastodon/features/report/category.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/category.js
rename to app/javascript/mastodon/features/report/category.jsx
diff --git a/app/javascript/mastodon/features/report/comment.js b/app/javascript/mastodon/features/report/comment.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/comment.js
rename to app/javascript/mastodon/features/report/comment.jsx
diff --git a/app/javascript/mastodon/features/report/components/option.js b/app/javascript/mastodon/features/report/components/option.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/components/option.js
rename to app/javascript/mastodon/features/report/components/option.jsx
diff --git a/app/javascript/mastodon/features/report/components/status_check_box.js b/app/javascript/mastodon/features/report/components/status_check_box.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/components/status_check_box.js
rename to app/javascript/mastodon/features/report/components/status_check_box.jsx
diff --git a/app/javascript/mastodon/features/report/rules.js b/app/javascript/mastodon/features/report/rules.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/rules.js
rename to app/javascript/mastodon/features/report/rules.jsx
diff --git a/app/javascript/mastodon/features/report/statuses.js b/app/javascript/mastodon/features/report/statuses.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/statuses.js
rename to app/javascript/mastodon/features/report/statuses.jsx
diff --git a/app/javascript/mastodon/features/report/thanks.js b/app/javascript/mastodon/features/report/thanks.jsx
similarity index 100%
rename from app/javascript/mastodon/features/report/thanks.js
rename to app/javascript/mastodon/features/report/thanks.jsx
diff --git a/app/javascript/mastodon/features/standalone/compose/index.js b/app/javascript/mastodon/features/standalone/compose/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/standalone/compose/index.js
rename to app/javascript/mastodon/features/standalone/compose/index.jsx
diff --git a/app/javascript/mastodon/features/status/components/action_bar.js b/app/javascript/mastodon/features/status/components/action_bar.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/action_bar.js
rename to app/javascript/mastodon/features/status/components/action_bar.jsx
diff --git a/app/javascript/mastodon/features/status/components/card.js b/app/javascript/mastodon/features/status/components/card.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/card.js
rename to app/javascript/mastodon/features/status/components/card.jsx
diff --git a/app/javascript/mastodon/features/status/components/detailed_status.js b/app/javascript/mastodon/features/status/components/detailed_status.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/components/detailed_status.js
rename to app/javascript/mastodon/features/status/components/detailed_status.jsx
diff --git a/app/javascript/mastodon/features/status/index.js b/app/javascript/mastodon/features/status/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/status/index.js
rename to app/javascript/mastodon/features/status/index.jsx
diff --git a/app/javascript/mastodon/features/subscribed_languages_modal/index.js b/app/javascript/mastodon/features/subscribed_languages_modal/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/subscribed_languages_modal/index.js
rename to app/javascript/mastodon/features/subscribed_languages_modal/index.jsx
diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/__tests__/column-test.js
rename to app/javascript/mastodon/features/ui/components/__tests__/column-test.jsx
diff --git a/app/javascript/mastodon/features/ui/components/actions_modal.js b/app/javascript/mastodon/features/ui/components/actions_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/actions_modal.js
rename to app/javascript/mastodon/features/ui/components/actions_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/audio_modal.js b/app/javascript/mastodon/features/ui/components/audio_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/audio_modal.js
rename to app/javascript/mastodon/features/ui/components/audio_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/block_modal.js b/app/javascript/mastodon/features/ui/components/block_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/block_modal.js
rename to app/javascript/mastodon/features/ui/components/block_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/boost_modal.js b/app/javascript/mastodon/features/ui/components/boost_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/boost_modal.js
rename to app/javascript/mastodon/features/ui/components/boost_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle.js b/app/javascript/mastodon/features/ui/components/bundle.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle.js
rename to app/javascript/mastodon/features/ui/components/bundle.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle_column_error.js b/app/javascript/mastodon/features/ui/components/bundle_column_error.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle_column_error.js
rename to app/javascript/mastodon/features/ui/components/bundle_column_error.jsx
diff --git a/app/javascript/mastodon/features/ui/components/bundle_modal_error.js b/app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/bundle_modal_error.js
rename to app/javascript/mastodon/features/ui/components/bundle_modal_error.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column.js b/app/javascript/mastodon/features/ui/components/column.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column.js
rename to app/javascript/mastodon/features/ui/components/column.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_header.js
rename to app/javascript/mastodon/features/ui/components/column_header.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_link.js b/app/javascript/mastodon/features/ui/components/column_link.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_link.js
rename to app/javascript/mastodon/features/ui/components/column_link.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_loading.js b/app/javascript/mastodon/features/ui/components/column_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_loading.js
rename to app/javascript/mastodon/features/ui/components/column_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/column_subheading.js b/app/javascript/mastodon/features/ui/components/column_subheading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/column_subheading.js
rename to app/javascript/mastodon/features/ui/components/column_subheading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/columns_area.js
rename to app/javascript/mastodon/features/ui/components/columns_area.jsx
diff --git a/app/javascript/mastodon/features/ui/components/compare_history_modal.js b/app/javascript/mastodon/features/ui/components/compare_history_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/compare_history_modal.js
rename to app/javascript/mastodon/features/ui/components/compare_history_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/compose_panel.js b/app/javascript/mastodon/features/ui/components/compose_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/compose_panel.js
rename to app/javascript/mastodon/features/ui/components/compose_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/confirmation_modal.js b/app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/confirmation_modal.js
rename to app/javascript/mastodon/features/ui/components/confirmation_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/disabled_account_banner.js b/app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/disabled_account_banner.js
rename to app/javascript/mastodon/features/ui/components/disabled_account_banner.jsx
diff --git a/app/javascript/mastodon/features/ui/components/drawer_loading.js b/app/javascript/mastodon/features/ui/components/drawer_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/drawer_loading.js
rename to app/javascript/mastodon/features/ui/components/drawer_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/embed_modal.js b/app/javascript/mastodon/features/ui/components/embed_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/embed_modal.js
rename to app/javascript/mastodon/features/ui/components/embed_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/filter_modal.js b/app/javascript/mastodon/features/ui/components/filter_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/filter_modal.js
rename to app/javascript/mastodon/features/ui/components/filter_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/focal_point_modal.js
rename to app/javascript/mastodon/features/ui/components/focal_point_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/follow_requests_column_link.js b/app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/follow_requests_column_link.js
rename to app/javascript/mastodon/features/ui/components/follow_requests_column_link.jsx
diff --git a/app/javascript/mastodon/features/ui/components/header.js b/app/javascript/mastodon/features/ui/components/header.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/header.js
rename to app/javascript/mastodon/features/ui/components/header.jsx
diff --git a/app/javascript/mastodon/features/ui/components/image_loader.js b/app/javascript/mastodon/features/ui/components/image_loader.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/image_loader.js
rename to app/javascript/mastodon/features/ui/components/image_loader.jsx
diff --git a/app/javascript/mastodon/features/ui/components/image_modal.js b/app/javascript/mastodon/features/ui/components/image_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/image_modal.js
rename to app/javascript/mastodon/features/ui/components/image_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/link_footer.js b/app/javascript/mastodon/features/ui/components/link_footer.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/link_footer.js
rename to app/javascript/mastodon/features/ui/components/link_footer.jsx
diff --git a/app/javascript/mastodon/features/ui/components/list_panel.js b/app/javascript/mastodon/features/ui/components/list_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/list_panel.js
rename to app/javascript/mastodon/features/ui/components/list_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/media_modal.js b/app/javascript/mastodon/features/ui/components/media_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/media_modal.js
rename to app/javascript/mastodon/features/ui/components/media_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/modal_loading.js b/app/javascript/mastodon/features/ui/components/modal_loading.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/modal_loading.js
rename to app/javascript/mastodon/features/ui/components/modal_loading.jsx
diff --git a/app/javascript/mastodon/features/ui/components/modal_root.js b/app/javascript/mastodon/features/ui/components/modal_root.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/modal_root.js
rename to app/javascript/mastodon/features/ui/components/modal_root.jsx
diff --git a/app/javascript/mastodon/features/ui/components/mute_modal.js b/app/javascript/mastodon/features/ui/components/mute_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/mute_modal.js
rename to app/javascript/mastodon/features/ui/components/mute_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/navigation_panel.js
rename to app/javascript/mastodon/features/ui/components/navigation_panel.jsx
diff --git a/app/javascript/mastodon/features/ui/components/report_modal.js b/app/javascript/mastodon/features/ui/components/report_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/report_modal.js
rename to app/javascript/mastodon/features/ui/components/report_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/sign_in_banner.js b/app/javascript/mastodon/features/ui/components/sign_in_banner.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/sign_in_banner.js
rename to app/javascript/mastodon/features/ui/components/sign_in_banner.jsx
diff --git a/app/javascript/mastodon/features/ui/components/upload_area.js b/app/javascript/mastodon/features/ui/components/upload_area.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/upload_area.js
rename to app/javascript/mastodon/features/ui/components/upload_area.jsx
diff --git a/app/javascript/mastodon/features/ui/components/video_modal.js b/app/javascript/mastodon/features/ui/components/video_modal.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/video_modal.js
rename to app/javascript/mastodon/features/ui/components/video_modal.jsx
diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.js b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/components/zoomable_image.js
rename to app/javascript/mastodon/features/ui/components/zoomable_image.jsx
diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/index.js
rename to app/javascript/mastodon/features/ui/index.jsx
diff --git a/app/javascript/mastodon/features/ui/util/react_router_helpers.js b/app/javascript/mastodon/features/ui/util/react_router_helpers.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/util/react_router_helpers.js
rename to app/javascript/mastodon/features/ui/util/react_router_helpers.jsx
diff --git a/app/javascript/mastodon/features/ui/util/reduced_motion.js b/app/javascript/mastodon/features/ui/util/reduced_motion.jsx
similarity index 100%
rename from app/javascript/mastodon/features/ui/util/reduced_motion.js
rename to app/javascript/mastodon/features/ui/util/reduced_motion.jsx
diff --git a/app/javascript/mastodon/features/video/index.js b/app/javascript/mastodon/features/video/index.jsx
similarity index 100%
rename from app/javascript/mastodon/features/video/index.js
rename to app/javascript/mastodon/features/video/index.jsx
diff --git a/app/javascript/mastodon/main.js b/app/javascript/mastodon/main.jsx
similarity index 100%
rename from app/javascript/mastodon/main.js
rename to app/javascript/mastodon/main.jsx
diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.jsx
similarity index 100%
rename from app/javascript/mastodon/utils/icons.js
rename to app/javascript/mastodon/utils/icons.jsx
diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.jsx
similarity index 100%
rename from app/javascript/packs/admin.js
rename to app/javascript/packs/admin.jsx
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.jsx
similarity index 100%
rename from app/javascript/packs/public.js
rename to app/javascript/packs/public.jsx
diff --git a/app/javascript/packs/share.js b/app/javascript/packs/share.jsx
similarity index 100%
rename from app/javascript/packs/share.js
rename to app/javascript/packs/share.jsx
diff --git a/config/webpacker.yml b/config/webpacker.yml
index 4ad78a190e..0baff662b0 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -35,6 +35,7 @@ default: &default
extensions:
- .mjs
- .js
+ - .jsx
- .sass
- .scss
- .css
diff --git a/package.json b/package.json
index 57ee85b716..06af9045e9 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"start": "node ./streaming/index.js",
"test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest",
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
- "test:lint:js": "eslint --ext=js . --cache --report-unused-disable-directives",
+ "test:lint:js": "eslint --ext=.js,.jsx . --cache --report-unused-disable-directives",
"test:lint:sass": "stylelint \"**/*.{css,scss}\" && prettier --check \"**/*.{css,scss}\"",
"test:jest": "cross-env NODE_ENV=test jest",
"format": "prettier --write .",
From 63e63538861bd850a38a282e37de046639afa993 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:36 -0500
Subject: [PATCH 0087/1254] Autofix Rubocop Rails/EnumHash (#23737)
---
.rubocop_todo.yml | 16 ----------------
app/models/account.rb | 4 ++--
app/models/custom_filter.rb | 2 +-
app/models/domain_block.rb | 2 +-
app/models/import.rb | 2 +-
app/models/list.rb | 2 +-
app/models/media_attachment.rb | 4 ++--
app/models/preview_card.rb | 4 ++--
app/models/relay.rb | 2 +-
app/models/status.rb | 2 +-
10 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index c452d1bd2c..7cb4d55e04 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1871,22 +1871,6 @@ Rails/DuplicateAssociation:
- 'app/serializers/activitypub/collection_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
-# Offense count: 12
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: Include.
-# Include: app/models/**/*.rb
-Rails/EnumHash:
- Exclude:
- - 'app/models/account.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/domain_block.rb'
- - 'app/models/import.rb'
- - 'app/models/list.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/preview_card.rb'
- - 'app/models/relay.rb'
- - 'app/models/status.rb'
-
# Offense count: 76
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
diff --git a/app/models/account.rb b/app/models/account.rb
index 2c0cd577e6..d33110d55e 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -78,8 +78,8 @@ class Account < ApplicationRecord
include DomainMaterializable
include AccountMerging
- enum protocol: [:ostatus, :activitypub]
- enum suspension_origin: [:local, :remote], _prefix: true
+ enum protocol: { ostatus: 0, activitypub: 1 }
+ enum suspension_origin: { local: 0, remote: 1 }, _prefix: true
validates :username, presence: true
validates_with UniqueUsernameValidator, if: -> { will_save_change_to_username? }
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index b70e53bd53..781bf4db88 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -30,7 +30,7 @@ class CustomFilter < ApplicationRecord
include Expireable
include Redisable
- enum action: [:warn, :hide], _suffix: :action
+ enum action: { warn: 0, hide: 1 }, _suffix: :action
belongs_to :account
has_many :keywords, class_name: 'CustomFilterKeyword', inverse_of: :custom_filter, dependent: :destroy
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index 8e298ac9d7..190f5ba2e4 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -20,7 +20,7 @@ class DomainBlock < ApplicationRecord
include DomainNormalizable
include DomainMaterializable
- enum severity: [:silence, :suspend, :noop]
+ enum severity: { silence: 0, suspend: 1, noop: 2 }
validates :domain, presence: true, uniqueness: true, domain: true
diff --git a/app/models/import.rb b/app/models/import.rb
index 00a54892ef..cd33eb07b0 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -24,7 +24,7 @@ class Import < ApplicationRecord
belongs_to :account
- enum type: [:following, :blocking, :muting, :domain_blocking, :bookmarks]
+ enum type: { following: 0, blocking: 1, muting: 2, domain_blocking: 3, bookmarks: 4 }
validates :type, presence: true
validates_with ImportValidator, on: :create
diff --git a/app/models/list.rb b/app/models/list.rb
index cdc6ebdb37..7b8cf66362 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -16,7 +16,7 @@ class List < ApplicationRecord
PER_ACCOUNT_LIMIT = 50
- enum replies_policy: [:list, :followed, :none], _prefix: :show
+ enum replies_policy: { list: 0, followed: 1, none: 2 }, _prefix: :show
belongs_to :account, optional: true
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index 5916b0b4b3..c6f2352e03 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -33,8 +33,8 @@ class MediaAttachment < ApplicationRecord
include Attachmentable
- enum type: [:image, :gifv, :video, :unknown, :audio]
- enum processing: [:queued, :in_progress, :complete, :failed], _prefix: true
+ enum type: { :image => 0, :gifv => 1, :video => 2, :unknown => 3, :audio => 4 }
+ enum processing: { :queued => 0, :in_progress => 1, :complete => 2, :failed => 3 }, _prefix: true
MAX_DESCRIPTION_LENGTH = 1_500
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index 56ca62d5ec..d25fe6dad1 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -44,8 +44,8 @@ class PreviewCard < ApplicationRecord
self.inheritance_column = false
- enum type: [:link, :photo, :video, :rich]
- enum link_type: [:unknown, :article]
+ enum type: { link: 0, photo: 1, video: 2, rich: 3 }
+ enum link_type: { unknown: 0, article: 1 }
has_and_belongs_to_many :statuses
has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy
diff --git a/app/models/relay.rb b/app/models/relay.rb
index c66bfe4ffe..e9c425743f 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -14,7 +14,7 @@
class Relay < ApplicationRecord
validates :inbox_url, presence: true, uniqueness: true, url: true, if: :will_save_change_to_inbox_url?
- enum state: [:idle, :pending, :accepted, :rejected]
+ enum state: { idle: 0, pending: 1, accepted: 2, rejected: 3 }
scope :enabled, -> { accepted }
diff --git a/app/models/status.rb b/app/models/status.rb
index e0ad291035..44a297a088 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -48,7 +48,7 @@ class Status < ApplicationRecord
update_index('statuses', :proper)
- enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility
+ enum visibility: { public: 0, unlisted: 1, private: 2, direct: 3, limited: 4 }, _suffix: :visibility
belongs_to :application, class_name: 'Doorkeeper::Application', optional: true
From 38a1d8bb85da6c7a52a3bde28af368b8d2104d02 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:48 -0500
Subject: [PATCH 0088/1254] Autofix Rubocop RSpec/ImplicitSubject (#23721)
---
.rubocop_todo.yml | 86 ++++++-------------
app/serializers/initial_state_serializer.rb | 1 -
.../admin/accounts_controller_spec.rb | 32 +++----
.../admin/instances_controller_spec.rb | 4 +-
.../application_controller_spec.rb | 2 +-
spec/controllers/home_controller_spec.rb | 4 +-
.../relationships_controller_spec.rb | 2 +-
.../settings/featured_tags_controller_spec.rb | 2 +-
.../settings/migrations_controller_spec.rb | 18 ++--
.../settings/sessions_controller_spec.rb | 4 +-
spec/features/log_in_spec.rb | 6 +-
spec/features/profile_spec.rb | 4 +-
spec/lib/emoji_formatter_spec.rb | 8 +-
spec/lib/entity_cache_spec.rb | 2 +-
spec/lib/html_aware_formatter_spec.rb | 8 +-
spec/lib/ostatus/tag_manager_spec.rb | 6 +-
spec/lib/plain_text_formatter_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 78 ++++++++---------
.../concerns/account_interactions_spec.rb | 86 +++++++++----------
spec/models/custom_emoji_spec.rb | 12 +--
spec/models/media_attachment_spec.rb | 10 +--
spec/models/notification_spec.rb | 2 +-
spec/models/remote_follow_spec.rb | 10 +--
spec/models/report_spec.rb | 4 +-
spec/models/session_activation_spec.rb | 6 +-
spec/models/setting_spec.rb | 4 +-
26 files changed, 184 insertions(+), 221 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 7cb4d55e04..4c3b3ecb6d 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1,6 +1,6 @@
# This configuration was generated by
# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit`
-# on 2023-02-16 05:53:07 UTC using RuboCop version 1.45.1.
+# on 2023-02-19 06:22:09 UTC using RuboCop version 1.45.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
@@ -162,7 +162,7 @@ Layout/HashAlignment:
- 'spec/models/admin/account_action_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
-# Offense count: 577
+# Offense count: 581
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
@@ -305,18 +305,17 @@ Lint/Void:
Exclude:
- 'spec/services/resolve_account_service_spec.rb'
-# Offense count: 65
+# Offense count: 66
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
Enabled: false
-# Offense count: 11
+# Offense count: 10
# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
Exclude:
- 'app/models/concerns/account_interactions.rb'
- - 'app/models/concerns/omniauthable.rb'
- 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- 'lib/tasks/branding.rake'
@@ -335,7 +334,7 @@ Metrics/BlockNesting:
Metrics/CyclomaticComplexity:
Enabled: false
-# Offense count: 40
+# Offense count: 35
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
Metrics/MethodLength:
Enabled: false
@@ -936,37 +935,6 @@ RSpec/HookArgument:
- 'spec/services/import_service_spec.rb'
- 'spec/spec_helper.rb'
-# Offense count: 159
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: single_line_only, single_statement_only, disallow, require_implicit
-RSpec/ImplicitSubject:
- Exclude:
- - 'spec/controllers/admin/accounts_controller_spec.rb'
- - 'spec/controllers/admin/instances_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/home_controller_spec.rb'
- - 'spec/controllers/relationships_controller_spec.rb'
- - 'spec/controllers/settings/featured_tags_controller_spec.rb'
- - 'spec/controllers/settings/migrations_controller_spec.rb'
- - 'spec/controllers/settings/sessions_controller_spec.rb'
- - 'spec/features/log_in_spec.rb'
- - 'spec/features/profile_spec.rb'
- - 'spec/lib/emoji_formatter_spec.rb'
- - 'spec/lib/entity_cache_spec.rb'
- - 'spec/lib/html_aware_formatter_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/plain_text_formatter_spec.rb'
- - 'spec/lib/text_formatter_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
- - 'spec/models/custom_emoji_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/notification_spec.rb'
- - 'spec/models/remote_follow_spec.rb'
- - 'spec/models/report_spec.rb'
- - 'spec/models/session_activation_spec.rb'
- - 'spec/models/setting_spec.rb'
-
# Offense count: 101
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
@@ -1199,7 +1167,7 @@ RSpec/MissingExampleGroupArgument:
RSpec/MultipleExpectations:
Max: 19
-# Offense count: 443
+# Offense count: 442
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
Max: 21
@@ -1216,7 +1184,7 @@ RSpec/MultipleSubjects:
- 'spec/controllers/follower_accounts_controller_spec.rb'
- 'spec/controllers/following_accounts_controller_spec.rb'
-# Offense count: 1252
+# Offense count: 1407
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
@@ -1226,6 +1194,7 @@ RSpec/NamedSubject:
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/custom_emojis_controller_spec.rb'
- 'spec/controllers/admin/domain_blocks_controller_spec.rb'
+ - 'spec/controllers/admin/instances_controller_spec.rb'
- 'spec/controllers/admin/invites_controller_spec.rb'
- 'spec/controllers/admin/report_notes_controller_spec.rb'
- 'spec/controllers/api/v1/accounts/notes_controller_spec.rb'
@@ -1233,13 +1202,18 @@ RSpec/NamedSubject:
- 'spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb'
- 'spec/controllers/auth/passwords_controller_spec.rb'
- 'spec/controllers/auth/registrations_controller_spec.rb'
+ - 'spec/controllers/home_controller_spec.rb'
- 'spec/controllers/invites_controller_spec.rb'
- 'spec/controllers/oauth/authorizations_controller_spec.rb'
- 'spec/controllers/oauth/authorized_applications_controller_spec.rb'
- 'spec/controllers/relationships_controller_spec.rb'
- 'spec/controllers/settings/featured_tags_controller_spec.rb'
+ - 'spec/controllers/settings/migrations_controller_spec.rb'
+ - 'spec/controllers/settings/sessions_controller_spec.rb'
- 'spec/controllers/settings/two_factor_authentication/confirmations_controller_spec.rb'
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
+ - 'spec/features/log_in_spec.rb'
+ - 'spec/features/profile_spec.rb'
- 'spec/lib/activitypub/activity/accept_spec.rb'
- 'spec/lib/activitypub/activity/add_spec.rb'
- 'spec/lib/activitypub/activity/announce_spec.rb'
@@ -1262,16 +1236,21 @@ RSpec/NamedSubject:
- 'spec/lib/connection_pool/shared_timed_stack_spec.rb'
- 'spec/lib/delivery_failure_tracker_spec.rb'
- 'spec/lib/emoji_formatter_spec.rb'
+ - 'spec/lib/entity_cache_spec.rb'
- 'spec/lib/fast_ip_map_spec.rb'
- 'spec/lib/feed_manager_spec.rb'
- 'spec/lib/hashtag_normalizer_spec.rb'
+ - 'spec/lib/html_aware_formatter_spec.rb'
- 'spec/lib/link_details_extractor_spec.rb'
+ - 'spec/lib/ostatus/tag_manager_spec.rb'
+ - 'spec/lib/plain_text_formatter_spec.rb'
- 'spec/lib/request_pool_spec.rb'
- 'spec/lib/request_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
- 'spec/lib/status_finder_spec.rb'
- 'spec/lib/status_reach_finder_spec.rb'
- 'spec/lib/suspicious_sign_in_detector_spec.rb'
+ - 'spec/lib/text_formatter_spec.rb'
- 'spec/lib/vacuum/access_tokens_vacuum_spec.rb'
- 'spec/lib/vacuum/backups_vacuum_spec.rb'
- 'spec/lib/vacuum/feeds_vacuum_spec.rb'
@@ -1288,11 +1267,17 @@ RSpec/NamedSubject:
- 'spec/models/canonical_email_block_spec.rb'
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/custom_emoji_filter_spec.rb'
+ - 'spec/models/custom_emoji_spec.rb'
- 'spec/models/follow_spec.rb'
- 'spec/models/home_feed_spec.rb'
+ - 'spec/models/media_attachment_spec.rb'
- 'spec/models/notification_spec.rb'
- 'spec/models/public_feed_spec.rb'
- 'spec/models/relationship_filter_spec.rb'
+ - 'spec/models/remote_follow_spec.rb'
+ - 'spec/models/report_spec.rb'
+ - 'spec/models/session_activation_spec.rb'
+ - 'spec/models/setting_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/tag_spec.rb'
- 'spec/models/trends/statuses_spec.rb'
@@ -2347,46 +2332,25 @@ Style/FormatStringToken:
Style/FrozenStringLiteralComment:
Enabled: false
-# Offense count: 69
+# Offense count: 34
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
Style/GuardClause:
Exclude:
- 'app/controllers/admin/confirmations_controller.rb'
- - 'app/controllers/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/statuses_controller.rb'
- - 'app/controllers/api/v1/blocks_controller.rb'
- - 'app/controllers/api/v1/conversations_controller.rb'
- - 'app/controllers/api/v1/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/endorsements_controller.rb'
- - 'app/controllers/api/v1/favourites_controller.rb'
- - 'app/controllers/api/v1/follow_requests_controller.rb'
- - 'app/controllers/api/v1/lists/accounts_controller.rb'
- - 'app/controllers/api/v1/mutes_controller.rb'
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
- - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
- 'app/controllers/auth/confirmations_controller.rb'
- 'app/controllers/auth/passwords_controller.rb'
- - 'app/controllers/filters/statuses_controller.rb'
- 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
- 'app/lib/activitypub/activity/block.rb'
- - 'app/lib/activitypub/linked_data_signature.rb'
- 'app/lib/connection_pool/shared_connection_pool.rb'
- 'app/lib/request.rb'
- 'app/lib/request_pool.rb'
- - 'app/lib/status_finder.rb'
- 'app/lib/webfinger.rb'
- 'app/lib/webfinger_resource.rb'
- - 'app/models/account_statuses_cleanup_policy.rb'
- 'app/models/concerns/account_counters.rb'
- 'app/models/concerns/ldap_authenticable.rb'
- 'app/models/tag.rb'
- 'app/models/user.rb'
- - 'app/serializers/rest/instance_serializer.rb'
- 'app/services/fan_out_on_write_service.rb'
- 'app/services/post_status_service.rb'
- 'app/services/process_hashtags_service.rb'
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index fa1ddc6d39..7905444e98 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -65,7 +65,6 @@ class InitialStateSerializer < ActiveModel::Serializer
store
end
- # rubocop:enable Metrics/AbcSize
def compose
store = {}
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index f5d68a8adb..fdc98ed461 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -83,7 +83,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -92,7 +92,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'succeeds in memorializing account' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
expect(account.reload).to be_memorial
end
end
@@ -105,7 +105,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -114,7 +114,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'fails to memorialize account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(account.reload).to_not be_memorial
end
end
@@ -132,7 +132,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in enabling account' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
expect(user.reload).to_not be_disabled
end
end
@@ -141,7 +141,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to enable account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to be_disabled
end
end
@@ -162,12 +162,12 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in approving account' do
- is_expected.to redirect_to admin_accounts_path(status: 'pending')
+ expect(subject).to redirect_to admin_accounts_path(status: 'pending')
expect(user.reload).to be_approved
end
it 'logs action' do
- is_expected.to have_http_status 302
+ expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
@@ -182,7 +182,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to approve account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -203,11 +203,11 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in rejecting account' do
- is_expected.to redirect_to admin_accounts_path(status: 'pending')
+ expect(subject).to redirect_to admin_accounts_path(status: 'pending')
end
it 'logs action' do
- is_expected.to have_http_status 302
+ expect(subject).to have_http_status 302
log_item = Admin::ActionLog.last
@@ -222,7 +222,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to reject account' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
expect(user.reload).to_not be_approved
end
end
@@ -242,7 +242,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in redownloading' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
end
end
@@ -250,7 +250,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to redownload' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
@@ -265,7 +265,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in removing avatar' do
- is_expected.to redirect_to admin_account_path(account.id)
+ expect(subject).to redirect_to admin_account_path(account.id)
end
end
@@ -273,7 +273,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index a7e348b1ca..4716e486a2 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -42,7 +42,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in purging instance' do
- is_expected.to redirect_to admin_instances_path
+ expect(subject).to redirect_to admin_instances_path
end
end
@@ -50,7 +50,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
let(:role) { nil }
it 'fails to purge instance' do
- is_expected.to have_http_status 403
+ expect(subject).to have_http_status 403
end
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index f14c451de1..e2a63002b6 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -28,7 +28,7 @@ describe ApplicationController, type: :controller do
end
it 'renders template for http' do
- is_expected.to render_template("errors/#{code}", layout: 'error')
+ expect(subject).to render_template("errors/#{code}", layout: 'error')
end
end
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
index d845ae01d7..2409bf42c6 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/home_controller_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe HomeController, type: :controller do
context 'when not signed in' do
it 'returns http success' do
@request.path = '/'
- is_expected.to have_http_status(:success)
+ expect(subject).to have_http_status(:success)
end
end
@@ -21,7 +21,7 @@ RSpec.describe HomeController, type: :controller do
end
it 'returns http success' do
- is_expected.to have_http_status(:success)
+ expect(subject).to have_http_status(:success)
end
end
end
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index cd09cf50b6..4c4227d663 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -7,7 +7,7 @@ describe RelationshipsController do
shared_examples 'authenticate user' do
it 'redirects when not signed in' do
- is_expected.to redirect_to '/auth/sign_in'
+ expect(subject).to redirect_to '/auth/sign_in'
end
end
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
index 33b87f9f67..fc338672d5 100644
--- a/spec/controllers/settings/featured_tags_controller_spec.rb
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -5,7 +5,7 @@ describe Settings::FeaturedTagsController do
shared_examples 'authenticate user' do
it 'redirects to sign_in page' do
- is_expected.to redirect_to new_user_session_path
+ expect(subject).to redirect_to new_user_session_path
end
end
diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb
index 4ce153c9df..8159bb21b1 100644
--- a/spec/controllers/settings/migrations_controller_spec.rb
+++ b/spec/controllers/settings/migrations_controller_spec.rb
@@ -5,7 +5,7 @@ describe Settings::MigrationsController do
shared_examples 'authenticate user' do
it 'redirects to sign_in page' do
- is_expected.to redirect_to new_user_session_path
+ expect(subject).to redirect_to new_user_session_path
end
end
@@ -27,8 +27,8 @@ describe Settings::MigrationsController do
let(:moved_to_account) { nil }
it 'renders show page' do
- is_expected.to have_http_status 200
- is_expected.to render_template :show
+ expect(subject).to have_http_status 200
+ expect(subject).to render_template :show
end
end
@@ -36,8 +36,8 @@ describe Settings::MigrationsController do
let(:moved_to_account) { Fabricate(:account) }
it 'renders show page' do
- is_expected.to have_http_status 200
- is_expected.to render_template :show
+ expect(subject).to have_http_status 200
+ expect(subject).to render_template :show
end
end
end
@@ -61,7 +61,7 @@ describe Settings::MigrationsController do
let(:acct) { Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(user.account)]) }
it 'updates moved to account' do
- is_expected.to redirect_to settings_migration_path
+ expect(subject).to redirect_to settings_migration_path
expect(user.account.reload.moved_to_account_id).to eq acct.id
end
end
@@ -70,7 +70,7 @@ describe Settings::MigrationsController do
let(:acct) { user.account }
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
@@ -82,7 +82,7 @@ describe Settings::MigrationsController do
let(:acct) { Fabricate(:account, also_known_as: []) }
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
@@ -99,7 +99,7 @@ describe Settings::MigrationsController do
end
it 'renders show' do
- is_expected.to render_template :show
+ expect(subject).to render_template :show
end
it 'does not update the moved account' do
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index 59c18889ec..fdf46d9473 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -15,7 +15,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id }
it 'destroys session activation' do
- is_expected.to redirect_to edit_user_registration_path
+ expect(subject).to redirect_to edit_user_registration_path
expect(SessionActivation.find_by(id: id)).to be_nil
end
end
@@ -24,7 +24,7 @@ describe Settings::SessionsController do
let(:id) { session_activation.id + 1000 }
it 'destroys session activation' do
- is_expected.to have_http_status 404
+ expect(subject).to have_http_status 404
end
end
end
diff --git a/spec/features/log_in_spec.rb b/spec/features/log_in_spec.rb
index 5ae738ee26..934575ea63 100644
--- a/spec/features/log_in_spec.rb
+++ b/spec/features/log_in_spec.rb
@@ -21,7 +21,7 @@ describe 'Log in' do
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
- is_expected.to have_css('div.app-holder')
+ expect(subject).to have_css('div.app-holder')
end
it 'A invalid email and password user is not able to log in' do
@@ -29,7 +29,7 @@ describe 'Log in' do
fill_in 'user_password', with: 'invalid_password'
click_on I18n.t('auth.login')
- is_expected.to have_css('.flash-message', text: failure_message('invalid'))
+ expect(subject).to have_css('.flash-message', text: failure_message('invalid'))
end
context do
@@ -40,7 +40,7 @@ describe 'Log in' do
fill_in 'user_password', with: password
click_on I18n.t('auth.login')
- is_expected.to have_css('div.admin-wrapper')
+ expect(subject).to have_css('div.admin-wrapper')
end
end
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index d1c6919c1a..421b68a169 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -17,7 +17,7 @@ describe 'Profile' do
it 'I can view Annes public account' do
visit account_path('alice')
- is_expected.to have_title("alice (@alice@#{local_domain})")
+ expect(subject).to have_title("alice (@alice@#{local_domain})")
end
it 'I can change my account' do
@@ -28,6 +28,6 @@ describe 'Profile' do
first('button[type=submit]').click
- is_expected.to have_content 'Changes successfully saved!'
+ expect(subject).to have_content 'Changes successfully saved!'
end
end
diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb
index e1747bdd9d..c6fe8cf377 100644
--- a/spec/lib/emoji_formatter_spec.rb
+++ b/spec/lib/emoji_formatter_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe EmojiFormatter do
let(:text) { preformat_text(':coolcat: Beep boop') }
it 'converts the shortcode to an image tag' do
- is_expected.to match(/Foo bar
'
+ expect(subject).to eq '
Foo bar
'
end
end
@@ -20,7 +20,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { 'Beep boop' }
it 'keeps the plain text' do
- is_expected.to include 'Beep boop'
+ expect(subject).to include 'Beep boop'
end
end
@@ -28,7 +28,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { '' }
it 'strips the scripts' do
- is_expected.to_not include ''
+ expect(subject).to_not include ''
end
end
@@ -36,7 +36,7 @@ RSpec.describe HtmlAwareFormatter do
let(:text) { 'Show more' }
it 'strips the malicious classes' do
- is_expected.to_not include 'status__content__spoiler-link'
+ expect(subject).to_not include 'status__content__spoiler-link'
end
end
end
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
index 31195bae21..65ba7577ac 100644
--- a/spec/lib/ostatus/tag_manager_spec.rb
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -45,7 +45,7 @@ describe OStatus::TagManager do
it 'returns the unique tag for status' do
expect(target.object_type).to eq :comment
- is_expected.to eq target.uri
+ expect(subject).to eq target.uri
end
end
@@ -54,7 +54,7 @@ describe OStatus::TagManager do
it 'returns the unique tag for status' do
expect(target.object_type).to eq :note
- is_expected.to eq target.uri
+ expect(subject).to eq target.uri
end
end
@@ -63,7 +63,7 @@ describe OStatus::TagManager do
it 'returns the URL for account' do
expect(target.object_type).to eq :person
- is_expected.to eq 'https://cb6e6126.ngrok.io/users/alice'
+ expect(subject).to eq 'https://cb6e6126.ngrok.io/users/alice'
end
end
end
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index c3d0ee6301..0e5f39031d 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe PlainTextFormatter do
let(:status) { Fabricate(:status, text: '
a text by a nerd who uses an HTML tag in text
', uri: nil) }
it 'returns the raw text' do
- is_expected.to eq '
a text by a nerd who uses an HTML tag in text
'
+ expect(subject).to eq '
a text by a nerd who uses an HTML tag in text
'
end
end
@@ -17,7 +17,7 @@ RSpec.describe PlainTextFormatter do
let(:status) { Fabricate(:status, account: remote_account, text: '
Hello
') }
it 'returns tag-stripped text' do
- is_expected.to eq 'Hello'
+ expect(subject).to eq 'Hello'
end
end
end
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index cc742b65e6..63a9075c7c 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe TextFormatter do
let(:text) { 'text' }
it 'paragraphizes the text' do
- is_expected.to eq '
text
'
+ expect(subject).to eq '
text
'
end
end
@@ -18,7 +18,7 @@ RSpec.describe TextFormatter do
let(:text) { "line\nfeed" }
it 'removes line feeds' do
- is_expected.to_not include "\n"
+ expect(subject).to_not include "\n"
end
end
@@ -27,7 +27,7 @@ RSpec.describe TextFormatter do
let(:text) { '@alice' }
it 'creates a mention link' do
- is_expected.to include '@alice'
+ expect(subject).to include '@alice'
end
end
@@ -36,7 +36,7 @@ RSpec.describe TextFormatter do
let(:text) { '@alice' }
it 'does not create a mention link' do
- is_expected.to include '@alice'
+ expect(subject).to include '@alice'
end
end
@@ -44,7 +44,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4' }
it 'matches the full URL' do
- is_expected.to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"'
+ expect(subject).to include 'href="https://hackernoon.com/the-power-to-build-communities-a-response-to-mark-zuckerberg-3f2cac9148a4"'
end
end
@@ -52,7 +52,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://google.com' }
it 'matches the full URL' do
- is_expected.to include 'href="http://google.com"'
+ expect(subject).to include 'href="http://google.com"'
end
end
@@ -60,7 +60,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.gay' }
it 'matches the full URL' do
- is_expected.to include 'href="http://example.gay"'
+ expect(subject).to include 'href="http://example.gay"'
end
end
@@ -68,11 +68,11 @@ RSpec.describe TextFormatter do
let(:text) { 'https://nic.みんな/' }
it 'matches the full URL' do
- is_expected.to include 'href="https://nic.みんな/"'
+ expect(subject).to include 'href="https://nic.みんな/"'
end
it 'has display URL' do
- is_expected.to include 'nic.みんな/'
+ expect(subject).to include 'nic.みんな/'
end
end
@@ -80,7 +80,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona. ' }
it 'matches the full URL but not the period' do
- is_expected.to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"'
+ expect(subject).to include 'href="http://www.mcmansionhell.com/post/156408871451/50-states-of-mcmansion-hell-scottsdale-arizona"'
end
end
@@ -88,7 +88,7 @@ RSpec.describe TextFormatter do
let(:text) { '(http://google.com/)' }
it 'matches the full URL but not the parentheses' do
- is_expected.to include 'href="http://google.com/"'
+ expect(subject).to include 'href="http://google.com/"'
end
end
@@ -96,7 +96,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.google.com!' }
it 'matches the full URL but not the exclamation point' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -104,7 +104,7 @@ RSpec.describe TextFormatter do
let(:text) { "http://www.google.com'" }
it 'matches the full URL but not the single quote' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -112,7 +112,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www.google.com>' }
it 'matches the full URL but not the angle bracket' do
- is_expected.to include 'href="http://www.google.com"'
+ expect(subject).to include 'href="http://www.google.com"'
end
end
@@ -121,7 +121,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&q=autolink"'
end
end
@@ -129,7 +129,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓&q=autolink' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓&q=autolink"'
end
end
@@ -137,7 +137,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=✓' }
it 'matches the full URL' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=✓"'
end
end
@@ -145,7 +145,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink' }
it 'preserves escaped unicode characters' do
- is_expected.to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"'
+ expect(subject).to include 'href="https://www.ruby-toolbox.com/search?utf8=%E2%9C%93&utf81=✓&q=autolink"'
end
end
end
@@ -154,7 +154,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://en.wikipedia.org/wiki/Diaspora_(software)' }
it 'matches the full URL' do
- is_expected.to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"'
+ expect(subject).to include 'href="https://en.wikipedia.org/wiki/Diaspora_(software)"'
end
end
@@ -162,7 +162,7 @@ RSpec.describe TextFormatter do
let(:text) { '"https://example.com/"' }
it 'does not match the quotation marks' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -170,7 +170,7 @@ RSpec.describe TextFormatter do
let(:text) { '' }
it 'does not match the angle brackets' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -178,7 +178,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://ja.wikipedia.org/wiki/日本' }
it 'matches the full URL' do
- is_expected.to include 'href="https://ja.wikipedia.org/wiki/日本"'
+ expect(subject).to include 'href="https://ja.wikipedia.org/wiki/日本"'
end
end
@@ -186,7 +186,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://ko.wikipedia.org/wiki/대한민국' }
it 'matches the full URL' do
- is_expected.to include 'href="https://ko.wikipedia.org/wiki/대한민국"'
+ expect(subject).to include 'href="https://ko.wikipedia.org/wiki/대한민국"'
end
end
@@ -194,7 +194,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://example.com/ abc123' }
it 'does not match the full-width space' do
- is_expected.to include 'href="https://example.com/"'
+ expect(subject).to include 'href="https://example.com/"'
end
end
@@ -202,7 +202,7 @@ RSpec.describe TextFormatter do
let(:text) { '「[https://example.org/」' }
it 'does not match the quotation marks' do
- is_expected.to include 'href="https://example.org/"'
+ expect(subject).to include 'href="https://example.org/"'
end
end
@@ -210,7 +210,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://baike.baidu.com/item/中华人民共和国' }
it 'matches the full URL' do
- is_expected.to include 'href="https://baike.baidu.com/item/中华人民共和国"'
+ expect(subject).to include 'href="https://baike.baidu.com/item/中华人民共和国"'
end
end
@@ -218,7 +218,7 @@ RSpec.describe TextFormatter do
let(:text) { 'https://zh.wikipedia.org/wiki/臺灣' }
it 'matches the full URL' do
- is_expected.to include 'href="https://zh.wikipedia.org/wiki/臺灣"'
+ expect(subject).to include 'href="https://zh.wikipedia.org/wiki/臺灣"'
end
end
@@ -226,11 +226,11 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.com/bb' }
it 'does not include the HTML in the URL' do
- is_expected.to include '"http://example.com/b"'
+ expect(subject).to include '"http://example.com/b"'
end
it 'escapes the HTML' do
- is_expected.to include '<del>b</del>'
+ expect(subject).to include '<del>b</del>'
end
end
@@ -238,11 +238,11 @@ RSpec.describe TextFormatter do
let(:text) { 'http://example.com/blahblahblahblah/a' }
it 'does not include the HTML in the URL' do
- is_expected.to include '"http://example.com/blahblahblahblah/a"'
+ expect(subject).to include '"http://example.com/blahblahblahblah/a"'
end
it 'escapes the HTML' do
- is_expected.to include '<script>alert("Hello")</script>'
+ expect(subject).to include '<script>alert("Hello")</script>'
end
end
@@ -250,7 +250,7 @@ RSpec.describe TextFormatter do
let(:text) { '' }
it 'escapes the HTML' do
- is_expected.to include '
<script>alert("Hello")</script>
'
+ expect(subject).to include '
<script>alert("Hello")</script>
'
end
end
@@ -258,7 +258,7 @@ RSpec.describe TextFormatter do
let(:text) { %q{} }
it 'escapes the HTML' do
- is_expected.to include '
<img src="javascript:alert('XSS');">
'
+ expect(subject).to include '
<img src="javascript:alert('XSS');">
'
end
end
@@ -266,7 +266,7 @@ RSpec.describe TextFormatter do
let(:text) { 'http://www\.google\.com' }
it 'outputs the raw URL' do
- is_expected.to eq '
http://www\.google\.com
'
+ expect(subject).to eq '
http://www\.google\.com
'
end
end
@@ -274,7 +274,7 @@ RSpec.describe TextFormatter do
let(:text) { '#hashtag' }
it 'creates a hashtag link' do
- is_expected.to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag'
+ expect(subject).to include '/tags/hashtag" class="mention hashtag" rel="tag">#hashtag'
end
end
@@ -282,7 +282,7 @@ RSpec.describe TextFormatter do
let(:text) { '#hashtagタグ' }
it 'creates a hashtag link' do
- is_expected.to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ'
+ expect(subject).to include '/tags/hashtag%E3%82%BF%E3%82%B0" class="mention hashtag" rel="tag">#hashtagタグ'
end
end
@@ -290,7 +290,7 @@ RSpec.describe TextFormatter do
let(:text) { 'xmpp:user@instance.com' }
it 'matches the full URI' do
- is_expected.to include 'href="xmpp:user@instance.com"'
+ expect(subject).to include 'href="xmpp:user@instance.com"'
end
end
@@ -298,7 +298,7 @@ RSpec.describe TextFormatter do
let(:text) { 'please join xmpp:muc@instance.com?join right now' }
it 'matches the full URI' do
- is_expected.to include 'href="xmpp:muc@instance.com?join"'
+ expect(subject).to include 'href="xmpp:muc@instance.com?join"'
end
end
@@ -306,7 +306,7 @@ RSpec.describe TextFormatter do
let(:text) { 'wikipedia gives this example of a magnet uri: magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a' }
it 'matches the full URI' do
- is_expected.to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"'
+ expect(subject).to include 'href="magnet:?xt=urn:btih:c12fe1c06bba254a9dc9f519b335aa7c1367a88a"'
end
end
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index b2d84308b5..fbfc9fbbc5 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -14,13 +14,13 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => true }' do
Fabricate(:follow, account: account, target_account: target_account)
- is_expected.to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
+ expect(subject).to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
end
end
context 'account without Follow' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -31,13 +31,13 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => true }' do
Fabricate(:follow, account: target_account, target_account: account)
- is_expected.to eq(target_account_id => true)
+ expect(subject).to eq(target_account_id => true)
end
end
context 'account without Follow' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -48,13 +48,13 @@ describe AccountInteractions do
context 'account with Block' do
it 'returns { target_account_id => true }' do
Fabricate(:block, account: account, target_account: target_account)
- is_expected.to eq(target_account_id => true)
+ expect(subject).to eq(target_account_id => true)
end
end
context 'account without Block' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -71,7 +71,7 @@ describe AccountInteractions do
let(:hide) { true }
it 'returns { target_account_id => { notifications: true } }' do
- is_expected.to eq(target_account_id => { notifications: true })
+ expect(subject).to eq(target_account_id => { notifications: true })
end
end
@@ -79,14 +79,14 @@ describe AccountInteractions do
let(:hide) { false }
it 'returns { target_account_id => { notifications: false } }' do
- is_expected.to eq(target_account_id => { notifications: false })
+ expect(subject).to eq(target_account_id => { notifications: false })
end
end
end
context 'account without Mute' do
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
end
@@ -231,7 +231,7 @@ describe AccountInteractions do
it 'creates and returns ConversationMute' do
expect do
- is_expected.to be_a ConversationMute
+ expect(subject).to be_a ConversationMute
end.to change { account.conversation_mutes.count }.by 1
end
end
@@ -243,7 +243,7 @@ describe AccountInteractions do
it 'creates and returns AccountDomainBlock' do
expect do
- is_expected.to be_a AccountDomainBlock
+ expect(subject).to be_a AccountDomainBlock
end.to change { account.domain_blocks.count }.by 1
end
end
@@ -254,14 +254,14 @@ describe AccountInteractions do
context 'following target_account' do
it 'returns destroyed Follow' do
account.active_relationships.create(target_account: target_account)
- is_expected.to be_a Follow
+ expect(subject).to be_a Follow
expect(subject).to be_destroyed
end
end
context 'not following target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -272,14 +272,14 @@ describe AccountInteractions do
context 'blocking target_account' do
it 'returns destroyed Block' do
account.block_relationships.create(target_account: target_account)
- is_expected.to be_a Block
+ expect(subject).to be_a Block
expect(subject).to be_destroyed
end
end
context 'not blocking target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -290,14 +290,14 @@ describe AccountInteractions do
context 'muting target_account' do
it 'returns destroyed Mute' do
account.mute_relationships.create(target_account: target_account)
- is_expected.to be_a Mute
+ expect(subject).to be_a Mute
expect(subject).to be_destroyed
end
end
context 'not muting target_account' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -310,14 +310,14 @@ describe AccountInteractions do
context 'muting the conversation' do
it 'returns destroyed ConversationMute' do
account.conversation_mutes.create(conversation: conversation)
- is_expected.to be_a ConversationMute
+ expect(subject).to be_a ConversationMute
expect(subject).to be_destroyed
end
end
context 'not muting the conversation' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -331,14 +331,14 @@ describe AccountInteractions do
it 'returns destroyed AccountDomainBlock' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
account.domain_blocks << account_domain_block
- is_expected.to be_a AccountDomainBlock
+ expect(subject).to be_a AccountDomainBlock
expect(subject).to be_destroyed
end
end
context 'unblocking the domain' do
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -349,13 +349,13 @@ describe AccountInteractions do
context 'following target_account' do
it 'returns true' do
account.active_relationships.create(target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not following target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -366,13 +366,13 @@ describe AccountInteractions do
context 'followed by target_account' do
it 'returns true' do
account.passive_relationships.create(account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not followed by target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -383,13 +383,13 @@ describe AccountInteractions do
context 'blocking target_account' do
it 'returns true' do
account.block_relationships.create(target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not blocking target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -403,13 +403,13 @@ describe AccountInteractions do
it 'returns true' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
account.domain_blocks << account_domain_block
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not blocking the domain' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -421,13 +421,13 @@ describe AccountInteractions do
it 'returns true' do
mute = Fabricate(:mute, account: account, target_account: target_account)
account.mute_relationships << mute
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not muting target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -440,13 +440,13 @@ describe AccountInteractions do
context 'muting the conversation' do
it 'returns true' do
account.conversation_mutes.create(conversation: conversation)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not muting the conversation' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -463,7 +463,7 @@ describe AccountInteractions do
let(:hide) { true }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -471,7 +471,7 @@ describe AccountInteractions do
let(:hide) { false }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -482,13 +482,13 @@ describe AccountInteractions do
context 'requested by target_account' do
it 'returns true' do
Fabricate(:follow_request, account: account, target_account: target_account)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not requested by target_account' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -502,7 +502,7 @@ describe AccountInteractions do
let(:favourites) { [Fabricate(:favourite, account: account)] }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -510,7 +510,7 @@ describe AccountInteractions do
let(:favourites) { [] }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -524,7 +524,7 @@ describe AccountInteractions do
let(:reblogs) { [Fabricate(:status, account: account)] }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -532,7 +532,7 @@ describe AccountInteractions do
let(:reblogs) { [] }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -545,13 +545,13 @@ describe AccountInteractions do
context 'pinned' do
it 'returns true' do
Fabricate(:status_pin, account: account, status: status)
- is_expected.to be true
+ expect(subject).to be true
end
end
context 'not pinned' do
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index f9e1099c60..1fc112db3c 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:search_term) { 'blobpats' }
it 'finds emoji' do
- is_expected.to include(custom_emoji)
+ expect(subject).to include(custom_emoji)
end
end
@@ -20,7 +20,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:search_term) { 'blob' }
it 'finds emoji' do
- is_expected.to include(custom_emoji)
+ expect(subject).to include(custom_emoji)
end
end
end
@@ -34,7 +34,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:domain) { nil }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -42,7 +42,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:domain) { 'example.com' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -63,7 +63,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:text) { 'Hello :coolcat:' }
it 'returns records used via shortcodes in text' do
- is_expected.to include(emojo)
+ expect(subject).to include(emojo)
end
end
@@ -71,7 +71,7 @@ RSpec.describe CustomEmoji, type: :model do
let(:text) { '
Hello :coolcat:
' }
it 'returns records used via shortcodes in text' do
- is_expected.to include(emojo)
+ expect(subject).to include(emojo)
end
end
end
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index d1a94d41a1..8889d5f7c4 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -10,7 +10,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { '' }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -18,7 +18,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -35,7 +35,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
end
@@ -47,7 +47,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { '' }
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
@@ -55,7 +55,7 @@ RSpec.describe MediaAttachment, type: :model do
let(:remote_url) { 'remote_url' }
it 'returns true' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index 1e9e45d8d6..a8fb776390 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe Notification, type: :model do
let(:notifications) { [] }
it 'returns []' do
- is_expected.to eq []
+ expect(subject).to eq []
end
end
diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb
index 5b4c19b5bb..c6bbecf25b 100644
--- a/spec/models/remote_follow_spec.rb
+++ b/spec/models/remote_follow_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
it 'returns acct' do
- is_expected.to eq 'gargron@quitter.no'
+ expect(subject).to eq 'gargron@quitter.no'
end
end
@@ -25,7 +25,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { {} }
it do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
end
@@ -37,7 +37,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
it do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -45,7 +45,7 @@ RSpec.describe RemoteFollow do
let(:attrs) { {} }
it do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
@@ -61,7 +61,7 @@ RSpec.describe RemoteFollow do
subject { remote_follow.subscribe_address_for(account) }
it 'returns subscribe address' do
- is_expected.to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
+ expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
end
end
end
diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb
index 874be41328..3178512974 100644
--- a/spec/models/report_spec.rb
+++ b/spec/models/report_spec.rb
@@ -33,7 +33,7 @@ describe Report do
end
it 'assigns to a given account' do
- is_expected.to eq current_account.id
+ expect(subject).to eq current_account.id
end
end
@@ -48,7 +48,7 @@ describe Report do
end
it 'unassigns' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
diff --git a/spec/models/session_activation_spec.rb b/spec/models/session_activation_spec.rb
index 26f2b561a1..375199d575 100644
--- a/spec/models/session_activation_spec.rb
+++ b/spec/models/session_activation_spec.rb
@@ -44,7 +44,7 @@ RSpec.describe SessionActivation, type: :model do
let(:id) { nil }
it 'returns nil' do
- is_expected.to be_nil
+ expect(subject).to be_nil
end
end
@@ -54,7 +54,7 @@ RSpec.describe SessionActivation, type: :model do
context 'id exists as session_id' do
it 'returns true' do
- is_expected.to be true
+ expect(subject).to be true
end
end
@@ -64,7 +64,7 @@ RSpec.describe SessionActivation, type: :model do
end
it 'returns false' do
- is_expected.to be false
+ expect(subject).to be false
end
end
end
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 0772230943..86fdf4e087 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -173,7 +173,7 @@ RSpec.describe Setting, type: :model do
let(:enabled) { false }
it 'returns {}' do
- is_expected.to eq({})
+ expect(subject).to eq({})
end
end
@@ -181,7 +181,7 @@ RSpec.describe Setting, type: :model do
let(:enabled) { true }
it 'returns instance of RailsSettings::Default' do
- is_expected.to be_a RailsSettings::Default
+ expect(subject).to be_a RailsSettings::Default
end
end
end
From 4ea1e0fceb0c0c5fee014a99f81f8f13a16f6dde Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:00:59 -0500
Subject: [PATCH 0089/1254] Enable Rubocop RSpec/ExpectActual (#23720)
---
.rubocop_todo.yml | 6 ------
spec/controllers/well_known/nodeinfo_controller_spec.rb | 3 ++-
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 4c3b3ecb6d..eb0910fe6c 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -821,12 +821,6 @@ RSpec/EmptyExampleGroup:
RSpec/ExampleLength:
Max: 22
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/ExpectActual:
- Exclude:
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
-
# Offense count: 21
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index e9436cd262..0cadc54357 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -26,8 +26,9 @@ describe WellKnown::NodeInfoController, type: :controller do
expect(response.media_type).to eq 'application/json'
json = body_as_json
+ foo = { 'foo' => 0 }
- expect({ 'foo' => 0 }).to_not match_json_schema('nodeinfo_2.0')
+ expect(foo).to_not match_json_schema('nodeinfo_2.0')
expect(json).to match_json_schema('nodeinfo_2.0')
expect(json[:version]).to eq '2.0'
expect(json[:usage]).to be_a Hash
From 4552685f6bd400666ec4058783eeabb11568e575 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 19 Feb 2023 23:24:14 -0500
Subject: [PATCH 0090/1254] Autofix Rubocop RSpec/LeadingSubject (#23670)
---
.rubocop_todo.yml | 82 -------------------
.../collections_controller_spec.rb | 4 +-
...lowers_synchronizations_controller_spec.rb | 4 +-
.../activitypub/inboxes_controller_spec.rb | 4 +-
.../activitypub/outboxes_controller_spec.rb | 4 +-
.../admin/invites_controller_spec.rb | 4 +-
.../auth/registrations_controller_spec.rb | 64 +++++++--------
.../well_known/webfinger_controller_spec.rb | 8 +-
spec/lib/activitypub/activity/accept_spec.rb | 4 +-
.../lib/activitypub/activity/announce_spec.rb | 8 +-
spec/lib/activitypub/activity/create_spec.rb | 16 ++--
spec/lib/activitypub/activity/reject_spec.rb | 4 +-
spec/lib/activitypub/activity/undo_spec.rb | 4 +-
spec/lib/activitypub/activity/update_spec.rb | 4 +-
spec/lib/activitypub/adapter_spec.rb | 4 +-
spec/lib/activitypub/dereferencer_spec.rb | 4 +-
.../activitypub/linked_data_signature_spec.rb | 4 +-
spec/lib/link_details_extractor_spec.rb | 4 +-
spec/lib/status_filter_spec.rb | 4 +-
spec/lib/status_reach_finder_spec.rb | 4 +-
spec/lib/suspicious_sign_in_detector_spec.rb | 4 +-
spec/lib/text_formatter_spec.rb | 4 +-
spec/lib/vacuum/backups_vacuum_spec.rb | 4 +-
.../vacuum/media_attachments_vacuum_spec.rb | 4 +-
spec/lib/vacuum/preview_cards_vacuum_spec.rb | 4 +-
spec/lib/vacuum/statuses_vacuum_spec.rb | 4 +-
spec/models/account/field_spec.rb | 12 +--
spec/models/account_spec.rb | 16 ++--
.../account_statuses_cleanup_policy_spec.rb | 20 ++---
spec/models/account_statuses_filter_spec.rb | 4 +-
.../concerns/account_interactions_spec.rb | 40 ++++-----
spec/models/custom_emoji_filter_spec.rb | 4 +-
spec/models/custom_emoji_spec.rb | 12 +--
spec/models/home_feed_spec.rb | 4 +-
spec/models/media_attachment_spec.rb | 8 +-
spec/models/public_feed_spec.rb | 16 ++--
spec/models/remote_follow_spec.rb | 4 +-
spec/models/setting_spec.rb | 4 +-
spec/models/status_spec.rb | 16 ++--
spec/models/user_spec.rb | 4 +-
spec/models/web/push_subscription_spec.rb | 4 +-
.../familiar_followers_presenter_spec.rb | 4 +-
spec/serializers/activitypub/note_spec.rb | 4 +-
.../activitypub/update_poll_spec.rb | 4 +-
.../rest/account_serializer_spec.rb | 4 +-
.../fetch_featured_collection_service_spec.rb | 4 +-
...h_featured_tags_collection_service_spec.rb | 4 +-
.../fetch_remote_status_service_spec.rb | 4 +-
.../activitypub/fetch_replies_service_spec.rb | 4 +-
.../process_account_service_spec.rb | 8 +-
.../process_collection_service_spec.rb | 4 +-
.../process_status_update_service_spec.rb | 4 +-
.../synchronize_followers_service_spec.rb | 4 +-
..._block_domain_from_account_service_spec.rb | 4 +-
spec/services/app_sign_up_service_spec.rb | 4 +-
.../services/authorize_follow_service_spec.rb | 4 +-
spec/services/block_domain_service_spec.rb | 4 +-
spec/services/block_service_spec.rb | 4 +-
.../clear_domain_media_service_spec.rb | 4 +-
spec/services/delete_account_service_spec.rb | 4 +-
.../services/fan_out_on_write_service_spec.rb | 4 +-
spec/services/favourite_service_spec.rb | 4 +-
spec/services/fetch_resource_service_spec.rb | 4 +-
spec/services/follow_service_spec.rb | 4 +-
.../services/process_mentions_service_spec.rb | 4 +-
spec/services/purge_domain_service_spec.rb | 4 +-
spec/services/reblog_service_spec.rb | 8 +-
spec/services/reject_follow_service_spec.rb | 4 +-
.../remove_from_follwers_service_spec.rb | 4 +-
spec/services/report_service_spec.rb | 12 +--
spec/services/suspend_account_service_spec.rb | 4 +-
spec/services/unallow_domain_service_spec.rb | 4 +-
spec/services/unblock_service_spec.rb | 4 +-
spec/services/unfollow_service_spec.rb | 4 +-
.../unsuspend_account_service_spec.rb | 4 +-
.../blacklisted_email_validator_spec.rb | 4 +-
spec/workers/move_worker_spec.rb | 4 +-
spec/workers/unfollow_follow_worker_spec.rb | 4 +-
78 files changed, 256 insertions(+), 338 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index eb0910fe6c..1eb039110e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -952,88 +952,6 @@ RSpec/InstanceVariable:
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
-# Offense count: 118
-# This cop supports safe autocorrection (--autocorrect).
-RSpec/LeadingSubject:
- Exclude:
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/admin/invites_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/well_known/webfinger_controller_spec.rb'
- - 'spec/lib/activitypub/activity/accept_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/reject_spec.rb'
- - 'spec/lib/activitypub/activity/undo_spec.rb'
- - 'spec/lib/activitypub/activity/update_spec.rb'
- - 'spec/lib/activitypub/adapter_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/linked_data_signature_spec.rb'
- - 'spec/lib/link_details_extractor_spec.rb'
- - 'spec/lib/status_filter_spec.rb'
- - 'spec/lib/status_reach_finder_spec.rb'
- - 'spec/lib/suspicious_sign_in_detector_spec.rb'
- - 'spec/lib/text_formatter_spec.rb'
- - 'spec/lib/vacuum/backups_vacuum_spec.rb'
- - 'spec/lib/vacuum/media_attachments_vacuum_spec.rb'
- - 'spec/lib/vacuum/preview_cards_vacuum_spec.rb'
- - 'spec/lib/vacuum/statuses_vacuum_spec.rb'
- - 'spec/models/account/field_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/models/account_statuses_filter_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
- - 'spec/models/custom_emoji_filter_spec.rb'
- - 'spec/models/custom_emoji_spec.rb'
- - 'spec/models/home_feed_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/public_feed_spec.rb'
- - 'spec/models/remote_follow_spec.rb'
- - 'spec/models/setting_spec.rb'
- - 'spec/models/status_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/web/push_subscription_spec.rb'
- - 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
- - 'spec/serializers/rest/account_serializer_spec.rb'
- - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/fetch_replies_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_collection_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/activitypub/synchronize_followers_service_spec.rb'
- - 'spec/services/after_block_domain_from_account_service_spec.rb'
- - 'spec/services/app_sign_up_service_spec.rb'
- - 'spec/services/authorize_follow_service_spec.rb'
- - 'spec/services/block_domain_service_spec.rb'
- - 'spec/services/block_service_spec.rb'
- - 'spec/services/clear_domain_media_service_spec.rb'
- - 'spec/services/delete_account_service_spec.rb'
- - 'spec/services/fan_out_on_write_service_spec.rb'
- - 'spec/services/favourite_service_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
- - 'spec/services/follow_service_spec.rb'
- - 'spec/services/process_mentions_service_spec.rb'
- - 'spec/services/purge_domain_service_spec.rb'
- - 'spec/services/reblog_service_spec.rb'
- - 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
- - 'spec/services/report_service_spec.rb'
- - 'spec/services/suspend_account_service_spec.rb'
- - 'spec/services/unallow_domain_service_spec.rb'
- - 'spec/services/unblock_service_spec.rb'
- - 'spec/services/unfollow_service_spec.rb'
- - 'spec/services/unsuspend_account_service_spec.rb'
- - 'spec/validators/blacklisted_email_validator_spec.rb'
- - 'spec/workers/move_worker_spec.rb'
- - 'spec/workers/unfollow_follow_worker_spec.rb'
-
# Offense count: 15
RSpec/LeakyConstantDeclaration:
Exclude:
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 19c0e0a646..77901131e7 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -35,11 +35,11 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
describe 'GET #show' do
context 'when id is "featured"' do
context 'without signature' do
- let(:remote_account) { nil }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { id: 'featured', account_username: account.username } }
- subject(:body) { body_as_json }
+ let(:remote_account) { nil }
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index 893c8e14f1..6ec756d3cf 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -32,11 +32,11 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
end
context 'with signature from example.com' do
- let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { account_username: account.username } }
- subject(:body) { body_as_json }
+ let(:remote_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/instance') }
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 7f4d6b2d3e..8d4084648d 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -22,10 +22,10 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
end
context 'for a specific account' do
- let(:account) { Fabricate(:account) }
-
subject(:response) { post :create, params: { account_username: account.username }, body: '{}' }
+ let(:account) { Fabricate(:account) }
+
context 'when account is permanently suspended' do
before do
account.suspend!
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index f84a902ea1..7369ee4134 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -33,11 +33,11 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
describe 'GET #show' do
context 'without signature' do
- let(:remote_account) { nil }
+ subject(:body) { body_as_json }
subject(:response) { get :show, params: { account_username: account.username, page: page } }
- subject(:body) { body_as_json }
+ let(:remote_account) { nil }
context 'with page not requested' do
let(:page) { nil }
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb
index 1fb4887423..92ec4e4491 100644
--- a/spec/controllers/admin/invites_controller_spec.rb
+++ b/spec/controllers/admin/invites_controller_spec.rb
@@ -33,10 +33,10 @@ describe Admin::InvitesController do
end
describe 'DELETE #destroy' do
- let!(:invite) { Fabricate(:invite, expires_at: nil) }
-
subject { delete :destroy, params: { id: invite.id } }
+ let!(:invite) { Fabricate(:invite, expires_at: nil) }
+
it 'expires invite' do
expect(subject).to redirect_to admin_invites_path
expect(invite.reload).to be_expired
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 52023eb2ef..8cfb8e277a 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -95,18 +95,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
before { request.env['devise.mapping'] = Devise.mappings[:user] }
context do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'open'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -121,18 +121,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'when user has not agreed to terms of service' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'open'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'false' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'does not create user' do
subject
user = User.find_by(email: 'test@example.com')
@@ -141,18 +141,18 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations without invite' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'approved'
request.headers['Accept-Language'] = accept_language
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -168,12 +168,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations with expired invite' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- example.run
- Setting.registrations_mode = registrations_mode
- end
-
subject do
Setting.registrations_mode = 'approved'
request.headers['Accept-Language'] = accept_language
@@ -181,6 +175,12 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ example.run
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
@@ -196,14 +196,6 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
end
context 'approval-based registrations with valid invite and required invite text' do
- around do |example|
- registrations_mode = Setting.registrations_mode
- require_invite_text = Setting.require_invite_text
- example.run
- Setting.require_invite_text = require_invite_text
- Setting.registrations_mode = registrations_mode
- end
-
subject do
inviter = Fabricate(:user, confirmed_at: 2.days.ago)
Setting.registrations_mode = 'approved'
@@ -213,6 +205,14 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
post :create, params: { user: { account_attributes: { username: 'test' }, email: 'test@example.com', password: '12345678', password_confirmation: '12345678', invite_code: invite.code, agreement: 'true' } }
end
+ around do |example|
+ registrations_mode = Setting.registrations_mode
+ require_invite_text = Setting.require_invite_text
+ example.run
+ Setting.require_invite_text = require_invite_text
+ Setting.registrations_mode = registrations_mode
+ end
+
it 'redirects to setup' do
subject
expect(response).to redirect_to auth_setup_path
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
index 8574d369d1..1ccfb218e8 100644
--- a/spec/controllers/well_known/webfinger_controller_spec.rb
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -4,6 +4,10 @@ describe WellKnown::WebfingerController, type: :controller do
render_views
describe 'GET #show' do
+ subject do
+ get :show, params: { resource: resource }, format: :json
+ end
+
let(:alternate_domains) { [] }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:resource) { nil }
@@ -15,10 +19,6 @@ describe WellKnown::WebfingerController, type: :controller do
Rails.configuration.x.alternate_domains = tmp
end
- subject do
- get :show, params: { resource: resource }, format: :json
- end
-
shared_examples 'a successful response' do
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb
index 304cf2208a..95a5a8747d 100644
--- a/spec/lib/activitypub/activity/accept_spec.rb
+++ b/spec/lib/activitypub/activity/accept_spec.rb
@@ -42,6 +42,8 @@ RSpec.describe ActivityPub::Activity::Accept do
end
context 'given a relay' do
+ subject { described_class.new(json, sender) }
+
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
let(:json) do
@@ -59,8 +61,6 @@ RSpec.describe ActivityPub::Activity::Accept do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
it 'marks the relay as accepted' do
subject.perform
expect(relay.reload.accepted?).to be true
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index adb13acc21..b3257e881f 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Announce do
+ subject { described_class.new(json, sender) }
+
let(:sender) { Fabricate(:account, followers_url: 'http://example.com/followers', uri: 'https://example.com/actor') }
let(:recipient) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: recipient) }
@@ -27,8 +29,6 @@ RSpec.describe ActivityPub::Activity::Announce do
}
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'when sender is followed by a local account' do
before do
@@ -110,13 +110,13 @@ RSpec.describe ActivityPub::Activity::Announce do
end
context 'when the sender is relayed' do
+ subject { described_class.new(json, sender, relayed_through_actor: relay_account) }
+
let!(:relay_account) { Fabricate(:account, inbox_url: 'https://relay.example.com/inbox') }
let!(:relay) { Fabricate(:relay, inbox_url: 'https://relay.example.com/inbox') }
let(:object_json) { 'https://example.com/actor/hello-world' }
- subject { described_class.new(json, sender, relayed_through_actor: relay_account) }
-
before do
stub_request(:get, 'https://example.com/actor/hello-world').to_return(body: Oj.dump(unknown_object_json))
end
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index ddbdb07aa8..c26c8b3580 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -752,6 +752,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'with an encrypted message' do
+ subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
+
let(:recipient) { Fabricate(:account) }
let(:object_json) do
{
@@ -776,8 +778,6 @@ RSpec.describe ActivityPub::Activity::Create do
end
let(:target_device) { Fabricate(:device, account: recipient) }
- subject { described_class.new(json, sender, delivery: true, delivered_to_account_id: recipient.id) }
-
before do
subject.perform
end
@@ -831,6 +831,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender replies to local status' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_status) { Fabricate(:status) }
let(:object_json) do
{
@@ -841,8 +843,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
@@ -856,6 +856,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender targets a local user' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_account) { Fabricate(:account) }
let(:object_json) do
{
@@ -866,8 +868,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
@@ -881,6 +881,8 @@ RSpec.describe ActivityPub::Activity::Create do
end
context 'when sender cc\'s a local user' do
+ subject { described_class.new(json, sender, delivery: true) }
+
let!(:local_account) { Fabricate(:account) }
let(:object_json) do
{
@@ -891,8 +893,6 @@ RSpec.describe ActivityPub::Activity::Create do
}
end
- subject { described_class.new(json, sender, delivery: true) }
-
before do
subject.perform
end
diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb
index fed4cd8cdc..7f04db4e61 100644
--- a/spec/lib/activitypub/activity/reject_spec.rb
+++ b/spec/lib/activitypub/activity/reject_spec.rb
@@ -121,6 +121,8 @@ RSpec.describe ActivityPub::Activity::Reject do
end
context 'given a relay' do
+ subject { described_class.new(json, sender) }
+
let!(:relay) { Fabricate(:relay, state: :pending, follow_activity_id: 'https://abc-123/456') }
let(:json) do
@@ -138,8 +140,6 @@ RSpec.describe ActivityPub::Activity::Reject do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
it 'marks the relay as rejected' do
subject.perform
expect(relay.reload.rejected?).to be true
diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb
index c0309e49da..0bd1f17d35 100644
--- a/spec/lib/activitypub/activity/undo_spec.rb
+++ b/spec/lib/activitypub/activity/undo_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Undo do
+ subject { described_class.new(json, sender) }
+
let(:sender) { Fabricate(:account, domain: 'example.com') }
let(:json) do
@@ -13,8 +15,6 @@ RSpec.describe ActivityPub::Activity::Undo do
}.with_indifferent_access
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'with Announce' do
let(:status) { Fabricate(:status) }
diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb
index 4cd853af21..d2a1edd7a0 100644
--- a/spec/lib/activitypub/activity/update_spec.rb
+++ b/spec/lib/activitypub/activity/update_spec.rb
@@ -1,14 +1,14 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Update do
+ subject { described_class.new(json, sender) }
+
let!(:sender) { Fabricate(:account) }
before do
sender.update!(uri: ActivityPub::TagManager.instance.uri_for(sender))
end
- subject { described_class.new(json, sender) }
-
describe '#perform' do
context 'with an Actor object' do
let(:modified_sender) do
diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb
index ea03797aab..e4c403abb9 100644
--- a/spec/lib/activitypub/adapter_spec.rb
+++ b/spec/lib/activitypub/adapter_spec.rb
@@ -41,10 +41,10 @@ RSpec.describe ActivityPub::Adapter do
end
describe '#serializable_hash' do
- let(:serializer_class) {}
-
subject { ActiveModelSerializers::SerializableResource.new(TestObject.new(foo: 'bar'), serializer: serializer_class, adapter: described_class).as_json }
+ let(:serializer_class) {}
+
context 'when serializer defines no context' do
let(:serializer_class) { TestWithBasicContextSerializer }
diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb
index e50b497c7e..800473a7ca 100644
--- a/spec/lib/activitypub/dereferencer_spec.rb
+++ b/spec/lib/activitypub/dereferencer_spec.rb
@@ -2,13 +2,13 @@ require 'rails_helper'
RSpec.describe ActivityPub::Dereferencer do
describe '#object' do
+ subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object }
+
let(:object) { { '@context': 'https://www.w3.org/ns/activitystreams', id: 'https://example.com/foo', type: 'Note', content: 'Hoge' } }
let(:permitted_origin) { 'https://example.com' }
let(:signature_actor) { nil }
let(:uri) { nil }
- subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object }
-
before do
stub_request(:get, 'https://example.com/foo').to_return(body: Oj.dump(object), headers: { 'Content-Type' => 'application/activity+json' })
end
diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb
index d55a7c7fa8..ecb1e16db7 100644
--- a/spec/lib/activitypub/linked_data_signature_spec.rb
+++ b/spec/lib/activitypub/linked_data_signature_spec.rb
@@ -3,6 +3,8 @@ require 'rails_helper'
RSpec.describe ActivityPub::LinkedDataSignature do
include JsonLdHelper
+ subject { described_class.new(json) }
+
let!(:sender) { Fabricate(:account, uri: 'http://example.com/alice') }
let(:raw_json) do
@@ -14,8 +16,6 @@ RSpec.describe ActivityPub::LinkedDataSignature do
let(:json) { raw_json.merge('signature' => signature) }
- subject { described_class.new(json) }
-
before do
stub_jsonld_contexts!
end
diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb
index 7eb15ced3a..fcc2654744 100644
--- a/spec/lib/link_details_extractor_spec.rb
+++ b/spec/lib/link_details_extractor_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe LinkDetailsExtractor do
+ subject { described_class.new(original_url, html, html_charset) }
+
let(:original_url) { '' }
let(:html) { '' }
let(:html_charset) { nil }
- subject { described_class.new(original_url, html, html_charset) }
-
describe '#canonical_url' do
let(:original_url) { 'https://foo.com/article?bar=baz123' }
diff --git a/spec/lib/status_filter_spec.rb b/spec/lib/status_filter_spec.rb
index cdb4820590..08519bc590 100644
--- a/spec/lib/status_filter_spec.rb
+++ b/spec/lib/status_filter_spec.rb
@@ -31,10 +31,10 @@ describe StatusFilter do
end
context 'with real account' do
- let(:account) { Fabricate(:account) }
-
subject { described_class.new(status, account) }
+ let(:account) { Fabricate(:account) }
+
context 'when there are no connections' do
it { is_expected.to_not be_filtered }
end
diff --git a/spec/lib/status_reach_finder_spec.rb b/spec/lib/status_reach_finder_spec.rb
index f0c22b1651..785ce28a0e 100644
--- a/spec/lib/status_reach_finder_spec.rb
+++ b/spec/lib/status_reach_finder_spec.rb
@@ -5,13 +5,13 @@ require 'rails_helper'
describe StatusReachFinder do
describe '#inboxes' do
context 'for a local status' do
+ subject { described_class.new(status) }
+
let(:parent_status) { nil }
let(:visibility) { :public }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:status) { Fabricate(:status, account: alice, thread: parent_status, visibility: visibility) }
- subject { described_class.new(status) }
-
context 'when it contains mentions of remote accounts' do
let(:bob) { Fabricate(:account, username: 'bob', domain: 'foo.bar', protocol: :activitypub, inbox_url: 'https://foo.bar/inbox') }
diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb
index 101a18aa01..05aadfd8fa 100644
--- a/spec/lib/suspicious_sign_in_detector_spec.rb
+++ b/spec/lib/suspicious_sign_in_detector_spec.rb
@@ -2,12 +2,12 @@ require 'rails_helper'
RSpec.describe SuspiciousSignInDetector do
describe '#suspicious?' do
+ subject { described_class.new(user).suspicious?(request) }
+
let(:user) { Fabricate(:user, current_sign_in_at: 1.day.ago) }
let(:request) { double(remote_ip: remote_ip) }
let(:remote_ip) { nil }
- subject { described_class.new(user).suspicious?(request) }
-
context 'when user has 2FA enabled' do
before do
user.update!(otp_required_for_login: true)
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index 63a9075c7c..04ae4e02c0 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe TextFormatter do
describe '#to_s' do
- let(:preloaded_accounts) { nil }
-
subject { described_class.new(text, preloaded_accounts: preloaded_accounts).to_s }
+ let(:preloaded_accounts) { nil }
+
context 'given text containing plain text' do
let(:text) { 'text' }
diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb
index 4e2de083f8..c505a3e1ae 100644
--- a/spec/lib/vacuum/backups_vacuum_spec.rb
+++ b/spec/lib/vacuum/backups_vacuum_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe Vacuum::BackupsVacuum do
- let(:retention_period) { 7.days }
-
subject { described_class.new(retention_period) }
+ let(:retention_period) { 7.days }
+
describe '#perform' do
let!(:expired_backup) { Fabricate(:backup, created_at: (retention_period + 1.day).ago) }
let!(:current_backup) { Fabricate(:backup) }
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index 436237b25f..afcb6f878a 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
+ subject { described_class.new(retention_period) }
+
let(:retention_period) { 7.days }
let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) }
let(:local_status) { Fabricate(:status) }
- subject { described_class.new(retention_period) }
-
describe '#perform' do
let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
index 275f9ba92f..524f4c9274 100644
--- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb
+++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe Vacuum::PreviewCardsVacuum do
- let(:retention_period) { 7.days }
-
subject { described_class.new(retention_period) }
+ let(:retention_period) { 7.days }
+
describe '#perform' do
let!(:orphaned_preview_card) { Fabricate(:preview_card, created_at: 2.days.ago) }
let!(:old_preview_card) { Fabricate(:preview_card, updated_at: (retention_period + 1.day).ago) }
diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb
index 83f3c5c9f1..9583376b72 100644
--- a/spec/lib/vacuum/statuses_vacuum_spec.rb
+++ b/spec/lib/vacuum/statuses_vacuum_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Vacuum::StatusesVacuum do
+ subject { described_class.new(retention_period) }
+
let(:retention_period) { 7.days }
let(:remote_account) { Fabricate(:account, domain: 'example.com') }
- subject { described_class.new(retention_period) }
-
describe '#perform' do
let!(:remote_status_old) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
let!(:remote_status_recent) { Fabricate(:status, account: remote_account, created_at: (retention_period - 2.days).ago) }
diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb
index 40bbee025f..36e1a8595a 100644
--- a/spec/models/account/field_spec.rb
+++ b/spec/models/account/field_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe Account::Field, type: :model do
describe '#verified?' do
- let(:account) { double('Account', local?: true) }
-
subject { described_class.new(account, 'name' => 'Foo', 'value' => 'Bar', 'verified_at' => verified_at) }
+ let(:account) { double('Account', local?: true) }
+
context 'when verified_at is set' do
let(:verified_at) { Time.now.utc.iso8601 }
@@ -24,11 +24,11 @@ RSpec.describe Account::Field, type: :model do
end
describe '#mark_verified!' do
+ subject { described_class.new(account, original_hash) }
+
let(:account) { double('Account', local?: true) }
let(:original_hash) { { 'name' => 'Foo', 'value' => 'Bar' } }
- subject { described_class.new(account, original_hash) }
-
before do
subject.mark_verified!
end
@@ -43,10 +43,10 @@ RSpec.describe Account::Field, type: :model do
end
describe '#verifiable?' do
- let(:account) { double('Account', local?: local) }
-
subject { described_class.new(account, 'name' => 'Foo', 'value' => value) }
+ let(:account) { double('Account', local?: local) }
+
context 'for local accounts' do
let(:local) { true }
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 03ed12d780..726e33048e 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe Account, type: :model do
context do
- let(:bob) { Fabricate(:account, username: 'bob') }
-
subject { Fabricate(:account) }
+ let(:bob) { Fabricate(:account, username: 'bob') }
+
describe '#suspend!' do
it 'marks the account as suspended' do
subject.suspend!
@@ -87,14 +87,14 @@ RSpec.describe Account, type: :model do
end
describe 'Local domain user methods' do
+ subject { Fabricate(:account, domain: nil, username: 'alice') }
+
around do |example|
before = Rails.configuration.x.local_domain
example.run
Rails.configuration.x.local_domain = before
end
- subject { Fabricate(:account, domain: nil, username: 'alice') }
-
describe '#to_webfinger_s' do
it 'returns a webfinger string for the account' do
Rails.configuration.x.local_domain = 'example.com'
@@ -243,13 +243,13 @@ RSpec.describe Account, type: :model do
end
describe '#favourited?' do
+ subject { Fabricate(:account) }
+
let(:original_status) do
author = Fabricate(:account, username: 'original')
Fabricate(:status, account: author)
end
- subject { Fabricate(:account) }
-
context 'when the status is a reblog of another status' do
let(:original_reblog) do
author = Fabricate(:account, username: 'original_reblogger')
@@ -281,13 +281,13 @@ RSpec.describe Account, type: :model do
end
describe '#reblogged?' do
+ subject { Fabricate(:account) }
+
let(:original_status) do
author = Fabricate(:account, username: 'original')
Fabricate(:status, account: author)
end
- subject { Fabricate(:account) }
-
context 'when the status is a reblog of another status' do
let(:original_reblog) do
author = Fabricate(:account, username: 'original_reblogger')
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index d3c011b3a2..8bd86730bc 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -132,11 +132,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#invalidate_last_inspected' do
+ subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) }
+
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
let(:status) { Fabricate(:status, id: 10, account: account) }
- subject { account_statuses_cleanup_policy.invalidate_last_inspected(status, action) }
-
before do
account_statuses_cleanup_policy.record_last_inspected(42)
end
@@ -231,11 +231,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#compute_cutoff_id' do
+ subject { account_statuses_cleanup_policy.compute_cutoff_id }
+
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
- subject { account_statuses_cleanup_policy.compute_cutoff_id }
-
context 'when the account has posted multiple toots' do
let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) }
let!(:old_status) { Fabricate(:status, created_at: 3.weeks.ago, account: account) }
@@ -254,6 +254,8 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
describe '#statuses_to_delete' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete }
+
let!(:unrelated_status) { Fabricate(:status, created_at: 3.years.ago) }
let!(:very_old_status) { Fabricate(:status, created_at: 3.years.ago, account: account) }
let!(:pinned_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
@@ -275,8 +277,6 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
let(:account_statuses_cleanup_policy) { Fabricate(:account_statuses_cleanup_policy, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete }
-
before do
4.times { faved4.increment_count!(:favourites_count) }
5.times { faved5.increment_count!(:favourites_count) }
@@ -285,11 +285,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
context 'when passed a max_id' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) }
+
let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete(50, old_status.id).pluck(:id) }
-
it 'returns statuses including max_id' do
expect(subject).to include(old_status.id)
end
@@ -304,11 +304,11 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
end
context 'when passed a min_id' do
+ subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) }
+
let!(:old_status) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:slightly_less_old_status) { Fabricate(:status, created_at: 6.months.ago, account: account) }
- subject { account_statuses_cleanup_policy.statuses_to_delete(50, recent_status.id, old_status.id).pluck(:id) }
-
it 'returns statuses including min_id' do
expect(subject).to include(old_status.id)
end
diff --git a/spec/models/account_statuses_filter_spec.rb b/spec/models/account_statuses_filter_spec.rb
index 03f0ffeb06..fa7664d921 100644
--- a/spec/models/account_statuses_filter_spec.rb
+++ b/spec/models/account_statuses_filter_spec.rb
@@ -3,12 +3,12 @@
require 'rails_helper'
RSpec.describe AccountStatusesFilter do
+ subject { described_class.new(account, current_account, params) }
+
let(:account) { Fabricate(:account) }
let(:current_account) { nil }
let(:params) { {} }
- subject { described_class.new(account, current_account, params) }
-
def status!(visibility)
Fabricate(:status, account: account, visibility: visibility)
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index fbfc9fbbc5..ed3fc056b2 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -225,10 +225,10 @@ describe AccountInteractions do
end
describe '#mute_conversation!' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.mute_conversation!(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
it 'creates and returns ConversationMute' do
expect do
expect(subject).to be_a ConversationMute
@@ -237,10 +237,10 @@ describe AccountInteractions do
end
describe '#block_domain!' do
- let(:domain) { 'example.com' }
-
subject { account.block_domain!(domain) }
+ let(:domain) { 'example.com' }
+
it 'creates and returns AccountDomainBlock' do
expect do
expect(subject).to be_a AccountDomainBlock
@@ -303,10 +303,10 @@ describe AccountInteractions do
end
describe '#unmute_conversation!' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.unmute_conversation!(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
context 'muting the conversation' do
it 'returns destroyed ConversationMute' do
account.conversation_mutes.create(conversation: conversation)
@@ -323,10 +323,10 @@ describe AccountInteractions do
end
describe '#unblock_domain!' do
- let(:domain) { 'example.com' }
-
subject { account.unblock_domain!(domain) }
+ let(:domain) { 'example.com' }
+
context 'blocking the domain' do
it 'returns destroyed AccountDomainBlock' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
@@ -395,10 +395,10 @@ describe AccountInteractions do
end
describe '#domain_blocking?' do
- let(:domain) { 'example.com' }
-
subject { account.domain_blocking?(domain) }
+ let(:domain) { 'example.com' }
+
context 'blocking the domain' do
it 'returns true' do
account_domain_block = Fabricate(:account_domain_block, domain: domain)
@@ -433,10 +433,10 @@ describe AccountInteractions do
end
describe '#muting_conversation?' do
- let(:conversation) { Fabricate(:conversation) }
-
subject { account.muting_conversation?(conversation) }
+ let(:conversation) { Fabricate(:conversation) }
+
context 'muting the conversation' do
it 'returns true' do
account.conversation_mutes.create(conversation: conversation)
@@ -452,13 +452,13 @@ describe AccountInteractions do
end
describe '#muting_notifications?' do
+ subject { account.muting_notifications?(target_account) }
+
before do
mute = Fabricate(:mute, target_account: target_account, account: account, hide_notifications: hide)
account.mute_relationships << mute
end
- subject { account.muting_notifications?(target_account) }
-
context 'muting notifications of target_account' do
let(:hide) { true }
@@ -494,10 +494,10 @@ describe AccountInteractions do
end
describe '#favourited?' do
- let(:status) { Fabricate(:status, account: account, favourites: favourites) }
-
subject { account.favourited?(status) }
+ let(:status) { Fabricate(:status, account: account, favourites: favourites) }
+
context 'favorited' do
let(:favourites) { [Fabricate(:favourite, account: account)] }
@@ -516,10 +516,10 @@ describe AccountInteractions do
end
describe '#reblogged?' do
- let(:status) { Fabricate(:status, account: account, reblogs: reblogs) }
-
subject { account.reblogged?(status) }
+ let(:status) { Fabricate(:status, account: account, reblogs: reblogs) }
+
context 'reblogged' do
let(:reblogs) { [Fabricate(:status, account: account)] }
@@ -538,10 +538,10 @@ describe AccountInteractions do
end
describe '#pinned?' do
- let(:status) { Fabricate(:status, account: account) }
-
subject { account.pinned?(status) }
+ let(:status) { Fabricate(:status, account: account) }
+
context 'pinned' do
it 'returns true' do
Fabricate(:status_pin, account: account, status: status)
diff --git a/spec/models/custom_emoji_filter_spec.rb b/spec/models/custom_emoji_filter_spec.rb
index 515c0a7156..30f0ec2b23 100644
--- a/spec/models/custom_emoji_filter_spec.rb
+++ b/spec/models/custom_emoji_filter_spec.rb
@@ -4,12 +4,12 @@ require 'rails_helper'
RSpec.describe CustomEmojiFilter do
describe '#results' do
+ subject { described_class.new(params).results }
+
let!(:custom_emoji_0) { Fabricate(:custom_emoji, domain: 'a') }
let!(:custom_emoji_1) { Fabricate(:custom_emoji, domain: 'b') }
let!(:custom_emoji_2) { Fabricate(:custom_emoji, domain: nil, shortcode: 'hoge') }
- subject { described_class.new(params).results }
-
context 'params have values' do
context 'local' do
let(:params) { { local: true } }
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index 1fc112db3c..f6fcd468bc 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe CustomEmoji, type: :model do
describe '#search' do
- let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) }
-
subject { described_class.search(search_term) }
+ let(:custom_emoji) { Fabricate(:custom_emoji, shortcode: shortcode) }
+
context 'shortcode is exact' do
let(:shortcode) { 'blobpats' }
let(:search_term) { 'blobpats' }
@@ -26,10 +26,10 @@ RSpec.describe CustomEmoji, type: :model do
end
describe '#local?' do
- let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }
-
subject { custom_emoji.local? }
+ let(:custom_emoji) { Fabricate(:custom_emoji, domain: domain) }
+
context 'domain is nil' do
let(:domain) { nil }
@@ -55,10 +55,10 @@ RSpec.describe CustomEmoji, type: :model do
end
describe '.from_text' do
- let!(:emojo) { Fabricate(:custom_emoji) }
-
subject { described_class.from_text(text, nil) }
+ let!(:emojo) { Fabricate(:custom_emoji) }
+
context 'with plain text' do
let(:text) { 'Hello :coolcat:' }
diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb
index 80f6edbff6..196bef1e49 100644
--- a/spec/models/home_feed_spec.rb
+++ b/spec/models/home_feed_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe HomeFeed, type: :model do
- let(:account) { Fabricate(:account) }
-
subject { described_class.new(account) }
+ let(:account) { Fabricate(:account) }
+
describe '#get' do
before do
Fabricate(:status, account: account, id: 1)
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 8889d5f7c4..57e1314230 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe MediaAttachment, type: :model do
describe 'local?' do
- let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) }
-
subject { media_attachment.local? }
+ let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url) }
+
context 'remote_url is blank' do
let(:remote_url) { '' }
@@ -24,10 +24,10 @@ RSpec.describe MediaAttachment, type: :model do
end
describe 'needs_redownload?' do
- let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) }
-
subject { media_attachment.needs_redownload? }
+ let(:media_attachment) { Fabricate(:media_attachment, remote_url: remote_url, file: file) }
+
context 'file is blank' do
let(:file) { nil }
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index be46639c52..59c81dd953 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -40,6 +40,8 @@ RSpec.describe PublicFeed, type: :model do
end
context 'without local_only option' do
+ subject { described_class.new(viewer).get(20).map(&:id) }
+
let(:viewer) { nil }
let!(:local_account) { Fabricate(:account, domain: nil) }
@@ -47,8 +49,6 @@ RSpec.describe PublicFeed, type: :model do
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -75,13 +75,13 @@ RSpec.describe PublicFeed, type: :model do
end
context 'with a local_only option set' do
+ subject { described_class.new(viewer, local: true).get(20).map(&:id) }
+
let!(:local_account) { Fabricate(:account, domain: nil) }
let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer, local: true).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -108,13 +108,13 @@ RSpec.describe PublicFeed, type: :model do
end
context 'with a remote_only option set' do
+ subject { described_class.new(viewer, remote: true).get(20).map(&:id) }
+
let!(:local_account) { Fabricate(:account, domain: nil) }
let!(:remote_account) { Fabricate(:account, domain: 'test.com') }
let!(:local_status) { Fabricate(:status, account: local_account) }
let!(:remote_status) { Fabricate(:status, account: remote_account) }
- subject { described_class.new(viewer, remote: true).get(20).map(&:id) }
-
context 'without a viewer' do
let(:viewer) { nil }
@@ -135,12 +135,12 @@ RSpec.describe PublicFeed, type: :model do
end
describe 'with an account passed in' do
+ subject { described_class.new(@account).get(20).map(&:id) }
+
before do
@account = Fabricate(:account)
end
- subject { described_class.new(@account).get(20).map(&:id) }
-
it 'excludes statuses from accounts blocked by the account' do
blocked = Fabricate(:account)
@account.block!(blocked)
diff --git a/spec/models/remote_follow_spec.rb b/spec/models/remote_follow_spec.rb
index c6bbecf25b..ea36b00769 100644
--- a/spec/models/remote_follow_spec.rb
+++ b/spec/models/remote_follow_spec.rb
@@ -51,6 +51,8 @@ RSpec.describe RemoteFollow do
end
describe '#subscribe_address_for' do
+ subject { remote_follow.subscribe_address_for(account) }
+
before do
remote_follow.valid?
end
@@ -58,8 +60,6 @@ RSpec.describe RemoteFollow do
let(:attrs) { { acct: 'gargron@quitter.no' } }
let(:account) { Fabricate(:account, username: 'alice') }
- subject { remote_follow.subscribe_address_for(account) }
-
it 'returns subscribe address' do
expect(subject).to eq 'https://quitter.no/main/ostatussub?profile=https%3A%2F%2Fcb6e6126.ngrok.io%2Fusers%2Falice'
end
diff --git a/spec/models/setting_spec.rb b/spec/models/setting_spec.rb
index 86fdf4e087..826a13878f 100644
--- a/spec/models/setting_spec.rb
+++ b/spec/models/setting_spec.rb
@@ -163,12 +163,12 @@ RSpec.describe Setting, type: :model do
end
describe '.default_settings' do
+ subject { described_class.default_settings }
+
before do
allow(RailsSettings::Default).to receive(:enabled?).and_return(enabled)
end
- subject { described_class.default_settings }
-
context 'RailsSettings::Default.enabled? is false' do
let(:enabled) { false }
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 78cc059596..442f14ddfa 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe Status, type: :model do
+ subject { Fabricate(:status, account: alice) }
+
let(:alice) { Fabricate(:account, username: 'alice') }
let(:bob) { Fabricate(:account, username: 'bob') }
let(:other) { Fabricate(:status, account: bob, text: 'Skulls for the skull god! The enemy\'s gates are sideways!') }
- subject { Fabricate(:status, account: alice) }
-
describe '#local?' do
it 'returns true when no remote URI is set' do
expect(subject.local?).to be true
@@ -204,11 +204,11 @@ RSpec.describe Status, type: :model do
end
describe '.mutes_map' do
+ subject { Status.mutes_map([status.conversation.id], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.mutes_map([status.conversation.id], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
@@ -220,11 +220,11 @@ RSpec.describe Status, type: :model do
end
describe '.favourites_map' do
+ subject { Status.favourites_map([status], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.favourites_map([status], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
@@ -236,11 +236,11 @@ RSpec.describe Status, type: :model do
end
describe '.reblogs_map' do
+ subject { Status.reblogs_map([status], account) }
+
let(:status) { Fabricate(:status) }
let(:account) { Fabricate(:account) }
- subject { Status.reblogs_map([status], account) }
-
it 'returns a hash' do
expect(subject).to be_a Hash
end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index d23439f1a9..9af616b32a 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -142,10 +142,10 @@ RSpec.describe User, type: :model do
end
describe '#confirm' do
- let(:new_email) { 'new-email@example.com' }
-
subject { user.confirm }
+ let(:new_email) { 'new-email@example.com' }
+
before do
allow(TriggerWebhookWorker).to receive(:perform_async)
end
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index eeadbb71c2..388154000c 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe Web::PushSubscription, type: :model do
+ subject { described_class.new(data: data) }
+
let(:account) { Fabricate(:account) }
let(:policy) { 'all' }
@@ -19,8 +21,6 @@ RSpec.describe Web::PushSubscription, type: :model do
}
end
- subject { described_class.new(data: data) }
-
describe '#pushable?' do
let(:notification_type) { :mention }
let(:notification) { Fabricate(:notification, account: account, type: notification_type) }
diff --git a/spec/presenters/familiar_followers_presenter_spec.rb b/spec/presenters/familiar_followers_presenter_spec.rb
index 17be4b9715..607e3002f8 100644
--- a/spec/presenters/familiar_followers_presenter_spec.rb
+++ b/spec/presenters/familiar_followers_presenter_spec.rb
@@ -4,12 +4,12 @@ require 'rails_helper'
RSpec.describe FamiliarFollowersPresenter do
describe '#accounts' do
+ subject { described_class.new(requested_accounts, account.id) }
+
let(:account) { Fabricate(:account) }
let(:familiar_follower) { Fabricate(:account) }
let(:requested_accounts) { Fabricate.times(2, :account) }
- subject { described_class.new(requested_accounts, account.id) }
-
before do
familiar_follower.follow!(requested_accounts.first)
account.follow!(familiar_follower)
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_spec.rb
index 55bfbc16bf..7ea47baef2 100644
--- a/spec/serializers/activitypub/note_spec.rb
+++ b/spec/serializers/activitypub/note_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe ActivityPub::NoteSerializer do
+ subject { JSON.parse(@serialization.to_json) }
+
let!(:account) { Fabricate(:account) }
let!(:other) { Fabricate(:account) }
let!(:parent) { Fabricate(:status, account: account, visibility: :public) }
@@ -16,8 +18,6 @@ describe ActivityPub::NoteSerializer do
@serialization = ActiveModelSerializers::SerializableResource.new(parent, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter)
end
- subject { JSON.parse(@serialization.to_json) }
-
it 'has a Note type' do
expect(subject['type']).to eql('Note')
end
diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_spec.rb
index f9e035eab5..4360808b50 100644
--- a/spec/serializers/activitypub/update_poll_spec.rb
+++ b/spec/serializers/activitypub/update_poll_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe ActivityPub::UpdatePollSerializer do
+ subject { JSON.parse(@serialization.to_json) }
+
let(:account) { Fabricate(:account) }
let(:poll) { Fabricate(:poll, account: account) }
let!(:status) { Fabricate(:status, account: account, poll: poll) }
@@ -11,8 +13,6 @@ describe ActivityPub::UpdatePollSerializer do
@serialization = ActiveModelSerializers::SerializableResource.new(status, serializer: ActivityPub::UpdatePollSerializer, adapter: ActivityPub::Adapter)
end
- subject { JSON.parse(@serialization.to_json) }
-
it 'has a Update type' do
expect(subject['type']).to eql('Update')
end
diff --git a/spec/serializers/rest/account_serializer_spec.rb b/spec/serializers/rest/account_serializer_spec.rb
index 3bca06b73f..528639943c 100644
--- a/spec/serializers/rest/account_serializer_spec.rb
+++ b/spec/serializers/rest/account_serializer_spec.rb
@@ -3,12 +3,12 @@
require 'rails_helper'
describe REST::AccountSerializer do
+ subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) }
+
let(:role) { Fabricate(:user_role, name: 'Role', highlighted: true) }
let(:user) { Fabricate(:user, role: role) }
let(:account) { user.account }
- subject { JSON.parse(ActiveModelSerializers::SerializableResource.new(account, serializer: REST::AccountSerializer).to_json) }
-
context 'when the account is suspended' do
before do
account.suspend!
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
index 23d90a9a2b..d9266ffc2e 100644
--- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account', featured_collection_url: 'https://example.com/account/pinned') }
let!(:known_status) { Fabricate(:status, account: actor, uri: 'https://example.com/account/pinned/1') }
@@ -56,8 +58,6 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'sets pinned posts' do
before do
stub_request(:get, 'https://example.com/account/pinned/1').to_return(status: 200, body: Oj.dump(status_json_1))
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 692866bce9..2110baa2d4 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do
+ subject { described_class.new }
+
let(:collection_url) { 'https://example.com/account/tags' }
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/account') }
@@ -21,8 +23,6 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'sets featured tags' do
before do
subject.call(actor, collection_url)
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index 4f3503ac2d..6e47392b35 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -3,6 +3,8 @@ require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
include ActionView::Helpers::TextHelper
+ subject { described_class.new }
+
let!(:sender) { Fabricate(:account, domain: 'foo.bar', uri: 'https://foo.bar') }
let!(:recipient) { Fabricate(:account) }
@@ -18,8 +20,6 @@ RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
}
end
- subject { described_class.new }
-
before do
stub_request(:get, 'https://foo.bar/watch?v=12345').to_return(status: 404, body: '')
stub_request(:get, object[:id]).to_return(body: Oj.dump(object))
diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb
index 5741e0c3fe..0231a5e9ab 100644
--- a/spec/services/activitypub/fetch_replies_service_spec.rb
+++ b/spec/services/activitypub/fetch_replies_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::FetchRepliesService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:status) { Fabricate(:status, account: actor) }
let(:collection_uri) { 'http://example.com/replies/1' }
@@ -28,8 +30,6 @@ RSpec.describe ActivityPub::FetchRepliesService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
describe '#call' do
context 'when the payload is a Collection with inlined replies' do
context 'when passing the collection itself' do
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index d0af7de769..6c3236bae6 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -31,6 +31,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
end
context 'when account is not suspended' do
+ subject { described_class.new.call('alice', 'example.com', payload) }
+
let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com') }
let(:payload) do
@@ -46,8 +48,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
allow(Admin::SuspensionWorker).to receive(:perform_async)
end
- subject { described_class.new.call('alice', 'example.com', payload) }
-
it 'suspends account remotely' do
expect(subject.suspended?).to be true
expect(subject.suspension_origin_remote?).to be true
@@ -60,6 +60,8 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
end
context 'when account is suspended' do
+ subject { described_class.new.call('alice', 'example.com', payload) }
+
let!(:account) { Fabricate(:account, username: 'alice', domain: 'example.com', display_name: '') }
let(:payload) do
@@ -78,8 +80,6 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
account.suspend!(origin: suspension_origin)
end
- subject { described_class.new.call('alice', 'example.com', payload) }
-
context 'locally' do
let(:suspension_origin) { :local }
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index d35d9596df..c7d0bb92af 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
let(:payload) do
@@ -19,8 +21,6 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
let(:json) { Oj.dump(payload) }
- subject { described_class.new }
-
describe '#call' do
context 'when actor is suspended' do
before do
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 9a6d75ec04..3d6f76163e 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -5,6 +5,8 @@ def poll_option_json(name, votes)
end
RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
+ subject { described_class.new }
+
let!(:status) { Fabricate(:status, text: 'Hello world', account: Fabricate(:account, domain: 'example.com')) }
let(:payload) do
{
@@ -35,8 +37,6 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
media_attachments.each { |m| status.media_attachments << m }
end
- subject { described_class.new }
-
describe '#call' do
it 'updates text' do
subject.call(status, json)
diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb
index 5a37f07333..0e829a3028 100644
--- a/spec/services/activitypub/synchronize_followers_service_spec.rb
+++ b/spec/services/activitypub/synchronize_followers_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
+ subject { described_class.new }
+
let(:actor) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account', inbox_url: 'http://example.com/inbox') }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:bob) { Fabricate(:account, username: 'bob') }
@@ -25,8 +27,6 @@ RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
}.with_indifferent_access
end
- subject { described_class.new }
-
shared_examples 'synchronizes followers' do
before do
alice.follow!(actor)
diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb
index 006e3f4d28..9cca82bffa 100644
--- a/spec/services/after_block_domain_from_account_service_spec.rb
+++ b/spec/services/after_block_domain_from_account_service_spec.rb
@@ -1,11 +1,11 @@
require 'rails_helper'
RSpec.describe AfterBlockDomainFromAccountService, type: :service do
+ subject { AfterBlockDomainFromAccountService.new }
+
let!(:wolf) { Fabricate(:account, username: 'wolf', domain: 'evil.org', inbox_url: 'https://evil.org/inbox', protocol: :activitypub) }
let!(:alice) { Fabricate(:account, username: 'alice') }
- subject { AfterBlockDomainFromAccountService.new }
-
before do
stub_jsonld_contexts!
allow(ActivityPub::DeliveryWorker).to receive(:perform_async)
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index 8ec4d4a7a6..10da07dcfb 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -1,12 +1,12 @@
require 'rails_helper'
RSpec.describe AppSignUpService, type: :service do
+ subject { described_class.new }
+
let(:app) { Fabricate(:application, scopes: 'read write') }
let(:good_params) { { username: 'alice', password: '12345678', email: 'good@email.com', agreement: true } }
let(:remote_ip) { IPAddr.new('198.0.2.1') }
- subject { described_class.new }
-
describe '#call' do
it 'returns nil when registrations are closed' do
tmp = Setting.registrations_mode
diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb
index 888d694b61..8f8e44ec76 100644
--- a/spec/services/authorize_follow_service_spec.rb
+++ b/spec/services/authorize_follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe AuthorizeFollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { AuthorizeFollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index e24e48d415..56b3a5ad1c 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -1,14 +1,14 @@
require 'rails_helper'
RSpec.describe BlockDomainService, type: :service do
+ subject { BlockDomainService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) }
let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) }
- subject { BlockDomainService.new }
-
describe 'for a suspension' do
before do
subject.call(DomainBlock.create!(domain: 'evil.org', severity: :suspend))
diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb
index a53e1f9288..049644dbc0 100644
--- a/spec/services/block_service_spec.rb
+++ b/spec/services/block_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe BlockService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { BlockService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index e90faf84d9..993ba789ea 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -1,13 +1,13 @@
require 'rails_helper'
RSpec.describe ClearDomainMediaService, type: :service do
+ subject { ClearDomainMediaService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
let!(:bad_attachment) { Fabricate(:media_attachment, account: bad_account, status: bad_status2, file: attachment_fixture('attachment.jpg')) }
- subject { ClearDomainMediaService.new }
-
describe 'for a silence with reject media' do
before do
subject.call(DomainBlock.create!(domain: 'evil.org', severity: :silence, reject_media: true))
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index cc4b168fcd..d0cc8d2888 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -2,6 +2,8 @@ require 'rails_helper'
RSpec.describe DeleteAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:status) { Fabricate(:status, account: account) }
let!(:mention) { Fabricate(:mention, account: local_follower) }
let!(:status_with_mention) { Fabricate(:status, account: account, mentions: [mention]) }
@@ -23,8 +25,6 @@ RSpec.describe DeleteAccountService, type: :service do
let!(:account_note) { Fabricate(:account_note, account: account) }
- subject { described_class.new.call(account) }
-
it 'deletes associated owned records' do
expect { subject }.to change {
[
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index 3c294cf95b..d09750dd23 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
+ subject { described_class.new }
+
let(:last_active_at) { Time.now.utc }
let(:status) { Fabricate(:status, account: alice, visibility: visibility, text: 'Hello @bob #hoge') }
@@ -8,8 +10,6 @@ RSpec.describe FanOutOnWriteService, type: :service do
let!(:bob) { Fabricate(:user, current_sign_in_at: last_active_at, account_attributes: { username: 'bob' }).account }
let!(:tom) { Fabricate(:user, current_sign_in_at: last_active_at).account }
- subject { described_class.new }
-
before do
bob.follow!(alice)
tom.follow!(alice)
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 8703c2af8f..4f621200a2 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe FavouriteService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { FavouriteService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: bob) }
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index c39f526328..84c4035cb1 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -2,10 +2,10 @@ require 'rails_helper'
RSpec.describe FetchResourceService, type: :service do
describe '#call' do
- let(:url) { 'http://example.com' }
-
subject { described_class.new.call(url) }
+ let(:url) { 'http://example.com' }
+
context 'with blank url' do
let(:url) { '' }
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index 59073c27f2..f95d594409 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe FollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { FollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
context 'local account' do
describe 'locked account' do
let(:bob) { Fabricate(:account, locked: true, username: 'bob') }
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 6a16928e02..79ccfa3229 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe ProcessMentionsService, type: :service do
- let(:account) { Fabricate(:account, username: 'alice') }
-
subject { ProcessMentionsService.new }
+ let(:account) { Fabricate(:account, username: 'alice') }
+
context 'when mentions contain blocked accounts' do
let(:non_blocked_account) { Fabricate(:account) }
let(:individually_blocked_account) { Fabricate(:account) }
diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb
index 59285f1269..7d8969ee89 100644
--- a/spec/services/purge_domain_service_spec.rb
+++ b/spec/services/purge_domain_service_spec.rb
@@ -1,13 +1,13 @@
require 'rails_helper'
RSpec.describe PurgeDomainService, type: :service do
+ subject { PurgeDomainService.new }
+
let!(:old_account) { Fabricate(:account, domain: 'obsolete.org') }
let!(:old_status1) { Fabricate(:status, account: old_account) }
let!(:old_status2) { Fabricate(:status, account: old_account) }
let!(:old_attachment) { Fabricate(:media_attachment, account: old_account, status: old_status2, file: attachment_fixture('attachment.jpg')) }
- subject { PurgeDomainService.new }
-
describe 'for a suspension' do
before do
subject.call('obsolete.org')
diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb
index c0ae5eedcc..e2ac0154ce 100644
--- a/spec/services/reblog_service_spec.rb
+++ b/spec/services/reblog_service_spec.rb
@@ -4,12 +4,12 @@ RSpec.describe ReblogService, type: :service do
let(:alice) { Fabricate(:account, username: 'alice') }
context 'creates a reblog with appropriate visibility' do
+ subject { ReblogService.new }
+
let(:visibility) { :public }
let(:reblog_visibility) { :public }
let(:status) { Fabricate(:status, account: alice, visibility: visibility) }
- subject { ReblogService.new }
-
before do
subject.call(alice, status, visibility: reblog_visibility)
end
@@ -45,11 +45,11 @@ RSpec.describe ReblogService, type: :service do
end
context 'ActivityPub' do
+ subject { ReblogService.new }
+
let(:bob) { Fabricate(:account, username: 'bob', protocol: :activitypub, domain: 'example.com', inbox_url: 'http://example.com/inbox') }
let(:status) { Fabricate(:status, account: bob) }
- subject { ReblogService.new }
-
before do
stub_request(:post, bob.inbox_url)
allow(ActivityPub::DistributionWorker).to receive(:perform_async)
diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb
index e14bfa78dc..97b7412b92 100644
--- a/spec/services/reject_follow_service_spec.rb
+++ b/spec/services/reject_follow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe RejectFollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { RejectFollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb
index 9b9c846cfe..782f859e29 100644
--- a/spec/services/remove_from_follwers_service_spec.rb
+++ b/spec/services/remove_from_follwers_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe RemoveFromFollowersService, type: :service do
- let(:bob) { Fabricate(:account, username: 'bob') }
-
subject { RemoveFromFollowersService.new }
+ let(:bob) { Fabricate(:account, username: 'bob') }
+
describe 'local' do
let(:sender) { Fabricate(:account, username: 'alice') }
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index 02bc42ac17..c3a3fddf8a 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -29,13 +29,13 @@ RSpec.describe ReportService, type: :service do
end
context 'when the reported status is a DM' do
- let(:target_account) { Fabricate(:account) }
- let(:status) { Fabricate(:status, account: target_account, visibility: :direct) }
-
subject do
-> { described_class.new.call(source_account, target_account, status_ids: [status.id]) }
end
+ let(:target_account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: target_account, visibility: :direct) }
+
context 'when it is addressed to the reporter' do
before do
status.mentions.create(account: source_account)
@@ -85,13 +85,13 @@ RSpec.describe ReportService, type: :service do
end
context 'when other reports already exist for the same target' do
- let!(:target_account) { Fabricate(:account) }
- let!(:other_report) { Fabricate(:report, target_account: target_account) }
-
subject do
-> { described_class.new.call(source_account, target_account) }
end
+ let!(:target_account) { Fabricate(:account) }
+ let!(:other_report) { Fabricate(:report, target_account: target_account) }
+
before do
ActionMailer::Base.deliveries.clear
source_account.user.settings.notification_emails['report'] = true
diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb
index 126b13986b..5701090b33 100644
--- a/spec/services/suspend_account_service_spec.rb
+++ b/spec/services/suspend_account_service_spec.rb
@@ -2,11 +2,11 @@ require 'rails_helper'
RSpec.describe SuspendAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account }
let!(:list) { Fabricate(:list, account: local_follower) }
- subject { described_class.new.call(account) }
-
before do
allow(FeedManager.instance).to receive(:unmerge_from_home).and_return(nil)
allow(FeedManager.instance).to receive(:unmerge_from_list).and_return(nil)
diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb
index b93945b9a2..ae7d00c7d3 100644
--- a/spec/services/unallow_domain_service_spec.rb
+++ b/spec/services/unallow_domain_service_spec.rb
@@ -1,6 +1,8 @@
require 'rails_helper'
RSpec.describe UnallowDomainService, type: :service do
+ subject { UnallowDomainService.new }
+
let!(:bad_account) { Fabricate(:account, username: 'badguy666', domain: 'evil.org') }
let!(:bad_status1) { Fabricate(:status, account: bad_account, text: 'You suck') }
let!(:bad_status2) { Fabricate(:status, account: bad_account, text: 'Hahaha') }
@@ -8,8 +10,6 @@ RSpec.describe UnallowDomainService, type: :service do
let!(:already_banned_account) { Fabricate(:account, username: 'badguy', domain: 'evil.org', suspended: true, silenced: true) }
let!(:domain_allow) { Fabricate(:domain_allow, domain: 'evil.org') }
- subject { UnallowDomainService.new }
-
context 'in limited federation mode' do
before do
allow(subject).to receive(:whitelist_mode?).and_return(true)
diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb
index 10448b3403..bd24005f66 100644
--- a/spec/services/unblock_service_spec.rb
+++ b/spec/services/unblock_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe UnblockService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { UnblockService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account) }
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index bb5bef5c91..55969bef93 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -1,10 +1,10 @@
require 'rails_helper'
RSpec.describe UnfollowService, type: :service do
- let(:sender) { Fabricate(:account, username: 'alice') }
-
subject { UnfollowService.new }
+ let(:sender) { Fabricate(:account, username: 'alice') }
+
describe 'local' do
let(:bob) { Fabricate(:account, username: 'bob') }
diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb
index 987eb09e23..6675074690 100644
--- a/spec/services/unsuspend_account_service_spec.rb
+++ b/spec/services/unsuspend_account_service_spec.rb
@@ -2,11 +2,11 @@ require 'rails_helper'
RSpec.describe UnsuspendAccountService, type: :service do
shared_examples 'common behavior' do
+ subject { described_class.new.call(account) }
+
let!(:local_follower) { Fabricate(:user, current_sign_in_at: 1.hour.ago).account }
let!(:list) { Fabricate(:list, account: local_follower) }
- subject { described_class.new.call(account) }
-
before do
allow(FeedManager.instance).to receive(:merge_into_home).and_return(nil)
allow(FeedManager.instance).to receive(:merge_into_list).and_return(nil)
diff --git a/spec/validators/blacklisted_email_validator_spec.rb b/spec/validators/blacklisted_email_validator_spec.rb
index cb807fe24c..a642405ae6 100644
--- a/spec/validators/blacklisted_email_validator_spec.rb
+++ b/spec/validators/blacklisted_email_validator_spec.rb
@@ -4,6 +4,8 @@ require 'rails_helper'
RSpec.describe BlacklistedEmailValidator, type: :validator do
describe '#validate' do
+ subject { described_class.new.validate(user); errors }
+
let(:user) { double(email: 'info@mail.com', sign_up_ip: '1.2.3.4', errors: errors) }
let(:errors) { double(add: nil) }
@@ -12,8 +14,6 @@ RSpec.describe BlacklistedEmailValidator, type: :validator do
allow_any_instance_of(described_class).to receive(:blocked_email_provider?) { blocked_email }
end
- subject { described_class.new.validate(user); errors }
-
context 'when e-mail provider is blocked' do
let(:blocked_email) { true }
diff --git a/spec/workers/move_worker_spec.rb b/spec/workers/move_worker_spec.rb
index 3ca6aaf4de..e93060adb8 100644
--- a/spec/workers/move_worker_spec.rb
+++ b/spec/workers/move_worker_spec.rb
@@ -3,6 +3,8 @@
require 'rails_helper'
describe MoveWorker do
+ subject { described_class.new }
+
let(:local_follower) { Fabricate(:account) }
let(:blocking_account) { Fabricate(:account) }
let(:muting_account) { Fabricate(:account) }
@@ -14,8 +16,6 @@ describe MoveWorker do
let(:block_service) { double }
- subject { described_class.new }
-
before do
local_follower.follow!(source_account)
blocking_account.block!(source_account)
diff --git a/spec/workers/unfollow_follow_worker_spec.rb b/spec/workers/unfollow_follow_worker_spec.rb
index 5ea4256a9b..8025b88c0c 100644
--- a/spec/workers/unfollow_follow_worker_spec.rb
+++ b/spec/workers/unfollow_follow_worker_spec.rb
@@ -3,13 +3,13 @@
require 'rails_helper'
describe UnfollowFollowWorker do
+ subject { described_class.new }
+
let(:local_follower) { Fabricate(:account) }
let(:source_account) { Fabricate(:account) }
let(:target_account) { Fabricate(:account) }
let(:show_reblogs) { true }
- subject { described_class.new }
-
before do
local_follower.follow!(source_account, reblogs: show_reblogs)
end
From bf785df9fe044f2f13bfb93e6860a74084d8eb8a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:14:10 -0500
Subject: [PATCH 0091/1254] Audofix Rubocop Style/WordArray (#23739)
---
.rubocop_todo.yml | 23 -------------------
...000_add_statuses_index_on_account_id_id.rb | 2 +-
...for_api_v1_accounts_account_id_statuses.rb | 2 +-
lib/mastodon/maintenance_cli.rb | 8 +++----
lib/tasks/statistics.rake | 2 +-
.../api/v1/blocks_controller_spec.rb | 4 ++--
.../api/v1/bookmarks_controller_spec.rb | 4 ++--
.../api/v1/favourites_controller_spec.rb | 4 ++--
.../api/v1/mutes_controller_spec.rb | 4 ++--
.../settings/applications_controller_spec.rb | 2 +-
.../preferences/other_controller_spec.rb | 2 +-
spec/models/account_spec.rb | 2 +-
.../account_statuses_cleanup_policy_spec.rb | 2 +-
...h_featured_tags_collection_service_spec.rb | 2 +-
.../process_account_service_spec.rb | 2 +-
spec/services/delete_account_service_spec.rb | 6 ++---
...ccounts_statuses_cleanup_scheduler_spec.rb | 6 ++---
17 files changed, 27 insertions(+), 50 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1eb039110e..ce1ef9a2bc 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2667,26 +2667,3 @@ Style/UnpackFirst:
Exclude:
- 'app/models/concerns/account_interactions.rb'
- 'lib/paperclip/gif_transcoder.rb'
-
-# Offense count: 25
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle, MinSize, WordRegex.
-# SupportedStyles: percent, brackets
-Style/WordArray:
- Exclude:
- - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb'
- - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/tasks/statistics.rake'
- - 'spec/controllers/api/v1/blocks_controller_spec.rb'
- - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/favourites_controller_spec.rb'
- - 'spec/controllers/api/v1/mutes_controller_spec.rb'
- - 'spec/controllers/settings/applications_controller_spec.rb'
- - 'spec/controllers/settings/preferences/other_controller_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/account_statuses_cleanup_policy_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/delete_account_service_spec.rb'
- - 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
diff --git a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
index 3e74346a8d..86e4255599 100644
--- a/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
+++ b/db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb
@@ -6,7 +6,7 @@ class AddStatusesIndexOnAccountIdId < ActiveRecord::Migration[5.1]
# of an account to show them in his status page is one of the most
# significant examples.
# Add this index to improve the performance in such cases.
- add_index 'statuses', ['account_id', 'id'], algorithm: :concurrently, name: 'index_statuses_on_account_id_id'
+ add_index 'statuses', %w(account_id id), algorithm: :concurrently, name: 'index_statuses_on_account_id_id'
remove_index 'statuses', algorithm: :concurrently, column: 'account_id', name: 'index_statuses_on_account_id'
end
diff --git a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
index e23880bf51..c00302804a 100644
--- a/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
+++ b/db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb
@@ -10,6 +10,6 @@ class RevertIndexChangeOnStatusesForApiV1AccountsAccountIdStatuses < ActiveRecor
# These index may not exists (see migration 20180514130000)
remove_index :statuses, column: [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)', algorithm: :concurrently if index_exists?(:statuses, [:account_id, :id, :visibility], where: 'visibility IN (0, 1, 2)')
- remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, ['account_id', 'id'], where: '(visibility = 3)')
+ remove_index :statuses, column: [:account_id, :id], where: 'visibility = 3', algorithm: :concurrently if index_exists?(:statuses, %w(account_id id), where: '(visibility = 3)')
end
end
diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb
index bb3802f564..3e644045f7 100644
--- a/lib/mastodon/maintenance_cli.rb
+++ b/lib/mastodon/maintenance_cli.rb
@@ -289,7 +289,7 @@ module Mastodon
end
@prompt.say 'Restoring account domain blocks indexes…'
- ActiveRecord::Base.connection.add_index :account_domain_blocks, ['account_id', 'domain'], name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true
+ ActiveRecord::Base.connection.add_index :account_domain_blocks, %w(account_id domain), name: 'index_account_domain_blocks_on_account_id_and_domain', unique: true
end
def deduplicate_account_identity_proofs!
@@ -303,7 +303,7 @@ module Mastodon
end
@prompt.say 'Restoring account identity proofs indexes…'
- ActiveRecord::Base.connection.add_index :account_identity_proofs, ['account_id', 'provider', 'provider_username'], name: 'index_account_proofs_on_account_and_provider_and_username', unique: true
+ ActiveRecord::Base.connection.add_index :account_identity_proofs, %w(account_id provider provider_username), name: 'index_account_proofs_on_account_and_provider_and_username', unique: true
end
def deduplicate_announcement_reactions!
@@ -317,7 +317,7 @@ module Mastodon
end
@prompt.say 'Restoring announcement_reactions indexes…'
- ActiveRecord::Base.connection.add_index :announcement_reactions, ['account_id', 'announcement_id', 'name'], name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true
+ ActiveRecord::Base.connection.add_index :announcement_reactions, %w(account_id announcement_id name), name: 'index_announcement_reactions_on_account_id_and_announcement_id', unique: true
end
def deduplicate_conversations!
@@ -359,7 +359,7 @@ module Mastodon
end
@prompt.say 'Restoring custom_emojis indexes…'
- ActiveRecord::Base.connection.add_index :custom_emojis, ['shortcode', 'domain'], name: 'index_custom_emojis_on_shortcode_and_domain', unique: true
+ ActiveRecord::Base.connection.add_index :custom_emojis, %w(shortcode domain), name: 'index_custom_emojis_on_shortcode_and_domain', unique: true
end
def deduplicate_custom_emoji_categories!
diff --git a/lib/tasks/statistics.rake b/lib/tasks/statistics.rake
index 440c309ce3..dde7890f6b 100644
--- a/lib/tasks/statistics.rake
+++ b/lib/tasks/statistics.rake
@@ -7,7 +7,7 @@ namespace :mastodon do
task :stats do
require 'rails/code_statistics'
[
- %w(App\ Libraries app/lib),
+ ['App Libraries', 'app/lib'],
%w(Presenters app/presenters),
%w(Services app/services),
%w(Validators app/validators),
diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb
index 0e5c8296d8..cf996c47c9 100644
--- a/spec/controllers/api/v1/blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/blocks_controller_spec.rb
@@ -37,13 +37,13 @@ RSpec.describe Api::V1::BlocksController, type: :controller do
it 'sets pagination header for next path' do
blocks = 2.times.map { Fabricate(:block, account: user.account) }
get :index, params: { limit: 1, since_id: blocks[0] }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1])
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_blocks_url(limit: 1, max_id: blocks[1])
end
it 'sets pagination header for previous path' do
block = Fabricate(:block, account: user.account)
get :index
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_blocks_url(since_id: block)
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_blocks_url(since_id: block)
end
it 'returns http success' do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index 279d1a4359..b7af60d2b1 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -63,8 +63,8 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
get :index, params: { limit: 1 }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}"
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}"
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&max_id=#{bookmark.id}"
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/bookmarks?limit=1&min_id=#{bookmark.id}"
end
it 'does not add pagination headers if not necessary' do
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index 512dd0c0d7..dfa3f11011 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -63,8 +63,8 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
get :index, params: { limit: 1 }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}"
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}"
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq "http://test.host/api/v1/favourites?limit=1&max_id=#{favourite.id}"
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq "http://test.host/api/v1/favourites?limit=1&min_id=#{favourite.id}"
end
it 'does not add pagination headers if not necessary' do
diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb
index 8176815d4e..8288cb8151 100644
--- a/spec/controllers/api/v1/mutes_controller_spec.rb
+++ b/spec/controllers/api/v1/mutes_controller_spec.rb
@@ -37,13 +37,13 @@ RSpec.describe Api::V1::MutesController, type: :controller do
it 'sets pagination header for next path' do
mutes = 2.times.map { Fabricate(:mute, account: user.account) }
get :index, params: { limit: 1, since_id: mutes[0] }
- expect(response.headers['Link'].find_link(['rel', 'next']).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1])
+ expect(response.headers['Link'].find_link(%w(rel next)).href).to eq api_v1_mutes_url(limit: 1, max_id: mutes[1])
end
it 'sets pagination header for previous path' do
mute = Fabricate(:mute, account: user.account)
get :index
- expect(response.headers['Link'].find_link(['rel', 'prev']).href).to eq api_v1_mutes_url(since_id: mute)
+ expect(response.headers['Link'].find_link(%w(rel prev)).href).to eq api_v1_mutes_url(since_id: mute)
end
it 'returns http success' do
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index 33d874d107..a653b87c76 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -73,7 +73,7 @@ describe Settings::ApplicationsController do
name: 'My New App',
redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',
website: 'http://google.com',
- scopes: ['read', 'write', 'follow'],
+ scopes: %w(read write follow),
},
}
response
diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb
index dd7f01847c..ffb37e0bd6 100644
--- a/spec/controllers/settings/preferences/other_controller_spec.rb
+++ b/spec/controllers/settings/preferences/other_controller_spec.rb
@@ -23,7 +23,7 @@ describe Settings::Preferences::OtherController do
expect(response).to redirect_to(settings_preferences_other_path)
user.reload
expect(user.locale).to eq 'en'
- expect(user.chosen_languages).to eq ['es', 'fr']
+ expect(user.chosen_languages).to eq %w(es fr)
end
it 'updates user settings' do
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 726e33048e..24239f85d1 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -895,7 +895,7 @@ RSpec.describe Account, type: :model do
describe 'partitioned' do
it 'returns a relation of accounts partitioned by domain' do
- matches = ['a', 'b', 'a', 'b']
+ matches = %w(a b a b)
matches.size.times.to_a.shuffle.each do |index|
matches[index] = Fabricate(:account, domain: matches[index])
end
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index 8bd86730bc..d170050fc5 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -262,7 +262,7 @@ RSpec.describe AccountStatusesCleanupPolicy, type: :model do
let!(:direct_message) { Fabricate(:status, created_at: 1.year.ago, account: account, visibility: :direct) }
let!(:self_faved) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:self_bookmarked) { Fabricate(:status, created_at: 1.year.ago, account: account) }
- let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: ['a', 'b'], expires_in: 2.days }) }
+ let!(:status_with_poll) { Fabricate(:status, created_at: 1.year.ago, account: account, poll_attributes: { account: account, voters_count: 0, options: %w(a b), expires_in: 2.days }) }
let!(:status_with_media) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:faved4) { Fabricate(:status, created_at: 1.year.ago, account: account) }
let!(:faved5) { Fabricate(:status, created_at: 1.year.ago, account: account) }
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 2110baa2d4..4f828bacc6 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -29,7 +29,7 @@ RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service d
end
it 'sets expected tags as pinned tags' do
- expect(actor.featured_tags.map(&:display_name)).to match_array ['Foo', 'bar', 'baZ']
+ expect(actor.featured_tags.map(&:display_name)).to match_array %w(Foo bar baZ)
end
end
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 6c3236bae6..78282e4537 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -12,7 +12,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
attachment: [
{ type: 'PropertyValue', name: 'Pronouns', value: 'They/them' },
{ type: 'PropertyValue', name: 'Occupation', value: 'Unit test' },
- { type: 'PropertyValue', name: 'non-string', value: ['foo', 'bar'] },
+ { type: 'PropertyValue', name: 'non-string', value: %w(foo bar) },
],
}.with_indifferent_access
end
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index d0cc8d2888..e5bfdd679f 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -50,9 +50,9 @@ RSpec.describe DeleteAccountService, type: :service do
it 'deletes associated target notifications' do
expect { subject }.to change {
- [
- 'poll', 'favourite', 'status', 'mention', 'follow'
- ].map { |type| Notification.where(type: type).count }
+ %w(
+ poll favourite status mention follow
+ ).map { |type| Notification.where(type: type).count }
}.from([1, 1, 1, 1, 1]).to([0, 0, 0, 0, 0])
end
end
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index 8faf048367..a5dfed369f 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -19,7 +19,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
[
{
'concurrency' => 2,
- 'queues' => ['push', 'default'],
+ 'queues' => %w(push default),
},
]
end
@@ -82,7 +82,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
describe '#get_budget' do
context 'on a single thread' do
- let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => ['push', 'default'] }] }
+ let(:process_set_stub) { [{ 'concurrency' => 1, 'queues' => %w(push default) }] }
it 'returns a low value' do
expect(subject.compute_budget).to be < 10
@@ -92,7 +92,7 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
context 'on a lot of threads' do
let(:process_set_stub) do
[
- { 'concurrency' => 2, 'queues' => ['push', 'default'] },
+ { 'concurrency' => 2, 'queues' => %w(push default) },
{ 'concurrency' => 2, 'queues' => ['push'] },
{ 'concurrency' => 2, 'queues' => ['push'] },
{ 'concurrency' => 2, 'queues' => ['push'] },
From 5116347eb7cfd0a09f55efbd84f8d3fa11d4d6ba Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:14:50 -0500
Subject: [PATCH 0092/1254] Autofix Rubocop RSpec/BeEq (#23740)
---
.rubocop_todo.yml | 43 -------------------
.../export_domain_allows_controller_spec.rb | 2 +-
.../admin/reports/actions_controller_spec.rb | 2 +-
.../admin/reports_controller_spec.rb | 8 ++--
..._factor_authentications_controller_spec.rb | 6 +--
.../accounts/credentials_controller_spec.rb | 2 +-
.../api/v1/bookmarks_controller_spec.rb | 2 +-
.../api/v1/favourites_controller_spec.rb | 2 +-
.../v2/filters/keywords_controller_spec.rb | 4 +-
.../application_controller_spec.rb | 6 +--
.../auth/registrations_controller_spec.rb | 6 +--
.../statuses_cleanup_controller_spec.rb | 6 +--
spec/helpers/application_helper_spec.rb | 10 ++---
spec/helpers/jsonld_helper_spec.rb | 12 +++---
spec/lib/activitypub/activity/add_spec.rb | 8 ++--
spec/lib/activitypub/activity/create_spec.rb | 4 +-
spec/lib/feed_manager_spec.rb | 28 ++++++------
spec/lib/ostatus/tag_manager_spec.rb | 6 +--
spec/lib/tag_manager_spec.rb | 20 ++++-----
spec/lib/user_settings_decorator_spec.rb | 20 ++++-----
spec/models/account_domain_block_spec.rb | 4 +-
spec/models/account_spec.rb | 20 ++++-----
spec/models/block_spec.rb | 8 ++--
spec/models/domain_block_spec.rb | 6 +--
spec/models/favourite_spec.rb | 2 +-
spec/models/media_attachment_spec.rb | 2 +-
spec/models/user_spec.rb | 2 +-
spec/models/web/push_subscription_spec.rb | 12 +++---
.../process_status_update_service_spec.rb | 2 +-
spec/services/fetch_oembed_service_spec.rb | 6 +--
spec/services/fetch_resource_service_spec.rb | 2 +-
spec/services/post_status_service_spec.rb | 2 +-
spec/services/precompute_feed_service_spec.rb | 2 +-
spec/services/resolve_account_service_spec.rb | 12 +++---
.../examples/lib/settings/scoped_settings.rb | 32 +++++++-------
spec/workers/domain_block_worker_spec.rb | 2 +-
.../workers/domain_clear_media_worker_spec.rb | 2 +-
spec/workers/feed_insert_worker_spec.rb | 4 +-
spec/workers/regeneration_worker_spec.rb | 2 +-
39 files changed, 139 insertions(+), 182 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index ce1ef9a2bc..86a48a1709 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -545,49 +545,6 @@ RSpec/AnyInstance:
- 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
-# Offense count: 139
-# This cop supports unsafe autocorrection (--autocorrect-all).
-RSpec/BeEq:
- Exclude:
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/reports/actions_controller_spec.rb'
- - 'spec/controllers/admin/reports_controller_spec.rb'
- - 'spec/controllers/admin/users/two_factor_authentications_controller_spec.rb'
- - 'spec/controllers/api/v1/accounts/credentials_controller_spec.rb'
- - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
- - 'spec/controllers/api/v1/favourites_controller_spec.rb'
- - 'spec/controllers/api/v2/filters/keywords_controller_spec.rb'
- - 'spec/controllers/application_controller_spec.rb'
- - 'spec/controllers/auth/registrations_controller_spec.rb'
- - 'spec/controllers/statuses_cleanup_controller_spec.rb'
- - 'spec/helpers/application_helper_spec.rb'
- - 'spec/helpers/jsonld_helper_spec.rb'
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/feed_manager_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/tag_manager_spec.rb'
- - 'spec/lib/user_settings_decorator_spec.rb'
- - 'spec/models/account_domain_block_spec.rb'
- - 'spec/models/account_spec.rb'
- - 'spec/models/block_spec.rb'
- - 'spec/models/domain_block_spec.rb'
- - 'spec/models/favourite_spec.rb'
- - 'spec/models/media_attachment_spec.rb'
- - 'spec/models/user_spec.rb'
- - 'spec/models/web/push_subscription_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
- - 'spec/services/post_status_service_spec.rb'
- - 'spec/services/precompute_feed_service_spec.rb'
- - 'spec/services/resolve_account_service_spec.rb'
- - 'spec/support/examples/lib/settings/scoped_settings.rb'
- - 'spec/workers/domain_block_worker_spec.rb'
- - 'spec/workers/domain_clear_media_worker_spec.rb'
- - 'spec/workers/feed_insert_worker_spec.rb'
- - 'spec/workers/regeneration_worker_spec.rb'
-
# Offense count: 1
RSpec/BeforeAfterAll:
Exclude:
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 1e1a5ae7d4..7ee064de7f 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
expect(response).to redirect_to(admin_instances_path)
# Header should not be imported
- expect(DomainAllow.where(domain: '#domain').present?).to eq(false)
+ expect(DomainAllow.where(domain: '#domain').present?).to be(false)
# Domains should now be added
get :export, params: { format: :csv }
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index db3a1d311c..20f85680fa 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -116,7 +116,7 @@ describe Admin::Reports::ActionsController do
it 'marks the non-deleted as sensitive' do
subject
- expect(media_attached_status.reload.sensitive).to eq true
+ expect(media_attached_status.reload.sensitive).to be true
end
end
end
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index 4dcc277d99..c6b5770a81 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -55,7 +55,7 @@ describe Admin::ReportsController do
expect(response).to redirect_to(admin_reports_path)
report.reload
expect(report.action_taken_by_account).to eq user.account
- expect(report.action_taken?).to eq true
+ expect(report.action_taken?).to be true
end
end
@@ -66,8 +66,8 @@ describe Admin::ReportsController do
put :reopen, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
- expect(report.action_taken_by_account).to eq nil
- expect(report.action_taken?).to eq false
+ expect(report.action_taken_by_account).to be_nil
+ expect(report.action_taken?).to be false
end
end
@@ -89,7 +89,7 @@ describe Admin::ReportsController do
put :unassign, params: { id: report }
expect(response).to redirect_to(admin_report_path(report))
report.reload
- expect(report.assigned_account).to eq nil
+ expect(report.assigned_account).to be_nil
end
end
end
diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
index e56264ef62..990dcf6408 100644
--- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -20,7 +20,7 @@ describe Admin::Users::TwoFactorAuthenticationsController do
delete :destroy, params: { user_id: user.id }
user.reload
- expect(user.otp_enabled?).to eq false
+ expect(user.otp_enabled?).to be false
expect(response).to redirect_to(admin_account_path(user.account_id))
end
end
@@ -43,8 +43,8 @@ describe Admin::Users::TwoFactorAuthenticationsController do
delete :destroy, params: { user_id: user.id }
user.reload
- expect(user.otp_enabled?).to eq false
- expect(user.webauthn_enabled?).to eq false
+ expect(user.otp_enabled?).to be false
+ expect(user.webauthn_enabled?).to be false
expect(response).to redirect_to(admin_account_path(user.account_id))
end
end
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index cf91aae38f..3494ca6746 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -51,7 +51,7 @@ describe Api::V1::Accounts::CredentialsController do
expect(user.account.avatar).to exist
expect(user.account.header).to exist
expect(user.setting_default_privacy).to eq('unlisted')
- expect(user.setting_default_sensitive).to eq(true)
+ expect(user.setting_default_sensitive).to be(true)
end
it 'queues up an account update distribution' do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index b7af60d2b1..48332b15a5 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe Api::V1::BookmarksController, type: :controller do
it 'does not add pagination headers if not necessary' do
get :index
- expect(response.headers['Link']).to eq nil
+ expect(response.headers['Link']).to be_nil
end
end
end
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index dfa3f11011..f0fb8f37bd 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -70,7 +70,7 @@ RSpec.describe Api::V1::FavouritesController, type: :controller do
it 'does not add pagination headers if not necessary' do
get :index
- expect(response.headers['Link']).to eq nil
+ expect(response.headers['Link']).to be_nil
end
end
end
diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
index 1201a4ca23..0e0f52ea86 100644
--- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
@@ -45,7 +45,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
it 'returns a keyword' do
json = body_as_json
expect(json[:keyword]).to eq 'magic'
- expect(json[:whole_word]).to eq false
+ expect(json[:whole_word]).to be false
end
it 'creates a keyword' do
@@ -78,7 +78,7 @@ RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
it 'returns expected data' do
json = body_as_json
expect(json[:keyword]).to eq 'foo'
- expect(json[:whole_word]).to eq false
+ expect(json[:whole_word]).to be false
end
context "when trying to access another user's filter keyword" do
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index e2a63002b6..35c7326cb1 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -57,19 +57,19 @@ describe ApplicationController, type: :controller do
describe 'helper_method :single_user_mode?' do
it 'returns false if it is in single_user_mode but there is no account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
- expect(controller.view_context.single_user_mode?).to eq false
+ expect(controller.view_context.single_user_mode?).to be false
end
it 'returns false if there is an account but it is not in single_user_mode' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(false)
Fabricate(:account)
- expect(controller.view_context.single_user_mode?).to eq false
+ expect(controller.view_context.single_user_mode?).to be false
end
it 'returns true if it is in single_user_mode and there is an account' do
allow(Rails.configuration.x).to receive(:single_user_mode).and_return(true)
Fabricate(:account)
- expect(controller.view_context.single_user_mode?).to eq true
+ expect(controller.view_context.single_user_mode?).to be true
end
end
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index 8cfb8e277a..f42f685c10 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -163,7 +163,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(false)
+ expect(user.approved).to be(false)
end
end
@@ -191,7 +191,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(false)
+ expect(user.approved).to be(false)
end
end
@@ -223,7 +223,7 @@ RSpec.describe Auth::RegistrationsController, type: :controller do
user = User.find_by(email: 'test@example.com')
expect(user).to_not be_nil
expect(user.locale).to eq(accept_language)
- expect(user.approved).to eq(true)
+ expect(user.approved).to be(true)
end
end
diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb
index 347fe4027e..24b4ea7b60 100644
--- a/spec/controllers/statuses_cleanup_controller_spec.rb
+++ b/spec/controllers/statuses_cleanup_controller_spec.rb
@@ -19,9 +19,9 @@ RSpec.describe StatusesCleanupController, type: :controller do
it 'updates the account status cleanup policy' do
put :update, params: { account_statuses_cleanup_policy: { enabled: true, min_status_age: 2.weeks.seconds, keep_direct: false, keep_polls: true } }
expect(response).to redirect_to(statuses_cleanup_path)
- expect(@user.account.statuses_cleanup_policy.enabled).to eq true
- expect(@user.account.statuses_cleanup_policy.keep_direct).to eq false
- expect(@user.account.statuses_cleanup_policy.keep_polls).to eq true
+ expect(@user.account.statuses_cleanup_policy.enabled).to be true
+ expect(@user.account.statuses_cleanup_policy.keep_direct).to be false
+ expect(@user.account.statuses_cleanup_policy.keep_polls).to be true
end
end
end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index 6502cfebf2..e0f71afd53 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -65,7 +65,7 @@ describe ApplicationHelper do
expect(Setting).to receive(:registrations_mode).and_return('open')
end
- expect(helper.open_registrations?).to eq true
+ expect(helper.open_registrations?).to be true
end
it 'returns false when closed for registrations' do
@@ -73,7 +73,7 @@ describe ApplicationHelper do
expect(Setting).to receive(:registrations_mode).and_return('none')
end
- expect(helper.open_registrations?).to eq false
+ expect(helper.open_registrations?).to be false
end
end
@@ -84,7 +84,7 @@ describe ApplicationHelper do
end
it 'does not show landing strip' do
- expect(helper.show_landing_strip?).to eq false
+ expect(helper.show_landing_strip?).to be false
end
end
@@ -96,13 +96,13 @@ describe ApplicationHelper do
it 'does not show landing strip on single user instance' do
allow(helper).to receive(:single_user_mode?).and_return(true)
- expect(helper.show_landing_strip?).to eq false
+ expect(helper.show_landing_strip?).to be false
end
it 'shows landing strip on multi user instance' do
allow(helper).to receive(:single_user_mode?).and_return(false)
- expect(helper.show_landing_strip?).to eq true
+ expect(helper.show_landing_strip?).to be true
end
end
end
diff --git a/spec/helpers/jsonld_helper_spec.rb b/spec/helpers/jsonld_helper_spec.rb
index debee17f0f..ddd4bfe629 100644
--- a/spec/helpers/jsonld_helper_spec.rb
+++ b/spec/helpers/jsonld_helper_spec.rb
@@ -66,14 +66,14 @@ describe JsonLdHelper do
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://marvin.test/"}'
stub_request(:get, 'https://marvin.test/').to_return body: '{"id": "https://alice.test/"}'
- expect(fetch_resource('https://mallory.test/', false)).to eq nil
+ expect(fetch_resource('https://mallory.test/', false)).to be_nil
end
end
context 'when the second argument is true' do
it 'returns nil if the retrieved ID and the given URI does not match' do
stub_request(:get, 'https://mallory.test/').to_return body: '{"id": "https://alice.test/"}'
- expect(fetch_resource('https://mallory.test/', true)).to eq nil
+ expect(fetch_resource('https://mallory.test/', true)).to be_nil
end
end
end
@@ -81,7 +81,7 @@ describe JsonLdHelper do
describe '#fetch_resource_without_id_validation' do
it 'returns nil if the status code is not 200' do
stub_request(:get, 'https://host.test/').to_return status: 400, body: '{}'
- expect(fetch_resource_without_id_validation('https://host.test/')).to eq nil
+ expect(fetch_resource_without_id_validation('https://host.test/')).to be_nil
end
it 'returns hash' do
@@ -150,7 +150,7 @@ describe JsonLdHelper do
patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
expect(compacted.dig('object', 'tag', 0, 'href')).to eq ['foo']
- expect(safe_for_forwarding?(json, compacted)).to eq true
+ expect(safe_for_forwarding?(json, compacted)).to be true
end
end
@@ -160,14 +160,14 @@ describe JsonLdHelper do
compacted = compact(json)
deemed_compatible = patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
- expect(safe_for_forwarding?(json, compacted)).to eq true
+ expect(safe_for_forwarding?(json, compacted)).to be true
end
it 'deems an unsafe compacting as such' do
compacted = compact(json)
deemed_compatible = patch_for_forwarding!(json, compacted)
expect(compacted['to']).to eq ['https://www.w3.org/ns/activitystreams#Public']
- expect(safe_for_forwarding?(json, compacted)).to eq false
+ expect(safe_for_forwarding?(json, compacted)).to be false
end
end
end
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index e21c871e67..a69c3d2b19 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -50,8 +50,8 @@ RSpec.describe ActivityPub::Activity::Add do
it 'fetches the status and pins it' do
allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
- expect(id).to eq true
- expect(on_behalf_of&.following?(sender)).to eq true
+ expect(id).to be true
+ expect(on_behalf_of&.following?(sender)).to be true
status
end
subject.perform
@@ -64,8 +64,8 @@ RSpec.describe ActivityPub::Activity::Add do
it 'tries to fetch the status' do
allow(service_stub).to receive(:call) do |uri, id: true, on_behalf_of: nil, request_id: nil| # rubocop:disable Lint/UnusedBlockArgument
expect(uri).to eq 'https://example.com/unknown'
- expect(id).to eq true
- expect(on_behalf_of).to eq nil
+ expect(id).to be true
+ expect(on_behalf_of).to be_nil
nil
end
subject.perform
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index c26c8b3580..fd49830374 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -51,7 +51,7 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.edited?).to eq true
+ expect(status.edited?).to be true
end
end
@@ -77,7 +77,7 @@ RSpec.describe ActivityPub::Activity::Create do
status = sender.statuses.first
expect(status).to_not be_nil
- expect(status.edited?).to eq false
+ expect(status.edited?).to be false
end
end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index 7195cec064..d54050f8f7 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -297,7 +297,7 @@ RSpec.describe FeedManager do
status = Fabricate(:status, reblog: reblog)
FeedManager.instance.push_to_home(account, status)
- expect(FeedManager.instance.push_to_home(account, reblog)).to eq false
+ expect(FeedManager.instance.push_to_home(account, reblog)).to be false
end
end
@@ -322,7 +322,7 @@ RSpec.describe FeedManager do
status = Fabricate(:status, reblog: reblog)
FeedManager.instance.push_to_list(list, status)
- expect(FeedManager.instance.push_to_list(list, reblog)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reblog)).to be false
end
context 'when replies policy is set to no replies' do
@@ -332,19 +332,19 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'does not push replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reply)).to be false
end
end
@@ -355,25 +355,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'does not push replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq false
+ expect(FeedManager.instance.push_to_list(list, reply)).to be false
end
end
@@ -384,25 +384,25 @@ RSpec.describe FeedManager do
it 'pushes statuses that are not replies' do
status = Fabricate(:status, text: 'Hello world', account: bob)
- expect(FeedManager.instance.push_to_list(list, status)).to eq true
+ expect(FeedManager.instance.push_to_list(list, status)).to be true
end
it 'pushes statuses that are replies to list owner' do
status = Fabricate(:status, text: 'Hello world', account: owner)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to another member of the list' do
status = Fabricate(:status, text: 'Hello world', account: alice)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
it 'pushes replies to someone not a member of the list' do
status = Fabricate(:status, text: 'Hello world', account: eve)
reply = Fabricate(:status, text: 'Nay', thread: status, account: bob)
- expect(FeedManager.instance.push_to_list(list, reply)).to eq true
+ expect(FeedManager.instance.push_to_list(list, reply)).to be true
end
end
end
@@ -416,7 +416,7 @@ RSpec.describe FeedManager do
FeedManager.instance.merge_into_home(account, reblog.account)
- expect(redis.zscore('feed:home:0', reblog.id)).to eq nil
+ expect(redis.zscore('feed:home:0', reblog.id)).to be_nil
end
end
diff --git a/spec/lib/ostatus/tag_manager_spec.rb b/spec/lib/ostatus/tag_manager_spec.rb
index 65ba7577ac..8104a7e791 100644
--- a/spec/lib/ostatus/tag_manager_spec.rb
+++ b/spec/lib/ostatus/tag_manager_spec.rb
@@ -15,15 +15,15 @@ describe OStatus::TagManager do
end
it 'returns nil if it is not local id' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:remote,2000-01-01:objectId=12:objectType=Status', 'Status')).to be_nil
end
it 'returns nil if it is not expected type' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectId=12:objectType=Block', 'Status')).to be_nil
end
it 'returns nil if it does not have object ID' do
- expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to eq nil
+ expect(OStatus::TagManager.instance.unique_tag_to_local_id('tag:cb6e6126.ngrok.io,2000-01-01:objectType=Status', 'Status')).to be_nil
end
end
diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb
index cd9fb936cd..d2bb24c0f1 100644
--- a/spec/lib/tag_manager_spec.rb
+++ b/spec/lib/tag_manager_spec.rb
@@ -14,15 +14,15 @@ RSpec.describe TagManager do
end
it 'returns true for nil' do
- expect(TagManager.instance.local_domain?(nil)).to eq true
+ expect(TagManager.instance.local_domain?(nil)).to be true
end
it 'returns true if the slash-stripped string equals to local domain' do
- expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.local_domain?('DoMaIn.Example.com/')).to be true
end
it 'returns false for irrelevant string' do
- expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to eq false
+ expect(TagManager.instance.local_domain?('DoMaIn.Example.com!')).to be false
end
end
@@ -39,21 +39,21 @@ RSpec.describe TagManager do
end
it 'returns true for nil' do
- expect(TagManager.instance.web_domain?(nil)).to eq true
+ expect(TagManager.instance.web_domain?(nil)).to be true
end
it 'returns true if the slash-stripped string equals to web domain' do
- expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.web_domain?('DoMaIn.Example.com/')).to be true
end
it 'returns false for string with irrelevant characters' do
- expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to eq false
+ expect(TagManager.instance.web_domain?('DoMaIn.Example.com!')).to be false
end
end
describe '#normalize_domain' do
it 'returns nil if the given parameter is nil' do
- expect(TagManager.instance.normalize_domain(nil)).to eq nil
+ expect(TagManager.instance.normalize_domain(nil)).to be_nil
end
it 'returns normalized domain' do
@@ -70,17 +70,17 @@ RSpec.describe TagManager do
it 'returns true if the normalized string with port is local URL' do
Rails.configuration.x.web_domain = 'domain.example.com:42'
- expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to eq true
+ expect(TagManager.instance.local_url?('https://DoMaIn.Example.com:42/')).to be true
end
it 'returns true if the normalized string without port is local URL' do
Rails.configuration.x.web_domain = 'domain.example.com'
- expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to eq true
+ expect(TagManager.instance.local_url?('https://DoMaIn.Example.com/')).to be true
end
it 'returns false for string with irrelevant characters' do
Rails.configuration.x.web_domain = 'domain.example.com'
- expect(TagManager.instance.local_url?('https://domain.example.net/')).to eq false
+ expect(TagManager.instance.local_url?('https://domain.example.net/')).to be false
end
end
end
diff --git a/spec/lib/user_settings_decorator_spec.rb b/spec/lib/user_settings_decorator_spec.rb
index 462c5b1249..3b9b7ee2b2 100644
--- a/spec/lib/user_settings_decorator_spec.rb
+++ b/spec/lib/user_settings_decorator_spec.rb
@@ -11,14 +11,14 @@ describe UserSettingsDecorator do
values = { 'notification_emails' => { 'follow' => '1' } }
settings.update(values)
- expect(user.settings['notification_emails']['follow']).to eq true
+ expect(user.settings['notification_emails']['follow']).to be true
end
it 'updates the user settings value for interactions' do
values = { 'interactions' => { 'must_be_follower' => '0' } }
settings.update(values)
- expect(user.settings['interactions']['must_be_follower']).to eq false
+ expect(user.settings['interactions']['must_be_follower']).to be false
end
it 'updates the user settings value for privacy' do
@@ -32,42 +32,42 @@ describe UserSettingsDecorator do
values = { 'setting_default_sensitive' => '1' }
settings.update(values)
- expect(user.settings['default_sensitive']).to eq true
+ expect(user.settings['default_sensitive']).to be true
end
it 'updates the user settings value for unfollow modal' do
values = { 'setting_unfollow_modal' => '0' }
settings.update(values)
- expect(user.settings['unfollow_modal']).to eq false
+ expect(user.settings['unfollow_modal']).to be false
end
it 'updates the user settings value for boost modal' do
values = { 'setting_boost_modal' => '1' }
settings.update(values)
- expect(user.settings['boost_modal']).to eq true
+ expect(user.settings['boost_modal']).to be true
end
it 'updates the user settings value for delete toot modal' do
values = { 'setting_delete_modal' => '0' }
settings.update(values)
- expect(user.settings['delete_modal']).to eq false
+ expect(user.settings['delete_modal']).to be false
end
it 'updates the user settings value for gif auto play' do
values = { 'setting_auto_play_gif' => '0' }
settings.update(values)
- expect(user.settings['auto_play_gif']).to eq false
+ expect(user.settings['auto_play_gif']).to be false
end
it 'updates the user settings value for system font in UI' do
values = { 'setting_system_font_ui' => '0' }
settings.update(values)
- expect(user.settings['system_font_ui']).to eq false
+ expect(user.settings['system_font_ui']).to be false
end
it 'decoerces setting values before applying' do
@@ -77,8 +77,8 @@ describe UserSettingsDecorator do
}
settings.update(values)
- expect(user.settings['delete_modal']).to eq false
- expect(user.settings['boost_modal']).to eq true
+ expect(user.settings['delete_modal']).to be false
+ expect(user.settings['boost_modal']).to be true
end
end
end
diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb
index 469bc05cb1..a170abcd27 100644
--- a/spec/models/account_domain_block_spec.rb
+++ b/spec/models/account_domain_block_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe AccountDomainBlock, type: :model do
AccountDomainBlock.create!(account: account, domain: 'a.domain.blocked.later')
- expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false
end
it 'removes blocking cache after destruction' do
@@ -17,6 +17,6 @@ RSpec.describe AccountDomainBlock, type: :model do
block.destroy!
- expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_domains_for:#{account.id}")).to be false
end
end
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index 24239f85d1..f3ad198777 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -160,7 +160,7 @@ RSpec.describe Account, type: :model do
it 'sets default avatar, header, avatar_remote_url, and header_remote_url' do
expect(account.avatar_remote_url).to eq 'https://remote.test/invalid_avatar'
expect(account.header_remote_url).to eq expectation.header_remote_url
- expect(account.avatar_file_name).to eq nil
+ expect(account.avatar_file_name).to be_nil
expect(account.header_file_name).to eq expectation.header_file_name
end
end
@@ -259,11 +259,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has favourited it' do
Fabricate(:favourite, status: original_reblog, account: subject)
- expect(subject.favourited?(original_status)).to eq true
+ expect(subject.favourited?(original_status)).to be true
end
it 'is false when this account has not favourited it' do
- expect(subject.favourited?(original_status)).to eq false
+ expect(subject.favourited?(original_status)).to be false
end
end
@@ -271,11 +271,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has favourited it' do
Fabricate(:favourite, status: original_status, account: subject)
- expect(subject.favourited?(original_status)).to eq true
+ expect(subject.favourited?(original_status)).to be true
end
it 'is false when this account has not favourited it' do
- expect(subject.favourited?(original_status)).to eq false
+ expect(subject.favourited?(original_status)).to be false
end
end
end
@@ -297,11 +297,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has reblogged it' do
Fabricate(:status, reblog: original_reblog, account: subject)
- expect(subject.reblogged?(original_reblog)).to eq true
+ expect(subject.reblogged?(original_reblog)).to be true
end
it 'is false when this account has not reblogged it' do
- expect(subject.reblogged?(original_reblog)).to eq false
+ expect(subject.reblogged?(original_reblog)).to be false
end
end
@@ -309,11 +309,11 @@ RSpec.describe Account, type: :model do
it 'is true when this account has reblogged it' do
Fabricate(:status, reblog: original_status, account: subject)
- expect(subject.reblogged?(original_status)).to eq true
+ expect(subject.reblogged?(original_status)).to be true
end
it 'is false when this account has not reblogged it' do
- expect(subject.reblogged?(original_status)).to eq false
+ expect(subject.reblogged?(original_status)).to be false
end
end
end
@@ -958,7 +958,7 @@ RSpec.describe Account, type: :model do
# Test disabled because test environment omits autogenerating keys for performance
xit 'generates keys' do
account = Account.create!(domain: nil, username: Faker::Internet.user_name(separators: ['_']))
- expect(account.keypair.private?).to eq true
+ expect(account.keypair.private?).to be true
end
end
diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb
index acbdc77f5b..1fd60c29d2 100644
--- a/spec/models/block_spec.rb
+++ b/spec/models/block_spec.rb
@@ -28,8 +28,8 @@ RSpec.describe Block, type: :model do
Block.create!(account: account, target_account: target_account)
- expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false
- expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false
end
it 'removes blocking cache after destruction' do
@@ -41,7 +41,7 @@ RSpec.describe Block, type: :model do
block.destroy!
- expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to eq false
- expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to eq false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{account.id}")).to be false
+ expect(Rails.cache.exist?("exclude_account_ids_for:#{target_account.id}")).to be false
end
end
diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb
index 28647dc89c..d1d57c1677 100644
--- a/spec/models/domain_block_spec.rb
+++ b/spec/models/domain_block_spec.rb
@@ -24,16 +24,16 @@ RSpec.describe DomainBlock, type: :model do
describe '.blocked?' do
it 'returns true if the domain is suspended' do
Fabricate(:domain_block, domain: 'example.com', severity: :suspend)
- expect(DomainBlock.blocked?('example.com')).to eq true
+ expect(DomainBlock.blocked?('example.com')).to be true
end
it 'returns false even if the domain is silenced' do
Fabricate(:domain_block, domain: 'example.com', severity: :silence)
- expect(DomainBlock.blocked?('example.com')).to eq false
+ expect(DomainBlock.blocked?('example.com')).to be false
end
it 'returns false if the domain is not suspended nor silenced' do
- expect(DomainBlock.blocked?('example.com')).to eq false
+ expect(DomainBlock.blocked?('example.com')).to be false
end
end
diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb
index ba1410a453..f755590ee5 100644
--- a/spec/models/favourite_spec.rb
+++ b/spec/models/favourite_spec.rb
@@ -9,7 +9,7 @@ RSpec.describe Favourite, type: :model do
it 'invalidates if the reblogged status is already a favourite' do
Favourite.create!(account: account, status: reblog)
- expect(Favourite.new(account: account, status: status).valid?).to eq false
+ expect(Favourite.new(account: account, status: status).valid?).to be false
end
it 'replaces status with the reblogged one if it is a reblog' do
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 57e1314230..097c76f311 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -138,7 +138,7 @@ RSpec.describe MediaAttachment, type: :model do
end
it 'extracts thumbnail' do
- expect(media.thumbnail.present?).to eq true
+ expect(media.thumbnail.present?).to be true
end
it 'extracts colors from thumbnail' do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 9af616b32a..9dfd6678ac 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -46,7 +46,7 @@ RSpec.describe User, type: :model do
it 'cleans out empty string from languages' do
user = Fabricate.build(:user, chosen_languages: [''])
user.valid?
- expect(user.chosen_languages).to eq nil
+ expect(user.chosen_languages).to be_nil
end
end
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index 388154000c..a5c34f4edc 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -39,7 +39,7 @@ RSpec.describe Web::PushSubscription, type: :model do
let(:policy) { 'all' }
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
@@ -47,7 +47,7 @@ RSpec.describe Web::PushSubscription, type: :model do
let(:policy) { 'none' }
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
@@ -60,13 +60,13 @@ RSpec.describe Web::PushSubscription, type: :model do
end
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
context 'and notification is not from someone you follow' do
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
end
@@ -80,13 +80,13 @@ RSpec.describe Web::PushSubscription, type: :model do
end
it 'returns true' do
- expect(subject.pushable?(notification)).to eq true
+ expect(subject.pushable?(notification)).to be true
end
end
context 'and notification is not from someone who follows you' do
it 'returns false' do
- expect(subject.pushable?(notification)).to eq false
+ expect(subject.pushable?(notification)).to be false
end
end
end
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index 3d6f76163e..c8aa56def1 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -410,7 +410,7 @@ RSpec.describe ActivityPub::ProcessStatusUpdateService, type: :service do
end
it 'removes poll' do
- expect(status.reload.poll).to eq nil
+ expect(status.reload.poll).to be_nil
end
it 'records media change in edit' do
diff --git a/spec/services/fetch_oembed_service_spec.rb b/spec/services/fetch_oembed_service_spec.rb
index cf46f2d390..8a0b492223 100644
--- a/spec/services/fetch_oembed_service_spec.rb
+++ b/spec/services/fetch_oembed_service_spec.rb
@@ -62,7 +62,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html', format: :xml)
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
@@ -83,7 +83,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html')
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
@@ -104,7 +104,7 @@ describe FetchOEmbedService, type: :service do
it 'does not cache OEmbed endpoint' do
subject.call('https://host.test/oembed.html')
- expect(Rails.cache.exist?('oembed_endpoint:host.test')).to eq false
+ expect(Rails.cache.exist?('oembed_endpoint:host.test')).to be false
end
end
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 84c4035cb1..226c98d70a 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -74,7 +74,7 @@ RSpec.describe FetchResourceService, type: :service do
context 'when content type is application/atom+xml' do
let(:content_type) { 'application/atom+xml' }
- it { is_expected.to eq nil }
+ it { is_expected.to be_nil }
end
context 'when content type is activity+json' do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index 2148f18197..c34f2393a1 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -216,7 +216,7 @@ RSpec.describe PostStatusService, type: :service do
media_ids: [media.id]
)
- expect(media.reload.status).to eq nil
+ expect(media.reload.status).to be_nil
end
it 'does not allow attaching more than 4 files' do
diff --git a/spec/services/precompute_feed_service_spec.rb b/spec/services/precompute_feed_service_spec.rb
index b28824f9a2..86ab59b29e 100644
--- a/spec/services/precompute_feed_service_spec.rb
+++ b/spec/services/precompute_feed_service_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe PrecomputeFeedService, type: :service do
subject.call(account)
- expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to eq nil
+ expect(redis.zscore(FeedManager.instance.key(:home, account.id), reblog.id)).to be_nil
end
end
end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 192225229d..02869f8c8c 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -108,7 +108,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('Foo@redirected.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.acct).to eq 'foo@ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -123,7 +123,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('Foo@redirected.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.acct).to eq 'foo@ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -146,7 +146,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
end
@@ -159,7 +159,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.actor_type).to eq 'Person'
@@ -174,7 +174,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.uri).to eq 'https://ap.example.com/users/foo'
@@ -195,7 +195,7 @@ RSpec.describe ResolveAccountService, type: :service do
it 'returns new remote account' do
account = subject.call('foo@ap.example.com')
- expect(account.activitypub?).to eq true
+ expect(account.activitypub?).to be true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
expect(account.uri).to eq 'https://ap.example.com/users/foo'
diff --git a/spec/support/examples/lib/settings/scoped_settings.rb b/spec/support/examples/lib/settings/scoped_settings.rb
index 2457dcfbf2..106adb4fac 100644
--- a/spec/support/examples/lib/settings/scoped_settings.rb
+++ b/spec/support/examples/lib/settings/scoped_settings.rb
@@ -3,13 +3,13 @@
shared_examples 'ScopedSettings' do
describe '[]' do
it 'inherits default settings' do
- expect(Setting.boost_modal).to eq false
- expect(Setting.interactions['must_be_follower']).to eq false
+ expect(Setting.boost_modal).to be false
+ expect(Setting.interactions['must_be_follower']).to be false
settings = create!
- expect(settings['boost_modal']).to eq false
- expect(settings['interactions']['must_be_follower']).to eq false
+ expect(settings['boost_modal']).to be false
+ expect(settings['interactions']['must_be_follower']).to be false
end
end
@@ -17,16 +17,16 @@ shared_examples 'ScopedSettings' do
# expecting [] and []= works
it 'returns records merged with default values except hashes' do
- expect(Setting.boost_modal).to eq false
- expect(Setting.delete_modal).to eq true
+ expect(Setting.boost_modal).to be false
+ expect(Setting.delete_modal).to be true
settings = create!
settings['boost_modal'] = true
records = settings.all_as_records
- expect(records['boost_modal'].value).to eq true
- expect(records['delete_modal'].value).to eq true
+ expect(records['boost_modal'].value).to be true
+ expect(records['delete_modal'].value).to be true
end
end
@@ -34,15 +34,15 @@ shared_examples 'ScopedSettings' do
# expecting [] and []= works.
it 'reads settings' do
- expect(Setting.boost_modal).to eq false
+ expect(Setting.boost_modal).to be false
settings = create!
- expect(settings.boost_modal).to eq false
+ expect(settings.boost_modal).to be false
end
it 'updates settings' do
settings = fabricate
settings.boost_modal = true
- expect(settings['boost_modal']).to eq true
+ expect(settings['boost_modal']).to be true
end
end
@@ -54,13 +54,13 @@ shared_examples 'ScopedSettings' do
Setting.save!
- expect(settings['boost_modal']).to eq true
- expect(settings['interactions']['must_be_follower']).to eq true
+ expect(settings['boost_modal']).to be true
+ expect(settings['interactions']['must_be_follower']).to be true
Rails.cache.clear
- expect(settings['boost_modal']).to eq true
- expect(settings['interactions']['must_be_follower']).to eq true
+ expect(settings['boost_modal']).to be true
+ expect(settings['interactions']['must_be_follower']).to be true
end
xit 'does not mutate defaults via the cache' do
@@ -69,6 +69,6 @@ shared_examples 'ScopedSettings' do
# This mutates the global settings default such that future
# instances will inherit the incorrect starting values
- expect(fabricate.settings['interactions']['must_be_follower']).to eq false
+ expect(fabricate.settings['interactions']['must_be_follower']).to be false
end
end
diff --git a/spec/workers/domain_block_worker_spec.rb b/spec/workers/domain_block_worker_spec.rb
index bd8fc4a620..8b98443fa7 100644
--- a/spec/workers/domain_block_worker_spec.rb
+++ b/spec/workers/domain_block_worker_spec.rb
@@ -20,7 +20,7 @@ describe DomainBlockWorker do
it 'returns true for non-existent domain block' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
diff --git a/spec/workers/domain_clear_media_worker_spec.rb b/spec/workers/domain_clear_media_worker_spec.rb
index 36251b1ec5..f21d1fe189 100644
--- a/spec/workers/domain_clear_media_worker_spec.rb
+++ b/spec/workers/domain_clear_media_worker_spec.rb
@@ -20,7 +20,7 @@ describe DomainClearMediaWorker do
it 'returns true for non-existent domain block' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
diff --git a/spec/workers/feed_insert_worker_spec.rb b/spec/workers/feed_insert_worker_spec.rb
index 1a723d63a1..16f7d73e02 100644
--- a/spec/workers/feed_insert_worker_spec.rb
+++ b/spec/workers/feed_insert_worker_spec.rb
@@ -15,7 +15,7 @@ describe FeedInsertWorker do
allow(FeedManager).to receive(:instance).and_return(instance)
result = subject.perform(nil, follower.id)
- expect(result).to eq true
+ expect(result).to be true
expect(instance).to_not have_received(:push_to_home)
end
@@ -24,7 +24,7 @@ describe FeedInsertWorker do
allow(FeedManager).to receive(:instance).and_return(instance)
result = subject.perform(status.id, nil)
- expect(result).to eq true
+ expect(result).to be true
expect(instance).to_not have_received(:push_to_home)
end
end
diff --git a/spec/workers/regeneration_worker_spec.rb b/spec/workers/regeneration_worker_spec.rb
index c6bdfa0e5e..147a76be50 100644
--- a/spec/workers/regeneration_worker_spec.rb
+++ b/spec/workers/regeneration_worker_spec.rb
@@ -20,7 +20,7 @@ describe RegenerationWorker do
it 'fails when account does not exist' do
result = subject.perform('aaa')
- expect(result).to eq(true)
+ expect(result).to be(true)
end
end
end
From d2dcb6c45a9db5439772f0553046e2c03a739a16 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:51:43 -0500
Subject: [PATCH 0093/1254] Autofix Rubocop Style/UnpackFirst (#23741)
---
.rubocop_todo.yml | 7 -------
app/models/concerns/account_interactions.rb | 4 ++--
lib/paperclip/gif_transcoder.rb | 4 ++--
3 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 86a48a1709..0f98d25d6c 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2617,10 +2617,3 @@ Style/SymbolArray:
Style/SymbolProc:
Exclude:
- 'spec/lib/request_spec.rb'
-
-# Offense count: 4
-# This cop supports safe autocorrection (--autocorrect).
-Style/UnpackFirst:
- Exclude:
- - 'app/models/concerns/account_interactions.rb'
- - 'lib/paperclip/gif_transcoder.rb'
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index 325619774a..1898516b00 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -278,7 +278,7 @@ module AccountInteractions
followers.where(Account.arel_table[:uri].matches("#{Account.sanitize_sql_like(url_prefix)}/%", false, true)).or(followers.where(uri: url_prefix)).pluck_each(:uri) do |uri|
Xorcist.xor!(digest, Digest::SHA256.digest(uri))
end
- digest.unpack('H*')[0]
+ digest.unpack1('H*')
end
end
@@ -288,7 +288,7 @@ module AccountInteractions
followers.where(domain: nil).pluck_each(:username) do |username|
Xorcist.xor!(digest, Digest::SHA256.digest(ActivityPub::TagManager.instance.uri_for_username(username)))
end
- digest.unpack('H*')[0]
+ digest.unpack1('H*')
end
end
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
index d14465c018..f385b00a32 100644
--- a/lib/paperclip/gif_transcoder.rb
+++ b/lib/paperclip/gif_transcoder.rb
@@ -57,7 +57,7 @@ class GifReader
end
# Skip lzw min code size
- raise InvalidValue unless s.read(1).unpack('C')[0] >= 2
+ raise InvalidValue unless s.read(1).unpack1('C') >= 2
# Skip image data sub-blocks
skip_sub_blocks!(s)
@@ -77,7 +77,7 @@ class GifReader
private
def skip_extension_block!(file)
- if EXTENSION_LABELS.include?(file.read(1).unpack('C')[0])
+ if EXTENSION_LABELS.include?(file.read(1).unpack1('C'))
block_size, = file.read(1).unpack('C')
file.seek(block_size, IO::SEEK_CUR)
end
From 717683d1c39d2fe85d1cc3f5223e1f4cf43f1900 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 00:58:28 -0500
Subject: [PATCH 0094/1254] Autofix Rubocop remaining Layout rules (#23679)
---
.rubocop_todo.yml | 148 ------------------
Capfile | 1 +
app/controllers/api/v1/tags_controller.rb | 1 +
app/controllers/application_controller.rb | 1 +
.../concerns/session_tracking_concern.rb | 1 +
.../concerns/signature_verification.rb | 1 +
app/helpers/application_helper.rb | 1 +
app/helpers/languages_helper.rb | 1 +
app/lib/activitypub/activity.rb | 1 +
app/lib/activitypub/linked_data_signature.rb | 2 +-
app/lib/activitypub/tag_manager.rb | 2 +
app/lib/ostatus/tag_manager.rb | 32 ++--
app/lib/request.rb | 1 +
app/lib/settings/scoped_settings.rb | 2 +
app/lib/status_filter.rb | 1 +
app/lib/tag_manager.rb | 1 +
app/lib/webfinger.rb | 1 +
app/models/account.rb | 2 +
app/models/account/field.rb | 4 +-
app/models/account_conversation.rb | 2 +
app/models/account_domain_block.rb | 1 +
app/models/account_moderation_note.rb | 1 +
app/models/account_note.rb | 1 +
app/models/account_pin.rb | 1 +
app/models/account_stat.rb | 1 +
app/models/account_summary.rb | 1 +
app/models/account_warning.rb | 13 +-
app/models/admin/import.rb | 1 +
app/models/backup.rb | 1 +
app/models/block.rb | 1 +
app/models/bookmark.rb | 1 +
app/models/canonical_email_block.rb | 1 +
app/models/conversation.rb | 1 +
app/models/conversation_mute.rb | 1 +
app/models/custom_emoji.rb | 1 +
app/models/custom_filter.rb | 3 +
app/models/custom_filter_keyword.rb | 1 +
app/models/custom_filter_status.rb | 1 +
app/models/device.rb | 1 +
app/models/domain_block.rb | 1 +
app/models/email_domain_block.rb | 1 +
app/models/encrypted_message.rb | 1 +
app/models/favourite.rb | 2 +
app/models/featured_tag.rb | 1 +
app/models/follow.rb | 1 +
app/models/follow_recommendation.rb | 1 +
.../follow_recommendation_suppression.rb | 1 +
app/models/follow_request.rb | 1 +
app/models/form/admin_settings.rb | 1 +
app/models/identity.rb | 1 +
app/models/import.rb | 1 +
app/models/instance.rb | 1 +
app/models/invite.rb | 1 +
app/models/ip_block.rb | 1 +
app/models/list.rb | 1 +
app/models/list_account.rb | 1 +
app/models/login_activity.rb | 1 +
app/models/media_attachment.rb | 3 +-
app/models/mention.rb | 1 +
app/models/mute.rb | 1 +
app/models/notification.rb | 11 +-
app/models/one_time_key.rb | 1 +
app/models/poll.rb | 8 +-
app/models/poll_vote.rb | 1 +
app/models/preview_card.rb | 1 +
app/models/preview_card_provider.rb | 1 +
app/models/relay.rb | 1 +
app/models/report.rb | 1 +
app/models/report_note.rb | 1 +
app/models/session_activation.rb | 2 +
app/models/setting.rb | 4 +
app/models/site_upload.rb | 1 +
app/models/status.rb | 1 +
app/models/status_edit.rb | 2 +
app/models/status_pin.rb | 1 +
app/models/status_stat.rb | 1 +
app/models/tag.rb | 1 +
app/models/unavailable_domain.rb | 1 +
app/models/user.rb | 4 +
app/models/user_ip.rb | 1 +
app/models/user_role.rb | 2 +
app/models/web/push_subscription.rb | 1 +
app/models/web/setting.rb | 1 +
app/models/webauthn_credential.rb | 1 +
.../account_relationships_presenter.rb | 18 +--
.../activitypub/fetch_remote_actor_service.rb | 1 +
.../fetch_remote_status_service.rb | 1 +
.../activitypub/fetch_replies_service.rb | 1 +
.../activitypub/process_account_service.rb | 2 +
app/services/favourite_service.rb | 1 +
app/services/keys/claim_service.rb | 6 +-
app/services/keys/query_service.rb | 6 +-
app/services/notify_service.rb | 1 +
app/services/post_status_service.rb | 3 +
app/services/vote_service.rb | 2 +
app/validators/follow_limit_validator.rb | 1 +
.../unreserved_username_validator.rb | 2 +
.../accounts_statuses_cleanup_scheduler.rb | 2 +
app/workers/web/push_notification_worker.rb | 12 +-
config.ru | 1 +
...1829_migrate_open_registrations_setting.rb | 2 +
..._preserve_old_layout_for_existing_users.rb | 1 +
...dd_case_insensitive_btree_index_to_tags.rb | 1 +
...0613110834_add_action_to_custom_filters.rb | 1 +
...200917193528_migrate_notifications_type.rb | 10 +-
...2_remove_whole_word_from_custom_filters.rb | 1 +
...remove_irreversible_from_custom_filters.rb | 1 +
...221101190723_backfill_admin_action_logs.rb | 13 ++
...114142_backfill_admin_action_logs_again.rb | 13 ++
lib/mastodon/domains_cli.rb | 2 +
lib/sanitize_ext/sanitize_config.rb | 12 +-
lib/tasks/auto_annotate_models.rake | 70 ++++-----
lib/tasks/mastodon.rake | 16 +-
.../v1/accounts/statuses_controller_spec.rb | 1 +
spec/models/admin/account_action_spec.rb | 4 +-
.../concerns/account_interactions_spec.rb | 4 +-
spec/models/tag_spec.rb | 1 +
117 files changed, 265 insertions(+), 261 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0f98d25d6c..e667a77869 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -14,154 +14,6 @@ Bundler/OrderedGems:
Exclude:
- 'Gemfile'
-# Offense count: 81
-# This cop supports safe autocorrection (--autocorrect).
-Layout/EmptyLineAfterGuardClause:
- Exclude:
- - 'app/controllers/api/v1/tags_controller.rb'
- - 'app/controllers/application_controller.rb'
- - 'app/controllers/concerns/session_tracking_concern.rb'
- - 'app/controllers/concerns/signature_verification.rb'
- - 'app/helpers/application_helper.rb'
- - 'app/lib/activitypub/activity.rb'
- - 'app/lib/activitypub/tag_manager.rb'
- - 'app/lib/request.rb'
- - 'app/lib/settings/scoped_settings.rb'
- - 'app/lib/status_filter.rb'
- - 'app/lib/tag_manager.rb'
- - 'app/lib/webfinger.rb'
- - 'app/models/account.rb'
- - 'app/models/account_conversation.rb'
- - 'app/models/admin/import.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/favourite.rb'
- - 'app/models/form/admin_settings.rb'
- - 'app/models/poll.rb'
- - 'app/models/session_activation.rb'
- - 'app/models/setting.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/user.rb'
- - 'app/models/user_role.rb'
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/activitypub/fetch_replies_service.rb'
- - 'app/services/activitypub/process_account_service.rb'
- - 'app/services/favourite_service.rb'
- - 'app/services/notify_service.rb'
- - 'app/services/post_status_service.rb'
- - 'app/services/vote_service.rb'
- - 'app/validators/follow_limit_validator.rb'
- - 'app/validators/unreserved_username_validator.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb'
- - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- - 'lib/mastodon/domains_cli.rb'
-
-# Offense count: 71
-# This cop supports safe autocorrection (--autocorrect).
-Layout/EmptyLineAfterMagicComment:
- Exclude:
- - 'Capfile'
- - 'app/helpers/languages_helper.rb'
- - 'app/models/account.rb'
- - 'app/models/account_conversation.rb'
- - 'app/models/account_domain_block.rb'
- - 'app/models/account_moderation_note.rb'
- - 'app/models/account_note.rb'
- - 'app/models/account_pin.rb'
- - 'app/models/account_stat.rb'
- - 'app/models/account_summary.rb'
- - 'app/models/account_warning.rb'
- - 'app/models/backup.rb'
- - 'app/models/block.rb'
- - 'app/models/bookmark.rb'
- - 'app/models/canonical_email_block.rb'
- - 'app/models/conversation.rb'
- - 'app/models/conversation_mute.rb'
- - 'app/models/custom_emoji.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/custom_filter_keyword.rb'
- - 'app/models/custom_filter_status.rb'
- - 'app/models/device.rb'
- - 'app/models/domain_block.rb'
- - 'app/models/email_domain_block.rb'
- - 'app/models/encrypted_message.rb'
- - 'app/models/favourite.rb'
- - 'app/models/featured_tag.rb'
- - 'app/models/follow.rb'
- - 'app/models/follow_recommendation.rb'
- - 'app/models/follow_recommendation_suppression.rb'
- - 'app/models/follow_request.rb'
- - 'app/models/identity.rb'
- - 'app/models/import.rb'
- - 'app/models/instance.rb'
- - 'app/models/invite.rb'
- - 'app/models/ip_block.rb'
- - 'app/models/list.rb'
- - 'app/models/list_account.rb'
- - 'app/models/login_activity.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/mention.rb'
- - 'app/models/mute.rb'
- - 'app/models/notification.rb'
- - 'app/models/one_time_key.rb'
- - 'app/models/poll.rb'
- - 'app/models/poll_vote.rb'
- - 'app/models/preview_card.rb'
- - 'app/models/preview_card_provider.rb'
- - 'app/models/relay.rb'
- - 'app/models/report.rb'
- - 'app/models/report_note.rb'
- - 'app/models/session_activation.rb'
- - 'app/models/setting.rb'
- - 'app/models/site_upload.rb'
- - 'app/models/status.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/status_pin.rb'
- - 'app/models/status_stat.rb'
- - 'app/models/tag.rb'
- - 'app/models/unavailable_domain.rb'
- - 'app/models/user.rb'
- - 'app/models/user_ip.rb'
- - 'app/models/web/push_subscription.rb'
- - 'app/models/web/setting.rb'
- - 'app/models/webauthn_credential.rb'
- - 'config.ru'
- - 'db/migrate/20220613110834_add_action_to_custom_filters.rb'
- - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb'
- - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb'
- - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
- - 'spec/models/tag_spec.rb'
-
-# Offense count: 113
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
-# SupportedHashRocketStyles: key, separator, table
-# SupportedColonStyles: key, separator, table
-# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
-Layout/HashAlignment:
- Exclude:
- - 'app/lib/activitypub/linked_data_signature.rb'
- - 'app/lib/ostatus/tag_manager.rb'
- - 'app/models/account/field.rb'
- - 'app/models/account_warning.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/notification.rb'
- - 'app/models/poll.rb'
- - 'app/presenters/account_relationships_presenter.rb'
- - 'app/services/keys/claim_service.rb'
- - 'app/services/keys/query_service.rb'
- - 'app/workers/web/push_notification_worker.rb'
- - 'db/post_migrate/20200917193528_migrate_notifications_type.rb'
- - 'lib/sanitize_ext/sanitize_config.rb'
- - 'lib/tasks/auto_annotate_models.rake'
- - 'lib/tasks/mastodon.rake'
- - 'spec/models/admin/account_action_spec.rb'
- - 'spec/models/concerns/account_interactions_spec.rb'
-
# Offense count: 581
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
diff --git a/Capfile b/Capfile
index bf3ae7e249..86efa5bacf 100644
--- a/Capfile
+++ b/Capfile
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/scm/git'
diff --git a/app/controllers/api/v1/tags_controller.rb b/app/controllers/api/v1/tags_controller.rb
index 272362c314..a08fd21877 100644
--- a/app/controllers/api/v1/tags_controller.rb
+++ b/app/controllers/api/v1/tags_controller.rb
@@ -25,6 +25,7 @@ class Api::V1::TagsController < Api::BaseController
def set_or_create_tag
return not_found unless Tag::HASHTAG_NAME_RE.match?(params[:id])
+
@tag = Tag.find_normalized(params[:id]) || Tag.new(name: Tag.normalize(params[:id]), display_name: params[:id])
end
end
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 615536b963..ad70e28ab5 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -128,6 +128,7 @@ class ApplicationController < ActionController::Base
def current_theme
return Setting.theme unless Themes.instance.names.include? current_user&.setting_theme
+
current_user.setting_theme
end
diff --git a/app/controllers/concerns/session_tracking_concern.rb b/app/controllers/concerns/session_tracking_concern.rb
index eaaa4ac597..3f56c0d026 100644
--- a/app/controllers/concerns/session_tracking_concern.rb
+++ b/app/controllers/concerns/session_tracking_concern.rb
@@ -13,6 +13,7 @@ module SessionTrackingConcern
def set_session_activity
return unless session_needs_update?
+
current_session.touch
end
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index 9c04ab4ca6..b0a087d536 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -165,6 +165,7 @@ module SignatureVerification
end
raise SignatureVerificationError, "Invalid Digest value. The provided Digest value is not a SHA-256 digest. Given digest: #{sha256[1]}" if digest_size != 32
+
raise SignatureVerificationError, "Invalid Digest value. Computed SHA-256 digest: #{body_digest}; given: #{sha256[1]}"
end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 1f93b33f5b..08020a65a2 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -105,6 +105,7 @@ module ApplicationHelper
def can?(action, record)
return false if record.nil?
+
policy(record).public_send("#{action}?")
end
diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index bb35ce08cd..5843947584 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# rubocop:disable Metrics/ModuleLength, Style/WordArray
module LanguagesHelper
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 900428e920..5d95962548 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -153,6 +153,7 @@ class ActivityPub::Activity
def fetch_remote_original_status
if object_uri.start_with?('http')
return if ActivityPub::TagManager.instance.local_uri?(object_uri)
+
ActivityPub::FetchRemoteStatusService.new.call(object_uri, id: true, on_behalf_of: @account.followers.local.first, request_id: @options[:request_id])
elsif @object['url'].present?
::FetchRemoteStatusService.new.call(@object['url'], request_id: @options[:request_id])
diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb
index 61759649ab..ea59879f3b 100644
--- a/app/lib/activitypub/linked_data_signature.rb
+++ b/app/lib/activitypub/linked_data_signature.rb
@@ -32,7 +32,7 @@ class ActivityPub::LinkedDataSignature
def sign!(creator, sign_with: nil)
options = {
- 'type' => 'RsaSignature2017',
+ 'type' => 'RsaSignature2017',
'creator' => ActivityPub::TagManager.instance.key_uri_for(creator),
'created' => Time.now.utc.iso8601,
}
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index 3d6b28ef58..a65a9565ab 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -26,6 +26,7 @@ class ActivityPub::TagManager
target.instance_actor? ? about_more_url(instance_actor: true) : short_account_url(target)
when :note, :comment, :activity
return activity_account_status_url(target.account, target) if target.reblog?
+
short_account_status_url(target.account, target)
end
end
@@ -38,6 +39,7 @@ class ActivityPub::TagManager
target.instance_actor? ? instance_actor_url : account_url(target)
when :note, :comment, :activity
return activity_account_status_url(target.account, target) if target.reblog?
+
account_status_url(target.account, target)
when :emoji
emoji_url(target)
diff --git a/app/lib/ostatus/tag_manager.rb b/app/lib/ostatus/tag_manager.rb
index 4f45013126..7d81316227 100644
--- a/app/lib/ostatus/tag_manager.rb
+++ b/app/lib/ostatus/tag_manager.rb
@@ -5,27 +5,27 @@ class OStatus::TagManager
include RoutingHelper
VERBS = {
- post: 'http://activitystrea.ms/schema/1.0/post',
- share: 'http://activitystrea.ms/schema/1.0/share',
- favorite: 'http://activitystrea.ms/schema/1.0/favorite',
- unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
- delete: 'http://activitystrea.ms/schema/1.0/delete',
- follow: 'http://activitystrea.ms/schema/1.0/follow',
+ post: 'http://activitystrea.ms/schema/1.0/post',
+ share: 'http://activitystrea.ms/schema/1.0/share',
+ favorite: 'http://activitystrea.ms/schema/1.0/favorite',
+ unfavorite: 'http://activitystrea.ms/schema/1.0/unfavorite',
+ delete: 'http://activitystrea.ms/schema/1.0/delete',
+ follow: 'http://activitystrea.ms/schema/1.0/follow',
request_friend: 'http://activitystrea.ms/schema/1.0/request-friend',
- authorize: 'http://activitystrea.ms/schema/1.0/authorize',
- reject: 'http://activitystrea.ms/schema/1.0/reject',
- unfollow: 'http://ostatus.org/schema/1.0/unfollow',
- block: 'http://mastodon.social/schema/1.0/block',
- unblock: 'http://mastodon.social/schema/1.0/unblock',
+ authorize: 'http://activitystrea.ms/schema/1.0/authorize',
+ reject: 'http://activitystrea.ms/schema/1.0/reject',
+ unfollow: 'http://ostatus.org/schema/1.0/unfollow',
+ block: 'http://mastodon.social/schema/1.0/block',
+ unblock: 'http://mastodon.social/schema/1.0/unblock',
}.freeze
TYPES = {
- activity: 'http://activitystrea.ms/schema/1.0/activity',
- note: 'http://activitystrea.ms/schema/1.0/note',
- comment: 'http://activitystrea.ms/schema/1.0/comment',
- person: 'http://activitystrea.ms/schema/1.0/person',
+ activity: 'http://activitystrea.ms/schema/1.0/activity',
+ note: 'http://activitystrea.ms/schema/1.0/note',
+ comment: 'http://activitystrea.ms/schema/1.0/comment',
+ person: 'http://activitystrea.ms/schema/1.0/person',
collection: 'http://activitystrea.ms/schema/1.0/collection',
- group: 'http://activitystrea.ms/schema/1.0/group',
+ group: 'http://activitystrea.ms/schema/1.0/group',
}.freeze
COLLECTIONS = {
diff --git a/app/lib/request.rb b/app/lib/request.rb
index be6a69b3ff..85716f9990 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -182,6 +182,7 @@ class Request
contents = truncated_body(limit)
raise Mastodon::LengthValidationError if contents.bytesize > limit
+
contents
end
end
diff --git a/app/lib/settings/scoped_settings.rb b/app/lib/settings/scoped_settings.rb
index 1e18d6d463..3ad57cc1ea 100644
--- a/app/lib/settings/scoped_settings.rb
+++ b/app/lib/settings/scoped_settings.rb
@@ -34,6 +34,7 @@ module Settings
Setting.default_settings.each do |key, default_value|
next if records.key?(key) || default_value.is_a?(Hash)
+
records[key] = Setting.new(var: key, value: default_value)
end
@@ -54,6 +55,7 @@ module Settings
if db_val
default_value = ScopedSettings.default_settings[key]
return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
+
db_val.value
else
ScopedSettings.default_settings[key]
diff --git a/app/lib/status_filter.rb b/app/lib/status_filter.rb
index b6c80b801c..c0e6f33313 100644
--- a/app/lib/status_filter.rb
+++ b/app/lib/status_filter.rb
@@ -11,6 +11,7 @@ class StatusFilter
def filtered?
return false if !account.nil? && account.id == status.account_id
+
blocked_by_policy? || (account_present? && filtered_status?) || silenced_account?
end
diff --git a/app/lib/tag_manager.rb b/app/lib/tag_manager.rb
index a1d12a654e..7fbf4437da 100644
--- a/app/lib/tag_manager.rb
+++ b/app/lib/tag_manager.rb
@@ -25,6 +25,7 @@ class TagManager
def local_url?(url)
uri = Addressable::URI.parse(url).normalize
return false unless uri.host
+
domain = uri.host + (uri.port ? ":#{uri.port}" : '')
TagManager.instance.web_domain?(domain)
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index 42ddef47b4..ae8a3b1eae 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -57,6 +57,7 @@ class Webfinger
if res.code == 200
body = res.body_with_limit
raise Webfinger::Error, "Request for #{@uri} returned empty response" if body.empty?
+
body
elsif res.code == 404 && use_fallback
body_from_host_meta
diff --git a/app/models/account.rb b/app/models/account.rb
index d33110d55e..09c450f2ab 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: accounts
@@ -539,6 +540,7 @@ class Account < ApplicationRecord
def ensure_keys!
return unless local? && private_key.blank? && public_key.blank?
+
generate_keys
save!
end
diff --git a/app/models/account/field.rb b/app/models/account/field.rb
index 98c29726df..2bada6954b 100644
--- a/app/models/account/field.rb
+++ b/app/models/account/field.rb
@@ -14,8 +14,8 @@ class Account::Field < ActiveModelSerializers::Model
@account = account
super(
- name: sanitize(attributes['name']),
- value: sanitize(attributes['value']),
+ name: sanitize(attributes['name']),
+ value: sanitize(attributes['value']),
verified_at: attributes['verified_at']&.to_datetime,
)
end
diff --git a/app/models/account_conversation.rb b/app/models/account_conversation.rb
index 45e74bbeb3..b3ddc04c10 100644
--- a/app/models/account_conversation.rb
+++ b/app/models/account_conversation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_conversations
@@ -107,6 +108,7 @@ class AccountConversation < ApplicationRecord
def push_to_streaming_api
return if destroyed? || !subscribed_to_timeline?
+
PushConversationWorker.perform_async(id)
end
diff --git a/app/models/account_domain_block.rb b/app/models/account_domain_block.rb
index 3aaffde9a9..af1e6a68dc 100644
--- a/app/models/account_domain_block.rb
+++ b/app/models/account_domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_domain_blocks
diff --git a/app/models/account_moderation_note.rb b/app/models/account_moderation_note.rb
index 22e312bb22..ff399bab0c 100644
--- a/app/models/account_moderation_note.rb
+++ b/app/models/account_moderation_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_moderation_notes
diff --git a/app/models/account_note.rb b/app/models/account_note.rb
index b338bc92f2..9bc704d988 100644
--- a/app/models/account_note.rb
+++ b/app/models/account_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_notes
diff --git a/app/models/account_pin.rb b/app/models/account_pin.rb
index b51d3d4cd4..6c78e8c446 100644
--- a/app/models/account_pin.rb
+++ b/app/models/account_pin.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_pins
diff --git a/app/models/account_stat.rb b/app/models/account_stat.rb
index a5d71a5b8c..834f8ba4c2 100644
--- a/app/models/account_stat.rb
+++ b/app/models/account_stat.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_stats
diff --git a/app/models/account_summary.rb b/app/models/account_summary.rb
index 3a3cebc55c..0d8835b83c 100644
--- a/app/models/account_summary.rb
+++ b/app/models/account_summary.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_summaries
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
index a181cd18d9..4f8cc53200 100644
--- a/app/models/account_warning.rb
+++ b/app/models/account_warning.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: account_warnings
@@ -17,13 +18,13 @@
class AccountWarning < ApplicationRecord
enum action: {
- none: 0,
- disable: 1_000,
+ none: 0,
+ disable: 1_000,
mark_statuses_as_sensitive: 1_250,
- delete_statuses: 1_500,
- sensitive: 2_000,
- silence: 3_000,
- suspend: 4_000,
+ delete_statuses: 1_500,
+ sensitive: 2_000,
+ silence: 3_000,
+ suspend: 4_000,
}, _suffix: :action
before_validation :before_validate
diff --git a/app/models/admin/import.rb b/app/models/admin/import.rb
index fecde4878b..0fd4bdb824 100644
--- a/app/models/admin/import.rb
+++ b/app/models/admin/import.rb
@@ -56,6 +56,7 @@ class Admin::Import
def validate_data
return if data.nil?
+
errors.add(:data, I18n.t('imports.errors.over_rows_processing_limit', count: ROWS_PROCESSING_LIMIT)) if csv_row_count > ROWS_PROCESSING_LIMIT
rescue CSV::MalformedCSVError => e
errors.add(:data, I18n.t('imports.errors.invalid_csv_file', error: e.message))
diff --git a/app/models/backup.rb b/app/models/backup.rb
index 277b9395ba..bec3cbfe5e 100644
--- a/app/models/backup.rb
+++ b/app/models/backup.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: backups
diff --git a/app/models/block.rb b/app/models/block.rb
index bf3e076003..b42c1569b9 100644
--- a/app/models/block.rb
+++ b/app/models/block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: blocks
diff --git a/app/models/bookmark.rb b/app/models/bookmark.rb
index 6334ef0df7..04b660372e 100644
--- a/app/models/bookmark.rb
+++ b/app/models/bookmark.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: bookmarks
diff --git a/app/models/canonical_email_block.rb b/app/models/canonical_email_block.rb
index 1eb69ac67a..d09df6f5e2 100644
--- a/app/models/canonical_email_block.rb
+++ b/app/models/canonical_email_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: canonical_email_blocks
diff --git a/app/models/conversation.rb b/app/models/conversation.rb
index 4dfaea889d..5de2599627 100644
--- a/app/models/conversation.rb
+++ b/app/models/conversation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: conversations
diff --git a/app/models/conversation_mute.rb b/app/models/conversation_mute.rb
index 52c1a33e07..31f8e19667 100644
--- a/app/models/conversation_mute.rb
+++ b/app/models/conversation_mute.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: conversation_mutes
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 3048056591..3d7900226d 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_emojis
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 781bf4db88..d85e196e96 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filters
@@ -101,6 +102,7 @@ class CustomFilter < ApplicationRecord
status_matches = [status.id, status.reblog_of_id].compact & rules[:status_ids] if rules[:status_ids].present?
next if keyword_matches.blank? && status_matches.blank?
+
FilterResultPresenter.new(filter: filter, keyword_matches: keyword_matches, status_matches: status_matches)
end
end
@@ -111,6 +113,7 @@ class CustomFilter < ApplicationRecord
def invalidate_cache!
return unless @should_invalidate_cache
+
@should_invalidate_cache = false
Rails.cache.delete("filters:v3:#{account_id}")
diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb
index e0d0289ae1..3158b3b79a 100644
--- a/app/models/custom_filter_keyword.rb
+++ b/app/models/custom_filter_keyword.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filter_keywords
diff --git a/app/models/custom_filter_status.rb b/app/models/custom_filter_status.rb
index e748d69633..0a5650204a 100644
--- a/app/models/custom_filter_status.rb
+++ b/app/models/custom_filter_status.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: custom_filter_statuses
diff --git a/app/models/device.rb b/app/models/device.rb
index 97d0d27746..5dc6cf1e66 100644
--- a/app/models/device.rb
+++ b/app/models/device.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: devices
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index 190f5ba2e4..fbb045416c 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: domain_blocks
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 3a56e4f2aa..276e7d31a1 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: email_domain_blocks
diff --git a/app/models/encrypted_message.rb b/app/models/encrypted_message.rb
index 7b4e32283f..3e7e95594c 100644
--- a/app/models/encrypted_message.rb
+++ b/app/models/encrypted_message.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: encrypted_messages
diff --git a/app/models/favourite.rb b/app/models/favourite.rb
index 2f355739ab..042f72beae 100644
--- a/app/models/favourite.rb
+++ b/app/models/favourite.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: favourites
@@ -38,6 +39,7 @@ class Favourite < ApplicationRecord
def decrement_cache_counters
return if association(:status).loaded? && status.marked_for_destruction?
+
status&.decrement_count!(:favourites_count)
end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
index 70f949b6ac..587dcf9912 100644
--- a/app/models/featured_tag.rb
+++ b/app/models/featured_tag.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: featured_tags
diff --git a/app/models/follow.rb b/app/models/follow.rb
index e5cecbbc1d..108f5c5d51 100644
--- a/app/models/follow.rb
+++ b/app/models/follow.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follows
diff --git a/app/models/follow_recommendation.rb b/app/models/follow_recommendation.rb
index 501f8ecb6e..602d329858 100644
--- a/app/models/follow_recommendation.rb
+++ b/app/models/follow_recommendation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_recommendations
diff --git a/app/models/follow_recommendation_suppression.rb b/app/models/follow_recommendation_suppression.rb
index 170506b853..a9dbbfc18f 100644
--- a/app/models/follow_recommendation_suppression.rb
+++ b/app/models/follow_recommendation_suppression.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_recommendation_suppressions
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 9034250c0d..78f79c18f0 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: follow_requests
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 95c53084a7..de965cb0ba 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -128,6 +128,7 @@ class Form::AdminSettings
def validate_site_uploads
UPLOAD_KEYS.each do |key|
next unless instance_variable_defined?("@#{key}")
+
upload = instance_variable_get("@#{key}")
next if upload.valid?
diff --git a/app/models/identity.rb b/app/models/identity.rb
index 8cc65aef41..6f10fed4d7 100644
--- a/app/models/identity.rb
+++ b/app/models/identity.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: identities
diff --git a/app/models/import.rb b/app/models/import.rb
index cd33eb07b0..21634005ed 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: imports
diff --git a/app/models/instance.rb b/app/models/instance.rb
index edbf02a6d1..1f96d37286 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: instances
diff --git a/app/models/invite.rb b/app/models/invite.rb
index 7ea4e2f984..8e816cef06 100644
--- a/app/models/invite.rb
+++ b/app/models/invite.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: invites
diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb
index 31343f0e11..99783050b8 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: ip_blocks
diff --git a/app/models/list.rb b/app/models/list.rb
index 7b8cf66362..bd1bdbd24d 100644
--- a/app/models/list.rb
+++ b/app/models/list.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: lists
diff --git a/app/models/list_account.rb b/app/models/list_account.rb
index 785923c4cf..a5767d3d8b 100644
--- a/app/models/list_account.rb
+++ b/app/models/list_account.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: list_accounts
diff --git a/app/models/login_activity.rb b/app/models/login_activity.rb
index 52a0fd01d0..2b7b37f8e4 100644
--- a/app/models/login_activity.rb
+++ b/app/models/login_activity.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: login_activities
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index c6f2352e03..08abd4e43b 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: media_attachments
@@ -372,7 +373,7 @@ class MediaAttachment < ApplicationRecord
return {} if width.nil?
{
- width: width,
+ width: width,
height: height,
size: "#{width}x#{height}",
aspect: width.to_f / height,
diff --git a/app/models/mention.rb b/app/models/mention.rb
index d01a88e32e..2348b2905c 100644
--- a/app/models/mention.rb
+++ b/app/models/mention.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: mentions
diff --git a/app/models/mute.rb b/app/models/mute.rb
index 578345ef64..8fc5422624 100644
--- a/app/models/mute.rb
+++ b/app/models/mute.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: mutes
diff --git a/app/models/notification.rb b/app/models/notification.rb
index 01155c363e..3eaf557b08 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: notifications
@@ -19,12 +20,12 @@ class Notification < ApplicationRecord
include Paginable
LEGACY_TYPE_CLASS_MAP = {
- 'Mention' => :mention,
- 'Status' => :reblog,
- 'Follow' => :follow,
+ 'Mention' => :mention,
+ 'Status' => :reblog,
+ 'Follow' => :follow,
'FollowRequest' => :follow_request,
- 'Favourite' => :favourite,
- 'Poll' => :poll,
+ 'Favourite' => :favourite,
+ 'Poll' => :poll,
}.freeze
TYPES = %i(
diff --git a/app/models/one_time_key.rb b/app/models/one_time_key.rb
index 8ada34824f..23604e2f7d 100644
--- a/app/models/one_time_key.rb
+++ b/app/models/one_time_key.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: one_time_keys
diff --git a/app/models/poll.rb b/app/models/poll.rb
index af3b09315c..dd35e953b8 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: polls
@@ -74,9 +75,9 @@ class Poll < ApplicationRecord
def initialize(poll, id, title, votes_count)
super(
- poll: poll,
- id: id,
- title: title,
+ poll: poll,
+ id: id,
+ title: title,
votes_count: votes_count,
)
end
@@ -105,6 +106,7 @@ class Poll < ApplicationRecord
def reset_parent_cache
return if status_id.nil?
+
Rails.cache.delete("statuses/#{status_id}")
end
diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb
index ad24eb6914..00eaedd129 100644
--- a/app/models/poll_vote.rb
+++ b/app/models/poll_vote.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: poll_votes
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index d25fe6dad1..6bce165629 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: preview_cards
diff --git a/app/models/preview_card_provider.rb b/app/models/preview_card_provider.rb
index d61fe60208..1dd95fc91c 100644
--- a/app/models/preview_card_provider.rb
+++ b/app/models/preview_card_provider.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: preview_card_providers
diff --git a/app/models/relay.rb b/app/models/relay.rb
index e9c425743f..a5fa03a99c 100644
--- a/app/models/relay.rb
+++ b/app/models/relay.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: relays
diff --git a/app/models/report.rb b/app/models/report.rb
index fe6c292c5b..a9940459de 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: reports
diff --git a/app/models/report_note.rb b/app/models/report_note.rb
index 6d7167e0ed..74b46027e8 100644
--- a/app/models/report_note.rb
+++ b/app/models/report_note.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: report_notes
diff --git a/app/models/session_activation.rb b/app/models/session_activation.rb
index 0b7fa6fe49..10c3a6c250 100644
--- a/app/models/session_activation.rb
+++ b/app/models/session_activation.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: session_activations
@@ -51,6 +52,7 @@ class SessionActivation < ApplicationRecord
def deactivate(id)
return unless id
+
where(session_id: id).destroy_all
end
diff --git a/app/models/setting.rb b/app/models/setting.rb
index c6558d6924..3bdc6ffb40 100644
--- a/app/models/setting.rb
+++ b/app/models/setting.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: settings
@@ -30,6 +31,7 @@ class Setting < RailsSettings::Base
default_value = default_settings[key]
return default_value.with_indifferent_access.merge!(db_val.value) if default_value.is_a?(Hash)
+
db_val.value
else
default_settings[key]
@@ -43,6 +45,7 @@ class Setting < RailsSettings::Base
default_settings.each do |key, default_value|
next if records.key?(key) || default_value.is_a?(Hash)
+
records[key] = Setting.new(var: key, value: default_value)
end
@@ -51,6 +54,7 @@ class Setting < RailsSettings::Base
def default_settings
return {} unless RailsSettings::Default.enabled?
+
RailsSettings::Default.instance
end
end
diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb
index 167131fdd9..e17668110c 100644
--- a/app/models/site_upload.rb
+++ b/app/models/site_upload.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: site_uploads
diff --git a/app/models/status.rb b/app/models/status.rb
index 44a297a088..2eb47d72c2 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: statuses
diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb
index dd2d5fc1ec..683441bb56 100644
--- a/app/models/status_edit.rb
+++ b/app/models/status_edit.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_edits
@@ -45,6 +46,7 @@ class StatusEdit < ApplicationRecord
def emojis
return @emojis if defined?(@emojis)
+
@emojis = CustomEmoji.from_text([spoiler_text, text].join(' '), status.account.domain)
end
diff --git a/app/models/status_pin.rb b/app/models/status_pin.rb
index 93a0ea1c03..dae4a5b4e6 100644
--- a/app/models/status_pin.rb
+++ b/app/models/status_pin.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_pins
diff --git a/app/models/status_stat.rb b/app/models/status_stat.rb
index 437861d1c4..d101cc1789 100644
--- a/app/models/status_stat.rb
+++ b/app/models/status_stat.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: status_stats
diff --git a/app/models/tag.rb b/app/models/tag.rb
index 98001d60a5..554a92d901 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: tags
diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb
index dfc0ef14ef..c3f2f20e9e 100644
--- a/app/models/unavailable_domain.rb
+++ b/app/models/unavailable_domain.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: unavailable_domains
diff --git a/app/models/user.rb b/app/models/user.rb
index c767f89842..5e106dee57 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: users
@@ -492,12 +493,14 @@ class User < ApplicationRecord
def sanitize_languages
return if chosen_languages.nil?
+
chosen_languages.reject!(&:blank?)
self.chosen_languages = nil if chosen_languages.empty?
end
def sanitize_role
return if role.nil?
+
self.role = nil if role.everyone?
end
@@ -516,6 +519,7 @@ class User < ApplicationRecord
def notify_staff_about_pending_account!
User.those_who_can(:manage_users).includes(:account).find_each do |u|
next unless u.allows_pending_account_emails?
+
AdminMailer.new_pending_account(u.account, self).deliver_later
end
end
diff --git a/app/models/user_ip.rb b/app/models/user_ip.rb
index 1da6157629..38287c2a60 100644
--- a/app/models/user_ip.rb
+++ b/app/models/user_ip.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: user_ips
diff --git a/app/models/user_role.rb b/app/models/user_role.rb
index 74dfdc2205..a1b91dc0f5 100644
--- a/app/models/user_role.rb
+++ b/app/models/user_role.rb
@@ -163,6 +163,7 @@ class UserRole < ApplicationRecord
def in_permissions?(privilege)
raise ArgumentError, "Unknown privilege: #{privilege}" unless FLAGS.key?(privilege)
+
computed_permissions & FLAGS[privilege] == FLAGS[privilege]
end
@@ -172,6 +173,7 @@ class UserRole < ApplicationRecord
def validate_own_role_edition
return unless defined?(@current_account) && @current_account.user_role.id == id
+
errors.add(:permissions_as_keys, :own_role) if permissions_changed?
errors.add(:position, :own_role) if position_changed?
end
diff --git a/app/models/web/push_subscription.rb b/app/models/web/push_subscription.rb
index dfaadf5cca..0ffbe068eb 100644
--- a/app/models/web/push_subscription.rb
+++ b/app/models/web/push_subscription.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: web_push_subscriptions
diff --git a/app/models/web/setting.rb b/app/models/web/setting.rb
index 99588d26c5..3d5efe664a 100644
--- a/app/models/web/setting.rb
+++ b/app/models/web/setting.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: web_settings
diff --git a/app/models/webauthn_credential.rb b/app/models/webauthn_credential.rb
index 48abfc1d45..4fa31ece52 100644
--- a/app/models/webauthn_credential.rb
+++ b/app/models/webauthn_credential.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# == Schema Information
#
# Table name: webauthn_credentials
diff --git a/app/presenters/account_relationships_presenter.rb b/app/presenters/account_relationships_presenter.rb
index ab8bac4129..5d2b5435dd 100644
--- a/app/presenters/account_relationships_presenter.rb
+++ b/app/presenters/account_relationships_presenter.rb
@@ -70,16 +70,16 @@ class AccountRelationshipsPresenter
def cache_uncached!
@uncached_account_ids.each do |account_id|
maps_for_account = {
- following: { account_id => following[account_id] },
- followed_by: { account_id => followed_by[account_id] },
- blocking: { account_id => blocking[account_id] },
- blocked_by: { account_id => blocked_by[account_id] },
- muting: { account_id => muting[account_id] },
- requested: { account_id => requested[account_id] },
- requested_by: { account_id => requested_by[account_id] },
+ following: { account_id => following[account_id] },
+ followed_by: { account_id => followed_by[account_id] },
+ blocking: { account_id => blocking[account_id] },
+ blocked_by: { account_id => blocked_by[account_id] },
+ muting: { account_id => muting[account_id] },
+ requested: { account_id => requested[account_id] },
+ requested_by: { account_id => requested_by[account_id] },
domain_blocking: { account_id => domain_blocking[account_id] },
- endorsed: { account_id => endorsed[account_id] },
- account_note: { account_id => account_note[account_id] },
+ endorsed: { account_id => endorsed[account_id] },
+ account_note: { account_id => account_note[account_id] },
}
Rails.cache.write("relationship:#{@current_account_id}:#{account_id}", maps_for_account, expires_in: 1.day)
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index e8992b845d..ee0eaff08b 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -50,6 +50,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+
return
end
diff --git a/app/services/activitypub/fetch_remote_status_service.rb b/app/services/activitypub/fetch_remote_status_service.rb
index aea80f078a..ab0acf7f0f 100644
--- a/app/services/activitypub/fetch_remote_status_service.rb
+++ b/app/services/activitypub/fetch_remote_status_service.rb
@@ -56,6 +56,7 @@ class ActivityPub::FetchRemoteStatusService < BaseService
def trustworthy_attribution?(uri, attributed_to)
return false if uri.nil? || attributed_to.nil?
+
Addressable::URI.parse(uri).normalized_host.casecmp(Addressable::URI.parse(attributed_to).normalized_host).zero?
end
diff --git a/app/services/activitypub/fetch_replies_service.rb b/app/services/activitypub/fetch_replies_service.rb
index 4128df9ca7..3fe150ba21 100644
--- a/app/services/activitypub/fetch_replies_service.rb
+++ b/app/services/activitypub/fetch_replies_service.rb
@@ -36,6 +36,7 @@ class ActivityPub::FetchRepliesService < BaseService
return collection_or_uri if collection_or_uri.is_a?(Hash)
return unless @allow_synchronous_requests
return if invalid_origin?(collection_or_uri)
+
fetch_resource_without_id_validation(collection_or_uri, nil, true)
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 2da9096c73..603e4cf48b 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -226,6 +226,7 @@ class ActivityPub::ProcessAccountService < BaseService
def property_values
return unless @json['attachment'].is_a?(Array)
+
as_array(@json['attachment']).select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') }
end
@@ -289,6 +290,7 @@ class ActivityPub::ProcessAccountService < BaseService
def domain_block
return @domain_block if defined?(@domain_block)
+
@domain_block = DomainBlock.rule_for(@domain)
end
diff --git a/app/services/favourite_service.rb b/app/services/favourite_service.rb
index dc7fe88552..6fdc92a173 100644
--- a/app/services/favourite_service.rb
+++ b/app/services/favourite_service.rb
@@ -40,6 +40,7 @@ class FavouriteService < BaseService
def bump_potential_friendship(account, status)
ActivityTracker.increment('activity:interactions')
return if account.following?(status.account_id)
+
PotentialFriendshipTracker.record(account.id, status.account_id, :favourite)
end
diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb
index 0451c3cb1d..ebce9cce7d 100644
--- a/app/services/keys/claim_service.rb
+++ b/app/services/keys/claim_service.rb
@@ -9,10 +9,10 @@ class Keys::ClaimService < BaseService
def initialize(account, device_id, key_attributes = {})
super(
- account: account,
+ account: account,
device_id: device_id,
- key_id: key_attributes[:key_id],
- key: key_attributes[:key],
+ key_id: key_attributes[:key_id],
+ key: key_attributes[:key],
signature: key_attributes[:signature],
)
end
diff --git a/app/services/keys/query_service.rb b/app/services/keys/query_service.rb
index 404854c9fc..14c9d9205b 100644
--- a/app/services/keys/query_service.rb
+++ b/app/services/keys/query_service.rb
@@ -23,9 +23,9 @@ class Keys::QueryService < BaseService
def initialize(attributes = {})
super(
- device_id: attributes[:device_id],
- name: attributes[:name],
- identity_key: attributes[:identity_key],
+ device_id: attributes[:device_id],
+ name: attributes[:name],
+ identity_key: attributes[:identity_key],
fingerprint_key: attributes[:fingerprint_key],
)
@claim_url = attributes[:claim_url]
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index c7454fc609..4c7acbcac1 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -31,6 +31,7 @@ class NotifyService < BaseService
def following_sender?
return @following_sender if defined?(@following_sender)
+
@following_sender = @recipient.following?(@notification.from_account) || @recipient.requested?(@notification.from_account)
end
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
index 258af8827e..ea27f374e7 100644
--- a/app/services/post_status_service.rb
+++ b/app/services/post_status_service.rb
@@ -86,6 +86,7 @@ class PostStatusService < BaseService
def safeguard_mentions!(status)
return if @options[:allowed_mentions].nil?
+
expected_account_ids = @options[:allowed_mentions].map(&:to_i)
unexpected_accounts = status.mentions.map(&:account).to_a.reject { |mentioned_account| expected_account_ids.include?(mentioned_account.id) }
@@ -175,8 +176,10 @@ class PostStatusService < BaseService
def bump_potential_friendship!
return if !@status.reply? || @account.id == @status.in_reply_to_account_id
+
ActivityTracker.increment('activity:interactions')
return if @account.following?(@status.in_reply_to_account_id)
+
PotentialFriendshipTracker.record(@account.id, @status.in_reply_to_account_id, :reply)
end
diff --git a/app/services/vote_service.rb b/app/services/vote_service.rb
index 114ec285c8..9ebf5a98d9 100644
--- a/app/services/vote_service.rb
+++ b/app/services/vote_service.rb
@@ -44,11 +44,13 @@ class VoteService < BaseService
def distribute_poll!
return if @poll.hide_totals?
+
ActivityPub::DistributePollUpdateWorker.perform_in(3.minutes, @poll.status.id)
end
def queue_final_poll_check!
return unless @poll.expires?
+
PollExpirationNotifyWorker.perform_at(@poll.expires_at + 5.minutes, @poll.id)
end
diff --git a/app/validators/follow_limit_validator.rb b/app/validators/follow_limit_validator.rb
index 409bf01763..c619cb9a33 100644
--- a/app/validators/follow_limit_validator.rb
+++ b/app/validators/follow_limit_validator.rb
@@ -6,6 +6,7 @@ class FollowLimitValidator < ActiveModel::Validator
def validate(follow)
return if follow.account.nil? || !follow.account.local?
+
follow.errors.add(:base, I18n.t('users.follow_limit_reached', limit: self.class.limit_for_account(follow.account))) if limit_reached?(follow.account)
end
diff --git a/app/validators/unreserved_username_validator.rb b/app/validators/unreserved_username_validator.rb
index 974f3ba627..f82f4b91d0 100644
--- a/app/validators/unreserved_username_validator.rb
+++ b/app/validators/unreserved_username_validator.rb
@@ -13,12 +13,14 @@ class UnreservedUsernameValidator < ActiveModel::Validator
def pam_controlled?
return false unless Devise.pam_authentication && Devise.pam_controlled_service
+
Rpam2.account(Devise.pam_controlled_service, @username).present?
end
def reserved_username?
return true if pam_controlled?
return false unless Setting.reserved_usernames
+
Setting.reserved_usernames.include?(@username.downcase)
end
end
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index cc5b6e137a..09e0b37f06 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -62,6 +62,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
# The idea here is to loop through all policies at least once until the budget is exhausted
# and start back after the last processed account otherwise
break if budget.zero? || (num_processed_accounts.zero? && first_policy_id.nil?)
+
first_policy_id = nil
end
end
@@ -73,6 +74,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
def under_load?
return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE
+
queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY)
end
diff --git a/app/workers/web/push_notification_worker.rb b/app/workers/web/push_notification_worker.rb
index 1ed5bb9e00..7e9691aaba 100644
--- a/app/workers/web/push_notification_worker.rb
+++ b/app/workers/web/push_notification_worker.rb
@@ -22,13 +22,13 @@ class Web::PushNotificationWorker
request = Request.new(:post, @subscription.endpoint, body: payload.fetch(:ciphertext), http_client: http_client)
request.add_headers(
- 'Content-Type' => 'application/octet-stream',
- 'Ttl' => TTL,
- 'Urgency' => URGENCY,
+ 'Content-Type' => 'application/octet-stream',
+ 'Ttl' => TTL,
+ 'Urgency' => URGENCY,
'Content-Encoding' => 'aesgcm',
- 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}",
- 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}",
- 'Authorization' => @subscription.authorization_header
+ 'Encryption' => "salt=#{Webpush.encode64(payload.fetch(:salt)).delete('=')}",
+ 'Crypto-Key' => "dh=#{Webpush.encode64(payload.fetch(:server_public_key)).delete('=')};#{@subscription.crypto_key_header}",
+ 'Authorization' => @subscription.authorization_header
)
request.perform do |response|
diff --git a/config.ru b/config.ru
index 5e071f530f..afd13e2112 100644
--- a/config.ru
+++ b/config.ru
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
# This file is used by Rack-based servers to start the application.
require File.expand_path('config/environment', __dir__)
diff --git a/db/migrate/20190314181829_migrate_open_registrations_setting.rb b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
index e5fe95009e..d2f6bf2c1c 100644
--- a/db/migrate/20190314181829_migrate_open_registrations_setting.rb
+++ b/db/migrate/20190314181829_migrate_open_registrations_setting.rb
@@ -2,6 +2,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2]
def up
open_registrations = Setting.find_by(var: 'open_registrations')
return if open_registrations.nil? || open_registrations.value
+
setting = Setting.where(var: 'registrations_mode').first_or_initialize(var: 'registrations_mode')
setting.update(value: 'none')
end
@@ -9,6 +10,7 @@ class MigrateOpenRegistrationsSetting < ActiveRecord::Migration[5.2]
def down
registrations_mode = Setting.find_by(var: 'registrations_mode')
return if registrations_mode.nil?
+
setting = Setting.where(var: 'open_registrations').first_or_initialize(var: 'open_registrations')
setting.update(value: registrations_mode.value == 'open')
end
diff --git a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
index 19e86fbfe1..1c18b85cbc 100644
--- a/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
+++ b/db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb
@@ -8,6 +8,7 @@ class PreserveOldLayoutForExistingUsers < ActiveRecord::Migration[5.2]
User.where(User.arel_table[:current_sign_in_at].gteq(1.month.ago)).find_each do |user|
next if Setting.unscoped.where(thing_type: 'User', thing_id: user.id, var: 'advanced_layout').exists?
+
user.settings.advanced_layout = true
end
end
diff --git a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
index 7f6a2c6dd4..a3cc854d7c 100644
--- a/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
+++ b/db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb
@@ -11,6 +11,7 @@ class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2]
rescue ActiveRecord::StatementInvalid => e
remove_index :tags, name: 'index_tags_on_name_lower_btree'
raise CorruptionError, 'index_tags_on_name_lower_btree' if e.is_a?(ActiveRecord::RecordNotUnique)
+
raise e
end
diff --git a/db/migrate/20220613110834_add_action_to_custom_filters.rb b/db/migrate/20220613110834_add_action_to_custom_filters.rb
index 9427a66fc4..c1daf3c948 100644
--- a/db/migrate/20220613110834_add_action_to_custom_filters.rb
+++ b/db/migrate/20220613110834_add_action_to_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class AddActionToCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20200917193528_migrate_notifications_type.rb b/db/post_migrate/20200917193528_migrate_notifications_type.rb
index 88e4230842..9dc9ecd48e 100644
--- a/db/post_migrate/20200917193528_migrate_notifications_type.rb
+++ b/db/post_migrate/20200917193528_migrate_notifications_type.rb
@@ -4,12 +4,12 @@ class MigrateNotificationsType < ActiveRecord::Migration[5.2]
disable_ddl_transaction!
TYPES_TO_MIGRATE = {
- 'Mention' => :mention,
- 'Status' => :reblog,
- 'Follow' => :follow,
+ 'Mention' => :mention,
+ 'Status' => :reblog,
+ 'Follow' => :follow,
'FollowRequest' => :follow_request,
- 'Favourite' => :favourite,
- 'Poll' => :poll,
+ 'Favourite' => :favourite,
+ 'Poll' => :poll,
}.freeze
def up
diff --git a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
index 7ef0749e54..99c3366a20 100644
--- a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
+++ b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class RemoveWholeWordFromCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
index 6ed8bcfeee..1c366ee53c 100644
--- a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
+++ b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class RemoveIrreversibleFromCustomFilters < ActiveRecord::Migration[6.1]
diff --git a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
index 6ab76a8f75..fa2ddbbca5 100644
--- a/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
+++ b/db/post_migrate/20221101190723_backfill_admin_action_logs.rb
@@ -79,11 +79,13 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
safety_assured do
AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
next if log.account.nil?
+
log.update_attribute('human_identifier', log.account.acct)
end
AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
next if log.user.nil?
+
log.update_attribute('human_identifier', log.user.account.acct)
log.update_attribute('route_param', log.user.account_id)
end
@@ -92,57 +94,68 @@ class BackfillAdminActionLogs < ActiveRecord::Migration[6.1]
AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
next if log.domain_block.nil?
+
log.update_attribute('human_identifier', log.domain_block.domain)
end
AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
next if log.domain_allow.nil?
+
log.update_attribute('human_identifier', log.domain_allow.domain)
end
AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
next if log.email_domain_block.nil?
+
log.update_attribute('human_identifier', log.email_domain_block.domain)
end
AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
next if log.unavailable_domain.nil?
+
log.update_attribute('human_identifier', log.unavailable_domain.domain)
end
AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
next if log.status.nil?
+
log.update_attribute('human_identifier', log.status.account.acct)
log.update_attribute('permalink', log.status.uri)
end
AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
next if log.account_warning.nil?
+
log.update_attribute('human_identifier', log.account_warning.account.acct)
end
AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
next if log.announcement.nil?
+
log.update_attribute('human_identifier', log.announcement.text)
end
AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
next if log.ip_block.nil?
+
log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
end
AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
next if log.custom_emoji.nil?
+
log.update_attribute('human_identifier', log.custom_emoji.shortcode)
end
AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
next if log.canonical_email_block.nil?
+
log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
next if log.appeal.nil?
+
log.update_attribute('human_identifier', log.appeal.account.acct)
log.update_attribute('route_param', log.appeal.account_warning_id)
end
diff --git a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
index 42b7f3625b..9c7ac7120a 100644
--- a/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
+++ b/db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb
@@ -79,11 +79,13 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
safety_assured do
AdminActionLog.includes(:account).where(target_type: 'Account', human_identifier: nil).find_each do |log|
next if log.account.nil?
+
log.update_attribute('human_identifier', log.account.acct)
end
AdminActionLog.includes(user: :account).where(target_type: 'User', human_identifier: nil).find_each do |log|
next if log.user.nil?
+
log.update_attribute('human_identifier', log.user.account.acct)
log.update_attribute('route_param', log.user.account_id)
end
@@ -92,57 +94,68 @@ class BackfillAdminActionLogsAgain < ActiveRecord::Migration[6.1]
AdminActionLog.includes(:domain_block).where(target_type: 'DomainBlock').find_each do |log|
next if log.domain_block.nil?
+
log.update_attribute('human_identifier', log.domain_block.domain)
end
AdminActionLog.includes(:domain_allow).where(target_type: 'DomainAllow').find_each do |log|
next if log.domain_allow.nil?
+
log.update_attribute('human_identifier', log.domain_allow.domain)
end
AdminActionLog.includes(:email_domain_block).where(target_type: 'EmailDomainBlock').find_each do |log|
next if log.email_domain_block.nil?
+
log.update_attribute('human_identifier', log.email_domain_block.domain)
end
AdminActionLog.includes(:unavailable_domain).where(target_type: 'UnavailableDomain').find_each do |log|
next if log.unavailable_domain.nil?
+
log.update_attribute('human_identifier', log.unavailable_domain.domain)
end
AdminActionLog.includes(status: :account).where(target_type: 'Status', human_identifier: nil).find_each do |log|
next if log.status.nil?
+
log.update_attribute('human_identifier', log.status.account.acct)
log.update_attribute('permalink', log.status.uri)
end
AdminActionLog.includes(account_warning: :account).where(target_type: 'AccountWarning', human_identifier: nil).find_each do |log|
next if log.account_warning.nil?
+
log.update_attribute('human_identifier', log.account_warning.account.acct)
end
AdminActionLog.includes(:announcement).where(target_type: 'Announcement', human_identifier: nil).find_each do |log|
next if log.announcement.nil?
+
log.update_attribute('human_identifier', log.announcement.text)
end
AdminActionLog.includes(:ip_block).where(target_type: 'IpBlock', human_identifier: nil).find_each do |log|
next if log.ip_block.nil?
+
log.update_attribute('human_identifier', "#{log.ip_block.ip}/#{log.ip_block.ip.prefix}")
end
AdminActionLog.includes(:custom_emoji).where(target_type: 'CustomEmoji', human_identifier: nil).find_each do |log|
next if log.custom_emoji.nil?
+
log.update_attribute('human_identifier', log.custom_emoji.shortcode)
end
AdminActionLog.includes(:canonical_email_block).where(target_type: 'CanonicalEmailBlock', human_identifier: nil).find_each do |log|
next if log.canonical_email_block.nil?
+
log.update_attribute('human_identifier', log.canonical_email_block.canonical_email_hash)
end
AdminActionLog.includes(appeal: :account).where(target_type: 'Appeal', human_identifier: nil).find_each do |log|
next if log.appeal.nil?
+
log.update_attribute('human_identifier', log.appeal.account.acct)
log.update_attribute('route_param', log.appeal.account_warning_id)
end
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index f24a54e7e8..41ea5b1529 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -148,6 +148,7 @@ module Mastodon
begin
Request.new(:get, "https://#{domain}/api/v1/instance").perform do |res|
next unless res.code == 200
+
stats[domain] = Oj.load(res.to_s)
end
@@ -161,6 +162,7 @@ module Mastodon
Request.new(:get, "https://#{domain}/api/v1/instance/activity").perform do |res|
next unless res.code == 200
+
stats[domain]['activity'] = Oj.load(res.to_s)
end
rescue StandardError
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index d5e62897ff..dc39e9c90f 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -72,7 +72,7 @@ class Sanitize
elements: %w(p br span a),
attributes: {
- 'a' => %w(href rel class),
+ 'a' => %w(href rel class),
'span' => %w(class),
},
@@ -98,17 +98,17 @@ class Sanitize
attributes: merge(
RELAXED[:attributes],
- 'audio' => %w(controls),
- 'embed' => %w(height src type width),
+ 'audio' => %w(controls),
+ 'embed' => %w(height src type width),
'iframe' => %w(allowfullscreen frameborder height scrolling src width),
'source' => %w(src type),
- 'video' => %w(controls height loop width),
- 'div' => [:data]
+ 'video' => %w(controls height loop width),
+ 'div' => [:data]
),
protocols: merge(
RELAXED[:protocols],
- 'embed' => { 'src' => HTTP_PROTOCOLS },
+ 'embed' => { 'src' => HTTP_PROTOCOLS },
'iframe' => { 'src' => HTTP_PROTOCOLS },
'source' => { 'src' => HTTP_PROTOCOLS }
)
diff --git a/lib/tasks/auto_annotate_models.rake b/lib/tasks/auto_annotate_models.rake
index a374e33ad2..4b5997920a 100644
--- a/lib/tasks/auto_annotate_models.rake
+++ b/lib/tasks/auto_annotate_models.rake
@@ -3,42 +3,42 @@
if Rails.env.development?
task :set_annotation_options do
Annotate.set_defaults(
- 'routes' => 'false',
- 'models' => 'true',
- 'position_in_routes' => 'before',
- 'position_in_class' => 'before',
- 'position_in_test' => 'before',
- 'position_in_fixture' => 'before',
- 'position_in_factory' => 'before',
- 'position_in_serializer' => 'before',
- 'show_foreign_keys' => 'false',
- 'show_indexes' => 'false',
- 'simple_indexes' => 'false',
- 'model_dir' => 'app/models',
- 'root_dir' => '',
- 'include_version' => 'false',
- 'require' => '',
- 'exclude_tests' => 'true',
- 'exclude_fixtures' => 'true',
- 'exclude_factories' => 'true',
- 'exclude_serializers' => 'true',
- 'exclude_scaffolds' => 'true',
- 'exclude_controllers' => 'true',
- 'exclude_helpers' => 'true',
- 'ignore_model_sub_dir' => 'false',
- 'ignore_columns' => nil,
- 'ignore_routes' => nil,
- 'ignore_unknown_models' => 'false',
+ 'routes' => 'false',
+ 'models' => 'true',
+ 'position_in_routes' => 'before',
+ 'position_in_class' => 'before',
+ 'position_in_test' => 'before',
+ 'position_in_fixture' => 'before',
+ 'position_in_factory' => 'before',
+ 'position_in_serializer' => 'before',
+ 'show_foreign_keys' => 'false',
+ 'show_indexes' => 'false',
+ 'simple_indexes' => 'false',
+ 'model_dir' => 'app/models',
+ 'root_dir' => '',
+ 'include_version' => 'false',
+ 'require' => '',
+ 'exclude_tests' => 'true',
+ 'exclude_fixtures' => 'true',
+ 'exclude_factories' => 'true',
+ 'exclude_serializers' => 'true',
+ 'exclude_scaffolds' => 'true',
+ 'exclude_controllers' => 'true',
+ 'exclude_helpers' => 'true',
+ 'ignore_model_sub_dir' => 'false',
+ 'ignore_columns' => nil,
+ 'ignore_routes' => nil,
+ 'ignore_unknown_models' => 'false',
'hide_limit_column_types' => 'integer,boolean',
- 'skip_on_db_migrate' => 'false',
- 'format_bare' => 'true',
- 'format_rdoc' => 'false',
- 'format_markdown' => 'false',
- 'sort' => 'false',
- 'force' => 'false',
- 'trace' => 'false',
- 'wrapper_open' => nil,
- 'wrapper_close' => nil
+ 'skip_on_db_migrate' => 'false',
+ 'format_bare' => 'true',
+ 'format_rdoc' => 'false',
+ 'format_markdown' => 'false',
+ 'sort' => 'false',
+ 'force' => 'false',
+ 'trace' => 'false',
+ 'wrapper_open' => nil,
+ 'wrapper_close' => nil
)
end
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 179a730bc5..f919ba989c 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -399,14 +399,14 @@ namespace :mastodon do
end
ActionMailer::Base.smtp_settings = {
- port: env['SMTP_PORT'],
- address: env['SMTP_SERVER'],
- user_name: env['SMTP_LOGIN'].presence,
- password: env['SMTP_PASSWORD'].presence,
- domain: env['LOCAL_DOMAIN'],
- authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
- openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'],
- enable_starttls: enable_starttls,
+ port: env['SMTP_PORT'],
+ address: env['SMTP_SERVER'],
+ user_name: env['SMTP_LOGIN'].presence,
+ password: env['SMTP_PASSWORD'].presence,
+ domain: env['LOCAL_DOMAIN'],
+ authentication: env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain,
+ openssl_verify_mode: env['SMTP_OPENSSL_VERIFY_MODE'],
+ enable_starttls: enable_starttls,
enable_starttls_auto: enable_starttls_auto,
}
diff --git a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
index 4630fac90d..e57c371793 100644
--- a/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/statuses_controller_spec.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::StatusesController do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 4516df2c2c..7248356e53 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -12,9 +12,9 @@ RSpec.describe Admin::AccountAction, type: :model do
before do
account_action.assign_attributes(
- type: type,
+ type: type,
current_account: account,
- target_account: target_account
+ target_account: target_account
)
end
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index ed3fc056b2..50ff0b149a 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -149,8 +149,8 @@ describe AccountInteractions do
let(:mute) do
Fabricate(:mute,
- account: account,
- target_account: target_account,
+ account: account,
+ target_account: target_account,
hide_notifications: hide_notifications)
end
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index 7043449c5e..4d6e5c380b 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -1,4 +1,5 @@
# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Tag do
From a9472f8ff15523c13ab7e32592f11a6c51cc14e3 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:37:28 -0500
Subject: [PATCH 0095/1254] Fix Markdown files with Prettier and check in CI
(#21972)
---
.github/workflows/lint-md.yml | 40 +++++++++++++++++++++++++
.prettierignore | 6 ++--
CHANGELOG.md | 56 +++++++++++++++++++++++++++++++----
CODE_OF_CONDUCT.md | 20 ++++++-------
CONTRIBUTING.md | 9 +++---
SECURITY.md | 2 +-
6 files changed, 109 insertions(+), 24 deletions(-)
create mode 100644 .github/workflows/lint-md.yml
diff --git a/.github/workflows/lint-md.yml b/.github/workflows/lint-md.yml
new file mode 100644
index 0000000000..6f76dd60c2
--- /dev/null
+++ b/.github/workflows/lint-md.yml
@@ -0,0 +1,40 @@
+name: Markdown Linting
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ paths:
+ - '.github/workflows/lint-md.yml'
+ - '.prettier*'
+ - '**/*.md'
+ - '!AUTHORS.md'
+ - 'package.json'
+ - 'yarn.lock'
+
+ pull_request:
+ paths:
+ - '.github/workflows/lint-md.yml'
+ - '.prettier*'
+ - '**/*.md'
+ - '!AUTHORS.md'
+ - 'package.json'
+ - 'yarn.lock'
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ cache: yarn
+
+ - name: Install all yarn packages
+ run: yarn --frozen-lockfile
+
+ - name: Prettier
+ run: yarn prettier --check "**/*.md"
diff --git a/.prettierignore b/.prettierignore
index b3b5f06ed1..15e5f59944 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -70,8 +70,8 @@ app/javascript/styles/mastodon/reset.scss
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
-# Ignore Markdownlint pending https://github.com/mastodon/mastodon/pull/21972
-*.md
-
# Ignore HTML till cleaned and included in CI
*.html
+
+# Ignore the generated AUTHORS.md
+AUTHORS.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7a6998e8c1..2b826fb14a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,4 @@
-Changelog
-=========
+# Changelog
All notable changes to this project will be documented in this file.
@@ -219,6 +218,7 @@ All notable changes to this project will be documented in this file.
- Fix unbounded recursion in post discovery ([ClearlyClaire,nametoolong](https://github.com/mastodon/mastodon/pull/23506))
## [4.0.2] - 2022-11-15
+
### Fixed
- Fix wrong color on mentions hidden behind content warning in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/20724))
@@ -226,6 +226,7 @@ All notable changes to this project will be documented in this file.
- Fix `unsafe-eval` being used when `wasm-unsafe-eval` is enough in Content Security Policy ([Gargron](https://github.com/mastodon/mastodon/pull/20729), [prplecake](https://github.com/mastodon/mastodon/pull/20606))
## [4.0.1] - 2022-11-14
+
### Fixed
- Fix nodes order being sometimes mangled when rewriting emoji ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/20677))
@@ -429,6 +430,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix out-of-bound reads in blurhash transcoder ([delroth](https://github.com/mastodon/mastodon/pull/20388))
## [3.5.3] - 2022-05-26
+
### Added
- **Add language dropdown to compose form in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/18420), [ykzts](https://github.com/mastodon/mastodon/pull/18460))
@@ -476,6 +478,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix confirmation redirect to app without `Location` header ([Gargron](https://github.com/mastodon/mastodon/pull/18523))
## [3.5.2] - 2022-05-04
+
### Added
- Add warning on direct messages screen in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/18289))
@@ -528,6 +531,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix error in alias settings page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/18004))
## [3.5.1] - 2022-04-08
+
### Added
- Add pagination for trending statuses in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/17976))
@@ -571,6 +575,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix error when indexing statuses into Elasticsearch ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17912))
## [3.5.0] - 2022-03-30
+
### Added
- **Add support for incoming edited posts** ([Gargron](https://github.com/mastodon/mastodon/pull/16697), [Gargron](https://github.com/mastodon/mastodon/pull/17727), [Gargron](https://github.com/mastodon/mastodon/pull/17728), [Gargron](https://github.com/mastodon/mastodon/pull/17320), [Gargron](https://github.com/mastodon/mastodon/pull/17404), [Gargron](https://github.com/mastodon/mastodon/pull/17390), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17335), [Gargron](https://github.com/mastodon/mastodon/pull/17696), [Gargron](https://github.com/mastodon/mastodon/pull/17745), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17740), [Gargron](https://github.com/mastodon/mastodon/pull/17697), [Gargron](https://github.com/mastodon/mastodon/pull/17648), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17531), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17499), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17498), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17380), [Gargron](https://github.com/mastodon/mastodon/pull/17373), [Gargron](https://github.com/mastodon/mastodon/pull/17334), [Gargron](https://github.com/mastodon/mastodon/pull/17333), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17699), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/17748))
@@ -770,6 +775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix being able to bypass e-mail restrictions ([Gargron](https://github.com/mastodon/mastodon/pull/17909))
## [3.4.6] - 2022-02-03
+
### Fixed
- Fix `mastodon:webpush:generate_vapid_key` task requiring a functional environment ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17338))
@@ -784,6 +790,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Disable legacy XSS filtering ([Wonderfall](https://github.com/mastodon/mastodon/pull/17289))
## [3.4.5] - 2022-01-31
+
### Added
- Add more advanced migration tests ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17393))
@@ -798,6 +805,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix followers synchronization mechanism ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16510))
## [3.4.4] - 2021-11-26
+
### Fixed
- Fix error when suspending user with an already blocked canonical email ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17036))
@@ -815,11 +823,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix handling of recursive toots in WebUI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/17041))
## [3.4.3] - 2021-11-06
+
### Fixed
- Fix login being broken due to inaccurately applied backport fix in 3.4.2 ([Gargron](https://github.com/mastodon/mastodon/commit/5c47a18c8df3231aa25c6d1f140a71a7fac9cbf9))
## [3.4.2] - 2021-11-06
+
### Added
- Add `configuration` attribute to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/16485))
@@ -863,6 +873,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix revoking a specific session not working ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16943))
## [3.4.1] - 2021-06-03
+
### Added
- Add new emoji assets from Twemoji 13.1.0 ([Gargron](https://github.com/mastodon/mastodon/pull/16345))
@@ -882,6 +893,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix mailer jobs for deleted notifications erroring out ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/16294))
## [3.4.0] - 2021-05-16
+
### Added
- **Add follow recommendations for onboarding** ([Gargron](https://github.com/mastodon/mastodon/pull/15945), [Gargron](https://github.com/mastodon/mastodon/pull/16161), [Gargron](https://github.com/mastodon/mastodon/pull/16060), [Gargron](https://github.com/mastodon/mastodon/pull/16077), [Gargron](https://github.com/mastodon/mastodon/pull/16078), [Gargron](https://github.com/mastodon/mastodon/pull/16160), [Gargron](https://github.com/mastodon/mastodon/pull/16079), [noellabo](https://github.com/mastodon/mastodon/pull/16044), [noellabo](https://github.com/mastodon/mastodon/pull/16045), [Gargron](https://github.com/mastodon/mastodon/pull/16152), [Gargron](https://github.com/mastodon/mastodon/pull/16153), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16082), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16173), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16159), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/16189))
@@ -917,7 +929,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- This method allows an app through which a user signed-up to request a new confirmation e-mail to be sent, or to change the e-mail of the account before it is confirmed
- Add `GET /api/v1/accounts/lookup` to REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15740), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/15750))
- This method allows to quickly convert a username of a known account to an ID that can be used with the REST API, or to check if a username is available
- for sign-up
+ for sign-up
- Add `policy` param to `POST /api/v1/push/subscriptions` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/16040))
- This param allows an app to control from whom notifications should be delivered as push notifications to the app
- Add `details` to error response for `POST /api/v1/accounts` in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/15803))
@@ -1027,6 +1039,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix app name, website and redirect URIs not having a maximum length ([Gargron](https://github.com/mastodon/mastodon/pull/16042))
## [3.3.0] - 2020-12-27
+
### Added
- **Add hotkeys for audio/video control in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/15158), [Gargron](https://github.com/mastodon/mastodon/pull/15198))
@@ -1203,6 +1216,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364))
## [3.2.2] - 2020-12-19
+
### Added
- Add `tootctl maintenance fix-duplicates` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14860), [Gargron](https://github.com/mastodon/mastodon/pull/15223))
@@ -1229,6 +1243,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix resolving accounts sometimes creating duplicate records for a given ActivityPub identifier ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/15364))
## [3.2.1] - 2020-10-19
+
### Added
- Add support for latest HTTP Signatures spec draft ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14556))
@@ -1258,6 +1273,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix files served as `application/octet-stream` being rejected without attempting mime type detection ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14452))
## [3.2.0] - 2020-07-27
+
### Added
- Add `SMTP_SSL` environment variable ([OmmyZhang](https://github.com/mastodon/mastodon/pull/14309))
@@ -1393,7 +1409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix unique username constraint for local users not being enforced in database ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14099))
- Fix unnecessary gap under video modal in web UI ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14098))
- Fix 2FA and sign in token pages not respecting user locale ([mfmfuyu](https://github.com/mastodon/mastodon/pull/14087))
-- Fix unapproved users being able to view profiles when in limited-federation mode *and* requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093))
+- Fix unapproved users being able to view profiles when in limited-federation mode _and_ requiring approval for sign-ups ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14093))
- Fix initial audio volume not corresponding to what's displayed in audio player in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14057))
- Fix timelines sometimes jumping when closing modals in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14019))
- Fix memory usage of downloading remote files ([Gargron](https://github.com/mastodon/mastodon/pull/14184), [Gargron](https://github.com/mastodon/mastodon/pull/14181), [noellabo](https://github.com/mastodon/mastodon/pull/14356))
@@ -1411,6 +1427,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Clear out media attachments in a separate worker (slow)
## [3.1.5] - 2020-07-07
+
### Security
- Fix media attachment enumeration ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/14254))
@@ -1418,6 +1435,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix other sessions not being logged out on password change ([Gargron](https://github.com/mastodon/mastodon/pull/14252))
## [3.1.4] - 2020-05-14
+
### Added
- Add `vi` to available locales ([taicv](https://github.com/mastodon/mastodon/pull/13542))
@@ -1456,7 +1474,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix regression in `tootctl media remove-orphans` ([Gargron](https://github.com/mastodon/mastodon/pull/13405))
- Fix old unique jobs digests not having been cleaned up ([Gargron](https://github.com/mastodon/mastodon/pull/13683))
- Fix own following/followers not showing muted users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13614))
-- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676))
+- Fix list of followed people ignoring sorting on Follows & Followers page ([taras2358](https://github.com/mastodon/mastodon/pull/13676))
- Fix wrong pgHero Content-Security-Policy when `CDN_HOST` is set ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13595))
- Fix needlessly deduplicating usernames on collisions with remote accounts when signing-up through SAML/CAS ([kaiyou](https://github.com/mastodon/mastodon/pull/13581))
- Fix page incorrectly scrolling when bringing up dropdown menus in web UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13574))
@@ -1485,6 +1503,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- The issue only affects developers of apps who are shared between multiple users, such as server-side apps like cross-posters
## [3.1.3] - 2020-04-05
+
### Added
- Add ability to filter audit log in admin UI ([Gargron](https://github.com/mastodon/mastodon/pull/13381))
@@ -1558,6 +1577,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix re-sending of e-mail confirmation not being rate limited ([Gargron](https://github.com/mastodon/mastodon/pull/13360))
## [v3.1.2] - 2020-02-27
+
### Added
- Add `--reset-password` option to `tootctl accounts modify` ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/13126))
@@ -1584,11 +1604,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix leak of arbitrary statuses through unfavourite action in REST API ([Gargron](https://github.com/mastodon/mastodon/pull/13161))
## [3.1.1] - 2020-02-10
+
### Fixed
- Fix yanked dependency preventing installation ([mayaeh](https://github.com/mastodon/mastodon/pull/13059))
## [3.1.0] - 2020-02-09
+
### Added
- Add bookmarks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/7107), [Gargron](https://github.com/mastodon/mastodon/pull/12494), [Gomasy](https://github.com/mastodon/mastodon/pull/12381))
@@ -1753,6 +1775,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix settings pages being cacheable by the browser ([Gargron](https://github.com/mastodon/mastodon/pull/12714))
## [3.0.1] - 2019-10-10
+
### Added
- Add `tootctl media usage` command ([Gargron](https://github.com/mastodon/mastodon/pull/12115))
@@ -1786,6 +1809,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix `tootctl accounts cull` advertising unused option flag ([Kjwon15](https://github.com/mastodon/mastodon/pull/12074))
## [3.0.0] - 2019-10-03
+
### Added
- Add "not available" label to unloaded media attachments in web UI ([Gargron](https://github.com/mastodon/mastodon/pull/11715), [Gargron](https://github.com/mastodon/mastodon/pull/11745))
@@ -1982,6 +2006,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix performance of GIF re-encoding and always strip EXIF data from videos ([Gargron](https://github.com/mastodon/mastodon/pull/12057))
## [2.9.3] - 2019-08-10
+
### Added
- Add GIF and WebP support for custom emojis ([Gargron](https://github.com/mastodon/mastodon/pull/11519))
@@ -2041,6 +2066,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix blocked domains still being able to fill database with account records ([Gargron](https://github.com/mastodon/mastodon/pull/11219))
## [2.9.2] - 2019-06-22
+
### Added
- Add `short_description` and `approval_required` to `GET /api/v1/instance` ([Gargron](https://github.com/mastodon/mastodon/pull/11146))
@@ -2055,6 +2081,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix audio not being downloaded from remote servers ([Gargron](https://github.com/mastodon/mastodon/pull/11145))
## [2.9.1] - 2019-06-22
+
### Added
- Add moderation API ([Gargron](https://github.com/mastodon/mastodon/pull/9387))
@@ -2080,6 +2107,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix scrolling behaviour in compose form ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/11093))
## [2.9.0] - 2019-06-13
+
### Added
- **Add single-column mode in web UI** ([Gargron](https://github.com/mastodon/mastodon/pull/10807), [Gargron](https://github.com/mastodon/mastodon/pull/10848), [Gargron](https://github.com/mastodon/mastodon/pull/11003), [Gargron](https://github.com/mastodon/mastodon/pull/10961), [Hanage999](https://github.com/mastodon/mastodon/pull/10915), [noellabo](https://github.com/mastodon/mastodon/pull/10917), [abcang](https://github.com/mastodon/mastodon/pull/10859), [Gargron](https://github.com/mastodon/mastodon/pull/10820), [Gargron](https://github.com/mastodon/mastodon/pull/10835), [Gargron](https://github.com/mastodon/mastodon/pull/10809), [Gargron](https://github.com/mastodon/mastodon/pull/10963), [noellabo](https://github.com/mastodon/mastodon/pull/10883), [Hanage999](https://github.com/mastodon/mastodon/pull/10839))
@@ -2134,6 +2162,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix login sometimes redirecting to paths that are not pages ([Gargron](https://github.com/mastodon/mastodon/pull/11019))
## [2.8.4] - 2019-05-24
+
### Fixed
- Fix delivery not retrying on some inbox errors that should be retriable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10812))
@@ -2145,6 +2174,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Require specific OAuth scopes for specific endpoints of the streaming API, instead of merely requiring a token for all endpoints, and allow using WebSockets protocol negotiation to specify the access token instead of using a query string ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10818))
## [2.8.3] - 2019-05-19
+
### Added
- Add `og:image:alt` OpenGraph tag ([BenLubar](https://github.com/mastodon/mastodon/pull/10779))
@@ -2167,6 +2197,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix "invited by" not showing up in admin UI ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10791))
## [2.8.2] - 2019-05-05
+
### Added
- Add `SOURCE_TAG` environment variable ([ushitora-anqou](https://github.com/mastodon/mastodon/pull/10698))
@@ -2179,6 +2210,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix closing video modal scrolling timelines to top ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10695))
## [2.8.1] - 2019-05-04
+
### Added
- Add link to existing domain block when trying to block an already-blocked domain ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10663))
@@ -2218,6 +2250,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix confirmation modals being too narrow for a secondary action button ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10586))
## [2.8.0] - 2019-04-10
+
### Added
- Add polls ([Gargron](https://github.com/mastodon/mastodon/pull/10111), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10155), [Gargron](https://github.com/mastodon/mastodon/pull/10184), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10196), [Gargron](https://github.com/mastodon/mastodon/pull/10248), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10255), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10322), [Gargron](https://github.com/mastodon/mastodon/pull/10138), [Gargron](https://github.com/mastodon/mastodon/pull/10139), [Gargron](https://github.com/mastodon/mastodon/pull/10144), [Gargron](https://github.com/mastodon/mastodon/pull/10145),[Gargron](https://github.com/mastodon/mastodon/pull/10146), [Gargron](https://github.com/mastodon/mastodon/pull/10148), [Gargron](https://github.com/mastodon/mastodon/pull/10151), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10150), [Gargron](https://github.com/mastodon/mastodon/pull/10168), [Gargron](https://github.com/mastodon/mastodon/pull/10165), [Gargron](https://github.com/mastodon/mastodon/pull/10172), [Gargron](https://github.com/mastodon/mastodon/pull/10170), [Gargron](https://github.com/mastodon/mastodon/pull/10171), [Gargron](https://github.com/mastodon/mastodon/pull/10186), [Gargron](https://github.com/mastodon/mastodon/pull/10189), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10200), [rinsuki](https://github.com/mastodon/mastodon/pull/10203), [Gargron](https://github.com/mastodon/mastodon/pull/10213), [Gargron](https://github.com/mastodon/mastodon/pull/10246), [Gargron](https://github.com/mastodon/mastodon/pull/10265), [Gargron](https://github.com/mastodon/mastodon/pull/10261), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10333), [Gargron](https://github.com/mastodon/mastodon/pull/10352), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10140), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10142), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10141), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10162), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10161), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10158), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10156), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10160), [Gargron](https://github.com/mastodon/mastodon/pull/10185), [Gargron](https://github.com/mastodon/mastodon/pull/10188), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10195), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10208), [Gargron](https://github.com/mastodon/mastodon/pull/10187), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10214), [ClearlyClaire](https://github.com/mastodon/mastodon/pull/10209))
@@ -2301,6 +2334,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix `tootctl accounts cull` sometimes removing accounts that are temporarily unreachable ([BenLubar](https://github.com/mastodon/mastodon/pull/10460))
## [2.7.4] - 2019-03-05
+
### Fixed
- Fix web UI not cleaning up notifications after block ([Gargron](https://github.com/mastodon/mastodon/pull/10108))
@@ -2315,6 +2349,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix edit profile page crash for suspended-then-unsuspended users ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10178))
## [2.7.3] - 2019-02-23
+
### Added
- Add domain filter to the admin federation page ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/10071))
@@ -2332,6 +2367,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change custom emojis to randomize stored file name ([hinaloe](https://github.com/mastodon/mastodon/pull/10090))
## [2.7.2] - 2019-02-17
+
### Added
- Add support for IPv6 in e-mail validation ([zoc](https://github.com/mastodon/mastodon/pull/10009))
@@ -2373,6 +2409,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Change error graphic to hover-to-play ([Gargron](https://github.com/mastodon/mastodon/pull/10055))
## [2.7.1] - 2019-01-28
+
### Fixed
- Fix SSO authentication not working due to missing agreement boolean ([Gargron](https://github.com/mastodon/mastodon/pull/9915))
@@ -2387,6 +2424,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix missing strong style for landing page description ([Kjwon15](https://github.com/mastodon/mastodon/pull/9892))
## [2.7.0] - 2019-01-20
+
### Added
- Add link for adding a user to a list from their profile ([namelessGonbai](https://github.com/mastodon/mastodon/pull/9062))
@@ -2516,6 +2554,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Add tombstones for remote statuses to prevent replay attacks ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9830))
## [2.6.5] - 2018-12-01
+
### Changed
- Change lists to display replies to others on the list and list owner ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9324))
@@ -2525,11 +2564,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix failures caused by commonly-used JSON-LD contexts being unavailable ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9412))
## [2.6.4] - 2018-11-30
+
### Fixed
- Fix yarn dependencies not installing due to yanked event-stream package ([Gargron](https://github.com/mastodon/mastodon/pull/9401))
## [2.6.3] - 2018-11-30
+
### Added
- Add hyphen to characters allowed in remote usernames ([ClearlyClaire](https://github.com/mastodon/mastodon/pull/9345))
@@ -2549,6 +2590,7 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix TLS handshake timeout not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9381))
## [2.6.2] - 2018-11-23
+
### Added
- Add Page to whitelisted ActivityPub types ([mbajur](https://github.com/mastodon/mastodon/pull/9188))
@@ -2583,12 +2625,14 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix HTTP connection timeout of 10s not being enforced ([Gargron](https://github.com/mastodon/mastodon/pull/9329))
## [2.6.1] - 2018-10-30
+
### Fixed
- Fix resolving resources by URL not working due to a regression in [valerauko](https://github.com/mastodon/mastodon/pull/9132) ([Gargron](https://github.com/mastodon/mastodon/pull/9171))
- Fix reducer error in web UI when a conversation has no last status ([Gargron](https://github.com/mastodon/mastodon/pull/9173))
## [2.6.0] - 2018-10-30
+
### Added
- Add link ownership verification ([Gargron](https://github.com/mastodon/mastodon/pull/8703))
@@ -2693,11 +2737,13 @@ Some of the features in this release have been funded through the [NGI0 Discover
- Fix handling of content types with profile ([valerauko](https://github.com/mastodon/mastodon/pull/9132))
## [2.5.2] - 2018-10-12
+
### Security
- Fix XSS vulnerability ([Gargron](https://github.com/mastodon/mastodon/pull/8959))
## [2.5.1] - 2018-10-07
+
### Fixed
- Fix database migrations for PostgreSQL below 9.5 ([Gargron](https://github.com/mastodon/mastodon/pull/8903))
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
index ea5f64b0bc..97ed96772d 100644
--- a/CODE_OF_CONDUCT.md
+++ b/CODE_OF_CONDUCT.md
@@ -8,19 +8,19 @@ In the interest of fostering an open and welcoming environment, we as contributo
Examples of behavior that contributes to creating a positive environment include:
-* Using welcoming and inclusive language
-* Being respectful of differing viewpoints and experiences
-* Gracefully accepting constructive criticism
-* Focusing on what is best for the community
-* Showing empathy towards other community members
+- Using welcoming and inclusive language
+- Being respectful of differing viewpoints and experiences
+- Gracefully accepting constructive criticism
+- Focusing on what is best for the community
+- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
-* The use of sexualized language or imagery and unwelcome sexual attention or advances
-* Trolling, insulting/derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or electronic address, without explicit permission
-* Other conduct which could reasonably be considered inappropriate in a professional setting
+- The use of sexualized language or imagery and unwelcome sexual attention or advances
+- Trolling, insulting/derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or electronic address, without explicit permission
+- Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9963054b39..d67b21ee58 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,5 +1,4 @@
-Contributing
-============
+# Contributing
Thank you for considering contributing to Mastodon 🐘
@@ -28,9 +27,9 @@ You can submit translations via [Crowdin](https://crowdin.com/project/mastodon).
Example:
-|Not ideal|Better|
-|---|----|
-|Fixed NoMethodError in RemovalWorker|Fix nil error when removing statuses caused by race condition|
+| Not ideal | Better |
+| ------------------------------------ | ------------------------------------------------------------- |
+| Fixed NoMethodError in RemovalWorker | Fix nil error when removing statuses caused by race condition |
It is not always possible to phrase every change in such a manner, but it is desired.
diff --git a/SECURITY.md b/SECURITY.md
index 234172999d..6a51c126ab 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -2,7 +2,7 @@
If you believe you've identified a security vulnerability in Mastodon (a bug that allows something to happen that shouldn't be possible), you can reach us at .
-You should *not* report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
+You should _not_ report such issues on GitHub or in other public spaces to give us time to publish a fix for the issue without exposing Mastodon's users to increased risk.
## Scope
From af4c95100c519ea63c9d8a3e9a3f900091933ce2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:58:33 -0500
Subject: [PATCH 0096/1254] Autofix Rubocop Style/FormatString (#23743)
---
.rubocop_todo.yml | 10 ----------
app/serializers/rest/privacy_policy_serializer.rb | 2 +-
lib/mastodon/maintenance_cli.rb | 2 +-
lib/paperclip/color_extractor.rb | 2 +-
4 files changed, 3 insertions(+), 13 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e667a77869..19d595e90d 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2026,16 +2026,6 @@ Style/FetchEnvVar:
- 'lib/tasks/repo.rake'
- 'spec/features/profile_spec.rb'
-# Offense count: 3
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: format, sprintf, percent
-Style/FormatString:
- Exclude:
- - 'app/serializers/rest/privacy_policy_serializer.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/paperclip/color_extractor.rb'
-
# Offense count: 15
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns.
diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb
index f0572e714d..57a67abf3c 100644
--- a/app/serializers/rest/privacy_policy_serializer.rb
+++ b/app/serializers/rest/privacy_policy_serializer.rb
@@ -8,7 +8,7 @@ class REST::PrivacyPolicySerializer < ActiveModel::Serializer
end
def content
- markdown.render(object.text % { domain: Rails.configuration.x.local_domain })
+ markdown.render(format(object.text, domain: Rails.configuration.x.local_domain))
end
private
diff --git a/lib/mastodon/maintenance_cli.rb b/lib/mastodon/maintenance_cli.rb
index 3e644045f7..ff8f6ddda9 100644
--- a/lib/mastodon/maintenance_cli.rb
+++ b/lib/mastodon/maintenance_cli.rb
@@ -550,7 +550,7 @@ module Mastodon
@prompt.warn 'All those accounts are distinct accounts but only the most recently-created one is fully-functional.'
accounts.each_with_index do |account, idx|
- @prompt.say '%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s' % [idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A']
+ @prompt.say format('%2d. %s: created at: %s; updated at: %s; last logged in at: %s; statuses: %5d; last status at: %s', idx, account.username, account.created_at, account.updated_at, account.user&.last_sign_in_at&.to_s || 'N/A', account.account_stat&.statuses_count || 0, account.account_stat&.last_status_at || 'N/A')
end
@prompt.say 'Please chose the one to keep unchanged, other ones will be automatically renamed.'
diff --git a/lib/paperclip/color_extractor.rb b/lib/paperclip/color_extractor.rb
index 733dcba80b..2e8dc04fd8 100644
--- a/lib/paperclip/color_extractor.rb
+++ b/lib/paperclip/color_extractor.rb
@@ -183,7 +183,7 @@ module Paperclip
end
def rgb_to_hex(rgb)
- '#%02x%02x%02x' % [rgb.r, rgb.g, rgb.b]
+ format('#%02x%02x%02x', rgb.r, rgb.g, rgb.b)
end
end
end
From 2c3c734bcc5e485a59145b78f5c783ca9a462cb7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 01:58:46 -0500
Subject: [PATCH 0097/1254] Autofix Rubocop Style/SymbolProc (#23742)
---
.rubocop_todo.yml | 8 --------
spec/lib/request_spec.rb | 8 ++++----
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 19d595e90d..f365914cb9 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2451,11 +2451,3 @@ Style/SymbolArray:
- 'spec/controllers/concerns/signature_verification_spec.rb'
- 'spec/fabricators/notification_fabricator.rb'
- 'spec/models/public_feed_spec.rb'
-
-# Offense count: 4
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
-# AllowedMethods: define_method, mail, respond_to
-Style/SymbolProc:
- Exclude:
- - 'spec/lib/request_spec.rb'
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index f63a836de4..25fe9ed379 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -97,12 +97,12 @@ describe Request do
describe "response's body_with_limit method" do
it 'rejects body more than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes))
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'accepts body less than 1 megabyte by default' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.kilobytes))
- expect { subject.perform { |response| response.body_with_limit } }.to_not raise_error
+ expect { subject.perform(&:body_with_limit) }.to_not raise_error
end
it 'rejects body by given size' do
@@ -112,12 +112,12 @@ describe Request do
it 'rejects too large chunked body' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Transfer-Encoding' => 'chunked' })
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'rejects too large monolithic body' do
stub_request(:any, 'http://example.com').to_return(body: SecureRandom.random_bytes(2.megabytes), headers: { 'Content-Length' => 2.megabytes })
- expect { subject.perform { |response| response.body_with_limit } }.to raise_error Mastodon::LengthValidationError
+ expect { subject.perform(&:body_with_limit) }.to raise_error Mastodon::LengthValidationError
end
it 'truncates large monolithic body' do
From 62c4aecf8f3cb1e2bf1d0d1611084a3406a7adc0 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Mon, 20 Feb 2023 08:11:23 +0100
Subject: [PATCH 0098/1254] Make larger part of status clickable (#23621)
---
app/javascript/mastodon/components/status.jsx | 5 +++--
app/javascript/styles/mastodon/components.scss | 3 ++-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/app/javascript/mastodon/components/status.jsx b/app/javascript/mastodon/components/status.jsx
index f02910f5ac..2e2d966345 100644
--- a/app/javascript/mastodon/components/status.jsx
+++ b/app/javascript/mastodon/components/status.jsx
@@ -160,6 +160,7 @@ class Status extends ImmutablePureComponent {
if (e) {
e.preventDefault();
+ e.stopPropagation();
}
this._openProfile(proper);
@@ -510,8 +511,8 @@ class Status extends ImmutablePureComponent {
{prepend}
+ {status.get('edited_at') && *}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 11c28dbc13..62e48eb3d7 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -1200,11 +1200,12 @@ body > [data-popper-placement] {
.status__info {
font-size: 15px;
- margin-bottom: 10px;
+ padding-bottom: 10px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
+ cursor: pointer;
}
.status-check-box__status {
From 59c8d43d94aa782848bf00f000512a04fca7c069 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 05:01:20 -0500
Subject: [PATCH 0099/1254] Autofix Rubocop Style/RescueStandardError (#23745)
---
.rubocop.yml | 3 +++
.rubocop_todo.yml | 18 ------------------
app/lib/request_pool.rb | 2 +-
app/services/import_service.rb | 2 +-
lib/mastodon/domains_cli.rb | 2 +-
lib/tasks/mastodon.rake | 6 +++---
6 files changed, 9 insertions(+), 24 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 512c8458fb..27d778edfb 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -115,6 +115,9 @@ Style/PercentLiteralDelimiters:
'%i': '()'
'%w': '()'
+Style/RescueStandardError:
+ EnforcedStyle: implicit
+
Style/TrailingCommaInArrayLiteral:
EnforcedStyleForMultiline: 'comma'
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index f365914cb9..bb214a70bb 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2234,24 +2234,6 @@ Style/RegexpLiteral:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/mastodon.rake'
-# Offense count: 21
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: implicit, explicit
-Style/RescueStandardError:
- Exclude:
- - 'app/lib/activitypub/activity/move.rb'
- - 'app/lib/request.rb'
- - 'app/models/account.rb'
- - 'app/workers/move_worker.rb'
- - 'app/workers/scheduler/vacuum_scheduler.rb'
- - 'lib/mastodon/accounts_cli.rb'
- - 'lib/mastodon/cli_helper.rb'
- - 'lib/mastodon/media_cli.rb'
- - 'lib/mastodon/sidekiq_middleware.rb'
- - 'lib/mastodon/statuses_cli.rb'
- - 'lib/mastodon/upgrade_cli.rb'
-
# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
diff --git a/app/lib/request_pool.rb b/app/lib/request_pool.rb
index e5899a79aa..6be1722860 100644
--- a/app/lib/request_pool.rb
+++ b/app/lib/request_pool.rb
@@ -64,7 +64,7 @@ class RequestPool
retries += 1
retry
end
- rescue StandardError
+ rescue
# If this connection raises errors of any kind, it's
# better if it gets reaped as soon as possible
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
index 2f48abc364..7a68e4ca35 100644
--- a/app/services/import_service.rb
+++ b/app/services/import_service.rb
@@ -114,7 +114,7 @@ class ImportService < BaseService
status || ActivityPub::FetchRemoteStatusService.new.call(uri)
rescue HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::UnexpectedResponseError
nil
- rescue StandardError => e
+ rescue => e
Rails.logger.warn "Unexpected error when importing bookmark: #{e}"
nil
end
diff --git a/lib/mastodon/domains_cli.rb b/lib/mastodon/domains_cli.rb
index 41ea5b1529..05f08f4623 100644
--- a/lib/mastodon/domains_cli.rb
+++ b/lib/mastodon/domains_cli.rb
@@ -165,7 +165,7 @@ module Mastodon
stats[domain]['activity'] = Oj.load(res.to_s)
end
- rescue StandardError
+ rescue
failed.increment
ensure
processed.increment
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index f919ba989c..0a3946ac7d 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -92,7 +92,7 @@ namespace :mastodon do
prompt.ok 'Database configuration works! 🎆'
db_connection_works = true
break
- rescue StandardError => e
+ rescue => e
prompt.error 'Database connection could not be established with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
@@ -132,7 +132,7 @@ namespace :mastodon do
redis.ping
prompt.ok 'Redis configuration works! 🎆'
break
- rescue StandardError => e
+ rescue => e
prompt.error 'Redis connection could not be established with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
@@ -417,7 +417,7 @@ namespace :mastodon do
mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!'
mail.deliver
break
- rescue StandardError => e
+ rescue => e
prompt.error 'E-mail could not be sent with this configuration, try again.'
prompt.error e.message
break unless prompt.yes?('Try again?')
From b65ca7acc9753227a5f3958c894d3ece9024dcd2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 05:02:06 -0500
Subject: [PATCH 0100/1254] Update rebase needed job settings (#23746)
---
.github/workflows/rebase-needed.yml | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index a5899e0f08..99b224ec60 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -5,6 +5,9 @@ on:
pull_request_target:
types: [synchronize]
+permissions:
+ pull-requests: write
+
jobs:
label-rebase-needed:
runs-on: ubuntu-latest
@@ -19,4 +22,7 @@ jobs:
with:
dirtyLabel: 'rebase needed :construction:'
repoToken: '${{ secrets.GITHUB_TOKEN }}'
+ commentOnClean: This pull request has resolved merge conflicts and is ready for review.
commentOnDirty: This pull request has merge conflicts that must be resolved before it can be merged.
+ retryMax: 10
+ continueOnMissingPermissions: false
From d3b4d4d4f3ccee19f272c66e7c9acd803661e65b Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 20 Feb 2023 11:32:27 +0100
Subject: [PATCH 0101/1254] Change compose form checkbox to native input with
`appearance: none` (#22949)
---
.../compose/containers/sensitive_button_container.jsx | 2 --
app/javascript/styles/mastodon/components.scss | 8 +++-----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
index 1bcce57310..03f831d284 100644
--- a/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
+++ b/app/javascript/mastodon/features/compose/containers/sensitive_button_container.jsx
@@ -54,8 +54,6 @@ class SensitiveButton extends React.PureComponent {
disabled={disabled}
/>
-
-
[data-popper-placement] {
}
input[type='checkbox'] {
- display: none;
- }
-
- .checkbox {
+ appearance: none;
display: inline-block;
position: relative;
border: 1px solid $ui-primary-color;
@@ -420,8 +417,9 @@ body > [data-popper-placement] {
top: -1px;
border-radius: 4px;
vertical-align: middle;
+ cursor: inherit;
- &.active {
+ &:checked {
border-color: $highlight-text-color;
background: $highlight-text-color
url("data:image/svg+xml;utf8,")
From 9909b4b653d2f1cef662211a4b8e0b02cbb42fc1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 13:20:56 -0500
Subject: [PATCH 0102/1254] Autofix Rubocop Rails/WhereEquals (#23759)
---
.rubocop_todo.yml | 7 -------
app/models/announcement.rb | 2 +-
app/models/status.rb | 2 +-
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index bb214a70bb..2a272b095d 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1916,13 +1916,6 @@ Rails/UnusedIgnoredColumns:
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
-# Offense count: 2
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Rails/WhereEquals:
- Exclude:
- - 'app/models/announcement.rb'
- - 'app/models/status.rb'
-
# Offense count: 61
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index 898bf3efa9..339f5ae70c 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -20,7 +20,7 @@
class Announcement < ApplicationRecord
scope :unpublished, -> { where(published: false) }
scope :published, -> { where(published: true) }
- scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where('announcement_mutes.id IS NULL') }
+ scope :without_muted, ->(account) { joins("LEFT OUTER JOIN announcement_mutes ON announcement_mutes.announcement_id = announcements.id AND announcement_mutes.account_id = #{account.id}").where(announcement_mutes: { id: nil }) }
scope :chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) ASC')) }
scope :reverse_chronological, -> { order(Arel.sql('COALESCE(announcements.starts_at, announcements.scheduled_at, announcements.published_at, announcements.created_at) DESC')) }
diff --git a/app/models/status.rb b/app/models/status.rb
index 2eb47d72c2..e7ea191a80 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -95,7 +95,7 @@ class Status < ApplicationRecord
scope :local, -> { where(local: true).or(where(uri: nil)) }
scope :with_accounts, ->(ids) { where(id: ids).includes(:account) }
scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }
- scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') }
+ scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
scope :with_public_visibility, -> { where(visibility: :public) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) }
From 35d032500b7e8c56d3fe3a05bcaa3bddb447b67a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 13:21:19 -0500
Subject: [PATCH 0103/1254] Autofix Rubocop Security/IoMethods (#23757)
---
.rubocop_todo.yml | 7 -------
.../admin/export_domain_allows_controller_spec.rb | 4 ++--
.../admin/export_domain_blocks_controller_spec.rb | 2 +-
3 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 2a272b095d..331e24e7a0 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1956,13 +1956,6 @@ Rails/WhereExists:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
-# Offense count: 3
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Security/IoMethods:
- Exclude:
- - 'spec/controllers/admin/export_domain_allows_controller_spec.rb'
- - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
-
# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/CaseLikeIf:
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 7ee064de7f..1f974bc001 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
end
end
@@ -30,7 +30,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
# Domains should now be added
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_allows.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_allows.csv')))
end
it 'displays error on no file selected' do
diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
index 2766102c89..a8d7b7383e 100644
--- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
@@ -16,7 +16,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
get :export, params: { format: :csv }
expect(response).to have_http_status(200)
- expect(response.body).to eq(IO.read(File.join(file_fixture_path, 'domain_blocks.csv')))
+ expect(response.body).to eq(File.read(File.join(file_fixture_path, 'domain_blocks.csv')))
end
end
From 434770f580016acff6bdb51dc6715bffefb44150 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 20 Feb 2023 20:21:48 -0500
Subject: [PATCH 0104/1254] Autofix Rubocop Rails/FindById (#23762)
---
.rubocop_todo.yml | 7 -------
app/controllers/api/v1/notifications_controller.rb | 2 +-
app/controllers/media_controller.rb | 2 +-
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 331e24e7a0..d99774e8e7 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1645,13 +1645,6 @@ Rails/FilePath:
- 'spec/rails_helper.rb'
- 'spec/spec_helper.rb'
-# Offense count: 2
-# This cop supports safe autocorrection (--autocorrect).
-Rails/FindById:
- Exclude:
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/media_controller.rb'
-
# Offense count: 6
# Configuration parameters: Include.
# Include: app/models/**/*.rb
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb
index 2024d521ca..8414f6b25c 100644
--- a/app/controllers/api/v1/notifications_controller.rb
+++ b/app/controllers/api/v1/notifications_controller.rb
@@ -24,7 +24,7 @@ class Api::V1::NotificationsController < Api::BaseController
end
def dismiss
- current_account.notifications.find_by!(id: params[:id]).destroy!
+ current_account.notifications.find(params[:id]).destroy!
render_empty
end
diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb
index 3cdd97f067..133564ee7e 100644
--- a/app/controllers/media_controller.rb
+++ b/app/controllers/media_controller.rb
@@ -32,7 +32,7 @@ class MediaController < ApplicationController
scope = MediaAttachment.local.attached
# If id is 19 characters long, it's a shortcode, otherwise it's an identifier
- @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find_by!(id: id)
+ @media_attachment = id.size == 19 ? scope.find_by!(shortcode: id) : scope.find(id)
end
def verify_permitted_status!
From 7207a98d3990124c6dc1df2187475695c800e65f Mon Sep 17 00:00:00 2001
From: Claire
Date: Tue, 21 Feb 2023 09:23:39 +0100
Subject: [PATCH 0105/1254] Add `lang` tag to native language names in language
picker (#23749)
---
.../mastodon/features/compose/components/language_dropdown.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
index d96d39f23d..82547e0793 100644
--- a/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
+++ b/app/javascript/mastodon/features/compose/components/language_dropdown.jsx
@@ -210,7 +210,7 @@ class LanguageDropdownMenu extends React.PureComponent {
return (
- {lang[2]}({lang[1]})
+ {lang[2]}({lang[1]})
);
};
From fbbf5c48411b20b8b171bf92cd42e461ab6d071c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:29:07 +0100
Subject: [PATCH 0106/1254] Bump capistrano from 3.17.1 to 3.17.2 (#23775)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 6e4c4cdc3e..9ed83ec727 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -156,7 +156,7 @@ GEM
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
byebug (11.1.3)
- capistrano (3.17.1)
+ capistrano (3.17.2)
airbrussh (>= 1.0.0)
i18n
rake (>= 10.0.0)
@@ -430,7 +430,7 @@ GEM
net-protocol
net-protocol (0.2.1)
timeout
- net-scp (4.0.0.rc1)
+ net-scp (4.0.0)
net-ssh (>= 2.6.5, < 8.0.0)
net-smtp (0.3.3)
net-protocol
@@ -682,7 +682,7 @@ GEM
actionpack (>= 5.2)
activesupport (>= 5.2)
sprockets (>= 3.0.0)
- sshkit (1.21.2)
+ sshkit (1.21.4)
net-scp (>= 1.1.2)
net-ssh (>= 2.8.0)
stackprof (0.2.23)
From d58400d00ca4d93b3187dc660e0d1b2e65c964a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:30:59 +0100
Subject: [PATCH 0107/1254] Bump sass from 1.58.2 to 1.58.3 (#23772)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/package.json b/package.json
index 06af9045e9..67ee5e21f7 100644
--- a/package.json
+++ b/package.json
@@ -115,7 +115,7 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.1.7",
"rimraf": "^4.1.2",
- "sass": "^1.58.2",
+ "sass": "^1.58.3",
"sass-loader": "^10.2.0",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
diff --git a/yarn.lock b/yarn.lock
index e499d90ffd..d5a74786c2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1469,7 +1469,7 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.2", "@jest/types@^29.4.3":
+"@jest/types@^29.4.3":
version "29.4.3"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f"
integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==
@@ -6803,7 +6803,7 @@ jest-snapshot@^29.4.3:
pretty-format "^29.4.3"
semver "^7.3.5"
-jest-util@^29.4.2, jest-util@^29.4.3:
+jest-util@^29.4.3:
version "29.4.3"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496"
integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==
@@ -9733,10 +9733,10 @@ sass-loader@^10.2.0:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.58.2:
- version "1.58.2"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.2.tgz#ef3c5098a02dd006f09a2350b114f1ac445e38ce"
- integrity sha512-2mbyOWOv/lhEXD6nVrQZQ4KT2DlwcODbTskM42EyqBAFUWOhiiYtAXZqjZz1ygzapYf+N+2GwfIH9M5FM4GUMg==
+sass@^1.58.3:
+ version "1.58.3"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d"
+ integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
From 57b83ce3377098b950c696995d31ac906f1a1b13 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:33:30 +0100
Subject: [PATCH 0108/1254] Bump blurhash from 2.0.4 to 2.0.5 (#23771)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 67ee5e21f7..7e78b9b70f 100644
--- a/package.json
+++ b/package.json
@@ -44,7 +44,7 @@
"babel-plugin-preval": "^5.1.0",
"babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
- "blurhash": "^2.0.4",
+ "blurhash": "^2.0.5",
"classnames": "^2.3.2",
"cocoon-js-vanilla": "^1.3.0",
"color-blend": "^3.0.1",
diff --git a/yarn.lock b/yarn.lock
index d5a74786c2..40c6fd393c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2782,10 +2782,10 @@ bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-blurhash@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.4.tgz#60642a823b50acaaf3732ddb6c7dfd721bdfef2a"
- integrity sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==
+blurhash@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.5.tgz#efde729fc14a2f03571a6aa91b49cba80d1abe4b"
+ integrity sha512-cRygWd7kGBQO3VEhPiTgq4Wc43ctsM+o46urrmPOiuAe+07fzlSB9OJVdpgDL0jPqXUVQ9ht7aq7kxOeJHRK+w==
bmp-js@^0.1.0:
version "0.1.0"
From 513316f768701fa3450da25d52e262f1adbfed4c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 09:41:28 +0100
Subject: [PATCH 0109/1254] Bump stylelint from 15.1.0 to 15.2.0 (#23770)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 7e78b9b70f..07c2a12c98 100644
--- a/package.json
+++ b/package.json
@@ -157,7 +157,7 @@
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.14.0",
- "stylelint": "^15.1.0",
+ "stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1",
"webpack-dev-server": "^3.11.3",
"yargs": "^17.7.0"
diff --git a/yarn.lock b/yarn.lock
index 40c6fd393c..a058470844 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -10503,10 +10503,10 @@ stylelint-scss@^4.4.0:
postcss-selector-parser "^6.0.6"
postcss-value-parser "^4.1.0"
-stylelint@^15.1.0:
- version "15.1.0"
- resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.1.0.tgz#24d7cbe06250ceca3b276393bfdeaaaba4356195"
- integrity sha512-Tw8OyIiYhxnIHUzgoLlCyWgCUKsPYiP3TDgs7M1VbayS+q5qZly2yxABg+YPe/hFRWiu0cOtptCtpyrn1CrnYw==
+stylelint@^15.2.0:
+ version "15.2.0"
+ resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.2.0.tgz#e906eb59df83bde075d148623216f298f9ceb03a"
+ integrity sha512-wjg5OLn8zQwjlj5cYUgyQpMWKzct42AG5dYlqkHRJQJqsystFFn3onqEc263KH4xfEI0W3lZCnlIhFfS64uwSA==
dependencies:
"@csstools/css-parser-algorithms" "^2.0.1"
"@csstools/css-tokenizer" "^2.0.1"
From 7adde24a95218048f14c29bee0d25afaeae99509 Mon Sep 17 00:00:00 2001
From: Botao Wang
Date: Tue, 21 Feb 2023 18:06:13 +0900
Subject: [PATCH 0110/1254] Fix sidebar cut-off on small screens in admin UI
(#23764)
---
app/javascript/styles/mastodon/admin.scss | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index d9e45fb102..d54d6634da 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -384,7 +384,7 @@ $content-width: 840px;
position: fixed;
z-index: 10;
width: 100%;
- height: calc(100vh - 56px);
+ height: calc(100% - 56px);
left: 0;
bottom: 0;
overflow-y: auto;
From 4b964fa605500a1e76caa876514a6b3107b8e0e6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:41:28 +0100
Subject: [PATCH 0111/1254] Bump devise from 4.8.1 to 4.9.0 (#23691)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile | 2 +-
Gemfile.lock | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/Gemfile b/Gemfile
index 0fca82cea3..479a4eeac7 100644
--- a/Gemfile
+++ b/Gemfile
@@ -30,7 +30,7 @@ gem 'bootsnap', '~> 1.16.0', require: false
gem 'browser'
gem 'charlock_holmes', '~> 0.7.7'
gem 'chewy', '~> 7.2'
-gem 'devise', '~> 4.8'
+gem 'devise', '~> 4.9'
gem 'devise-two-factor', '~> 4.0'
group :pam_authentication, optional: true do
diff --git a/Gemfile.lock b/Gemfile.lock
index 9ed83ec727..a78a647574 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -125,7 +125,7 @@ GEM
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.2)
aws-eventstream (~> 1, >= 1.0.2)
- bcrypt (3.1.17)
+ bcrypt (3.1.18)
better_errors (2.9.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
@@ -205,7 +205,7 @@ GEM
addressable
date (3.3.3)
debug_inspector (1.0.0)
- devise (4.8.1)
+ devise (4.9.0)
bcrypt (~> 3.0)
orm_adapter (~> 0.1)
railties (>= 4.1.0)
@@ -575,9 +575,9 @@ GEM
regexp_parser (2.7.0)
request_store (1.5.1)
rack (>= 1.4)
- responders (3.0.1)
- actionpack (>= 5.0)
- railties (>= 5.0)
+ responders (3.1.0)
+ actionpack (>= 5.2)
+ railties (>= 5.2)
rexml (3.2.5)
rotp (6.2.0)
rpam2 (4.0.2)
@@ -797,7 +797,7 @@ DEPENDENCIES
color_diff (~> 0.1)
concurrent-ruby
connection_pool
- devise (~> 4.8)
+ devise (~> 4.9)
devise-two-factor (~> 4.0)
devise_pam_authenticatable2 (~> 9.2)
discard (~> 1.2)
From 92a0afda28302a4cea425b287bed74cfb61a2af3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:44:51 +0100
Subject: [PATCH 0112/1254] Bump @babel/runtime from 7.20.13 to 7.21.0 (#23773)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 07c2a12c98..f1c5bdc0e8 100644
--- a/package.json
+++ b/package.json
@@ -30,7 +30,7 @@
"@babel/plugin-transform-runtime": "^7.19.6",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
- "@babel/runtime": "^7.20.13",
+ "@babel/runtime": "^7.21.0",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^0.5.7",
"@rails/ujs": "^6.1.7",
diff --git a/yarn.lock b/yarn.lock
index a058470844..a87db5fad1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1030,10 +1030,10 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.13", "@babel/runtime@^7.20.7", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
- version "7.20.13"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b"
- integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.13.8", "@babel/runtime@^7.15.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.20.7", "@babel/runtime@^7.21.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673"
+ integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==
dependencies:
regenerator-runtime "^0.13.11"
From a573641b15bdddd0e1bd213b11eb50e299cfe69e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:46:03 +0100
Subject: [PATCH 0113/1254] Bump @babel/core from 7.20.12 to 7.21.0 (#23767)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 138 ++++++++++++++++++++++++++++++++-------------------
2 files changed, 88 insertions(+), 52 deletions(-)
diff --git a/package.json b/package.json
index f1c5bdc0e8..411f636f96 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.20.12",
+ "@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
"@babel/plugin-transform-runtime": "^7.19.6",
diff --git a/yarn.lock b/yarn.lock
index a87db5fad1..882b728363 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,12 +7,13 @@
resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd"
integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==
-"@ampproject/remapping@^2.1.0":
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
- integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==
+"@ampproject/remapping@^2.2.0":
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d"
+ integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.0"
+ "@jridgewell/gen-mapping" "^0.1.0"
+ "@jridgewell/trace-mapping" "^0.3.9"
"@apideck/better-ajv-errors@^0.3.1":
version "0.3.3"
@@ -40,21 +41,21 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
-"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.12", "@babel/core@^7.7.2":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d"
- integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==
+"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.0", "@babel/core@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
+ integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
dependencies:
- "@ampproject/remapping" "^2.1.0"
+ "@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.7"
+ "@babel/generator" "^7.21.0"
"@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.20.11"
- "@babel/helpers" "^7.20.7"
- "@babel/parser" "^7.20.7"
+ "@babel/helper-module-transforms" "^7.21.0"
+ "@babel/helpers" "^7.21.0"
+ "@babel/parser" "^7.21.0"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.12"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -70,13 +71,14 @@
eslint-visitor-keys "^2.1.0"
semver "^6.3.0"
-"@babel/generator@^7.20.7", "@babel/generator@^7.7.2":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a"
- integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==
+"@babel/generator@^7.21.0", "@babel/generator@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.0.tgz#45d731e84f506ce02a7b22b9ba5861ea88eef64f"
+ integrity sha512-z/zN3SePOtxN1/vPFdqrkuJGCD2Vx469+dSbNRD+4TF2+6e4Of5exHqAtcfL/2Nwu0RN0QsFwjyDBFwdUMzNSA==
dependencies:
- "@babel/types" "^7.20.7"
+ "@babel/types" "^7.21.0"
"@jridgewell/gen-mapping" "^0.3.2"
+ "@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
"@babel/helper-annotate-as-pure@^7.18.6":
@@ -167,6 +169,14 @@
"@babel/template" "^7.18.10"
"@babel/types" "^7.19.0"
+"@babel/helper-function-name@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
+ integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
+ dependencies:
+ "@babel/template" "^7.20.7"
+ "@babel/types" "^7.21.0"
+
"@babel/helper-hoist-variables@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
@@ -188,10 +198,10 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.20.11":
- version "7.20.11"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0"
- integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67"
+ integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ==
dependencies:
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-module-imports" "^7.18.6"
@@ -199,8 +209,8 @@
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.19.1"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.10"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
@@ -289,14 +299,14 @@
"@babel/traverse" "^7.18.10"
"@babel/types" "^7.18.10"
-"@babel/helpers@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce"
- integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==
+"@babel/helpers@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e"
+ integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==
dependencies:
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/traverse" "^7.21.0"
+ "@babel/types" "^7.21.0"
"@babel/highlight@^7.18.6":
version "7.18.6"
@@ -307,10 +317,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b"
- integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4"
+ integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -1046,26 +1056,26 @@
"@babel/parser" "^7.20.7"
"@babel/types" "^7.20.7"
-"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5"
- integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ==
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.7.2":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc"
+ integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.20.7"
+ "@babel/generator" "^7.21.0"
"@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-function-name" "^7.21.0"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.20.7"
- "@babel/types" "^7.20.7"
+ "@babel/parser" "^7.21.0"
+ "@babel/types" "^7.21.0"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f"
- integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819"
+ integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==
dependencies:
"@babel/helper-string-parser" "^7.19.4"
"@babel/helper-validator-identifier" "^7.19.1"
@@ -1481,6 +1491,14 @@
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
+"@jridgewell/gen-mapping@^0.1.0":
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
+ integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==
+ dependencies:
+ "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
"@jridgewell/gen-mapping@^0.3.2":
version "0.3.2"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
@@ -1490,22 +1508,32 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
+"@jridgewell/resolve-uri@3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
"@jridgewell/resolve-uri@^3.0.3":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
-"@jridgewell/set-array@^1.0.1":
+"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
+"@jridgewell/sourcemap-codec@1.4.14":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.10"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
-"@jridgewell/trace-mapping@^0.3.0", "@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.15"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
@@ -1513,6 +1541,14 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@jridgewell/trace-mapping@^0.3.17":
+ version "0.3.17"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
+ integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
+ dependencies:
+ "@jridgewell/resolve-uri" "3.1.0"
+ "@jridgewell/sourcemap-codec" "1.4.14"
+
"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
version "5.1.1-v1"
resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
From 24d265d604ae01bdffb746671c8ea87a65abb97c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 10:59:58 +0100
Subject: [PATCH 0114/1254] Bump @babel/plugin-transform-runtime from 7.19.6 to
7.21.0 (#23774)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index 411f636f96..0ad8a579a6 100644
--- a/package.json
+++ b/package.json
@@ -27,7 +27,7 @@
"@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
"@babel/plugin-transform-react-inline-elements": "^7.18.6",
- "@babel/plugin-transform-runtime": "^7.19.6",
+ "@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
"@babel/runtime": "^7.21.0",
diff --git a/yarn.lock b/yarn.lock
index 882b728363..94c15cd328 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -858,13 +858,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-runtime@^7.19.6":
- version "7.19.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194"
- integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==
+"@babel/plugin-transform-runtime@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz#2a884f29556d0a68cd3d152dcc9e6c71dfb6eee8"
+ integrity sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==
dependencies:
"@babel/helper-module-imports" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
babel-plugin-polyfill-corejs2 "^0.3.3"
babel-plugin-polyfill-corejs3 "^0.6.0"
babel-plugin-polyfill-regenerator "^0.4.1"
From 9d8349f0c47cf8a1e9d791d2d770ecc34277e900 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 11:14:25 +0100
Subject: [PATCH 0115/1254] Bump @babel/plugin-transform-react-inline-elements
from 7.18.6 to 7.21.0 (#23766)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 22 +++++++++++-----------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/package.json b/package.json
index 0ad8a579a6..8213164c5d 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
"dependencies": {
"@babel/core": "^7.21.0",
"@babel/plugin-proposal-decorators": "^7.20.13",
- "@babel/plugin-transform-react-inline-elements": "^7.18.6",
+ "@babel/plugin-transform-react-inline-elements": "^7.21.0",
"@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
"@babel/preset-react": "^7.18.6",
diff --git a/yarn.lock b/yarn.lock
index 94c15cd328..7a42822f6b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -96,13 +96,13 @@
"@babel/helper-explode-assignable-expression" "^7.18.6"
"@babel/types" "^7.18.6"
-"@babel/helper-builder-react-jsx@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.18.6.tgz#b3a302c0eb4949e5356b400cb752a91e93bf9b79"
- integrity sha512-2ndBVP5f9zwHWQeBr5EgqTAvFhPDViMW969bbJzRhKUUylnC39CdFZdVmqk+UtkxIpwm/efPgm3SzXUSlJnjAw==
+"@babel/helper-builder-react-jsx@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.19.0.tgz#a1f4fef805388eda4b3c1bd8994dc585b0afa351"
+ integrity sha512-xvrbORmJ13lWrqyMErk4vczhXNNWdOSg1BZ+R/7D34SjDjToR5g3M5UpD6MyUekstI50qAHLWA1j7w5o1WK2Pw==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
- "@babel/types" "^7.18.6"
+ "@babel/types" "^7.19.0"
"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.20.0", "@babel/helper-compilation-targets@^7.20.7":
version "7.20.7"
@@ -809,13 +809,13 @@
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-inline-elements@^7.18.6":
- version "7.18.6"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.18.6.tgz#d0676948eb5a11d547de6add7e8a2c522ec708f5"
- integrity sha512-uo3yD1EXhDxmk1Y/CeFDdHS5t22IOUBooLPFOrrjfpYmDM9Vg61xbIaWeWkbYQ7Aq0zMf30/FfKoQgFwyqw6Bg==
+"@babel/plugin-transform-react-inline-elements@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.21.0.tgz#921fe634c422987677b133b335ae3f3aecddda2a"
+ integrity sha512-lOSFD/67qxOwQ7q6KpkAbBFeGI5xy1Oya2zipYxPSmG2C210CRJyQdzOl1A368J1nv2gOFTgRXdsRjb83jioLw==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.18.6"
- "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-builder-react-jsx" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-transform-react-jsx-development@^7.18.6":
version "7.18.6"
From 7ecf783dd3bfc07f80aab495273b6d01ba972c40 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Feb 2023 11:35:27 +0100
Subject: [PATCH 0116/1254] Bump @babel/plugin-proposal-decorators from 7.20.13
to 7.21.0 (#23769)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 41 ++++++++++++++++++++++++-----------------
2 files changed, 25 insertions(+), 18 deletions(-)
diff --git a/package.json b/package.json
index 8213164c5d..3d923bbacf 100644
--- a/package.json
+++ b/package.json
@@ -25,7 +25,7 @@
"private": true,
"dependencies": {
"@babel/core": "^7.21.0",
- "@babel/plugin-proposal-decorators": "^7.20.13",
+ "@babel/plugin-proposal-decorators": "^7.21.0",
"@babel/plugin-transform-react-inline-elements": "^7.21.0",
"@babel/plugin-transform-runtime": "^7.21.0",
"@babel/preset-env": "^7.20.2",
diff --git a/yarn.lock b/yarn.lock
index 7a42822f6b..2fd3352cf1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -115,15 +115,15 @@
lru-cache "^5.1.1"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.20.12":
- version "7.20.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.12.tgz#4349b928e79be05ed2d1643b20b99bb87c503819"
- integrity sha512-9OunRkbT0JQcednL0UFvbfXpAsUXiGjUk0a7sN8fUXX7Mue79cUSMjHGDRRi/Vz9vYlpIhLV5fMD5dKoMhhsNQ==
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.0.tgz#64f49ecb0020532f19b1d014b03bccaa1ab85fb9"
+ integrity sha512-Q8wNiMIdwsv5la5SPxNYzzkPnjgC0Sy0i7jLkVOCdllu/xcVNkr3TeZzbHBJrj+XXRqzX5uCyCoV9eu6xUG7KQ==
dependencies:
"@babel/helper-annotate-as-pure" "^7.18.6"
"@babel/helper-environment-visitor" "^7.18.9"
- "@babel/helper-function-name" "^7.19.0"
- "@babel/helper-member-expression-to-functions" "^7.20.7"
+ "@babel/helper-function-name" "^7.21.0"
+ "@babel/helper-member-expression-to-functions" "^7.21.0"
"@babel/helper-optimise-call-expression" "^7.18.6"
"@babel/helper-replace-supers" "^7.20.7"
"@babel/helper-skip-transparent-expression-wrappers" "^7.20.0"
@@ -191,6 +191,13 @@
dependencies:
"@babel/types" "^7.20.7"
+"@babel/helper-member-expression-to-functions@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
+ integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
+ dependencies:
+ "@babel/types" "^7.21.0"
+
"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
@@ -365,16 +372,16 @@
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-decorators@^7.20.13":
- version "7.20.13"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.20.13.tgz#b6bea3b18e88443688fa7ed2cc06d2c60da9f4a7"
- integrity sha512-7T6BKHa9Cpd7lCueHBBzP0nkXNina+h5giOZw+a8ZpMfPFY19VjJAjIxyFHuWkhCWgL6QMqRiY/wB1fLXzm6Mw==
+"@babel/plugin-proposal-decorators@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.21.0.tgz#70e0c89fdcd7465c97593edb8f628ba6e4199d63"
+ integrity sha512-MfgX49uRrFUTL/HvWtmx3zmpyzMMr4MTj3d527MLlr/4RTT9G/ytFFP7qet2uM2Ve03b+BkpWUpK+lRXnQ+v9w==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.20.12"
+ "@babel/helper-create-class-features-plugin" "^7.21.0"
"@babel/helper-plugin-utils" "^7.20.2"
"@babel/helper-replace-supers" "^7.20.7"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/plugin-syntax-decorators" "^7.19.0"
+ "@babel/plugin-syntax-decorators" "^7.21.0"
"@babel/plugin-proposal-dynamic-import@^7.18.6":
version "7.18.6"
@@ -506,12 +513,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-decorators@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599"
- integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==
+"@babel/plugin-syntax-decorators@^7.21.0":
+ version "7.21.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.21.0.tgz#d2b3f31c3e86fa86e16bb540b7660c55bd7d0e78"
+ integrity sha512-tIoPpGBR8UuM4++ccWN3gifhVvQu7ZizuR1fklhRJrd5ewgbkUS+0KVFeWWxELtn18NTLoW32XV7zyOgIAiz+w==
dependencies:
- "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.20.2"
"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
From 0cfdd1a401f055c23e308a4b823bd250b1cbb3d3 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:54:36 -0500
Subject: [PATCH 0117/1254] Enable Rubocop Style/StringConcatenation defaults
(#23792)
---
.rubocop_todo.yml | 19 -------------------
app/lib/activitypub/case_transform.rb | 2 +-
app/lib/validation_error_formatter.rb | 2 +-
app/services/backup_service.rb | 10 +++++-----
app/services/fetch_link_card_service.rb | 2 +-
lib/mastodon/emoji_cli.rb | 2 +-
lib/mastodon/redis_config.rb | 16 ++++++++--------
lib/mastodon/snowflake.rb | 2 +-
lib/paperclip/gif_transcoder.rb | 2 +-
lib/paperclip/type_corrector.rb | 2 +-
.../api/v1/apps_controller_spec.rb | 4 ++--
.../api/v1/streaming_controller_spec.rb | 2 +-
.../disallowed_hashtags_validator_spec.rb | 2 +-
.../web/push_notification_worker_spec.rb | 2 +-
14 files changed, 25 insertions(+), 44 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index d99774e8e7..a72606b358 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2263,25 +2263,6 @@ Style/SlicingWithRange:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/repo.rake'
-# Offense count: 25
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: Mode.
-Style/StringConcatenation:
- Exclude:
- - 'app/lib/activitypub/case_transform.rb'
- - 'app/lib/validation_error_formatter.rb'
- - 'app/services/backup_service.rb'
- - 'app/services/fetch_link_card_service.rb'
- - 'lib/mastodon/emoji_cli.rb'
- - 'lib/mastodon/redis_config.rb'
- - 'lib/mastodon/snowflake.rb'
- - 'lib/paperclip/gif_transcoder.rb'
- - 'lib/paperclip/type_corrector.rb'
- - 'spec/controllers/api/v1/apps_controller_spec.rb'
- - 'spec/controllers/api/v1/streaming_controller_spec.rb'
- - 'spec/validators/disallowed_hashtags_validator_spec.rb'
- - 'spec/workers/web/push_notification_worker_spec.rb'
-
# Offense count: 272
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MinSize.
diff --git a/app/lib/activitypub/case_transform.rb b/app/lib/activitypub/case_transform.rb
index 7f716f8624..d36e01b8f2 100644
--- a/app/lib/activitypub/case_transform.rb
+++ b/app/lib/activitypub/case_transform.rb
@@ -13,7 +13,7 @@ module ActivityPub::CaseTransform
when Symbol then camel_lower(value.to_s).to_sym
when String
camel_lower_cache[value] ||= if value.start_with?('_:')
- '_:' + value.gsub(/\A_:/, '').underscore.camelize(:lower)
+ "_:#{value.gsub(/\A_:/, '').underscore.camelize(:lower)}"
else
value.underscore.camelize(:lower)
end
diff --git a/app/lib/validation_error_formatter.rb b/app/lib/validation_error_formatter.rb
index 3f964f739b..1d3e8955b3 100644
--- a/app/lib/validation_error_formatter.rb
+++ b/app/lib/validation_error_formatter.rb
@@ -19,7 +19,7 @@ class ValidationErrorFormatter
messages = errors.messages[attribute_name]
h[@aliases[attribute_name] || attribute_name] = attribute_errors.map.with_index do |error, index|
- { error: 'ERR_' + error[:error].to_s.upcase, description: messages[index] }
+ { error: "ERR_#{error[:error].to_s.upcase}", description: messages[index] }
end
end
diff --git a/app/services/backup_service.rb b/app/services/backup_service.rb
index b880dfbe71..5498cdd455 100644
--- a/app/services/backup_service.rb
+++ b/app/services/backup_service.rb
@@ -53,7 +53,7 @@ class BackupService < BaseService
end
end
- archive_filename = ['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-') + '.tar.gz'
+ archive_filename = "#{['archive', Time.now.utc.strftime('%Y%m%d%H%M%S'), SecureRandom.hex(16)].join('-')}.tar.gz"
@backup.dump = ActionDispatch::Http::UploadedFile.new(tempfile: tmp_file, filename: archive_filename)
@backup.processed = true
@@ -86,14 +86,14 @@ class BackupService < BaseService
def dump_actor!(tar)
actor = serialize(account, ActivityPub::ActorSerializer)
- actor[:icon][:url] = 'avatar' + File.extname(actor[:icon][:url]) if actor[:icon]
- actor[:image][:url] = 'header' + File.extname(actor[:image][:url]) if actor[:image]
+ actor[:icon][:url] = "avatar#{File.extname(actor[:icon][:url])}" if actor[:icon]
+ actor[:image][:url] = "header#{File.extname(actor[:image][:url])}" if actor[:image]
actor[:outbox] = 'outbox.json'
actor[:likes] = 'likes.json'
actor[:bookmarks] = 'bookmarks.json'
- download_to_tar(tar, account.avatar, 'avatar' + File.extname(account.avatar.path)) if account.avatar.exists?
- download_to_tar(tar, account.header, 'header' + File.extname(account.header.path)) if account.header.exists?
+ download_to_tar(tar, account.avatar, "avatar#{File.extname(account.avatar.path)}") if account.avatar.exists?
+ download_to_tar(tar, account.header, "header#{File.extname(account.header.path)}") if account.header.exists?
json = Oj.dump(actor)
diff --git a/app/services/fetch_link_card_service.rb b/app/services/fetch_link_card_service.rb
index d5fa9af541..8d07958b73 100644
--- a/app/services/fetch_link_card_service.rb
+++ b/app/services/fetch_link_card_service.rb
@@ -45,7 +45,7 @@ class FetchLinkCardService < BaseService
def html
return @html if defined?(@html)
- Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => Mastodon::Version.user_agent + ' Bot').perform do |res|
+ Request.new(:get, @url).add_headers('Accept' => 'text/html', 'User-Agent' => "#{Mastodon::Version.user_agent} Bot").perform do |res|
# We follow redirects, and ideally we want to save the preview card for
# the destination URL and not any link shortener in-between, so here
# we set the URL to the one of the last response in the redirect chain
diff --git a/lib/mastodon/emoji_cli.rb b/lib/mastodon/emoji_cli.rb
index feb77107fb..88065c2a39 100644
--- a/lib/mastodon/emoji_cli.rb
+++ b/lib/mastodon/emoji_cli.rb
@@ -68,7 +68,7 @@ module Mastodon
failed += 1
say('Failure/Error: ', :red)
say(entry.full_name)
- say(' ' + custom_emoji.errors[:image].join(', '), :red)
+ say(" #{custom_emoji.errors[:image].join(', ')}", :red)
end
end
end
diff --git a/lib/mastodon/redis_config.rb b/lib/mastodon/redis_config.rb
index 037ca5edc9..3e97da873a 100644
--- a/lib/mastodon/redis_config.rb
+++ b/lib/mastodon/redis_config.rb
@@ -1,17 +1,17 @@
# frozen_string_literal: true
def setup_redis_env_url(prefix = nil, defaults = true)
- prefix = prefix.to_s.upcase + '_' unless prefix.nil?
+ prefix = "#{prefix.to_s.upcase}_" unless prefix.nil?
prefix = '' if prefix.nil?
- return if ENV[prefix + 'REDIS_URL'].present?
+ return if ENV["#{prefix}REDIS_URL"].present?
- password = ENV.fetch(prefix + 'REDIS_PASSWORD') { '' if defaults }
- host = ENV.fetch(prefix + 'REDIS_HOST') { 'localhost' if defaults }
- port = ENV.fetch(prefix + 'REDIS_PORT') { 6379 if defaults }
- db = ENV.fetch(prefix + 'REDIS_DB') { 0 if defaults }
+ password = ENV.fetch("#{prefix}REDIS_PASSWORD") { '' if defaults }
+ host = ENV.fetch("#{prefix}REDIS_HOST") { 'localhost' if defaults }
+ port = ENV.fetch("#{prefix}REDIS_PORT") { 6379 if defaults }
+ db = ENV.fetch("#{prefix}REDIS_DB") { 0 if defaults }
- ENV[prefix + 'REDIS_URL'] = begin
+ ENV["#{prefix}REDIS_URL"] = begin
if [password, host, port, db].all?(&:nil?)
ENV['REDIS_URL']
else
@@ -27,7 +27,7 @@ setup_redis_env_url(:cache, false)
setup_redis_env_url(:sidekiq, false)
namespace = ENV.fetch('REDIS_NAMESPACE', nil)
-cache_namespace = namespace ? namespace + '_cache' : 'cache'
+cache_namespace = namespace ? "#{namespace}_cache" : 'cache'
sidekiq_namespace = namespace
REDIS_CACHE_PARAMS = {
diff --git a/lib/mastodon/snowflake.rb b/lib/mastodon/snowflake.rb
index fe0dc1722e..8030288aff 100644
--- a/lib/mastodon/snowflake.rb
+++ b/lib/mastodon/snowflake.rb
@@ -115,7 +115,7 @@ module Mastodon::Snowflake
# And only those that are using timestamp_id.
next unless (data = DEFAULT_REGEX.match(id_col.default_function))
- seq_name = data[:seq_prefix] + '_id_seq'
+ seq_name = "#{data[:seq_prefix]}_id_seq"
# If we were on Postgres 9.5+, we could do CREATE SEQUENCE IF
# NOT EXISTS, but we can't depend on that. Instead, catch the
diff --git a/lib/paperclip/gif_transcoder.rb b/lib/paperclip/gif_transcoder.rb
index f385b00a32..32bdb8a863 100644
--- a/lib/paperclip/gif_transcoder.rb
+++ b/lib/paperclip/gif_transcoder.rb
@@ -109,7 +109,7 @@ module Paperclip
final_file = Paperclip::Transcoder.make(file, options, attachment)
if options[:style] == :original
- attachment.instance.file_file_name = File.basename(attachment.instance.file_file_name, '.*') + '.mp4'
+ attachment.instance.file_file_name = "#{File.basename(attachment.instance.file_file_name, '.*')}.mp4"
attachment.instance.file_content_type = 'video/mp4'
attachment.instance.type = MediaAttachment.types[:gifv]
end
diff --git a/lib/paperclip/type_corrector.rb b/lib/paperclip/type_corrector.rb
index 17e2fc5daa..030b98b122 100644
--- a/lib/paperclip/type_corrector.rb
+++ b/lib/paperclip/type_corrector.rb
@@ -7,7 +7,7 @@ module Paperclip
def make
return @file unless options[:format]
- target_extension = '.' + options[:format]
+ target_extension = ".#{options[:format]}"
extension = File.extname(attachment.instance_read(:file_name))
return @file unless options[:style] == :original && target_extension && extension != target_extension
diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb
index 9ac7880a4a..61158e881f 100644
--- a/spec/controllers/api/v1/apps_controller_spec.rb
+++ b/spec/controllers/api/v1/apps_controller_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do
end
context 'with a too-long website' do
- let(:website) { 'https://foo.bar/' + ('hoge' * 2_000) }
+ let(:website) { "https://foo.bar/#{'hoge' * 2_000}" }
it 'returns http unprocessable entity' do
expect(response).to have_http_status(422)
@@ -76,7 +76,7 @@ RSpec.describe Api::V1::AppsController, type: :controller do
end
context 'with a too-long redirect_uris' do
- let(:redirect_uris) { 'https://foo.bar/' + ('hoge' * 2_000) }
+ let(:redirect_uris) { "https://foo.bar/#{'hoge' * 2_000}" }
it 'returns http unprocessable entity' do
expect(response).to have_http_status(422)
diff --git a/spec/controllers/api/v1/streaming_controller_spec.rb b/spec/controllers/api/v1/streaming_controller_spec.rb
index 9dbca01785..7014ed9b2b 100644
--- a/spec/controllers/api/v1/streaming_controller_spec.rb
+++ b/spec/controllers/api/v1/streaming_controller_spec.rb
@@ -25,7 +25,7 @@ describe Api::V1::StreamingController do
context 'with streaming api on different host' do
before(:each) do
- Rails.configuration.x.streaming_api_base_url = 'wss://streaming-' + Rails.configuration.x.web_domain
+ Rails.configuration.x.streaming_api_base_url = "wss://streaming-#{Rails.configuration.x.web_domain}"
@streaming_host = URI.parse(Rails.configuration.x.streaming_api_base_url).host
end
diff --git a/spec/validators/disallowed_hashtags_validator_spec.rb b/spec/validators/disallowed_hashtags_validator_spec.rb
index 2c4ebc4f25..896fd4fc5e 100644
--- a/spec/validators/disallowed_hashtags_validator_spec.rb
+++ b/spec/validators/disallowed_hashtags_validator_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe DisallowedHashtagsValidator, type: :validator do
described_class.new.validate(status)
end
- let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| '#' + x }.join(' ')) }
+ let(:status) { double(errors: errors, local?: local, reblog?: reblog, text: disallowed_tags.map { |x| "##{x}" }.join(' ')) }
let(:errors) { double(add: nil) }
context 'for a remote reblog' do
diff --git a/spec/workers/web/push_notification_worker_spec.rb b/spec/workers/web/push_notification_worker_spec.rb
index 5bc24f8886..822ef5257f 100644
--- a/spec/workers/web/push_notification_worker_spec.rb
+++ b/spec/workers/web/push_notification_worker_spec.rb
@@ -37,7 +37,7 @@ describe Web::PushNotificationWorker do
expect(a_request(:post, endpoint).with(headers: {
'Content-Encoding' => 'aesgcm',
'Content-Type' => 'application/octet-stream',
- 'Crypto-Key' => 'dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=' + vapid_public_key.delete('='),
+ 'Crypto-Key' => "dh=BAgtUks5d90kFmxGevk9tH7GEmvz9DB0qcEMUsOBgKwMf-TMjsKIIG6LQvGcFAf6jcmAod15VVwmYwGIIxE4VWE;p256ecdsa=#{vapid_public_key.delete('=')}",
'Encryption' => 'salt=WJeVM-RY-F9351SVxTFx_g',
'Ttl' => '172800',
'Urgency' => 'normal',
From 84cc805caea566d4fb0fafce411cd07f83cfd0e2 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:55:31 -0500
Subject: [PATCH 0118/1254] Enable Style/FrozenStringLiteralComment for specs
(#23790)
---
spec/config/initializers/rack_attack_spec.rb | 2 ++
spec/controllers/about_controller_spec.rb | 2 ++
spec/controllers/accounts_controller_spec.rb | 2 ++
.../activitypub/followers_synchronizations_controller_spec.rb | 2 ++
spec/controllers/activitypub/outboxes_controller_spec.rb | 2 ++
.../admin/account_moderation_notes_controller_spec.rb | 2 ++
spec/controllers/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/admin/change_email_controller_spec.rb | 2 ++
spec/controllers/admin/confirmations_controller_spec.rb | 2 ++
spec/controllers/admin/custom_emojis_controller_spec.rb | 2 ++
spec/controllers/admin/disputes/appeals_controller_spec.rb | 2 ++
spec/controllers/admin/domain_allows_controller_spec.rb | 2 ++
spec/controllers/admin/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/admin/export_domain_allows_controller_spec.rb | 2 ++
spec/controllers/admin/export_domain_blocks_controller_spec.rb | 2 ++
spec/controllers/admin/instances_controller_spec.rb | 2 ++
spec/controllers/admin/report_notes_controller_spec.rb | 2 ++
spec/controllers/admin/reports/actions_controller_spec.rb | 2 ++
spec/controllers/admin/reports_controller_spec.rb | 2 ++
spec/controllers/admin/resets_controller_spec.rb | 2 ++
spec/controllers/admin/roles_controller_spec.rb | 2 ++
spec/controllers/admin/statuses_controller_spec.rb | 2 ++
spec/controllers/admin/users/roles_controller.rb | 2 ++
.../admin/users/two_factor_authentications_controller_spec.rb | 2 ++
spec/controllers/api/oembed_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/credentials_controller_spec.rb | 2 ++
.../api/v1/accounts/follower_accounts_controller_spec.rb | 2 ++
.../api/v1/accounts/following_accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/lists_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/notes_controller_spec.rb | 2 ++
.../api/v1/accounts/relationships_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts/search_controller_spec.rb | 2 ++
spec/controllers/api/v1/accounts_controller_spec.rb | 2 ++
.../controllers/api/v1/admin/account_actions_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/domain_allows_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/admin/reports_controller_spec.rb | 2 ++
spec/controllers/api/v1/apps/credentials_controller_spec.rb | 2 ++
spec/controllers/api/v1/apps_controller_spec.rb | 2 ++
spec/controllers/api/v1/blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/bookmarks_controller_spec.rb | 2 ++
spec/controllers/api/v1/conversations_controller_spec.rb | 2 ++
spec/controllers/api/v1/domain_blocks_controller_spec.rb | 2 ++
spec/controllers/api/v1/emails/confirmations_controller_spec.rb | 2 ++
spec/controllers/api/v1/favourites_controller_spec.rb | 2 ++
spec/controllers/api/v1/filters_controller_spec.rb | 2 ++
spec/controllers/api/v1/follow_requests_controller_spec.rb | 2 ++
spec/controllers/api/v1/followed_tags_controller_spec.rb | 2 ++
spec/controllers/api/v1/lists/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/lists_controller_spec.rb | 2 ++
spec/controllers/api/v1/markers_controller_spec.rb | 2 ++
spec/controllers/api/v1/media_controller_spec.rb | 2 ++
spec/controllers/api/v1/mutes_controller_spec.rb | 2 ++
spec/controllers/api/v1/notifications_controller_spec.rb | 2 ++
spec/controllers/api/v1/polls/votes_controller_spec.rb | 2 ++
spec/controllers/api/v1/polls_controller_spec.rb | 2 ++
.../api/v1/statuses/favourited_by_accounts_controller_spec.rb | 2 ++
.../api/v1/statuses/reblogged_by_accounts_controller_spec.rb | 2 ++
spec/controllers/api/v1/statuses_controller_spec.rb | 2 ++
spec/controllers/api/v1/suggestions_controller_spec.rb | 2 ++
spec/controllers/api/v1/tags_controller_spec.rb | 2 ++
spec/controllers/api/v2/admin/accounts_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters/keywords_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters/statuses_controller_spec.rb | 2 ++
spec/controllers/api/v2/filters_controller_spec.rb | 2 ++
spec/controllers/auth/registrations_controller_spec.rb | 2 ++
spec/controllers/disputes/appeals_controller_spec.rb | 2 ++
spec/controllers/disputes/strikes_controller_spec.rb | 2 ++
spec/controllers/emojis_controller_spec.rb | 2 ++
spec/controllers/follower_accounts_controller_spec.rb | 2 ++
spec/controllers/following_accounts_controller_spec.rb | 2 ++
spec/controllers/home_controller_spec.rb | 2 ++
spec/controllers/instance_actors_controller_spec.rb | 2 ++
spec/controllers/intents_controller_spec.rb | 2 ++
spec/controllers/invites_controller_spec.rb | 2 ++
spec/controllers/manifests_controller_spec.rb | 2 ++
spec/controllers/relationships_controller_spec.rb | 2 ++
spec/controllers/settings/applications_controller_spec.rb | 2 ++
spec/controllers/settings/deletes_controller_spec.rb | 2 ++
.../settings/exports/blocked_accounts_controller_spec.rb | 2 ++
spec/controllers/settings/exports/bookmarks_controller_spec.rb | 2 ++
.../settings/exports/following_accounts_controller_spec.rb | 2 ++
.../settings/exports/muted_accounts_controller_spec.rb | 2 ++
spec/controllers/settings/featured_tags_controller_spec.rb | 2 ++
spec/controllers/settings/imports_controller_spec.rb | 2 ++
spec/controllers/settings/migrations_controller_spec.rb | 2 ++
.../settings/preferences/notifications_controller_spec.rb | 2 ++
spec/controllers/settings/preferences/other_controller_spec.rb | 2 ++
spec/controllers/settings/profiles_controller_spec.rb | 2 ++
spec/controllers/settings/sessions_controller_spec.rb | 2 ++
spec/controllers/shares_controller_spec.rb | 2 ++
spec/controllers/statuses_cleanup_controller_spec.rb | 2 ++
spec/controllers/tags_controller_spec.rb | 2 ++
spec/controllers/well_known/host_meta_controller_spec.rb | 2 ++
spec/controllers/well_known/nodeinfo_controller_spec.rb | 2 ++
spec/controllers/well_known/webfinger_controller_spec.rb | 2 ++
spec/fabricators/access_grant_fabricator.rb | 2 ++
spec/fabricators/access_token_fabricator.rb | 2 ++
spec/fabricators/accessible_access_token_fabricator.rb | 2 ++
spec/fabricators/account_alias_fabricator.rb | 2 ++
spec/fabricators/account_deletion_request_fabricator.rb | 2 ++
spec/fabricators/account_domain_block_fabricator.rb | 2 ++
spec/fabricators/account_fabricator.rb | 2 ++
spec/fabricators/account_migration_fabricator.rb | 2 ++
spec/fabricators/account_moderation_note_fabricator.rb | 2 ++
spec/fabricators/account_note_fabricator.rb | 2 ++
spec/fabricators/account_pin_fabricator.rb | 2 ++
spec/fabricators/account_stat_fabricator.rb | 2 ++
spec/fabricators/account_statuses_cleanup_policy_fabricator.rb | 2 ++
spec/fabricators/account_tag_stat_fabricator.rb | 2 ++
spec/fabricators/account_warning_fabricator.rb | 2 ++
spec/fabricators/account_warning_preset_fabricator.rb | 2 ++
spec/fabricators/admin_action_log_fabricator.rb | 2 ++
spec/fabricators/announcement_fabricator.rb | 2 ++
spec/fabricators/announcement_mute_fabricator.rb | 2 ++
spec/fabricators/announcement_reaction_fabricator.rb | 2 ++
spec/fabricators/appeal_fabricator.rb | 2 ++
spec/fabricators/application_fabricator.rb | 2 ++
spec/fabricators/backup_fabricator.rb | 2 ++
spec/fabricators/block_fabricator.rb | 2 ++
spec/fabricators/bookmark_fabricator.rb | 2 ++
spec/fabricators/canonical_email_block_fabricator.rb | 2 ++
spec/fabricators/conversation_account_fabricator.rb | 2 ++
spec/fabricators/conversation_fabricator.rb | 2 ++
spec/fabricators/conversation_mute_fabricator.rb | 2 ++
spec/fabricators/custom_emoji_category_fabricator.rb | 2 ++
spec/fabricators/custom_emoji_fabricator.rb | 2 ++
spec/fabricators/custom_filter_fabricator.rb | 2 ++
spec/fabricators/custom_filter_keyword_fabricator.rb | 2 ++
spec/fabricators/custom_filter_status_fabricator.rb | 2 ++
spec/fabricators/device_fabricator.rb | 2 ++
spec/fabricators/domain_allow_fabricator.rb | 2 ++
spec/fabricators/domain_block_fabricator.rb | 2 ++
spec/fabricators/email_domain_block_fabricator.rb | 2 ++
spec/fabricators/encrypted_message_fabricator.rb | 2 ++
spec/fabricators/favourite_fabricator.rb | 2 ++
spec/fabricators/featured_tag_fabricator.rb | 2 ++
spec/fabricators/follow_fabricator.rb | 2 ++
.../fabricators/follow_recommendation_suppression_fabricator.rb | 2 ++
spec/fabricators/follow_request_fabricator.rb | 2 ++
spec/fabricators/identity_fabricator.rb | 2 ++
spec/fabricators/import_fabricator.rb | 2 ++
spec/fabricators/invite_fabricator.rb | 2 ++
spec/fabricators/ip_block_fabricator.rb | 2 ++
spec/fabricators/list_account_fabricator.rb | 2 ++
spec/fabricators/list_fabricator.rb | 2 ++
spec/fabricators/login_activity_fabricator.rb | 2 ++
spec/fabricators/marker_fabricator.rb | 2 ++
spec/fabricators/media_attachment_fabricator.rb | 2 ++
spec/fabricators/mention_fabricator.rb | 2 ++
spec/fabricators/mute_fabricator.rb | 2 ++
spec/fabricators/notification_fabricator.rb | 2 ++
spec/fabricators/one_time_key_fabricator.rb | 2 ++
spec/fabricators/poll_fabricator.rb | 2 ++
spec/fabricators/poll_vote_fabricator.rb | 2 ++
spec/fabricators/preview_card_fabricator.rb | 2 ++
spec/fabricators/relay_fabricator.rb | 2 ++
spec/fabricators/report_fabricator.rb | 2 ++
spec/fabricators/report_note_fabricator.rb | 2 ++
spec/fabricators/rule_fabricator.rb | 2 ++
spec/fabricators/scheduled_status_fabricator.rb | 2 ++
spec/fabricators/session_activation_fabricator.rb | 2 ++
spec/fabricators/site_upload_fabricator.rb | 2 ++
spec/fabricators/status_edit_fabricator.rb | 2 ++
spec/fabricators/status_fabricator.rb | 2 ++
spec/fabricators/status_pin_fabricator.rb | 2 ++
spec/fabricators/status_stat_fabricator.rb | 2 ++
spec/fabricators/system_key_fabricator.rb | 2 ++
spec/fabricators/tag_fabricator.rb | 2 ++
spec/fabricators/tag_follow_fabricator.rb | 2 ++
spec/fabricators/unavailable_domain_fabricator.rb | 2 ++
spec/fabricators/user_fabricator.rb | 2 ++
spec/fabricators/user_invite_request_fabricator.rb | 2 ++
spec/fabricators/user_role_fabricator.rb | 2 ++
spec/fabricators/web_push_subscription_fabricator.rb | 2 ++
spec/fabricators/web_setting_fabricator.rb | 2 ++
spec/fabricators/webauthn_credential_fabricator.rb | 2 ++
spec/fabricators/webhook_fabricator.rb | 2 ++
spec/helpers/accounts_helper_spec.rb | 2 ++
spec/helpers/admin/filter_helper_spec.rb | 2 ++
spec/helpers/application_helper_spec.rb | 2 ++
spec/helpers/home_helper_spec.rb | 2 ++
spec/helpers/statuses_helper_spec.rb | 2 ++
spec/lib/activitypub/activity/accept_spec.rb | 2 ++
spec/lib/activitypub/activity/add_spec.rb | 2 ++
spec/lib/activitypub/activity/announce_spec.rb | 2 ++
spec/lib/activitypub/activity/block_spec.rb | 2 ++
spec/lib/activitypub/activity/create_spec.rb | 2 ++
spec/lib/activitypub/activity/delete_spec.rb | 2 ++
spec/lib/activitypub/activity/flag_spec.rb | 2 ++
spec/lib/activitypub/activity/follow_spec.rb | 2 ++
spec/lib/activitypub/activity/like_spec.rb | 2 ++
spec/lib/activitypub/activity/move_spec.rb | 2 ++
spec/lib/activitypub/activity/reject_spec.rb | 2 ++
spec/lib/activitypub/activity/remove_spec.rb | 2 ++
spec/lib/activitypub/activity/undo_spec.rb | 2 ++
spec/lib/activitypub/activity/update_spec.rb | 2 ++
spec/lib/activitypub/adapter_spec.rb | 2 ++
spec/lib/activitypub/dereferencer_spec.rb | 2 ++
spec/lib/activitypub/linked_data_signature_spec.rb | 2 ++
spec/lib/activitypub/tag_manager_spec.rb | 2 ++
spec/lib/emoji_formatter_spec.rb | 2 ++
spec/lib/entity_cache_spec.rb | 2 ++
spec/lib/feed_manager_spec.rb | 2 ++
spec/lib/html_aware_formatter_spec.rb | 2 ++
spec/lib/link_details_extractor_spec.rb | 2 ++
spec/lib/plain_text_formatter_spec.rb | 2 ++
spec/lib/suspicious_sign_in_detector_spec.rb | 2 ++
spec/lib/tag_manager_spec.rb | 2 ++
spec/lib/text_formatter_spec.rb | 2 ++
spec/lib/vacuum/access_tokens_vacuum_spec.rb | 2 ++
spec/lib/vacuum/backups_vacuum_spec.rb | 2 ++
spec/lib/vacuum/feeds_vacuum_spec.rb | 2 ++
spec/lib/vacuum/media_attachments_vacuum_spec.rb | 2 ++
spec/lib/vacuum/preview_cards_vacuum_spec.rb | 2 ++
spec/lib/vacuum/statuses_vacuum_spec.rb | 2 ++
spec/lib/vacuum/system_keys_vacuum_spec.rb | 2 ++
spec/lib/webfinger_resource_spec.rb | 2 ++
spec/mailers/notification_mailer_spec.rb | 2 ++
spec/mailers/previews/admin_mailer_preview.rb | 2 ++
spec/mailers/previews/notification_mailer_preview.rb | 2 ++
spec/mailers/previews/user_mailer_preview.rb | 2 ++
spec/models/account/field_spec.rb | 2 ++
spec/models/account_alias_spec.rb | 2 ++
spec/models/account_conversation_spec.rb | 2 ++
spec/models/account_deletion_request_spec.rb | 2 ++
spec/models/account_domain_block_spec.rb | 2 ++
spec/models/account_filter_spec.rb | 2 ++
spec/models/account_migration_spec.rb | 2 ++
spec/models/account_moderation_note_spec.rb | 2 ++
spec/models/account_spec.rb | 2 ++
spec/models/account_statuses_cleanup_policy_spec.rb | 2 ++
spec/models/admin/account_action_spec.rb | 2 ++
spec/models/announcement_mute_spec.rb | 2 ++
spec/models/announcement_reaction_spec.rb | 2 ++
spec/models/announcement_spec.rb | 2 ++
spec/models/appeal_spec.rb | 2 ++
spec/models/backup_spec.rb | 2 ++
spec/models/block_spec.rb | 2 ++
spec/models/canonical_email_block_spec.rb | 2 ++
spec/models/concerns/account_counters_spec.rb | 2 ++
spec/models/concerns/account_interactions_spec.rb | 2 ++
spec/models/conversation_mute_spec.rb | 2 ++
spec/models/conversation_spec.rb | 2 ++
spec/models/custom_emoji_category_spec.rb | 2 ++
spec/models/custom_emoji_spec.rb | 2 ++
spec/models/custom_filter_keyword_spec.rb | 2 ++
spec/models/custom_filter_spec.rb | 2 ++
spec/models/device_spec.rb | 2 ++
spec/models/domain_allow_spec.rb | 2 ++
spec/models/domain_block_spec.rb | 2 ++
spec/models/email_domain_block_spec.rb | 2 ++
spec/models/encrypted_message_spec.rb | 2 ++
spec/models/export_spec.rb | 2 ++
spec/models/favourite_spec.rb | 2 ++
spec/models/featured_tag_spec.rb | 2 ++
spec/models/follow_recommendation_suppression_spec.rb | 2 ++
spec/models/follow_request_spec.rb | 2 ++
spec/models/follow_spec.rb | 2 ++
spec/models/home_feed_spec.rb | 2 ++
spec/models/identity_spec.rb | 2 ++
spec/models/import_spec.rb | 2 ++
spec/models/invite_spec.rb | 2 ++
spec/models/ip_block_spec.rb | 2 ++
spec/models/list_account_spec.rb | 2 ++
spec/models/list_spec.rb | 2 ++
spec/models/login_activity_spec.rb | 2 ++
spec/models/marker_spec.rb | 2 ++
spec/models/media_attachment_spec.rb | 2 ++
spec/models/mention_spec.rb | 2 ++
spec/models/mute_spec.rb | 2 ++
spec/models/notification_spec.rb | 2 ++
spec/models/one_time_key_spec.rb | 2 ++
spec/models/poll_spec.rb | 2 ++
spec/models/preview_card_spec.rb | 2 ++
spec/models/preview_card_trend_spec.rb | 2 ++
spec/models/public_feed_spec.rb | 2 ++
spec/models/relay_spec.rb | 2 ++
spec/models/report_filter_spec.rb | 2 ++
spec/models/report_spec.rb | 2 ++
spec/models/rule_spec.rb | 2 ++
spec/models/scheduled_status_spec.rb | 2 ++
spec/models/status_edit_spec.rb | 2 ++
spec/models/status_pin_spec.rb | 2 ++
spec/models/status_spec.rb | 2 ++
spec/models/status_stat_spec.rb | 2 ++
spec/models/status_trend_spec.rb | 2 ++
spec/models/system_key_spec.rb | 2 ++
spec/models/tag_feed_spec.rb | 2 ++
spec/models/tag_follow_spec.rb | 2 ++
spec/models/trends/statuses_spec.rb | 2 ++
spec/models/trends/tags_spec.rb | 2 ++
spec/models/unavailable_domain_spec.rb | 2 ++
spec/models/user_invite_request_spec.rb | 2 ++
spec/models/user_role_spec.rb | 2 ++
spec/models/user_spec.rb | 2 ++
spec/models/web/push_subscription_spec.rb | 2 ++
spec/models/web/setting_spec.rb | 2 ++
spec/models/webauthn_credentials_spec.rb | 2 ++
spec/models/webhook_spec.rb | 2 ++
spec/presenters/instance_presenter_spec.rb | 2 ++
spec/rails_helper.rb | 2 ++
spec/requests/catch_all_route_request_spec.rb | 2 ++
spec/requests/host_meta_request_spec.rb | 2 ++
spec/requests/webfinger_request_spec.rb | 2 ++
spec/routing/accounts_routing_spec.rb | 2 ++
spec/routing/well_known_routes_spec.rb | 2 ++
spec/services/account_search_service_spec.rb | 2 ++
spec/services/account_statuses_cleanup_service_spec.rb | 2 ++
.../activitypub/fetch_featured_collection_service_spec.rb | 2 ++
.../activitypub/fetch_featured_tags_collection_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_account_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_actor_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_key_service_spec.rb | 2 ++
spec/services/activitypub/fetch_remote_status_service_spec.rb | 2 ++
spec/services/activitypub/fetch_replies_service_spec.rb | 2 ++
spec/services/activitypub/process_account_service_spec.rb | 2 ++
spec/services/activitypub/process_collection_service_spec.rb | 2 ++
spec/services/activitypub/process_status_update_service_spec.rb | 2 ++
spec/services/activitypub/synchronize_followers_service_spec.rb | 2 ++
spec/services/after_block_domain_from_account_service_spec.rb | 2 ++
spec/services/after_block_service_spec.rb | 2 ++
spec/services/app_sign_up_service_spec.rb | 2 ++
spec/services/authorize_follow_service_spec.rb | 2 ++
spec/services/batched_remove_status_service_spec.rb | 2 ++
spec/services/block_domain_service_spec.rb | 2 ++
spec/services/block_service_spec.rb | 2 ++
spec/services/bootstrap_timeline_service_spec.rb | 2 ++
spec/services/clear_domain_media_service_spec.rb | 2 ++
spec/services/delete_account_service_spec.rb | 2 ++
spec/services/fan_out_on_write_service_spec.rb | 2 ++
spec/services/favourite_service_spec.rb | 2 ++
spec/services/fetch_link_card_service_spec.rb | 2 ++
spec/services/fetch_remote_status_service_spec.rb | 2 ++
spec/services/fetch_resource_service_spec.rb | 2 ++
spec/services/follow_service_spec.rb | 2 ++
spec/services/import_service_spec.rb | 2 ++
spec/services/mute_service_spec.rb | 2 ++
spec/services/notify_service_spec.rb | 2 ++
spec/services/post_status_service_spec.rb | 2 ++
spec/services/process_mentions_service_spec.rb | 2 ++
spec/services/purge_domain_service_spec.rb | 2 ++
spec/services/reblog_service_spec.rb | 2 ++
spec/services/reject_follow_service_spec.rb | 2 ++
spec/services/remove_from_follwers_service_spec.rb | 2 ++
spec/services/remove_status_service_spec.rb | 2 ++
spec/services/report_service_spec.rb | 2 ++
spec/services/resolve_account_service_spec.rb | 2 ++
spec/services/suspend_account_service_spec.rb | 2 ++
spec/services/unallow_domain_service_spec.rb | 2 ++
spec/services/unblock_service_spec.rb | 2 ++
spec/services/unfollow_service_spec.rb | 2 ++
spec/services/unmute_service_spec.rb | 2 ++
spec/services/unsuspend_account_service_spec.rb | 2 ++
spec/services/update_account_service_spec.rb | 2 ++
spec/services/update_status_service_spec.rb | 2 ++
spec/services/verify_link_service_spec.rb | 2 ++
spec/spec_helper.rb | 2 ++
spec/support/matchers/json/match_json_schema.rb | 2 ++
spec/support/matchers/model/model_have_error_on_field.rb | 2 ++
spec/workers/activitypub/distribute_poll_update_worker_spec.rb | 2 ++
spec/workers/activitypub/distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/move_distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/processing_worker_spec.rb | 2 ++
.../activitypub/status_update_distribution_worker_spec.rb | 2 ++
spec/workers/activitypub/update_distribution_worker_spec.rb | 2 ++
.../scheduler/accounts_statuses_cleanup_scheduler_spec.rb | 2 ++
spec/workers/scheduler/user_cleanup_scheduler_spec.rb | 2 ++
369 files changed, 738 insertions(+)
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 50d4505b70..2cfe90b1a5 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Rack::Attack do
diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb
index 97143ec437..ccd28a96ce 100644
--- a/spec/controllers/about_controller_spec.rb
+++ b/spec/controllers/about_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AboutController, type: :controller do
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index db588156cb..9c38b30322 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountsController, type: :controller do
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index 6ec756d3cf..8357f5f39b 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controller do
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index 7369ee4134..167bbcc21d 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::OutboxesController, type: :controller do
diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
index b8d6063227..d2c52f5940 100644
--- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb
+++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountModerationNotesController, type: :controller do
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index fdc98ed461..b182715b0b 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index 520842a19f..8329984715 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ChangeEmailsController, type: :controller do
diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb
index 7ca90f3e12..d05711e272 100644
--- a/spec/controllers/admin/confirmations_controller_spec.rb
+++ b/spec/controllers/admin/confirmations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ConfirmationsController, type: :controller do
diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb
index 06cd0c22df..d40691e1bf 100644
--- a/spec/controllers/admin/custom_emojis_controller_spec.rb
+++ b/spec/controllers/admin/custom_emojis_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::CustomEmojisController do
diff --git a/spec/controllers/admin/disputes/appeals_controller_spec.rb b/spec/controllers/admin/disputes/appeals_controller_spec.rb
index 7126577915..576a0c12b9 100644
--- a/spec/controllers/admin/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/admin/disputes/appeals_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::Disputes::AppealsController, type: :controller do
diff --git a/spec/controllers/admin/domain_allows_controller_spec.rb b/spec/controllers/admin/domain_allows_controller_spec.rb
index 6c4e677876..2a0f47145a 100644
--- a/spec/controllers/admin/domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::DomainAllowsController, type: :controller do
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index d58a0cafcd..ef13f76762 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index 1f974bc001..f12bd1344f 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
index a8d7b7383e..4da9f90e45 100644
--- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index 4716e486a2..33174b9921 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::InstancesController, type: :controller do
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index 8a2603611c..fb2fbd0588 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ReportNotesController do
diff --git a/spec/controllers/admin/reports/actions_controller_spec.rb b/spec/controllers/admin/reports/actions_controller_spec.rb
index 20f85680fa..3e42e4cb19 100644
--- a/spec/controllers/admin/reports/actions_controller_spec.rb
+++ b/spec/controllers/admin/reports/actions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::Reports::ActionsController do
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index c6b5770a81..97daaf8da9 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ReportsController do
diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb
index 64fe027fda..16adb8a128 100644
--- a/spec/controllers/admin/resets_controller_spec.rb
+++ b/spec/controllers/admin/resets_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::ResetsController do
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index e2b1030d9a..223d0a472a 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::RolesController do
diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb
index 7f912c1c07..79d83db97d 100644
--- a/spec/controllers/admin/statuses_controller_spec.rb
+++ b/spec/controllers/admin/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::StatusesController do
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb
index 9fa8aef412..fe2cee01b5 100644
--- a/spec/controllers/admin/users/roles_controller.rb
+++ b/spec/controllers/admin/users/roles_controller.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::Users::RolesController do
diff --git a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
index 990dcf6408..eb10d47963 100644
--- a/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
require 'webauthn/fake_client'
diff --git a/spec/controllers/api/oembed_controller_spec.rb b/spec/controllers/api/oembed_controller_spec.rb
index b9082bde1e..930f362505 100644
--- a/spec/controllers/api/oembed_controller_spec.rb
+++ b/spec/controllers/api/oembed_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::OEmbedController, type: :controller do
diff --git a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
index 3494ca6746..57fe0aee68 100644
--- a/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/credentials_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::CredentialsController do
diff --git a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
index 1e6e1d8e0a..53298a2e43 100644
--- a/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::FollowerAccountsController do
diff --git a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
index cc962c6ee3..7390b25b51 100644
--- a/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::FollowingAccountsController do
diff --git a/spec/controllers/api/v1/accounts/lists_controller_spec.rb b/spec/controllers/api/v1/accounts/lists_controller_spec.rb
index d714856335..418839cfa5 100644
--- a/spec/controllers/api/v1/accounts/lists_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/lists_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::ListsController do
diff --git a/spec/controllers/api/v1/accounts/notes_controller_spec.rb b/spec/controllers/api/v1/accounts/notes_controller_spec.rb
index 42c2d8a86f..fd4d34f691 100644
--- a/spec/controllers/api/v1/accounts/notes_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/notes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::NotesController do
diff --git a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
index 69ad0d061a..da8d7fe3f0 100644
--- a/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/relationships_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Accounts::RelationshipsController do
diff --git a/spec/controllers/api/v1/accounts/search_controller_spec.rb b/spec/controllers/api/v1/accounts/search_controller_spec.rb
index 5b23bff681..d2b675a3c8 100644
--- a/spec/controllers/api/v1/accounts/search_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts/search_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Accounts::SearchController, type: :controller do
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index d6bbcefd77..5fbb650213 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
index 462c2cfa99..cafbee212d 100644
--- a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
index a4c509c601..9ffcdb34fb 100644
--- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
index 8100363f6b..15567907e4 100644
--- a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::DomainAllowsController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
index b367ab9ce3..0460c701a4 100644
--- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/admin/reports_controller_spec.rb b/spec/controllers/api/v1/admin/reports_controller_spec.rb
index 880e72030a..3d61fe5c3a 100644
--- a/spec/controllers/api/v1/admin/reports_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/reports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
diff --git a/spec/controllers/api/v1/apps/credentials_controller_spec.rb b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
index 701ba8acb4..350e0c7a02 100644
--- a/spec/controllers/api/v1/apps/credentials_controller_spec.rb
+++ b/spec/controllers/api/v1/apps/credentials_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Apps::CredentialsController do
diff --git a/spec/controllers/api/v1/apps_controller_spec.rb b/spec/controllers/api/v1/apps_controller_spec.rb
index 61158e881f..bde132c52e 100644
--- a/spec/controllers/api/v1/apps_controller_spec.rb
+++ b/spec/controllers/api/v1/apps_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::AppsController, type: :controller do
diff --git a/spec/controllers/api/v1/blocks_controller_spec.rb b/spec/controllers/api/v1/blocks_controller_spec.rb
index cf996c47c9..a746389ca2 100644
--- a/spec/controllers/api/v1/blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::BlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/bookmarks_controller_spec.rb b/spec/controllers/api/v1/bookmarks_controller_spec.rb
index 48332b15a5..352d2ca025 100644
--- a/spec/controllers/api/v1/bookmarks_controller_spec.rb
+++ b/spec/controllers/api/v1/bookmarks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::BookmarksController, type: :controller do
diff --git a/spec/controllers/api/v1/conversations_controller_spec.rb b/spec/controllers/api/v1/conversations_controller_spec.rb
index 5add7cf1d4..36c4cb56f9 100644
--- a/spec/controllers/api/v1/conversations_controller_spec.rb
+++ b/spec/controllers/api/v1/conversations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::ConversationsController, type: :controller do
diff --git a/spec/controllers/api/v1/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/domain_blocks_controller_spec.rb
index d9dc1bdbfe..467ddbccce 100644
--- a/spec/controllers/api/v1/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/domain_blocks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::DomainBlocksController, type: :controller do
diff --git a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
index d272ff38d2..fc9843fef3 100644
--- a/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
+++ b/spec/controllers/api/v1/emails/confirmations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Emails::ConfirmationsController, type: :controller do
diff --git a/spec/controllers/api/v1/favourites_controller_spec.rb b/spec/controllers/api/v1/favourites_controller_spec.rb
index f0fb8f37bd..6ae0fdc492 100644
--- a/spec/controllers/api/v1/favourites_controller_spec.rb
+++ b/spec/controllers/api/v1/favourites_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FavouritesController, type: :controller do
diff --git a/spec/controllers/api/v1/filters_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb
index 8acb46a007..d583365cc1 100644
--- a/spec/controllers/api/v1/filters_controller_spec.rb
+++ b/spec/controllers/api/v1/filters_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FiltersController, type: :controller do
diff --git a/spec/controllers/api/v1/follow_requests_controller_spec.rb b/spec/controllers/api/v1/follow_requests_controller_spec.rb
index 856ba2a1c0..0220e02770 100644
--- a/spec/controllers/api/v1/follow_requests_controller_spec.rb
+++ b/spec/controllers/api/v1/follow_requests_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FollowRequestsController, type: :controller do
diff --git a/spec/controllers/api/v1/followed_tags_controller_spec.rb b/spec/controllers/api/v1/followed_tags_controller_spec.rb
index 2191350ef6..e990065a9d 100644
--- a/spec/controllers/api/v1/followed_tags_controller_spec.rb
+++ b/spec/controllers/api/v1/followed_tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::FollowedTagsController, type: :controller do
diff --git a/spec/controllers/api/v1/lists/accounts_controller_spec.rb b/spec/controllers/api/v1/lists/accounts_controller_spec.rb
index 526d8b5616..337a5645c0 100644
--- a/spec/controllers/api/v1/lists/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/lists/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Api::V1::Lists::AccountsController do
diff --git a/spec/controllers/api/v1/lists_controller_spec.rb b/spec/controllers/api/v1/lists_controller_spec.rb
index 71a8094e68..f54d27e42b 100644
--- a/spec/controllers/api/v1/lists_controller_spec.rb
+++ b/spec/controllers/api/v1/lists_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::ListsController, type: :controller do
diff --git a/spec/controllers/api/v1/markers_controller_spec.rb b/spec/controllers/api/v1/markers_controller_spec.rb
index 64ec18e590..fb5f59a7cf 100644
--- a/spec/controllers/api/v1/markers_controller_spec.rb
+++ b/spec/controllers/api/v1/markers_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MarkersController, type: :controller do
diff --git a/spec/controllers/api/v1/media_controller_spec.rb b/spec/controllers/api/v1/media_controller_spec.rb
index ef1e439f9d..90379dd92d 100644
--- a/spec/controllers/api/v1/media_controller_spec.rb
+++ b/spec/controllers/api/v1/media_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MediaController, type: :controller do
diff --git a/spec/controllers/api/v1/mutes_controller_spec.rb b/spec/controllers/api/v1/mutes_controller_spec.rb
index 8288cb8151..122d9d1c56 100644
--- a/spec/controllers/api/v1/mutes_controller_spec.rb
+++ b/spec/controllers/api/v1/mutes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::MutesController, type: :controller do
diff --git a/spec/controllers/api/v1/notifications_controller_spec.rb b/spec/controllers/api/v1/notifications_controller_spec.rb
index 22ebfa3dda..f6cbd105e3 100644
--- a/spec/controllers/api/v1/notifications_controller_spec.rb
+++ b/spec/controllers/api/v1/notifications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::NotificationsController, type: :controller do
diff --git a/spec/controllers/api/v1/polls/votes_controller_spec.rb b/spec/controllers/api/v1/polls/votes_controller_spec.rb
index d7a9c19704..9d9b14e81c 100644
--- a/spec/controllers/api/v1/polls/votes_controller_spec.rb
+++ b/spec/controllers/api/v1/polls/votes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Polls::VotesController, type: :controller do
diff --git a/spec/controllers/api/v1/polls_controller_spec.rb b/spec/controllers/api/v1/polls_controller_spec.rb
index f0d9eaf92d..0602e44eef 100644
--- a/spec/controllers/api/v1/polls_controller_spec.rb
+++ b/spec/controllers/api/v1/polls_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::PollsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
index c1c6f5f12c..c7e1b73c7e 100644
--- a/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Statuses::FavouritedByAccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
index 90187a5858..1aab502ef4 100644
--- a/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::Statuses::RebloggedByAccountsController, type: :controller do
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index e839c8494f..f011bfd473 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::StatusesController, type: :controller do
diff --git a/spec/controllers/api/v1/suggestions_controller_spec.rb b/spec/controllers/api/v1/suggestions_controller_spec.rb
index 35ba155e74..c99380c58b 100644
--- a/spec/controllers/api/v1/suggestions_controller_spec.rb
+++ b/spec/controllers/api/v1/suggestions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::SuggestionsController, type: :controller do
diff --git a/spec/controllers/api/v1/tags_controller_spec.rb b/spec/controllers/api/v1/tags_controller_spec.rb
index 216faad872..ed17a4fbfb 100644
--- a/spec/controllers/api/v1/tags_controller_spec.rb
+++ b/spec/controllers/api/v1/tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V1::TagsController, type: :controller do
diff --git a/spec/controllers/api/v2/admin/accounts_controller_spec.rb b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
index 1477049a1e..5766fd549e 100644
--- a/spec/controllers/api/v2/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Admin::AccountsController, type: :controller do
diff --git a/spec/controllers/api/v2/filters/keywords_controller_spec.rb b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
index 0e0f52ea86..8c61059c64 100644
--- a/spec/controllers/api/v2/filters/keywords_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/keywords_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Filters::KeywordsController, type: :controller do
diff --git a/spec/controllers/api/v2/filters/statuses_controller_spec.rb b/spec/controllers/api/v2/filters/statuses_controller_spec.rb
index 969b2ea739..330cf45a60 100644
--- a/spec/controllers/api/v2/filters/statuses_controller_spec.rb
+++ b/spec/controllers/api/v2/filters/statuses_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::Filters::StatusesController, type: :controller do
diff --git a/spec/controllers/api/v2/filters_controller_spec.rb b/spec/controllers/api/v2/filters_controller_spec.rb
index cc0070d577..2b5610a4d6 100644
--- a/spec/controllers/api/v2/filters_controller_spec.rb
+++ b/spec/controllers/api/v2/filters_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Api::V2::FiltersController, type: :controller do
diff --git a/spec/controllers/auth/registrations_controller_spec.rb b/spec/controllers/auth/registrations_controller_spec.rb
index f42f685c10..e3a00fa397 100644
--- a/spec/controllers/auth/registrations_controller_spec.rb
+++ b/spec/controllers/auth/registrations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Auth::RegistrationsController, type: :controller do
diff --git a/spec/controllers/disputes/appeals_controller_spec.rb b/spec/controllers/disputes/appeals_controller_spec.rb
index 90f222f494..affe63c59b 100644
--- a/spec/controllers/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/disputes/appeals_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Disputes::AppealsController, type: :controller do
diff --git a/spec/controllers/disputes/strikes_controller_spec.rb b/spec/controllers/disputes/strikes_controller_spec.rb
index e060d37ac4..1d678875c6 100644
--- a/spec/controllers/disputes/strikes_controller_spec.rb
+++ b/spec/controllers/disputes/strikes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Disputes::StrikesController, type: :controller do
diff --git a/spec/controllers/emojis_controller_spec.rb b/spec/controllers/emojis_controller_spec.rb
index 9f66049642..710d23d924 100644
--- a/spec/controllers/emojis_controller_spec.rb
+++ b/spec/controllers/emojis_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe EmojisController do
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index 43fc4203cd..7c53e5b472 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe FollowerAccountsController do
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index b41bf05751..122f72e2d0 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe FollowingAccountsController do
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
index 2409bf42c6..0d3722920c 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/home_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeController, type: :controller do
diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb
index d6b4c793b8..84a07d4970 100644
--- a/spec/controllers/instance_actors_controller_spec.rb
+++ b/spec/controllers/instance_actors_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe InstanceActorsController, type: :controller do
diff --git a/spec/controllers/intents_controller_spec.rb b/spec/controllers/intents_controller_spec.rb
index 394f7d512b..02b46ddc79 100644
--- a/spec/controllers/intents_controller_spec.rb
+++ b/spec/controllers/intents_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe IntentsController, type: :controller do
diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb
index 23b98fb129..408c5e1b53 100644
--- a/spec/controllers/invites_controller_spec.rb
+++ b/spec/controllers/invites_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe InvitesController do
diff --git a/spec/controllers/manifests_controller_spec.rb b/spec/controllers/manifests_controller_spec.rb
index a549adef3f..ecd6957fc2 100644
--- a/spec/controllers/manifests_controller_spec.rb
+++ b/spec/controllers/manifests_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ManifestsController do
diff --git a/spec/controllers/relationships_controller_spec.rb b/spec/controllers/relationships_controller_spec.rb
index 4c4227d663..39f455e038 100644
--- a/spec/controllers/relationships_controller_spec.rb
+++ b/spec/controllers/relationships_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe RelationshipsController do
diff --git a/spec/controllers/settings/applications_controller_spec.rb b/spec/controllers/settings/applications_controller_spec.rb
index a653b87c76..5c6b04a155 100644
--- a/spec/controllers/settings/applications_controller_spec.rb
+++ b/spec/controllers/settings/applications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::ApplicationsController do
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
index a94dc042a5..a7edac6a96 100644
--- a/spec/controllers/settings/deletes_controller_spec.rb
+++ b/spec/controllers/settings/deletes_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::DeletesController do
diff --git a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
index 5ff41b7fcd..459b278d64 100644
--- a/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/blocked_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::BlockedAccountsController do
diff --git a/spec/controllers/settings/exports/bookmarks_controller_spec.rb b/spec/controllers/settings/exports/bookmarks_controller_spec.rb
index a06c02e0c3..9982eff165 100644
--- a/spec/controllers/settings/exports/bookmarks_controller_spec.rb
+++ b/spec/controllers/settings/exports/bookmarks_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::BookmarksController do
diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
index bfe0105556..72b0b94e13 100644
--- a/spec/controllers/settings/exports/following_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::FollowingAccountsController do
diff --git a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
index 642f0a9b8f..b4170cb160 100644
--- a/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/muted_accounts_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Exports::MutedAccountsController do
diff --git a/spec/controllers/settings/featured_tags_controller_spec.rb b/spec/controllers/settings/featured_tags_controller_spec.rb
index fc338672d5..5c61351af3 100644
--- a/spec/controllers/settings/featured_tags_controller_spec.rb
+++ b/spec/controllers/settings/featured_tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::FeaturedTagsController do
diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb
index e50504cc5b..78973df2b3 100644
--- a/spec/controllers/settings/imports_controller_spec.rb
+++ b/spec/controllers/settings/imports_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Settings::ImportsController, type: :controller do
diff --git a/spec/controllers/settings/migrations_controller_spec.rb b/spec/controllers/settings/migrations_controller_spec.rb
index 8159bb21b1..9b12bc40f1 100644
--- a/spec/controllers/settings/migrations_controller_spec.rb
+++ b/spec/controllers/settings/migrations_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::MigrationsController do
diff --git a/spec/controllers/settings/preferences/notifications_controller_spec.rb b/spec/controllers/settings/preferences/notifications_controller_spec.rb
index a821052edf..66fb8c5eb9 100644
--- a/spec/controllers/settings/preferences/notifications_controller_spec.rb
+++ b/spec/controllers/settings/preferences/notifications_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Preferences::NotificationsController do
diff --git a/spec/controllers/settings/preferences/other_controller_spec.rb b/spec/controllers/settings/preferences/other_controller_spec.rb
index ffb37e0bd6..63eeefaf0f 100644
--- a/spec/controllers/settings/preferences/other_controller_spec.rb
+++ b/spec/controllers/settings/preferences/other_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::Preferences::OtherController do
diff --git a/spec/controllers/settings/profiles_controller_spec.rb b/spec/controllers/settings/profiles_controller_spec.rb
index c7a6ad6643..e45596b1af 100644
--- a/spec/controllers/settings/profiles_controller_spec.rb
+++ b/spec/controllers/settings/profiles_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Settings::ProfilesController, type: :controller do
diff --git a/spec/controllers/settings/sessions_controller_spec.rb b/spec/controllers/settings/sessions_controller_spec.rb
index fdf46d9473..a4248e1bde 100644
--- a/spec/controllers/settings/sessions_controller_spec.rb
+++ b/spec/controllers/settings/sessions_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Settings::SessionsController do
diff --git a/spec/controllers/shares_controller_spec.rb b/spec/controllers/shares_controller_spec.rb
index 0fde8c6927..6d5bb4f8d8 100644
--- a/spec/controllers/shares_controller_spec.rb
+++ b/spec/controllers/shares_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe SharesController do
diff --git a/spec/controllers/statuses_cleanup_controller_spec.rb b/spec/controllers/statuses_cleanup_controller_spec.rb
index 24b4ea7b60..969778bbfe 100644
--- a/spec/controllers/statuses_cleanup_controller_spec.rb
+++ b/spec/controllers/statuses_cleanup_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusesCleanupController, type: :controller do
diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
index 547bcfb395..8a3fa0bf8c 100644
--- a/spec/controllers/tags_controller_spec.rb
+++ b/spec/controllers/tags_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagsController, type: :controller do
diff --git a/spec/controllers/well_known/host_meta_controller_spec.rb b/spec/controllers/well_known/host_meta_controller_spec.rb
index 654bad4067..d537043708 100644
--- a/spec/controllers/well_known/host_meta_controller_spec.rb
+++ b/spec/controllers/well_known/host_meta_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::HostMetaController, type: :controller do
diff --git a/spec/controllers/well_known/nodeinfo_controller_spec.rb b/spec/controllers/well_known/nodeinfo_controller_spec.rb
index 0cadc54357..f5cde150da 100644
--- a/spec/controllers/well_known/nodeinfo_controller_spec.rb
+++ b/spec/controllers/well_known/nodeinfo_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::NodeInfoController, type: :controller do
diff --git a/spec/controllers/well_known/webfinger_controller_spec.rb b/spec/controllers/well_known/webfinger_controller_spec.rb
index 1ccfb218e8..00103df706 100644
--- a/spec/controllers/well_known/webfinger_controller_spec.rb
+++ b/spec/controllers/well_known/webfinger_controller_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WellKnown::WebfingerController, type: :controller do
diff --git a/spec/fabricators/access_grant_fabricator.rb b/spec/fabricators/access_grant_fabricator.rb
index ae1945f2bb..adc2b8369d 100644
--- a/spec/fabricators/access_grant_fabricator.rb
+++ b/spec/fabricators/access_grant_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator :access_grant, from: 'Doorkeeper::AccessGrant' do
application
resource_owner_id { Fabricate(:user).id }
diff --git a/spec/fabricators/access_token_fabricator.rb b/spec/fabricators/access_token_fabricator.rb
index 1856a8eb3b..508c328085 100644
--- a/spec/fabricators/access_token_fabricator.rb
+++ b/spec/fabricators/access_token_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator :access_token, from: 'Doorkeeper::AccessToken' do
end
diff --git a/spec/fabricators/accessible_access_token_fabricator.rb b/spec/fabricators/accessible_access_token_fabricator.rb
index 4b7e99b207..fb3d0889b1 100644
--- a/spec/fabricators/accessible_access_token_fabricator.rb
+++ b/spec/fabricators/accessible_access_token_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator :accessible_access_token, from: :access_token do
expires_in { nil }
revoked_at { nil }
diff --git a/spec/fabricators/account_alias_fabricator.rb b/spec/fabricators/account_alias_fabricator.rb
index 94dde9bb8c..4f434c078a 100644
--- a/spec/fabricators/account_alias_fabricator.rb
+++ b/spec/fabricators/account_alias_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_alias) do
account
acct 'test@example.com'
diff --git a/spec/fabricators/account_deletion_request_fabricator.rb b/spec/fabricators/account_deletion_request_fabricator.rb
index 08a82ba3c3..3d3d373988 100644
--- a/spec/fabricators/account_deletion_request_fabricator.rb
+++ b/spec/fabricators/account_deletion_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_deletion_request) do
account
end
diff --git a/spec/fabricators/account_domain_block_fabricator.rb b/spec/fabricators/account_domain_block_fabricator.rb
index 2ad4b67a99..ff85e17f3f 100644
--- a/spec/fabricators/account_domain_block_fabricator.rb
+++ b/spec/fabricators/account_domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_domain_block) do
account
domain 'example.com'
diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb
index 205706532e..6ffbba5849 100644
--- a/spec/fabricators/account_fabricator.rb
+++ b/spec/fabricators/account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
keypair = OpenSSL::PKey::RSA.new(2048)
public_key = keypair.public_key.to_pem
private_key = keypair.to_pem
diff --git a/spec/fabricators/account_migration_fabricator.rb b/spec/fabricators/account_migration_fabricator.rb
index 2a8e747a81..fd453f6d2a 100644
--- a/spec/fabricators/account_migration_fabricator.rb
+++ b/spec/fabricators/account_migration_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_migration) do
account
target_account { |attrs| Fabricate(:account, also_known_as: [ActivityPub::TagManager.instance.uri_for(attrs[:account])]) }
diff --git a/spec/fabricators/account_moderation_note_fabricator.rb b/spec/fabricators/account_moderation_note_fabricator.rb
index 343a41fb1a..403870db6d 100644
--- a/spec/fabricators/account_moderation_note_fabricator.rb
+++ b/spec/fabricators/account_moderation_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_moderation_note) do
content 'MyText'
account nil
diff --git a/spec/fabricators/account_note_fabricator.rb b/spec/fabricators/account_note_fabricator.rb
index 285703b38c..bb4ed8b24d 100644
--- a/spec/fabricators/account_note_fabricator.rb
+++ b/spec/fabricators/account_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_note) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/account_pin_fabricator.rb b/spec/fabricators/account_pin_fabricator.rb
index c0f8b8afbb..7d8a77bb54 100644
--- a/spec/fabricators/account_pin_fabricator.rb
+++ b/spec/fabricators/account_pin_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_pin) do
account nil
target_account nil
diff --git a/spec/fabricators/account_stat_fabricator.rb b/spec/fabricators/account_stat_fabricator.rb
index b1b47ffef4..45b1524ef3 100644
--- a/spec/fabricators/account_stat_fabricator.rb
+++ b/spec/fabricators/account_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_stat) do
account nil
statuses_count ''
diff --git a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
index 29cf1d1339..0e756ddbaa 100644
--- a/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
+++ b/spec/fabricators/account_statuses_cleanup_policy_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_statuses_cleanup_policy) do
account
end
diff --git a/spec/fabricators/account_tag_stat_fabricator.rb b/spec/fabricators/account_tag_stat_fabricator.rb
index 7a4de07f62..769015bd02 100644
--- a/spec/fabricators/account_tag_stat_fabricator.rb
+++ b/spec/fabricators/account_tag_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_tag_stat) do
accounts_count ''
end
diff --git a/spec/fabricators/account_warning_fabricator.rb b/spec/fabricators/account_warning_fabricator.rb
index 72fe835d9a..e5059e37f5 100644
--- a/spec/fabricators/account_warning_fabricator.rb
+++ b/spec/fabricators/account_warning_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_warning) do
account
target_account(fabricator: :account)
diff --git a/spec/fabricators/account_warning_preset_fabricator.rb b/spec/fabricators/account_warning_preset_fabricator.rb
index 7e7c03cb81..7588e7f9cf 100644
--- a/spec/fabricators/account_warning_preset_fabricator.rb
+++ b/spec/fabricators/account_warning_preset_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:account_warning_preset) do
text 'MyText'
end
diff --git a/spec/fabricators/admin_action_log_fabricator.rb b/spec/fabricators/admin_action_log_fabricator.rb
index 474bef1bce..eb738c01c0 100644
--- a/spec/fabricators/admin_action_log_fabricator.rb
+++ b/spec/fabricators/admin_action_log_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator('Admin::ActionLog') do
account nil
action 'MyString'
diff --git a/spec/fabricators/announcement_fabricator.rb b/spec/fabricators/announcement_fabricator.rb
index 5a3871d901..5d77365875 100644
--- a/spec/fabricators/announcement_fabricator.rb
+++ b/spec/fabricators/announcement_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement) do
text { Faker::Lorem.paragraph(sentence_count: 2) }
published true
diff --git a/spec/fabricators/announcement_mute_fabricator.rb b/spec/fabricators/announcement_mute_fabricator.rb
index c4eafe8f4c..109fec0412 100644
--- a/spec/fabricators/announcement_mute_fabricator.rb
+++ b/spec/fabricators/announcement_mute_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement_mute) do
account
announcement
diff --git a/spec/fabricators/announcement_reaction_fabricator.rb b/spec/fabricators/announcement_reaction_fabricator.rb
index f923c59c60..5da51caaa3 100644
--- a/spec/fabricators/announcement_reaction_fabricator.rb
+++ b/spec/fabricators/announcement_reaction_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:announcement_reaction) do
account
announcement
diff --git a/spec/fabricators/appeal_fabricator.rb b/spec/fabricators/appeal_fabricator.rb
index 339363822d..039086c4e5 100644
--- a/spec/fabricators/appeal_fabricator.rb
+++ b/spec/fabricators/appeal_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:appeal) do
strike(fabricator: :account_warning)
account { |attrs| attrs[:strike].target_account }
diff --git a/spec/fabricators/application_fabricator.rb b/spec/fabricators/application_fabricator.rb
index 42b7009dc2..272821304c 100644
--- a/spec/fabricators/application_fabricator.rb
+++ b/spec/fabricators/application_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:application, from: Doorkeeper::Application) do
name 'Example'
website 'http://example.com'
diff --git a/spec/fabricators/backup_fabricator.rb b/spec/fabricators/backup_fabricator.rb
index 99a5bdcda1..c73ae54bed 100644
--- a/spec/fabricators/backup_fabricator.rb
+++ b/spec/fabricators/backup_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:backup) do
user
end
diff --git a/spec/fabricators/block_fabricator.rb b/spec/fabricators/block_fabricator.rb
index 379931ba65..c2e9e9628d 100644
--- a/spec/fabricators/block_fabricator.rb
+++ b/spec/fabricators/block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:block) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/bookmark_fabricator.rb b/spec/fabricators/bookmark_fabricator.rb
index 12cbc5bfa4..e21046fc25 100644
--- a/spec/fabricators/bookmark_fabricator.rb
+++ b/spec/fabricators/bookmark_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:bookmark) do
account
status
diff --git a/spec/fabricators/canonical_email_block_fabricator.rb b/spec/fabricators/canonical_email_block_fabricator.rb
index 61afde3de2..21d7c24023 100644
--- a/spec/fabricators/canonical_email_block_fabricator.rb
+++ b/spec/fabricators/canonical_email_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:canonical_email_block) do
email 'test@example.com'
reference_account { Fabricate(:account) }
diff --git a/spec/fabricators/conversation_account_fabricator.rb b/spec/fabricators/conversation_account_fabricator.rb
index 0fe7a494ef..f69d36855e 100644
--- a/spec/fabricators/conversation_account_fabricator.rb
+++ b/spec/fabricators/conversation_account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:conversation_account) do
account nil
conversation nil
diff --git a/spec/fabricators/conversation_fabricator.rb b/spec/fabricators/conversation_fabricator.rb
index b4fadb46b8..07c6780bf9 100644
--- a/spec/fabricators/conversation_fabricator.rb
+++ b/spec/fabricators/conversation_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:conversation) do
end
diff --git a/spec/fabricators/conversation_mute_fabricator.rb b/spec/fabricators/conversation_mute_fabricator.rb
index 84f131c261..5cf4dd3d59 100644
--- a/spec/fabricators/conversation_mute_fabricator.rb
+++ b/spec/fabricators/conversation_mute_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:conversation_mute) do
end
diff --git a/spec/fabricators/custom_emoji_category_fabricator.rb b/spec/fabricators/custom_emoji_category_fabricator.rb
index 119c343cf0..6019baba21 100644
--- a/spec/fabricators/custom_emoji_category_fabricator.rb
+++ b/spec/fabricators/custom_emoji_category_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_emoji_category) do
name 'MyString'
end
diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb
index 18a7d23dc4..298a50b4bf 100644
--- a/spec/fabricators/custom_emoji_fabricator.rb
+++ b/spec/fabricators/custom_emoji_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_emoji) do
shortcode 'coolcat'
domain nil
diff --git a/spec/fabricators/custom_filter_fabricator.rb b/spec/fabricators/custom_filter_fabricator.rb
index 64297a7e30..5fee4f01af 100644
--- a/spec/fabricators/custom_filter_fabricator.rb
+++ b/spec/fabricators/custom_filter_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter) do
account
expires_at nil
diff --git a/spec/fabricators/custom_filter_keyword_fabricator.rb b/spec/fabricators/custom_filter_keyword_fabricator.rb
index 201566cbe3..f1fb440dc5 100644
--- a/spec/fabricators/custom_filter_keyword_fabricator.rb
+++ b/spec/fabricators/custom_filter_keyword_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter_keyword) do
custom_filter
keyword 'discourse'
diff --git a/spec/fabricators/custom_filter_status_fabricator.rb b/spec/fabricators/custom_filter_status_fabricator.rb
index d082b81c5e..3ef1d0ec83 100644
--- a/spec/fabricators/custom_filter_status_fabricator.rb
+++ b/spec/fabricators/custom_filter_status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:custom_filter_status) do
custom_filter
status
diff --git a/spec/fabricators/device_fabricator.rb b/spec/fabricators/device_fabricator.rb
index b15d8248fb..26c71b4fdd 100644
--- a/spec/fabricators/device_fabricator.rb
+++ b/spec/fabricators/device_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:device) do
access_token
account
diff --git a/spec/fabricators/domain_allow_fabricator.rb b/spec/fabricators/domain_allow_fabricator.rb
index 6f62ce3b8c..b32af129bc 100644
--- a/spec/fabricators/domain_allow_fabricator.rb
+++ b/spec/fabricators/domain_allow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:domain_allow) do
domain 'MyString'
end
diff --git a/spec/fabricators/domain_block_fabricator.rb b/spec/fabricators/domain_block_fabricator.rb
index cc1f928e58..c703a18e92 100644
--- a/spec/fabricators/domain_block_fabricator.rb
+++ b/spec/fabricators/domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:domain_block) do
domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } }
end
diff --git a/spec/fabricators/email_domain_block_fabricator.rb b/spec/fabricators/email_domain_block_fabricator.rb
index d18af6433c..a74cca73dd 100644
--- a/spec/fabricators/email_domain_block_fabricator.rb
+++ b/spec/fabricators/email_domain_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:email_domain_block) do
domain { sequence(:domain) { |i| "#{i}#{Faker::Internet.domain_name}" } }
end
diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb
index 4de0d7add2..2898827549 100644
--- a/spec/fabricators/encrypted_message_fabricator.rb
+++ b/spec/fabricators/encrypted_message_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:encrypted_message) do
device
from_account
diff --git a/spec/fabricators/favourite_fabricator.rb b/spec/fabricators/favourite_fabricator.rb
index 464ac8d71a..005947e6f8 100644
--- a/spec/fabricators/favourite_fabricator.rb
+++ b/spec/fabricators/favourite_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:favourite) do
account
status
diff --git a/spec/fabricators/featured_tag_fabricator.rb b/spec/fabricators/featured_tag_fabricator.rb
index 25cbdaac0b..4bfa3e924e 100644
--- a/spec/fabricators/featured_tag_fabricator.rb
+++ b/spec/fabricators/featured_tag_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:featured_tag) do
account
tag
diff --git a/spec/fabricators/follow_fabricator.rb b/spec/fabricators/follow_fabricator.rb
index 9b25dc547b..41b5305d55 100644
--- a/spec/fabricators/follow_fabricator.rb
+++ b/spec/fabricators/follow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/follow_recommendation_suppression_fabricator.rb b/spec/fabricators/follow_recommendation_suppression_fabricator.rb
index 4a6a07a66c..6477baee11 100644
--- a/spec/fabricators/follow_recommendation_suppression_fabricator.rb
+++ b/spec/fabricators/follow_recommendation_suppression_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow_recommendation_suppression) do
account
end
diff --git a/spec/fabricators/follow_request_fabricator.rb b/spec/fabricators/follow_request_fabricator.rb
index c00ddf84d9..86b82611f7 100644
--- a/spec/fabricators/follow_request_fabricator.rb
+++ b/spec/fabricators/follow_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:follow_request) do
account
target_account { Fabricate(:account, locked: true) }
diff --git a/spec/fabricators/identity_fabricator.rb b/spec/fabricators/identity_fabricator.rb
index fcfb15518f..b830101117 100644
--- a/spec/fabricators/identity_fabricator.rb
+++ b/spec/fabricators/identity_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:identity) do
user nil
provider 'MyString'
diff --git a/spec/fabricators/import_fabricator.rb b/spec/fabricators/import_fabricator.rb
index e2eb1e0dfb..11602f407f 100644
--- a/spec/fabricators/import_fabricator.rb
+++ b/spec/fabricators/import_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:import) do
end
diff --git a/spec/fabricators/invite_fabricator.rb b/spec/fabricators/invite_fabricator.rb
index 62b9b3904a..4f47d6ce2f 100644
--- a/spec/fabricators/invite_fabricator.rb
+++ b/spec/fabricators/invite_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:invite) do
user
expires_at nil
diff --git a/spec/fabricators/ip_block_fabricator.rb b/spec/fabricators/ip_block_fabricator.rb
index 5bd018f9c2..a5da3f7065 100644
--- a/spec/fabricators/ip_block_fabricator.rb
+++ b/spec/fabricators/ip_block_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:ip_block) do
ip ''
severity ''
diff --git a/spec/fabricators/list_account_fabricator.rb b/spec/fabricators/list_account_fabricator.rb
index 30e4004aa5..b0af29e6fa 100644
--- a/spec/fabricators/list_account_fabricator.rb
+++ b/spec/fabricators/list_account_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:list_account) do
list nil
account nil
diff --git a/spec/fabricators/list_fabricator.rb b/spec/fabricators/list_fabricator.rb
index 4ad29a386e..47af752b8c 100644
--- a/spec/fabricators/list_fabricator.rb
+++ b/spec/fabricators/list_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:list) do
account
title 'MyString'
diff --git a/spec/fabricators/login_activity_fabricator.rb b/spec/fabricators/login_activity_fabricator.rb
index 686fd6483d..2b30658ff5 100644
--- a/spec/fabricators/login_activity_fabricator.rb
+++ b/spec/fabricators/login_activity_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:login_activity) do
user
authentication_method 'password'
diff --git a/spec/fabricators/marker_fabricator.rb b/spec/fabricators/marker_fabricator.rb
index 0c94150e0d..561c2553ae 100644
--- a/spec/fabricators/marker_fabricator.rb
+++ b/spec/fabricators/marker_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:marker) do
user
timeline 'home'
diff --git a/spec/fabricators/media_attachment_fabricator.rb b/spec/fabricators/media_attachment_fabricator.rb
index 651927c2dd..4a081dccbe 100644
--- a/spec/fabricators/media_attachment_fabricator.rb
+++ b/spec/fabricators/media_attachment_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:media_attachment) do
account
diff --git a/spec/fabricators/mention_fabricator.rb b/spec/fabricators/mention_fabricator.rb
index cb5fe4299a..5a83928275 100644
--- a/spec/fabricators/mention_fabricator.rb
+++ b/spec/fabricators/mention_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:mention) do
account
status
diff --git a/spec/fabricators/mute_fabricator.rb b/spec/fabricators/mute_fabricator.rb
index 30d20e87e9..242ae2b08e 100644
--- a/spec/fabricators/mute_fabricator.rb
+++ b/spec/fabricators/mute_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:mute) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/notification_fabricator.rb b/spec/fabricators/notification_fabricator.rb
index 638844e0fc..959fda913b 100644
--- a/spec/fabricators/notification_fabricator.rb
+++ b/spec/fabricators/notification_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:notification) do
activity fabricator: [:mention, :status, :follow, :follow_request, :favourite].sample
account
diff --git a/spec/fabricators/one_time_key_fabricator.rb b/spec/fabricators/one_time_key_fabricator.rb
index 8794baeb59..e317c28bd1 100644
--- a/spec/fabricators/one_time_key_fabricator.rb
+++ b/spec/fabricators/one_time_key_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:one_time_key) do
device
key_id { Faker::Alphanumeric.alphanumeric(number: 10) }
diff --git a/spec/fabricators/poll_fabricator.rb b/spec/fabricators/poll_fabricator.rb
index 746610f7c6..19c3b1d164 100644
--- a/spec/fabricators/poll_fabricator.rb
+++ b/spec/fabricators/poll_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:poll) do
account
status
diff --git a/spec/fabricators/poll_vote_fabricator.rb b/spec/fabricators/poll_vote_fabricator.rb
index c06e61f673..9099ae96fe 100644
--- a/spec/fabricators/poll_vote_fabricator.rb
+++ b/spec/fabricators/poll_vote_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:poll_vote) do
account
poll
diff --git a/spec/fabricators/preview_card_fabricator.rb b/spec/fabricators/preview_card_fabricator.rb
index 99b5edc435..b8f2c50972 100644
--- a/spec/fabricators/preview_card_fabricator.rb
+++ b/spec/fabricators/preview_card_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:preview_card) do
url { Faker::Internet.url }
title { Faker::Lorem.sentence }
diff --git a/spec/fabricators/relay_fabricator.rb b/spec/fabricators/relay_fabricator.rb
index d6255866cf..ad8ba86fcf 100644
--- a/spec/fabricators/relay_fabricator.rb
+++ b/spec/fabricators/relay_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:relay) do
inbox_url 'https://example.com/inbox'
state :idle
diff --git a/spec/fabricators/report_fabricator.rb b/spec/fabricators/report_fabricator.rb
index 3011c49c6f..7124773ad0 100644
--- a/spec/fabricators/report_fabricator.rb
+++ b/spec/fabricators/report_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:report) do
account
target_account { Fabricate(:account) }
diff --git a/spec/fabricators/report_note_fabricator.rb b/spec/fabricators/report_note_fabricator.rb
index 33f3840746..f257fe2b7d 100644
--- a/spec/fabricators/report_note_fabricator.rb
+++ b/spec/fabricators/report_note_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:report_note) do
report
account { Fabricate(:account) }
diff --git a/spec/fabricators/rule_fabricator.rb b/spec/fabricators/rule_fabricator.rb
index bc29bc48e1..a29fd905a4 100644
--- a/spec/fabricators/rule_fabricator.rb
+++ b/spec/fabricators/rule_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:rule) do
priority 0
deleted_at nil
diff --git a/spec/fabricators/scheduled_status_fabricator.rb b/spec/fabricators/scheduled_status_fabricator.rb
index 52384d1378..e517f258a2 100644
--- a/spec/fabricators/scheduled_status_fabricator.rb
+++ b/spec/fabricators/scheduled_status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:scheduled_status) do
account
scheduled_at { 20.hours.from_now }
diff --git a/spec/fabricators/session_activation_fabricator.rb b/spec/fabricators/session_activation_fabricator.rb
index a7fc3b017d..b28d5e41d7 100644
--- a/spec/fabricators/session_activation_fabricator.rb
+++ b/spec/fabricators/session_activation_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:session_activation) do
user
session_id 'MyString'
diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb
index 2efc57e280..b6841dea3c 100644
--- a/spec/fabricators/site_upload_fabricator.rb
+++ b/spec/fabricators/site_upload_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:site_upload) do
file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
end
diff --git a/spec/fabricators/status_edit_fabricator.rb b/spec/fabricators/status_edit_fabricator.rb
index 0e5796b232..33735a4592 100644
--- a/spec/fabricators/status_edit_fabricator.rb
+++ b/spec/fabricators/status_edit_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_edit) do
status nil
account nil
diff --git a/spec/fabricators/status_fabricator.rb b/spec/fabricators/status_fabricator.rb
index 8a0a8aa557..17ac9ccd8a 100644
--- a/spec/fabricators/status_fabricator.rb
+++ b/spec/fabricators/status_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status) do
account
text 'Lorem ipsum dolor sit amet'
diff --git a/spec/fabricators/status_pin_fabricator.rb b/spec/fabricators/status_pin_fabricator.rb
index f1f1c05f38..9ad0ac9de3 100644
--- a/spec/fabricators/status_pin_fabricator.rb
+++ b/spec/fabricators/status_pin_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_pin) do
account
status { |attrs| Fabricate(:status, account: attrs[:account], visibility: :public) }
diff --git a/spec/fabricators/status_stat_fabricator.rb b/spec/fabricators/status_stat_fabricator.rb
index feba9fbcab..8a358c51a9 100644
--- a/spec/fabricators/status_stat_fabricator.rb
+++ b/spec/fabricators/status_stat_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:status_stat) do
status_id nil
replies_count ''
diff --git a/spec/fabricators/system_key_fabricator.rb b/spec/fabricators/system_key_fabricator.rb
index c744bb2867..ef6cec9c40 100644
--- a/spec/fabricators/system_key_fabricator.rb
+++ b/spec/fabricators/system_key_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:system_key) do
end
diff --git a/spec/fabricators/tag_fabricator.rb b/spec/fabricators/tag_fabricator.rb
index 33d57c9281..a7b52e9671 100644
--- a/spec/fabricators/tag_fabricator.rb
+++ b/spec/fabricators/tag_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:tag) do
name { sequence(:hashtag) { |i| "#{Faker::Lorem.word}#{i}" } }
end
diff --git a/spec/fabricators/tag_follow_fabricator.rb b/spec/fabricators/tag_follow_fabricator.rb
index a2cccb07a8..cbe5b09898 100644
--- a/spec/fabricators/tag_follow_fabricator.rb
+++ b/spec/fabricators/tag_follow_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:tag_follow) do
tag
account
diff --git a/spec/fabricators/unavailable_domain_fabricator.rb b/spec/fabricators/unavailable_domain_fabricator.rb
index f661b87c4a..300a9e7a14 100644
--- a/spec/fabricators/unavailable_domain_fabricator.rb
+++ b/spec/fabricators/unavailable_domain_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:unavailable_domain) do
domain { Faker::Internet.domain }
end
diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb
index 93ce07a74d..967347319c 100644
--- a/spec/fabricators/user_fabricator.rb
+++ b/spec/fabricators/user_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user) do
account { Fabricate.build(:account, user: nil) }
email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } }
diff --git a/spec/fabricators/user_invite_request_fabricator.rb b/spec/fabricators/user_invite_request_fabricator.rb
index 5cc6ae56fe..7736263e45 100644
--- a/spec/fabricators/user_invite_request_fabricator.rb
+++ b/spec/fabricators/user_invite_request_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user_invite_request) do
user
text { Faker::Lorem.sentence }
diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb
index 592b4edcaa..d443227605 100644
--- a/spec/fabricators/user_role_fabricator.rb
+++ b/spec/fabricators/user_role_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:user_role) do
name 'MyString'
color ''
diff --git a/spec/fabricators/web_push_subscription_fabricator.rb b/spec/fabricators/web_push_subscription_fabricator.rb
index 97f90675de..baffdbf83e 100644
--- a/spec/fabricators/web_push_subscription_fabricator.rb
+++ b/spec/fabricators/web_push_subscription_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:web_push_subscription, from: Web::PushSubscription) do
endpoint Faker::Internet.url
key_p256dh Faker::Internet.password
diff --git a/spec/fabricators/web_setting_fabricator.rb b/spec/fabricators/web_setting_fabricator.rb
index 369b86bc18..7c9f300798 100644
--- a/spec/fabricators/web_setting_fabricator.rb
+++ b/spec/fabricators/web_setting_fabricator.rb
@@ -1,2 +1,4 @@
+# frozen_string_literal: true
+
Fabricator(:web_setting, from: Web::Setting) do
end
diff --git a/spec/fabricators/webauthn_credential_fabricator.rb b/spec/fabricators/webauthn_credential_fabricator.rb
index ba59ce9677..b578d55f00 100644
--- a/spec/fabricators/webauthn_credential_fabricator.rb
+++ b/spec/fabricators/webauthn_credential_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:webauthn_credential) do
user_id { Fabricate(:user).id }
external_id { Base64.urlsafe_encode64(SecureRandom.random_bytes(16)) }
diff --git a/spec/fabricators/webhook_fabricator.rb b/spec/fabricators/webhook_fabricator.rb
index fa4f17b554..477e715efa 100644
--- a/spec/fabricators/webhook_fabricator.rb
+++ b/spec/fabricators/webhook_fabricator.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
Fabricator(:webhook) do
url { Faker::Internet.url }
secret { SecureRandom.hex }
diff --git a/spec/helpers/accounts_helper_spec.rb b/spec/helpers/accounts_helper_spec.rb
index 1f412a39ff..184b47dec6 100644
--- a/spec/helpers/accounts_helper_spec.rb
+++ b/spec/helpers/accounts_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountsHelper, type: :helper do
diff --git a/spec/helpers/admin/filter_helper_spec.rb b/spec/helpers/admin/filter_helper_spec.rb
index 9d4ea28294..bbf90a9969 100644
--- a/spec/helpers/admin/filter_helper_spec.rb
+++ b/spec/helpers/admin/filter_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Admin::FilterHelper do
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index e0f71afd53..2db2ee288e 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ApplicationHelper do
diff --git a/spec/helpers/home_helper_spec.rb b/spec/helpers/home_helper_spec.rb
index a3dc6f836f..77db327c2d 100644
--- a/spec/helpers/home_helper_spec.rb
+++ b/spec/helpers/home_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeHelper, type: :helper do
diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb
index cba659bfb5..ce2a4680e0 100644
--- a/spec/helpers/statuses_helper_spec.rb
+++ b/spec/helpers/statuses_helper_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusesHelper, type: :helper do
diff --git a/spec/lib/activitypub/activity/accept_spec.rb b/spec/lib/activitypub/activity/accept_spec.rb
index 95a5a8747d..890a07be54 100644
--- a/spec/lib/activitypub/activity/accept_spec.rb
+++ b/spec/lib/activitypub/activity/accept_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Accept do
diff --git a/spec/lib/activitypub/activity/add_spec.rb b/spec/lib/activitypub/activity/add_spec.rb
index a69c3d2b19..9c45e465e4 100644
--- a/spec/lib/activitypub/activity/add_spec.rb
+++ b/spec/lib/activitypub/activity/add_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Add do
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index b3257e881f..394b1d7b93 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Announce do
diff --git a/spec/lib/activitypub/activity/block_spec.rb b/spec/lib/activitypub/activity/block_spec.rb
index 42bdfdc810..6f68984018 100644
--- a/spec/lib/activitypub/activity/block_spec.rb
+++ b/spec/lib/activitypub/activity/block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Block do
diff --git a/spec/lib/activitypub/activity/create_spec.rb b/spec/lib/activitypub/activity/create_spec.rb
index fd49830374..933eff2256 100644
--- a/spec/lib/activitypub/activity/create_spec.rb
+++ b/spec/lib/activitypub/activity/create_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Create do
diff --git a/spec/lib/activitypub/activity/delete_spec.rb b/spec/lib/activitypub/activity/delete_spec.rb
index 40cd0fce95..3a73b3726c 100644
--- a/spec/lib/activitypub/activity/delete_spec.rb
+++ b/spec/lib/activitypub/activity/delete_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Delete do
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index c2a5053567..005e185e6b 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Flag do
diff --git a/spec/lib/activitypub/activity/follow_spec.rb b/spec/lib/activitypub/activity/follow_spec.rb
index fd4ede82b7..eb8b17d615 100644
--- a/spec/lib/activitypub/activity/follow_spec.rb
+++ b/spec/lib/activitypub/activity/follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Follow do
diff --git a/spec/lib/activitypub/activity/like_spec.rb b/spec/lib/activitypub/activity/like_spec.rb
index b69615a9d1..640d61ab36 100644
--- a/spec/lib/activitypub/activity/like_spec.rb
+++ b/spec/lib/activitypub/activity/like_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Like do
diff --git a/spec/lib/activitypub/activity/move_spec.rb b/spec/lib/activitypub/activity/move_spec.rb
index c468fdeffc..8bd23aa7bf 100644
--- a/spec/lib/activitypub/activity/move_spec.rb
+++ b/spec/lib/activitypub/activity/move_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Move do
diff --git a/spec/lib/activitypub/activity/reject_spec.rb b/spec/lib/activitypub/activity/reject_spec.rb
index 7f04db4e61..5e0f09bfe8 100644
--- a/spec/lib/activitypub/activity/reject_spec.rb
+++ b/spec/lib/activitypub/activity/reject_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Reject do
diff --git a/spec/lib/activitypub/activity/remove_spec.rb b/spec/lib/activitypub/activity/remove_spec.rb
index 4209dfde20..fc12aec8c1 100644
--- a/spec/lib/activitypub/activity/remove_spec.rb
+++ b/spec/lib/activitypub/activity/remove_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Remove do
diff --git a/spec/lib/activitypub/activity/undo_spec.rb b/spec/lib/activitypub/activity/undo_spec.rb
index 0bd1f17d35..b4cbc71963 100644
--- a/spec/lib/activitypub/activity/undo_spec.rb
+++ b/spec/lib/activitypub/activity/undo_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Undo do
diff --git a/spec/lib/activitypub/activity/update_spec.rb b/spec/lib/activitypub/activity/update_spec.rb
index d2a1edd7a0..f77279c028 100644
--- a/spec/lib/activitypub/activity/update_spec.rb
+++ b/spec/lib/activitypub/activity/update_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Update do
diff --git a/spec/lib/activitypub/adapter_spec.rb b/spec/lib/activitypub/adapter_spec.rb
index e4c403abb9..b981ea9c68 100644
--- a/spec/lib/activitypub/adapter_spec.rb
+++ b/spec/lib/activitypub/adapter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Adapter do
diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb
index 800473a7ca..11078de866 100644
--- a/spec/lib/activitypub/dereferencer_spec.rb
+++ b/spec/lib/activitypub/dereferencer_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::Dereferencer do
diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb
index ecb1e16db7..619d6df124 100644
--- a/spec/lib/activitypub/linked_data_signature_spec.rb
+++ b/spec/lib/activitypub/linked_data_signature_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::LinkedDataSignature do
diff --git a/spec/lib/activitypub/tag_manager_spec.rb b/spec/lib/activitypub/tag_manager_spec.rb
index 606a1de2e5..596e91e954 100644
--- a/spec/lib/activitypub/tag_manager_spec.rb
+++ b/spec/lib/activitypub/tag_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::TagManager do
diff --git a/spec/lib/emoji_formatter_spec.rb b/spec/lib/emoji_formatter_spec.rb
index c6fe8cf377..b73d5be4b9 100644
--- a/spec/lib/emoji_formatter_spec.rb
+++ b/spec/lib/emoji_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EmojiFormatter do
diff --git a/spec/lib/entity_cache_spec.rb b/spec/lib/entity_cache_spec.rb
index bd622e626f..c750cddf3c 100644
--- a/spec/lib/entity_cache_spec.rb
+++ b/spec/lib/entity_cache_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EntityCache do
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index d54050f8f7..418bdf0898 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FeedManager do
diff --git a/spec/lib/html_aware_formatter_spec.rb b/spec/lib/html_aware_formatter_spec.rb
index 3d3149b8ff..315035957b 100644
--- a/spec/lib/html_aware_formatter_spec.rb
+++ b/spec/lib/html_aware_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HtmlAwareFormatter do
diff --git a/spec/lib/link_details_extractor_spec.rb b/spec/lib/link_details_extractor_spec.rb
index fcc2654744..a46dd743a9 100644
--- a/spec/lib/link_details_extractor_spec.rb
+++ b/spec/lib/link_details_extractor_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe LinkDetailsExtractor do
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index 0e5f39031d..4a0519aaf6 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PlainTextFormatter do
diff --git a/spec/lib/suspicious_sign_in_detector_spec.rb b/spec/lib/suspicious_sign_in_detector_spec.rb
index 05aadfd8fa..c61b1ef1e6 100644
--- a/spec/lib/suspicious_sign_in_detector_spec.rb
+++ b/spec/lib/suspicious_sign_in_detector_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SuspiciousSignInDetector do
diff --git a/spec/lib/tag_manager_spec.rb b/spec/lib/tag_manager_spec.rb
index d2bb24c0f1..8de2905414 100644
--- a/spec/lib/tag_manager_spec.rb
+++ b/spec/lib/tag_manager_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagManager do
diff --git a/spec/lib/text_formatter_spec.rb b/spec/lib/text_formatter_spec.rb
index 04ae4e02c0..3417b450c6 100644
--- a/spec/lib/text_formatter_spec.rb
+++ b/spec/lib/text_formatter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TextFormatter do
diff --git a/spec/lib/vacuum/access_tokens_vacuum_spec.rb b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
index 0244c34492..6b72340655 100644
--- a/spec/lib/vacuum/access_tokens_vacuum_spec.rb
+++ b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::AccessTokensVacuum do
diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb
index c505a3e1ae..867dbe4020 100644
--- a/spec/lib/vacuum/backups_vacuum_spec.rb
+++ b/spec/lib/vacuum/backups_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::BackupsVacuum do
diff --git a/spec/lib/vacuum/feeds_vacuum_spec.rb b/spec/lib/vacuum/feeds_vacuum_spec.rb
index 0aec26740f..ede1e3c360 100644
--- a/spec/lib/vacuum/feeds_vacuum_spec.rb
+++ b/spec/lib/vacuum/feeds_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::FeedsVacuum do
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
index afcb6f878a..3c17ecb000 100644
--- a/spec/lib/vacuum/media_attachments_vacuum_spec.rb
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::MediaAttachmentsVacuum do
diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
index 524f4c9274..c1b7f7e9c5 100644
--- a/spec/lib/vacuum/preview_cards_vacuum_spec.rb
+++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::PreviewCardsVacuum do
diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb
index 9583376b72..d5c0139506 100644
--- a/spec/lib/vacuum/statuses_vacuum_spec.rb
+++ b/spec/lib/vacuum/statuses_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::StatusesVacuum do
diff --git a/spec/lib/vacuum/system_keys_vacuum_spec.rb b/spec/lib/vacuum/system_keys_vacuum_spec.rb
index 565892f025..84cae30411 100644
--- a/spec/lib/vacuum/system_keys_vacuum_spec.rb
+++ b/spec/lib/vacuum/system_keys_vacuum_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Vacuum::SystemKeysVacuum do
diff --git a/spec/lib/webfinger_resource_spec.rb b/spec/lib/webfinger_resource_spec.rb
index ee007da70a..8ec6dd205e 100644
--- a/spec/lib/webfinger_resource_spec.rb
+++ b/spec/lib/webfinger_resource_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe WebfingerResource do
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index 6746871a3d..a6db08d850 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe NotificationMailer, type: :mailer do
diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb
index 0ec9e9882c..9572768cd7 100644
--- a/spec/mailers/previews/admin_mailer_preview.rb
+++ b/spec/mailers/previews/admin_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/admin_mailer
class AdminMailerPreview < ActionMailer::Preview
diff --git a/spec/mailers/previews/notification_mailer_preview.rb b/spec/mailers/previews/notification_mailer_preview.rb
index e31445c365..bc41662a16 100644
--- a/spec/mailers/previews/notification_mailer_preview.rb
+++ b/spec/mailers/previews/notification_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/notification_mailer
class NotificationMailerPreview < ActionMailer::Preview
diff --git a/spec/mailers/previews/user_mailer_preview.rb b/spec/mailers/previews/user_mailer_preview.rb
index 95712e6cf4..098c9cd901 100644
--- a/spec/mailers/previews/user_mailer_preview.rb
+++ b/spec/mailers/previews/user_mailer_preview.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
# Preview all emails at http://localhost:3000/rails/mailers/user_mailer
class UserMailerPreview < ActionMailer::Preview
diff --git a/spec/models/account/field_spec.rb b/spec/models/account/field_spec.rb
index 36e1a8595a..6745fbb261 100644
--- a/spec/models/account/field_spec.rb
+++ b/spec/models/account/field_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Account::Field, type: :model do
diff --git a/spec/models/account_alias_spec.rb b/spec/models/account_alias_spec.rb
index c48b804b27..08c3eaff43 100644
--- a/spec/models/account_alias_spec.rb
+++ b/spec/models/account_alias_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountAlias, type: :model do
diff --git a/spec/models/account_conversation_spec.rb b/spec/models/account_conversation_spec.rb
index 70a76281ef..c4e8918ad2 100644
--- a/spec/models/account_conversation_spec.rb
+++ b/spec/models/account_conversation_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountConversation, type: :model do
diff --git a/spec/models/account_deletion_request_spec.rb b/spec/models/account_deletion_request_spec.rb
index afaecbe228..db332f14cb 100644
--- a/spec/models/account_deletion_request_spec.rb
+++ b/spec/models/account_deletion_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountDeletionRequest, type: :model do
diff --git a/spec/models/account_domain_block_spec.rb b/spec/models/account_domain_block_spec.rb
index a170abcd27..bc46f44ba7 100644
--- a/spec/models/account_domain_block_spec.rb
+++ b/spec/models/account_domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountDomainBlock, type: :model do
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index c2bd8c2202..853d20a0cb 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountFilter do
diff --git a/spec/models/account_migration_spec.rb b/spec/models/account_migration_spec.rb
index 5f66fe8da3..a91ba5dc56 100644
--- a/spec/models/account_migration_spec.rb
+++ b/spec/models/account_migration_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountMigration, type: :model do
diff --git a/spec/models/account_moderation_note_spec.rb b/spec/models/account_moderation_note_spec.rb
index 69bd5500a5..b7f5701e6a 100644
--- a/spec/models/account_moderation_note_spec.rb
+++ b/spec/models/account_moderation_note_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountModerationNote, type: :model do
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index f3ad198777..1e5a80963f 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Account, type: :model do
diff --git a/spec/models/account_statuses_cleanup_policy_spec.rb b/spec/models/account_statuses_cleanup_policy_spec.rb
index d170050fc5..1b7857547b 100644
--- a/spec/models/account_statuses_cleanup_policy_spec.rb
+++ b/spec/models/account_statuses_cleanup_policy_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AccountStatusesCleanupPolicy, type: :model do
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 7248356e53..9f41b7c8e5 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Admin::AccountAction, type: :model do
diff --git a/spec/models/announcement_mute_spec.rb b/spec/models/announcement_mute_spec.rb
index 9d0e4c9037..f4a7a5dc97 100644
--- a/spec/models/announcement_mute_spec.rb
+++ b/spec/models/announcement_mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AnnouncementMute, type: :model do
diff --git a/spec/models/announcement_reaction_spec.rb b/spec/models/announcement_reaction_spec.rb
index f6e1515840..38095b0154 100644
--- a/spec/models/announcement_reaction_spec.rb
+++ b/spec/models/announcement_reaction_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AnnouncementReaction, type: :model do
diff --git a/spec/models/announcement_spec.rb b/spec/models/announcement_spec.rb
index 7f7b647a9e..024fa28880 100644
--- a/spec/models/announcement_spec.rb
+++ b/spec/models/announcement_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Announcement, type: :model do
diff --git a/spec/models/appeal_spec.rb b/spec/models/appeal_spec.rb
index 14062dc4f4..6aa013aba9 100644
--- a/spec/models/appeal_spec.rb
+++ b/spec/models/appeal_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Appeal, type: :model do
diff --git a/spec/models/backup_spec.rb b/spec/models/backup_spec.rb
index 45230986d7..239e7aef7b 100644
--- a/spec/models/backup_spec.rb
+++ b/spec/models/backup_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Backup, type: :model do
diff --git a/spec/models/block_spec.rb b/spec/models/block_spec.rb
index 1fd60c29d2..64c39fce60 100644
--- a/spec/models/block_spec.rb
+++ b/spec/models/block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Block, type: :model do
diff --git a/spec/models/canonical_email_block_spec.rb b/spec/models/canonical_email_block_spec.rb
index 8e0050d65a..2b3fd6d6a7 100644
--- a/spec/models/canonical_email_block_spec.rb
+++ b/spec/models/canonical_email_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CanonicalEmailBlock, type: :model do
diff --git a/spec/models/concerns/account_counters_spec.rb b/spec/models/concerns/account_counters_spec.rb
index 4350496e79..fb02d79f11 100644
--- a/spec/models/concerns/account_counters_spec.rb
+++ b/spec/models/concerns/account_counters_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountCounters do
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index 50ff0b149a..7396af6dfa 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountInteractions do
diff --git a/spec/models/conversation_mute_spec.rb b/spec/models/conversation_mute_spec.rb
index 3fc2915d4f..6439b0ecdf 100644
--- a/spec/models/conversation_mute_spec.rb
+++ b/spec/models/conversation_mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ConversationMute, type: :model do
diff --git a/spec/models/conversation_spec.rb b/spec/models/conversation_spec.rb
index 8b5e4fdaf7..9d58ad0ac6 100644
--- a/spec/models/conversation_spec.rb
+++ b/spec/models/conversation_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Conversation, type: :model do
diff --git a/spec/models/custom_emoji_category_spec.rb b/spec/models/custom_emoji_category_spec.rb
index 160033f4d4..74881b26c2 100644
--- a/spec/models/custom_emoji_category_spec.rb
+++ b/spec/models/custom_emoji_category_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomEmojiCategory, type: :model do
diff --git a/spec/models/custom_emoji_spec.rb b/spec/models/custom_emoji_spec.rb
index f6fcd468bc..ef5f39aca4 100644
--- a/spec/models/custom_emoji_spec.rb
+++ b/spec/models/custom_emoji_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomEmoji, type: :model do
diff --git a/spec/models/custom_filter_keyword_spec.rb b/spec/models/custom_filter_keyword_spec.rb
index e15b9dad50..bbc4b9c2ee 100644
--- a/spec/models/custom_filter_keyword_spec.rb
+++ b/spec/models/custom_filter_keyword_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomFilterKeyword, type: :model do
diff --git a/spec/models/custom_filter_spec.rb b/spec/models/custom_filter_spec.rb
index 3943dd5f1a..d2bc090ab0 100644
--- a/spec/models/custom_filter_spec.rb
+++ b/spec/models/custom_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe CustomFilter, type: :model do
diff --git a/spec/models/device_spec.rb b/spec/models/device_spec.rb
index 307552e913..cb214b9cbc 100644
--- a/spec/models/device_spec.rb
+++ b/spec/models/device_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Device, type: :model do
diff --git a/spec/models/domain_allow_spec.rb b/spec/models/domain_allow_spec.rb
index e65435127d..18cf5fe4c7 100644
--- a/spec/models/domain_allow_spec.rb
+++ b/spec/models/domain_allow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DomainAllow, type: :model do
diff --git a/spec/models/domain_block_spec.rb b/spec/models/domain_block_spec.rb
index d1d57c1677..6a5925b896 100644
--- a/spec/models/domain_block_spec.rb
+++ b/spec/models/domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DomainBlock, type: :model do
diff --git a/spec/models/email_domain_block_spec.rb b/spec/models/email_domain_block_spec.rb
index e23116888c..01a7a0f0ed 100644
--- a/spec/models/email_domain_block_spec.rb
+++ b/spec/models/email_domain_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EmailDomainBlock, type: :model do
diff --git a/spec/models/encrypted_message_spec.rb b/spec/models/encrypted_message_spec.rb
index 64f9c6912a..bf7a406ffd 100644
--- a/spec/models/encrypted_message_spec.rb
+++ b/spec/models/encrypted_message_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe EncryptedMessage, type: :model do
diff --git a/spec/models/export_spec.rb b/spec/models/export_spec.rb
index 5202ae9e17..3fb5fc3a5b 100644
--- a/spec/models/export_spec.rb
+++ b/spec/models/export_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Export do
diff --git a/spec/models/favourite_spec.rb b/spec/models/favourite_spec.rb
index f755590ee5..f7e2812a6c 100644
--- a/spec/models/favourite_spec.rb
+++ b/spec/models/favourite_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Favourite, type: :model do
diff --git a/spec/models/featured_tag_spec.rb b/spec/models/featured_tag_spec.rb
index 07533e0b90..4bf087c828 100644
--- a/spec/models/featured_tag_spec.rb
+++ b/spec/models/featured_tag_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FeaturedTag, type: :model do
diff --git a/spec/models/follow_recommendation_suppression_spec.rb b/spec/models/follow_recommendation_suppression_spec.rb
index 39107a2b04..4c1d8281b2 100644
--- a/spec/models/follow_recommendation_suppression_spec.rb
+++ b/spec/models/follow_recommendation_suppression_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowRecommendationSuppression, type: :model do
diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb
index 901eabc9df..569c160aeb 100644
--- a/spec/models/follow_request_spec.rb
+++ b/spec/models/follow_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowRequest, type: :model do
diff --git a/spec/models/follow_spec.rb b/spec/models/follow_spec.rb
index e723a1ef21..f49d585329 100644
--- a/spec/models/follow_spec.rb
+++ b/spec/models/follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Follow, type: :model do
diff --git a/spec/models/home_feed_spec.rb b/spec/models/home_feed_spec.rb
index 196bef1e49..d7034f3f0b 100644
--- a/spec/models/home_feed_spec.rb
+++ b/spec/models/home_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe HomeFeed, type: :model do
diff --git a/spec/models/identity_spec.rb b/spec/models/identity_spec.rb
index 689c9b797f..6eab5a2e18 100644
--- a/spec/models/identity_spec.rb
+++ b/spec/models/identity_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Identity, type: :model do
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index 4280b3237a..81c75a9641 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Import, type: :model do
diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb
index b0596c5612..dac4b6431b 100644
--- a/spec/models/invite_spec.rb
+++ b/spec/models/invite_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Invite, type: :model do
diff --git a/spec/models/ip_block_spec.rb b/spec/models/ip_block_spec.rb
index 6603c6417a..4c4028576a 100644
--- a/spec/models/ip_block_spec.rb
+++ b/spec/models/ip_block_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe IpBlock, type: :model do
diff --git a/spec/models/list_account_spec.rb b/spec/models/list_account_spec.rb
index a0cf02efe2..8312defaca 100644
--- a/spec/models/list_account_spec.rb
+++ b/spec/models/list_account_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ListAccount, type: :model do
diff --git a/spec/models/list_spec.rb b/spec/models/list_spec.rb
index b780bb1de0..8167f8a7ec 100644
--- a/spec/models/list_spec.rb
+++ b/spec/models/list_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe List, type: :model do
diff --git a/spec/models/login_activity_spec.rb b/spec/models/login_activity_spec.rb
index 12d8c43638..1c3111a20d 100644
--- a/spec/models/login_activity_spec.rb
+++ b/spec/models/login_activity_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe LoginActivity, type: :model do
diff --git a/spec/models/marker_spec.rb b/spec/models/marker_spec.rb
index d716aa75c2..e8561c4c63 100644
--- a/spec/models/marker_spec.rb
+++ b/spec/models/marker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Marker, type: :model do
diff --git a/spec/models/media_attachment_spec.rb b/spec/models/media_attachment_spec.rb
index 097c76f311..63edfc1524 100644
--- a/spec/models/media_attachment_spec.rb
+++ b/spec/models/media_attachment_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe MediaAttachment, type: :model do
diff --git a/spec/models/mention_spec.rb b/spec/models/mention_spec.rb
index dbcf6a32c1..3de2b4a072 100644
--- a/spec/models/mention_spec.rb
+++ b/spec/models/mention_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Mention, type: :model do
diff --git a/spec/models/mute_spec.rb b/spec/models/mute_spec.rb
index 38a87bdf4a..48b5a37ab9 100644
--- a/spec/models/mute_spec.rb
+++ b/spec/models/mute_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Mute, type: :model do
diff --git a/spec/models/notification_spec.rb b/spec/models/notification_spec.rb
index a8fb776390..64527e3d77 100644
--- a/spec/models/notification_spec.rb
+++ b/spec/models/notification_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Notification, type: :model do
diff --git a/spec/models/one_time_key_spec.rb b/spec/models/one_time_key_spec.rb
index 4b231c600c..2a5fe8a9d9 100644
--- a/spec/models/one_time_key_spec.rb
+++ b/spec/models/one_time_key_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe OneTimeKey, type: :model do
diff --git a/spec/models/poll_spec.rb b/spec/models/poll_spec.rb
index 666f8ca683..474399bf68 100644
--- a/spec/models/poll_spec.rb
+++ b/spec/models/poll_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Poll, type: :model do
diff --git a/spec/models/preview_card_spec.rb b/spec/models/preview_card_spec.rb
index 45233d1d4f..1858644c91 100644
--- a/spec/models/preview_card_spec.rb
+++ b/spec/models/preview_card_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PreviewCard, type: :model do
diff --git a/spec/models/preview_card_trend_spec.rb b/spec/models/preview_card_trend_spec.rb
index c7ab6ed146..97ad05e754 100644
--- a/spec/models/preview_card_trend_spec.rb
+++ b/spec/models/preview_card_trend_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PreviewCardTrend, type: :model do
diff --git a/spec/models/public_feed_spec.rb b/spec/models/public_feed_spec.rb
index 59c81dd953..5653aee184 100644
--- a/spec/models/public_feed_spec.rb
+++ b/spec/models/public_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PublicFeed, type: :model do
diff --git a/spec/models/relay_spec.rb b/spec/models/relay_spec.rb
index 12dc0f20f6..86c1762c15 100644
--- a/spec/models/relay_spec.rb
+++ b/spec/models/relay_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Relay, type: :model do
diff --git a/spec/models/report_filter_spec.rb b/spec/models/report_filter_spec.rb
index 099c0731d3..8269c45797 100644
--- a/spec/models/report_filter_spec.rb
+++ b/spec/models/report_filter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ReportFilter do
diff --git a/spec/models/report_spec.rb b/spec/models/report_spec.rb
index 3178512974..d5d40a34f9 100644
--- a/spec/models/report_spec.rb
+++ b/spec/models/report_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Report do
diff --git a/spec/models/rule_spec.rb b/spec/models/rule_spec.rb
index 8666bda713..d5ec13ddf8 100644
--- a/spec/models/rule_spec.rb
+++ b/spec/models/rule_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Rule, type: :model do
diff --git a/spec/models/scheduled_status_spec.rb b/spec/models/scheduled_status_spec.rb
index f8c9d8b81f..294fa9f36c 100644
--- a/spec/models/scheduled_status_spec.rb
+++ b/spec/models/scheduled_status_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ScheduledStatus, type: :model do
diff --git a/spec/models/status_edit_spec.rb b/spec/models/status_edit_spec.rb
index 2ecafef734..0b9fa70873 100644
--- a/spec/models/status_edit_spec.rb
+++ b/spec/models/status_edit_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusEdit, type: :model do
diff --git a/spec/models/status_pin_spec.rb b/spec/models/status_pin_spec.rb
index c18faca782..c4ebf96da9 100644
--- a/spec/models/status_pin_spec.rb
+++ b/spec/models/status_pin_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusPin, type: :model do
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 442f14ddfa..1e58c6d0d1 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Status, type: :model do
diff --git a/spec/models/status_stat_spec.rb b/spec/models/status_stat_spec.rb
index af1a6f288b..749ca097d6 100644
--- a/spec/models/status_stat_spec.rb
+++ b/spec/models/status_stat_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusStat, type: :model do
diff --git a/spec/models/status_trend_spec.rb b/spec/models/status_trend_spec.rb
index 6b82204a60..9678b838a7 100644
--- a/spec/models/status_trend_spec.rb
+++ b/spec/models/status_trend_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe StatusTrend, type: :model do
diff --git a/spec/models/system_key_spec.rb b/spec/models/system_key_spec.rb
index 86f07f964d..a4e8b77844 100644
--- a/spec/models/system_key_spec.rb
+++ b/spec/models/system_key_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SystemKey, type: :model do
diff --git a/spec/models/tag_feed_spec.rb b/spec/models/tag_feed_spec.rb
index 819fe37657..a498bcf46f 100644
--- a/spec/models/tag_feed_spec.rb
+++ b/spec/models/tag_feed_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe TagFeed, type: :service do
diff --git a/spec/models/tag_follow_spec.rb b/spec/models/tag_follow_spec.rb
index 50c04d2e46..88409bb28a 100644
--- a/spec/models/tag_follow_spec.rb
+++ b/spec/models/tag_follow_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe TagFollow, type: :model do
diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb
index 98a8c7264d..29a20a5955 100644
--- a/spec/models/trends/statuses_spec.rb
+++ b/spec/models/trends/statuses_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Trends::Statuses do
diff --git a/spec/models/trends/tags_spec.rb b/spec/models/trends/tags_spec.rb
index f48c735035..a9473e15c4 100644
--- a/spec/models/trends/tags_spec.rb
+++ b/spec/models/trends/tags_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Trends::Tags do
diff --git a/spec/models/unavailable_domain_spec.rb b/spec/models/unavailable_domain_spec.rb
index 3f2621034c..5469ff6939 100644
--- a/spec/models/unavailable_domain_spec.rb
+++ b/spec/models/unavailable_domain_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnavailableDomain, type: :model do
diff --git a/spec/models/user_invite_request_spec.rb b/spec/models/user_invite_request_spec.rb
index 1be38d8a47..95e1284399 100644
--- a/spec/models/user_invite_request_spec.rb
+++ b/spec/models/user_invite_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UserInviteRequest, type: :model do
diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb
index 52a8622f99..97456c1060 100644
--- a/spec/models/user_role_spec.rb
+++ b/spec/models/user_role_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UserRole, type: :model do
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 9dfd6678ac..3e7b59f170 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
require 'devise_two_factor/spec_helpers'
diff --git a/spec/models/web/push_subscription_spec.rb b/spec/models/web/push_subscription_spec.rb
index a5c34f4edc..e925e4c4cd 100644
--- a/spec/models/web/push_subscription_spec.rb
+++ b/spec/models/web/push_subscription_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Web::PushSubscription, type: :model do
diff --git a/spec/models/web/setting_spec.rb b/spec/models/web/setting_spec.rb
index 6657d4030f..b7ff3c8684 100644
--- a/spec/models/web/setting_spec.rb
+++ b/spec/models/web/setting_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Web::Setting, type: :model do
diff --git a/spec/models/webauthn_credentials_spec.rb b/spec/models/webauthn_credentials_spec.rb
index e070a6b60e..1a2a2f9099 100644
--- a/spec/models/webauthn_credentials_spec.rb
+++ b/spec/models/webauthn_credentials_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe WebauthnCredential, type: :model do
diff --git a/spec/models/webhook_spec.rb b/spec/models/webhook_spec.rb
index 60c3d9524f..fcf3dd14ff 100644
--- a/spec/models/webhook_spec.rb
+++ b/spec/models/webhook_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe Webhook, type: :model do
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index a451b5cba4..29170a79ae 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe InstancePresenter do
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 9a14fc3b1d..faae02df03 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
diff --git a/spec/requests/catch_all_route_request_spec.rb b/spec/requests/catch_all_route_request_spec.rb
index dcfc1bf4bc..e600bedfe0 100644
--- a/spec/requests/catch_all_route_request_spec.rb
+++ b/spec/requests/catch_all_route_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The catch all route' do
diff --git a/spec/requests/host_meta_request_spec.rb b/spec/requests/host_meta_request_spec.rb
index 60153ba8c9..ec26ecba7d 100644
--- a/spec/requests/host_meta_request_spec.rb
+++ b/spec/requests/host_meta_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The host_meta route' do
diff --git a/spec/requests/webfinger_request_spec.rb b/spec/requests/webfinger_request_spec.rb
index 209fda72aa..68a1478bed 100644
--- a/spec/requests/webfinger_request_spec.rb
+++ b/spec/requests/webfinger_request_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'The webfinger route' do
diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb
index 3f0e9b3e95..8b2c124fd2 100644
--- a/spec/routing/accounts_routing_spec.rb
+++ b/spec/routing/accounts_routing_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'Routes under accounts/' do
diff --git a/spec/routing/well_known_routes_spec.rb b/spec/routing/well_known_routes_spec.rb
index 7474633515..8cf08c13c1 100644
--- a/spec/routing/well_known_routes_spec.rb
+++ b/spec/routing/well_known_routes_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe 'Well Known routes' do
diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb
index 45e19d1ef7..bb819bb6c0 100644
--- a/spec/services/account_search_service_spec.rb
+++ b/spec/services/account_search_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountSearchService, type: :service do
diff --git a/spec/services/account_statuses_cleanup_service_spec.rb b/spec/services/account_statuses_cleanup_service_spec.rb
index a30e14ab6f..e83063f734 100644
--- a/spec/services/account_statuses_cleanup_service_spec.rb
+++ b/spec/services/account_statuses_cleanup_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe AccountStatusesCleanupService, type: :service do
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
index d9266ffc2e..59d3325999 100644
--- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
diff --git a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
index 4f828bacc6..071e4d92d5 100644
--- a/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchFeaturedTagsCollectionService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb
index ec6f1f41d8..868bc2a582 100644
--- a/spec/services/activitypub/fetch_remote_account_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
index 20117c66d0..a72c6941e9 100644
--- a/spec/services/activitypub/fetch_remote_actor_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb
index 3186c4270d..0ec0c27362 100644
--- a/spec/services/activitypub/fetch_remote_key_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do
diff --git a/spec/services/activitypub/fetch_remote_status_service_spec.rb b/spec/services/activitypub/fetch_remote_status_service_spec.rb
index 6e47392b35..1c39db21fc 100644
--- a/spec/services/activitypub/fetch_remote_status_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRemoteStatusService, type: :service do
diff --git a/spec/services/activitypub/fetch_replies_service_spec.rb b/spec/services/activitypub/fetch_replies_service_spec.rb
index 0231a5e9ab..bf8e296764 100644
--- a/spec/services/activitypub/fetch_replies_service_spec.rb
+++ b/spec/services/activitypub/fetch_replies_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::FetchRepliesService, type: :service do
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 78282e4537..491b8ed5af 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::ProcessAccountService, type: :service do
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index c7d0bb92af..1433d0c505 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
diff --git a/spec/services/activitypub/process_status_update_service_spec.rb b/spec/services/activitypub/process_status_update_service_spec.rb
index c8aa56def1..e9f23b9cf2 100644
--- a/spec/services/activitypub/process_status_update_service_spec.rb
+++ b/spec/services/activitypub/process_status_update_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
def poll_option_json(name, votes)
diff --git a/spec/services/activitypub/synchronize_followers_service_spec.rb b/spec/services/activitypub/synchronize_followers_service_spec.rb
index 0e829a3028..c9a513e24b 100644
--- a/spec/services/activitypub/synchronize_followers_service_spec.rb
+++ b/spec/services/activitypub/synchronize_followers_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ActivityPub::SynchronizeFollowersService, type: :service do
diff --git a/spec/services/after_block_domain_from_account_service_spec.rb b/spec/services/after_block_domain_from_account_service_spec.rb
index 9cca82bffa..b75f923729 100644
--- a/spec/services/after_block_domain_from_account_service_spec.rb
+++ b/spec/services/after_block_domain_from_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AfterBlockDomainFromAccountService, type: :service do
diff --git a/spec/services/after_block_service_spec.rb b/spec/services/after_block_service_spec.rb
index 337766d066..d81bba1d8d 100644
--- a/spec/services/after_block_service_spec.rb
+++ b/spec/services/after_block_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AfterBlockService, type: :service do
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index 10da07dcfb..2532304964 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AppSignUpService, type: :service do
diff --git a/spec/services/authorize_follow_service_spec.rb b/spec/services/authorize_follow_service_spec.rb
index 8f8e44ec76..63d9e2a0f4 100644
--- a/spec/services/authorize_follow_service_spec.rb
+++ b/spec/services/authorize_follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe AuthorizeFollowService, type: :service do
diff --git a/spec/services/batched_remove_status_service_spec.rb b/spec/services/batched_remove_status_service_spec.rb
index 920edeb13e..9bedf37444 100644
--- a/spec/services/batched_remove_status_service_spec.rb
+++ b/spec/services/batched_remove_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BatchedRemoveStatusService, type: :service do
diff --git a/spec/services/block_domain_service_spec.rb b/spec/services/block_domain_service_spec.rb
index 56b3a5ad1c..0ab97b8ce9 100644
--- a/spec/services/block_domain_service_spec.rb
+++ b/spec/services/block_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BlockDomainService, type: :service do
diff --git a/spec/services/block_service_spec.rb b/spec/services/block_service_spec.rb
index 049644dbc0..75f07f5adf 100644
--- a/spec/services/block_service_spec.rb
+++ b/spec/services/block_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BlockService, type: :service do
diff --git a/spec/services/bootstrap_timeline_service_spec.rb b/spec/services/bootstrap_timeline_service_spec.rb
index 149f6e6dfc..670ac652fb 100644
--- a/spec/services/bootstrap_timeline_service_spec.rb
+++ b/spec/services/bootstrap_timeline_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe BootstrapTimelineService, type: :service do
diff --git a/spec/services/clear_domain_media_service_spec.rb b/spec/services/clear_domain_media_service_spec.rb
index 993ba789ea..9875075796 100644
--- a/spec/services/clear_domain_media_service_spec.rb
+++ b/spec/services/clear_domain_media_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ClearDomainMediaService, type: :service do
diff --git a/spec/services/delete_account_service_spec.rb b/spec/services/delete_account_service_spec.rb
index e5bfdd679f..61e5c3c9b6 100644
--- a/spec/services/delete_account_service_spec.rb
+++ b/spec/services/delete_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe DeleteAccountService, type: :service do
diff --git a/spec/services/fan_out_on_write_service_spec.rb b/spec/services/fan_out_on_write_service_spec.rb
index d09750dd23..3b554f9ea3 100644
--- a/spec/services/fan_out_on_write_service_spec.rb
+++ b/spec/services/fan_out_on_write_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FanOutOnWriteService, type: :service do
diff --git a/spec/services/favourite_service_spec.rb b/spec/services/favourite_service_spec.rb
index 4f621200a2..613ae203ed 100644
--- a/spec/services/favourite_service_spec.rb
+++ b/spec/services/favourite_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FavouriteService, type: :service do
diff --git a/spec/services/fetch_link_card_service_spec.rb b/spec/services/fetch_link_card_service_spec.rb
index 458473c39e..d79ab7a433 100644
--- a/spec/services/fetch_link_card_service_spec.rb
+++ b/spec/services/fetch_link_card_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchLinkCardService, type: :service do
diff --git a/spec/services/fetch_remote_status_service_spec.rb b/spec/services/fetch_remote_status_service_spec.rb
index ace520b8fc..694a75dc29 100644
--- a/spec/services/fetch_remote_status_service_spec.rb
+++ b/spec/services/fetch_remote_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchRemoteStatusService, type: :service do
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index 226c98d70a..da7e423517 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FetchResourceService, type: :service do
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index f95d594409..67a8b2c54e 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe FollowService, type: :service do
diff --git a/spec/services/import_service_spec.rb b/spec/services/import_service_spec.rb
index 4a517fb933..f081f2d9dc 100644
--- a/spec/services/import_service_spec.rb
+++ b/spec/services/import_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ImportService, type: :service do
diff --git a/spec/services/mute_service_spec.rb b/spec/services/mute_service_spec.rb
index 57d8c41dec..50f74ff277 100644
--- a/spec/services/mute_service_spec.rb
+++ b/spec/services/mute_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe MuteService, type: :service do
diff --git a/spec/services/notify_service_spec.rb b/spec/services/notify_service_spec.rb
index 294c31b044..c58cebbfb8 100644
--- a/spec/services/notify_service_spec.rb
+++ b/spec/services/notify_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe NotifyService, type: :service do
diff --git a/spec/services/post_status_service_spec.rb b/spec/services/post_status_service_spec.rb
index c34f2393a1..33153c3d07 100644
--- a/spec/services/post_status_service_spec.rb
+++ b/spec/services/post_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PostStatusService, type: :service do
diff --git a/spec/services/process_mentions_service_spec.rb b/spec/services/process_mentions_service_spec.rb
index 79ccfa3229..adc45c60af 100644
--- a/spec/services/process_mentions_service_spec.rb
+++ b/spec/services/process_mentions_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ProcessMentionsService, type: :service do
diff --git a/spec/services/purge_domain_service_spec.rb b/spec/services/purge_domain_service_spec.rb
index 7d8969ee89..310affa5e3 100644
--- a/spec/services/purge_domain_service_spec.rb
+++ b/spec/services/purge_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe PurgeDomainService, type: :service do
diff --git a/spec/services/reblog_service_spec.rb b/spec/services/reblog_service_spec.rb
index e2ac0154ce..c004722295 100644
--- a/spec/services/reblog_service_spec.rb
+++ b/spec/services/reblog_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ReblogService, type: :service do
diff --git a/spec/services/reject_follow_service_spec.rb b/spec/services/reject_follow_service_spec.rb
index 97b7412b92..be9363d846 100644
--- a/spec/services/reject_follow_service_spec.rb
+++ b/spec/services/reject_follow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RejectFollowService, type: :service do
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_follwers_service_spec.rb
index 782f859e29..21cea2e4f8 100644
--- a/spec/services/remove_from_follwers_service_spec.rb
+++ b/spec/services/remove_from_follwers_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RemoveFromFollowersService, type: :service do
diff --git a/spec/services/remove_status_service_spec.rb b/spec/services/remove_status_service_spec.rb
index e253052f36..a836109a0d 100644
--- a/spec/services/remove_status_service_spec.rb
+++ b/spec/services/remove_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe RemoveStatusService, type: :service do
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index c3a3fddf8a..9d81bd9714 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ReportService, type: :service do
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 02869f8c8c..3ce1f7f2ba 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe ResolveAccountService, type: :service do
diff --git a/spec/services/suspend_account_service_spec.rb b/spec/services/suspend_account_service_spec.rb
index 5701090b33..4489bfed57 100644
--- a/spec/services/suspend_account_service_spec.rb
+++ b/spec/services/suspend_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe SuspendAccountService, type: :service do
diff --git a/spec/services/unallow_domain_service_spec.rb b/spec/services/unallow_domain_service_spec.rb
index ae7d00c7d3..48e310a9d1 100644
--- a/spec/services/unallow_domain_service_spec.rb
+++ b/spec/services/unallow_domain_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnallowDomainService, type: :service do
diff --git a/spec/services/unblock_service_spec.rb b/spec/services/unblock_service_spec.rb
index bd24005f66..8098d7e6d0 100644
--- a/spec/services/unblock_service_spec.rb
+++ b/spec/services/unblock_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnblockService, type: :service do
diff --git a/spec/services/unfollow_service_spec.rb b/spec/services/unfollow_service_spec.rb
index 55969bef93..a12f01fa5d 100644
--- a/spec/services/unfollow_service_spec.rb
+++ b/spec/services/unfollow_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnfollowService, type: :service do
diff --git a/spec/services/unmute_service_spec.rb b/spec/services/unmute_service_spec.rb
index 8463eb283f..2edb6cfc28 100644
--- a/spec/services/unmute_service_spec.rb
+++ b/spec/services/unmute_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnmuteService, type: :service do
diff --git a/spec/services/unsuspend_account_service_spec.rb b/spec/services/unsuspend_account_service_spec.rb
index 6675074690..5d70120935 100644
--- a/spec/services/unsuspend_account_service_spec.rb
+++ b/spec/services/unsuspend_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UnsuspendAccountService, type: :service do
diff --git a/spec/services/update_account_service_spec.rb b/spec/services/update_account_service_spec.rb
index c2dc791e4d..a711a8ae73 100644
--- a/spec/services/update_account_service_spec.rb
+++ b/spec/services/update_account_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UpdateAccountService, type: :service do
diff --git a/spec/services/update_status_service_spec.rb b/spec/services/update_status_service_spec.rb
index a7364ca8b0..e52a0e52be 100644
--- a/spec/services/update_status_service_spec.rb
+++ b/spec/services/update_status_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe UpdateStatusService, type: :service do
diff --git a/spec/services/verify_link_service_spec.rb b/spec/services/verify_link_service_spec.rb
index 8f65f3a846..ea9ccc3fc7 100644
--- a/spec/services/verify_link_service_spec.rb
+++ b/spec/services/verify_link_service_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
RSpec.describe VerifyLinkService, type: :service do
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 97b8d83c57..ddc872fc84 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
GC.disable
if ENV['DISABLE_SIMPLECOV'] != 'true'
diff --git a/spec/support/matchers/json/match_json_schema.rb b/spec/support/matchers/json/match_json_schema.rb
index 5d9c9a618e..3a275199ef 100644
--- a/spec/support/matchers/json/match_json_schema.rb
+++ b/spec/support/matchers/json/match_json_schema.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
RSpec::Matchers.define :match_json_schema do |schema|
match do |input_json|
schema_path = Rails.root.join('spec', 'support', 'schema', "#{schema}.json").to_s
diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb
index d85db2fcad..21632b5748 100644
--- a/spec/support/matchers/model/model_have_error_on_field.rb
+++ b/spec/support/matchers/model/model_have_error_on_field.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
RSpec::Matchers.define :model_have_error_on_field do |expected|
match do |record|
record.valid? if record.errors.empty?
diff --git a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
index d68a695b78..947acab3bc 100644
--- a/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
+++ b/spec/workers/activitypub/distribute_poll_update_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::DistributePollUpdateWorker do
diff --git a/spec/workers/activitypub/distribution_worker_spec.rb b/spec/workers/activitypub/distribution_worker_spec.rb
index 7f63e197bf..06d6ac7383 100644
--- a/spec/workers/activitypub/distribution_worker_spec.rb
+++ b/spec/workers/activitypub/distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::DistributionWorker do
diff --git a/spec/workers/activitypub/move_distribution_worker_spec.rb b/spec/workers/activitypub/move_distribution_worker_spec.rb
index 482fa9db44..4df6b2f161 100644
--- a/spec/workers/activitypub/move_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/move_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::MoveDistributionWorker do
diff --git a/spec/workers/activitypub/processing_worker_spec.rb b/spec/workers/activitypub/processing_worker_spec.rb
index b42c0bdbc9..6b57f16a92 100644
--- a/spec/workers/activitypub/processing_worker_spec.rb
+++ b/spec/workers/activitypub/processing_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::ProcessingWorker do
diff --git a/spec/workers/activitypub/status_update_distribution_worker_spec.rb b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
index c014c6790e..cf55a461d8 100644
--- a/spec/workers/activitypub/status_update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/status_update_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::StatusUpdateDistributionWorker do
diff --git a/spec/workers/activitypub/update_distribution_worker_spec.rb b/spec/workers/activitypub/update_distribution_worker_spec.rb
index 0e057fd0bc..7b1e6ff543 100644
--- a/spec/workers/activitypub/update_distribution_worker_spec.rb
+++ b/spec/workers/activitypub/update_distribution_worker_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe ActivityPub::UpdateDistributionWorker do
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index a5dfed369f..b977bc1fbc 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Scheduler::AccountsStatusesCleanupScheduler do
diff --git a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
index da99f10f97..9909795008 100644
--- a/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/user_cleanup_scheduler_spec.rb
@@ -1,3 +1,5 @@
+# frozen_string_literal: true
+
require 'rails_helper'
describe Scheduler::UserCleanupScheduler do
From 48aeab90f657055e5516b844f47fcf5c097458a1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:56:11 -0500
Subject: [PATCH 0119/1254] Ignore JSX files from Prettier (#23777)
---
.prettierignore | 1 +
1 file changed, 1 insertion(+)
diff --git a/.prettierignore b/.prettierignore
index 15e5f59944..2ea4075333 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -69,6 +69,7 @@ app/javascript/styles/mastodon/reset.scss
# Ignore Javascript pending https://github.com/mastodon/mastodon/pull/23631
*.js
+*.jsx
# Ignore HTML till cleaned and included in CI
*.html
From 8fd3fc404dd848253767252bbd76275e091832b1 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:57:15 -0500
Subject: [PATCH 0120/1254] Autofix Rubocop Rails/RootPathnameMethods (#23760)
---
.rubocop_todo.yml | 12 ------------
lib/mastodon/premailer_webpack_strategy.rb | 2 +-
lib/tasks/emojis.rake | 2 +-
lib/tasks/mastodon.rake | 2 +-
lib/tasks/repo.rake | 6 +++---
spec/fabricators/custom_emoji_fabricator.rb | 2 +-
spec/fabricators/site_upload_fabricator.rb | 2 +-
spec/rails_helper.rb | 4 ++--
8 files changed, 10 insertions(+), 22 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index a72606b358..bbf01bacf9 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1801,18 +1801,6 @@ Rails/ReversibleMigration:
- 'db/migrate/20180617162849_remove_unused_indexes.rb'
- 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
-# Offense count: 10
-# This cop supports unsafe autocorrection (--autocorrect-all).
-Rails/RootPathnameMethods:
- Exclude:
- - 'lib/mastodon/premailer_webpack_strategy.rb'
- - 'lib/tasks/emojis.rake'
- - 'lib/tasks/mastodon.rake'
- - 'lib/tasks/repo.rake'
- - 'spec/fabricators/custom_emoji_fabricator.rb'
- - 'spec/fabricators/site_upload_fabricator.rb'
- - 'spec/rails_helper.rb'
-
# Offense count: 141
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb
index 4356b7285a..5c297d4d05 100644
--- a/lib/mastodon/premailer_webpack_strategy.rb
+++ b/lib/mastodon/premailer_webpack_strategy.rb
@@ -13,7 +13,7 @@ module PremailerWebpackStrategy
HTTP.get(url).to_s
else
url = url[1..-1] if url.start_with?('/')
- File.read(Rails.public_path.join(url))
+ Rails.public_path.join(url).read
end
css.gsub(/url\(\//, "url(#{asset_host}/")
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index 02d772b488..c743f8a554 100644
--- a/lib/tasks/emojis.rake
+++ b/lib/tasks/emojis.rake
@@ -69,7 +69,7 @@ namespace :emojis do
end
end
- existence_maps = grouped_codes.map { |c| c.index_with { |cc| File.exist?(Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg")) } }
+ existence_maps = grouped_codes.map { |c| c.index_with { |cc| Rails.public_path.join('emoji', "#{codepoints_to_filename(cc)}.svg").exist? } }
map = {}
existence_maps.each do |group|
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index 0a3946ac7d..6c0e669227 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -445,7 +445,7 @@ namespace :mastodon do
generated_header << "# using docker-compose or not.\n\n"
end
- File.write(Rails.root.join('.env.production'), "#{generated_header}#{env_contents}\n")
+ Rails.root.join('.env.production').write("#{generated_header}#{env_contents}\n")
if using_docker
prompt.ok 'Below is your configuration, save it to an .env.production file outside Docker:'
diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake
index 795b54c59c..5d1b4f7544 100644
--- a/lib/tasks/repo.rake
+++ b/lib/tasks/repo.rake
@@ -5,7 +5,7 @@ REPOSITORY_NAME = 'mastodon/mastodon'
namespace :repo do
desc 'Generate the AUTHORS.md file'
task :authors do
- file = File.open(Rails.root.join('AUTHORS.md'), 'w')
+ file = Rails.root.join('AUTHORS.md').open('w')
file << <<~HEADER
Authors
@@ -87,8 +87,8 @@ namespace :repo do
task check_locales_files: :environment do
pastel = Pastel.new
- missing_yaml_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('config', 'locales', "#{locale}.yml")) }
- missing_json_files = I18n.available_locales.reject { |locale| File.exist?(Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json")) }
+ missing_yaml_files = I18n.available_locales.reject { |locale| Rails.root.join('config', 'locales', "#{locale}.yml").exist? }
+ missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? }
locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path|
file_name = File.basename(path)
diff --git a/spec/fabricators/custom_emoji_fabricator.rb b/spec/fabricators/custom_emoji_fabricator.rb
index 298a50b4bf..fa570eec60 100644
--- a/spec/fabricators/custom_emoji_fabricator.rb
+++ b/spec/fabricators/custom_emoji_fabricator.rb
@@ -3,5 +3,5 @@
Fabricator(:custom_emoji) do
shortcode 'coolcat'
domain nil
- image { File.open(Rails.root.join('spec', 'fixtures', 'files', 'emojo.png')) }
+ image { Rails.root.join('spec', 'fixtures', 'files', 'emojo.png').open }
end
diff --git a/spec/fabricators/site_upload_fabricator.rb b/spec/fabricators/site_upload_fabricator.rb
index b6841dea3c..ad1b777cc4 100644
--- a/spec/fabricators/site_upload_fabricator.rb
+++ b/spec/fabricators/site_upload_fabricator.rb
@@ -1,5 +1,5 @@
# frozen_string_literal: true
Fabricator(:site_upload) do
- file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
+ file { Rails.root.join('spec', 'fabricators', 'assets', 'utah_teapot.png').open }
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index faae02df03..70d3a968ca 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -73,11 +73,11 @@ end
RSpec::Matchers.define_negated_matcher :not_change, :change
def request_fixture(name)
- File.read(Rails.root.join('spec', 'fixtures', 'requests', name))
+ Rails.root.join('spec', 'fixtures', 'requests', name).read
end
def attachment_fixture(name)
- File.open(Rails.root.join('spec', 'fixtures', 'files', name))
+ Rails.root.join('spec', 'fixtures', 'files', name).open
end
def stub_jsonld_contexts!
From 4ff44be1348136fa602318cca343e716fea0e556 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 21 Feb 2023 19:57:56 -0500
Subject: [PATCH 0121/1254] Autofix Rubocop Rails/Blank (#23765)
---
.rubocop_todo.yml | 7 -------
app/services/activitypub/fetch_remote_actor_service.rb | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index bbf01bacf9..0bdf72084c 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1485,13 +1485,6 @@ Rails/ApplicationController:
- 'app/controllers/well_known/nodeinfo_controller.rb'
- 'app/controllers/well_known/webfinger_controller.rb'
-# Offense count: 1
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: NilOrEmpty, NotPresent, UnlessPresent.
-Rails/Blank:
- Exclude:
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
-
# Offense count: 35
# Configuration parameters: Database, Include.
# SupportedDatabases: mysql, postgresql
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
index ee0eaff08b..c295700860 100644
--- a/app/services/activitypub/fetch_remote_actor_service.rb
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -28,7 +28,7 @@ class ActivityPub::FetchRemoteActorService < BaseService
raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?
raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type?
raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present?
- raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" unless @json['preferredUsername'].present?
+ raise Error, "Actor #{uri} has no 'preferredUsername', which is a requirement for Mastodon compatibility" if @json['preferredUsername'].blank?
@uri = @json['id']
@username = @json['preferredUsername']
From 3ed1b9ebb60a50ea1cb6a229ab25d4e7d6b848c8 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 22 Feb 2023 10:28:52 +0100
Subject: [PATCH 0122/1254] Fix rack:attack flaky tests and test end of
throttle period (#23799)
---
spec/config/initializers/rack_attack_spec.rb | 27 +++++++++++++++++---
1 file changed, 23 insertions(+), 4 deletions(-)
diff --git a/spec/config/initializers/rack_attack_spec.rb b/spec/config/initializers/rack_attack_spec.rb
index 2cfe90b1a5..cc931b21b3 100644
--- a/spec/config/initializers/rack_attack_spec.rb
+++ b/spec/config/initializers/rack_attack_spec.rb
@@ -10,6 +10,17 @@ describe Rack::Attack do
end
shared_examples 'throttled endpoint' do
+ before do
+ # Rack::Attack periods are not rolling, so avoid flaky tests by setting the time in a way
+ # to avoid crossing period boundaries.
+
+ # The code Rack::Attack uses to set periods is the following:
+ # https://github.com/rack/rack-attack/blob/v6.6.1/lib/rack/attack/cache.rb#L64-L66
+ # So we want to minimize `Time.now.to_i % period`
+
+ travel_to Time.zone.at((Time.now.to_i / period.seconds).to_i * period.seconds)
+ end
+
context 'when the number of requests is lower than the limit' do
it 'does not change the request status' do
limit.times do
@@ -20,11 +31,16 @@ describe Rack::Attack do
end
context 'when the number of requests is higher than the limit' do
- it 'returns http too many requests' do
+ it 'returns http too many requests after limit and returns to normal status after period' do
(limit * 2).times do |i|
request.call
expect(last_response.status).to eq(429) if i > limit
end
+
+ travel period
+
+ request.call
+ expect(last_response.status).to_not eq(429)
end
end
end
@@ -33,7 +49,8 @@ describe Rack::Attack do
describe 'throttle excessive sign-up requests by IP address' do
context 'through the website' do
- let(:limit) { 25 }
+ let(:limit) { 25 }
+ let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
@@ -50,7 +67,8 @@ describe Rack::Attack do
end
context 'through the API' do
- let(:limit) { 5 }
+ let(:limit) { 5 }
+ let(:period) { 30.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
@@ -71,7 +89,8 @@ describe Rack::Attack do
end
describe 'throttle excessive sign-in requests by IP address' do
- let(:limit) { 25 }
+ let(:limit) { 25 }
+ let(:period) { 5.minutes }
let(:request) { -> { post path, {}, 'REMOTE_ADDR' => remote_ip } }
context 'for exact path' do
From f682478de8b5a6e0b524bfca88f3469fd098d64c Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 22 Feb 2023 11:53:13 +0100
Subject: [PATCH 0123/1254] Fix inefficiency when searching accounts per
username in admin interface (#23801)
---
app/models/account.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/models/account.rb b/app/models/account.rb
index 09c450f2ab..1ff083e54a 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -108,7 +108,7 @@ class Account < ApplicationRecord
scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :groups, -> { where(actor_type: 'Group') }
scope :alphabetic, -> { order(domain: :asc, username: :asc) }
- scope :matches_username, ->(value) { where(arel_table[:username].matches("#{value}%")) }
+ scope :matches_username, ->(value) { where('lower((username)::text) LIKE lower(?)', "#{value}%") }
scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) }
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
scope :without_unapproved, -> { left_outer_joins(:user).remote.or(left_outer_joins(:user).merge(User.approved.confirmed)) }
From 25641171319a9cfde9b837d25bcab077b3d1da6a Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Wed, 22 Feb 2023 13:16:02 +0100
Subject: [PATCH 0124/1254] New Crowdin updates (#23625)
Co-authored-by: Yamagishi Kazutoshi
---
app/javascript/mastodon/locales/ast.json | 30 +-
app/javascript/mastodon/locales/be.json | 4 +-
app/javascript/mastodon/locales/bg.json | 8 +-
app/javascript/mastodon/locales/ca.json | 68 ++--
app/javascript/mastodon/locales/cy.json | 20 +-
app/javascript/mastodon/locales/de.json | 14 +-
app/javascript/mastodon/locales/es-MX.json | 2 +-
app/javascript/mastodon/locales/fr-QC.json | 4 +-
app/javascript/mastodon/locales/ko.json | 30 +-
app/javascript/mastodon/locales/lv.json | 2 +-
app/javascript/mastodon/locales/my.json | 10 +-
app/javascript/mastodon/locales/ru.json | 8 +-
app/javascript/mastodon/locales/th.json | 2 +-
app/javascript/mastodon/locales/zh-HK.json | 16 +-
app/javascript/mastodon/locales/zh-TW.json | 84 ++---
config/locales/activerecord.de.yml | 8 +-
config/locales/an.yml | 6 -
config/locales/ar.yml | 15 +-
config/locales/ast.yml | 24 +-
config/locales/be.yml | 18 +
config/locales/bg.yml | 62 ++--
config/locales/ca.yml | 37 +-
config/locales/ckb.yml | 5 -
config/locales/co.yml | 6 -
config/locales/cs.yml | 15 +-
config/locales/cy.yml | 23 +-
config/locales/da.yml | 15 +-
config/locales/de.yml | 391 +++++++++++----------
config/locales/devise.bg.yml | 2 +-
config/locales/devise.de.yml | 30 +-
config/locales/devise.fi.yml | 8 +-
config/locales/devise.my.yml | 12 +
config/locales/devise.zh-TW.yml | 4 +-
config/locales/doorkeeper.cy.yml | 2 +-
config/locales/doorkeeper.de.yml | 22 +-
config/locales/doorkeeper.fr-QC.yml | 12 +-
config/locales/doorkeeper.my.yml | 150 ++++++++
config/locales/doorkeeper.zh-HK.yml | 2 +
config/locales/el.yml | 38 +-
config/locales/en-GB.yml | 164 +++++++++
config/locales/eo.yml | 62 ++--
config/locales/es-AR.yml | 41 ++-
config/locales/es-MX.yml | 6 -
config/locales/es.yml | 13 +-
config/locales/et.yml | 15 +-
config/locales/eu.yml | 17 +-
config/locales/fa.yml | 6 -
config/locales/fi.yml | 25 +-
config/locales/fo.yml | 11 +
config/locales/fr-QC.yml | 31 +-
config/locales/fr.yml | 13 +-
config/locales/fy.yml | 11 +
config/locales/ga.yml | 4 -
config/locales/gd.yml | 6 -
config/locales/gl.yml | 17 +-
config/locales/he.yml | 17 +-
config/locales/hu.yml | 17 +-
config/locales/id.yml | 6 -
config/locales/io.yml | 6 -
config/locales/is.yml | 13 +-
config/locales/it.yml | 13 +-
config/locales/ja.yml | 17 +-
config/locales/ka.yml | 7 -
config/locales/kab.yml | 4 -
config/locales/kk.yml | 5 -
config/locales/ko.yml | 29 +-
config/locales/ku.yml | 6 -
config/locales/lt.yml | 9 -
config/locales/lv.yml | 27 +-
config/locales/ms.yml | 1 -
config/locales/my.yml | 261 +++++++++++++-
config/locales/nl.yml | 15 +-
config/locales/nn.yml | 6 -
config/locales/no.yml | 23 +-
config/locales/oc.yml | 6 -
config/locales/pl.yml | 15 +-
config/locales/pt-BR.yml | 6 -
config/locales/pt-PT.yml | 17 +-
config/locales/ro.yml | 3 -
config/locales/ru.yml | 26 +-
config/locales/sc.yml | 5 -
config/locales/sco.yml | 6 -
config/locales/si.yml | 6 -
config/locales/simple_form.ast.yml | 7 +-
config/locales/simple_form.be.yml | 4 +
config/locales/simple_form.bg.yml | 42 +--
config/locales/simple_form.cy.yml | 4 +-
config/locales/simple_form.de.yml | 56 +--
config/locales/simple_form.el.yml | 16 +
config/locales/simple_form.ko.yml | 4 +-
config/locales/simple_form.sr.yml | 26 +-
config/locales/simple_form.zh-HK.yml | 10 +
config/locales/simple_form.zh-TW.yml | 2 +-
config/locales/sk.yml | 12 +-
config/locales/sl.yml | 13 +-
config/locales/sq.yml | 16 +-
config/locales/sr-Latn.yml | 7 -
config/locales/sr.yml | 25 +-
config/locales/sv.yml | 6 -
config/locales/th.yml | 11 +
config/locales/tr.yml | 37 +-
config/locales/tt.yml | 4 -
config/locales/uk.yml | 13 +-
config/locales/vi.yml | 12 +-
config/locales/zh-CN.yml | 17 +-
config/locales/zh-HK.yml | 49 ++-
config/locales/zh-TW.yml | 83 +++--
107 files changed, 1856 insertions(+), 843 deletions(-)
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index bedfd91385..54bab60d04 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -218,21 +218,21 @@
"empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.",
"empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!",
"empty_column.favourited_statuses": "Entá nun marquesti nengún artículu como favoritu. Cuando marques dalgún, apaez equí.",
- "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
+ "empty_column.favourites": "Naide marcó esti artículu como favoritu. Cuando dalgún perfil lo faiga, apaez equí.",
"empty_column.follow_recommendations": "Paez que nun se puen xenerar suxerencies pa ti. Pues tentar d'usar la busca p'atopar perfiles que pues conocer o esplorar les etiquetes en tendencia.",
"empty_column.follow_requests": "Entá nun tienes nenguna solicitú de siguimientu. Cuando recibas dalguna, apaez equí.",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag": "Entá nun hai nada con esta etiqueta.",
"empty_column.home": "¡La to llinia de tiempu ta balera! Sigui a cuentes pa enllenala. {suggestions}",
"empty_column.home.suggestions": "Ver dalgunes suxerencies",
- "empty_column.list": "Entá nun hai nada nesta llista. Cuando los miembros d'esta llista espublicen artículos nuevos, apaecen equí.",
+ "empty_column.list": "Entá nun hai nada nesta llista. Cuando perfiles d'esta llista espublicen artículos nuevos, apaecen equí.",
"empty_column.lists": "Entá nun tienes nenguna llista. Cuando crees dalguna, apaez equí.",
"empty_column.mutes": "Entá nun tienes nengún perfil colos avisos desactivaos.",
"empty_column.notifications": "Entá nun tienes nengún avisu. Cuando otros perfiles interactúen contigo, apaez equí.",
"empty_column.public": "¡Equí nun hai nada! Escribi daqué públicamente o sigui a perfiles d'otros sirvidores pa enllenar esta seición",
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
"error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.next_steps": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
@@ -351,14 +351,14 @@
"lists.account.remove": "Remove from list",
"lists.delete": "Desaniciar la llista",
"lists.edit": "Editar la llista",
- "lists.edit.submit": "Change title",
+ "lists.edit.submit": "Camudar el títulu",
"lists.new.create": "Amestar la llista",
"lists.new.title_placeholder": "Títulu",
"lists.replies_policy.followed": "Cualesquier perfil siguíu",
- "lists.replies_policy.list": "Miembros de la llista",
+ "lists.replies_policy.list": "Perfiles de la llista",
"lists.replies_policy.none": "Naide",
- "lists.replies_policy.title": "Show replies to:",
- "lists.search": "Search among people you follow",
+ "lists.replies_policy.title": "Amosar les rempuestes a:",
+ "lists.search": "Buscar ente los perfiles que sigues",
"lists.subheading": "Les tos llistes",
"load_pending": "{count, plural, one {# elementu nuevu} other {# elementos nuevos}}",
"loading_indicator.label": "Cargando…",
@@ -463,15 +463,15 @@
"privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Data del últimu anovamientu: {date}",
"privacy_policy.title": "Política de privacidá",
- "refresh": "Refresh",
+ "refresh": "Anovar",
"regeneration_indicator.label": "Cargando…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number} d",
- "relative_time.full.days": "Hai {number, plural, one {# día} other {# díes}}",
- "relative_time.full.hours": "Hai {number, plural, one {# hora} other {# hores}}",
+ "relative_time.full.days": "hai {number, plural, one {# día} other {# díes}}",
+ "relative_time.full.hours": "hai {number, plural, one {# hora} other {# hores}}",
"relative_time.full.just_now": "puramente agora",
- "relative_time.full.minutes": "Hai {number, plural, one {# minutu} other {# minutos}}",
- "relative_time.full.seconds": "Hai {number, plural, one {# segundu} other {# segundos}}",
+ "relative_time.full.minutes": "hai {number, plural, one {# minutu} other {# minutos}}",
+ "relative_time.full.seconds": "hai {number, plural, one {# segundu} other {# segundos}}",
"relative_time.hours": "{number} h",
"relative_time.just_now": "agora",
"relative_time.minutes": "{number} m",
@@ -557,7 +557,7 @@
"status.detailed_status": "Detailed conversation view",
"status.direct": "Unviar un mensaxe direutu a @{name}",
"status.edit": "Edit",
- "status.edited": "Edited {date}",
+ "status.edited": "Editóse'l {date}",
"status.edited_x_times": "Editóse {count, plural, one {{count} vegada} other {{count} vegaes}}",
"status.embed": "Empotrar",
"status.favourite": "Favourite",
@@ -613,7 +613,7 @@
"time_remaining.minutes": "{number, plural, one {Queda # minutu} other {Queden # minutos}}",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {Queda # segundu} other {Queden # segundos}}",
- "timeline_hint.remote_resource_not_displayed": "{resource} from other servers are not displayed.",
+ "timeline_hint.remote_resource_not_displayed": "Nun s'amuesa'l recursu «{resource}» d'otros sirvidores.",
"timeline_hint.resources.followers": "Siguidores",
"timeline_hint.resources.follows": "Follows",
"timeline_hint.resources.statuses": "Artículos antiguos",
@@ -647,7 +647,7 @@
"upload_progress.label": "Xubiendo…",
"upload_progress.processing": "Procesando…",
"video.close": "Zarrar el videu",
- "video.download": "Download file",
+ "video.download": "Baxar el ficheru",
"video.exit_fullscreen": "Exit full screen",
"video.expand": "Espander el videu",
"video.fullscreen": "Pantalla completa",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index f4a10a7957..08aa5ef3b2 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -213,7 +213,7 @@
"empty_column.account_unavailable": "Профіль недаступны",
"empty_column.blocks": "Вы яшчэ нікога не заблакіравалі.",
"empty_column.bookmarked_statuses": "У вас яшчэ няма паведамленняў з закладкамі. Калі вы дадасце закладку, яна з'явіцца тут.",
- "empty_column.community": "Мясцовая шкала часу пустая. Напішыце што-небудзь публічна, каб зрушыць з месца",
+ "empty_column.community": "Мясцовая стужка пустая. Напішыце што-небудзь публічна, каб зрушыць з месца!",
"empty_column.direct": "Пакуль у вас няма асабістых паведамленняў. Калі вы дашляце або атрымаеце штось, яно з'явіцца тут.",
"empty_column.domain_blocks": "Заблакіраваных даменаў пакуль няма.",
"empty_column.explore_statuses": "Зараз не ў трэндзе. Праверце пазней",
@@ -606,7 +606,7 @@
"suggestions.header": "Гэта можа Вас зацікавіць…",
"tabs_bar.federated_timeline": "Глабальнае",
"tabs_bar.home": "Галоўная",
- "tabs_bar.local_timeline": "Тутэйшыя",
+ "tabs_bar.local_timeline": "Мясцовае",
"tabs_bar.notifications": "Апавяшчэнні",
"time_remaining.days": "{number, plural, one {застаўся # дзень} few {засталося # дні} many {засталося # дзён} other {засталося # дня}}",
"time_remaining.hours": "{number, plural, one {засталася # гадзіна} few {засталося # гадзіны} many {засталося # гадзін} other {засталося # гадзіны}}",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index f357ed67d5..cd6baafac7 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -101,7 +101,7 @@
"column.about": "Относно",
"column.blocks": "Блокирани потребители",
"column.bookmarks": "Отметки",
- "column.community": "Локален инфопоток",
+ "column.community": "Локална часова ос",
"column.direct": "Директни съобщения",
"column.directory": "Разглеждане на профили",
"column.domain_blocks": "Блокирани домейни",
@@ -367,7 +367,7 @@
"missing_indicator.sublabel": "Ресурсът не може да се намери",
"moved_to_account_banner.text": "Вашият акаунт {disabledAccount} сега е изключен, защото се преместихте в {movedToAccount}.",
"mute_modal.duration": "Времетраене",
- "mute_modal.hide_notifications": "Скривате ли известията от този потребител?",
+ "mute_modal.hide_notifications": "Скривате ли известията от потребителя?",
"mute_modal.indefinite": "Неопределено",
"navigation_bar.about": "Относно",
"navigation_bar.blocks": "Блокирани потребители",
@@ -382,7 +382,7 @@
"navigation_bar.favourites": "Любими",
"navigation_bar.filters": "Заглушени думи",
"navigation_bar.follow_requests": "Заявки за последване",
- "navigation_bar.followed_tags": "Последвани хештагове",
+ "navigation_bar.followed_tags": "Последвани хаштагове",
"navigation_bar.follows_and_followers": "Последвания и последователи",
"navigation_bar.lists": "Списъци",
"navigation_bar.logout": "Излизане",
@@ -619,7 +619,7 @@
"timeline_hint.resources.statuses": "По-стари публикации",
"trends.counter_by_accounts": "{count, plural, one {{counter} човек} other {{counter} души}} {days, plural, one {за последния {days} ден} other {за последните {days} дни}}",
"trends.trending_now": "Налагащи се сега",
- "ui.beforeunload": "Черновата ви ще се загуби, ако излезете от Mastodon.",
+ "ui.beforeunload": "Черновата ви ще се загуби, излизайки от Mastodon.",
"units.short.billion": "{count}млрд",
"units.short.million": "{count}млн",
"units.short.thousand": "{count}хил",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 8dba6bb2cd..381deaa0c4 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -27,7 +27,7 @@
"account.enable_notifications": "Notifica'm els tuts de @{name}",
"account.endorse": "Recomana en el perfil",
"account.featured_tags.last_status_at": "Darrer tut el {date}",
- "account.featured_tags.last_status_never": "No hi ha publicacions",
+ "account.featured_tags.last_status_never": "No hi ha tuts",
"account.featured_tags.title": "etiquetes destacades de {name}",
"account.follow": "Segueix",
"account.followers": "Seguidors",
@@ -131,7 +131,7 @@
"compose_form.hashtag_warning": "Aquest tut no apareixerà a les llistes d'etiquetes perquè no és públic. Només els tuts públics apareixen a les cerques per etiqueta.",
"compose_form.lock_disclaimer": "El teu compte no està {locked}. Tothom pot seguir-te i veure els tuts de només per a seguidors.",
"compose_form.lock_disclaimer.lock": "blocat",
- "compose_form.placeholder": "Què et passa pel cap?",
+ "compose_form.placeholder": "En què penses?",
"compose_form.poll.add_option": "Afegeix una opció",
"compose_form.poll.duration": "Durada de l'enquesta",
"compose_form.poll.option_placeholder": "Opció {number}",
@@ -139,7 +139,7 @@
"compose_form.poll.switch_to_multiple": "Canvia l’enquesta per a permetre diverses opcions",
"compose_form.poll.switch_to_single": "Canvia l’enquesta per a permetre una única opció",
"compose_form.publish": "Tut",
- "compose_form.publish_form": "Publica",
+ "compose_form.publish_form": "Tut",
"compose_form.publish_loud": "Tut!",
"compose_form.save_changes": "Desa els canvis",
"compose_form.sensitive.hide": "{count, plural, one {Marca mèdia com a sensible} other {Marca mèdia com a sensible}}",
@@ -155,7 +155,7 @@
"confirmations.cancel_follow_request.confirm": "Retirar la sol·licitud",
"confirmations.cancel_follow_request.message": "Segur que vols retirar la sol·licitud de seguiment de {name}?",
"confirmations.delete.confirm": "Elimina",
- "confirmations.delete.message": "Segur que vols eliminar la publicació?",
+ "confirmations.delete.message": "Segur que vols eliminar aquest tut?",
"confirmations.delete_list.confirm": "Elimina",
"confirmations.delete_list.message": "Segur que vols suprimir permanentment aquesta llista?",
"confirmations.discard_edit_media.confirm": "Descarta",
@@ -212,7 +212,7 @@
"empty_column.account_timeline": "No hi ha tuts aquí!",
"empty_column.account_unavailable": "Perfil no disponible",
"empty_column.blocks": "Encara no has blocat cap usuari.",
- "empty_column.bookmarked_statuses": "Encara no tens marcada cap publicació. Quan en marquis una apareixerà aquí.",
+ "empty_column.bookmarked_statuses": "Encara no has marcat cap tut. Quan en marquis un, apareixerà aquí.",
"empty_column.community": "La línia de temps local és buida. Escriu alguna cosa públicament per posar-ho tot en marxa!",
"empty_column.direct": "Encara no tens missatges directes. Quan n'enviïs o en rebis un, sortirà aquí.",
"empty_column.domain_blocks": "Encara no hi ha dominis blocats.",
@@ -242,21 +242,21 @@
"explore.trending_links": "Notícies",
"explore.trending_statuses": "Tuts",
"explore.trending_tags": "Etiquetes",
- "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquesta publicació. Si també vols que la publicació es filtri en aquest context, hauràs d'editar el filtre.",
+ "filter_modal.added.context_mismatch_explanation": "Aquesta categoria de filtre no s'aplica al context en què has accedit a aquest tut. Si també vols que el tut es filtri en aquest context, hauràs d'editar el filtre.",
"filter_modal.added.context_mismatch_title": "El context no coincideix!",
"filter_modal.added.expired_explanation": "La categoria d'aquest filtre ha caducat, necessitaràs canviar la seva data de caducitat per a aplicar-la.",
"filter_modal.added.expired_title": "Filtre caducat!",
"filter_modal.added.review_and_configure": "Per a revisar i configurar aquesta categoria de filtre, ves a {settings_link}.",
"filter_modal.added.review_and_configure_title": "Configuració del filtre",
"filter_modal.added.settings_link": "pàgina de configuració",
- "filter_modal.added.short_explanation": "Aquesta publicació s'ha afegit a la següent categoria de filtre: {title}.",
+ "filter_modal.added.short_explanation": "Aquest tut s'ha afegit a la següent categoria de filtre: {title}.",
"filter_modal.added.title": "Filtre afegit!",
"filter_modal.select_filter.context_mismatch": "no aplica en aquest context",
"filter_modal.select_filter.expired": "caducat",
"filter_modal.select_filter.prompt_new": "Nova categoria: {name}",
"filter_modal.select_filter.search": "Cerca o crea",
"filter_modal.select_filter.subtitle": "Usa una categoria existent o crea'n una de nova",
- "filter_modal.select_filter.title": "Filtra aquesta publicació",
+ "filter_modal.select_filter.title": "Filtra aquest tut",
"filter_modal.title.status": "Filtra un tut",
"follow_recommendations.done": "Fet",
"follow_recommendations.heading": "Segueix a la gent de la que t'agradaria veure els seus tuts! Aquí hi ha algunes recomanacions.",
@@ -293,29 +293,29 @@
"home.show_announcements": "Mostra els anuncis",
"interaction_modal.description.favourite": "Amb un compte a Mastodon pots afavorir aquest tut perquè l'autor sàpiga que t'ha agradat i desar-lo per a més endavant.",
"interaction_modal.description.follow": "Amb un compte a Mastodon, pots seguir a {name} per a rebre els seus tuts en la teva línia de temps d'Inici.",
- "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquesta publicació per a compartir-la amb els teus seguidors.",
- "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquesta publicació.",
+ "interaction_modal.description.reblog": "Amb un compte a Mastodon, pots impulsar aquest tut per a compartir-lo amb els teus seguidors.",
+ "interaction_modal.description.reply": "Amb un compte a Mastodon, pots respondre aquest tut.",
"interaction_modal.on_another_server": "En un servidor diferent",
"interaction_modal.on_this_server": "En aquest servidor",
"interaction_modal.other_server_instructions": "Copia i enganxa aquest URL en el camp de cerca de la teva aplicació Mastodon preferida o a la interfície web del teu servidor Mastodon.",
"interaction_modal.preamble": "Com que Mastodon és descentralitzat, pots fer servir el teu compte existent en un altre servidor Mastodon o plataforma compatible si no tens compte en aquest.",
- "interaction_modal.title.favourite": "Marca la publicació de {name}",
+ "interaction_modal.title.favourite": "Marca el tut de {name}",
"interaction_modal.title.follow": "Segueix {name}",
"interaction_modal.title.reblog": "Impulsa el tut de {name}",
- "interaction_modal.title.reply": "Respon a la publicació de {name}",
+ "interaction_modal.title.reply": "Respon al tut de {name}",
"intervals.full.days": "{number, plural, one {# dia} other {# dies}}",
"intervals.full.hours": "{number, plural, one {# hora} other {# hores}}",
"intervals.full.minutes": "{number, plural, one {# minut} other {# minuts}}",
"keyboard_shortcuts.back": "Vés enrere",
"keyboard_shortcuts.blocked": "Obre la llista d'usuaris blocats",
- "keyboard_shortcuts.boost": "Impulsa la publicació",
+ "keyboard_shortcuts.boost": "Impulsa el tut",
"keyboard_shortcuts.column": "Centra la columna",
"keyboard_shortcuts.compose": "Centra l'àrea de composició de text",
"keyboard_shortcuts.description": "Descripció",
"keyboard_shortcuts.direct": "Obre la columna de missatges directes",
"keyboard_shortcuts.down": "Abaixa a la llista",
"keyboard_shortcuts.enter": "Obre el tut",
- "keyboard_shortcuts.favourite": "Afavoreix la publicació",
+ "keyboard_shortcuts.favourite": "Afavoreix el tut",
"keyboard_shortcuts.favourites": "Obre la llista de preferits",
"keyboard_shortcuts.federated": "Obre la línia de temps federada",
"keyboard_shortcuts.heading": "Dreceres de teclat",
@@ -330,14 +330,14 @@
"keyboard_shortcuts.open_media": "Obre mèdia",
"keyboard_shortcuts.pinned": "Obre la llista de tuts fixats",
"keyboard_shortcuts.profile": "Obre el perfil de l'autor",
- "keyboard_shortcuts.reply": "Respon a la publicació",
+ "keyboard_shortcuts.reply": "Respon al tut",
"keyboard_shortcuts.requests": "Obre la llista de sol·licituds de seguiment",
"keyboard_shortcuts.search": "Centra la barra de cerca",
"keyboard_shortcuts.spoilers": "Mostra/amaga el camp CW",
"keyboard_shortcuts.start": "Obre la columna \"Primeres passes\"",
"keyboard_shortcuts.toggle_hidden": "Mostra/amaga el text marcat com a sensible",
"keyboard_shortcuts.toggle_sensitivity": "Mostra/amaga contingut",
- "keyboard_shortcuts.toot": "Inicia una nova publicació",
+ "keyboard_shortcuts.toot": "Escriu un nou tut",
"keyboard_shortcuts.unfocus": "Descentra l'àrea de composició de text/cerca",
"keyboard_shortcuts.up": "Apuja a la llista",
"lightbox.close": "Tanca",
@@ -346,7 +346,7 @@
"lightbox.next": "Següent",
"lightbox.previous": "Anterior",
"limited_account_hint.action": "Mostra el perfil de totes maneres",
- "limited_account_hint.title": "Aquest perfil ha estat amagat pels moderadors de {domain}.",
+ "limited_account_hint.title": "Aquest perfil l'han amagat els moderadors de {domain}.",
"lists.account.add": "Afegeix a la llista",
"lists.account.remove": "Elimina de la llista",
"lists.delete": "Elimina la llista",
@@ -396,7 +396,7 @@
"not_signed_in_indicator.not_signed_in": "Necessites iniciar la sessió per a accedir aquest recurs.",
"notification.admin.report": "{name} ha reportat {target}",
"notification.admin.sign_up": "{name} s'ha registrat",
- "notification.favourite": "a {name} li ha agradat la teva publicació",
+ "notification.favourite": "a {name} li ha agradat el teu tut",
"notification.follow": "{name} et segueix",
"notification.follow_request": "{name} ha sol·licitat seguir-te",
"notification.mention": "{name} t'ha mencionat",
@@ -404,7 +404,7 @@
"notification.poll": "Ha finalitzat una enquesta en què has votat",
"notification.reblog": "{name} t'ha impulsat",
"notification.status": "{name} acaba de publicar",
- "notification.update": "{name} ha editat una publicació",
+ "notification.update": "{name} ha editat un tut",
"notifications.clear": "Esborra les notificacions",
"notifications.clear_confirmation": "Segur que vols esborrar permanentment totes les teves notificacions?",
"notifications.column_settings.admin.report": "Nous informes:",
@@ -452,13 +452,13 @@
"poll.votes": "{votes, plural, one {# vot} other {# vots}}",
"poll_button.add_poll": "Afegeix una enquesta",
"poll_button.remove_poll": "Elimina l'enquesta",
- "privacy.change": "Canvia la privacitat de la publicació",
+ "privacy.change": "Canvia la privacitat del tut",
"privacy.direct.long": "Visible només per als usuaris esmentats",
"privacy.direct.short": "Només gent mencionada",
"privacy.private.long": "Visible només per als seguidors",
"privacy.private.short": "Només seguidors",
"privacy.public.long": "Visible per a tothom",
- "privacy.public.short": "Pública",
+ "privacy.public.short": "Públic",
"privacy.unlisted.long": "Visible per a tothom però exclosa de les funcions de descobriment",
"privacy.unlisted.short": "No llistada",
"privacy_policy.last_updated": "Darrera actualització {date}",
@@ -466,16 +466,16 @@
"refresh": "Actualitza",
"regeneration_indicator.label": "Es carrega…",
"regeneration_indicator.sublabel": "Es prepara la teva línia de temps d'Inici!",
- "relative_time.days": "{number} d",
+ "relative_time.days": "{number}d",
"relative_time.full.days": "fa {number, plural, one {# dia} other {# dies}}",
"relative_time.full.hours": "fa {number, plural, one {# hora} other {# hores}}",
"relative_time.full.just_now": "ara mateix",
"relative_time.full.minutes": "fa {number, plural, one {# minut} other {# minuts}}",
"relative_time.full.seconds": "fa {number, plural, one {# segon} other {# segons}}",
- "relative_time.hours": "{number} h",
+ "relative_time.hours": "{number}h",
"relative_time.just_now": "ara",
- "relative_time.minutes": "{number} min",
- "relative_time.seconds": "{number} s",
+ "relative_time.minutes": "{number}min",
+ "relative_time.seconds": "{number}s",
"relative_time.today": "avui",
"reply_indicator.cancel": "Cancel·la",
"report.block": "Bloca",
@@ -486,7 +486,7 @@
"report.category.subtitle": "Tria la millor coincidència",
"report.category.title": "Explica'ns què passa amb això ({type})",
"report.category.title_account": "perfil",
- "report.category.title_status": "publicació",
+ "report.category.title_status": "tut",
"report.close": "Fet",
"report.comment.title": "Hi ha res més que creguis que hauríem de saber?",
"report.forward": "Reenvia a {target}",
@@ -506,7 +506,7 @@
"report.rules.subtitle": "Selecciona totes les aplicables",
"report.rules.title": "Quines regles s'han violat?",
"report.statuses.subtitle": "Selecciona totes les aplicables",
- "report.statuses.title": "Hi ha cap publicació que doni suport a aquest informe?",
+ "report.statuses.title": "Hi ha cap tut que doni suport a aquest informe?",
"report.submit": "Envia",
"report.target": "Es denuncia {target}",
"report.thanks.take_action": "Aquestes són les teves opcions per a controlar el que veus a Mastodon:",
@@ -525,7 +525,7 @@
"search_popout.search_format": "Format de cerca avançada",
"search_popout.tips.full_text": "Text simple recupera tuts que has escrit, els marcats com a favorits, els impulsats o en els que has estat esmentat, així com usuaris, noms d'usuari i etiquetes.",
"search_popout.tips.hashtag": "etiqueta",
- "search_popout.tips.status": "publicació",
+ "search_popout.tips.status": "tut",
"search_popout.tips.text": "El text simple recupera coincidències amb els usuaris, els noms d'usuari i les etiquetes",
"search_popout.tips.user": "usuari",
"search_results.accounts": "Gent",
@@ -539,12 +539,12 @@
"server_banner.about_active_users": "Gent que ha fet servir aquest servidor en els darrers 30 dies (Usuaris Actius Mensuals)",
"server_banner.active_users": "usuaris actius",
"server_banner.administered_by": "Administrat per:",
- "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada, potenciat per {mastodon}.",
+ "server_banner.introduction": "{domain} és part de la xarxa social descentralitzada impulsada per {mastodon}.",
"server_banner.learn_more": "Més informació",
"server_banner.server_stats": "Estadístiques del servidor:",
"sign_in_banner.create_account": "Registra'm",
"sign_in_banner.sign_in": "Inicia sessió",
- "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre publicacions. També pots interactuar des del teu compte a un servidor diferent.",
+ "sign_in_banner.text": "Inicia la sessió per a seguir perfils o etiquetes, afavorir, compartir i respondre tuts. També pots interactuar des del teu compte a un servidor diferent.",
"status.admin_account": "Obre la interfície de moderació per a @{name}",
"status.admin_domain": "Obre la interfície de moderació per a @{domain}",
"status.admin_status": "Obre aquest tut a la interfície de moderació",
@@ -552,7 +552,7 @@
"status.bookmark": "Marca",
"status.cancel_reblog_private": "Desfés l'impuls",
"status.cannot_reblog": "No es pot impulsar aquest tut",
- "status.copy": "Copia l'enllaç a la publicació",
+ "status.copy": "Copia l'enllaç al tut",
"status.delete": "Elimina",
"status.detailed_status": "Vista detallada de la conversa",
"status.direct": "Missatge directe a @{name}",
@@ -563,7 +563,7 @@
"status.favourite": "Favorit",
"status.filter": "Filtra aquesta publicació",
"status.filtered": "Filtrada",
- "status.hide": "Amaga la publicació",
+ "status.hide": "Amaga el tut",
"status.history.created": "creat per {name} {date}",
"status.history.edited": "editat per {name} {date}",
"status.load_more": "Carrega'n més",
@@ -572,9 +572,9 @@
"status.more": "Més",
"status.mute": "Silencia @{name}",
"status.mute_conversation": "Silencia la conversa",
- "status.open": "Amplia la publicació",
+ "status.open": "Amplia el tut",
"status.pin": "Fixa en el perfil",
- "status.pinned": "Publicació fixada",
+ "status.pinned": "Tut fixat",
"status.read_more": "Més informació",
"status.reblog": "Impulsa",
"status.reblog_private": "Impulsa amb la visibilitat original",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index 84f8c70ac0..c664046f0c 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -1,7 +1,7 @@
{
"about.blocks": "Gweinyddion sy'n cael eu cymedroli",
"about.contact": "Cysylltwch â:",
- "about.disclaimer": "Mae Mastodon yn feddalwedd rhydd, cod agored ac o dan hawlfraint Mastodon gGmbH.",
+ "about.disclaimer": "Mae Mastodon yn feddalwedd cod agored rhydd ac o dan hawlfraint Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Nid yw'r rheswm ar gael",
"about.domain_blocks.preamble": "Fel rheol, mae Mastodon yn caniatáu i chi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.",
"about.domain_blocks.silenced.explanation": "Fel rheol, fyddwch chi ddim yn gweld proffiliau a chynnwys o'r gweinydd hwn, oni bai eich bod yn chwilio'n benodol amdano neu yn ymuno drwy ei ddilyn.",
@@ -46,9 +46,9 @@
"account.media": "Cyfryngau",
"account.mention": "Crybwyll @{name}",
"account.moved_to": "Mae {name} wedi nodi fod eu cyfrif newydd yn:",
- "account.mute": "Tewi @{name}",
- "account.mute_notifications": "Tewi hysbysiadau o @{name}",
- "account.muted": "Wedi tewi",
+ "account.mute": "Anwybyddu @{name}",
+ "account.mute_notifications": "Diffodd hysbysiadau o @{name}",
+ "account.muted": "Wedi anwybyddu",
"account.open_original_page": "Agor y dudalen wreiddiol",
"account.posts": "Postiadau",
"account.posts_with_replies": "Postiadau ac atebion",
@@ -491,8 +491,8 @@
"report.comment.title": "Oes unrhyw beth arall y dylem ei wybod yn eich barn chi?",
"report.forward": "Ymlaen i {target}",
"report.forward_hint": "Mae'r cyfrif o weinydd arall. Anfon copi anhysbys o'r adroddiad yno hefyd?",
- "report.mute": "Tewi",
- "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u mudo.",
+ "report.mute": "Anwybyddu",
+ "report.mute_explanation": "Ni fyddwch yn gweld eu postiadau. Gallant eich dilyn o hyd a gweld eich postiadau ac ni fyddant yn gwybod eu bod nhw wedi'u hanwybyddu.",
"report.next": "Nesaf",
"report.placeholder": "Sylwadau ychwanegol",
"report.reasons.dislike": "Dydw i ddim yn ei hoffi",
@@ -538,10 +538,10 @@
"search_results.total": "{count, number} {count, plural, zero {canlyniad} one {canlyniad} two {ganlyniad} other {canlyniad}}",
"server_banner.about_active_users": "Pobl sy'n defnyddio'r gweinydd hwn yn ystod y 30 diwrnod diwethaf (Defnyddwyr Gweithredol Misol)",
"server_banner.active_users": "defnyddwyr gweithredol",
- "server_banner.administered_by": "Yn cael ei weinyddu gan:",
+ "server_banner.administered_by": "Gweinyddir gan:",
"server_banner.introduction": "Mae {domain} yn rhan o'r rhwydwaith cymdeithasol datganoledig a bwerir gan {mastodon}.",
"server_banner.learn_more": "Dysgu mwy",
- "server_banner.server_stats": "Ystagedau'r gweinydd:",
+ "server_banner.server_stats": "Ystadegau'r gweinydd:",
"sign_in_banner.create_account": "Creu cyfrif",
"sign_in_banner.sign_in": "Mewngofnodi",
"sign_in_banner.text": "Mewngofnodwch i ddilyn proffiliau neu hashnodau, ffefrynnau, rhannu ac ateb postiadau. Gallwch hefyd ryngweithio o'ch cyfrif ar weinydd gwahanol.",
@@ -570,8 +570,8 @@
"status.media_hidden": "Cyfryngau wedi'u cuddio",
"status.mention": "Crybwyll @{name}",
"status.more": "Rhagor",
- "status.mute": "Tewi @{name}",
- "status.mute_conversation": "Tewi sgwrs",
+ "status.mute": "Anwybyddu @{name}",
+ "status.mute_conversation": "Anwybyddu sgwrs",
"status.open": "Ehangu'r post hwn",
"status.pin": "Pinio ar y proffil",
"status.pinned": "Postiad wedi'i binio",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index b34864cb0e..7736877d92 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -403,7 +403,7 @@
"notification.own_poll": "Deine Umfrage ist beendet",
"notification.poll": "Eine Umfrage, an der du teilgenommen hast, ist beendet",
"notification.reblog": "{name} teilte deinen Beitrag",
- "notification.status": "{name} hat etwas mitgeteilt",
+ "notification.status": "{name} veröffentlichte gerade",
"notification.update": "{name} bearbeitete einen Beitrag",
"notifications.clear": "Mitteilungen löschen",
"notifications.clear_confirmation": "Bist du dir sicher, dass du diese Mitteilungen für immer löschen möchtest?",
@@ -441,7 +441,7 @@
"notifications.permission_required": "Desktop-Benachrichtigungen sind nicht verfügbar, da die erforderliche Berechtigung nicht erteilt wurde.",
"notifications_permission_banner.enable": "Aktiviere Desktop-Benachrichtigungen",
"notifications_permission_banner.how_to_control": "Um Benachrichtigungen zu erhalten, wenn Mastodon nicht geöffnet ist, aktiviere die Desktop-Benachrichtigungen. Du kannst genau bestimmen, welche Arten von Interaktionen Desktop-Benachrichtigungen über die {icon} -Taste erzeugen, sobald diese aktiviert sind.",
- "notifications_permission_banner.title": "Verpasse nie etwas",
+ "notifications_permission_banner.title": "Nichts verpassen",
"picture_in_picture.restore": "Zurücksetzen",
"poll.closed": "Beendet",
"poll.refresh": "Aktualisieren",
@@ -457,7 +457,7 @@
"privacy.direct.short": "Nur erwähnte Profile",
"privacy.private.long": "Nur für deine Follower sichtbar",
"privacy.private.short": "Nur Follower",
- "privacy.public.long": "Für alle sichtbar",
+ "privacy.public.long": "Für alle sichtbar, auch für nicht-registrierte bzw. nicht-angemeldete Nutzer*innen",
"privacy.public.short": "Öffentlich",
"privacy.unlisted.long": "Sichtbar für alle, aber nicht über Suchfunktion",
"privacy.unlisted.short": "Nicht gelistet",
@@ -489,7 +489,7 @@
"report.category.title_status": "Beitrag",
"report.close": "Fertig",
"report.comment.title": "Gibt es etwas anderes, was wir wissen sollten?",
- "report.forward": "An {target} weiterleiten",
+ "report.forward": "Meldung zusätzlich an {target} weiterleiten",
"report.forward_hint": "Dieses Konto gehört zu einem anderen Server. Soll eine anonymisierte Kopie der Meldung auch dorthin geschickt werden?",
"report.mute": "Stummschalten",
"report.mute_explanation": "Du wirst die Beiträge vom Konto nicht mehr sehen. Das Konto kann dir immer noch folgen, und die Person hinter dem Konto wird deine Beiträge sehen können und nicht wissen, dass du sie stummgeschaltet hast.",
@@ -501,18 +501,18 @@
"report.reasons.other_description": "Der Vorfall passt zu keiner dieser Kategorien",
"report.reasons.spam": "Das ist Spam",
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
- "report.reasons.violation": "Es verstößt gegen Serverregeln",
+ "report.reasons.violation": "Er verstößt gegen Serverregeln",
"report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt",
"report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus",
"report.rules.title": "Welche Regeln werden verletzt?",
"report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus",
- "report.statuses.title": "Gibt es Beiträge, die diesen Bericht unterstützen?",
+ "report.statuses.title": "Gibt es Beiträge, die diesen Bericht untermauern?",
"report.submit": "Abschicken",
"report.target": "{target} melden",
"report.thanks.take_action": "Das sind deine Möglichkeiten zu bestimmen, was du auf Mastodon sehen möchtest:",
"report.thanks.take_action_actionable": "Während wir den Vorfall überprüfen, kannst du gegen @{name} weitere Maßnahmen ergreifen:",
"report.thanks.title": "Möchtest du das nicht mehr sehen?",
- "report.thanks.title_actionable": "Vielen Dank für die Meldung, wir werden uns das ansehen.",
+ "report.thanks.title_actionable": "Vielen Dank für die Meldung! Wir werden uns das ansehen.",
"report.unfollow": "@{name} entfolgen",
"report.unfollow_explanation": "Du folgst diesem Konto. Um die Beiträge nicht mehr auf deiner Startseite zu sehen, entfolge dem Konto.",
"report_notification.attached_statuses": "{count, plural, one {{count} angehangener Beitrag} other {{count} angehängte Beiträge}}",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index b371e0e9e2..0c6b49593a 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Atajos de teclado",
"footer.privacy_policy": "Política de privacidad",
"footer.source_code": "Ver código fuente",
- "footer.status": "Status",
+ "footer.status": "Estado",
"generic.saved": "Guardado",
"getting_started.heading": "Primeros pasos",
"hashtag.column_header.tag_mode.all": "y {additional}",
diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json
index 1ad8e9353d..4b72586856 100644
--- a/app/javascript/mastodon/locales/fr-QC.json
+++ b/app/javascript/mastodon/locales/fr-QC.json
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Raccourcis clavier",
"footer.privacy_policy": "Politique de confidentialité",
"footer.source_code": "Voir le code source",
- "footer.status": "Status",
+ "footer.status": "État",
"generic.saved": "Sauvegardé",
"getting_started.heading": "Pour commencer",
"hashtag.column_header.tag_mode.all": "et {additional}",
@@ -563,7 +563,7 @@
"status.favourite": "Ajouter aux favoris",
"status.filter": "Filtrer cette publication",
"status.filtered": "Filtrée",
- "status.hide": "Masquer la publication",
+ "status.hide": "Masquer le message",
"status.history.created": "créé par {name} {date}",
"status.history.edited": "modifié par {name} {date}",
"status.load_more": "Charger plus",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index 9ff4910ef0..cf428b3d8c 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -123,7 +123,7 @@
"column_subheading.settings": "설정",
"community.column_settings.local_only": "로컬만",
"community.column_settings.media_only": "미디어만",
- "community.column_settings.remote_only": "원격만",
+ "community.column_settings.remote_only": "원격지만",
"compose.language.change": "언어 변경",
"compose.language.search": "언어 검색...",
"compose_form.direct_message_warning_learn_more": "더 알아보기",
@@ -170,7 +170,7 @@
"confirmations.redraft.confirm": "삭제하고 다시 쓰기",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 좋아요를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
"confirmations.reply.confirm": "답글",
- "confirmations.reply.message": "답글을 달기 위해 현재 작성 중인 메시지가 덮어 씌워집니다. 진행하시겠습니까?",
+ "confirmations.reply.message": "지금 답장하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?",
"confirmations.unfollow.confirm": "팔로우 해제",
"confirmations.unfollow.message": "정말로 {name} 님을 팔로우 해제하시겠습니까?",
"conversation.delete": "대화 삭제",
@@ -192,7 +192,7 @@
"dismissable_banner.explore_tags": "이 해시태그들은 이 서버와 분산화된 네트워크의 다른 서버에서 사람들의 인기를 끌고 있는 것들입니다.",
"dismissable_banner.public_timeline": "이 게시물들은 이 서버와 이 서버가 알고있는 분산화된 네트워크의 다른 서버에서 사람들이 게시한 최근 공개 게시물들입니다.",
"embed.instructions": "아래의 코드를 복사하여 대화를 원하는 곳으로 공유하세요.",
- "embed.preview": "이렇게 표시됩니다:",
+ "embed.preview": "여기처럼 보여집니다.",
"emoji_button.activity": "활동",
"emoji_button.clear": "지우기",
"emoji_button.custom": "사용자 지정",
@@ -355,9 +355,9 @@
"lists.new.create": "리스트 추가",
"lists.new.title_placeholder": "새 리스트의 이름",
"lists.replies_policy.followed": "팔로우 한 사용자 누구나",
- "lists.replies_policy.list": "리스트의 구성원들",
- "lists.replies_policy.none": "아무도 없음",
- "lists.replies_policy.title": "답글 표시:",
+ "lists.replies_policy.list": "리스트의 구성원",
+ "lists.replies_policy.none": "고르지 않음",
+ "lists.replies_policy.title": "답글을 볼 대상",
"lists.search": "팔로우 중인 사람들 중에서 찾기",
"lists.subheading": "리스트",
"load_pending": "{count}개의 새 항목",
@@ -389,7 +389,7 @@
"navigation_bar.mutes": "뮤트한 사용자",
"navigation_bar.personal": "개인용",
"navigation_bar.pins": "고정된 게시물",
- "navigation_bar.preferences": "사용자 설정",
+ "navigation_bar.preferences": "환경설정",
"navigation_bar.public_timeline": "연합 타임라인",
"navigation_bar.search": "검색",
"navigation_bar.security": "보안",
@@ -399,7 +399,7 @@
"notification.favourite": "{name} 님이 당신의 게시물을 마음에 들어합니다",
"notification.follow": "{name} 님이 나를 팔로우했습니다",
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
- "notification.mention": "{name} 님이 언급하였습니다",
+ "notification.mention": "{name}님의 멘션",
"notification.own_poll": "내 투표가 끝났습니다",
"notification.poll": "참여했던 투표가 끝났습니다.",
"notification.reblog": "{name} 님이 부스트했습니다",
@@ -411,12 +411,12 @@
"notifications.column_settings.admin.sign_up": "새로운 가입:",
"notifications.column_settings.alert": "데스크탑 알림",
"notifications.column_settings.favourite": "좋아요:",
- "notifications.column_settings.filter_bar.advanced": "카테고리의 모든 종류를 표시",
- "notifications.column_settings.filter_bar.category": "퀵 필터 바",
- "notifications.column_settings.filter_bar.show_bar": "필터 막대 표시",
+ "notifications.column_settings.filter_bar.advanced": "모든 범주 표시하기",
+ "notifications.column_settings.filter_bar.category": "빠른 필터 막대",
+ "notifications.column_settings.filter_bar.show_bar": "필터 막대 보이기",
"notifications.column_settings.follow": "새 팔로워:",
"notifications.column_settings.follow_request": "새 팔로우 요청:",
- "notifications.column_settings.mention": "답글:",
+ "notifications.column_settings.mention": "멘션:",
"notifications.column_settings.poll": "투표 결과:",
"notifications.column_settings.push": "푸시 알림",
"notifications.column_settings.reblog": "부스트:",
@@ -523,7 +523,7 @@
"search.placeholder": "검색",
"search.search_or_paste": "검색하거나 URL 붙여넣기",
"search_popout.search_format": "고급 검색 방법",
- "search_popout.tips.full_text": "단순한 텍스트 검색은 당신이 작성했거나, 관심글로 지정했거나, 부스트했거나, 멘션을 받은 게시글, 그리고 사용자명, 표시되는 이름, 해시태그를 반환합니다.",
+ "search_popout.tips.full_text": "단순한 텍스트 검색은 작성한 게시물 그리고 좋아요, 부스트, 받은 멘션, 사용자명, 표시 이름, 해시태그를 반환합니다.",
"search_popout.tips.hashtag": "해시태그",
"search_popout.tips.status": "게시물",
"search_popout.tips.text": "단순한 텍스트 검색은 관계된 프로필 이름, 사용자명 그리고 해시태그를 표시합니다",
@@ -568,7 +568,7 @@
"status.history.edited": "{name} 님이 {date}에 수정함",
"status.load_more": "더 보기",
"status.media_hidden": "미디어 숨겨짐",
- "status.mention": "@{name} 님에게 글 쓰기",
+ "status.mention": "@{name}님에게 멘션",
"status.more": "자세히",
"status.mute": "@{name} 님을 뮤트하기",
"status.mute_conversation": "이 대화를 뮤트",
@@ -589,7 +589,7 @@
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
"status.show_filter_reason": "그냥 표시하기",
- "status.show_less": "숨기기",
+ "status.show_less": "적게 보기",
"status.show_less_all": "모두 접기",
"status.show_more": "더 보기",
"status.show_more_all": "모두 펼치기",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index f54a92378c..ba14ec5c0c 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -258,7 +258,7 @@
"filter_modal.select_filter.subtitle": "Izmanto esošu kategoriju vai izveido jaunu",
"filter_modal.select_filter.title": "Filtrēt šo ziņu",
"filter_modal.title.status": "Filtrēt ziņu",
- "follow_recommendations.done": "Darīts",
+ "follow_recommendations.done": "Izpildīts",
"follow_recommendations.heading": "Seko cilvēkiem, no kuriem vēlies redzēt ziņas! Šeit ir daži ieteikumi.",
"follow_recommendations.lead": "Ziņas no cilvēkiem, kuriem seko, mājas plūsmā tiks parādītas hronoloģiskā secībā. Nebaidies kļūdīties, tu tikpat viegli vari pārtraukt sekot cilvēkiem jebkurā laikā!",
"follow_request.authorize": "Autorizēt",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index d39ede21d0..366544d2a2 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -197,14 +197,14 @@
"emoji_button.clear": "ရှင်းလင်းမည်",
"emoji_button.custom": "Custom",
"emoji_button.flags": "Flags",
- "emoji_button.food": "Food & Drink",
+ "emoji_button.food": "အစားအသောက်",
"emoji_button.label": "Insert emoji",
- "emoji_button.nature": "Nature",
+ "emoji_button.nature": "သဘာဝ",
"emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects",
- "emoji_button.people": "People",
- "emoji_button.recent": "Frequently used",
- "emoji_button.search": "Search...",
+ "emoji_button.people": "လူများ",
+ "emoji_button.recent": "မကြာခဏ အသုံးပြုသော",
+ "emoji_button.search": "ရှာရန်...",
"emoji_button.search_results": "Search results",
"emoji_button.symbols": "Symbols",
"emoji_button.travel": "Travel & Places",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 75e6f7edf0..32845ab64f 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -168,7 +168,7 @@
"confirmations.mute.explanation": "Это действие скроет посты данного пользователя и те, в которых он упоминается, но при этом он по-прежнему сможет подписаться и смотреть ваши посты.",
"confirmations.mute.message": "Вы уверены, что хотите добавить {name} в список игнорируемых?",
"confirmations.redraft.confirm": "Удалить и исправить",
- "confirmations.redraft.message": "Вы уверены, что хотите отредактировать этот пост? Старый пост будет удалён, а вместе с ним пропадут отметки «В избранное», продвижения и ответы.",
+ "confirmations.redraft.message": "Вы уверены, что хотите удалить и переписать этот пост? Отметки «избранного», продвижения и ответы к оригинальному посту будут удалены.",
"confirmations.reply.confirm": "Ответить",
"confirmations.reply.message": "При ответе, текст набираемого поста будет очищен. Продолжить?",
"confirmations.unfollow.confirm": "Отписаться",
@@ -200,10 +200,10 @@
"emoji_button.food": "Еда и напитки",
"emoji_button.label": "Вставить эмодзи",
"emoji_button.nature": "Природа",
- "emoji_button.not_found": "Нет эмодзи!! (╯°□°)╯︵ ┻━┻",
+ "emoji_button.not_found": "Подходящие эмодзи не найдены",
"emoji_button.objects": "Предметы",
"emoji_button.people": "Люди",
- "emoji_button.recent": "Последние",
+ "emoji_button.recent": "Часто используемые",
"emoji_button.search": "Найти...",
"emoji_button.search_results": "Результаты поиска",
"emoji_button.symbols": "Символы",
@@ -229,7 +229,7 @@
"empty_column.lists": "У вас ещё нет списков. Созданные вами списки будут показаны здесь.",
"empty_column.mutes": "Вы ещё никого не добавляли в список игнорируемых.",
"empty_column.notifications": "У вас пока нет уведомлений. Взаимодействуйте с другими, чтобы завести разговор.",
- "empty_column.public": "Здесь совсем пусто. Опубликуйте что-нибудь или подпишитесь на пользователей с других сообществ, чтобы заполнить ленту",
+ "empty_column.public": "Здесь ничего нет! Опубликуйте что-нибудь или подпишитесь на пользователей с других узлов, чтобы заполнить ленту",
"error.unexpected_crash.explanation": "Из-за несовместимого браузера или ошибки в нашем коде, эта страница не может быть корректно отображена.",
"error.unexpected_crash.explanation_addons": "Эта страница не может быть корректно отображена. Скорее всего, эта ошибка вызвана расширением браузера или инструментом автоматического перевода.",
"error.unexpected_crash.next_steps": "Попробуйте обновить страницу. Если проблема не исчезает, используйте Mastodon из-под другого браузера или приложения.",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index aaac5b7842..e2db4627ec 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -626,7 +626,7 @@
"upload_area.title": "ลากแล้วปล่อยเพื่ออัปโหลด",
"upload_button.label": "เพิ่มไฟล์ภาพ, วิดีโอ หรือเสียง",
"upload_error.limit": "เกินขีดจำกัดการอัปโหลดไฟล์",
- "upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน",
+ "upload_error.poll": "ไม่อนุญาตการอัปโหลดไฟล์โดยมีการสำรวจความคิดเห็น",
"upload_form.audio_description": "อธิบายสำหรับผู้ที่สูญเสียการได้ยิน",
"upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น",
"upload_form.description_missing": "ไม่มีการเพิ่มคำอธิบาย",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index f99a1c00c7..5c6f539aa7 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -128,7 +128,7 @@
"compose.language.search": "搜尋語言...",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.encryption_warning": "Mastodon 上的帖文並未端對端加密。請不要透過 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.hashtag_warning": "由於此帖文並非公開,因此它不會列在標籤下。只有公開帖文才可以經標籤搜尋。",
"compose_form.lock_disclaimer": "你的用戶狀態沒有{locked},任何人都能立即關注你,然後看到「只有關注者能看」的文章。",
"compose_form.lock_disclaimer.lock": "鎖定",
"compose_form.placeholder": "你在想甚麼?",
@@ -221,7 +221,7 @@
"empty_column.favourites": "還沒有人收藏這則文章。這裡將會顯示被收藏的嘟文。",
"empty_column.follow_recommendations": "似乎未能替您產生任何建議。您可以試著搜尋您知道的帳戶或者探索熱門主題標籤",
"empty_column.follow_requests": "您尚未收到任何追蹤請求。這裡將會顯示收到的追蹤請求。",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "你還沒有追蹤標籤。當你追蹤後,標籤將顯示在此處。",
"empty_column.hashtag": "這個標籤暫時未有內容。",
"empty_column.home": "你還沒有關注任何使用者。快看看{public},向其他使用者搭訕吧。",
"empty_column.home.suggestions": "檢視部份建議",
@@ -264,7 +264,7 @@
"follow_request.authorize": "批准",
"follow_request.reject": "拒絕",
"follow_requests.unlocked_explanation": "即使您的帳號未上鎖,{domain} 的工作人員認為您可能會想手動審核來自這些帳號的追蹤請求。",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "已追蹤標籤",
"footer.about": "關於",
"footer.directory": "個人檔案目錄",
"footer.get_app": "取得應用程式",
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "鍵盤快速鍵",
"footer.privacy_policy": "私隱政策",
"footer.source_code": "查看原始碼",
- "footer.status": "Status",
+ "footer.status": "狀態",
"generic.saved": "已儲存",
"getting_started.heading": "開始使用",
"hashtag.column_header.tag_mode.all": "以及{additional}",
@@ -382,7 +382,7 @@
"navigation_bar.favourites": "最愛的內容",
"navigation_bar.filters": "靜音詞彙",
"navigation_bar.follow_requests": "追蹤請求",
- "navigation_bar.followed_tags": "Followed hashtags",
+ "navigation_bar.followed_tags": "已追蹤標籤",
"navigation_bar.follows_and_followers": "追蹤及追蹤者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
@@ -544,9 +544,9 @@
"server_banner.server_stats": "伺服器統計:",
"sign_in_banner.create_account": "建立帳號",
"sign_in_banner.sign_in": "登入",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
+ "sign_in_banner.text": "登入以追蹤個人檔案和標籤,或最愛、分享和回覆帖文。你也可以使用帳戶在其他伺服器上互動。",
"status.admin_account": "開啟 @{name} 的管理介面",
- "status.admin_domain": "Open moderation interface for {domain}",
+ "status.admin_domain": "打開 {domain} 管理介面",
"status.admin_status": "在管理介面開啟這篇文章",
"status.block": "封鎖 @{name}",
"status.bookmark": "書籤",
@@ -563,7 +563,7 @@
"status.favourite": "最愛",
"status.filter": "篩選此帖文",
"status.filtered": "已過濾",
- "status.hide": "Hide post",
+ "status.hide": "隱藏帖文",
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 編輯",
"status.load_more": "載入更多",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 405e526bb8..3af82e86ed 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -1,15 +1,15 @@
{
- "about.blocks": "受管制的伺服器",
+ "about.blocks": "被限制的伺服器",
"about.contact": "聯絡我們:",
"about.disclaimer": "Mastodon 是一個自由的開源軟體,是 Mastodon gGmbH 的註冊商標。",
- "about.domain_blocks.no_reason_available": "無法存取之原因",
- "about.domain_blocks.preamble": "Mastodon 一般來說允許您閱讀並和聯邦宇宙上任何伺服器的使用者互動。這些伺服器是這個站台設下的例外。",
- "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確地打開或著跟隨此個人檔案。",
- "about.domain_blocks.silenced.title": "受限的",
- "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法和此伺服器上的使用者互動與溝通。",
+ "about.domain_blocks.no_reason_available": "無法存取的原因",
+ "about.domain_blocks.preamble": "Mastodon 基本上允許您瀏覽聯邦宇宙中任何伺服器的內容並與使用者互動。以下是在本伺服器上設定的例外。",
+ "about.domain_blocks.silenced.explanation": "一般來說您不會看到來自這個伺服器的個人檔案和內容,除非您明確搜尋或主動跟隨對方。",
+ "about.domain_blocks.silenced.title": "已受限",
+ "about.domain_blocks.suspended.explanation": "來自此伺服器的資料都不會被處理、儲存或交換,也無法與此伺服器上的使用者互動或交流。",
"about.domain_blocks.suspended.title": "已停權",
- "about.not_available": "這個資料於此伺服器上不可存取。",
- "about.powered_by": "由 {mastodon} 提供之去中心化社群媒體",
+ "about.not_available": "無法在本伺服器上使用此資訊。",
+ "about.powered_by": "由 {mastodon} 提供的去中心化社群媒體",
"about.rules": "伺服器規則",
"account.account_note_header": "備註",
"account.add_or_remove_from_list": "從列表中新增或移除",
@@ -18,9 +18,9 @@
"account.block": "封鎖 @{name}",
"account.block_domain": "封鎖來自 {domain} 網域的所有內容",
"account.blocked": "已封鎖",
- "account.browse_more_on_origin_server": "於該伺服器的個人檔案頁上瀏覽更多",
+ "account.browse_more_on_origin_server": "在該伺服器上的個人檔案頁面瀏覽更多",
"account.cancel_follow_request": "收回跟隨請求",
- "account.direct": "傳私訊給 @{name}",
+ "account.direct": "私訊 @{name}",
"account.disable_notifications": "取消來自 @{name} 嘟文的通知",
"account.domain_blocked": "已封鎖網域",
"account.edit_profile": "編輯個人檔案",
@@ -42,7 +42,7 @@
"account.joined_short": "加入時間",
"account.languages": "變更訂閱的語言",
"account.link_verified_on": "已於 {date} 檢查此連結的擁有者權限",
- "account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能跟隨此帳號的人。",
+ "account.locked_info": "此帳號的隱私狀態設定為鎖定。該擁有者會手動審核能跟隨此帳號的人。",
"account.media": "媒體",
"account.mention": "提及 @{name}",
"account.moved_to": "{name} 現在的新帳號為:",
@@ -58,15 +58,15 @@
"account.share": "分享 @{name} 的個人檔案",
"account.show_reblogs": "顯示來自 @{name} 的嘟文",
"account.statuses_counter": "{count, plural,one {{counter} 則}other {{counter} 則}}嘟文",
- "account.unblock": "取消封鎖 @{name}",
- "account.unblock_domain": "取消封鎖域名 {domain}",
+ "account.unblock": "解除封鎖 @{name}",
+ "account.unblock_domain": "解除封鎖網域 {domain}",
"account.unblock_short": "解除封鎖",
- "account.unendorse": "不再於個人檔案頁面推薦對方",
+ "account.unendorse": "取消在個人檔案推薦對方",
"account.unfollow": "取消跟隨",
- "account.unmute": "取消靜音 @{name}",
+ "account.unmute": "解除靜音 @{name}",
"account.unmute_notifications": "重新接收來自 @{name} 的通知",
"account.unmute_short": "解除靜音",
- "account_note.placeholder": "按此添加備注",
+ "account_note.placeholder": "按此新增備註",
"admin.dashboard.daily_retention": "註冊後使用者存留率(日)",
"admin.dashboard.monthly_retention": "註冊後使用者存留率(月)",
"admin.dashboard.retention.average": "平均",
@@ -93,10 +93,10 @@
"bundle_modal_error.close": "關閉",
"bundle_modal_error.message": "載入此元件時發生錯誤。",
"bundle_modal_error.retry": "重試",
- "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,所以您也能於其他伺服器上建立帳號,並仍然與這個伺服器互動。",
+ "closed_registrations.other_server_instructions": "因為 Mastodon 是去中心化的,您可以在其他伺服器上也建立帳號,並繼續與這個伺服器互動。",
"closed_registrations_modal.description": "目前無法在 {domain} 建立新帳號,但也請別忘了,您並不一定需要有 {domain} 伺服器的帳號,也能使用 Mastodon 。",
"closed_registrations_modal.find_another_server": "尋找另一個伺服器",
- "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器新增帳號,都可以與此伺服器上的任何人跟隨及互動。您甚至能自行架一個自己的伺服器!",
+ "closed_registrations_modal.preamble": "Mastodon 是去中心化的,所以無論您在哪個伺服器上建立帳號,都可以跟隨並與此伺服器上的任何人互動。您甚至能架一個自己的伺服器!",
"closed_registrations_modal.title": "註冊 Mastodon",
"column.about": "關於",
"column.blocks": "已封鎖的使用者",
@@ -128,8 +128,8 @@
"compose.language.search": "搜尋語言...",
"compose_form.direct_message_warning_learn_more": "了解更多",
"compose_form.encryption_warning": "Mastodon 上的嘟文並未進行端到端加密。請不要透過 Mastodon 分享任何敏感資訊。",
- "compose_form.hashtag_warning": "由於這則嘟文設定為「不公開」,它將不被列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤被找到。",
- "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只有跟隨者能看的嘟文。",
+ "compose_form.hashtag_warning": "由於這則嘟文設定為非公開,將不會列於任何主題標籤下。只有公開的嘟文才能藉由主題標籤被找到。",
+ "compose_form.lock_disclaimer": "您的帳號尚未 {locked}。任何人皆能跟隨您並看到您設定成只對跟隨者顯示的嘟文。",
"compose_form.lock_disclaimer.lock": "上鎖",
"compose_form.placeholder": "正在想些什麼嗎?",
"compose_form.poll.add_option": "新增選項",
@@ -151,22 +151,22 @@
"confirmation_modal.cancel": "取消",
"confirmations.block.block_and_report": "封鎖並檢舉",
"confirmations.block.confirm": "封鎖",
- "confirmations.block.message": "您確定要封鎖 {name} ?",
+ "confirmations.block.message": "您確定要封鎖 {name} 嗎?",
"confirmations.cancel_follow_request.confirm": "收回跟隨請求",
"confirmations.cancel_follow_request.message": "您確定要收回跟隨 {name} 的請求嗎?",
"confirmations.delete.confirm": "刪除",
- "confirmations.delete.message": "您確定要刪除這則嘟文?",
+ "confirmations.delete.message": "您確定要刪除這則嘟文嗎?",
"confirmations.delete_list.confirm": "刪除",
- "confirmations.delete_list.message": "您確定要永久刪除此列表?",
+ "confirmations.delete_list.message": "您確定要永久刪除此列表嗎?",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
- "confirmations.domain_block.confirm": "封鎖整個域名",
- "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳號能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
+ "confirmations.domain_block.confirm": "封鎖整個網域",
+ "confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "您確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
"confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。",
- "confirmations.mute.message": "您確定要靜音 {name} ?",
+ "confirmations.mute.message": "您確定要靜音 {name} 嗎?",
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "您確定要刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
@@ -185,12 +185,12 @@
"directory.recently_active": "最近活躍",
"disabled_account_banner.account_settings": "帳號設定",
"disabled_account_banner.text": "您的帳號 {disabledAccount} 目前已停用。",
- "dismissable_banner.community_timeline": "這些是 {domain} 上面託管帳號之最新公開嘟文。",
+ "dismissable_banner.community_timeline": "這些是託管於 {domain} 上帳號之最新公開嘟文。",
"dismissable_banner.dismiss": "關閉",
"dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
- "dismissable_banner.explore_statuses": "這些於這個伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
+ "dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
"dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
- "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。",
+ "dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。",
"embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。",
"embed.preview": "它將顯示成這樣:",
"emoji_button.activity": "活動",
@@ -208,10 +208,10 @@
"emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點",
- "empty_column.account_suspended": "帳號被暫停",
+ "empty_column.account_suspended": "帳號已被停權",
"empty_column.account_timeline": "這裡還沒有嘟文!",
"empty_column.account_unavailable": "無法取得個人檔案",
- "empty_column.blocks": "您還沒有封鎖任何使用者。",
+ "empty_column.blocks": "您尚未封鎖任何使用者。",
"empty_column.bookmarked_statuses": "您還沒有建立任何書籤。當您建立書籤時,它將於此顯示。",
"empty_column.community": "本站時間軸是空的。快公開嘟些文搶頭香啊!",
"empty_column.direct": "您還沒有任何私訊。當您私訊別人或收到私訊時,它將於此顯示。",
@@ -227,9 +227,9 @@
"empty_column.home.suggestions": "檢視部份建議",
"empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。",
"empty_column.lists": "您還沒有建立任何列表。當您建立列表時,它將於此顯示。",
- "empty_column.mutes": "您還沒有靜音任何使用者。",
+ "empty_column.mutes": "您尚未靜音任何使用者。",
"empty_column.notifications": "您還沒有收到任何通知,當您和別人開始互動時,它將於此顯示。",
- "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了",
+ "empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或者跟隨其他伺服器的使用者後,就會有嘟文出現了",
"error.unexpected_crash.explanation": "由於發生系統故障或瀏覽器相容性問題,無法正常顯示此頁面。",
"error.unexpected_crash.explanation_addons": "此頁面無法被正常顯示,這可能是由瀏覽器附加元件或網頁自動翻譯工具造成的。",
"error.unexpected_crash.next_steps": "請嘗試重新整理頁面。如果狀況沒有改善,您可以使用不同的瀏覽器或應用程式來檢視來使用 Mastodon。",
@@ -328,7 +328,7 @@
"keyboard_shortcuts.my_profile": "開啟個人檔案頁面",
"keyboard_shortcuts.notifications": "開啟通知欄",
"keyboard_shortcuts.open_media": "開啟媒體",
- "keyboard_shortcuts.pinned": "開啟釘選嘟文列表",
+ "keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
"keyboard_shortcuts.reply": "回應嘟文",
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
@@ -370,7 +370,7 @@
"mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?",
"mute_modal.indefinite": "無期限",
"navigation_bar.about": "關於",
- "navigation_bar.blocks": "封鎖使用者",
+ "navigation_bar.blocks": "已封鎖的使用者",
"navigation_bar.bookmarks": "書籤",
"navigation_bar.community_timeline": "本站時間軸",
"navigation_bar.compose": "撰寫新嘟文",
@@ -380,13 +380,13 @@
"navigation_bar.edit_profile": "編輯個人檔案",
"navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
- "navigation_bar.filters": "靜音詞彙",
+ "navigation_bar.filters": "已靜音的關鍵字",
"navigation_bar.follow_requests": "跟隨請求",
"navigation_bar.followed_tags": "已跟隨主題標籤",
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
- "navigation_bar.mutes": "靜音的使用者",
+ "navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.personal": "個人",
"navigation_bar.pins": "釘選嘟文",
"navigation_bar.preferences": "偏好設定",
@@ -453,13 +453,13 @@
"poll_button.add_poll": "建立投票",
"poll_button.remove_poll": "移除投票",
"privacy.change": "調整嘟文隱私狀態",
- "privacy.direct.long": "只有被提及的使用者能看到",
+ "privacy.direct.long": "只對被提及的使用者顯示",
"privacy.direct.short": "僅限提及的人",
- "privacy.private.long": "只有跟隨您的使用者能看到",
+ "privacy.private.long": "只對跟隨者顯示",
"privacy.private.short": "僅限跟隨者",
- "privacy.public.long": "對所有人可見",
+ "privacy.public.long": "對所有人顯示",
"privacy.public.short": "公開",
- "privacy.unlisted.long": "對所有人可見,但選擇退出探索功能",
+ "privacy.unlisted.long": "對所有人顯示,但關閉探索功能",
"privacy.unlisted.short": "不公開",
"privacy_policy.last_updated": "最後更新:{date}",
"privacy_policy.title": "隱私權政策",
@@ -567,7 +567,7 @@
"status.history.created": "{name} 於 {date} 建立",
"status.history.edited": "{name} 於 {date} 修改",
"status.load_more": "載入更多",
- "status.media_hidden": "隱藏媒體內容",
+ "status.media_hidden": "隱藏的媒體內容",
"status.mention": "提及 @{name}",
"status.more": "更多",
"status.mute": "靜音 @{name}",
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index fc46d09181..0c25cea8c0 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -4,7 +4,7 @@ de:
attributes:
poll:
expires_at: Abstimmungsende
- options: Auswahlmöglichkeiten
+ options: Auswahlfelder
user:
agreement: Service-Vereinbarung
email: E-Mail-Adresse
@@ -47,9 +47,9 @@ de:
user_role:
attributes:
permissions_as_keys:
- dangerous: enthält Berechtigungen, welche nicht sicher sind für die Basisrolle
+ dangerous: enthält Berechtigungen, die für die Basisrolle nicht sicher sind
elevated: kann keine Berechtigungen enthalten, die deine aktuelle Rolle nicht besitzt
own_role: kann nicht mit deiner aktuellen Rolle geändert werden
position:
- elevated: kann nicht höher sein als deine aktuelle Rolle
- own_role: kann nicht mit deiner aktuellen Rolle geändert werden
+ elevated: darf nicht höher als deine derzeitige Rolle sein
+ own_role: darf nicht mit deiner aktuellen Rolle geändert werden
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 0f2423bfbc..b1b32fc123 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1116,8 +1116,6 @@ an:
storage: Almagazenamiento
featured_tags:
add_new: Anyadir nuevo
- errors:
- limit: Ya has aconseguiu la cantidat maxima de hashtags
hint_html: "Qué son las etiquetas destacadas? S'amuestran de forma prominent en o tuyo perfil publico y permiten a los usuarios navegar per las tuyas publicacions publicas especificament baixo ixas etiquetas. Son una gran ferramienta pa fer un seguimiento de treballos creativos u prochectos a largo plazo."
filters:
contexts:
@@ -1227,9 +1225,6 @@ an:
expires_at: Expira
uses: Usos
title: Convidar a chent
- lists:
- errors:
- limit: Has aconseguiu la cantidat maxima de listas
login_activities:
authentication_methods:
otp: aplicación d'autenticación en dos pasos
@@ -1549,7 +1544,6 @@ an:
'7889238': 3 meses
min_age_label: Branquil de tiempo
min_favs: Mantener mensaches con un numero de favoritos mayor que
- min_favs_hint: No borra garra d'as publicacions que haigan recibiu mas d'esta cantidat de favoritos. Deixa en blanco pa eliminar publicacions sin importar lo numero de favoritos
min_reblogs: Mantener publicacions reblogueadas mas de
min_reblogs_hint: No borra garra d'as publicacions que haigan estau reblogueadas mas d'este numero de vegadas. Deixa en blanco pa eliminar publicacions sin importar lo numero de reblogueos
stream_entries:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index e9a7c3374a..e8b1de6a93 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -99,6 +99,7 @@ ar:
moderation:
active: نشِط
all: الكل
+ disabled: مُعطَّل
pending: قيد المراجعة
silenced: محدود
suspended: مُجَمَّد
@@ -138,6 +139,7 @@ ar:
search: البحث
search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني
search_same_ip: مستخدِمون آخرون بنفس الـ IP
+ security: الأمان
security_measures:
only_password: كلمة المرور فقط
password_and_2fa: كلمة المرور و 2FA
@@ -431,6 +433,7 @@ ar:
resolve: العثور على عنوان النطاق
title: إضافة نطاق بريد جديد إلى اللائحة السوداء
no_email_domain_block_selected: لم يطرأ أي تغيير على أي نطاق بريد بما أنه لم يتم اختيار أي نطاق
+ not_permitted: غير مسموح به
resolved_dns_records_hint_html: عنوان النطاق يعود لخوادم البريد (MX) التالية وهو ما يسمح للنطاق باستقبال البريد. حظر خوادم البريد هذه سوف يتسبب في منع أي تسجيل خلال أي نطاق يستخدم هذه الخوادم حتى لو كان اسم النطاق مختلف عن اسماء خوادم البريد.احذر من حظر مزودي البريد العالميين.
resolved_through_html: الحصول على العنوان من خلال %{domain}
title: القائمة السوداء للبريد الإلكتروني
@@ -478,6 +481,7 @@ ar:
content_policies:
comment: ملاحظة داخلية
description_html: يمكنك تحديد سياسات المحتوى التي سيتم تطبيقها على جميع حسابات هذا النطاق وأي من نطاقاته الفرعية.
+ limited_federation_mode_description_html: يمكنك أن تختار بين السماح أو عدم السماح بالفديرالية مع هذا النطاق.
policies:
reject_media: رفض الوسائط
reject_reports: رفض الشكاوى
@@ -597,11 +601,13 @@ ar:
assign_to_self: عين لي
assigned: تعين رئيس
by_target_domain: نطاق الحساب المبلّغ عنه
+ cancel: إلغاء
category: الفئة
category_description_html: سيشار إلى سبب الإبلاغ عن هذا الحساب و/أو المحتوى في الاتصال بالحساب المبلغ عنه
comment:
none: لا شيء
comment_description_html: 'لتوفير المزيد من المعلومات، كتب %{name}:'
+ confirm: تأكيد
confirm_action: تأكيد اتخاذ إجراء إشراف على @%{acct}
created_at: ذكرت
delete_and_resolve: احذف المنشورات
@@ -803,6 +809,7 @@ ar:
suspend: قام %{name} بتعليق حساب %{target}
appeal_approved: طُعِن فيه
appeal_pending: طعن قيد المراجعة
+ appeal_rejected: رُفض الطعن
system_checks:
database_schema_check:
message_html: هناك عمليات هجرة معلقة لقواعد البيانات. يرجى تشغيلها لضمان تصرف التطبيق كما هو متوقع
@@ -835,6 +842,7 @@ ar:
no_publisher_selected: لم يطرأ أي تغيير على أي ناشر بما أنه لم يتم اختيار أي واحد
title: الروابط المتداولة
usage_comparison: تمت مشاركته %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس
+ not_allowed_to_trend: غير مسموح ظهوره في المتداولة
only_allowed: من سُمِحَ لهم فقط
pending_review: في انتظار المراجعة
preview_card_providers:
@@ -957,6 +965,7 @@ ar:
applications:
created: تم إنشاء التطبيق بنجاح
destroyed: تم حذف التطبيق بنجاح
+ logout: الخروج
regenerate_token: إعادة توليد رمز النفاذ
token_regenerated: تم إعادة إنشاء الرمز الوصول بنجاح
warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين!
@@ -993,6 +1002,8 @@ ar:
resend_confirmation: إعادة إرسال تعليمات التأكيد
reset_password: إعادة تعيين كلمة المرور
rules:
+ accept: قبول
+ back: العودة
preamble: يتم تعيين هذه القوانين وفرضها من قبل مشرفي %{domain}.
title: بعض القواعد الأساسية.
security: الأمان
@@ -1139,8 +1150,6 @@ ar:
storage: ذاكرة التخزين
featured_tags:
add_new: أضف واحدًا جديدا
- errors:
- limit: لقد قمت بالفعل بعرض الحد الأقصى من الوسوم
hint_html: "ما هي الوسوم الرائجة؟ يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل."
filters:
contexts:
@@ -1600,7 +1609,7 @@ ar:
'7889238': 3 أشهر
min_age_label: عتبة العمر
min_favs: إبقاء المشاركات المفضلة أكثر من
- min_favs_hint: لم تقوم بحذف أي من المشاركات الخاصة بك التي حصلت على أكثر من هذه الكمية من المفضلة. اتركه فارغاً لحذف المشاركات بغض النظر عن عدد المفضلات لديها
+ min_favs_hint: لن تُحذف أي من منشوراتك التي تلقّت على الأقل هذا العدد من المفضلات. اتركه فارغاً لحذف المنشورات مهما كان عدد المفضلات التي تلقتها
min_reblogs: إبقاء المشاركات المعززة أكثر من
min_reblogs_hint: لن تُحذف أي من منشوراتك التي أعيد مشاركتها أكثر من هذا العدد من المرات. اتركه فارغاً لحذف المنشورات بغض النظر عن عدد إعادات المشاركة
stream_entries:
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index d4e3fe20e9..536e3887cb 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -52,6 +52,7 @@ ast:
search: Buscar
search_same_email_domain: Otros perfiles col mesmu dominiu de corréu electrónicu
search_same_ip: Otros perfiles cola mesma IP
+ security: Seguranza
show:
created_reports: Informes fechos
statuses: Artículos
@@ -80,7 +81,9 @@ ast:
enable_custom_emoji_html: "%{name} activó'l fustaxe «%{target}»"
reject_user_html: "%{name} refugó'l rexistru de: %{target}"
remove_avatar_user_html: "%{name} quitó l'avatar de: %{target}"
+ reopen_report_html: "%{name} volvió abrir l'informe «%{target}»"
resend_user_html: "%{name} volvió unviar el mensaxe de confirmación pa: %{target}"
+ resolve_report_html: "%{name} resolvió l'informe «%{target}»"
unblock_email_account_html: "%{name} desbloquió la direición de corréu electrónicu de: %{target}"
update_announcement_html: "%{name} anovó l'anunciu «%{target}»"
update_custom_emoji_html: "%{name} anovó'l fustaxe «%{target}»"
@@ -217,11 +220,15 @@ ast:
title: 'Rellaciones de: %{acct}'
relays:
status: Estáu
+ report_notes:
+ created_msg: "¡La nota del informe creóse correutamente!"
reports:
account:
notes:
one: "%{count} nota"
other: "%{count} notes"
+ actions:
+ silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta.
actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría Puxarra.
add_to_report: Amestar más al informe
category: Categoría
@@ -236,6 +243,8 @@ ast:
notes:
create: Amestar la nota
create_and_resolve: Resolver con una nota
+ create_and_unresolve: Volver abrir con una nota
+ delete: Desaniciar
title: Notes
quick_actions_description_html: 'Toma una aición rápida o baxa pa ver el conteníu del que s''informó:'
report: 'Informe #%{id}'
@@ -326,6 +335,7 @@ ast:
metadata: Metadatos
original_status: Artículu orixinal
visibility: Visibilidá
+ with_media: Con elementos multimedia
strikes:
actions:
delete_statuses: "%{name} desanició l'artículu de: %{target}"
@@ -334,6 +344,7 @@ ast:
sensitive: "%{name} marcó la cuenta de %{target} como sensible"
suspend: "%{name} suspendió la cuenta de: %{target}"
appeal_approved: Apellóse
+ appeal_pending: Apellación pendiente
system_checks:
elasticsearch_running_check:
message_html: Nun se pudo conectar con Elasticsearch. Revisa que tea n'execución o desactiva la busca de testos completos
@@ -368,6 +379,8 @@ ast:
usable: Pue usase
title: Tendencies
trending: En tendencia
+ warning_presets:
+ title: Xestión d'alvertencies preconfiguraes
webhooks:
add_new: Amestar un estremu
delete: Desaniciar
@@ -446,6 +459,9 @@ ast:
register: Rexistrase
registration_closed: "%{instance} nun acepta cuentes nueves"
resend_confirmation: Volver unviar les instrucciones de confirmación
+ rules:
+ accept: Aceptar
+ back: Atrás
security: Seguranza
setup:
email_below_hint_html: Si la direición de corréu electrónicu ye incorreuta, pues camudala equí ya recibir un mensaxes de confirmación nuevu.
@@ -504,13 +520,16 @@ ast:
action_taken: Aición tomada
appeal: Apellación
appeal_rejected: Refugóse l'apellación
+ appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste.
appeals:
submit: Unviu d'una apellación
approve_appeal: Aprobar l'apellación
+ associated_report: Informe asociáu
created_at: Data
reject_appeal: Refugar l'apellación
status: 'Artículu #%{id}'
status_removed: L'artículu xá se quitó del sistema
+ your_appeal_approved: Aprobóse la to apellación
your_appeal_pending: Unviesti una apellación
your_appeal_rejected: Refugóse la to apellación
errors:
@@ -619,9 +638,6 @@ ast:
expires_at: Data de caducidá
uses: Usos
title: Invitación
- lists:
- errors:
- limit: Algamesti la cantidá máxima de llistes
login_activities:
authentication_methods:
password: contraseña
@@ -837,6 +853,8 @@ ast:
appeal_description: Si te paez que ye un error, pues unviar una apellación al personal de %{instance}.
explanation:
disable: Xá nun pues usar la cuenta mas el perfil ya otros datos siguen intautos. Pues solicitar una copia de seguranza de los datos, camudar la configuración de la cuenta o desaniciar la cuenta.
+ silence: Entá pues usar la cuenta mas namás vas ver los artículos de los perfiles que xá siguieres nesti sirvidor ya ye posible que se t'escluya de dalgunes funciones de descubrimientu. Por embargu, otros perfiles tovía puen siguite manualmente.
+ suspend: Xá nun pues usar la cuenta nin se pue acceder a los datos del to perfil. Entá pues aniciar la sesión pa pidir una copia de seguranza de los tos datos hasta que se desanicien en 30 díes, mas vamos caltener dalgunos datos básicos pa evitar que te saltes la suspensión.
reason: 'Motivu:'
statuses: 'Artículos citaos:'
subject:
diff --git a/config/locales/be.yml b/config/locales/be.yml
index ea5d01764c..24dd86285b 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -95,6 +95,7 @@ be:
moderation:
active: Актыўны
all: Усе
+ disabled: Адключана
pending: Чакаюць
silenced: Абмежаваны
suspended: Прыпынены
@@ -139,6 +140,7 @@ be:
search: Пошук
search_same_email_domain: Іншыя карыстальнікі з такім жа даменам эл. пошты
search_same_ip: Іншыя карыстальнікі з гэтым IP
+ security: Бяспека
security_measures:
only_password: Толькі пароль
password_and_2fa: Пароль і 2FA
@@ -443,6 +445,7 @@ be:
resolve: Вызначыць дамен
title: Заблакіраваць новы дамен эл. пошты
no_email_domain_block_selected: Блакіроўкі даменаў эл. пошты не былі змененыя, таму што ні адзін з іх не быў выбраны
+ not_permitted: Забаронена
resolved_dns_records_hint_html: Даменнае імя ператвараецца ў наступныя дамены MX, якія ў канчатковым выніку адказваюць за прыём электроннай пошты. Блакаванне дамена MX заблакуе рэгістрацыю з любога адраса электроннай пошты, які выкарыстоўвае той жа дамен MX, нават калі бачнае імя дамена адрозніваецца. Будзьце асцярожныя, каб не заблакіраваць асноўных пастаўшчыкоў электроннай пошты.
resolved_through_html: Вызначына каля %{domain}
title: Заблакаваныя паштовыя дамены
@@ -493,6 +496,7 @@ be:
content_policies:
comment: Унутраная нататка
description_html: Вы можаце вызначыць палітыку кантэнту, якая будзе прымяняцца да ўсіх уліковых запісаў гэтага дамена і любога з яго субдаменаў.
+ limited_federation_mode_description_html: Вы можаце выбраць ці дазволіць уваходзіць у федэрацыю з гэтым даменам.
policies:
reject_media: Адхіліць мультымедыя
reject_reports: Адхіліць справаздачы
@@ -609,11 +613,13 @@ be:
assign_to_self: Прызначыць мне
assigned: Прызначаны мадэратар
by_target_domain: Дамен уліковага запісу, на які падаецца скарга
+ cancel: Скасаваць
category: Катэгорыя
category_description_html: Прычына паведамлення аб гэтым уліковым запісе і/або кантэнце будзе згадана ў сувязі з уліковым запісам, на які пададзена скарга
comment:
none: Пуста
comment_description_html: 'Каб даць больш інфармацыі, %{name} напісаў:'
+ confirm: Пацвердзіць
confirm_action: Пацвердзіць мадэрацыю супраць @%{acct}
created_at: Створана
delete_and_resolve: Выдаліць допісы
@@ -645,14 +651,21 @@ be:
statuses: Змесціва, на якое паскардзіліся
statuses_description_html: Крыўднае змесціва будзе згадвацца ў зносінах з уліковым запісам, на які пададзена скарга
summary:
+ action_preambles:
+ delete_html: 'Вы збіраецеся выдаліць некаторыя з допісаў @%{acct}. Гэта будуць:'
+ mark_as_sensitive_html: 'Вы збіраецеся пазначыць некаторыя з допісаў @%{acct} як уражальныя. Гэта будуць:'
+ silence_html: 'Вы збіраецеся абмежаваць уліковы запіс @%{acct}. Гэта будзе:'
+ suspend_html: 'Вы збіраецеся прыпыніць уліковы запіс @%{acct}. Гэта будзе:'
actions:
delete_html: Выдаліць абразлівы допіс
mark_as_sensitive_html: Пазначыць медыя абразлівага допіса як далікатнае
+ silence_html: Значна абмежаваць ахоп @%{acct}, зрабіўшы профіль і змесціва бачнымі толькі для людзей, якія ўжо падпісаныя, альбо шукае яго ўручную
suspend_html: Прыпыніць @%{acct}, зрабіць профіль і змесціва недаступным і не даваць магчымасці ўзаемадзейнічаць з імі
close_report: 'Пазначыць скаргу #%{id} як вырашаную'
close_reports_html: Адзначыць усе скаргі супраць @%{acct} як вырашаныя
delete_data_html: Выдаліць профіль @%{acct} і змесціва праз 30 дзён, калі тым часам гэтае дзеянне не будзе адменена
preview_preamble_html: "@%{acct} атрымае папярэджанне наступнага зместу:"
+ record_strike_html: Зарэгістраваць папярэджанне @%{acct}, каб дапамагчы вам эскаліраваць наступныя парушэнні з боку таго ж уліковага запісу
send_email_html: Адправіць @%{acct} папярэджанне па электроннай пошце
warning_placeholder: Неабавязковае дадатковае абгрунтаванне мадэрацыі.
target_origin: Крыніца уліковага запісу на які пададзена скарга
@@ -813,6 +826,7 @@ be:
suspend: Уліковы запіс %{target} выключаны %{name}
appeal_approved: Абскарджана
appeal_pending: Апеляцыя разглядаецца
+ appeal_rejected: Абскарджанне адхілена
system_checks:
database_schema_check:
message_html: Ёсць незавершаныя міграцыі базы дадзеных. Калі ласка, запусціце іх, каб пераканацца, што дадатак паводзіць сябе належным чынам
@@ -850,6 +864,7 @@ be:
other: Абагулілі %{count} чалавек за апошні тыдзень
title: Актуальныя спасылкі
usage_comparison: Выкарыстоўвалася %{today} разоў сёння, у параўнанні з %{yesterday} учора
+ not_allowed_to_trend: Забаронена выходзіць у актуальныя
only_allowed: Толькі дазволенае
pending_review: Чакае праверкі
preview_card_providers:
@@ -987,6 +1002,7 @@ be:
applications:
created: Праграма паспяхова створана
destroyed: Праграма паспяхова выдалена
+ logout: Выйсці
regenerate_token: Стварыць новы токен доступу
token_regenerated: Новы токен доступу паспяхова створаны
warning: Будзьце вельмі асцярожныя з гэтымі данымі. Ніколі нікому не паведамляйце іх!
@@ -1023,6 +1039,8 @@ be:
resend_confirmation: Адправіць інструкцыю пацвярджэння зноў
reset_password: Скінуць пароль
rules:
+ accept: Прыняць
+ back: Назад
preamble: Правілы вызначаныя мадэратарамі дамена %{domain}.
title: Некалькі базавых правілаў.
security: Бяспека
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index cdcf6158b0..d0d1888c0c 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -91,6 +91,7 @@ bg:
moderation:
active: Дейно
all: Всичко
+ disabled: Изключено
pending: Чака
silenced: Ограничено
suspended: Спряно
@@ -133,6 +134,7 @@ bg:
search: Търсене
search_same_email_domain: Други потребители със същия домейн за имейл
search_same_ip: Други потребители със същия IP
+ security: Сигурност
security_measures:
only_password: Само парола
password_and_2fa: Парола и двуфакторно удостоверяване
@@ -372,8 +374,8 @@ bg:
empty: Няма намерени обжалвания.
title: Жалби
domain_allows:
- add_new: Позволявам федерацията с домейна
- created_msg: Домейнът е успешно позволен за федерацията
+ add_new: Позволявам федериране с домейна
+ created_msg: Успешно позволен домейн за федерацията
destroyed_msg: Домейнът е забранен от федерацията
export: Износ
import: Внос
@@ -402,7 +404,7 @@ bg:
obfuscate: Замъгляване на името на домейна
obfuscate_hint: Частично замъгляване на името на домейна в списъка, ако е включено рекламирането на списъка с ограничения на домейни
private_comment: Личен коментар
- private_comment_hint: Коментирането за това ограничение на домейна за вътрешна употреба от модераторите.
+ private_comment_hint: Коментирането за това ограничение на домейна е за вътрешна употреба от модераторите.
public_comment: Публичен коментар
public_comment_hint: Оставяне на коментар за ограничението на домейна за широката публика, ако рекламирането на списъка с ограниченията на домейни е включено.
reject_media: Отхвърляне на мултимедийните файлове
@@ -427,6 +429,7 @@ bg:
resolve: Преобразуване на домейна
title: Блокиране на нов домейн на имейл
no_email_domain_block_selected: Няма промяна, тъй като няма избрани блокирания на имейл домейн
+ not_permitted: Няма позволение
resolved_dns_records_hint_html: Името на домейна се преобразува към следните MX домейни, които са основно отговорни за получаване на имейл. Блокирането на MX домейн блокира записването от всеки имейл, използващ същия MX домейн, дори видимото име на домейна да е различно. Бъдете внимателни и не блокирайте често-срещани доставчици на имейл
resolved_through_html: Преобразувано чрез %{domain}
title: Блокирани домейни на имейл
@@ -473,6 +476,7 @@ bg:
content_policies:
comment: Вътрешна бележка
description_html: Може да определите политиките за съдържание, които ще се приложат към всички акаунти от този домейн и всеки от поддомейните му.
+ limited_federation_mode_description_html: Може да избирате дали да позволите федарацията с този домейн.
policies:
reject_media: Отхвърляне на мултимедия
reject_reports: Отхвърляне на докладите
@@ -585,11 +589,13 @@ bg:
assign_to_self: Назначаване на мен
assigned: Назначен модератор
by_target_domain: Домейн на докладвания акаунт
+ cancel: Отказ
category: Категория
category_description_html: Причината, поради която акаунтът и/или съдържанието е докладвано ще се цитира в комуникацията с докладвания акаунт
comment:
none: Нищо
comment_description_html: 'За да предостави повече информация, %{name} написа:'
+ confirm: Потвърждаване
confirm_action: Потвърждаване на модераторско действие срещу @%{acct}
created_at: Докладвано
delete_and_resolve: Изтриване на публикациите
@@ -620,9 +626,18 @@ bg:
statuses: Докладвано съдържание
statuses_description_html: Непристойно съдържание ще бъде цитирано в комуникацията с докладвания акаунт
summary:
+ action_preambles:
+ delete_html: 'На път сте да премахнете някои от публикациите на @%{acct}. Това ще:'
+ mark_as_sensitive_html: 'На път сте да означите някои от публикациите на @%{acct} като деликатни. Това ще:'
+ silence_html: 'На път сте да ограничите акаунта на @%{acct}. Това ще:'
+ suspend_html: 'На път сте да спрете акаунта на @%{acct}. Това ще:'
actions:
delete_html: Премахване на обидните публикации
+ silence_html: Силно ограничаване достигането на @%{acct}, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила
close_report: Отбелязване на доклад №%{id} като решен
+ close_reports_html: Означаване на всички доклади срещу @%{acct} като решени
+ preview_preamble_html: "@%{acct} ще получи предупреждение със следното съдържание:"
+ send_email_html: Изпращане на предупредително е-писмо на @%{acct}
warning_placeholder: Незадължителни допълнителни причини за модераторско действие.
target_origin: Произход на докладвания акаунт
title: Доклади
@@ -659,7 +674,7 @@ bg:
invite_users_description: Позволява на потребителите да канят нови хора в сървъра
manage_announcements: Управляване на оповестяванията
manage_announcements_description: Позволява на потребителите да управляват оповестяванията в сървъра
- manage_appeals: Управление на обжалванията
+ manage_appeals: Управление на жалбите
manage_appeals_description: Позволява на потребителите да разглеждат обжалвания срещу модераторски действия
manage_blocks: Управляване на блокиранията
manage_blocks_description: Позволява на потребителите да блокират доставчици на е-поща и IP адреси
@@ -698,7 +713,7 @@ bg:
description_html: Дори повечето хора да отбелязват, че са прочели и са съгласни с условията на услугата, обикновено хората не ги четат, докато не се сблъскат с проблем. Улеснете четенето на правилата за сървъра си, представяйки ги като списък с точки. Опитайте да се придържате към кратки и прости правила, но не ги разпилявайте в премного точки.
edit: Промяна на правило
empty: Още няма определени правила на сървъра.
- title: Правила на сървъра
+ title: Сървърни правила
settings:
about:
manage_rules: Управление на правилата на сървъра
@@ -720,12 +735,12 @@ bg:
discovery:
follow_recommendations: Препоръки за следване
preamble: За потребители, които са нови и не познават никого в Mastodon, показването на интересно съдържание е ключово. Настройте начина, по който различни функции по откриване на съдържание работят на вашия сървър.
- profile_directory: Директория на профила
+ profile_directory: Указател на профила
public_timelines: Публични часови оси
publish_discovered_servers: Публикуване на откритите сървъри
publish_statistics: Публикуване на статистиката
title: Откриване
- trends: Налагащи се
+ trends: Изгряващи
domain_blocks:
all: До всеки
disabled: До никого
@@ -735,9 +750,9 @@ bg:
title: Регистрации
registrations_mode:
modes:
- approved: Нужно е одобрение за записване
+ approved: Изисква се одобрение за регистриране
none: Никой не може да се регистрира
- open: Всеки може да се запише
+ open: Всеки може да се регистрира
title: Настройки на сървъра
site_uploads:
delete: Изтриване на качения файл
@@ -778,6 +793,7 @@ bg:
suspend: "%{name} преустанови акаунта на %{target}"
appeal_approved: Обжалвано
appeal_pending: Чака се обжалването
+ appeal_rejected: Отхвърлено обжалване
system_checks:
database_schema_check:
message_html: Има миграции на базата данни, които чакат да бъдат изпълнени. Моля, изпълнете ги, за да осигурите изправността на приложението
@@ -802,29 +818,30 @@ bg:
links:
allow: Позволяване на връзка
allow_provider: Позволяване на публикуващия
- description_html: Това са линкове, които в момента са често споделяни от акаунти, чиито публикации вашият сървър вижда. Може да помогне на вашите потребители да разберат какво се случва по света. Никой линк няма да се покаже публично, докато не одобрите автора. Можете също и да одобрявате или забранявате отделни линкове.
+ description_html: Това са връзки, които в момента са много пъти споделяни от акаунти, чиито публикации сървърът ви вижда. Може да помогне на потребителите ви да разберат какво се случва по света. Никоя връзка няма да се показва публично, докато не одобрите публикуващия. Може още и да одобрявате или отхвърляте отделни връзки.
disallow: Забранявам връзката
disallow_provider: Забраняване на публикуващия
- no_link_selected: Няма промяна, тъй като няма избрани линкове
+ no_link_selected: Няма променени връзки, тъй като нито една не е била избрана
publishers:
no_publisher_selected: Няма промяна, тъй като няма избрани публикуващи
shared_by_over_week:
one: Споделено от един човек през последната седмица
other: Споделено от %{count} души през последната седмица
- title: Нашумели линкове
+ title: Изгряващи линкове
usage_comparison: Споделено %{today} пъти днес, в сравнение с %{yesterday} пъти вчера
+ not_allowed_to_trend: Не е позволено да са изгряващи
only_allowed: Само позволените
- pending_review: В очакване на преглед
+ pending_review: Чака се преглед
preview_card_providers:
- allowed: Линкове от този публикуващ може да са нашумели
+ allowed: Линкове от този публикуващ може да са изгряващи
description_html: Това са домейни, линковете от които са често споделяни на вашия сървър. Линковете няма да се показват в нашумели, докато домейнът на линка не бъде одобрен. Вашите одобрения (забрани) влияят и на поддомейни.
- rejected: Линкове от този автор няма да се включат в нашумели
+ rejected: Връзки от този публикуващ няма да са изгряващи
title: Публикуващи
rejected: Отхвърлено
statuses:
allow: Позволяване на публикацията
allow_account: Позволяване на автора
- description_html: Това са публикациите, за които вашият сървър знае, че в момента са често споделяни или маркирани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора, които да последват. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предложен. Можете също да позволявате и забранявате отделни публикации.
+ description_html: Има публикации, за които сървърът ви знае, че в момента са често споделяни или означавани като любими. Биха помогнали на вашите нови и завръщащи се потребители да открият повече хора за последване. Никоя от публикациите няма да бъде показана публично, докато не одобрите автора и докато авторът не позволи акаунтът му да бъде предлган на другите. Може още да позволявате или отхвърляте отделни публикации.
disallow: Забраняване на публикацията
disallow_account: Забрана на автора
no_status_selected: Няма промяна, тъй като няма избрана нашумяла публикация
@@ -841,14 +858,14 @@ bg:
tag_servers_dimension: Водещи сървъри
tag_servers_measure: различни сървъри
tag_uses_measure: обща употреба
- description_html: Това са хаштагове, фигуриращи в момента в много публикации, които вашият сървър вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете няма да се покажат публично, докато не ги одобрите.
+ description_html: Има хаштагове, появяващи се в момента в много публикации, които сървърът ви вижда. Помага на вашите потребители да виждат за какво говорят другите в момента. Хаштаговете не се показват публично, докато не ги одобрите.
listable: Може да бъде предложено
no_tag_selected: Няма промяна, тъй като няма избран таг
not_listable: Няма да бъде препоръчан
not_trendable: Няма да се появи под налагащи се
- not_usable: Не може да се използва
+ not_usable: Не може да се употребява
peaked_on_and_decaying: Връх на актуалността на %{date}, сега е в спад
- title: Налагащи се хаштагове
+ title: Изгряващи хаштагове
trendable: Може да се появи под налагащи се
trending_rank: 'Налагащи се #%{rank}'
usable: Може да се употребява
@@ -856,7 +873,7 @@ bg:
used_by_over_week:
one: Употребено от един човек през последната седмица
other: Използвано от %{count} души през последната седмица
- title: Налагащи се
+ title: Изгряващи
trending: Изгряващи
warning_presets:
add_new: Добавяне на ново
@@ -944,6 +961,7 @@ bg:
applications:
created: Успешно създадено приложение
destroyed: Успешно изтрито приложение
+ logout: Излизане
regenerate_token: Регенериране на кода за достъп
token_regenerated: Успешно генериране на код за достъп
warning: Бъдете внимателни с тези данни. Никога не ги споделяйте с никого!
@@ -980,6 +998,8 @@ bg:
resend_confirmation: Изпрати отново инструкции за потвърждение
reset_password: Нулиране на паролата
rules:
+ accept: Приемам
+ back: Назад
preamble: Тези са зададени и наложени от модераторите на %{domain}.
title: Някои основни правила.
security: Сигурност
@@ -1559,7 +1579,7 @@ bg:
'7889238': 3 месеца
min_age_label: Възрастов праг
min_favs: Запазване на публикации, маркирани като любими поне
- min_favs_hint: Не се изтриват ваши публикации, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя пъти маркирани като любими
+ min_favs_hint: Не се изтриват никоя от публикациите ви, маркирани като любими поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от броя маркирания като любими
min_reblogs: Запазване на публикации с поне толкова споделяния
min_reblogs_hint: Не се изтриват ваши публикации, споделени поне толкова пъти. Оставете празно, за да изтриете публикациите независимо от техния брой споделяния
stream_entries:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 616f8de17f..afaf9e06db 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -31,7 +31,7 @@ ca:
created_msg: La nota de moderació s'ha creat correctament!
destroyed_msg: Nota de moderació destruïda amb èxit!
accounts:
- add_email_domain_block: Bloquejar el domini de l'adreça de correu electrònic
+ add_email_domain_block: Bloca el domini del correu
approve: Aprova
approved_msg: L’aplicació del registre de %{username} s’ha aprovat amb èxit
are_you_sure: N'estàs segur?
@@ -91,6 +91,7 @@ ca:
moderation:
active: Actiu
all: Tot
+ disabled: Desactivat
pending: Pendent
silenced: Limitat
suspended: Suspès
@@ -133,6 +134,7 @@ ca:
search: Cerca
search_same_email_domain: Altres usuaris amb el mateix domini de correu
search_same_ip: Altres usuaris amb la mateixa IP
+ security: Seguretat
security_measures:
only_password: Només contrasenya
password_and_2fa: Contrasenya i 2FA
@@ -180,7 +182,7 @@ ca:
create_custom_emoji: Crea un emoji personalitzat
create_domain_allow: Crea un domini permès
create_domain_block: Crea un bloqueig de domini
- create_email_domain_block: Crea un bloqueig de domini d'adreça de correu
+ create_email_domain_block: Crea un bloqueig de domini de correu
create_ip_block: Crear regla IP
create_unavailable_domain: Crea un domini no disponible
create_user_role: Crea Rol
@@ -188,9 +190,9 @@ ca:
destroy_announcement: Esborra l'anunci
destroy_canonical_email_block: Esborra el bloqueig de correu electrònic
destroy_custom_emoji: Esborra l'emoji personalitzat
- destroy_domain_allow: Esborra el domini permès
+ destroy_domain_allow: Esborra el permís del domini
destroy_domain_block: Esborra el bloqueig de domini
- destroy_email_domain_block: Esborra el bloqueig de domini de l'adreça de correu
+ destroy_email_domain_block: Esborra el bloqueig de domini de correu
destroy_instance: Purga Domini
destroy_ip_block: Eliminar regla IP
destroy_status: Elimina la publicació
@@ -372,15 +374,15 @@ ca:
empty: No s'ha trobat cap apel·lació.
title: Apel·lacions
domain_allows:
- add_new: Dominis autoritzats
- created_msg: El domini ha estat correctament autoritzat
- destroyed_msg: S'ha esborrat el domini de la llista blanca
+ add_new: Permet la federació amb el domini
+ created_msg: El domini ha estat autoritzat per a la federació
+ destroyed_msg: El domini ha estat desautoritzat de la federació
export: Exporta
import: Importa
- undo: Treure de la llista blanca
+ undo: No permetis la federació amb el domini
domain_blocks:
- add_new: Afegir nou bloqueig de domini
- created_msg: El bloqueig de domini ara s'està processant
+ add_new: Afegeix nou bloqueig de domini
+ created_msg: S'està processant el bloqueig de domini
destroyed_msg: El bloqueig de domini s'ha desfet
domain: Domini
edit: Editar el bloqueig del domini
@@ -396,7 +398,7 @@ ca:
noop: Cap
silence: Limitar
suspend: Suspensió
- title: Bloqueig de domini nou
+ title: Nou bloqueig de domini
no_domain_block_selected: No s'ha canviat cap bloqueig de domini perquè no se n'ha seleccionat cap
not_permitted: No tens permís per a realitzar aquesta acció
obfuscate: Oculta el nom del domini
@@ -427,6 +429,7 @@ ca:
resolve: Resol domini
title: Nova adreça de correu en la llista negra
no_email_domain_block_selected: No s'han canviat els bloquejos de domini perquè cap s'ha seleccionat
+ not_permitted: No permés
resolved_dns_records_hint_html: El nom del domini resol als següents dominis MX, els quals son els responsables finals per a acceptar els correus. Bloquejar un domini MX bloquejarà els registres des de qualsevol adreça de correu que utilitzi el mateix domini MX, encara que el nom visible del domini sigui diferent. Ves amb compte no bloquegis els grans proveïdors de correu electrònic.
resolved_through_html: Resolt mitjançant %{domain}
title: Llista negra de correus electrònics
@@ -473,6 +476,7 @@ ca:
content_policies:
comment: Nota interna
description_html: Pots definir polítiques de contingut que seran aplicades a tots els comptes d'aquest domini i a qualsevol dels seus subdominis.
+ limited_federation_mode_description_html: Pots triar si permets la federació amb aquest domini.
policies:
reject_media: Rebutja mèdia
reject_reports: Rebutja informes
@@ -585,11 +589,13 @@ ca:
assign_to_self: Assigna'm
assigned: Moderador assignat
by_target_domain: Domini del compte denunciat
+ cancel: Cancel·la
category: Categoria
category_description_html: El motiu pel qual aquest compte o contingut ha estat denunciat se citarà en la comunicació amb el compte denunciat
comment:
none: Cap
comment_description_html: 'Per a donar més informació, %{name} ha escrit:'
+ confirm: Confirma
confirm_action: Confirma l'acció de moderació contra @%{acct}
created_at: Denunciat
delete_and_resolve: Elimina les publicacions
@@ -792,6 +798,7 @@ ca:
suspend: "%{name} ha suspès el compte de %{target}"
appeal_approved: Apel·lat
appeal_pending: Apel·lació pendent
+ appeal_rejected: Apel·lació rebutjada
system_checks:
database_schema_check:
message_html: Hi ha pendents migracions de la base de dades. Si us plau executa-les per a assegurar que l'aplicació es comporta com s'espera
@@ -827,6 +834,7 @@ ca:
other: Compartit per %{count} persones en la darrera setmana
title: Enllaços en tendència
usage_comparison: Compartit %{today} vegades avui, comparat amb %{yesterday} d'ahir
+ not_allowed_to_trend: No es permet la tendència
only_allowed: Només permesos
pending_review: Revisió pendent
preview_card_providers:
@@ -958,6 +966,7 @@ ca:
applications:
created: L'aplicació s'ha creat correctament
destroyed: L'aplicació s'ha suprimit correctament
+ logout: Surt
regenerate_token: Torna a generar l'identificador d'accés
token_regenerated: L'identificador d'accés s'ha generat correctament
warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú!
@@ -994,6 +1003,8 @@ ca:
resend_confirmation: Torna a enviar el correu de confirmació
reset_password: Restableix la contrasenya
rules:
+ accept: Accepta
+ back: Enrere
preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}.
title: Algunes regles bàsiques.
security: Seguretat
@@ -1139,7 +1150,7 @@ ca:
mutes: Persones silenciades
storage: Emmagatzematge
featured_tags:
- add_new: Afegir nova etiqueta
+ add_new: Afegeix-ne una de nova
errors:
limit: Ja has mostrat la quantitat màxima d'etiquetes
hint_html: "Què son les etiquetes destacades? Es mostren de manera destacada en el teu perfil públic i permeten a les persones navegar per els teus tuts gràcies a aquestes etiquetes. Són una gran eina per fer un seguiment de treballs creatius o de projectes a llarg termini."
@@ -1573,7 +1584,7 @@ ca:
'7889238': 3 mesos
min_age_label: Antiguitat
min_favs: Mantenir els tuts afavorits més de
- min_favs_hint: No suprimeix cap dels teus tuts que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per a suprimir tuts independentment del nombre de favorits que tinguin
+ min_favs_hint: No suprimeix cap dels teus tuts que hagin rebut més d'aquesta quantitat de favorits. Deixa-ho en blanc per a suprimir tuts independentment del nombre de favorits
min_reblogs: Mantenir les publicacions impulsades més de
min_reblogs_hint: No suprimeix cap de les teves publicacions que s'hagin impulsat més que aquest nombre de vegades. Deixa-ho en blanc per a suprimir les publicacions independentment del nombre d'impulsos que tinguin.
stream_entries:
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 19e1d50f42..5b945d442e 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -726,8 +726,6 @@ ckb:
storage: هەمارگەی میدیا
featured_tags:
add_new: زیادکردنی نوێ
- errors:
- limit: ئێوە ژمارەی بڕی ڕێگەپێدراوەی هاشتاگت هەیە
hint_html: " هاشتاگی تایبەت چییە؟ بە شێوەیەکی دیار نیشان دەدرێت لەسەر پرۆفایلی گشتی و ڕێگە بە خەڵک دەدات بۆ گەڕان لە نووسراوە گشتیەکانت بە تایبەتی لەژێر ئەو هاشتاگە. ئامرازێکی زۆر باشن بۆ پاراستنی کاری داهێنەرانە یان پڕۆژەی درێژخایەنی ئێوە."
filters:
contexts:
@@ -797,9 +795,6 @@ ckb:
expires_at: بەسەرچووە
uses: بەکارهاوردنەکان
title: بانگهێشتکردنی خەڵک
- lists:
- errors:
- limit: تۆ گەیشتوویتە زۆرترین ڕێژەی لیستەکان
media_attachments:
validations:
images_and_video: ناتوانرێت لەگەڵ ئەو نووسراوانە کە وێنەی لەگەڵە ،ڤیدیۆ بار بکەی
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 2ab6c63f96..4a26920186 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -686,8 +686,6 @@ co:
storage: I vostri media
featured_tags:
add_new: Aghjunghje
- errors:
- limit: Avete digià messu in mostra u numeru massimale di hashtag
hint_html: "Quale sò i hashtag in mostra? Sò messi in vista nant'à u vostru prufile pubblicu è permettenu à a ghjente di vede i vostri statuti ch'annu stu hashtag. Sò una bona manere di mustrà e vostre opere creative o i prughjetti à longu termine."
filters:
contexts:
@@ -759,9 +757,6 @@ co:
expires_at: Spira
uses: Utiliza
title: Invità ghjente
- lists:
- errors:
- limit: Ùn pudete più creà altre liste
login_activities:
authentication_methods:
otp: app d'identificazione à dui fattori
@@ -1037,7 +1032,6 @@ co:
'7889238': 3 mesi
min_age_label: Età minima
min_favs: Cunservà i statuti favurizzati più di
- min_favs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di favuriti. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di favuriti
min_reblogs: Cunservà i statuti spartuti più di
min_reblogs_hint: Ùn sguassa micca i vostri statuti chì anu ricevuti più chì stu numeru di spartere. Lasciate viotu per sguassà i statuti senza piglià in contu u numaru di spartere
stream_entries:
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index f96eaae15f..8c5fdd1dba 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -95,6 +95,7 @@ cs:
moderation:
active: Aktivní
all: Vše
+ disabled: Deaktivován
pending: Čekající
silenced: Omezeno
suspended: Pozastavené
@@ -139,6 +140,7 @@ cs:
search: Hledat
search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou
search_same_ip: Další uživatelé se stejnou IP adresou
+ security: Zabezpečení
security_measures:
only_password: Pouze heslo
password_and_2fa: Heslo a 2FA
@@ -443,6 +445,7 @@ cs:
resolve: Přeložit doménu
title: Blokovat novou e-mailovou doménu
no_email_domain_block_selected: Žádné blokace e-mailové domény nebyly změněny, protože nebyly žádné vybrány
+ not_permitted: Nepovoleno
resolved_dns_records_hint_html: Doménové jméno vede na následující MX domény, které mají nakonec na starost přijímání e-mailů. Blokování MX domény zablokuje registrace z jakékoliv e-mailové adresy, která používá stejnou MX doménu, i když je viditelné doménové jméno jiné. Dejte si pozor, abyste nezablokovali velké e-mailové poskytovatele.
resolved_through_html: Přeložena přes %{domain}
title: Blokované e-mailové domény
@@ -492,6 +495,7 @@ cs:
content_policies:
comment: Interní poznámka
description_html: Můžete definovat politiky obsahu, které budou aplikovány na všechny účty z této domény i jakoukoliv z jejích subdomén.
+ limited_federation_mode_description_html: Můžete si vybrat, zda povolit federaci s touto doménou.
policies:
reject_media: Odmítat média
reject_reports: Odmítat hlášení
@@ -608,11 +612,13 @@ cs:
assign_to_self: Přidělit ke mně
assigned: Přiřazený moderátor
by_target_domain: Doména nahlášeného účtu
+ cancel: Zrušit
category: Kategorie
category_description_html: Důvod nahlášení tohoto účtu a/nebo obsahu bude uveden v komunikaci s nahlášeným účtem
comment:
none: Žádné
comment_description_html: 'Pro upřesnění uživatel %{name} napsal:'
+ confirm: Potvrdit
created_at: Nahlášené
delete_and_resolve: Smazat příspěvky
forwarded: Přeposláno
@@ -973,6 +979,7 @@ cs:
applications:
created: Aplikace úspěšně vytvořena
destroyed: Aplikace úspěšně smazána
+ logout: Odhlásit se
regenerate_token: Znovu vygenerovat přístupový token
token_regenerated: Přístupový token byl úspěšně vygenerován
warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte!
@@ -1009,6 +1016,8 @@ cs:
resend_confirmation: Znovu odeslat pokyny pro potvrzení
reset_password: Obnovit heslo
rules:
+ accept: Přijmout
+ back: Zpět
preamble: Tohle nastavují a prosazují moderátoři %{domain}.
title: Některá základní pravidla.
security: Zabezpečení
@@ -1155,8 +1164,6 @@ cs:
storage: Úložiště médií
featured_tags:
add_new: Přidat nový
- errors:
- limit: Již jste zvýraznili maximální počet hashtagů
hint_html: "Co jsou zvýrazněné hashtagy? Zobrazují se prominentně na vašem veřejném profilu a dovolují lidem prohlížet si vaše veřejné příspěvky konkrétně pod těmi hashtagy. Je to skvělý nástroj pro sledování kreativních děl nebo dlouhodobých projektů."
filters:
contexts:
@@ -1284,7 +1291,7 @@ cs:
title: Pozvat lidi
lists:
errors:
- limit: Dosáhli jste maximálního počtu seznamů
+ limit: Dosáhl jste maximálního počtu seznamů
login_activities:
authentication_methods:
otp: aplikací pro dvoufaktorové ověření
@@ -1616,7 +1623,7 @@ cs:
'7889238': 3 měsíce
min_age_label: Hranice stáří
min_favs: Zachovat příspěvky oblíbené alespoň
- min_favs_hint: Nesmaže žádný z vašich příspěvků, který obdržel alespoň dané množství oblíbení. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich oblíbení
+ min_favs_hint: Neodstraňuje žádný z vašich příspěvků, které obdržely alespoň tento počet oblíbených. Nechte prázdné pro odstranění příspěvků bez ohledu na jejich počet oblíbených
min_reblogs: Zachovat příspěvky boostnuté alespoň
min_reblogs_hint: Nesmaže žádný z vašich příspěvků, který byl boostnut alespoň tolikrát. Ponechte prázdné pro mazání příspěvků bez ohledu na počet jejich boostnutí
stream_entries:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index f870413a5b..1e07fcedf6 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -99,6 +99,7 @@ cy:
moderation:
active: Yn weithredol
all: Popeth
+ disabled: Analluogwyd
pending: Yn aros
silenced: Cyfyngedig
suspended: Wedi ei atal
@@ -145,6 +146,7 @@ cy:
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:
only_password: Cyfrinair yn unig
password_and_2fa: Cyfrinair a 2FA
@@ -207,7 +209,7 @@ cy:
destroy_ip_block: Dileu rheol IP
destroy_status: Dileu Postiad
destroy_unavailable_domain: Dileu Parth Ddim ar Gael
- destroy_user_role: Dinistrio Rôl
+ 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 ar gyfer Defnyddiwr
@@ -459,6 +461,7 @@ cy:
resolve: Datrys parth
title: Rhwystro parth e-bost newydd
no_email_domain_block_selected: Heb newid unrhyw flociau parth e-bost gan nad oes un wedi'i ddewis
+ 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 darparwyr e-bost mawr.
resolved_through_html: Wedi'i ddatrys trwy %{domain}
title: Parthau e-bost wedi'u rhwystro
@@ -513,6 +516,7 @@ cy:
content_policies:
comment: Nodyn mewnol
description_html: Gallwch ddiffinio polisïau cynnwys a fydd yn cael eu cymhwyso i bob cyfrif o'r parth hwn ac unrhyw un o'i is-barthau.
+ limited_federation_mode_description_html: Gallwch ddewis a ydych am ganiatáu ffedereiddio â'r parth hwn.
policies:
reject_media: Gwrthod cyfryngau
reject_reports: Gwrthod adroddiadau
@@ -633,11 +637,13 @@ cy:
assign_to_self: Neilltuo i mi
assigned: Cymedrolwr wedi'i neilltuo
by_target_domain: Parth y cyfrif a adroddwyd
+ cancel: Canslo
category: Categori
category_description_html: Bydd y rheswm dros adrodd am y cyfrif a/neu’r cynnwys hwn yn cael ei ddyfynnu wrth gyfathrebu â’r cyfrif a adroddwyd
comment:
none: Dim
comment_description_html: 'I ddarparu rhagor o wybodaeth, ysgrifennodd %{name}:'
+ confirm: Cadarnhau
confirm_action: Cadarnhau gweithred cymedroli yn erbyn @%{acct}
created_at: Adroddwyd
delete_and_resolve: Dileu postiadau
@@ -795,7 +801,7 @@ cy:
publish_discovered_servers: Cyhoeddi gweinyddion a ddarganfuwyd
publish_statistics: Cyhoeddi ystadegau
title: Darganfod
- trends: Trendiau
+ trends: Tueddiadau
domain_blocks:
all: I bawb
disabled: I neb
@@ -848,6 +854,7 @@ cy:
suspend: Mae %{name} wedi atal cyfrif %{target}
appeal_approved: Apeliwyd
appeal_pending: Apêl yn aros
+ appeal_rejected: Mae'r apêl wedi'i gwrthod
system_checks:
database_schema_check:
message_html: Mae mudo cronfa ddata ar fin digwydd. Rhedwch nhw i sicrhau bod y rhaglen yn ymddwyn yn ôl y disgwyl
@@ -887,6 +894,7 @@ 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
only_allowed: Derbyniwyd yn unig
pending_review: Yn aros am adolygiad
preview_card_providers:
@@ -1030,6 +1038,7 @@ cy:
applications:
created: Cais wedi ei greu'n llwyddiannus
destroyed: Cais wedi ei ddileu'n llwyddiannus
+ logout: Allgofnodi
regenerate_token: Adfywio tocyn mynediad
token_regenerated: Adfywiwyd y tocyn mynediad yn llwyddiannus
warning: Byddwch yn ofalus iawn gyda'r data hwn. Peidiwch byth â'i rannu ag unrhyw un!
@@ -1066,6 +1075,8 @@ cy:
resend_confirmation: Ailanfon cyfarwyddiadau cadarnhau
reset_password: Ailosod cyfrinair
rules:
+ accept: Derbyn
+ back: Nôl
preamble: Mae'r rhain yn cael eu gosod a'u gorfodi gan y %{domain} cymedrolwyr.
title: Rhai rheolau sylfaenol.
security: Diogelwch
@@ -1213,7 +1224,7 @@ cy:
featured_tags:
add_new: Ychwanegu
errors:
- limit: Rydych chi eisoes wedi cynnwys yr uchafswm o hashnodau
+ limit: Rydych chi eisoes wedi cynnwys y nifer mwyaf o hashnodau
hint_html: "Beth yw hashnodau dan sylw? Maen nhw'n cael eu dangos yn amlwg ar eich proffil cyhoeddus ac yn caniatáu i bobl bori'ch postiadau cyhoeddus yn benodol o dan yr hashnodau hynny. Maen nhw'n arf gwych ar gyfer cadw golwg ar weithiau creadigol neu brojectau tymor hir."
filters:
contexts:
@@ -1357,7 +1368,7 @@ cy:
title: Gwahodd pobl
lists:
errors:
- limit: Rydych wedi cyrraedd uchafswm y rhestrau
+ limit: Rydych chi wedi cyrraedd y nifer mwyaf o restrau
login_activities:
authentication_methods:
otp: ap dilysu dau ffactor
@@ -1409,7 +1420,7 @@ cy:
title: Cymedroil
move_handler:
carry_blocks_over_text: Symudodd y defnyddiwr hwn o %{acct}, yr oeddech wedi'i rwystro.
- carry_mutes_over_text: Symudodd y defnyddiwr hwn o %{acct}, lle roeddech chi wedi'i dewi.
+ carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i anwybyddu.
copy_account_note_text: 'Symudodd y defnyddiwr hwn o %{acct}, dyma oedd eich nodiadau blaenorol amdanynt:'
navigation:
toggle_menu: Toglo'r ddewislen
@@ -1701,7 +1712,7 @@ cy:
'7889238': 3 mis
min_age_label: Trothwy oedran
min_favs: Cadw postiadau ffafriwyd am o leiaf
- min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y swm hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau waeth beth fo'u ffefrynnau
+ min_favs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi derbyn o leiaf y nifer hwn o ffefrynnau. Gadewch yn wag i ddileu postiadau, beth bynnag yw eu ffefrynnau
min_reblogs: Cadw postiadau wedi eu hybu o leiaf
min_reblogs_hint: Nid yw'n dileu unrhyw un o'ch postiadau sydd wedi cael eu hybu o leiaf y nifer hwn o weithiau. Gadewch yn wag i ddileu postiadau waeth beth fo'u nifer o hybiadau
stream_entries:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index d89aef9f39..52313defa1 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -91,6 +91,7 @@ da:
moderation:
active: Aktiv
all: Alle
+ disabled: Deaktiveret
pending: Afventer
silenced: Begrænset
suspended: Suspenderet
@@ -133,6 +134,7 @@ da:
search: Søg
search_same_email_domain: Øvrige brugere med samme e-maildomæne
search_same_ip: Øvrige brugere med identisk IP
+ security: Sikkerhed
security_measures:
only_password: Kun adgangskode
password_and_2fa: Adgangskode og 2FA
@@ -427,6 +429,7 @@ da:
resolve: Opløs domæne
title: Blokér nyt e-maildomæne
no_email_domain_block_selected: Ingen e-mailblokeringer ændret (ingen var valgt)
+ not_permitted: Ikke tilladt
resolved_dns_records_hint_html: Domænenavnet opløses til flg. MX-domæner, som i sidste ende er ansvarlige for e-mailmodtagelse. Blokering af et MX-domæne blokerer også tilmeldinger fra enhver e-mailadresse på det pågældende MX-domæne, selv hvis det synlige domænenavn er et andet. Pas på ikke ikke at blokere større e-mailudbydere.
resolved_through_html: Opløst via %{domain}
title: Blokerede e-maildomæner
@@ -473,6 +476,7 @@ da:
content_policies:
comment: Internt notat
description_html: Der kan defineres indholdspolitikker, som anvendes på alle konti fra dette domæne samt alle dets underdomæner.
+ limited_federation_mode_description_html: Man kan vælge, om føderation med dette domæne skal tillades.
policies:
reject_media: Afvis medier
reject_reports: Afvis anmeldelser
@@ -582,11 +586,13 @@ da:
assign_to_self: Tildel til mig
assigned: Tildelt moderator
by_target_domain: Anmeldte kontos domæne
+ cancel: Afbryd
category: Kategori
category_description_html: Årsagen til anmeldelsen af denne konto og/eller indhold refereres i kommunikationen med den anmeldte konto
comment:
none: Ingen
comment_description_html: 'For at give mere information, skrev %{name}:'
+ confirm: Bekræft
confirm_action: Bekræft moderatorhandling for %{acct}
created_at: Anmeldt
delete_and_resolve: Slet indlæg
@@ -788,6 +794,7 @@ da:
suspend: "%{name} suspenderede %{target}s konto"
appeal_approved: Appelleret
appeal_pending: Appel afventer
+ appeal_rejected: Appel afvist
system_checks:
database_schema_check:
message_html: Databasemigreringer afventer. Kør dem for at sikre den forventede adfærd fra applikationen
@@ -823,6 +830,7 @@ da:
other: Delt af %{count} personer den seneste uge
title: Populære links
usage_comparison: Delt %{today} gange i dag, sammenlignet med %{yesterday} i går
+ not_allowed_to_trend: Ikke tilladt at trende
only_allowed: Kun tilladte
pending_review: Afventer revision
preview_card_providers:
@@ -954,6 +962,7 @@ da:
applications:
created: Applikation oprettet
destroyed: Applikation slettet
+ logout: Log af
regenerate_token: Regenerér adgangstoken
token_regenerated: Adgangstoken regenereret
warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen!
@@ -990,6 +999,8 @@ da:
resend_confirmation: Gensend bekræftelsesinstruktioner
reset_password: Nulstil adgangskode
rules:
+ accept: Acceptér
+ back: Tilbage
preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne.
title: Nogle grundregler.
security: Sikkerhed
@@ -1137,7 +1148,7 @@ da:
featured_tags:
add_new: Tilføj nyt
errors:
- limit: Du har allerede fremhævet det maksimale antal hashtags
+ limit: Det maksimale antal hashtags er allerede fremhævet
hint_html: "Hvad er fremhævede hashtags? De vises i en fremtrædende position på din offentlige profil og giver folk mulighed for at gennemse dine offentlige indlæg specifikt under disse hashtags. De er et fantastisk værktøj til at holde styr på kreative værker eller langsigtede projekter."
filters:
contexts:
@@ -1568,7 +1579,7 @@ da:
'7889238': 3 måneder
min_age_label: Alderstærskel
min_favs: Behold indlæg favoritmarkeret mindst
- min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at ignorere denne tærskel under sletning
+ min_favs_hint: Sletter ingen egne indlæg, som har modtaget minimum dette antal favoritmarkeringer. Lad stå tomt for at slette indlæg uanset favoritmarkeringer
min_reblogs: Behold indlæg boostet mindst
min_reblogs_hint: Sletter ingen egne indlæg, som er boostet flere end dette antal gange. Lad stå tomt for at ignorere denne tærskel under sletning
stream_entries:
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 6944b54e42..6679ebd23e 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -25,7 +25,7 @@ de:
admin:
account_actions:
action: Aktion ausführen
- title: Moderationsaktion auf %{acct} ausführen
+ title: "@%{acct} moderieren"
account_moderation_notes:
create: Notiz abspeichern
created_msg: Moderationshinweis erfolgreich abgespeichert!
@@ -64,8 +64,8 @@ de:
display_name: Angezeigter Name
domain: Domain
edit: Bearbeiten
- email: E-Mail
- email_status: E-Mail-Status
+ email: E-Mail-Adresse
+ email_status: Status der E-Mail-Adresse
enable: Freischalten
enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail
enabled: Freigegeben
@@ -73,7 +73,7 @@ de:
followers: Follower
follows: Folge ich
header: Titelbild
- inbox_url: Posteingangsadresse
+ inbox_url: Privates Postfach (URL)
invite_request_text: Begründung für das Beitreten
invited_by: Eingeladen von
ip: IP-Adresse
@@ -83,7 +83,7 @@ de:
local: Lokal
remote: Extern
title: Herkunft
- login_status: Anmeldestatus
+ login_status: Status
media_attachments: Speicherplatz
memorialize: In Gedenkseite umwandeln
memorialized: Gedenkseite
@@ -91,6 +91,7 @@ de:
moderation:
active: Aktiv
all: Alle
+ disabled: Deaktiviert
pending: In Warteschlange
silenced: Stummgeschaltet
suspended: Gesperrt
@@ -125,27 +126,28 @@ de:
resend_confirmation:
already_confirmed: Dieses Profil wurde bereits bestätigt
send: Bestätigungs-E-Mail erneut senden
- success: Bestätigungs-E-Mail erfolgreich gesendet!
+ success: Bestätigungs-E-Mail erfolgreich verschickt!
reset: Zurücksetzen
reset_password: Passwort zurücksetzen
- resubscribe: Wieder abonnieren
+ resubscribe: Erneut abonnieren
role: Rolle
search: Suchen
search_same_email_domain: Andere Benutzer*innen mit der gleichen E-Mail-Domain
search_same_ip: Andere Benutzer*innen mit derselben IP-Adresse
+ security: Sicherheit
security_measures:
only_password: Nur Passwort
password_and_2fa: Passwort und 2FA
sensitive: Inhaltswarnung
sensitized: Mit Inhaltswarnung versehen
- shared_inbox_url: Geteilte Posteingangsadresse
+ shared_inbox_url: Gemeinsames Postfach (URL)
show:
created_reports: Erstellte Meldungen
targeted_reports: Von Anderen gemeldet
silence: Stummschalten
silenced: Stummgeschaltet
statuses: Beiträge
- strikes: Vorherige Verstöße
+ strikes: Vorherige Maßnahmen
subscribe: Abonnieren
suspend: Sperren
suspended: Gesperrt
@@ -163,12 +165,12 @@ de:
unsuspended_msg: Kontosperre von %{username} erfolgreich aufgehoben
username: Profilname
view_domain: Übersicht für Domain anzeigen
- warn: Warnen
+ warn: Verwarnen
web: Web
whitelisted: Auf der Whitelist
action_logs:
action_types:
- approve_appeal: Einspruch annehmen
+ approve_appeal: Einspruch zulassen
approve_user: Benutzer*in genehmigen
assigned_to_self_report: Bericht zuweisen
change_email_user: E-Mail des Profils ändern
@@ -211,7 +213,7 @@ de:
reopen_report: Meldung wieder eröffnen
resend_user: Bestätigungs-E-Mail erneut senden
reset_password_user: Passwort zurücksetzen
- resolve_report: Bericht lösen
+ resolve_report: Meldung klären
sensitive_account: Konto mit erzwungener Inhaltswarnung
silence_account: Konto stummschalten
suspend_account: Konto sperren
@@ -225,65 +227,65 @@ de:
update_domain_block: Domain-Sperre aktualisieren
update_ip_block: IP-Regel aktualisieren
update_status: Beitrag aktualisieren
- update_user_role: Rolle aktualisieren
+ update_user_role: Rolle bearbeiten
actions:
approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}"
approve_user_html: "%{name} genehmigte die Registrierung von %{target}"
- assigned_to_self_report_html: "%{name} hat sich die Meldung %{target} selbst zugewiesen"
+ assigned_to_self_report_html: "%{name} wies sich die Meldung %{target} selbst zu"
change_email_user_html: "%{name} hat die E-Mail-Adresse von %{target} geändert"
change_role_user_html: "%{name} hat die Rolle von %{target} geändert"
- confirm_user_html: "%{name} hat die E-Mail-Adresse von %{target} bestätigt"
- create_account_warning_html: "%{name} hat eine Warnung an %{target} gesendet"
- create_announcement_html: "%{name} hat die neue Ankündigung erstellt: %{target}"
+ confirm_user_html: "%{name} bestätigte die E-Mail-Adresse von %{target}"
+ create_account_warning_html: "%{name} sendete eine Warnung an %{target}"
+ create_announcement_html: "%{name} erstellte die neue Ankündigung: %{target}"
create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} gesperrt"
- create_custom_emoji_html: "%{name} hat neues Emoji hochgeladen: %{target}"
- create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet"
+ create_custom_emoji_html: "%{name} lud das neue Emoji %{target} hoch"
+ create_domain_allow_html: "%{name} erlaubte die Föderation mit der Domain %{target}"
create_domain_block_html: "%{name} hat die Domain %{target} gesperrt"
create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gesperrt"
create_ip_block_html: "%{name} hat eine IP-Regel für %{target} erstellt"
- create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt"
- create_user_role_html: "%{name} hat die Rolle %{target} erstellt"
+ create_unavailable_domain_html: "%{name} beendete die Zustellung an die Domain %{target}"
+ create_user_role_html: "%{name} erstellte die Rolle %{target}"
demote_user_html: "%{name} hat %{target} heruntergestuft"
- destroy_announcement_html: "%{name} hat die neue Ankündigung %{target} gelöscht"
+ destroy_announcement_html: "%{name} löschte die Ankündigung %{target}"
destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} entsperrt"
- destroy_custom_emoji_html: "%{name} hat das Emoji gelöscht: %{target}"
- destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt"
+ destroy_custom_emoji_html: "%{name} löschte das Emoji %{target}"
+ destroy_domain_allow_html: "%{name} verwehrte die Föderation mit der Domain %{target}"
destroy_domain_block_html: "%{name} hat die Domain %{target} entsperrt"
destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} entsperrt"
- destroy_instance_html: "%{name} hat die Daten der Domain %{target} entfernt"
+ destroy_instance_html: "%{name} entfernte die Daten der Domain %{target} von diesem Server"
destroy_ip_block_html: "%{name} hat eine IP-Regel für %{target} entfernt"
- destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt"
- destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort"
- destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht"
+ destroy_status_html: "%{name} entfernte einen Beitrag von %{target}"
+ destroy_unavailable_domain_html: "%{name} nahm die Zustellung an die Domain %{target} wieder auf"
+ destroy_user_role_html: "%{name} löschte die Rolle %{target}"
disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert"
- disable_custom_emoji_html: "%{name} hat das Emoji deaktiviert: %{target}"
+ disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} deaktiviert"
disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert"
- enable_custom_emoji_html: "%{name} hat das Emoji aktiviert: %{target}"
+ enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}"
enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert"
enable_user_html: "%{name} hat den Zugang für %{target} aktiviert"
- memorialize_account_html: "%{name} hat das Konto von %{target} in eine Gedenkseite umgewandelt"
- promote_user_html: "%{name} hat %{target} befördert"
+ memorialize_account_html: "%{name} wandelte das Konto von %{target} in eine Gedenkseite um"
+ promote_user_html: "%{name} beförderte %{target}"
reject_appeal_html: "%{name} hat den Moderations-Beschlussantrag von %{target} abgelehnt"
reject_user_html: "%{name} hat die Registrierung von %{target} abgelehnt"
- remove_avatar_user_html: "%{name} hat das Profilbild von %{target} entfernt"
- reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet"
+ remove_avatar_user_html: "%{name} entfernte das Profilbild von %{target}"
+ reopen_report_html: "%{name} öffnete die Meldung %{target} wieder"
resend_user_html: "%{name} hat erneut eine Bestätigungs-E-Mail für %{target} gesendet"
- reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt"
+ reset_password_user_html: "%{name} setzte das Passwort von %{target} zurück"
resolve_report_html: "%{name} hat die Meldung %{target} geklärt"
sensitive_account_html: "%{name} hat die Medien von %{target} mit einer Inhaltswarnung versehen"
- silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet"
- suspend_account_html: "%{name} hat das Konto von %{target} gesperrt"
- unassigned_report_html: "%{name} hat die Zuweisung der Meldung %{target} entfernt"
+ silence_account_html: "%{name} schaltete das Konto von %{target} stumm"
+ suspend_account_html: "%{name} sperrte das Konto von %{target}"
+ unassigned_report_html: "%{name} entfernte die Zuweisung der Meldung %{target}"
unblock_email_account_html: "%{name} hat die E-Mail-Adresse von %{target} entsperrt"
unsensitive_account_html: "%{name} hat die Inhaltswarnung für Medien von %{target} aufgehoben"
- unsilence_account_html: "%{name} hat die Stummschaltung von %{target} aufgehoben"
- unsuspend_account_html: "%{name} hat die Kontosperre von %{target} aufgehoben"
- update_announcement_html: "%{name} aktualisierte Ankündigung %{target}"
- update_custom_emoji_html: "%{name} hat das Emoji geändert: %{target}"
+ unsilence_account_html: "%{name} hob die Stummschaltung von %{target} auf"
+ unsuspend_account_html: "%{name} entsperrte das Konto von %{target}"
+ update_announcement_html: "%{name} überarbeitete die Ankündigung %{target}"
+ update_custom_emoji_html: "%{name} bearbeitete das Emoji %{target}"
update_domain_block_html: "%{name} hat die Domain-Sperre für %{target} aktualisiert"
- update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert"
- update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert"
+ update_ip_block_html: "%{name} änderte die Regel für die IP-Adresse %{target}"
+ update_status_html: "%{name} überarbeitete einen Beitrag von %{target}"
update_user_role_html: "%{name} hat die Rolle %{target} geändert"
deleted_account: gelöschtes Konto
empty: Protokolle nicht gefunden.
@@ -310,36 +312,36 @@ de:
custom_emojis:
assign_category: Kategorie zuweisen
by_domain: Domain
- copied_msg: Lokale Kopie des Emoji erfolgreich erstellt
+ copied_msg: Lokale Kopie des Emojis erfolgreich erstellt
copy: Kopieren
- copy_failed_msg: Es konnte keine lokale Kopie des Emojis erstellt werden
+ copy_failed_msg: Es konnte keine lokale Kopie dieses Emojis auf diesem Server erstellt werden
create_new_category: Neue Kategorie erstellen
created_msg: Emoji erfolgreich erstellt!
delete: Löschen
destroyed_msg: Emoji erfolgreich gelöscht!
disable: Deaktivieren
disabled: Deaktiviert
- disabled_msg: Das Emoji wurde erfolgreich deaktiviert
+ disabled_msg: Dieses Emoji wurde erfolgreich deaktiviert
emoji: Emoji
enable: Aktivieren
enabled: Aktiviert
- enabled_msg: Das Emoji wurde erfolgreich aktiviert
+ enabled_msg: Dieses Emoji wurde erfolgreich aktiviert
image_hint: PNG oder GIF bis %{size}
list: Aufführen
listed: Angezeigt
new:
- title: Eigenes Emoji hinzufügen
- no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden
+ title: Benutzerdefiniertes Emoji hinzufügen
+ no_emoji_selected: Keine Emojis wurden bearbeitet, da keine ausgewählt wurden
not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt
overwrite: Überschreiben
shortcode: Shortcode
shortcode_hint: Mindestens 2 Zeichen, nur Buchstaben, Ziffern und Unterstriche
title: Eigene Emojis
- uncategorized: Nicht kategorisiert
+ uncategorized: Unkategorisiert
unlist: Nicht Aufführen
unlisted: Nicht aufgeführt
- update_failed_msg: Konnte dieses Emoji nicht aktualisieren
- updated_msg: Emoji erfolgreich aktualisiert!
+ update_failed_msg: Konnte dieses Emoji nicht bearbeiten
+ updated_msg: Emoji erfolgreich bearbeitet!
upload: Hochladen
dashboard:
active_users: aktive Benutzer*innen
@@ -360,10 +362,10 @@ de:
one: "%{count} unerledigte*r Benutzer*in"
other: "%{count} unerledigte Benutzer*innen"
resolved_reports: erledigte Meldungen
- software: Software
+ software: Programme
sources: Registrierungsort
- space: Speicherverbrauch
- title: Übersicht
+ space: Speicherplatz
+ title: Dashboard
top_languages: Häufigste Sprachen
top_servers: Aktivste Server
website: Website
@@ -372,31 +374,31 @@ de:
empty: Keine Einsprüche gefunden.
title: Einsprüche
domain_allows:
- add_new: Whitelist-Domain
+ add_new: Föderation mit Domain erlauben
created_msg: Domain wurde erfolgreich zur Whitelist hinzugefügt
- destroyed_msg: Domain wurde von der Whitelist entfernt
+ destroyed_msg: Domain wurde von der Föderation ausgeschlossen
export: Exportieren
import: Import
- undo: Von der Whitelist entfernen
+ undo: Von der Föderation ausschließen
domain_blocks:
- add_new: Neue Domain-Sperre hinzufügen
+ add_new: Neue Domain einschränken
created_msg: Die Domain ist jetzt gesperrt bzw. eingeschränkt
- destroyed_msg: Die Domain-Sperre wurde aufgehoben
+ destroyed_msg: Die Einschränkungen zu dieser Domain wurde entfernt
domain: Domain
- edit: Domain-Sperre bearbeiten
+ edit: Einschränkungen bearbeiten
existing_domain_block: Du hast %{name} bereits stärker eingeschränkt.
existing_domain_block_html: Du hast bereits strengere Beschränkungen für die Domain %{name} verhängt. Du musst diese erst aufheben.
export: Exportieren
import: Importieren
new:
- create: Sperre einrichten
- hint: Die Domainsperre wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden, sondern rückwirkend und automatisch alle Moderationsmethoden auf diese Konten anwenden.
+ create: Server einschränken
+ hint: Die Einschränkung einer Domain wird nicht verhindern, dass Konteneinträge in der Datenbank erstellt werden. Es werden aber alle Moderationsmethoden rückwirkend und automatisch auf diese Konten angewendet.
severity:
desc_html: "Stummschaltung wird die Beiträge von Konten unter dieser Domain für alle unsichtbar machen, die den Konten nicht folgen. Eine Sperre wird alle Inhalte, Medien und Profildaten für Konten dieser Domain von deinem Server entfernen. Verwende keine, um nur Mediendateien abzulehnen."
noop: Kein
silence: Stummschaltung
suspend: Sperren
- title: Neue Domain-Sperre
+ title: Neue Domain einschränken
no_domain_block_selected: Keine Domains gesperrt, weil keine ausgewählt wurde(n)
not_permitted: Dir ist es nicht erlaubt, diese Handlung durchzuführen
obfuscate: Domain-Name verschleiern
@@ -409,7 +411,7 @@ de:
reject_media_hint: Entfernt lokal gespeicherte Mediendateien und verhindert deren künftiges Herunterladen. Für Sperren irrelevant
reject_reports: Meldungen ablehnen
reject_reports_hint: Alle Meldungen von dieser Domain ignorieren. Irrelevant für Sperrungen.
- undo: Domain-Sperre aufheben
+ undo: Einschränkungen aufheben
view: Domain-Sperre ansehen
email_domain_blocks:
add_new: Neue hinzufügen
@@ -427,6 +429,7 @@ de:
resolve: Domain auflösen
title: Neue E-Mail-Domain sperren
no_email_domain_block_selected: Keine E-Mail-Domain-Sperren wurden geändert, da keine ausgewählt wurden
+ not_permitted: Nicht gestattet
resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails zuständig sind. Das Sperren einer MX-Domain sperrt Anmeldungen aller E-Mail-Adressen, die dieselbe MX-Domain verwenden, auch wenn die sichtbare Domain anders lautet. Achte daher darauf, große E-Mail-Anbieter versehentlich nicht auszusperren.
resolved_through_html: Durch %{domain} aufgelöst
title: Gesperrte E-Mail-Domains
@@ -436,14 +439,14 @@ de:
no_file: Keine Datei ausgewählt
export_domain_blocks:
import:
- description_html: Du bist dabei, eine Liste von Domain-Sperren zu importieren. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
+ description_html: Du bist dabei, eine Liste von Domains zu importieren, die auf diesem Server gesperrt oder anderweitig eingeschränkt werden. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
existing_relationships_warning: Bestehende Folgebeziehungen
private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}'
private_comment_template: Importiert von %{source} am %{date}
- title: Domain-Sperren importieren
+ title: Domains importieren
invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}'
new:
- title: Domain-Sperren importieren
+ title: Domains importieren
no_file: Keine Datei ausgewählt
follow_recommendations:
description_html: "Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet."
@@ -456,7 +459,7 @@ de:
instances:
availability:
description_html:
- one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
+ one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Auslieferungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
other: Wenn die Zustellung an die Domain seit %{count} Tagen erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht.
failures_recorded:
@@ -473,33 +476,34 @@ de:
content_policies:
comment: Interne Notiz
description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden.
+ limited_federation_mode_description_html: Du kannst wählen, ob du eine Föderation mit dieser Domain gestattest.
policies:
reject_media: Medien ablehnen
reject_reports: Meldungen ablehnen
- silence: Stummschalten
+ silence: Stummschaltung
suspend: Gesperrt
- policy: Richtlinie
- reason: Öffentlicher Grund
+ policy: Einschränkung
+ reason: Öffentliche Begründung
title: Inhaltsrichtlinien
dashboard:
- instance_accounts_dimension: Meiste gefolgte Konten
- instance_accounts_measure: gespeicherte Konten
- instance_followers_measure: unsere Follower dort
+ instance_accounts_dimension: Meistgefolgte Konten
+ instance_accounts_measure: deren Konten hier im Cache
+ instance_followers_measure: eigene Follower dort
instance_follows_measure: deren Follower hier
- instance_languages_dimension: Top Sprachen
- instance_media_attachments_measure: gespeicherte Medienanhänge
- instance_reports_measure: Meldungen über deren Accounts
- instance_statuses_measure: gespeicherte Beiträge
+ instance_languages_dimension: Meistverwendete Sprachen
+ instance_media_attachments_measure: deren Medien hier im Cache
+ instance_reports_measure: Meldungen zu deren Accounts
+ instance_statuses_measure: deren Beiträge hier im Cache
delivery:
all: Alle
clear: Zustellfehler löschen
failing: Fehlerhaft
- restart: Lieferung neu starten
- stop: Lieferung stoppen
+ restart: Zustellung neu starten
+ stop: Zustellung beenden
unavailable: Nicht verfügbar
delivery_available: Zustellung funktioniert
- delivery_error_days: Tage seitdem die Zustellung nicht funktioniert
- delivery_error_hint: Wenn eine Lieferung für %{count} Tage nicht möglich ist, wird sie automatisch als nicht lieferbar markiert.
+ delivery_error_days: Tage der fehlerhaften Zustellung
+ delivery_error_hint: Wenn eine Auslieferung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert.
destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung.
empty: Keine Domains gefunden.
known_accounts:
@@ -508,11 +512,11 @@ de:
moderation:
all: Alle
limited: Eingeschränkt
- title: Moderation
+ title: Server
private_comment: Privater Kommentar
public_comment: Öffentlicher Kommentar
- purge: Löschen
- purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten aus dieser Domain löschen. Das kann eine Weile dauern.
+ purge: Säubern
+ purge_description_html: Wenn du glaubst, dass diese Domain endgültig offline ist, kannst du alle Account-Datensätze und zugehörigen Daten von diesem Server löschen. Das kann eine Weile dauern.
title: Föderation
total_blocked_by_us: Von uns gesperrt
total_followed_by_them: Gefolgt von denen
@@ -546,8 +550,8 @@ de:
relationships:
title: Beziehungen von %{acct}
relays:
- add_new: Neues Relay hinzufügen
- delete: Löschen
+ add_new: Neues Relais hinzufügen
+ delete: Entfernen
description_html: Ein Föderierungsrelay ist ein vermittelnder Server, der eine große Anzahl öffentlicher Beiträge zwischen Servern austauscht, die es abonnieren und zu ihm veröffentlichen. Es kann kleinen und mittleren Servern dabei helfen, Inhalte des Fediverse zu entdecken, was andernfalls das manuelle Folgen anderer Leute auf entfernten Servern durch lokale Nutzer erfordern würde.
disable: Ausschalten
disabled: Ausgeschaltet
@@ -557,8 +561,8 @@ de:
inbox_url: Relay-URL
pending: Warte auf Zustimmung des Relays
save_and_enable: Speichern und aktivieren
- setup: Relaisverbindung einrichten
- signatures_not_enabled: Relais funktionieren nicht korrekt, während der sichere Modus oder der Whitelist-Modus aktiviert ist
+ setup: Neues Relais verbinden
+ signatures_not_enabled: Die Relais funktionieren nicht korrekt, wenn der "secure mode" aktiviert oder die Föderation eingeschränkt ist
status: Status
title: Relais
report_notes:
@@ -570,7 +574,7 @@ de:
one: "%{count} Notiz"
other: "%{count} Notizen"
action_log: Protokoll
- action_taken_by: Maßnahme ergriffen durch
+ action_taken_by: Maßnahme ergriffen von
actions:
delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen.
mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung versehen und ein Verstoß wird vermerkt, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können.
@@ -585,11 +589,13 @@ de:
assign_to_self: Mir zuweisen
assigned: Zugewiesene*r Moderator*in
by_target_domain: Domain des gemeldeten Kontos
+ cancel: Abbrechen
category: Kategorie
category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert
comment:
none: Kein
comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:'
+ confirm: Bestätigen
confirm_action: Moderationsaktion gegen @%{acct} bestätigen
created_at: Gemeldet
delete_and_resolve: Beiträge löschen
@@ -600,9 +606,9 @@ de:
mark_as_unresolved: Als ungelöst markieren
no_one_assigned: Niemand
notes:
- create: Kommentar hinzufügen
- create_and_resolve: Mit Kommentar lösen
- create_and_unresolve: Mit Kommentar wieder öffnen
+ create: Notiz hinzufügen
+ create_and_resolve: Mit Notiz wieder lösen
+ create_and_unresolve: Mit Notiz wieder öffnen
delete: Löschen
placeholder: Bitte beschreibe, welche Maßnahmen bzw. Sanktionen ergriffen worden sind, und führe alles auf, was es Erwähnenswertes zu diesem Profil zu berichten gibt …
title: Notizen
@@ -636,7 +642,7 @@ de:
delete_data_html: Das Profil und die Inhalte von @%{acct} werden in 30 Tagen gelöscht, es sei denn, sie werden in der Zwischenzeit entsperrt
preview_preamble_html: "@%{acct} wird eine Warnung mit folgenden Inhalten erhalten:"
record_strike_html: Einen Verstoß gegen @%{acct} eintragen, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können
- send_email_html: "@%{acct} eine Warnung per E-Mail senden"
+ send_email_html: "@%{acct} eine Verwarnung per E-Mail schicken"
warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme.
target_origin: Domain des gemeldeten Kontos
title: Meldungen
@@ -655,11 +661,11 @@ de:
devops: DevOps
invites: Einladungen
moderation: Moderation
- special: Spezial
- delete: Löschen
+ special: Besonderheit
+ delete: Entfernen
description_html: Mit Benutzer*inn-Rollen kannst du die Funktionen und Bereiche von Mastodon anpassen, auf die deine Benutzer*innen zugreifen können.
edit: Rolle „%{name}“ bearbeiten
- everyone: Standardberechtigungen
+ everyone: Standard
everyone_full_description_html: Das ist die Basis-Rolle, die für alle Benutzer*innen gilt – auch für diejenigen ohne zugewiesene Rolle. Alle anderen Rollen erben Berechtigungen davon.
permissions_count:
one: "%{count} Berechtigung"
@@ -784,14 +790,15 @@ de:
strikes:
actions:
delete_statuses: "%{name} hat die Beiträge von %{target} entfernt"
- disable: "%{name} hat das Konto von %{target} eingefroren"
+ disable: "%{name} fror das Konto von %{target} ein"
mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen"
none: "%{name} hat eine Warnung an %{target} gesendet"
sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen"
- silence: "%{name} hat das Konto von %{target} stummgeschaltet"
- suspend: "%{name} hat das Konto von %{target} gesperrt"
+ silence: "%{name} schaltete das Konto von %{target} stumm"
+ suspend: "%{name} sperrte das Konto von %{target}"
appeal_approved: Einspruch angenommen
appeal_pending: Einspruch ausstehend
+ appeal_rejected: Einspruch abgelehnt
system_checks:
database_schema_check:
message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führe sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält
@@ -827,6 +834,7 @@ de:
other: In der letzten Woche von %{count} Personen geteilt
title: Angesagte Links
usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal
+ not_allowed_to_trend: Darf nicht trenden
only_allowed: Nur Genehmigte
pending_review: Überprüfung ausstehend
preview_card_providers:
@@ -851,7 +859,7 @@ de:
current_score: Aktuelle Punktzahl %{score}
dashboard:
tag_accounts_measure: eindeutige Verwendungen
- tag_languages_dimension: Top Sprachen
+ tag_languages_dimension: Meistverwendete Sprachen
tag_servers_dimension: Top Server
tag_servers_measure: verschiedene Server
tag_uses_measure: Gesamtnutzungen
@@ -863,21 +871,21 @@ de:
not_usable: Kann nicht verwendet werden
peaked_on_and_decaying: In den Trends am %{date}, jetzt absteigend
title: Angesagte Hashtags
- trendable: Darf unter Trends erscheinen
- trending_rank: 'Trend #%{rank}'
- usable: Kann verwendet werden
- usage_comparison: Heute %{today} Mal genutzt, gestern %{yesterday} Mal
+ trendable: Darf in den Trends erscheinen
+ trending_rank: Platz %{rank}
+ usable: Darf verwendet werden
+ usage_comparison: Heute %{today}-mal und gestern %{yesterday}-mal genutzt
used_by_over_week:
one: In der letzten Woche von einer Person genutzt
other: In der letzten Woche von %{count} Personen genutzt
title: Trends
- trending: Häufig diskutiert
+ trending: Angesagt
warning_presets:
add_new: Neu hinzufügen
delete: Löschen
edit_preset: Warnungsvorlage bearbeiten
- empty: Du hast noch keine Warnungsvorlagen hinzugefügt.
- title: Warnungsvorlagen verwalten
+ empty: Du hast noch keine Moderationsvorlagen hinzugefügt.
+ title: Moderationsvorlagen verwalten
webhooks:
add_new: Endpunkt hinzufügen
delete: Löschen
@@ -925,7 +933,7 @@ de:
new_trending_statuses:
title: Angesagte Beiträge
new_trending_tags:
- no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags.
+ no_approved_tags: Es gibt keine genehmigten Hashtags, die gerade im Trend liegen.
requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten angesagten Hashtag übertreffen, der derzeit #%{lowest_tag_name} mit einer Punktzahl von %{lowest_tag_score} ist.'
title: Angesagte Hashtags
subject: Neue Trends zur Überprüfung auf %{instance}
@@ -944,7 +952,7 @@ de:
discovery: Entdecken
localization:
body: Mastodon wird von Freiwilligen übersetzt.
- guide_link: https://de.crowdin.com/project/mastodon
+ guide_link: https://de.crowdin.com/project/mastodon/de
guide_link_text: Alle können mitmachen und etwas dazu beitragen.
sensitive_content: Inhaltswarnung
toot_layout: Timeline-Layout
@@ -952,12 +960,13 @@ de:
notification_preferences: E-Mail-Einstellungen ändern
salutation: "%{name},"
settings: 'E-Mail-Einstellungen ändern: %{link}'
- view: 'Ansehen:'
+ view: 'Hier überprüfen:'
view_profile: Profil anzeigen
- view_status: Beitrag öffnen
+ view_status: Beitrag anschauen
applications:
created: Anwendung erfolgreich erstellt
destroyed: Anwendung erfolgreich gelöscht
+ logout: Abmelden
regenerate_token: Zugangs-Token neu erstellen
token_regenerated: Zugriffstoken erfolgreich neu erstellt
warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
@@ -991,13 +1000,15 @@ de:
saml: SAML
register: Registrieren
registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
- resend_confirmation: Bestätigungsanweisungen erneut senden
+ resend_confirmation: Bestätigungs-E-Mail erneut versenden
reset_password: Passwort zurücksetzen
rules:
+ accept: Akzeptieren
+ back: Zurück
preamble: Diese werden von den %{domain}-Moderator*innen festgelegt und erzwungen.
title: Einige Grundregeln.
security: Sicherheit
- set_new_password: Neues Passwort setzen
+ set_new_password: Neues Passwort einrichten
setup:
email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten.
email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern.
@@ -1015,14 +1026,14 @@ de:
pending: Die Prüfung deiner Bewerbung steht noch aus. Dies kann einige Zeit in Anspruch nehmen. Sobald deine Bewerbung genehmigt wurde, erhältst du eine E-Mail.
redirecting_to: Dein Konto ist inaktiv, weil es zu %{acct} umgezogen ist.
view_strikes: Vorherige Verstöße deines Kontos ansehen
- too_fast: Formular zu schnell gesendet, versuche es erneut.
+ too_fast: Formular zu schnell abgeschickt, versuche es erneut.
use_security_key: Sicherheitsschlüssel verwenden
authorize_follow:
already_following: Du folgst diesem Konto bereits
- already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts versendet
- error: Das Remote-Konto konnte nicht geladen werden
+ already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts gestellt
+ error: Bedauerlicherweise konnte das externe Konto nicht geladen werden
follow: Folgen
- follow_request: 'Du hast eine Folgeanfrage gesendet an:'
+ follow_request: 'Du hast eine Folgeanfrage gestellt an:'
following: 'Erfolg! Du folgst nun:'
post_follow:
close: Oder du schließt einfach dieses Fenster.
@@ -1033,7 +1044,7 @@ de:
confirm: Fortfahren
hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen."
invalid_password: Ungültiges Passwort
- prompt: Gib dein Passwort ein, um fortzufahren
+ prompt: Bestätige mit deinem Passwort, um fortzufahren
crypto:
errors:
invalid_key: ist kein gültiger Ed25519- oder Curve25519-Schlüssel
@@ -1044,12 +1055,12 @@ de:
with_month_name: "%B %d, %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count}h"
- about_x_months: "%{count}mo"
- about_x_years: "%{count}y"
- almost_x_years: "%{count}y"
+ about_x_hours: "%{count} h"
+ about_x_months: "%{count} Mon."
+ about_x_years: "%{count} J"
+ almost_x_years: "%{count} J"
half_a_minute: Gerade eben
- less_than_x_minutes: "%{count}m"
+ less_than_x_minutes: "%{count} Min"
less_than_x_seconds: Gerade eben
over_x_years: "%{count}J"
x_days: "%{count}T"
@@ -1114,10 +1125,10 @@ de:
'422':
content: Sicherheitsüberprüfung fehlgeschlagen. Sperrst du Cookies aus?
title: Sicherheitsüberprüfung fehlgeschlagen
- '429': Du wurdest gedrosselt
+ '429': Zu viele Anfragen
'500':
content: Bitte verzeih', etwas ist bei uns schiefgegangen.
- title: Diese Seite ist kaputt
+ title: Diese Seite enthält einen Fehler
'503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden.
noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren.
existing_username_validator:
@@ -1130,29 +1141,29 @@ de:
hint_html: Du kannst ein Archiv deiner Beiträge, Listen, hochgeladenen Medien usw. anfordern. Die exportierten Daten werden im ActivityPub-Format gespeichert und können mit geeigneter Software ausgewertet und angezeigt werden. Du kannst alle 7 Tage ein Archiv erstellen lassen.
in_progress: Persönliches Archiv wird erstellt …
request: Dein Archiv anfordern
- size: Größe
- blocks: Gesperrte Accounts
+ size: Dateigröße
+ blocks: Gesperrte Profile
bookmarks: Lesezeichen
csv: CSV
domain_blocks: Gesperrte Domains
lists: Listen
- mutes: Stummgeschaltete Accounts
+ mutes: Stummgeschaltete Profile
storage: Medienspeicher
featured_tags:
- add_new: Neu hinzufügen
+ add_new: Neuen hinzufügen
errors:
- limit: Du hast bereits die maximale Anzahl an empfohlenen Hashtags erreicht
+ limit: Du hast bereits die maximale Anzahl an Hashtags erreicht
hint_html: "Was sind empfohlene Hashtags? Sie werden in deinem öffentlichen Profil hervorgehoben und ermöglichen es den Menschen, deine öffentlichen Beiträge speziell unter diesen Hashtags zu durchsuchen. Sie sind ein großartiges Werkzeug, um kreative Werke oder langfristige Projekte zu verfolgen."
filters:
contexts:
account: Profile
- home: Startseite
+ home: Startseite und Listen
notifications: Mitteilungen
public: Öffentliche Timelines
thread: Unterhaltungen
edit:
- add_keyword: Stichwort hinzufügen
- keywords: Stichwörter
+ add_keyword: Schlagwort hinzufügen
+ keywords: Schlagworte
statuses: Individuelle Beiträge
statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen..
title: Filter bearbeiten
@@ -1166,7 +1177,7 @@ de:
expires_in: Läuft ab in %{distance}
expires_on: Läuft am %{date} ab
keywords:
- one: "%{count} Stichwort"
+ one: "%{count} Schlagworte"
other: "%{count} Stichwörter"
statuses:
one: "%{count} Beitrag"
@@ -1179,14 +1190,14 @@ de:
save: Neuen Filter speichern
title: Neuen Filter hinzufügen
statuses:
- back_to_filter: Zurück zum Filter
+ back_to_filter: Zurück zu den Filtern
batch:
remove: Filter entfernen
index:
hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen.
title: Gefilterte Beiträge
footer:
- trending_now: In den Trends
+ trending_now: Jetzt in den Trends
generic:
all: Alle
all_items_on_page_selected_html:
@@ -1198,7 +1209,7 @@ de:
changes_saved_msg: Änderungen gespeichert!
copy: Kopieren
delete: Löschen
- deselect: Auswahl für alle aufheben
+ deselect: Alle abwählen
none: Keine
order_by: Sortieren nach
save_changes: Änderungen speichern
@@ -1220,15 +1231,15 @@ de:
merge_long: Behalte existierende Datensätze und füge neue hinzu
overwrite: Überschreiben
overwrite_long: Ersetze aktuelle Datensätze mit neuen
- preface: Daten, die du von einem anderen Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast.
+ preface: Daten, die du von einem Mastodon-Server exportiert hast, kannst du hierher importieren. Das betrifft beispielsweise die Listen von Profilen, denen du folgst oder die du gesperrt hast.
success: Deine Daten wurden erfolgreich hochgeladen und werden in Kürze verarbeitet
types:
- blocking: Sperrliste
+ blocking: Gesperrte Profile
bookmarks: Lesezeichen
- domain_blocking: Domain-Sperrliste
- following: Folgeliste
- muting: Stummschaltungsliste
- upload: Liste importieren
+ domain_blocking: Gesperrte Domains
+ following: Folge ich
+ muting: Stummgeschaltete Profile
+ upload: Datei importieren
invites:
delete: Deaktivieren
expired: Abgelaufen
@@ -1243,14 +1254,14 @@ de:
generate: Einladungslink erstellen
invited_by: 'Du wurdest eingeladen von:'
max_uses:
- one: 1 mal verwendet
- other: "%{count} mal verwendet"
+ one: 1-mal verwendet
+ other: "%{count}-mal verwendet"
max_uses_prompt: Keine Einschränkung
prompt: Erstelle Einladungen und teile die dazugehörigen Links, um anderen einen Zugang zu diesem Server zu gewähren
table:
expires_at: Läuft ab
uses: Verwendet
- title: Leute einladen
+ title: Einladungen
lists:
errors:
limit: Du hast die maximale Anzahl an Listen erreicht
@@ -1279,7 +1290,7 @@ de:
already_moved: ist das gleiche Konto, zu dem du bereits umgezogen bist
missing_also_known_as: referenziert nicht zurück auf dieses Konto
move_to_self: darf nicht das aktuelles Konto sein
- not_found: kann nicht gefunden werden
+ not_found: konnte nicht gefunden werden
on_cooldown: Die Abklingzeit läuft gerade
followers_count: Anzahl der Follower zum Zeitpunkt der Migration des Accounts
incoming_migrations: Von einem anderen Konto umziehen
@@ -1317,7 +1328,7 @@ de:
subject: "%{name} registrierte sich"
favourite:
body: 'Dein Beitrag wurde von %{name} favorisiert:'
- subject: "%{name} hat deinen Beitrag favorisiert"
+ subject: "%{name} favorisierte deinen Beitrag"
title: Neue Favorisierung
follow:
body: "%{name} folgt dir jetzt!"
@@ -1326,12 +1337,12 @@ de:
follow_request:
action: Verwalte Folge-Anfragen
body: "%{name} möchte dir folgen"
- subject: 'Ausstehender Follower: %{name}'
- title: Neue Folge-Anfrage
+ subject: 'Ausstehende Folgeanfragen: %{name}'
+ title: Neue Folgeanfrage
mention:
action: Antworten
- body: "%{name} hat dich erwähnt:"
- subject: "%{name} hat dich erwähnt"
+ body: 'Du wurdest von %{name} erwähnt:'
+ subject: "%{name} erwähnte dich"
title: Neue Erwähnung
poll:
subject: Eine Umfrage von %{name} ist beendet
@@ -1340,7 +1351,7 @@ de:
subject: "%{name} hat deinen Beitrag geteilt"
title: Dein Beitrag wurde geteilt
status:
- subject: "%{name} hat gerade etwas gepostet"
+ subject: "%{name} veröffentlichte gerade einen Beitrag"
update:
subject: "%{name} bearbeitete einen Beitrag"
notifications:
@@ -1350,12 +1361,12 @@ de:
number:
human:
decimal_units:
- format: "%n%u"
+ format: "%n %u"
units:
- billion: B
- million: M
+ billion: Mrd
+ million: Mio
quadrillion: Q
- thousand: K
+ thousand: Tsd
trillion: T
otp_authentication:
code_hint: Gib den Code ein, den deine 2FA- bzw. TOTP-App generiert hat, um den Vorgang zu bestätigen
@@ -1364,7 +1375,7 @@ de:
instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst."
manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App.
setup: Einrichten
- wrong_code: Der eingegebene Code war ungültig! Sind die Serverzeit und die Gerätezeit korrekt?
+ wrong_code: Der eingegebene Code ist ungültig! Laufen Serverzeit und Gerätezeit synchron?
pagination:
newer: Neuer
next: Weiter
@@ -1373,12 +1384,12 @@ de:
truncate: "…"
polls:
errors:
- already_voted: Du hast bereits für diese Umfrage abgestimmt
+ already_voted: Du hast an dieser Umfrage bereits teilgenommen
duplicate_options: enthält doppelte Einträge
- duration_too_long: ist zu weit in der Zukunft
+ duration_too_long: liegt zu weit in der Zukunft
duration_too_short: ist zu früh
- expired: Die Umfrage ist bereits vorbei
- invalid_choice: Die gewählte Abstimmoption existiert nicht
+ expired: Diese Umfrage ist bereits beendet
+ invalid_choice: Diese Auswahl existiert nicht
over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein
too_few_options: muss mindestens einen Eintrag haben
too_many_options: kann nicht mehr als %{max} Einträge beinhalten
@@ -1421,7 +1432,7 @@ de:
content_warning: 'Inhaltswarnung:'
descriptions:
account: Öffentliche Beiträge von @%{acct}
- tag: 'Öffentliche Beiträge mit dem Tag #%{hashtag}'
+ tag: 'Öffentliche Beiträge mit dem Hashtag #%{hashtag}'
scheduled_statuses:
over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht
over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht
@@ -1433,7 +1444,7 @@ de:
alipay: Alipay
blackberry: BlackBerry
chrome: Chrome
- edge: Microsoft Edge
+ edge: Edge
electron: Electron
firefox: Firefox
generic: Unbekannter Browser
@@ -1459,15 +1470,15 @@ de:
firefox_os: Firefox OS
ios: iOS
linux: Linux
- mac: Mac
+ mac: macOS
other: unbekanntes Betriebssystem
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: Widerrufen
- revoke_success: Sitzung erfolgreich geschlossen
+ revoke_success: Sitzung erfolgreich widerrufen
title: Sitzungen
- view_authentication_history: Authentifizierungsverlauf deines Kontos anzeigen
+ view_authentication_history: Anmeldeverlauf deines Kontos anzeigen
settings:
account: Konto
account_settings: Kontoeinstellungen
@@ -1475,14 +1486,14 @@ de:
appearance: Design
authorized_apps: Genehmigte Apps
back: Zurück zu Mastodon
- delete: Konto löschen
+ delete: Kontolöschung
development: Entwicklung
edit_profile: Profil bearbeiten
export: Exportieren
featured_tags: Empfohlene Hashtags
import: Importieren
import_and_export: Importieren und exportieren
- migrate: Konto-Umzug
+ migrate: Kontoumzug
notifications: Benachrichtigungen
preferences: Einstellungen
profile: Profil
@@ -1507,9 +1518,9 @@ de:
content_warning: 'Inhaltswarnung: %{warning}'
default_language: Wie die Sprache des Webinterface
disallowed_hashtags:
- one: 'enthält einen verbotenen Hashtag: %{tags}'
- other: 'enthält verbotene Hashtags: %{tags}'
- edited_at_html: Bearbeitet %{date}
+ one: 'enthält einen nicht-erlaubten Hashtag: %{tags}'
+ other: 'enthält nicht-erlaubte Hashtags: %{tags}'
+ edited_at_html: 'Bearbeitet: %{date}'
errors:
in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren.
open_in_web: Im Web öffnen
@@ -1532,7 +1543,7 @@ de:
show_older: Ältere anzeigen
show_thread: Thread anzeigen
sign_in_to_participate: Melde dich an, um an der Unterhaltung teilzunehmen
- title: '%{name}: "%{quote}"'
+ title: "%{name}: „%{quote}“"
visibilities:
direct: Direktnachricht
private: Nur eigene Follower
@@ -1540,7 +1551,7 @@ de:
public: Öffentlich
public_long: Für alle sichtbar
unlisted: Nicht gelistet
- unlisted_long: Für alle sichtbar, aber in öffentlichen Timelines nicht aufgelistet
+ unlisted_long: Für alle sichtbar (mit Ausnahme von öffentlichen Timelines)
statuses_cleanup:
enabled: Automatisch alte Beiträge löschen
enabled_hint: Löscht automatisch deine Beiträge, sobald sie die angegebene Altersgrenze erreicht haben, es sei denn, sie entsprechen einer der unten angegebenen Ausnahmen
@@ -1573,7 +1584,7 @@ de:
'7889238': 3 Monate
min_age_label: Altersgrenze
min_favs: Behalte Beiträge, die häufiger favorisiert wurden als …
- min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen
+ min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge, unabhängig der Anzahl an Favorisierungen zu löschen
min_reblogs: Behalte Beiträge, die öfter geteilt wurden als
min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen
stream_entries:
@@ -1582,7 +1593,7 @@ de:
sensitive_content: Inhaltswarnung
strikes:
errors:
- too_late: Es ist zu spät, um gegen diesen Verstoß Einspruch zu erheben
+ too_late: Es ist zu spät, um gegen diese Maßnahme Einspruch zu erheben
tags:
does_not_match_previous_name: entspricht nicht dem vorherigen Namen
themes:
@@ -1591,9 +1602,9 @@ de:
mastodon-light: Mastodon (Hell)
time:
formats:
- default: "%d.%m.%Y %H:%M"
+ default: "%d.%m.%Y um %H:%M Uhr"
month: "%b %Y"
- time: "%H:%M"
+ time: "%H:%M Uhr"
two_factor_authentication:
add: Hinzufügen
disable: Zwei-Faktor-Authentisierung (2FA) deaktivieren
@@ -1622,16 +1633,16 @@ de:
backup_ready:
explanation: Du hast eine vollständige Sicherung deines Mastodon-Kontos angefordert. Das Backup kann jetzt heruntergeladen werden!
subject: Dein persönliches Archiv kann heruntergeladen werden
- title: Archivmitnahme
+ title: Archiv-Download
suspicious_sign_in:
- change_password: dein Passwort zu ändern
- details: 'Hier sind die Details des Versuchs:'
+ change_password: dein Passwort ä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.
subject: Es wurde auf dein Konto von einer neuen IP-Adresse zugegriffen
title: Eine neue Anmeldung
warning:
- appeal: Einspruch einsenden
+ appeal: Einspruch erheben
appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden.
categories:
spam: Spam
@@ -1643,7 +1654,7 @@ de:
sensitive: Von nun an werden alle deine hochgeladenen Mediendateien mit einer Inhaltswarnung versehen und hinter einer Warnung versteckt.
silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um eine Sicherung deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
- reason: 'Grund:'
+ reason: 'Begründung:'
statuses: 'Zitierte Beiträge:'
subject:
delete_statuses: Deine Beiträge auf %{acct} wurden entfernt
@@ -1662,14 +1673,14 @@ de:
silence: Konto stummgeschaltet
suspend: Konto gesperrt
welcome:
- edit_profile_action: Profil einrichten
+ edit_profile_action: Profil bearbeiten
edit_profile_step: Du kannst dein Profil anpassen, indem du ein Profilbild hochlädst, deinen Anzeigenamen änderst und vieles mehr. Du kannst dich dafür entscheiden, neue Follower zu überprüfen, bevor sie dir folgen dürfen.
explanation: Hier sind ein paar Tipps, um loszulegen
- final_action: Fang an zu posten
+ final_action: Mit erstem Beitrag starten
final_step: 'Fang jetzt an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel in der lokalen Timeline oder über die Hashtags. Möglicherweise möchtest du dich allen mit dem Hashtag #neuhier vorstellen.'
full_handle: Dein vollständiger Profilname
full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können.
- subject: Willkommen bei Mastodon
+ subject: Willkommen bei Mastodon!
title: Willkommen an Bord, %{name}!
users:
follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen
@@ -1686,7 +1697,7 @@ de:
error: Beim Hinzufügen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut.
success: Dein Sicherheitsschlüssel wurde erfolgreich hinzugefügt.
delete: Löschen
- delete_confirmation: Bist du sicher, dass du diesen Sicherheitsschlüssel löschen möchtest?
+ delete_confirmation: Bist du dir sicher, dass du diesen Sicherheitsschlüssel löschen möchtest?
description_html: Wenn du die Authentifizierung mit Sicherheitsschlüssel aktivierst, musst du einen deiner Sicherheitsschlüssel verwenden, um dich anmelden zu können.
destroy:
error: Es gab ein Problem beim Löschen deines Sicherheitsschlüssels. Bitte versuche es erneut.
diff --git a/config/locales/devise.bg.yml b/config/locales/devise.bg.yml
index 5ce0157045..2881ce4c65 100644
--- a/config/locales/devise.bg.yml
+++ b/config/locales/devise.bg.yml
@@ -41,7 +41,7 @@ bg:
subject: 'Mastodon: Потвърдете имейла за %{instance}'
title: Потвърдете своя имейл адрес
reset_password_instructions:
- action: Промяна на парола
+ action: Промяна на паролата
explanation: Поискахте нова парола за акаунта си.
extra: Ако не сте заявили това, то игнорирайте това е-писмо. Паролата ви няма да се променя, докато не влезете от връзката по-горе и не създадете нова.
subject: 'Mastodon: Указания за задаване на нова парола'
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index e5ce87ebec..577cf13004 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -2,24 +2,24 @@
de:
devise:
confirmations:
- confirmed: Deine E-Mail-Adresse wurde bestätigt.
+ confirmed: Deine E-Mail-Adresse wurde erfolgreich bestätigt.
send_instructions: Du wirst in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast.
send_paranoid_instructions: Falls deine E-Mail-Adresse in unserer Datenbank hinterlegt ist, wirst du in wenigen Minuten eine E-Mail erhalten. Darin wird erklärt, wie du deine E-Mail-Adresse bestätigen kannst. Schau bitte auch in deinem Spam-Ordner nach, wenn du diese E-Mail nicht erhalten hast.
failure:
already_authenticated: Du bist bereits angemeldet.
inactive: Dein Konto wurde noch nicht aktiviert.
invalid: "%{authentication_keys} oder Passwort ungültig."
- last_attempt: Du hast noch einen Versuch, bevor dein Konto gesperrt wird.
+ last_attempt: Du hast nur noch einen Versuch, bevor dein Zugang gesperrt wird.
locked: Dein Konto ist gesperrt.
not_found_in_database: "%{authentication_keys} oder Passwort ungültig."
- pending: Dein Konto wird immer noch überprüft.
+ pending: Dein Konto wird weiterhin überprüft.
timeout: Deine Sitzung ist abgelaufen. Bitte melde dich erneut an, um fortzufahren.
unauthenticated: Du musst dich anmelden oder registrieren, bevor du fortfahren kannst.
unconfirmed: Du musst deine E-Mail-Adresse bestätigen, bevor du fortfahren kannst.
mailer:
confirmation_instructions:
action: E-Mail-Adresse verifizieren
- action_with_app: Bestätigen und zu %{app} zurückkehren
+ action_with_app: Bestätigen – und dann zur App %{app} zurückkehren
explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen.
@@ -31,35 +31,35 @@ de:
subject: 'Mastodon: E-Mail-Adresse geändert'
title: Neue E-Mail-Adresse
password_change:
- explanation: Das Passwort für deinen Account wurde geändert.
+ explanation: Deine Zugangsdaten wurden geändert.
extra: Wenn du dein Passwort nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff auf deinem Account erlangt hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: Passwort geändert'
title: Passwort geändert
reconfirmation_instructions:
explanation: Bestätige deine neue E-Mail-Adresse, um sie zu ändern.
extra: Wenn diese Änderung nicht von dir ausgeführt wurde, dann solltest du diese E-Mail ignorieren. Die E-Mail-Adresse für deinen Mastodon-Account wird sich nicht ändern, bis du den obigen Link anklickst.
- subject: 'Mastodon: Bestätige E-Mail-Adresse für %{instance}'
+ subject: 'Mastodon: E-Mail-Adresse für %{instance} bestätigen'
title: E-Mail-Adresse verifizieren
reset_password_instructions:
- action: Ändere Passwort
+ action: Passwort ändern
explanation: Du hast ein neues Passwort für deinen Account angefragt.
extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern, solange du den obigen Link anklickst und ein neues erstellst.
- subject: 'Mastodon: Passwort zurücksetzen'
+ subject: 'Mastodon: Anleitung zum Zurücksetzen deines Passworts'
title: Passwort zurücksetzen
two_factor_disabled:
- explanation: Zwei-Faktor-Authentifizierung für dein Konto wurde deaktiviert. Login ist jetzt nur mit E-Mail-Adresse und Passwort möglich.
- subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung deaktiviert'
+ explanation: Zwei-Faktor-Authentisierung (2FA) für dein Konto wurde deaktiviert. Eine Anmeldung ist jetzt nur noch mit E-Mail-Adresse und Passwort möglich.
+ subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) deaktiviert'
title: 2FA deaktiviert
two_factor_enabled:
- explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, das von der verbundenen TOTP-App generiert wird, wird für den Login benötigt.
- subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert'
+ explanation: Die Zwei-Faktor-Authentisierung (2FA) wurde für dein Konto aktiviert. Das zeitbasierte Einmalkennwort, das von deiner TOTP-App generiert wird, muss bei jeder Anmeldung zusätzlich eingegeben werden.
+ subject: 'Mastodon: Zwei‐Faktor‐Authentisierung (2FA) aktiviert'
title: 2FA aktiviert
two_factor_recovery_codes_changed:
explanation: Die vorherigen Wiederherstellungscodes wurden ungültig gemacht und es wurden neue erstellt.
subject: 'Mastodon: Zwei-Faktor-Wiederherstellungscodes neu erstellt'
title: 2FA-Wiederherstellungscodes geändert
unlock_instructions:
- subject: 'Mastodon: Konto entsperren'
+ subject: 'Mastodon: Anleitung zur Entsperrung deines Kontos'
webauthn_credential:
added:
explanation: Der folgende Sicherheitsschlüssel wurde zu deinem Konto hinzugefügt
@@ -87,8 +87,8 @@ de:
updated: Ihr Passwort wurde erfolgreich geändert. Du bist jetzt angemeldet.
updated_not_active: Dein Passwort wurde erfolgreich geändert.
registrations:
- destroyed: Dein Konto wurde gelöscht.
- signed_up: Willkommen! Du hast dich erfolgreich registriert.
+ destroyed: Tschüss! Dein Konto wurde erfolgreich gelöscht. Wir hoffen, dich bald wiederzusehen.
+ signed_up: Herzlich willkommen! Du hast dich erfolgreich registriert.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Allerdings ist dein Konto noch nicht aktiviert und du kannst dich daher noch nicht anmelden.
signed_up_but_locked: Du hast dich erfolgreich registriert. Allerdings ist dein Konto gesperrt und du kannst dich daher nicht anmelden.
signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast, werden wir deine Anfrage überprüfen. Du wirst benachrichtigt werden, falls die Anfrage angenommen wurde.
diff --git a/config/locales/devise.fi.yml b/config/locales/devise.fi.yml
index ce5a35efde..08bc18ec1f 100644
--- a/config/locales/devise.fi.yml
+++ b/config/locales/devise.fi.yml
@@ -18,13 +18,13 @@ fi:
unconfirmed: Vahvista sähköpostiosoitteesi, ennen kuin jatkat.
mailer:
confirmation_instructions:
- action: Vahvista sähköpostiosoitteesi
+ action: Vahvista sähköpostiosoite
action_with_app: Vahvista ja palaa %{app}
- explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Aktivoi tili yhdellä klikkauksella. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta.
+ explanation: Olet luonut tilin palvelimelle %{host} käyttäen tätä sähköpostiosoitetta. Olet painalluksen päässä tilin aktivoinnista. Jos et luonut tiliä itse, voit jättää tämän viestin huomiotta.
explanation_when_pending: Teit hakemuksen kutsusta palvelimelle %{host} tällä sähköpostiosoitteella. Kun olet vahvistanut sähköpostiosoitteesi, tarkistamme hakemuksesi. Voit kirjautua sisään muuttaaksesi hakemuksen sisältöä tai poistaaksesi tilin, mutta et voi käyttää suurinta osaa toiminnallisuudesta ennen kuin hakemuksesi on hyväksytty. Jos hakemuksesi hylätään, tietosi poistetaan eikä sinulta tarvita enempää toimia. Jos sinä et tehnyt hakemusta, voit jättää tämän viestin huomiotta.
- extra_html: Katso myös palvelimen säännöt ja käyttöehdot.
+ extra_html: Tutustu myös palvelimen sääntöihin ja palveluehtoihimme.
subject: 'Mastodon: Vahvistusohjeet instanssille %{instance}'
- title: Vahvista sähköpostiosoitteesi
+ title: Vahvista sähköpostiosoite
email_changed:
explanation: 'Tilin sähköpostiosoitteeksi vaihdetaan:'
extra: Jos et vaihtanut sähköpostiosoitettasi, joku muu on todennäköisesti päässyt käyttämään tiliäsi. Vaihda salasanasi viipymättä. Jos et pääse kirjautumaan tilillesi, ota yhteyttä instanssin ylläpitäjään.
diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml
index 6ae910da0b..14b26845ae 100644
--- a/config/locales/devise.my.yml
+++ b/config/locales/devise.my.yml
@@ -3,18 +3,30 @@ my:
devise:
confirmations:
confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။
+ send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
failure:
+ already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။
invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
+ last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။
+ locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။
not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
+ timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။
+ unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။
+ unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။
mailer:
confirmation_instructions:
action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ
+ extra_html: ကျေးဇူးပြု၍ ဆာဗာစည်းမျဉ်းများ နှင့် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများကိုလည်း စစ်ဆေးကြည့်ပါ။
+ subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ
title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
email_changed:
+ explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် -
subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ'
title: အီးမေးလ်လိပ်စာအသစ်
password_change:
+ explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။
subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ'
title: စကားဝှက်ပြောင်းလဲသွားပြီ
reconfirmation_instructions:
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index e3f5dee2a9..85b775b0b6 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -20,8 +20,8 @@ zh-TW:
confirmation_instructions:
action: 驗證電子郵件地址
action_with_app: 確認並返回 %{app}
- explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
- explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
+ explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。
+ explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。
extra_html: 同時也請看看伺服器規則與服務條款。
subject: Mastodon:%{instance} 確認說明
title: 驗證電子郵件地址
diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml
index 21a94acecc..e79aa0359f 100644
--- a/config/locales/doorkeeper.cy.yml
+++ b/config/locales/doorkeeper.cy.yml
@@ -129,7 +129,7 @@ cy:
crypto: Amgryptio o ben i ben
favourites: Ffefrynnau
filters: Hidlyddion
- follow: Yn dilyn, Wedi Tewi a Blociau
+ follow: Dilynion, Anwybyddiadau a Blociau
follows: Yn dilyn
lists: Rhestrau
media: Atodiadau cyfryngau
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index 21f508d90d..00c4ad678e 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -25,11 +25,11 @@ de:
edit: Bearbeiten
submit: Speichern
confirmations:
- destroy: Bist du sicher?
+ destroy: Bist du dir sicher?
edit:
title: Anwendung bearbeiten
form:
- error: Hoppla! Bitte überprüfe das Formular auf mögliche Fehler
+ error: Ups! Bitte überprüfe das Formular auf mögliche Fehler
help:
native_redirect_uri: Benutze %{native_redirect_uri} für lokale Tests
redirect_uri: Benutze eine Zeile pro URI
@@ -61,7 +61,7 @@ de:
title: Ein Fehler ist aufgetreten
new:
prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es ist eine Anwendung von Drittanbietern. Wenn du ihr nicht vertraust, dann solltest du sie nicht autorisieren."
- review_permissions: Rechte überprüfen
+ review_permissions: Berechtigungen überprüfen
title: Autorisierung erforderlich
show:
title: Kopiere diesen Autorisierungs-Code und füge ihn in die Anwendung ein.
@@ -69,7 +69,7 @@ de:
buttons:
revoke: Widerrufen
confirmations:
- revoke: Bist du sicher?
+ revoke: Bist du dir sicher?
index:
authorized_at: Autorisiert am %{date}
description_html: Dies sind Anwendungen, die über die Programmierschnittstelle (API) auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht zuordnen kannst oder wenn sich eine Anwendung verdächtig verhält, kannst du den Zugriff widerrufen.
@@ -114,9 +114,9 @@ de:
notice: Anwendung widerrufen.
grouped_scopes:
access:
- read: Nur-Lese-Zugriff
+ read: Nur Lesezugriff
read/write: Lese- und Schreibzugriff
- write: Schreibzugriff
+ write: Nur Schreibzugriff
title:
accounts: Konten
admin/accounts: Verwaltung der Konten
@@ -129,7 +129,7 @@ de:
crypto: Ende-zu-Ende-Verschlüsselung
favourites: Favoriten
filters: Filter
- follow: Folge ich, Stummschaltungen und Blockierungen
+ follow: Folge ich, Stummschaltungen und Sperrungen
follows: Folge ich
lists: Listen
media: Medienanhänge
@@ -168,9 +168,9 @@ de:
push: deine Push-Benachrichtigungen erhalten
read: all deine Daten lesen
read:accounts: deine Konteninformationen einsehen
- read:blocks: deine Blockaden einsehen
+ read:blocks: deine Sperren einsehen
read:bookmarks: deine Lesezeichen lesen
- read:favourites: deine Favoriten ansehen
+ read:favourites: deine Favoriten lesen
read:filters: deine Filter ansehen
read:follows: sehen, wem du folgst
read:lists: deine Listen sehen
@@ -186,10 +186,10 @@ de:
write:conversations: Unterhaltungen stummschalten und löschen
write:favourites: Beiträge favorisieren
write:filters: Filter erstellen
- write:follows: Leuten folgen
+ write:follows: Profilen folgen
write:lists: Listen erstellen
write:media: Mediendateien hochladen
write:mutes: Profile und Unterhaltungen stummschalten
write:notifications: deine Benachrichtigungen leeren
- write:reports: andere Leute melden
+ write:reports: andere Profile melden
write:statuses: Beiträge veröffentlichen
diff --git a/config/locales/doorkeeper.fr-QC.yml b/config/locales/doorkeeper.fr-QC.yml
index f8a5b64846..6cccf48471 100644
--- a/config/locales/doorkeeper.fr-QC.yml
+++ b/config/locales/doorkeeper.fr-QC.yml
@@ -122,12 +122,14 @@ fr-QC:
admin/accounts: Gestion des comptes
admin/all: Toutes les fonctionnalités d'administration
admin/reports: Gestion des rapports
+ all: Accès complet à votre compte Mastodon
blocks: Bloqués
bookmarks: Marque-pages
conversations: Conversations
crypto: Chiffrement de bout-en-bout
favourites: Favoris
filters: Filtres
+ follow: Abonnements, comptes masqués et comptes bloqués
follows: Abonnements
lists: Listes
media: Fichiers médias
@@ -147,18 +149,18 @@ fr-QC:
scopes:
admin:read: lire toutes les données du serveur
admin:read:accounts: lire les informations sensibles de tous les comptes
- admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs d'e-mails canoniques
+ admin:read:canonical_email_blocks: lire les informations sensibles de tous les bloqueurs de courriels canoniques
admin:read:domain_allows: lire les informations sensibles de tous les domaines autorisés
- admin:read:domain_blocks: lire les informations sensibles de tous les blocqueurs de domaines
- admin:read:email_domain_blocks: lire les informations sensibles de tous les blocqueurs d'e-mails de domaines
+ admin:read:domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines
+ admin:read:email_domain_blocks: lire les informations sensibles de tous les bloqueurs de domaines de courriel
admin:read:ip_blocks: lire les informations sensibles de tous les blocqueurs d'IP
admin:read:reports: lire les informations sensibles de tous les signalements et des comptes signalés
admin:write: modifier toutes les données sur le serveur
admin:write:accounts: effectuer des actions de modération sur les comptes
- admin:write:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs d'e-mails canoniques
+ admin:write:canonical_email_blocks: effectuer des actions de modération sur les bloqueurs de courriels canoniques
admin:write:domain_allows: effectuer des actions de modération sur les autorisations de domaines
admin:write:domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines
- admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs d'e-mails de domaines
+ admin:write:email_domain_blocks: effectuer des actions de modération sur des bloqueurs de domaines de courriel
admin:write:ip_blocks: effectuer des actions de modération sur des bloqueurs d'IP
admin:write:reports: effectuer des actions de modération sur les signalements
crypto: utiliser le chiffrement de bout-en-bout
diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml
index b7697074cb..345a3b2649 100644
--- a/config/locales/doorkeeper.my.yml
+++ b/config/locales/doorkeeper.my.yml
@@ -1,24 +1,174 @@
---
my:
activerecord:
+ attributes:
+ doorkeeper/application:
+ name: အက်ပလီကေးရှင်းအမည်
+ redirect_uri: URI ကို ပြန်ညွှန်းရန်
+ scopes: နယ်ပယ်များ
+ website: အက်ပလီကေးရှင်းဝဘ်ဆိုဒ်
errors:
models:
doorkeeper/application:
attributes:
redirect_uri:
invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။
+ relative_uri: URI ဖြစ်ရမည်။
secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။
doorkeeper:
applications:
buttons:
+ authorize: လုပ်ပိုင်ခွင့်
cancel: ပယ်ဖျက်မည်
destroy: ဖျက်ဆီးမည်
edit: ပြင်မည်
submit: တင်သွင်းမည်
confirmations:
destroy: သေချာပါသလား?
+ edit:
+ title: အက်ပလီကေးရှင်းကို ပြင်ဆင်ရန်
+ form:
+ error: အိုး၊ သင့်ဖောင်မှာ အမှားအယွင်းများရှိနိုင်သောကြောင့် စစ်ဆေးပါ
help:
+ native_redirect_uri: ဒေသတွင်းစမ်းသပ်မှုများအတွက် %{native_redirect_uri} ကို အသုံးပြုပါ
redirect_uri: URI တစ်ခုစီအတွက် လိုင်းတစ်ကြောင်းသုံးပါ
+ scopes: နယ်ပယ်များကို နေရာလွတ်များဖြင့် ခွဲခြားပါ။ မူလသတ်မှတ်ထားသည့်နယ်ပယ်များ အသုံးပြုရန်အတွက် အလွတ် ချန်ထားပါ။
index:
+ application: အက်ပလီကေးရှင်း
+ callback_url: URL ပြန်ခေါ်ရန်
delete: ဖျက်မည်
+ empty: သင့်တွင် အက်ပလီကေးရှင်းများ မရှိပါ။
name: အမည်
+ new: အက်ပလီကေးရှင်းအသစ်
+ scopes: နယ်ပယ်များ
+ show: ပြရန်
+ title: သင့်အက်ပလီကေးရှင်းများ
+ new:
+ title: အက်ပလီကေးရှင်းအသစ်
+ show:
+ actions: လုပ်ဆောင်ချက်များ
+ application_id: Client ကီး
+ callback_urls: URLs ပြန်ခေါ်ရန်
+ scopes: နယ်ပယ်များ
+ secret: Client လျှို့ဝှက်ချက်
+ title: အက်ပလီကေးရှင်း - %{name}
+ authorizations:
+ buttons:
+ authorize: လုပ်ပိုင်ခွင့်
+ deny: ငြင်းရန်
+ error:
+ title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်
+ new:
+ review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ
+ title: ခွင့်ပြုချက် လိုအပ်သည်
+ show:
+ title: ဤခွင့်ပြုချက်ကုဒ်ကို ကူးယူပြီး အက်ပလီကေးရှင်းသို့ ကူးထည့်ပါ။
+ authorized_applications:
+ buttons:
+ revoke: ပြန်ရုပ်သိမ်းရန်
+ confirmations:
+ revoke: သေချာပါသလား။
+ index:
+ authorized_at: "%{date} တွင် ခွင့်ပြုခဲ့သည်"
+ description_html: "၎င်းတို့မှာ API အသုံးပြု၍ သင့်အကောင့်ကို ဝင်ရောက်ကြည့်ရှုနိုင်သော အက်ပလီကေးရှင်းများဖြစ်သည်။ ဤနေရာတွင် သင်မသိသော အက်ပလီကေးရှင်းများ ရှိပါက သို့မဟုတ် အက်ပလီကေးရှင်းတစ်ခုသည် လွဲမှားစွာ လုပ်ဆောင်နေပါက ၎င်း၏ ဝင်ရောက်ခွင့်ကို သင် ပြန်လည်ရုပ်သိမ်းနိုင်သည်။"
+ last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်"
+ never_used: မသုံးဖူးပါ
+ scopes: ခွင့်ပြုချက်များ
+ title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ
+ errors:
+ messages:
+ access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။
+ credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။
+ invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။
+ invalid_token:
+ expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ
+ revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည်
+ unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ
+ unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။
+ flash:
+ applications:
+ create:
+ notice: အက်ပလီကေးရှင်းကို ဖန်တီးခဲ့သည်။
+ destroy:
+ notice: အက်ပလီကေးရှင်းကို ဖျက်ခဲ့သည်။
+ update:
+ notice: အက်ပလီကေးရှင်းကို ပြင်ဆင်ခဲ့သည်။
+ authorized_applications:
+ destroy:
+ notice: အက်ပလီကေးရှင်းကို ပြန်ရုပ်သိမ်းခဲ့သည်။
+ grouped_scopes:
+ access:
+ read: ဖတ်ခွင့်သာရှိသည်
+ read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည်
+ title:
+ accounts: အကောင့်များ
+ admin/accounts: အကောင့်စီမံခန့်ခွဲမှု
+ admin/all: စီမံခွင့်ဆိုင်ရာ လုပ်ငန်းဆောင်တာအားလုံး
+ admin/reports: မှတ်တမ်းများ စီမံခန့်ခွဲခြင်း
+ all: သင်၏ Mastodon အကောင့်သို့ အပြည့်အဝ ဝင်ရောက်ခွင့်
+ blocks: ပိတ်ပင်ထားမှုများ
+ bookmarks: မှတ်ထားသည်များ
+ conversations: စကားဝိုင်းများ
+ crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်း
+ favourites: အကြိုက်ဆုံးများ
+ filters: စစ်ထုတ်ထားခြင်းများ
+ follow: စောင့်ကြည့်ခြင်း၊ အသံပိတ်ခြင်းနှင့် ပိတ်ပင်ခြင်းများ
+ follows: စောင့်ကြည့်မယ်
+ lists: စာရင်းများ
+ media: မီဒီယာ ပူးတွဲချက်များ
+ mutes: အသံပိတ်ထားရန်
+ notifications: အသိပေးချက်များ
+ push: အသိပေးချက်များအား ရအောင်ပို့ခြင်း
+ reports: မှတ်တမ်းများ
+ search: ရှာရန်
+ statuses: ပို့စ်များ
+ layouts:
+ admin:
+ nav:
+ applications: အက်ပလီကေးရှင်းများ
+ oauth2_provider: OAuth2 ပံ့ပိုးပေးသူ
+ application:
+ title: OAuth ခွင့်ပြုချက် လိုအပ်ပါသည်
+ scopes:
+ admin:read: ဆာဗာရှိ အချက်အလက်အားလုံးကို ဖတ်ပါ
+ admin:read:accounts: အကောင့်အားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:domain_allows: ခွင့်ပြုထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:domain_blocks: ပိတ်ပင်ထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းအားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:ip_blocks: ပိတ်ပင်ထားသော IP အားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:reports: မှတ်တမ်းများနှင့် တိုင်ကြားထားသောအကောင့်များအားလုံး၏ အရေးကြီးသော အချက်အလက်ကို ဖတ်ပါ။
+ admin:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
+ admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
+ admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ admin:write:ip_blocks: IP ပိတ်ပင်ခြင်းများအတွက် စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
+ admin:write:reports: အစီရင်ခံစာများပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
+ crypto: ပေးပို့သူနှင့် ရရှိသူများသာသိနိုင်သော လုံခြုံမှုနည်းလမ်းကို အသုံးပြုပါ
+ follow: အကောင့်ဆက်ဆံရေးများကို ပြင်ဆင်ပါ
+ push: သင်ရရှိအောင်ပေးပို့ထားသည့် အသိပေးချက်များကို လက်ခံပါ
+ read: သင့်အကောင့်အချက်အလက်အားလုံးကို ဖတ်ပါ
+ read:accounts: အကောင့်အချက်အလက်များကို ကြည့်ပါ
+ read:blocks: သင် ပိတ်ပင်ထားသည်များကို ကြည့်ပါ
+ read:bookmarks: သင် မှတ်ထားသည်များကို ကြည့်ပါ
+ read:favourites: သင့်အကြိုက်ဆုံးများကို ကြည့်ပါ
+ read:filters: သင် စစ်ထုတ်ထားမှုများကို ကြည့်ပါ
+ read:follows: သင့်အားစောင့်ကြည့်နေသူများကို ကြည့်ပါ
+ read:lists: သင့်စာရင်းများကို ကြည့်ပါ
+ read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ
+ read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ
+ read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ
+ read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ
+ write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
+ write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ
+ write:blocks: အကောင့်များနှင့် ဒိုမိန်းများကို ပိတ်ပင်ပါ
+ write:bookmarks: မှတ်ထားသောပို့စ်များ
+ write:conversations: စကားဝိုင်းများကို အသံပိတ်ပြီး ဖျက်ပါ
+ write:favourites: အကြိုက်ဆုံးပို့စ်များ
+ write:filters: စစ်ထုတ်ခြင်းအား ဖန်တီးပါ
+ write:follows: စောင့်ကြည့်ရန်
+ write:lists: စာရင်းများ ဖန်တီးရန်
+ write:media: မီဒီယာဖိုင်များကို အင်တာနက်ပေါ်တင်ပါ
+ write:mutes: လူများနှင့် စကားဝိုင်းများကို ပိတ်ထားပါ
+ write:notifications: သင့်အအသိပေးချက်များကို ရှင်းလင်းပါ
+ write:statuses: ပို့စ်များအား ရအောင်ပို့ခြင်း
diff --git a/config/locales/doorkeeper.zh-HK.yml b/config/locales/doorkeeper.zh-HK.yml
index 59e133a707..6b078d609c 100644
--- a/config/locales/doorkeeper.zh-HK.yml
+++ b/config/locales/doorkeeper.zh-HK.yml
@@ -122,12 +122,14 @@ zh-HK:
admin/accounts: 帳號管理
admin/all: 所有管理功能
admin/reports: 檢舉報告管理
+ all: 完整存取你的 Mastodon 帳號
blocks: 封鎖
bookmarks: 書籤
conversations: 對話
crypto: 端到端加密
favourites: 最愛
filters: 篩選器
+ follow: 追蹤、靜音及封鎖
follows: 追蹤
lists: 名單
media: 媒體附件
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 903fcb8e19..3d28a0e0ab 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -91,6 +91,7 @@ el:
moderation:
active: Ενεργός/ή
all: Όλα
+ disabled: Απενεργοποιημένο
pending: Εκκρεμούν
silenced: Περιορισμένοι
suspended: Σε αναστολή
@@ -133,6 +134,7 @@ el:
search: Αναζήτηση
search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail
search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP
+ security: Ασφάλεια
security_measures:
only_password: Μόνο κωδικός πρόσβασης
password_and_2fa: Κωδικός πρόσβασης και 2FA
@@ -237,6 +239,18 @@ el:
create_announcement_html: Ο/Η %{name} δημιούργησε νέα ανακοίνωση %{target}
create_canonical_email_block_html: Ο/Η %{name} απέκλεισε e-mail με το hash %{target}
create_custom_emoji_html: Ο/Η %{name} ανέβασε νέο emoji %{target}
+ create_domain_allow_html: Ο/Η %{name} έβαλε τον τομέα %{target} σε λευκή λίστα
+ create_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα %{target}
+ create_email_domain_block_html: Ο/Η %{name} απέκλεισε τον τομέα email %{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} επέτρεψε email με το hash %{target}
+ destroy_custom_emoji_html: Ο/Η %{name} διέγραψε το emoji %{target}
+ destroy_domain_allow_html: Ο/Η %{name} αφαίρεσε τον τομέα %{target} από τη λίστα εγκρίσεων
+ destroy_domain_block_html: Ο/Η %{name} επέτρεψε τον τομέα %{target}
destroy_email_domain_block_html: Ο/Η %{name} ξεμπλόκαρε το email domain %{target}
destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target}
destroy_ip_block_html: Ο/Η %{name} διέγραψε τον κανόνα για την IP %{target}
@@ -252,7 +266,17 @@ el:
enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target}
memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης
promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target}
+ reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των διαχειριστών από %{target}
reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}"
+ remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target}
+ reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target}
+ resend_user_html: Ο/Η %{name} έστειλε ξανά e-mail επιβεβαίωσης για τον/την %{target}
+ reset_password_user_html: Ο/Η %{name} επανέφερε το συνθηματικό του χρήστη %{target}
+ resolve_report_html: Ο/Η %{name} επέλυσε την αναφορά %{target}
+ sensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
+ silence_account_html: Ο/Η %{name} περιόρισε τον λογαριασμό του/της %{target}
+ suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target}
+ unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target}
unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}"
deleted_account: διαγραμμένος λογαριασμός
empty: Δεν βρέθηκαν αρχεία καταγραφής.
@@ -367,6 +391,7 @@ el:
new:
create: Πρόσθεση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
+ not_permitted: Δεν επιτρέπεται
title: Μαύρη λίστα email
export_domain_allows:
no_file: Δεν επιλέχθηκε αρχείο
@@ -455,9 +480,11 @@ el:
assign_to_self: Ανάθεση σε μένα
assigned: Αρμόδιος συντονιστής
by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία
+ cancel: Άκυρο
category: Κατηγορία
comment:
none: Κανένα
+ confirm: Επιβεβαίωση
created_at: Καταγγέλθηκε
delete_and_resolve: Διαγραφή δημοσιεύσεων
forwarded: Προωθημένα
@@ -573,6 +600,8 @@ el:
trending: Δημοφιλή
visibility: Ορατότητα
with_media: Με πολυμέσα
+ strikes:
+ appeal_rejected: Η αίτηση απορρίφθηκε
system_checks:
database_schema_check:
message_html: Υπάρχουν μετακινήσεις βάσης δεδομένων που εκκρεμούν. Παρακαλώ εκτελέστε τις για να βεβαιωθείτε ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται
@@ -584,6 +613,7 @@ el:
updated_msg: Οι ρυθμίσεις των ετικετών ενημερώθηκαν επιτυχώς
title: Διαχείριση
trends:
+ not_allowed_to_trend: Δεν επιτρέπεται η τάση
only_allowed: Μόνο επιτρεπόμενα
tags:
dashboard:
@@ -643,6 +673,7 @@ el:
applications:
created: Η εφαρμογή δημιουργήθηκε επιτυχώς
destroyed: Η εφαρμογή διαγράφηκε επιτυχώς
+ logout: Αποσύνδεση
regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token)
token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
@@ -676,6 +707,8 @@ el:
resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης
reset_password: Επαναφορά συνθηματικού
rules:
+ accept: Αποδοχή
+ back: Πίσω
title: Ορισμένοι βασικοί κανόνες.
security: Ασφάλεια
set_new_password: Ορισμός νέου συνθηματικού
@@ -787,8 +820,6 @@ el:
storage: Αποθήκευση πολυμέσων
featured_tags:
add_new: Προσθήκη νέας
- errors:
- limit: Έχεις ήδη προσθέσει το μέγιστο αριθμό ετικετών
hint_html: "Τι είναι οι προβεβλημένες ετικέτες; Προβάλλονται στο δημόσιο προφίλ σου επιτρέποντας σε όποιον το βλέπει να χαζέψει τις δημοσιεύσεις που τις χρησιμοποιούν. Είναι ένας ωραίος τρόπος να παρακολουθείς την πορεία μιας δημιουργία ή ενός μακροπρόθεσμου έργου."
filters:
contexts:
@@ -868,9 +899,6 @@ el:
expires_at: Λήγει
uses: Χρήσεις
title: Προσκάλεσε κόσμο
- lists:
- errors:
- limit: Έχεις φτάσει το μέγιστο πλήθος επιτρεπτών λιστών
media_attachments:
validations:
images_and_video: Δεν γίνεται να προσθέσεις βίντεο σε ενημέρωση που ήδη περιέχει εικόνες
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index e624bb27ef..9b4f28c5d6 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -91,6 +91,7 @@ en-GB:
moderation:
active: Active
all: All
+ disabled: Disabled
pending: Pending
silenced: Limited
suspended: Suspended
@@ -133,6 +134,7 @@ en-GB:
search: Search
search_same_email_domain: Other users with the same e-mail domain
search_same_ip: Other users with the same IP
+ security: Security
security_measures:
only_password: Only password
password_and_2fa: Password and 2FA
@@ -248,6 +250,122 @@ en-GB:
destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}"
destroy_custom_emoji_html: "%{name} deleted emoji %{target}"
destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}"
+ destroy_domain_block_html: "%{name} unblocked domain %{target}"
+ destroy_email_domain_block_html: "%{name} unblocked e-mail domain %{target}"
+ destroy_instance_html: "%{name} purged domain %{target}"
+ destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
+ destroy_status_html: "%{name} removed post by %{target}"
+ destroy_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
+ destroy_user_role_html: "%{name} deleted %{target} role"
+ disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
+ disable_custom_emoji_html: "%{name} disabled emoji %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}"
+ disable_user_html: "%{name} disabled login for user %{target}"
+ enable_custom_emoji_html: "%{name} enabled emoji %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} enabled e-mail token authentication for %{target}"
+ enable_user_html: "%{name} enabled login for user %{target}"
+ memorialize_account_html: "%{name} turned %{target}'s account into a memoriam page"
+ promote_user_html: "%{name} promoted user %{target}"
+ reject_appeal_html: "%{name} rejected moderation decision appeal from %{target}"
+ reject_user_html: "%{name} rejected sign-up from %{target}"
+ remove_avatar_user_html: "%{name} removed %{target}'s avatar"
+ reopen_report_html: "%{name} reopened report %{target}"
+ resend_user_html: "%{name} resent confirmation e-mail for %{target}"
+ reset_password_user_html: "%{name} reset password of user %{target}"
+ resolve_report_html: "%{name} resolved report %{target}"
+ sensitive_account_html: "%{name} marked %{target}'s media as sensitive"
+ silence_account_html: "%{name} limited %{target}'s account"
+ suspend_account_html: "%{name} suspended %{target}'s account"
+ unassigned_report_html: "%{name} unassigned report %{target}"
+ unblock_email_account_html: "%{name} unblocked %{target}'s email address"
+ unsensitive_account_html: "%{name} unmarked %{target}'s media as sensitive"
+ unsilence_account_html: "%{name} undid limit of %{target}'s account"
+ unsuspend_account_html: "%{name} unsuspended %{target}'s account"
+ update_announcement_html: "%{name} updated announcement %{target}"
+ update_custom_emoji_html: "%{name} updated emoji %{target}"
+ update_domain_block_html: "%{name} updated domain block for %{target}"
+ update_ip_block_html: "%{name} changed rule for IP %{target}"
+ update_status_html: "%{name} updated post by %{target}"
+ update_user_role_html: "%{name} changed %{target} role"
+ deleted_account: deleted account
+ empty: No logs found.
+ filter_by_action: Filter by action
+ filter_by_user: Filter by user
+ title: Audit log
+ announcements:
+ destroyed_msg: Announcement successfully deleted!
+ edit:
+ title: Edit announcement
+ empty: No announcements found.
+ live: Live
+ new:
+ create: Create announcement
+ title: New announcement
+ publish: Publish
+ published_msg: Announcement successfully published!
+ scheduled_for: Scheduled for %{time}
+ scheduled_msg: Announcement scheduled for publication!
+ title: Announcements
+ unpublish: Unpublish
+ unpublished_msg: Announcement successfully unpublished!
+ updated_msg: Announcement successfully updated!
+ custom_emojis:
+ assign_category: Assign category
+ by_domain: Domain
+ copied_msg: Successfully created local copy of the emoji
+ copy: Copy
+ copy_failed_msg: Could not make a local copy of that emoji
+ create_new_category: Create new category
+ created_msg: Emoji successfully created!
+ delete: Delete
+ destroyed_msg: Emojo successfully destroyed!
+ disable: Disable
+ disabled: Disabled
+ disabled_msg: Successfully disabled that emoji
+ emoji: Emoji
+ enable: Enable
+ enabled: Enabled
+ enabled_msg: Successfully enabled that emoji
+ image_hint: PNG or GIF up to %{size}
+ list: List
+ listed: Listed
+ new:
+ title: Add new custom emoji
+ no_emoji_selected: No emojis were changed as none were selected
+ not_permitted: You are not permitted to perform this action
+ overwrite: Overwrite
+ shortcode: Shortcode
+ shortcode_hint: At least 2 characters, only alphanumeric characters and underscores
+ title: Custom emojis
+ uncategorized: Uncategorised
+ unlist: Unlist
+ unlisted: Unlisted
+ update_failed_msg: Could not update that emoji
+ updated_msg: Emoji successfully updated!
+ upload: Upload
+ dashboard:
+ active_users: active users
+ interactions: interactions
+ media_storage: Media storage
+ new_users: new users
+ opened_reports: reports opened
+ pending_appeals_html:
+ one: "%{count} pending appeal"
+ other: "%{count} pending appeals"
+ pending_reports_html:
+ one: "%{count} pending report"
+ other: "%{count} pending reports"
+ pending_tags_html:
+ one: "%{count} pending hashtag"
+ other: "%{count} pending hashtags"
+ pending_users_html:
+ one: "%{count} pending user"
+ other: "%{count} pending users"
+ resolved_reports: reports resolved
+ software: Software
+ sources: Sign-up sources
+ space: Space usage
+ title: Dashboard
roles:
categories:
devops: DevOps
@@ -268,7 +386,38 @@ en-GB:
platforms:
blackberry: BlackBerry
chrome_os: ChromeOS
+ statuses_cleanup:
+ min_age_label: Age threshold
+ min_favs: Keep posts favourited at least
+ min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites
+ min_reblogs: Keep posts boosted at least
+ min_reblogs_hint: Doesn't delete any of your posts that has been boosted at least this number of times. Leave blank to delete posts regardless of their number of boosts
+ stream_entries:
+ pinned: Pinned post
+ reblogged: boosted
+ sensitive_content: Sensitive content
+ strikes:
+ errors:
+ too_late: It is too late to appeal this strike
+ themes:
+ mastodon-light: Mastodon (Light)
+ time:
+ formats:
+ default: "%b %d, %Y, %H:%M"
+ month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
+ add: Add
+ disable: Disable 2FA
+ disabled_success: Two-factor authentication successfully disabled
+ edit: Edit
+ enabled: Two-factor authentication is enabled
+ enabled_success: Two-factor authentication successfully enabled
+ generate_recovery_codes: Generate recovery codes
+ lost_recovery_codes: Recovery codes allow you to regain access to your account if you lose your phone. If you've lost your recovery codes, you can regenerate them here. Your old recovery codes will be invalidated.
+ methods: Two-factor methods
+ otp: Authenticator app
+ recovery_codes: Backup recovery codes
recovery_codes_regenerated: Recovery codes successfully regenerated
recovery_instructions_html: If you ever lose access to your phone, you can use one of the recovery codes below to regain access to your account. Keep the recovery codes safe. For example, you may print them and store them with other important documents.
webauthn: Security keys
@@ -277,8 +426,23 @@ en-GB:
action: Go to your account
explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been approved. Your account is once again in good standing.
subject: Your appeal from %{date} has been approved
+ title: Appeal approved
+ appeal_rejected:
+ explanation: The appeal of the strike against your account on %{strike_date} that you submitted on %{appeal_date} has been rejected.
+ subject: Your appeal from %{date} has been rejected
+ title: Appeal rejected
+ backup_ready:
+ explanation: You requested a full backup of your Mastodon account. It's now ready for download!
+ suspicious_sign_in:
+ title: A new sign-in
warning:
+ appeal: Submit an appeal
+ appeal_description: If you believe this is an error, you can submit an appeal to the staff of %{instance}.
+ categories:
+ spam: Spam
+ violation: Content violates the following community guidelines
explanation:
+ delete_statuses: Some of your posts have been found to violate one or more community guidelines and have been subsequently removed by the moderators of %{instance}.
disable: You can no longer use your account, but your profile and other data remains intact. You can request a backup of your data, change account settings or delete your account.
mark_statuses_as_sensitive: Some of your posts have been marked as sensitive by the moderators of %{instance}. This means that people will need to tap the media in the posts before a preview is displayed. You can mark media as sensitive yourself when posting in the future.
sensitive: From now on, all your uploaded media files will be marked as sensitive and hidden behind a click-through warning.
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index ce532d6029..34a6895315 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -38,14 +38,14 @@ eo:
avatar: Profilbildo
by_domain: Domajno
change_email:
- changed_msg: Retpoŝta adreso estis sukcese ŝanĝita!
+ changed_msg: Retpoŝta adreso sukcese ŝanĝita!
current_email: Nuna retadreso
label: Ŝanĝi retadreson
new_email: Nova retadreso
submit: Ŝanĝi retadreson
title: Ŝanĝi retadreson por %{username}
change_role:
- changed_msg: Rolo estis sukcese ŝanĝita!
+ changed_msg: Rolo sukcese ŝanĝita!
label: Ŝanĝi rolon
no_role: Neniu rolo
title: Ŝanĝi rolon por %{username}
@@ -91,6 +91,7 @@ eo:
moderation:
active: Aktivaj
all: Ĉio
+ disabled: Neebligita
pending: Pritraktata
silenced: Limigita
suspended: Suspendita
@@ -113,7 +114,7 @@ eo:
public: Publika
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
redownload: Aktualigi profilon
- redownloaded_msg: Sukcese refreŝis profilon de %{username} de origino
+ redownloaded_msg: Sukcese aktualigis profilon de %{username} el origino
reject: Malakcepti
rejected_msg: Sukcese malaprobis aliĝ-peton de %{username}
remote_suspension_irreversible: La informoj de ĉi tiu konto estis neinversigeble forigitaj.
@@ -121,11 +122,11 @@ eo:
remove_avatar: Forigi la profilbildon
remove_header: Forigi kapan bildon
removed_avatar_msg: La rolfiguro de %{username} estas sukcese forigita
- removed_header_msg: Sukcese forigis kapbildon de %{username}
+ removed_header_msg: Kapbildo de %{username} suksece forigita
resend_confirmation:
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
send: Resendi konfirman retpoŝton
- success: Konfirma retpoŝto estis sukcese sendita!
+ success: Konfirma retmesaĝo sukcese sendita!
reset: Restarigi
reset_password: Restarigi pasvorton
resubscribe: Reaboni
@@ -133,6 +134,7 @@ eo:
search: Serĉi
search_same_email_domain: Aliaj uzantoj kun la sama domajno de retpoŝto
search_same_ip: Aliaj uzantoj kun la sama IP
+ security: Sekureco
security_measures:
only_password: Nur pasvorto
password_and_2fa: Pasvorto kaj 2FA
@@ -149,7 +151,7 @@ eo:
subscribe: Aboni
suspend: Haltigu
suspended: Suspendita
- suspension_irreversible: La datumoj de ĉi tiu konto neinverseble forigitas.
+ suspension_irreversible: La datumoj de ĉi tiu konto estas porĉiame forigitaj. Vi povas malsuspendi tiun konton por igi ĝin uzebla, sed ĝi ne rehavos ajnan datumon kiun ĝi antaŭe havis.
suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forigitaj je %{date}. Ĝis tiam, la konto povas esti malsuspendita sen flankefiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari tion sube.
title: Kontoj
unblock_email: Malbloki retpoŝtadresojn
@@ -227,7 +229,7 @@ eo:
update_status: Ĝisdatigi afiŝon
update_user_role: Ĝisdatigi rolon
actions:
- approve_appeal_html: "%{name} aprobis kontroldecidapelacion de %{target}"
+ approve_appeal_html: "%{name} aprobis apelacion kontraŭ moderiga decido de %{target}"
approve_user_html: "%{name} aprobis registriĝon de %{target}"
assigned_to_self_report_html: "%{name} asignis signalon %{target} al si mem"
change_email_user_html: "%{name} ŝanĝis retadreson de uzanto %{target}"
@@ -253,7 +255,7 @@ eo:
destroy_instance_html: "%{name} forigis domajnon %{target}"
destroy_ip_block_html: "%{name} forigis regulon por IP %{target}"
destroy_status_html: "%{name} forigis mesaĝojn de %{target}"
- destroy_unavailable_domain_html: "%{name} daurigis sendon al domajno %{target}"
+ destroy_unavailable_domain_html: "%{name} restartigis sendon al domajno %{target}"
destroy_user_role_html: "%{name} forigis rolon de %{target}"
disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}"
disable_custom_emoji_html: "%{name} malebligis la emoĝion %{target}"
@@ -264,20 +266,20 @@ eo:
enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}"
memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo"
promote_user_html: "%{name} plirangigis uzanton %{target}"
- reject_appeal_html: "%{name} malakceptis kontroldecidapelacion de %{target}"
+ reject_appeal_html: "%{name} malakceptis apelacion kontraŭ moderiga decido de %{target}"
reject_user_html: "%{name} malakceptis registriĝon de %{target}"
remove_avatar_user_html: "%{name} forigis la profilbildon de %{target}"
reopen_report_html: "%{name} remalfermis signalon %{target}"
resend_user_html: "%{name} resendis konfirman retmesaĝon por %{target}"
reset_password_user_html: "%{name} restarigis la pasvorton de la uzanto %{target}"
resolve_report_html: "%{name} solvis raporton %{target}"
- sensitive_account_html: "%{name} markis audovidaĵojn de %{target} kiel sentemaj"
+ sensitive_account_html: "%{name} markis audovidaĵon de %{target} kiel tiklan"
silence_account_html: "%{name} limigis la konton de %{target}"
suspend_account_html: "%{name} suspendis la konton de %{target}"
unassigned_report_html: "%{name} malasignis raporton %{target}"
unblock_email_account_html: "%{name} malblokis retpoŝtoadreson de %{target}"
- unsensitive_account_html: "%{name} malmarkis audovidaĵojn de %{target} kiel sentemaj"
- unsilence_account_html: "%{name} malfaris limon de konto de %{target}"
+ unsensitive_account_html: "%{name} malmarkis audovidaĵon de %{target} kiel tiklan"
+ unsilence_account_html: "%{name} malfaris limon al konto de %{target}"
unsuspend_account_html: "%{name} malsuspendis la konton de %{target}"
update_announcement_html: "%{name} ĝisdatigis la anoncon %{target}"
update_custom_emoji_html: "%{name} ĝisdatigis la emoĝion %{target}"
@@ -323,13 +325,13 @@ eo:
emoji: Emoĝio
enable: Ebligi
enabled: Ebligita
- enabled_msg: Tiu emoĝio estis sukcese ebligita
+ enabled_msg: Emoĝio sukcese ebligita
image_hint: PNG aŭ GIF malpli granda ol %{size}
list: Listo
listed: Listigita
new:
title: Aldoni novan propran emoĝion
- no_emoji_selected: Neniuj emoĝioj ŝanĝitas ĉar nenio elektitas
+ no_emoji_selected: Neniu emoĝio estis ŝanĝita ĉar neniu estis elektita
not_permitted: Vi ne rajtas plenumi ĉi tiun agon
overwrite: Anstataŭigi
shortcode: Mallonga kodo
@@ -348,17 +350,17 @@ eo:
new_users: novaj uzantoj
opened_reports: raportoj malfermitaj
pending_appeals_html:
- one: "%{count} restanta apelacio"
- other: "%{count} restantaj aplecioj"
+ one: "%{count} apelacio atendas kontrolon"
+ other: "%{count} apelacioj atendas kontrolon"
pending_reports_html:
- one: "%{count} restanta raporto"
- other: "%{count} restantaj raportoj"
+ one: "%{count} raporto atendas kontrolon"
+ other: "%{count} raportoj atendas kontrolon"
pending_tags_html:
one: "%{count} pritraktota kradvorto"
other: "%{count} pritraktotaj kradvortoj"
pending_users_html:
- one: "%{count} restanta uzanto"
- other: "%{count} restantaj uzantoj"
+ one: "%{count} uzanto atendas kontrolon"
+ other: "%{count} uzantoj atendas kontrolon"
resolved_reports: raportoj solvitaj
software: Programo
sources: Fontoj de konto-kreado
@@ -373,7 +375,7 @@ eo:
title: Apelacioj
domain_allows:
add_new: Aldoni domajnon al la blanka listo
- created_msg: Domajno estis sukcese aldonita al la blanka listo
+ created_msg: Domajno sukcese permesita al federacii
destroyed_msg: Domajno estis forigita el la blanka listo
export: Eksporti
import: Enporti
@@ -427,6 +429,7 @@ eo:
resolve: Solvi domajnon
title: Nova blokado de retadresa domajno
no_email_domain_block_selected: Neniuj retpoŝtoadresodomajnblokoj ŝanĝitas ĉar nenio elektitas
+ not_permitted: Ne permesita
resolved_dns_records_hint_html: La domajnnomo referencas al la MX-domajnoj kiuj akceptas retpoŝton. Ne bloku grandajn retpoŝtoservilojn.
resolved_through_html: Solvis tra %{domain}
title: Nigra listo de retadresaj domajnoj
@@ -473,6 +476,7 @@ eo:
content_policies:
comment: Interna noto
description_html: Vi povas difini enhavopolitikojn al la ĉiuj kontoj.
+ limited_federation_mode_description_html: Vi povas elekti, ĉu permesi federacion kun tiu domajno.
policies:
reject_media: Malakcepti plurmediojn
reject_reports: Malakcepti raportojn
@@ -585,11 +589,13 @@ eo:
assign_to_self: Asigni al mi
assigned: Asignita kontrolanto
by_target_domain: Domajno de la signalita konto
+ cancel: Nuligi
category: Kategorio
category_description_html: La kialo pri ĉi tiuj konto kaj enhavo raportitaj sendotas al la raportita konto
comment:
none: Nenio
comment_description_html: 'Por doni pli da informo, %{name} skribis:'
+ confirm: Konfirmi
confirm_action: Konfirmi moderigadagon kontra @%{acct}
created_at: Signalita
delete_and_resolve: Forigi afiŝojn
@@ -792,6 +798,7 @@ eo:
suspend: "%{name} suspendis la konton de %{target}"
appeal_approved: Apelaciita
appeal_pending: Apelacio pritraktiĝos
+ appeal_rejected: Apelacio malakceptita
system_checks:
database_schema_check:
message_html: Estas pritraktataj datumbazaj migradoj. Bonvolu ekzekuti ilin por certigi, ke la apliko kondutas kiel atendite
@@ -958,6 +965,7 @@ eo:
applications:
created: Aplikaĵo sukcese kreita
destroyed: Aplikaĵo sukcese forigita
+ logout: Elsaluti
regenerate_token: Regeneri aliran ĵetonon
token_regenerated: Alira ĵetono sukcese regeneria
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
@@ -980,7 +988,7 @@ eo:
link_to_otp: Enigu 2-faktorkodo de via telefono au regajnkodo
link_to_webauth: Uzi vian sekurecan ŝlosilon
log_in_with: Ensaluti per
- login: Saluti
+ login: Ensaluti
logout: Adiaŭi
migrate_account: Movi al alia konto
migrate_account_html: Se vi deziras alidirekti ĉi tiun konton al alia, vi povas agordi ĝin ĉi tie.
@@ -994,6 +1002,8 @@ eo:
resend_confirmation: Resendi la instrukciojn por konfirmi
reset_password: Restarigi pasvorton
rules:
+ accept: Akcepti
+ back: Reen
preamble: Ĉi tioj fiksitas kaj devigitas de kontrolantoj de %{domain}.
title: Bazaj reguloj.
security: Sekureco
@@ -1012,7 +1022,7 @@ eo:
account_status: Statuso de la konto
confirming: Retpoŝtokonfirmo bezonas kompletigitis.
functional: Via konto estas tute funkcia.
- pending: Via apliko ankarou bezonas kontrolon de nia teamo. Vi ricevos retpoŝto malantau ol aprobo.
+ pending: Via aliĝo estos kontrolita de nia teamo. Tio povas bezoni iom da tempo. Vi ricevos retpoŝtmesaĝon se via aliĝo estas aprobita.
redirecting_to: Via konto estas neaktiva ĉar ĝi nun alidirektas al %{acct}.
view_strikes: Vidi antauaj admonoj kontra via konto
too_fast: Formularo sendita tro rapide, klopodu denove.
@@ -1342,7 +1352,7 @@ eo:
subject: "%{name} diskonigis vian mesaĝon"
title: Nova diskonigo
status:
- subject: "%{name} ĵus afiŝita"
+ subject: "%{name} ĵus afiŝis"
update:
subject: "%{name} redaktis afiŝon"
notifications:
@@ -1575,7 +1585,7 @@ eo:
'7889238': 3 monatoj
min_age_label: Aĝlimo
min_favs: Konservi mesaĝojn stelumitajn almenaŭ
- min_favs_hint: Ne forigas mesaĝojn de vi kiuj ricevis almenaŭ tiom da stelumoj. Lasu malplena por forigi mesaĝojn sendepende de la nombro de stelumoj
+ min_favs_hint: Oni ne forigas viajn afiŝojn, kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
min_reblogs: Konservi diskonitajn mesaĝojn almenau
min_reblogs_hint: Oni ne forigas viajn afiŝojn kiuj estas diskonigitaj almenaŭ ĉi tiun nombron da fojoj. Lasu malplena por forigi afiŝojn sendepende de iliaj nombroj da diskonigoj
stream_entries:
@@ -1695,7 +1705,7 @@ eo:
success: Via sekureca ŝlosilo estis sukcese forigita.
invalid_credential: Nevalida sekureca ŝlosilo
nickname_hint: Enigu alinomon de via nova sekurecŝlosilo
- not_enabled: Vu ne ebligas WebAuthn ĝis nun
+ not_enabled: Vi ankoraŭ ne ŝaltis WebAuth
not_supported: Ĉi tiu legilo ne povas uzi sekurecŝlosilojn
otp_required: Por uzi sekurecŝlosilojn, ebligu 2-faktoran autentigon unue.
registered_on: Registrigita je %{date}
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 9b0ab12cce..bf65495b92 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -91,6 +91,7 @@ es-AR:
moderation:
active: Activas
all: Todas
+ disabled: Deshabilitadas
pending: Pendientes
silenced: Limitada
suspended: Suspendidas
@@ -133,6 +134,7 @@ es-AR:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico
search_same_ip: Otros usuarios con la misma dirección IP
+ security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@@ -427,6 +429,7 @@ es-AR:
resolve: Resolver dominio
title: Bloquear nuevo dominio de correo electrónico
no_email_domain_block_selected: No se cambiaron bloques de dominio ya que no se seleccionó ninguno
+ not_permitted: No permitidos
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tené cuidado de no bloquear los principales proveedores de correo electrónico.
resolved_through_html: Resuelto a través de %{domain}
title: Dominios bloqueados de correo electrónico
@@ -473,6 +476,7 @@ es-AR:
content_policies:
comment: Nota interna
description_html: Podés definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+ limited_federation_mode_description_html: Podés elegir si permit´s la federación con este dominio.
policies:
reject_media: Rechazar medios
reject_reports: Rechazar denuncias
@@ -585,11 +589,13 @@ es-AR:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta denunciada
+ cancel: Cancelar
category: Categoría
category_description_html: El motivo por el que se denunció esta cuenta o contenido será citado en las comunicaciones con la cuenta denunciada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
+ confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar mensajes
@@ -792,6 +798,7 @@ es-AR:
suspend: "%{name} suspendió la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
+ appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecutalas para asegurarte de que la aplicación funciona según lo esperado
@@ -827,6 +834,7 @@ es-AR:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado con la/s %{yesterday} vez/veces de ayer
+ not_allowed_to_trend: No se permite la tendencia
only_allowed: Sólo permitidas
pending_review: Revisión pendiente
preview_card_providers:
@@ -958,6 +966,7 @@ es-AR:
applications:
created: Aplicación creada exitosamente
destroyed: Aplicación eliminada exitosamente
+ logout: Cerrar sesión
regenerate_token: Regenerar clave de acceso
token_regenerated: Clave de acceso regenerada exitosamente
warning: Ojo con estos datos. ¡Nunca los compartas con nadie!
@@ -994,6 +1003,8 @@ es-AR:
resend_confirmation: Reenviar correo electrónico de confirmación
reset_password: Cambiar contraseña
rules:
+ accept: Aceptar
+ back: Volver
preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Seguridad
@@ -1040,22 +1051,22 @@ es-AR:
invalid_signature: no es una firma Ed25519 válida
date:
formats:
- default: "%Y.%b.%d"
- with_month_name: "%Y.%B.%d"
+ default: "%d de %b de %Y"
+ with_month_name: "%d de %B de %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count}h"
- about_x_months: "%{count}M"
- about_x_years: "%{count}A"
- almost_x_years: "%{count}A"
+ about_x_hours: "%{count}hrs."
+ about_x_months: "%{count}mes."
+ about_x_years: "%{count}año."
+ almost_x_years: "%{count}año."
half_a_minute: Recién
- less_than_x_minutes: "%{count}min"
+ less_than_x_minutes: "%{count}min."
less_than_x_seconds: Recién
- over_x_years: "%{count}A"
- x_days: "%{count}D"
- x_minutes: "%{count}min"
- x_months: "%{count}M"
- x_seconds: "%{count}s"
+ over_x_years: "%{count}año."
+ x_days: "%{count}día."
+ x_minutes: "%{count}min."
+ x_months: "%{count}mes."
+ x_seconds: "%{count}seg."
deletes:
challenge_not_passed: La información que ingresaste no es correcta
confirm_password: Ingresá tu contraseña actual para verificar tu identidad
@@ -1141,7 +1152,7 @@ es-AR:
featured_tags:
add_new: Agregar nueva
errors:
- limit: Alcanzaste el máximo de etiquetas destacadas
+ limit: Ya estableciste el número máximo de etiquetas
hint_html: "¿Qué son las etiquetas destacadas? Son etiquetas que se muestran de forma permanente en tu perfil público y permiten a los usuarios navegar por tus mensajes públicos que contengan esas etiquetas. Las etiquetas destacadas son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
@@ -1253,7 +1264,7 @@ es-AR:
title: Invitar a gente
lists:
errors:
- limit: Alcanzaste el máximo de listas
+ limit: Alcanzaste el número máximo de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación de dos factores
@@ -1573,7 +1584,7 @@ es-AR:
'7889238': 3 meses
min_age_label: Umbral de edad
min_favs: Conservar mensajes marcados como favoritos de por lo menos
- min_favs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos.
+ min_favs_hint: No elimina ninguno de tus mensajes que haya recibido al menos esta cantidad de favoritos. Dejá en blanco para eliminar mensajes independientemente de su número de favoritos.
min_reblogs: Conservar adhesiones de por lo menos
min_reblogs_hint: No elimina ninguno de tus mensajes que haya recibido más de esta cantidad de adhesiones. Dejá en blanco para eliminar mensajes independientemente de su número de adhesiones.
stream_entries:
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 486a122b14..700db78689 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1140,8 +1140,6 @@ es-MX:
storage: Almacenamiento
featured_tags:
add_new: Añadir nuevo
- errors:
- limit: Ya has alcanzado la cantidad máxima de hashtags
hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
@@ -1251,9 +1249,6 @@ es-MX:
expires_at: Expira
uses: Usos
title: Invitar a gente
- lists:
- errors:
- limit: Has alcanzado la cantidad máxima de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación en dos pasos
@@ -1573,7 +1568,6 @@ es-MX:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
- min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 38cee2adbb..4c28aa8a02 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -91,6 +91,7 @@ es:
moderation:
active: Activo
all: Todos
+ disabled: Deshabilitado
pending: Pendiente
silenced: Limitado
suspended: Suspendidos
@@ -133,6 +134,7 @@ es:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
+ security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@@ -427,6 +429,7 @@ es:
resolve: Resolver dominio
title: Nueva entrada en la lista negra de correo
no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado
+ not_permitted: No permitido
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tenga cuidado de no bloquear los principales proveedores de correo electrónico.
resolved_through_html: Resuelto a través de %{domain}
title: Lista negra de correo
@@ -473,6 +476,7 @@ es:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+ limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@@ -585,11 +589,13 @@ es:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
+ cancel: Cancelar
category: Categoría
category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
+ confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicaciones
@@ -792,6 +798,7 @@ es:
suspend: "%{name} suspendió la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
+ appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería
@@ -827,6 +834,7 @@ es:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado con %{yesterday} ayer
+ not_allowed_to_trend: No permitido para tendencia
only_allowed: Sólo las permitidas
pending_review: Revisión pendiente
preview_card_providers:
@@ -958,6 +966,7 @@ es:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
+ logout: Cerrar sesión
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
@@ -994,6 +1003,8 @@ es:
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
rules:
+ accept: Aceptar
+ back: Atrás
preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Cambiar contraseña
@@ -1573,7 +1584,7 @@ es:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
- min_favs_hint: No borra ninguna de las publicaciones que hayan recibido más de esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
+ min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 12dabbbc21..602e79c46f 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -91,6 +91,7 @@ et:
moderation:
active: Aktiivne
all: Kõik
+ disabled: Keelatud
pending: Ootel
silenced: Vaigistatud
suspended: Kustutatud
@@ -133,6 +134,7 @@ et:
search: Otsi
search_same_email_domain: Muud kasutajad sama e-posti domeeniga
search_same_ip: Teised kasutajad, kellel on sama IP
+ security: Turvalisus
security_measures:
only_password: Ainult salasõna
password_and_2fa: Salasõna ja 2-etapine autentimine (2FA)
@@ -427,6 +429,7 @@ et:
resolve: Domeeni lahendamine
title: Blokeeri uus e-posti domeen
no_email_domain_block_selected: Ühtegi e-posti domeeni keeldu ei muudetud, kuna midagi polnud valitud
+ not_permitted: Ei ole lubatud
resolved_dns_records_hint_html: Domeeninimi lahendub järgnevateks MX-domeenideks, mis vastutavad e-kirjade vastuvõtmise eest. MX-domeeni blokeerimine blokeerib liitumistaotlused kõigilt e-postiaadressidelt, mis kasutavad sama MX-domeeni, kuigi kasutatav domeeninimi on erinev. Ole tähelepanelik, et mitte blokeerida suuremaid e-postiteenuse pakkujaid.
resolved_through_html: Lahendatud %{domain} kaudu
title: E-posti keelunimekiri
@@ -473,6 +476,7 @@ et:
content_policies:
comment: Sisemine märge
description_html: On võimalik kirjeldada sisureeglid kõigile kontodele sellelt domeenilt ja alamdomeenidelt.
+ limited_federation_mode_description_html: Saad valida, kas selle domeeniga on födereerumine lubatud.
policies:
reject_media: Meedia hülgamine
reject_reports: Lükka raportid tagasi
@@ -585,11 +589,13 @@ et:
assign_to_self: Määra mulle
assigned: Määratud moderaator
by_target_domain: Teavitatud konto domeen
+ cancel: Tühista
category: Kategooria
category_description_html: Põhjus, miks sellest kontost ja/või sisust teatati, kaasatakse raporteeritud kontoga suhtlemisel
comment:
none: Pole
comment_description_html: 'Täiendava infona kirjutas %{name}:'
+ confirm: Kinnita
confirm_action: Kinnita @%{acct} modereering
created_at: Teavitatud
delete_and_resolve: Kustuta postitused
@@ -792,6 +798,7 @@ et:
suspend: "%{name} kustutas %{target} konto"
appeal_approved: Vaidlustatud
appeal_pending: Vaidlustus on ootel
+ appeal_rejected: Vaidlustus tagasi lükatud
system_checks:
database_schema_check:
message_html: On ootel andmebaasi migreerimisi. Rakenduse ootuspäraseks toimimiseks palun käivita need
@@ -827,6 +834,7 @@ et:
other: Jagatud %{count} kasutaja poolt viimase nädala jooksul
title: Trendikad viited
usage_comparison: Jagatud %{today} korda täna, eile %{yesterday} korda
+ not_allowed_to_trend: Trend ei ole lubatud
only_allowed: Ainult lubatud
pending_review: Ootab ülevaatust
preview_card_providers:
@@ -958,6 +966,7 @@ et:
applications:
created: Rakenduse loomine õnnestus
destroyed: Rakenduse kustutamine õnnestus
+ logout: Logi välja
regenerate_token: Loo uus access token
token_regenerated: Access tokeni loomine õnnestus
warning: Ole nende andmetega ettevaatlikud. Ära jaga neid kellegagi!
@@ -994,6 +1003,8 @@ et:
resend_confirmation: Saada kinnitusjuhendid uuesti
reset_password: Salasõna lähtestamine
rules:
+ accept: Nõus
+ back: Tagasi
preamble: Neist kinnipidamist jälgivad %{domain} moderaatorid.
title: Mõned põhireeglid.
security: Turvalisus
@@ -1573,7 +1584,9 @@ et:
'7889238': 3 kuud
min_age_label: Ajalimiit
min_favs: Säilita postitused, meeldimistega vähemalt
- min_favs_hint: Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust, jäta tühjaks
+ min_favs_hint: |-
+ Ei kustuta ühtegi postitust, mis on saanud vähemalt nii palju lemmikuks märkimist. Postituste kustutamiseks olenemata nende lemmikuks märkimise arvust,
+ jäta tühjaks
min_reblogs: Säilita postitused jagatud vähemalt
min_reblogs_hint: Ei kustuta postitusi, kui need on jagatud vähemalt nii mitu korda. Tühjaks jättes kustuvad postitused olenemata jagamistest
stream_entries:
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 917a70e401..7a6d1c46ca 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -91,6 +91,7 @@ eu:
moderation:
active: Aktiboa
all: Denak
+ disabled: Desgaituta
pending: Zain
silenced: Mugatua
suspended: Kanporatua
@@ -133,6 +134,7 @@ eu:
search: Bilatu
search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean
search_same_ip: IP bera duten beste erabiltzaileak
+ security: Segurtasuna
security_measures:
only_password: Soilik pasahitza
password_and_2fa: Pasahitza eta 2FA
@@ -429,6 +431,7 @@ eu:
resolve: Ebatzi domeinua
title: Sarrera berria e-mail zerrenda beltzean
no_email_domain_block_selected: Ez da eposta domeinu blokeorik aldatu ez delako bat ere hautatu
+ not_permitted: Baimendu gabea
resolved_dns_records_hint_html: Domeinu-izena ondorengo MX domeinuetara ebazten da, zeinek eposta onartzeko ardura duten. MX domeinu bat blokeatzeak MX domeinu hori erabiltzen duen edozein helbide elektronikotatik izena-ematea blokeatzen du, baita ikusgai dagoen domeinu-izena beste bat bada ere. Kontuz ibili eposta hornitzaile nagusiak blokeatu gabe.
resolved_through_html: "%{domain} domeinuaren bidez ebatzia"
title: E-mail zerrenda beltza
@@ -475,6 +478,7 @@ eu:
content_policies:
comment: Barne-oharra
description_html: Domeinu honetako eta bere azpi-domeinuetako kontu guztiei aplikatuko zaizkien eduki-politikak definitu ditzakezu.
+ limited_federation_mode_description_html: Domeinu honekin federatu ahal izatea baimendu dezakezu.
policies:
reject_media: Errefusatu multimediak
reject_reports: Errefusatu salaketak
@@ -587,11 +591,13 @@ eu:
assign_to_self: Esleitu niri
assigned: Esleitutako moderatzailea
by_target_domain: Jakinarazitako kontuaren domeinua
+ cancel: Utzi
category: Kategoria
category_description_html: Kontu edo/eta eduki hau salatu izanaren arrazoia salatutako kontuarekiko komunikazioan aipatuko da
comment:
none: Bat ere ez
comment_description_html: 'Informazio gehiago emateko, %{name} idatzi:'
+ confirm: Berretsi
confirm_action: "@%{acct} kontuaren aurkako moderazio-ekintza baieztatu"
created_at: Salatua
delete_and_resolve: Ezabatu bidalketak
@@ -794,6 +800,7 @@ eu:
suspend: "%{name} erabiltzaileak %{target} kontua kanporatu du"
appeal_approved: Apelatua
appeal_pending: Apelazioa zain
+ appeal_rejected: Apelazioa baztertuta
system_checks:
database_schema_check:
message_html: Aplikatu gabeko datu-basearen migrazioak daude. Exekutatu aplikazioak esperotako portaera izan dezan
@@ -829,6 +836,7 @@ eu:
other: "%{count} pertsonak partekatua azken astean"
title: Esteken joerak
usage_comparison: "%{today} aldiz partekatua gaur, atzo %{yesterday} aldiz"
+ not_allowed_to_trend: Joeretan agertzeko baimenik gabe
only_allowed: Soilik onartutakoak
pending_review: Berrikusketaren zain
preview_card_providers:
@@ -960,6 +968,7 @@ eu:
applications:
created: Aplikazioa ongi sortu da
destroyed: Aplikazioa ongi ezabatu da
+ logout: Amaitu saioa
regenerate_token: Birsortu sarbide token-a
token_regenerated: Sarbide token-a ongi birsortu da
warning: Kontuz datu hauekin, ez partekatu inoiz inorekin!
@@ -996,6 +1005,8 @@ eu:
resend_confirmation: Birbidali berresteko argibideak
reset_password: Berrezarri pasahitza
rules:
+ accept: Onartu
+ back: Atzera
preamble: Hauek %{domain} instantziako moderatzaileek ezarriak eta betearaziak dira.
title: Oinarrizko arau batzuk.
security: Segurtasuna
@@ -1143,7 +1154,7 @@ eu:
featured_tags:
add_new: Gehitu berria
errors:
- limit: Gehienezko traola kopurua nabarmendu duzu jada
+ limit: Gehienezko traola kopurua erakutsi duzu jada
hint_html: "Zer dira nabarmendutako traolak? Zure profilean toki nabarmendu batean agertzen dira eta jendeari traola hau daukaten bidalketa publikoak arakatzea ahalbidetzen diote. Sormen lana edo epe luzerako proiektuak jarraitzeko primerakoak dira."
filters:
contexts:
@@ -1255,7 +1266,7 @@ eu:
title: Gonbidatu jendea
lists:
errors:
- limit: Gehieneko zerrenda kopurura heldu zara
+ limit: Gehienezko zerrenda kopurura iritsi zara
login_activities:
authentication_methods:
otp: bi faktoreko autentifikazio aplikazioa
@@ -1575,7 +1586,7 @@ eu:
'7889238': 3 hilabete
min_age_label: Denbora muga
min_favs: Mantendu gogoko kopuru hau duten bidalketak
- min_favs_hint: Gutxienez gogoko kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero gogoko kopurua ez da kontuan hartuko bidalketak ezabatzean
+ min_favs_hint: Gogoko dutenen kopuru hau gutxienez duten bidalketak ez dira ezabatuko. Hutsik utzi, gogoko dutenen kopurua aintzat hartu gabe bidalketak ezabatzeko
min_reblogs: Mantendu bultzada kopuru hau duten bidalketak
min_reblogs_hint: Gutxienez bultzada kopuru hau jaso duten zure bidalketak ez dira ezabatuko. Hutsik utziz gero bultzada kopurua ez da kontuan hartuko bidalketak ezabatzean
stream_entries:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index e4ba9441c3..8bdf0709c2 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -872,8 +872,6 @@ fa:
storage: تصویرهای ذخیرهشده
featured_tags:
add_new: افزودن تازه
- errors:
- limit: شما بیشترین تعداد مجاز برچسبها را دارید
hint_html: "برچسبهای برگزیده چیستند؟ این برچسبها به طور واضحی روی نمایهٔ عمومیتان نمایش یافته میگذارد افراد فرستههای عمومیتان زیرشان را مرور کنند. ابزاری عالی برای دنبال کردن آثار خلاقانه یا پروژههای بلندمدت است."
filters:
contexts:
@@ -947,9 +945,6 @@ fa:
expires_at: تاریخ انقضا
uses: استفادهها
title: دعوت دیگران
- lists:
- errors:
- limit: به بیشینهٔ مقدار سیاههها رسیدید
login_activities:
authentication_methods:
otp: کارهٔ تأیید هویت دوعاملی
@@ -1243,7 +1238,6 @@ fa:
'7889238': ۳ ماه
min_age_label: کرانهٔ سن
min_favs: نگه داشتن فرستههایی با برگزینش بیش از
- min_favs_hint: هیچ یک از فرستههایتان را که بیش از این تعداد برگزیده شده باشند، حذف نمیکند. برای حذف فرستهها فارغ از تعداد برگزینشهایشان، خالی بگذارید
min_reblogs: نگه داشتن فرستههایی با تقویت بیش از
min_reblogs_hint: هیچ یک از فرستههایتان را که بیش از این تعداد تقویت شده باشند، حذف نمیکند. برای حذف فرستهها فارغ از تعداد تقویتهایشان، خالی بگذارید
stream_entries:
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 99011f819a..655f0113f5 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -91,6 +91,7 @@ fi:
moderation:
active: Aktiivinen
all: Kaikki
+ disabled: Ei käytössä
pending: Odottavat
silenced: Rajoitettu
suspended: Jäähyllä
@@ -133,6 +134,7 @@ fi:
search: Hae
search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostin verkkotunnus
search_same_ip: Muut käyttäjät, joilla on sama IP-osoite
+ security: Suojaus
security_measures:
only_password: Vain salasana
password_and_2fa: Salasana ja kaksivaiheinen tunnistautuminen
@@ -427,6 +429,7 @@ fi:
resolve: Ratkaise verkkotunnus
title: Uusi sähköpostiestolistan merkintä
no_email_domain_block_selected: Sähköpostin verkkotunnuksia ei muutettu, koska yhtään ei valittu
+ not_permitted: Ei sallittu
resolved_dns_records_hint_html: Verkkotunnuksen nimi määräytyy seuraaviin MX-verkkotunnuksiin, jotka ovat viime kädessä vastuussa sähköpostin vastaanottamisesta. MX-verkkotunnuksen estäminen estää kirjautumisen mistä tahansa sähköpostiosoitteesta, joka käyttää samaa MX-verkkotunnusta, vaikka näkyvä verkkotunnuksen nimi olisikin erilainen. Varo estämästä suuria sähköpostin palveluntarjoajia.
resolved_through_html: Ratkaistu %{domain} kautta
title: Sähköpostiestolista
@@ -473,6 +476,7 @@ fi:
content_policies:
comment: Sisäinen huomautus
description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin.
+ limited_federation_mode_description_html: Voit valita sallitaanko federointi tällä verkkotunnuksella.
policies:
reject_media: Hylkää media
reject_reports: Hylkää raportit
@@ -585,11 +589,13 @@ fi:
assign_to_self: Ota tehtäväksi
assigned: Määritetty valvoja
by_target_domain: Ilmoitetun tilin verkkotunnus
+ cancel: Peruuta
category: Kategoria
category_description_html: Syy, miksi tämä tili ja/tai sisältö ilmoitettiin, mainitaan yhteydenotossa ilmoitettuun tiliin
comment:
none: Ei mitään
comment_description_html: 'Antaakseen lisätietoja %{name} kirjoitti:'
+ confirm: Vahvista
confirm_action: Vahvista moderointitoiminto käyttäjää @%{acct} kohtaan
created_at: Raportoitu
delete_and_resolve: Poista viestejä
@@ -792,6 +798,7 @@ fi:
suspend: "%{name} jäädytti käyttäjän %{target} tilin"
appeal_approved: Valitti
appeal_pending: Valitus vireillä
+ appeal_rejected: Muutoksenhaku hylättiin
system_checks:
database_schema_check:
message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla
@@ -827,6 +834,7 @@ fi:
other: Jakanut %{count} henkilöä viimeisen viikon aikana
title: Suositut linkit
usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday}
+ not_allowed_to_trend: Ei saa trendata
only_allowed: Vain sallittu
pending_review: Odottaa tarkistusta
preview_card_providers:
@@ -958,6 +966,7 @@ fi:
applications:
created: Sovelluksen luonti onnistui
destroyed: Sovelluksen poisto onnistui
+ logout: Uloskirjautuminen
regenerate_token: Luo pääsytunnus uudelleen
token_regenerated: Pääsytunnuksen uudelleenluonti onnistui
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
@@ -994,13 +1003,15 @@ fi:
resend_confirmation: Lähetä vahvistusohjeet uudestaan
reset_password: Palauta salasana
rules:
+ accept: Hyväksy
+ back: Takaisin
preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä."
title: Joitakin perussääntöjä.
security: Tunnukset
set_new_password: Aseta uusi salasana
setup:
email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin.
- email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa.
+ email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit vaihtaa sen tilin asetuksista.
title: Asetukset
sign_in:
preamble_html: Kirjaudu sisään %{domain}-tunnuksillasi. Jos tilisi sijaitsee eri palvelimella, et voi sisäänkirjautua täällä.
@@ -1253,7 +1264,7 @@ fi:
title: Kutsu ihmisiä
lists:
errors:
- limit: Sinulla on jo suurin sallittu määrä listoja
+ limit: Olet saavuttanut listojen enimmäismäärän
login_activities:
authentication_methods:
otp: kaksivaiheinen todennussovellus
@@ -1573,7 +1584,7 @@ fi:
'7889238': 3 kuukautta
min_age_label: Ikäraja
min_favs: Pidä viestit suosikeissa vähintään
- min_favs_hint: Ei poista yhtään julkaisuasi, jotka ovat saaneet vähintään tämän määrän tykkäyksiä. Jätä tyhjäksi, jos haluat poistaa julkaisuja tykkäyksien määrästä riippumatta
+ min_favs_hint: Ei poista julkaisujasi, joita on tykätty vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi julkaisut tykkäyskertojen määrästä riippumatta
min_reblogs: Pidä viestit tehostettuna vähintään
min_reblogs_hint: Ei poista yhtään viestiäsi, jota on tehostettu vähintään näin monta kertaa. Jätä tyhjäksi poistaaksesi viestejä riippumatta niiden tehosteiden määrästä
stream_entries:
@@ -1662,13 +1673,13 @@ fi:
silence: Rajoitettu tili
suspend: Tilin käyttäminen jäädytetty
welcome:
- edit_profile_action: Aseta profiili
- edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat, ennen kuin he saavat seurata sinua.
+ edit_profile_action: Määritä profiili
+ edit_profile_step: Voit mukauttaa profiiliasi mm. profiilikuvalla ja uudella näyttönimellä. Voit myös valita haluatko tarkastaa ja hyväksyä uudet seuraajat itse.
explanation: Näillä vinkeillä pääset alkuun
final_action: Ala julkaista
- final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä! Käytä aihetunnistetta #esittely.'
+ final_step: 'Aloita julkaiseminen! Vaikkei sinulla ole seuraajia, voivat muut nähdä julkiset julkaisusi esimerkiksi paikallisella aikajanalla ja aihetunnisteilla. Kannattaa myös esittäytyä käyttämällä aihetunnistetta #introductions.'
full_handle: Koko käyttäjätunnuksesi
- full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta.
+ full_handle_hint: Kerro tämä kavereillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut muiden palvelimien kautta.
subject: Tervetuloa Mastodoniin
title: Tervetuloa mukaan, %{name}!
users:
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index 874bdc17f2..5f5648b4d2 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -91,6 +91,7 @@ fo:
moderation:
active: Virkin
all: Allar
+ disabled: Óvirkið
pending: Í bíðistøðu
silenced: Avmarkað
suspended: Avbrotin
@@ -133,6 +134,7 @@ fo:
search: Leita
search_same_email_domain: Aðrir brúkarir eru við sama teldupost domaini
search_same_ip: Aðrir brúkarar við somu IP
+ security: Trygd
security_measures:
only_password: Bara loyniorð
password_and_2fa: Loyniorð og 2FA
@@ -427,6 +429,7 @@ fo:
resolve: Loys navnaøki
title: Blokera nýtt teldupostanavnaøki
no_email_domain_block_selected: Ongar teldupostanavnaøkisblokeringar vóru broyttar, tí ongar vóru valdar
+ not_permitted: Ikki loyvt
resolved_dns_records_hint_html: Navnaøkið verður loyst til hesi MX navnaøki, sum í síðsta enda hava ábyrgdina av at móttaka teldupost. At blokera eitt MX navnaøki fer at blokera tilmeldingar frá einum og hvørjum teldupoststaði, sum brúkar sama MX navnaøki, sjálvt um sjónliga navnaøkið er eitt annað. Ansa eftir ikki at blokera stórar veitarar av telduposti
resolved_through_html: Loyst gjøgnum %{domain}
title: Blokeraði teldupostanavnaøki
@@ -473,6 +476,7 @@ fo:
content_policies:
comment: Innanhýsis viðmerking
description_html: Tú kanst áseta innihaldspolitikkir, sum verða áløgd øllum kontum frá hesum navnaøkinum og øllum tess undirnavnaøkjum.
+ limited_federation_mode_description_html: Tú kanst velja, hvørt tú loyvir sameining við hetta navnaøkið.
policies:
reject_media: Vraka miðil
reject_reports: Vraka meldingar
@@ -585,11 +589,13 @@ fo:
assign_to_self: Tilluta mær
assigned: Tilnevnt umsjónarfólk
by_target_domain: Navnaøki hjá meldaðu kontuni
+ cancel: Angra
category: Bólkur
category_description_html: Orsøkin, at hendan kontan og/ella tilfarið var melda verður fráboðað í samskifti við meldaðu kontuni
comment:
none: Eingin
comment_description_html: 'Fyri at veita fleiri upplýsingar skrivaði %{name}:'
+ confirm: Vátta
confirm_action: Vátta umsjónaratgerð móti @%{acct}
created_at: Meldað
delete_and_resolve: Strika postar
@@ -792,6 +798,7 @@ fo:
suspend: "%{name} setti kontuna hjá %{target} úr gildi"
appeal_approved: Kært
appeal_pending: Kæra bíðar eftir avgerð
+ appeal_rejected: Kæra vrakað
system_checks:
database_schema_check:
message_html: Dátugrunnaflytingar bíða. Vinarliga koyr flytingarnar fyri at tryggja at skipanin skikkar sær sum hon skal
@@ -827,6 +834,7 @@ fo:
other: Deilt av %{count} persónum seinastu vikuna
title: Vælumtókt leinki
usage_comparison: Deilt %{today} ferð í dag, samanborið við %{yesterday} ferð í gjár
+ not_allowed_to_trend: Ikki loyvt at gerast rák
only_allowed: Einans loyvd
pending_review: Bíðar eftir eftirkannan
preview_card_providers:
@@ -958,6 +966,7 @@ fo:
applications:
created: Umsókn stovnað
destroyed: Umsókn strikað
+ logout: Rita út
regenerate_token: Ger atgongdstekn av nýggjum
token_regenerated: Atgongdsteknið gjørt av nýggjum
warning: Ver varin við hesum dátum. Deil tað aldrin við nakran!
@@ -994,6 +1003,8 @@ fo:
resend_confirmation: Send góðkenningarvegleiðing umaftur
reset_password: Endurstilla loyniorð
rules:
+ accept: Góðtak
+ back: Aftur
preamble: Hesi eru ásett og uppihildin av umsjónarfólkunum á %{domain}.
title: Nakrar grundreglur.
security: Trygd
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 504ab8486b..23c822e10f 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -91,6 +91,7 @@ fr-QC:
moderation:
active: Actifs
all: Tous
+ disabled: Désactivé
pending: En cours de traitement
silenced: Limité
suspended: Suspendus
@@ -133,6 +134,7 @@ fr-QC:
search: Rechercher
search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
+ security: Sécurité
security_measures:
only_password: Mot de passe uniquement
password_and_2fa: Mot de passe et 2FA
@@ -427,17 +429,18 @@ fr-QC:
resolve: Résoudre le domaine
title: Nouveau blocage de domaine de courriel
no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné
+ not_permitted: Non autorisé
resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure.
resolved_through_html: Résolu par %{domain}
title: Blocage de domaines de courriel
export_domain_allows:
new:
- title: Autoriser l'importation de domaine
+ title: Importer les autorisations de domaine
no_file: Aucun fichier sélectionné
export_domain_blocks:
import:
- description_html: Vous êtes sur le point d'importer une liste de blocs de domaine. Veuillez examiner cette liste très attentivement, spécialement si vous n'êtes pas l'auteur de cette liste.
- existing_relationships_warning: Relations de suivi existantes
+ description_html: Vous êtes sur le point d'importer une liste de bloqueurs de domaine. Veuillez examiner cette liste très attentivement, surtout si vous ne l'avez pas créée vous-même.
+ existing_relationships_warning: Relations d'abonnement existantes
private_comment_description_html: 'Pour vous aider à savoir d''où proviennent les blocages importés, ceux-ci seront créés avec le commentaire privé suivant : %{comment}'
private_comment_template: Importé depuis %{source} le %{date}
title: Importer des blocages de domaine
@@ -473,6 +476,7 @@ fr-QC:
content_policies:
comment: Note interne
description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines.
+ limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine.
policies:
reject_media: Rejeter les médias
reject_reports: Rejeter les signalements
@@ -585,11 +589,13 @@ fr-QC:
assign_to_self: Me l’assigner
assigned: Modérateur assigné
by_target_domain: Domaine du compte signalé
+ cancel: Annuler
category: Catégorie
category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé
comment:
none: Aucun
comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :'
+ confirm: Confirmer
confirm_action: Confirmer l'action de modération contre @%{acct}
created_at: Signalé
delete_and_resolve: Supprimer les messages
@@ -729,8 +735,8 @@ fr-QC:
preamble: Contrôle comment le contenu créé par les utilisateurs est enregistré et stocké dans Mastodon.
title: Rétention du contenu
default_noindex:
- desc_html: Affecte tous les utilisateurs qui n'ont pas modifié ce paramètre eux-mêmes
- title: Ne pas indexer par défaut les utilisateurs dans les moteurs de recherche
+ desc_html: Affecte tous les comptes qui n'ont pas modifié ce paramètre
+ title: Par défaut, ne pas indexer les comptes dans les moteurs de recherche
discovery:
follow_recommendations: Suivre les recommandations
preamble: Faire apparaître un contenu intéressant est essentiel pour interagir avec de nouveaux utilisateurs qui ne connaissent peut-être personne sur Mastodonte. Contrôlez le fonctionnement des différentes fonctionnalités de découverte sur votre serveur.
@@ -792,6 +798,7 @@ fr-QC:
suspend: "%{name} a suspendu le compte de %{target}"
appeal_approved: Appel soumis
appeal_pending: Appel en attente
+ appeal_rejected: Appel rejeté
system_checks:
database_schema_check:
message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu
@@ -958,6 +965,7 @@ fr-QC:
applications:
created: Application créée avec succès
destroyed: Application supprimée avec succès
+ logout: Se déconnecter
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
warning: Soyez prudent·e avec ces données. Ne les partagez pas !
@@ -966,7 +974,7 @@ fr-QC:
apply_for_account: Demander un compte
change_password: Mot de passe
confirmations:
- wrong_email_hint: Si cette adresse courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte.
+ wrong_email_hint: Si cette adresse de courriel est incorrecte, vous pouvez la modifier dans vos paramètres de compte.
delete_account: Supprimer le compte
delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici. Il vous sera demandé de confirmer cette action.
description:
@@ -994,6 +1002,7 @@ fr-QC:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
+ back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
security: Sécurité
@@ -1003,7 +1012,7 @@ fr-QC:
email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte.
title: Configuration
sign_in:
- preamble_html: Connectez-vous avec vos identifiants %{domain} . Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici.
+ preamble_html: Connectez-vous avec vos identifiants sur %{domain}. Si votre compte est hébergé sur un autre serveur, vous ne pourrez pas vous connecter ici.
title: Se connecter à %{domain}
sign_up:
preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé.
@@ -1140,8 +1149,6 @@ fr-QC:
storage: Médias stockés
featured_tags:
add_new: Ajouter un nouveau hashtag
- errors:
- limit: Vous avez déjà mis en avant le nombre maximum de hashtags
hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme."
filters:
contexts:
@@ -1251,9 +1258,6 @@ fr-QC:
expires_at: Expire
uses: Utilisations
title: Inviter des gens
- lists:
- errors:
- limit: Vous avez atteint le nombre maximum de listes
login_activities:
authentication_methods:
otp: application d'authentification à deux facteurs
@@ -1396,7 +1400,7 @@ fr-QC:
activity: Activité du compte
confirm_follow_selected_followers: Voulez-vous vraiment suivre les abonné⋅e⋅s sélectionné⋅e⋅s ?
confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ?
- confirm_remove_selected_follows: Voulez-vous vraiment suivre les abonnements sélectionnés ?
+ confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ?
dormant: Dormant
follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s
followers: Abonné·e
@@ -1573,7 +1577,6 @@ fr-QC:
'7889238': 3 mois
min_age_label: Seuil d'ancienneté
min_favs: Conserver les messages mis en favoris au moins
- min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris
min_reblogs: Conserver les messages partagés au moins
min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages
stream_entries:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 278fc9e777..640a5dc321 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -91,6 +91,7 @@ fr:
moderation:
active: Actifs
all: Tous
+ disabled: Désactivé
pending: En cours de traitement
silenced: Limité
suspended: Suspendus
@@ -133,6 +134,7 @@ fr:
search: Rechercher
search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
+ security: Sécurité
security_measures:
only_password: Mot de passe uniquement
password_and_2fa: Mot de passe et A2F
@@ -427,6 +429,7 @@ fr:
resolve: Résoudre le domaine
title: Nouveau blocage de domaine de courriel
no_email_domain_block_selected: Aucun blocage de domaine de courriel n'a été modifié car aucun n'a été sélectionné
+ not_permitted: Non autorisé
resolved_dns_records_hint_html: Le nom de domaine est relié aux domaines MX suivants, qui ont la responsabilité ultime d'accepter les courriels. Bloquer un domaine MX empêchera les inscriptions à partir de toute adresse courriel utilisant le même domaine MX, même si le nom de domaine affiché est différent. Veillez à ne pas bloquer les fournisseurs de messagerie d'envergure.
resolved_through_html: Résolu par %{domain}
title: Blocage de domaines de courriel
@@ -473,6 +476,7 @@ fr:
content_policies:
comment: Note interne
description_html: Vous pouvez définir des politiques de contenu qui seront appliquées à tous les comptes de ce domaine et à tous ses sous-domaines.
+ limited_federation_mode_description_html: Vous pouvez choisir d'autoriser la fédération avec ce domaine.
policies:
reject_media: Rejeter les médias
reject_reports: Rejeter les signalements
@@ -585,11 +589,13 @@ fr:
assign_to_self: Me l’assigner
assigned: Modérateur assigné
by_target_domain: Domaine du compte signalé
+ cancel: Annuler
category: Catégorie
category_description_html: La raison pour laquelle ce compte et/ou ce contenu a été signalé sera citée dans la communication avec le compte signalé
comment:
none: Aucun
comment_description_html: 'Pour fournir plus d''informations, %{name} a écrit :'
+ confirm: Confirmer
confirm_action: Confirmer l'action de modération contre @%{acct}
created_at: Signalé
delete_and_resolve: Supprimer les messages
@@ -792,6 +798,7 @@ fr:
suspend: "%{name} a suspendu le compte de %{target}"
appeal_approved: Appel soumis
appeal_pending: Appel en attente
+ appeal_rejected: Appel rejeté
system_checks:
database_schema_check:
message_html: Vous avez des migrations de base de données en attente. Veuillez les exécuter pour vous assurer que l'application se comporte comme prévu
@@ -827,6 +834,7 @@ fr:
other: Partagé par %{count} personnes au cours de la dernière semaine
title: Liens tendances
usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
+ not_allowed_to_trend: Non autorisé à apparaître dans les tendances
only_allowed: Autorisées seulement
pending_review: En attente de révision
preview_card_providers:
@@ -841,7 +849,7 @@ fr:
description_html: Voici les messages dont votre serveur a connaissance qui sont beaucoup partagés et mis en favoris en ce moment. Cela peut aider vos utilisateur⋅rice⋅s, néophytes comme aguerri⋅e⋅s, à trouver plus de comptes à suivre. Aucun message n'est publiquement affiché tant que vous n'en avez pas approuvé l'auteur⋅rice, et seulement si icellui permet que son compte soit suggéré aux autres. Vous pouvez également autoriser ou rejeter les messages individuellement.
disallow: Proscrire le message
disallow_account: Proscrire l'auteur·rice
- no_status_selected: Aucune publication en tendance n'a été changée car aucune n'a été sélectionnée
+ no_status_selected: Aucun message tendance n'a été modifié car aucun n'était sélectionné
not_discoverable: L'auteur⋅rice n'a pas choisi de pouvoir être découvert⋅e
shared_by:
one: Partagé ou ajouté aux favoris une fois
@@ -958,6 +966,7 @@ fr:
applications:
created: Application créée avec succès
destroyed: Application supprimée avec succès
+ logout: Se déconnecter
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
warning: Soyez prudent·e avec ces données. Ne les partagez pas !
@@ -994,6 +1003,8 @@ fr:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
+ accept: Accepter
+ back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
security: Sécurité
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 74d211e363..cdb7a80c46 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -91,6 +91,7 @@ fy:
moderation:
active: Aktyf
all: Alle
+ disabled: Utskeakele
pending: Yn ôfwachting
silenced: Beheind
suspended: Utsteld
@@ -133,6 +134,7 @@ fy:
search: Sykje
search_same_email_domain: Oare brûkers mei itselde e-maildomein
search_same_ip: Oare brûkers mei itselde IP-adres
+ security: Befeiliging
security_measures:
only_password: Allinnich wachtwurd
password_and_2fa: Wachtwurd en 2FA
@@ -427,6 +429,7 @@ fy:
resolve: Domein opsykje
title: Nije e-maildomein blokkearje
no_email_domain_block_selected: Der binne gjin e-maildomeinblokkaden wizige, omdat der gjin ien selektearre waard
+ not_permitted: Net tastien
resolved_dns_records_hint_html: De domeinnamme slacht op de folgjende MX-domeinen dy’t úteinlik ferantwurdlik binne foar it akseptearjen fan e-mail. It blokkearjen fan in MX-domein blokkearret oanmeldingen fan elk e-mailadres dat itselde MX-domein brûkt, sels as de sichtbere domeinnamme oars is. Pas op dat jo gjin grutte e-mailproviders blokkearje.
resolved_through_html: Blokkearre fia %{domain}
title: Blokkearre e-maildomeinen
@@ -473,6 +476,7 @@ fy:
content_policies:
comment: Ynterne reden
description_html: Jo kinne it belied bepale dat op de accounts fan dit domein en alle subdomeinen fan tapassing is.
+ limited_federation_mode_description_html: Jo kinne kieze oft jo federaasje mei dit domein tastean wolle.
policies:
reject_media: Mediabestannen wegerje
reject_reports: Rapportaazjes wegerje
@@ -585,11 +589,13 @@ fy:
assign_to_self: Oan my tawize
assigned: Tawizen moderator
by_target_domain: Domein fan rapportearre account
+ cancel: Annulearje
category: Kategory
category_description_html: De reden wêrom dizze account en/of ynhâld rapportearre waard, wurdt oan it rapportearre account meidield
comment:
none: Gjin
comment_description_html: 'Om mear ynformaasje te jaan, skreau %{name}:'
+ confirm: Befêstigje
confirm_action: Moderaasjemaatregelen tsjin %{acct} befêstigje
created_at: Rapportearre op
delete_and_resolve: Berjocht fuortsmite
@@ -792,6 +798,7 @@ fy:
suspend: Account %{target} is troch %{name} útsteld
appeal_approved: Beswier yntsjinne
appeal_pending: Beswier yn behanneling
+ appeal_rejected: Beswier ôfwêzen
system_checks:
database_schema_check:
message_html: Der binne database migraasjes yn ôfwachting. Jo moatte dizze útfiere om der foar te soargjen dat de applikaasje wurkjen bliuwt sa as it heard
@@ -827,6 +834,7 @@ fy:
other: Dizze wike troch %{count} persoanen dield
title: Trending keppelingen
usage_comparison: Hjoed %{today} kear dield, fergelike mei %{yesterday} kear juster
+ not_allowed_to_trend: Trending wurdt net tastien
only_allowed: Allinnich goedkarre
pending_review: Moat noch beoardiele wurde
preview_card_providers:
@@ -958,6 +966,7 @@ fy:
applications:
created: Oanmeitsjen tapassing slagge
destroyed: Fuortsmiten tapassing slagge
+ logout: Ofmelde
regenerate_token: Tagongskoade opnij oanmeitsje
token_regenerated: Opnij oanmeitsjen tagongskoade slagge
warning: Wês foarsichtich mei dizze gegevens. Diel it nea mei in oar!
@@ -994,6 +1003,8 @@ fy:
resend_confirmation: Ferstjoer de befêstigingsynstruksjes nochris
reset_password: Wachtwurd opnij ynstelle
rules:
+ accept: Akseptearje
+ back: Tebek
preamble: Dizze binne fêststeld en wurde yn stân hâlden troch de moderatoaren fan %{domain}.
title: Inkelde basisrigels.
security: Befeiliging
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 073f2bad00..4aa2ae98b9 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -433,10 +433,6 @@ ga:
next: An céad eile
older: Níos sine
prev: Ceann roimhe seo
- preferences:
- other: Eile
- posting_defaults: Posting defaults
- public_timelines: Public timelines
relationships:
follow_selected_followers: Lean leantóirí roghnaithe
followers: Leantóirí
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 1091c52e16..5db509b6f5 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1176,8 +1176,6 @@ gd:
storage: Stòras mheadhanan
featured_tags:
add_new: Cuir fear ùr ris
- errors:
- limit: Bhrosnaich thu an uiread as motha de thagaichean hais mu thràth
hint_html: "Dè th’ anns na tagaichean hais brosnaichte? Thèid an sealltainn gu follaiseach air a’ phròifil phoblach agad agus ’s urrainnear na postaichean poblach agad sa bheil na tagaichean hais sònraichte sin a bhrabhsadh leotha. ’S e deagh-acainn a th’ annta airson sùil a chumail air obair chruthachail no pròiseactan fada."
filters:
contexts:
@@ -1303,9 +1301,6 @@ gd:
expires_at: Falbhaidh an ùine air
uses: Cleachdadh
title: Thoir cuireadh do dhaoine
- lists:
- errors:
- limit: Ràinig thu na tha ceadaichte dhut de liostaichean
login_activities:
authentication_methods:
otp: aplacaid dearbhaidh dhà-cheumnaich
@@ -1637,7 +1632,6 @@ gd:
'7889238': 3 mìosan
min_age_label: Stairsneach aoise
min_favs: Cùm na tha ’na annsachd aig co-dhiù
- min_favs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’nan annsachd an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’nan annsachd
min_reblogs: Cùm na tha ’ga bhrosnachadh le co-dhiù
min_reblogs_hint: Cha dèid gin dhe na postaichean agad a sguabadh às a tha ’gam brosnachadh an àireamh de thursan seo air a char as lugha. Fàg seo bàn airson postaichean a sguabadh às ge b’ e co mheud turas a tha iad ’gam brosnachadh
stream_entries:
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 6885000ac5..b51d0f7071 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -91,6 +91,7 @@ gl:
moderation:
active: Activa
all: Todo
+ disabled: Desactivada
pending: Pendente
silenced: Limitada
suspended: Suspendidos
@@ -133,6 +134,7 @@ gl:
search: Procurar
search_same_email_domain: Outras usuarias co mesmo dominio de email
search_same_ip: Outras usuarias co mesmo IP
+ security: Seguridade
security_measures:
only_password: Só contrasinal
password_and_2fa: Contrasinal e 2FA
@@ -427,6 +429,7 @@ gl:
resolve: Resolver dominio
title: Nova entrada na listaxe negra de email
no_email_domain_block_selected: Non se cambiou ningún bloqueo de dominio de email porque non se seleccionou ningún
+ not_permitted: Non permitido
resolved_dns_records_hint_html: O nome de dominio resolve os seguintes rexistros MX, que son os últimos responsables da aceptación de emails. Bloqueando un dominio MX rexeitarás calquera enderezo de email que use este dominio MX, incluso se o nome de dominio visible é outro. Ten coidado de non bloquear os principais provedores.
resolved_through_html: Resolto a través de %{domain}
title: Listaxe negra de email
@@ -473,6 +476,7 @@ gl:
content_policies:
comment: Nota interna
description_html: Podes definir políticas acerca do contido que serán aplicadas a tódalas contas deste dominio e tódolos seus subdominios.
+ limited_federation_mode_description_html: Podes elexir se permites a federación con este dominio.
policies:
reject_media: Rexeitar multimedia
reject_reports: Rexeitar denuncias
@@ -585,11 +589,13 @@ gl:
assign_to_self: Asignarme
assigned: Moderador asignado
by_target_domain: Dominio da conta denunciada
+ cancel: Cancelar
category: Categoría
category_description_html: A razón para denunciar esta conta ou contido será citada na comunicación coa conta denunciada
comment:
none: Ningún
comment_description_html: 'Como información engadida, %{name} escribiu:'
+ confirm: Confirmar
confirm_action: Confirma a acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicacións
@@ -792,6 +798,7 @@ gl:
suspend: "%{name} suspendeu a conta de %{target}"
appeal_approved: Recurrida
appeal_pending: Apelación pendente
+ appeal_rejected: Apelación rexeitada
system_checks:
database_schema_check:
message_html: Existen migracións pendentes na base de datos. Bota man desta tarefa para facer que a aplicación funcione como se agarda dela
@@ -827,6 +834,7 @@ gl:
other: Compartido por %{count} persoas na última semana
title: Ligazóns en voga
usage_comparison: Compartido %{today} veces hoxe, comparado con %{yesterday} onte
+ not_allowed_to_trend: Non permitido como tendencia
only_allowed: Só as permitidas
pending_review: Revisión pendente
preview_card_providers:
@@ -958,6 +966,7 @@ gl:
applications:
created: Creouse con éxito este aplicativo
destroyed: Eliminouse con éxito o aplicativo
+ logout: Pechar sesión
regenerate_token: Votar a xenerar o testemuño de acceso
token_regenerated: Rexenerouse con éxito o testemuño de acceso
warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén!
@@ -994,6 +1003,8 @@ gl:
resend_confirmation: Reenviar as intruccións de confirmación
reset_password: Restablecer contrasinal
rules:
+ accept: Aceptar
+ back: Volver
preamble: Son establecidas e aplicadas pola moderación de %{domain}.
title: Algunhas regras básicas.
security: Seguranza
@@ -1141,7 +1152,7 @@ gl:
featured_tags:
add_new: Engadir novo
errors:
- limit: Xa acadaches o número máximo de cancelos
+ limit: Xa sinalaches o número máximo de cancelos permitido
hint_html: "¿Qué son os cancelos destacados? Móstranse destacados no teu perfil público e permítenlle a outras persoas ver os teus toots públicos nos que os utilizaches. Son unha ferramenta moi útil para facer seguimento de traballos creativos e proxectos a longo prazo."
filters:
contexts:
@@ -1253,7 +1264,7 @@ gl:
title: Convidar xente
lists:
errors:
- limit: Acadou o número máximo de listas
+ limit: Xa acadaches o número máximo de listas
login_activities:
authentication_methods:
otp: app para autenticación con dous factores
@@ -1573,7 +1584,7 @@ gl:
'7889238': 3 meses
min_age_label: Límite temporal
min_favs: Manter as publicacións favoritas máis de
- min_favs_hint: Non elimina ningunha das túas publicacións que recibiron máis desta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos
+ min_favs_hint: Non elimina ningunha das túas publicacións que recibiron alomenos esta cantidade de favorecementos. Deixa en branco para eliminar publicacións independentemente do número de favorecementos
min_reblogs: Manter publicacións promovidas máis de
min_reblogs_hint: Non elimina ningunha das túas publicacións se foron promovidas máis deste número de veces. Deixa en branco para eliminar publicacións independentemente do seu número de promocións
stream_entries:
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 6c213c5301..30a8796448 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -95,6 +95,7 @@ he:
moderation:
active: פעילים
all: הכל
+ disabled: מושבת
pending: בהמתנה
silenced: מוגבלים
suspended: מושהים
@@ -139,6 +140,7 @@ he:
search: חיפוש
search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל
search_same_ip: משתמשים אחרים מאותה כתובת IP
+ security: אבטחה
security_measures:
only_password: סיסמה בלבד
password_and_2fa: סיסמה ואימות דו-שלבי
@@ -443,6 +445,7 @@ he:
resolve: פתור דומיין
title: חסימת דומיין דוא"ל
no_email_domain_block_selected: לא בוצעו שינויים לחסימת דומייני דוא"ל שכן לא נבחרו דומיינים
+ not_permitted: נאסר
resolved_dns_records_hint_html: שם הדומיין מוביל לדומייניי ה-MX הבאים, שהם בסופו של דבר אחראיים לקבלת דוא"ל. חסימת דומיין MX תוביל לחסימת הרשמות מכל כתובת דוא"ל שעושה שימוש בדומיין MX זה, אפילו אם הדומיין הגלוי שונה. יש להמנע מלחסום ספקי דוא"ל מובילים.
resolved_through_html: נמצא דרך %{domain}
title: דומייניי דוא"ל חסומים
@@ -493,6 +496,7 @@ he:
content_policies:
comment: הערה פנימית
description_html: ביכולתך להגדיר מדיניות תוכן שתופעל על כל החשבונות מדומיין זה ומתת-דומייניו.
+ limited_federation_mode_description_html: ניתן לבחור אם להרשות תקשורת הדדית עם שרת זה.
policies:
reject_media: דחיית מדיה
reject_reports: דחיית דו"חות
@@ -609,11 +613,13 @@ he:
assign_to_self: הקצה אלי
assigned: מנחה מוקצה
by_target_domain: דומיין החשבון המדווח
+ cancel: ביטול
category: קטגוריה
category_description_html: הסיבה בגללה חשבון זה ו/או תוכנו דווחו תצוטט בתקשורת עם החשבון המדווח
comment:
none: ללא
comment_description_html: 'על מנת לספק עוד מידע, %{name} כתב\ה:'
+ confirm: אישור
confirm_action: נא לאשר פעולת משמעת לגבי חשבון %{acct}
created_at: מדווח
delete_and_resolve: מחיקת הודעות
@@ -820,6 +826,7 @@ he:
suspend: "%{name} השעה/תה את חשבונו/ה של %{target}"
appeal_approved: עורער
appeal_pending: בהמתנה לערעור
+ appeal_rejected: הערעור נדחה
system_checks:
database_schema_check:
message_html: נדרשות הגירות מבני נתונים. אנא הריצו אותן כדי להבטיח שהיישום מתנהג כצפוי
@@ -857,6 +864,7 @@ he:
two: הופץ על ידי %{count} אנשים בשבוע האחרון
title: קישוריות חמות
usage_comparison: הופץ %{today} פעמים היום, לעומת %{yesterday} אתמול
+ not_allowed_to_trend: לא מורשה להופיע כנושא חם
only_allowed: רק כאלה שהותרו
pending_review: בהמתנה לבדיקה
preview_card_providers:
@@ -994,6 +1002,7 @@ he:
applications:
created: ישום נוצר בהצלחה
destroyed: ישום נמחק בהצלחה
+ logout: יציאה
regenerate_token: יצירת אסימון גישה מחדש
token_regenerated: אסימון גישה יוצר מחדש בהצלחה
warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד!
@@ -1030,6 +1039,8 @@ he:
resend_confirmation: שלח הוראות אימות בשנית
reset_password: איפוס סיסמה
rules:
+ accept: הסכמה
+ back: בחזרה
preamble: אלו נקבעים ונאכפים ע"י המנחים של %{domain}.
title: כמה חוקים בסיסיים.
security: אבטחה
@@ -1177,7 +1188,7 @@ he:
featured_tags:
add_new: הוספת חדש
errors:
- limit: המספר המירבי של התגיות כבר מוצג
+ limit: הצגת כבר את המספר המירבי של תגיות נבחרות
hint_html: "מהן תגיות נבחרות? הן מוצגות במובלט בפרופיל הפומבי שלך ומאפשר לאנשים לעיין בהודעות הפומביות שלך המסומנות בתגיות אלה. הן כלי אדיר למעקב אחר עבודות יצירה ופרוייקטים לטווח ארוך."
filters:
contexts:
@@ -1305,7 +1316,7 @@ he:
title: הזמנת אנשים
lists:
errors:
- limit: הגעת למספר הרשימות המירבי.
+ limit: הגעת למספר הרשימות המירבי
login_activities:
authentication_methods:
otp: יישומון אימות דו-שלבי
@@ -1637,7 +1648,7 @@ he:
'7889238': 3 חודשים
min_age_label: סף גיל
min_favs: השאר הודעות מחובבות לפחות
- min_favs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של חיבובים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר החיבובים שקיבלו
+ min_favs_hint: לא תימחקנה הודעות שלך שקיבלו לפחות מספר זה של חיבובים. אם יישאר ריק, הודעות תימחקנה ללא תלות במספר החיבובים שלהן.
min_reblogs: שמור הודעות מהודהדות לפחות
min_reblogs_hint: לא מוחק מי מהודעותיך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק הודעות ללא קשר למספר ההדהודים שקיבלו
stream_entries:
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index a9315b1f24..7b98cc77cd 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -91,6 +91,7 @@ hu:
moderation:
active: Aktív
all: Összes
+ disabled: Letiltva
pending: Függőben
silenced: Korlátozott
suspended: Felfüggesztve
@@ -133,6 +134,7 @@ hu:
search: Keresés
search_same_email_domain: Felhasználók ugyanezzel az email domainnel
search_same_ip: Más felhasználók ugyanezzel az IP-vel
+ security: Biztonság
security_measures:
only_password: Csak jelszó
password_and_2fa: Jelszó és kétlépcsős hitelesítés
@@ -427,6 +429,7 @@ hu:
resolve: Domain feloldása
title: Új e-mail domain tiltása
no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva
+ not_permitted: Nem engedélyezett
resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat.
resolved_through_html: Feloldva %{domain}-n keresztül
title: Tiltott e-mail domainek
@@ -473,6 +476,7 @@ hu:
content_policies:
comment: Belső megjegyzés
description_html: Definiálhatsz tartalmi szabályokat, melyek ezen domain és minden aldomain fiókjára vonatkozni fognak.
+ limited_federation_mode_description_html: Eldöntheted, hogy engeded-e a föderációt ezzel a domainnel.
policies:
reject_media: Média elutasítása
reject_reports: Bejelentések elutasítása
@@ -585,11 +589,13 @@ hu:
assign_to_self: Magamhoz rendelés
assigned: Hozzárendelt moderátor
by_target_domain: A bejelentett fiók domainje
+ cancel: Mégse
category: Kategória
category_description_html: A fiók vagy tartalom bejelentésének oka a jelentett fiókkal kapcsolatos kommunikációban idézve lesz
comment:
none: Egyik sem
comment_description_html: 'Hogy további információkat adjon, %{name} ezt írta:'
+ confirm: Megerősítés
confirm_action: Moderációs művelet jóváhagyása @%{acct} fiókon
created_at: Jelentve
delete_and_resolve: Bejegyzések törlése
@@ -792,6 +798,7 @@ hu:
suspend: "%{name} felfüggesztette %{target} fiókját"
appeal_approved: Megfellebbezve
appeal_pending: Fellebbezés folyamatban
+ appeal_rejected: Fellebbezés visszautasítva
system_checks:
database_schema_check:
message_html: Vannak esedékes adatbázis migrációink. Kérlek, futtasd őket, hogy biztosítsd, hogy az alkalmazás megfelelően működjön
@@ -827,6 +834,7 @@ hu:
other: "%{count} ember osztotta meg a múlt héten"
title: Felkapott hivatkozások
usage_comparison: "%{today} alkalommal lett ma megosztva, a tegnapi %{yesterday} alkalomhoz képest"
+ not_allowed_to_trend: Nem engedélyezett a trendekben
only_allowed: Csak engedélyezett
pending_review: Áttekintésre vár
preview_card_providers:
@@ -958,6 +966,7 @@ hu:
applications:
created: Alkalmazás sikeresen létrehozva
destroyed: Alkalmazás sikeresen eltávolítva
+ logout: Kijelentkezés
regenerate_token: Hozzáférési kulcs újragenerálása
token_regenerated: Hozzáférési kulcs sikeresen újragenerálva
warning: Ez érzékeny adat. Soha ne oszd meg másokkal!
@@ -994,6 +1003,8 @@ hu:
resend_confirmation: Megerősítési lépések újraküldése
reset_password: Jelszó visszaállítása
rules:
+ accept: Elfogadás
+ back: Vissza
preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be.
title: Néhány alapszabály.
security: Biztonság
@@ -1141,7 +1152,7 @@ hu:
featured_tags:
add_new: Új hozzáadása
errors:
- limit: Már kiemelted a maximálisan engedélyezett számú hashtaget
+ limit: Elérted a maximálisan kitűzhető hashtagek számát
hint_html: "Mik a kiemelt hashtagek? Ezek állandóan megjelennek a nyilvános profilodon és lehetővé teszik, hogy mások kifejezetten az ezekhez tartozó bejegyzéseidet böngésszék. Jó eszköz ez kreatív munkák vagy hosszútávú projektek nyomonkövetésére."
filters:
contexts:
@@ -1253,7 +1264,7 @@ hu:
title: Meghívások
lists:
errors:
- limit: Elérted a hozzáadható listák maximális számát
+ limit: Elérted a listák maximális számát
login_activities:
authentication_methods:
otp: kétlépcsős azonosító alkalmazás
@@ -1573,7 +1584,7 @@ hu:
'7889238': 3 hónap
min_age_label: Korhatár
min_favs: Bejegyzések megtartása, melyeket többször jelöltek kedvencnek, mint
- min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket ennél többször jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket
+ min_favs_hint: Nem törli egyetlen olyan bejegyzésedet sem, melyeket legalább ennyiszer jelöltek kedvencnek. Hagyd üresen, hogy a kedvencnek jelölések számától függetlenül töröljük őket
min_reblogs: Bejegyzések megtartása, melyeket többször toltak meg, mint
min_reblogs_hint: Egyetlen olyan bejegyzésedet sem törli, melyet ennél többször toltak meg. Hagyd üresen, hogy a megtolások számától függetlenül töröljük a bejegyzéseket
stream_entries:
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 10f7e6629b..da16e7836e 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1093,8 +1093,6 @@ id:
storage: Penyimpanan media
featured_tags:
add_new: Tambah baru
- errors:
- limit: Anda sudah menampilkan tagar unggulan dengan jumlah maksimum
hint_html: "Apa itu tagar yang diunggulkan? Mereka ditampilkan secara mencolok di profil publik Anda dan mengizinkan orang-orang untuk menjelajahi kiriman publik khususnya yang ada di bawah tagar tersebut. Mereka adalah alat yang bagus untuk melacak pekerjaan kreatif atau proyek jangka panjang."
filters:
contexts:
@@ -1196,9 +1194,6 @@ id:
expires_at: Kedaluwarsa
uses: Penggunaan
title: Undang orang
- lists:
- errors:
- limit: Daftar Anda telah mencapai jumlah maksimum
login_activities:
authentication_methods:
otp: aplikasi otentikasi dua-faktor
@@ -1509,7 +1504,6 @@ id:
'7889238': 3 bulan
min_age_label: Batas usia
min_favs: Simpan kiriman favorit lebih dari
- min_favs_hint: Tidak menghapus kiriman Anda yang mendapatkan sekian favorit. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah favoritnya
min_reblogs: Simpan kiriman yang di-boost lebih dari
min_reblogs_hint: Tidak menghapus kiriman Anda yang di-boost lebih dari sekian kali. Kosongkan bila ingin menghapus kiriman tanpa peduli jumlah boost-nya
stream_entries:
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 808023e40d..809ef45462 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1069,8 +1069,6 @@ io:
storage: Konservado di kontenajo
featured_tags:
add_new: Insertez novo
- errors:
- limit: Vu ja estelis maxima hashtagi
hint_html: "Quo esas estelita hashtagi? Ol montresas eminente che vua publika profilo e povigas personi vidar vua publika posti partikulare kun ta hashtagi. Oli esas bona utensilo por jeretar kreiva agaji e longa projetaji."
filters:
contexts:
@@ -1179,9 +1177,6 @@ io:
expires_at: Expiros
uses: Uzi
title: Invitez personi
- lists:
- errors:
- limit: Vu astingas maxima listi
login_activities:
authentication_methods:
otp: 2-faktoryurizessoftwaro
@@ -1498,7 +1493,6 @@ io:
'7889238': 3 monati
min_age_label: Oldeslimito
min_favs: Retenez favorizita posti mine
- min_favs_hint: Ne efacas irga vua posti quo ganis mine ca favorizquanto. Restez quale vakua por efacar posti sen suciar olia favorizquanto
min_reblogs: Retenez bustita posti mine
min_reblogs_hint: Ne efacas irga vua posti quo bustigesos mine ca foyoquanto. Restez quale vakua por efacar posti sen suciar olia foyoquanto
stream_entries:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index e68bbb2f39..56005196ff 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -91,6 +91,7 @@ is:
moderation:
active: Virkur
all: Allt
+ disabled: Óvirkt
pending: Í bið
silenced: Takmarkað
suspended: Í frysti
@@ -133,6 +134,7 @@ is:
search: Leita
search_same_email_domain: Aðra notendur með sama tölvupóstlén
search_same_ip: Aðrir notendur með sama IP-vistfang
+ security: Öryggi
security_measures:
only_password: Aðeins lykilorð
password_and_2fa: Lykilorð og 2-þátta auðkenning
@@ -427,6 +429,7 @@ is:
resolve: Leysa lén
title: Útiloka nýtt tölvupóstlén
no_email_domain_block_selected: Engum útilokunum tölvupóstléna var breytt þar sem ekkert var valið
+ not_permitted: Ekki leyft
resolved_dns_records_hint_html: Heiti lénsins vísar til eftirfarandi MX-léna, sem bera endanlega ábyrgð á að tölvupóstur skili sér. Útilokun á MX-léni mun koma í veg fyrir nýskráningar með hverju því tölvupóstfangi sem notar sama MX-lén, jafnvel þótt sýnilega lénsheitið sé frábrugðið. Farðu varlega svo þú útilokir ekki algengar tölvupóstþjónustur.
resolved_through_html: Leyst í gegnum %{domain}
title: Útilokuð tölvupóstlén
@@ -473,6 +476,7 @@ is:
content_policies:
comment: Innri minnispunktur
description_html: Þú getur skilgreint stefnu varðandi efni sem verður beitt á alla aðganga frá þessu léni og öllum undirlénum þess.
+ limited_federation_mode_description_html: Þú getur valið hvort leyfa eigi skýjasamband við þetta lén.
policies:
reject_media: Hafna myndefni
reject_reports: Hafna kærum
@@ -585,11 +589,13 @@ is:
assign_to_self: Úthluta mér
assigned: Úthlutaður umsjónarmaður
by_target_domain: Lén kærða notandaaðgangsins
+ cancel: Hætta við
category: Flokkur
category_description_html: Ástæðan fyrir því að þessi notandaaðgangur og/eða efni hans var kært mun verða tiltekin í samskiptum við kærðan notandaaðgang
comment:
none: Ekkert
comment_description_html: 'Til að gefa nánari upplýsingar skrifaði %{name}:'
+ confirm: Staðfesta
confirm_action: Staðfesta umsjónaraðgerðir gagnvart @%{acct}
created_at: Tilkynnt
delete_and_resolve: Eyða færslum
@@ -792,6 +798,7 @@ is:
suspend: "%{name} setti notandaaðganginn %{target} í frysti"
appeal_approved: Áfrýjað
appeal_pending: Áfrýjun í bið
+ appeal_rejected: Áfrýjun hafnað
system_checks:
database_schema_check:
message_html: Það eru fyrirliggjandi yfirfærslur á gagnagrunnum. Keyrðu þær til að tryggja að forritið hegði sér eins og skyldi
@@ -827,6 +834,7 @@ is:
other: Deilt af %{count} aðilum síðustu vikuna
title: Vinsælir tenglar
usage_comparison: Deilt %{today} sinnum í dag, samanborið við %{yesterday} í gær
+ not_allowed_to_trend: Ekki leyft að verða vinsælt
only_allowed: Aðeins leyfð
pending_review: Bíður eftir yfirlestri
preview_card_providers:
@@ -958,6 +966,7 @@ is:
applications:
created: Það tókst að búa til forrit
destroyed: Það tókst að eyða forriti
+ logout: Skrá út
regenerate_token: Endurgera aðgangsteikn
token_regenerated: Það tókst að endurgera aðgangsteiknið
warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum!
@@ -994,6 +1003,8 @@ is:
resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur
reset_password: Endursetja lykilorð
rules:
+ accept: Samþykkja
+ back: Til baka
preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}.
title: Nokkrar grunnreglur.
security: Öryggi
@@ -1141,7 +1152,7 @@ is:
featured_tags:
add_new: Bæta við nýju
errors:
- limit: Þú ert þegar búin/n að gefa hámarksfjölda myllumerkja aukið vægi
+ limit: Þú hefur þegar gefið hámarksfjölda myllumerkja aukið vægi
hint_html: "Hvað eru myllumerki með aukið vægi? Þau eru birt áberandi á opinbera notandasniðinu þínu og gera fólki kleift að fletta í gegnum opinberu færslurnar þínar sérstaklega undir þessum myllumerkjum. Þau eru frábær aðferð við að halda utan um skapandi vinnu eða langtíma verkefni."
filters:
contexts:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index d0c7168afd..3531cfc7d9 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -91,6 +91,7 @@ it:
moderation:
active: Attivo
all: Tutto
+ disabled: Disattivato
pending: In sospeso
silenced: Limitato
suspended: Sospeso
@@ -133,6 +134,7 @@ it:
search: Cerca
search_same_email_domain: Altri utenti con lo stesso dominio email
search_same_ip: Altri utenti con lo stesso IP
+ security: Sicurezza
security_measures:
only_password: Solo password
password_and_2fa: Password e A2F
@@ -427,6 +429,7 @@ it:
resolve: Risolvi dominio
title: Nuova voce della lista nera delle email
no_email_domain_block_selected: Nessun blocco di dominio di posta elettronica è stato modificato in quanto nessuno è stato selezionato
+ not_permitted: Non consentito
resolved_dns_records_hint_html: Il nome di dominio si risolve ai seguenti domini MX, che sono in ultima analisi responsabili per l'accettazione di e-mail. Il blocco di un dominio MX bloccherà le iscrizioni da qualsiasi indirizzo e-mail che utilizza lo stesso dominio MX, anche se il nome di dominio visibile è diverso. Fai attenzione a non bloccare i principali provider di posta elettronica.
resolved_through_html: Risolto attraverso %{domain}
title: Lista nera email
@@ -473,6 +476,7 @@ it:
content_policies:
comment: Nota interna
description_html: Puoi definire le politiche del contenuto che saranno applicate a tutti i profili da questo dominio e ognuno dei suoi sottodomini.
+ limited_federation_mode_description_html: Puoi scegliere se consentire la federazione con questo dominio.
policies:
reject_media: Rifiuta multimedia
reject_reports: Rifiuta rapporti
@@ -585,11 +589,13 @@ it:
assign_to_self: Assegna a me
assigned: Moderatore assegnato
by_target_domain: Dominio dell'account segnalato
+ cancel: Annulla
category: Categoria
category_description_html: Il motivo per cui questo account e/o contenuto è stato segnalato sarà citato nella comunicazione con l'account segnalato
comment:
none: Nessuno
comment_description_html: 'Per fornire ulteriori informazioni, %{name} ha scritto:'
+ confirm: Conferma
confirm_action: Conferma l'azione di moderazione contro @%{acct}
created_at: Segnalato
delete_and_resolve: Cancella post
@@ -792,6 +798,7 @@ it:
suspend: "%{name} ha sospeso l'account di %{target}"
appeal_approved: Sottoposto ad appello
appeal_pending: Appello in attesa
+ appeal_rejected: Appello respinto
system_checks:
database_schema_check:
message_html: Ci sono migrazioni del database in attesa. Sei pregato di eseguirle per assicurarti che l'applicazione si comporti come previsto
@@ -827,6 +834,7 @@ it:
other: Condiviso da %{count} persone nell'ultima settimana
title: Link in tendenza
usage_comparison: Condiviso %{today} volte oggi, rispetto a %{yesterday} ieri
+ not_allowed_to_trend: Non è consentito il trend
only_allowed: Solo consentiti
pending_review: Revisione in sospeso
preview_card_providers:
@@ -960,6 +968,7 @@ it:
applications:
created: Applicazione creata con successo
destroyed: Applicazione eliminata con successo
+ logout: Disconnettiti
regenerate_token: Rigenera il token di accesso
token_regenerated: Token di accesso rigenerato
warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
@@ -996,6 +1005,8 @@ it:
resend_confirmation: Invia di nuovo le istruzioni di conferma
reset_password: Resetta la password
rules:
+ accept: Accetta
+ back: Indietro
preamble: Questi sono impostati e applicati dai moderatori di %{domain}.
title: Alcune regole di base.
security: Credenziali
@@ -1575,7 +1586,7 @@ it:
'7889238': 3 mesi
min_age_label: Soglia di età
min_favs: Conserva i post preferiti più di
- min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto più di questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti
+ min_favs_hint: Non cancella nessuno dei tuoi post che ha ricevuto almeno questo numero di preferiti. Lascia vuoto per cancellare i post indipendentemente dal loro numero di preferiti
min_reblogs: Conserva i post condivisi più di
min_reblogs_hint: Non cancella nessuno dei tuoi post che è stato condiviso più di questo numero di volte. Lascia vuoto per cancellare i post indipendentemente dal loro numero di condivisioni
stream_entries:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 288d56ca5b..bea0085c95 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -89,6 +89,7 @@ ja:
moderation:
active: アクティブ
all: すべて
+ disabled: 無効
pending: 承認待ち
silenced: 制限
suspended: 停止済み
@@ -130,6 +131,7 @@ ja:
search: 検索
search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
search_same_ip: 同じIPのユーザーを検索
+ security: 認証方法
security_measures:
only_password: パスワードのみ
password_and_2fa: パスワードと二要素認証
@@ -419,6 +421,7 @@ ja:
resolve: ドメイン解決
title: 新規メールドメインブロック
no_email_domain_block_selected: 何も選択されていないためメールドメインブロックを変更しませんでした
+ not_permitted: 権限がありません
resolved_dns_records_hint_html: ドメイン名はDNSでMXドメインに名前解決され、最終的にメールを受け付ける役割を担います。目に見えるドメイン名が異なっていても、同じMXドメインを使用するメールアドレスからのアカウント登録がブロックされます。主要なメールプロバイダーをブロックしないように注意して下さい。
resolved_through_html: "%{domain}を通して解決しました"
title: メールドメインブロック
@@ -463,6 +466,7 @@ ja:
content_policies:
comment: 内部メモ
description_html: このドメインとそのサブドメインのすべてのアカウントに適用されるコンテンツポリシーを定義できます。
+ limited_federation_mode_description_html: このドメインとの連合を許可するかどうかを選択できます。
policies:
reject_media: メディアを拒否する
reject_reports: 通報を拒否
@@ -573,11 +577,13 @@ ja:
assign_to_self: 担当になる
assigned: 担当者
by_target_domain: ドメイン
+ cancel: キャンセル
category: カテゴリー
category_description_html: 選択した理由は通報されたアカウントへの連絡時に引用されます
comment:
none: なし
comment_description_html: "%{name}からの詳細情報:"
+ confirm: 確認
confirm_action: "@%{acct} さんに対するアクション"
created_at: 通報日時
delete_and_resolve: 投稿を削除
@@ -778,6 +784,7 @@ ja:
suspend: "%{name}さんが%{target}さんのアカウントを停止しました"
appeal_approved: 抗議済み
appeal_pending: 保留中の抗議
+ appeal_rejected: 却下済みの抗議
system_checks:
database_schema_check:
message_html: 未実行のデータベースマイグレーションがあります。実行して正常に動作するようにしてください。
@@ -812,6 +819,7 @@ ja:
other: 週間%{count}人に共有されました
title: トレンドリンク
usage_comparison: 今日は%{today}回、昨日は%{yesterday}回共有されました
+ not_allowed_to_trend: 未許可のトレンド
only_allowed: 許可済み
pending_review: 保留中
preview_card_providers:
@@ -940,6 +948,7 @@ ja:
applications:
created: アプリが作成されました
destroyed: アプリが削除されました
+ logout: ログアウト
regenerate_token: アクセストークンの再生成
token_regenerated: アクセストークンが再生成されました
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
@@ -976,6 +985,8 @@ ja:
resend_confirmation: 確認メールを再送する
reset_password: パスワードを再発行
rules:
+ accept: 同意する
+ back: 戻る
preamble: これらは %{domain} モデレータによって設定され、実施されます。
title: いくつかのルールがあります。
security: セキュリティ
@@ -1123,7 +1134,7 @@ ja:
featured_tags:
add_new: 追加
errors:
- limit: 注目のハッシュタグの上限に達しました
+ limit: すでに注目のハッシュタグの上限数に達しています
hint_html: "注目のハッシュタグとは? プロフィールページに目立つ形で表示され、そのハッシュタグのついたあなたの公開投稿だけを抽出して閲覧できるようにします。クリエイティブな仕事や長期的なプロジェクトを追うのに優れた機能です。"
filters:
contexts:
@@ -1227,7 +1238,7 @@ ja:
title: 新規ユーザーの招待
lists:
errors:
- limit: リストの上限に達しました
+ limit: リストの上限数に達しています
login_activities:
authentication_methods:
otp: 二要素認証アプリ
@@ -1541,7 +1552,7 @@ ja:
'7889238': 3ヶ月
min_age_label: 投稿を保持する期間
min_favs: お気に入りの基準値
- min_favs_hint: この数以上、お気に入りされた投稿を削除せずに残します。空白にしておくと、お気に入りに登録された数に関わらず投稿を削除します。
+ min_favs_hint: この数以上、お気に入り登録された投稿を削除せずに残します。空白にしておくと、お気に入りの数に関わらず投稿を削除します。
min_reblogs: ブーストの基準値
min_reblogs_hint: この数以上、ブーストされた投稿を削除せずに残します。空白にしておくと、ブーストされた数に関わらず投稿を削除します。
stream_entries:
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index ff08987d9a..dcc7e6580e 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -344,9 +344,6 @@ ka:
expires_at: ვადა გასდის
uses: მოხმარება
title: მოიწვიეთ ხალხი
- lists:
- errors:
- limit: მიაღწიეთ სიების მაქსიმალურ ოდენობას
media_attachments:
validations:
images_and_video: ვიდეოს დართვა სტატუსზე, რომელიც უკვე მოიცავს სურათებს, ვერ მოხერხდება
@@ -392,10 +389,6 @@ ka:
next: შემდეგი
older: ძველი
prev: წინა
- preferences:
- other: სხვა
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა
sessions:
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 7f77b2be78..ead31b695f 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -627,10 +627,6 @@ kab:
next: Γer zdat
older: Aqbuṛ
prev: Win iɛeddan
- preferences:
- other: Wiyaḍ
- posting_defaults: Posting defaults
- public_timelines: Public timelines
privacy_policy:
title: Tasertit tabaḍnit
relationships:
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 4c71895880..1adddf3c86 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -453,8 +453,6 @@ kk:
storage: Медиа жинақ
featured_tags:
add_new: Жаңасын қосу
- errors:
- limit: Хэштег лимитинен асып кеттіңіз
hint_html: " Ерекшеліктері бар хэштегтер дегеніміз не? Олар жалпыға қол жетімді профильде көрсетіледі және адамдарға сіздің жалпы хабарламаларыңызды сол хэштегтердің астына қарауға мүмкіндік береді. Олар шығармашылық жұмыстарды немесе ұзақ мерзімді жобаларды бақылаудың тамаша құралы."
filters:
contexts:
@@ -521,9 +519,6 @@ kk:
expires_at: Аяқталу мерзімі
uses: Қолданыс
title: Адам шақыру
- lists:
- errors:
- limit: Сіз тізімдердің максимум мөлшеріне жеттіңіз
media_attachments:
validations:
images_and_video: Жазбаға видео қоса алмайсыз, тек сурет қосуға болады
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index a216953e3e..8e8f7ec6b8 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -89,6 +89,7 @@ ko:
moderation:
active: 활동
all: 전체
+ disabled: 비활성화됨
pending: 대기 중
silenced: 제한됨
suspended: 정지 중
@@ -130,6 +131,7 @@ ko:
search: 검색
search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들
search_same_ip: 같은 IP의 다른 사용자들
+ security: 보안
security_measures:
only_password: 암호만
password_and_2fa: 암호와 2단계 인증
@@ -158,7 +160,7 @@ ko:
unsilenced_msg: 성공적으로 %{username} 계정을 제한 해제했습니다
unsubscribe: 구독 해제
unsuspended_msg: 성공적으로 %{username} 계정을 정지 해제했습니다
- username: 아이디
+ username: 사용자명
view_domain: 도메인의 요약 보기
warn: 경고
web: 웹
@@ -421,6 +423,7 @@ ko:
resolve: 도메인 검사
title: 새 이메일 도메인 차단
no_email_domain_block_selected: 아무 것도 선택 되지 않아 어떤 이메일 도메인 차단도 변경되지 않았습니다
+ not_permitted: 권한 없음
resolved_dns_records_hint_html: 도메인 네임은 다음의 MX 도메인으로 연결되어 있으며, 이메일을 받는데 필수적입니다. MX 도메인을 차단하면 같은 MX 도메인을 사용하는 어떤 이메일이라도 가입할 수 없게 되며, 보여지는 도메인이 다르더라도 적용됩니다. 주요 이메일 제공자를 차단하지 않도록 조심하세요.
resolved_through_html: "%{domain}을 통해 리졸빙됨"
title: Email 도메인 차단
@@ -465,6 +468,7 @@ ko:
content_policies:
comment: 내부 참고사항
description_html: 이 도메인과 하위 도메인의 모든 계정에 적용될 콘텐츠 정책을 정의할 수 있습니다.
+ limited_federation_mode_description_html: 이 도메인의 연합을 허용할지 선택할 수 있습니다.
policies:
reject_media: 미디어 거부
reject_reports: 신고 거부
@@ -575,11 +579,13 @@ ko:
assign_to_self: 나에게 할당하기
assigned: 할당된 중재자
by_target_domain: 신고된 계정의 도메인
+ cancel: 취소
category: 카테고리
category_description_html: 이 계정 또는 게시물이 신고된 이유는 신고된 계정과의 의사소통 과정에 인용됩니다
comment:
none: 없음
comment_description_html: '더 많은 정보를 위해, %{name} 님이 작성했습니다:'
+ confirm: 확정
confirm_action: "@%{acct}에 취할 중재 결정에 대한 확인"
created_at: 신고 시각
delete_and_resolve: 게시물 삭제
@@ -780,6 +786,7 @@ ko:
suspend: "%{name} 님이 %{target}의 계정을 정지시켰습니다"
appeal_approved: 이의제기됨
appeal_pending: 이의제기 대기중
+ appeal_rejected: 이의 제기 거절됨
system_checks:
database_schema_check:
message_html: 대기 중인 데이터베이스 마이그레이션이 있습니다. 애플리케이션이 예상대로 동작할 수 있도록 마이그레이션을 실행해 주세요
@@ -814,6 +821,7 @@ ko:
other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다
title: 유행하는 링크
usage_comparison: 오늘은 %{today}회 공유되었고, 어제는 %{yesterday}회 공유되었습니다
+ not_allowed_to_trend: 트렌드에 오를 수 없음
only_allowed: 허용된 것만
pending_review: 심사 대기
preview_card_providers:
@@ -942,6 +950,7 @@ ko:
applications:
created: 애플리케이션이 성공적으로 생성되었습니다
destroyed: 애플리케이션이 성공적으로 삭제되었습니다
+ logout: 로그아웃
regenerate_token: 토큰 재생성
token_regenerated: 액세스 토큰이 성공적으로 재생성되었습니다
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
@@ -978,6 +987,8 @@ ko:
resend_confirmation: 확인 메일을 다시 보내기
reset_password: 암호 재설정
rules:
+ accept: 수락
+ back: 뒤로가기
preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다.
title: 몇 개의 규칙이 있습니다.
security: 보안
@@ -1055,8 +1066,8 @@ ko:
email_reconfirmation_html: 아직 확인 메일이 도착하지 않은 경우, 다시 요청할 수 있습니다
irreversible: 계정을 복구하거나 다시 사용할 수 없게 됩니다
more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요.
- username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다
- username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다
+ username_available: 이 사용자명을 다시 쓸 수 있게 됩니다.
+ username_unavailable: 이 사용자명은 앞으로도 쓸 수 없는 채로 남게 됩니다.
disputes:
strikes:
action_taken: 내려진 징계
@@ -1094,7 +1105,7 @@ ko:
'403': 이 페이지를 표시할 권한이 없습니다.
'404': 찾으려는 페이지가 존재하지 않습니다.
'406': 이 페이지는 요청한 자료형으로 제공되지 않습니다.
- '410': 당신이 보려는 페이지는 더이상 여기에 존재하지 않습니다.
+ '410': 보려는 페이지는 더 이상 여기에 존재하지 않습니다.
'422':
content: 보안 인증에 실패했습니다. 쿠키를 차단하고 있진 않습니까?
title: 보안 인증 실패
@@ -1112,7 +1123,7 @@ ko:
date: 날짜
download: 아카이브 다운로드
hint_html: 당신의 게시물과 업로드 된 미디어의 아카이브를 요청할 수 있습니다. 내보내지는 데이터는 ActivityPub 포맷입니다. 호환 되는 모든 소프트웨어에서 읽을 수 있습니다. 7일마다 새로운 아카이브를 요청할 수 있습니다.
- in_progress: 당신의 아카이브를 컴파일 중입니다…
+ in_progress: 아카이브를 컴파일 중...
request: 아카이브 요청하기
size: 크기
blocks: 차단
@@ -1125,12 +1136,12 @@ ko:
featured_tags:
add_new: 추가
errors:
- limit: 이미 추천 해시태그의 개수가 최대입니다
+ limit: 추천 해시태그 최대 개수를 초과합니다
hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다."
filters:
contexts:
account: 프로필
- home: 홈 타임라인
+ home: 홈 & 리스트
notifications: 알림
public: 퍼블릭 타임라인
thread: 대화
@@ -1229,7 +1240,7 @@ ko:
title: 초대
lists:
errors:
- limit: 리스트 최대치에 도달했습니다
+ limit: 리스트 최대 개수를 초과합니다
login_activities:
authentication_methods:
otp: 2단계 인증 앱
@@ -1243,7 +1254,7 @@ ko:
title: 인증 이력
media_attachments:
validations:
- images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부 할 수 없습니다
+ images_and_video: 이미 사진이 첨부된 게시물엔 동영상을 첨부할 수 없습니다.
not_ready: 처리가 끝나지 않은 파일은 첨부할 수 없습니다. 잠시 후에 다시 시도해 주세요!
too_many: 최대 4개까지 첨부할 수 있습니다
migrations:
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 0990d97682..255026db16 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1113,8 +1113,6 @@ ku:
storage: Bîrdanaka medyayê
featured_tags:
add_new: Yeka nû tevlî bike
- errors:
- limit: Te jixwe berê pirtirîn hashtag destnîşan kiriye
hint_html: " Hashtagên destnîşankirî çi ne? Ew bi eşkere li ser profîla te ya gelemperî têne xuyakirin û dihêlin ku mirov bi taybetî di binê wan hashtagan de li şandiyên te yên gelemperî bigere. Ew ji bo şopandina karên afirîner an projeyên demdirêj amûrek girîng in."
filters:
contexts:
@@ -1224,9 +1222,6 @@ ku:
expires_at: Diqede
uses: Bikaranîn
title: Mirovan vexwîne
- lists:
- errors:
- limit: Tu gihîştî hejmara rêzika a herî zêde
login_activities:
authentication_methods:
otp: sepandina rastandina du-gavî
@@ -1543,7 +1538,6 @@ ku:
'7889238': 3 meh
min_age_label: Şêmûga demê
min_favs: Peyamên ku ji wê zêdetir hatine ecibandin veşêre
- min_favs_hint: Şandî ku ji evqas hezkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe
min_reblogs: Şandiyên ku bêtir hatine bilindkirin veşêre
min_reblogs_hint: Şandî ku ji ji vê hejmarê bêtir bilindkirin wergirtibe nayê jêbirin. Vala bihêle da ku şandiyan jê bibî tevlî ku çiqas hezkirin wergirtibe
stream_entries:
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 28c9419591..b6dd360dbe 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -331,8 +331,6 @@ lt:
storage: Medijos sandėlis
featured_tags:
add_new: Pridėti naują
- errors:
- limit: Jūs jau naudojate maksimalų galimą saitažodžių(#) kiekį
filters:
contexts:
home: Namų laiko juosta
@@ -385,9 +383,6 @@ lt:
expires_at: Pasibaigia
uses: Naudojimai
title: Pakviesti žmones
- lists:
- errors:
- limit: Jūs pasieketė maksimalų sąrašų skaičių
media_attachments:
validations:
images_and_video: Negalima pridėti video prie statuso, kuris jau turi nuotrauką
@@ -424,10 +419,6 @@ lt:
next: Kitas
older: Senesnis
prev: Ankstesnis
- preferences:
- other: Kita
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: Jūsų paskyros nukreipimo URL nerasta
scheduled_statuses:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 31e1ba77fb..64963199cd 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -93,6 +93,7 @@ lv:
moderation:
active: Aktīvie
all: Visi
+ disabled: Atspējots
pending: Gaida
silenced: Ierobežotie
suspended: Apturētie
@@ -136,6 +137,7 @@ lv:
search: Meklēt
search_same_email_domain: Citi lietotāji ar tādu pašu e-pasta domēnu
search_same_ip: Citi lietotāji ar tādu pašu IP
+ security: Drošība
security_measures:
only_password: Tikai parole
password_and_2fa: Parole un 2FA
@@ -435,6 +437,7 @@ lv:
resolve: Atrisināt domēnu
title: Bloķēt jaunu e-pasta domēnu
no_email_domain_block_selected: Neviens e-pasta domēna bloks netika mainīts, jo neviens netika atlasīts
+ not_permitted: Nav atļauta
resolved_dns_records_hint_html: Domēna nosaukums tiek izmantots tālāk norādītajos MX domēnos, kas galu galā ir atbildīgi par e-pasta pieņemšanu. Bloķējot MX domēnu, tiks bloķēta reģistrēšanās no jebkuras e-pasta adreses, kas izmanto vienu un to pašu MX domēnu, pat ja redzamais domēna nosaukums atšķiras. Esi uzmanīgs, lai nebloķētu lielākos e-pasta pakalpojumu sniedzējus.
resolved_through_html: Atrisināts, izmantojot %{domain}
title: Bloķētie e-pasta domēni
@@ -483,6 +486,7 @@ lv:
content_policies:
comment: Iekšējā piezīme
description_html: Tu vari definēt satura politikas, kas tiks piemērotas visiem kontiem no šī domēna un jebkura tā apakšdomēna.
+ limited_federation_mode_description_html: Tu vari izvēlēties, vai atļaut federāciju ar šo domēnu.
policies:
reject_media: Noraidīt multividi
reject_reports: Noraidīt ziņojumus
@@ -597,11 +601,13 @@ lv:
assign_to_self: Piešķirt man
assigned: Piešķirtais moderators
by_target_domain: Ziņotā konta domēns
+ cancel: Atcelt
category: Kategorija
category_description_html: Iemesls kāpēc šis konts un / vai saturs tika ziņots, tiks minēts saziņā ar paziņoto kontu
comment:
none: Neviens
comment_description_html: 'Lai sniegtu vairāk informācijas, %{name} rakstīja:'
+ confirm: Apstiprināt
confirm_action: Apstipriniet regulēšanas darbību pret @%{acct}
created_at: Ziņoti
delete_and_resolve: Izdzēst rakstus
@@ -706,7 +712,7 @@ lv:
manage_settings: Pārvaldīt Iestatījumus
manage_settings_description: Ļauj lietotājiem mainīt vietnes iestatījumus
manage_taxonomies: Pārvaldīt Taksonomijas
- manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālo saturu un atjaunināt atsauces iestatījumus
+ manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālāko saturu un atjaunināt atsauces iestatījumus
manage_user_access: Pārvaldīt Lietotāju Piekļuves
manage_user_access_description: Ļauj lietotājiem atspējot citu lietotāju divu faktoru autentifikāciju, mainīt savu e-pasta adresi un atiestatīt paroli
manage_users: Pārvaldīt Lietotājus
@@ -792,7 +798,7 @@ lv:
reblogs: Reblogi
status_changed: Ziņa mainīta
title: Konta ziņas
- trending: Tendences
+ trending: Populārākie
visibility: Redzamība
with_media: Ar multividi
strikes:
@@ -806,6 +812,7 @@ lv:
suspend: "%{name} apturēja %{target} kontu"
appeal_approved: Pārsūdzēts
appeal_pending: Apelācija tiek izskatīta
+ appeal_rejected: Apelācija noraidīta
system_checks:
database_schema_check:
message_html: Notiek datubāzu migrācijas. Lūdzu, palaid tās, lai nodrošinātu, ka lietojumprogramma darbojas, kā paredzēts
@@ -842,6 +849,7 @@ lv:
zero: Pēdējās nedēļas laikā kopīgoja %{count} personas
title: Populārākās saites
usage_comparison: Šodien kopīgots %{today} reizes, salīdzinot ar %{yesterday} vakar
+ not_allowed_to_trend: Popularizešana nav atļauta
only_allowed: Tikai atļautās
pending_review: Gaida pārskatīšanu
preview_card_providers:
@@ -888,7 +896,7 @@ lv:
other: Pēdējās nedēļas laikā izmantoja %{count} personas
zero: Pēdējās nedēļas laikā izmantoja %{count} personas
title: Tendences
- trending: Tendences
+ trending: Populārākie
warning_presets:
add_new: Pievienot jaunu
delete: Dzēst
@@ -976,6 +984,7 @@ lv:
applications:
created: Lietojumprogramma ir veiksmīgi izveidota
destroyed: Lietojumprogramma ir veiksmīgi dzēsta
+ logout: Iziet
regenerate_token: Atjaunot piekļuves marķieri
token_regenerated: Piekļuves marķieris veiksmīgi atjaunots
warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem!
@@ -1012,6 +1021,8 @@ lv:
resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus
reset_password: Atiestatīt paroli
rules:
+ accept: Pieņemt
+ back: Atpakaļ
preamble: Tos iestata un ievieš %{domain} moderatori.
title: Daži pamatnoteikumi.
security: Drošība
@@ -1046,7 +1057,7 @@ lv:
close: Vai vienkārši aizver šo logu.
return: Parādīt lietotāja profilu
web: Doties uz tīmekli
- title: Seko %{acct}
+ title: Sekot %{acct}
challenge:
confirm: Turpināt
hint_html: "Padoms: Nākamās stundas laikā mēs tev vairs neprasīsim paroli."
@@ -1207,7 +1218,7 @@ lv:
hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni.
title: Filtrētās ziņas
footer:
- trending_now: Šobrīd tendences
+ trending_now: Šobrīd populārākie
generic:
all: Visi
all_items_on_page_selected_html:
@@ -1251,7 +1262,7 @@ lv:
blocking: Bloķēšanas saraksts
bookmarks: Grāmatzīmes
domain_blocking: Bloķēto domēnu saraksts
- following: Sekojamo lietotāju saraksts
+ following: Turpmākais saraksts
muting: Apklusināto lietotāju saraksts
upload: Augšupielādēt
invites:
@@ -1279,7 +1290,7 @@ lv:
title: Uzaicināt cilvēkus
lists:
errors:
- limit: Esi sasniedzis maksimālo sarakstu skaitu
+ limit: Jūs esat sasniedzis maksimālo sarakstu skaitu
login_activities:
authentication_methods:
otp: divfaktoru autentifikācijas lietotne
@@ -1605,7 +1616,7 @@ lv:
'7889238': 3 mēneši
min_age_label: Vecuma slieksnis
min_favs: Saglabāt ziņas izlsasē vismaz
- min_favs_hint: Nedzēš nevienu tavu ziņu, kas ir saņēmusi vismaz tik daudz izlases. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izlases skaita
+ min_favs_hint: Nedzēš nevienu jūsu ziņu, kas ir saņēmusi vismaz tik daudz izcēlumu. Atstājiet tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu skaita
min_reblogs: Saglabāt ziņas izceltas vismaz
min_reblogs_hint: Neizdzēš nevienu no tavām ziņām, kas ir izceltas vismaz tik reižu. Atstāj tukšu, lai dzēstu ziņas neatkarīgi no to izcēlumu skaita
stream_entries:
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 1fc856c64f..2bee9fee14 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -971,7 +971,6 @@ ms:
'63113904': 2 tahun
'7889238': 3 bulan
min_favs: Simpan hantaran digemarkan sekurang-kurangnya
- min_favs_hint: Tidak memadamkan mana-mana hantaran anda yang telah menerima sekurang-kurangnya jumlah gemaran ini. Biarkan kosong untuk memadamkan hantaran tanpa mengira nombor gemaran
stream_entries:
pinned: Hantaran disemat
sensitive_content: Kandungan sensitif
diff --git a/config/locales/my.yml b/config/locales/my.yml
index 3a86851c9e..a2aaeece03 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -1,6 +1,8 @@
---
my:
about:
+ about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။
+ hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon"
title: အကြောင်း
accounts:
follow: စောင့်ကြည့်မယ်
@@ -20,6 +22,7 @@ my:
accounts:
add_email_domain_block: ဒိုမိန်းကိုပိတ်မည်
approve: အတည်ပြုပါ
+ approved_msg: "%{username} ၏ စာရင်းသွင်းခြင်းကို အတည်ပြုပြီးပါပြီ"
are_you_sure: သေချာပါသလား။
avatar: ကိုယ်စားပြုရုပ်ပုံ
by_domain: ဒိုမိန်း
@@ -31,6 +34,7 @@ my:
submit: အီးမေးလ်ပြောင်းပါ။
title: "%{username} အတွက် အီးမေးလ်ပြောင်းပါ"
change_role:
+ changed_msg: အခန်းကဏ္ဍကို ပြောင်းလဲပြီးပါပြီ။
label: အခန်းကဏ္ဍ ပြောင်းလဲရန်
no_role: အခန်းကဏ္ဍမရှိ
title: "%{username} အတွက် အခန်းကဏ္ဍပြောင်းပါ"
@@ -65,6 +69,7 @@ my:
moderation:
active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း
all: အားလုံး
+ disabled: ပိတ်ထားသည်
pending: ဆိုင်းငံ့ထားခြင်း
silenced: ကန့်သတ်ထားသော
suspended: ရပ်ဆိုင်းထားခြင်း
@@ -73,6 +78,7 @@ my:
most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန်
most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ
no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ
perform_full_suspension: ရပ်ဆိုင်းရန်
promote: အထောက်အကူ
protocol: လုပ်ထုံးလုပ်နည်း
@@ -89,9 +95,11 @@ my:
send: အတည်ပြုထားသောအီးမေးလ် ပြန်ပို့ပေးရန်
success: အတည်ပြုထားသောအီးမေးလ် ပို့ပြီးပါပြီ။
reset: ပြန်သတ်မှတ်မည်
+ resubscribe: ပြန်လည်စာရင်းသွင်းပါ
role: အခန်းကဏ္ဍ
search: ရှာရန်
search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ
+ security: လုံခြုံရေး
security_measures:
only_password: စကားဝှက်ဖြင့်သာ
password_and_2fa: စကားဝှက်နှင့် 2FA
@@ -110,43 +118,121 @@ my:
unsubscribe: စာရင်းမှထွက်ရန်
unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ"
username: အသုံးပြုသူအမည်
+ view_domain: ဒိုမိန်းအတွက် အကျဉ်းချုပ်ကို ကြည့်ပါ
web: ဝဘ်
+ whitelisted: ဖက်ဒီကို ခွင့်ပြုခဲ့သည်
action_logs:
action_types:
+ approve_appeal: အယူခံကို အတည်ပြုပါ
approve_user: အသုံးပြုသူကို အတည်ပြုရန်
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: အခန်းကဏ္ဍဖန်တီးပါ
destroy_announcement: ကြေညာချက်ကို ဖျက်ပါ
+ destroy_canonical_email_block: အီးမေးလ်ပိတ်ပင်ခြင်းအား ဖျက်ရန်
destroy_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ဖျက်ရန်
+ destroy_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖျက်ရန်
+ destroy_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
+ destroy_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ
destroy_status: Post ကို ဖျက်ပါ
destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ
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: အသုံးပြုသူ မြှင့်တင်ရန်
+ reject_appeal: အယူခံဝင်မှုကို ငြင်းပယ်ပါ
reject_user: အသုံးပြုသူ ဖယ်ရှားရန်
remove_avatar_user: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ
+ reopen_report: အစီရင်ခံစာပြန်ဖွင့်ရန်
+ resend_user: အတည်ပြုရန် မေးလ်ကို ပြန်ပို့ပေးရန်
+ reset_password_user: စကားဝှက်ကို ပြန်လည်ရယူမည်
+ resolve_report: အစီရင်ခံစာကို ဖြေရှင်းရန်
silence_account: အကောင့် ကန့်သတ်ပါ
suspend_account: အကောင့် ရပ်ဆိုင်းပါ
+ unassigned_report: အစီရင်ခံစာ ဖြုတ်ရန်
+ unblock_email_account: အီးမေးလ်လိပ်စာ ပြန်ဖွင့်ရန်
update_announcement: ကြေညာချက်ပြင်ဆင်ရန်
update_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပြင်ဆင်ရန်
+ update_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ပြင်ဆင်ရန်
update_ip_block: IP စည်းမျဉ်း ပြင်ဆင်ရန်
update_status: ပို့စ်ပြင်ဆင်ရန်
update_user_role: အခန်းကဏ္ဍပြင်ဆင်ရန်
actions:
+ 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_user_role_html: "%{name} က %{target} အခန်းကဏ္ဍကို ဖန်တီးပြီးပါပြီ"
+ demote_user_html: "%{name} က အသုံးပြုသူ %{target} ကို ဖြုတ်ပြီးပါပြီ"
+ destroy_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ဖျက်လိုက်သည်"
+ destroy_canonical_email_block_html: ဟက်ရှ် %{target} ဖြင့် %{name} အီးမေးလ်ပိတ်သိမ်းထားခြင်းကို ဖယ်ရှားပြီးပါပြီ
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} မှ တင်ထားသောပို့စ်ကို ဖယ်ရှားခဲ့သည်"
+ 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} ကို ထောက်ခံခဲ့သည်"
+ reject_appeal_html: "%{name} က %{target} မှ အယူခံဝင်မှု ဆုံးဖြတ်ချက် စိစစ်ခြင်းကို ပယ်ချခဲ့သည်"
+ 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} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားသည်"
+ silence_account_html: "%{name} က %{target} ၏ အကောင့်ကို ကန့်သတ်ထားသည်"
+ suspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်"
+ unassigned_report_html: "%{name} က အစီရင်ခံစာ %{target} ကို ဖြုတ်ထားသည်"
+ unblock_email_account_html: "%{name} က %{target} ၏ အီးမေးလ်လိပ်စာကို ပြန်ဖွင့်ခဲ့သည်"
+ unsensitive_account_html: "%{name} က %{target} ၏ မီဒီယာကို သတိထားရသောမီဒီယာအဖြစ် အမှတ်အသားပြုထားခြင်းမရှိပါ"
+ unsuspend_account_html: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်"
+ update_announcement_html: "%{name} က ကြေညာချက် %{target} ကို ပြင်ဆင်ခဲ့သည်"
+ update_custom_emoji_html: "%{name} က အီမိုဂျီ %{target} ကို ပြင်ဆင်ခဲ့သည်"
+ update_domain_block_html: "%{name} က %{target} အတွက် ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ခဲ့သည်"
+ update_ip_block_html: "%{name} မှ IP %{target} အတွက် စည်းမျဉ်း ပြောင်းထားသည်"
+ update_status_html: "%{name} က %{target} တင်ထားသောပို့စ်ကို ပြင်ဆင်ခဲ့သည်"
+ update_user_role_html: "%{name} က %{target} အခန်းကဏ္ဍကို ပြောင်းလဲခဲ့ပါသည်"
deleted_account: အကောင့်ဖျက်ပြီးပါပြီ
empty: မှတ်တမ်းများ မတွေ့ပါ။
+ filter_by_action: လုပ်ဆောင်ချက်အလိုက် စစ်ထုတ်ရန်
+ filter_by_user: အသုံးပြုသူအလိုက် စစ်ထုတ်ရန်
+ title: မှတ်တမ်းများစစ်ဆေးခြင်း
announcements:
destroyed_msg: ကြေညာချက် ဖျက်ပြီးပါပြီ
edit:
@@ -161,6 +247,7 @@ my:
unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ
updated_msg: ကြေညာချက်ကို ပြင်ဆင်ပြီးပါပြီ။
custom_emojis:
+ assign_category: အမျိုးအစားသတ်မှတ်ရန်
by_domain: ဒိုမိန်း
copy: ကူးယူပါ
create_new_category: အမျိုးအစားအသစ်ဖန်တီးရန်
@@ -169,15 +256,20 @@ my:
destroyed_msg: အီမိုဂျီ ဖျက်ပစ်လိုက်ပါပြီ။
disable: ပိတ်ပါ
disabled: ပိတ်ပြီးပါပြီ
+ disabled_msg: ထိုအီမိုဂျီကို ပိတ်ပြီးပါပြီ
emoji: အီမိုဂျီ
enable: ဖွင့်ပါ
enabled: ဖွင့်ထားသည်
+ enabled_msg: ထိုအီမိုဂျီကို ဖွင့်ပြီးပါပြီ
image_hint: PNG သို့မဟုတ် GIF %{size} အထိ
list: စာရင်း
listed: စာရင်းသွင်းထားသည်
new:
title: စိတ်ကြိုက်အီမိုဂျီအသစ် ထည့်ပါ
+ no_emoji_selected: မည်သည့်အီမိုဂျီကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။
title: စိတ်ကြိုက်အီမိုဂျီများ
+ uncategorized: အမျိုးအစားခွဲခြားထားခြင်းမရှိပါ
unlist: စာရင်းမသွင်းထားပါ
unlisted: စာရင်းမသွင်းထားပါ
update_failed_msg: ထိုအီမိုဂျီကို ပြင်ဆင်၍မရပါ
@@ -185,21 +277,54 @@ my:
upload: တင္ရန်
dashboard:
active_users: လက်ရှိအသုံးပြုသူများ
+ interactions: အပြန်အလှန်ဆက်သွယ်မှုများ
media_storage: မီဒီယာသိုလှောင်မှု
new_users: အသုံးပြုသူအသစ်များ
+ pending_appeals_html:
+ other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း"
+ pending_users_html:
+ other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ"
+ software: ဆော့ဖ်ဝဲလ်
+ sources: အကောင့်ဖွင့်ခြင်းဆိုင်ရာ သတင်းရင်းမြစ်များ
+ space: နေရာလွတ်အသုံးပြုမှု
+ title: ဒက်ရှ်ဘုတ်မြင်ကွင်း
top_languages: လက်ရှိအသုံးများလျက်ရှိသည့် ဘာသာစကား
top_servers: လက်ရှိအသုံးများလျက်ရှိသည့် ဆာဗာများ
website: ဝဘ်ဆိုဒ်
+ disputes:
+ appeals:
+ empty: အယူခံဝင်ထားခြင်းမရှိပါ။
+ title: အယူခံဝင်ထားခြင်းများ
+ domain_allows:
+ add_new: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုရန်
+ created_msg: ဒိုမိန်းကို ဖက်ဒီအတွက် ခွင့်ပြုပြီးပါပြီ
+ export: ထုတ်ယူခြင်း
+ import: ထည့်သွင်းခြင်း
+ undo: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်မပြုပါ
domain_blocks:
+ add_new: ဒိုမိန်းပိတ်ပင်ခြင်းအသစ် ထည့်ပါ
+ created_msg: ဒိုမိန်းပိတ်ပင်ခြင်းကို ယခုလုပ်ဆောင်နေပါသည်
domain: ဒိုမိန်း
+ edit: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြင်ဆင်ရန်
+ export: ထုတ်ယူခြင်း
+ import: ထည့်သွင်းခြင်း
new:
+ create: ပိတ်ပင်ခြင်း ဖန်တီးရန်
severity:
silence: ကန့်သတ်
suspend: ရပ်ဆိုင်းပါ
+ title: ဒိုမိန်းပိတ်ပင်ထားခြင်းအသစ်
+ no_domain_block_selected: မည်သည့်ဒိုမိန်းပိတ်ပင်ထားခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ဤလုပ်ဆောင်ချက်ကို ဆောင်ရွက်ရန် သင့်ကို ခွင့်မပြုပါ။
private_comment: သီးသန့်မှတ်ချက်
+ private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။
public_comment: အများမြင်မှတ်ချက်
+ reject_media: မီဒီယာဖိုင်များကို ဖယ်ရှားပါ
+ undo: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြန်ဖျက်ရန်
+ view: ဒိုမိန်းပိတ်ပင်ခြင်းကို ကြည့်ရန်
email_domain_blocks:
add_new: အသစ် ထည့်ပါ
+ created_msg: အီးမေးလ်ဒိုမိန်းကို ပိတ်ပင်နိုင်ခဲ့ပါသည်
delete: ဖျက်ပါ
dns:
types:
@@ -207,9 +332,21 @@ my:
domain: ဒိုမိန်း
new:
create: ဒိုမိန်းထည့်ပါ
+ resolve: ဒိုမိန်းကို ဖြေရှင်းရန်
+ title: အီးမေးလ်ဒိုမိန်းအသစ်ကို ပိတ်ရန်
+ no_email_domain_block_selected: မည်သည့်အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ not_permitted: ခွင့်ပြုထားခြင်းမရှိပါ
+ resolved_through_html: "%{domain} မှတစ်ဆင့် ဖြေရှင်းခဲ့သည်"
+ title: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းများ
export_domain_allows:
no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ။
export_domain_blocks:
+ import:
+ private_comment_template: "%{date} တွင် %{source} မှ ထည့်သွင်းခဲ့သည်"
+ title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန်
+ invalid_domain_block: အောက်ပါအမှား(များ)ကြောင့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဒိုမိန်းပိတ်ပင်ထားမှုများကို ကျော်သွားခဲ့သည် - %{error}
+ new:
+ title: ဒိုမိန်းပိတ်ပင်ထားမှုများကို ထည့်သွင်းရန်
no_file: ဖိုင်ရွေးထားခြင်းမရှိပါ
follow_recommendations:
language: ဘာသာစကားအတွက်
@@ -217,8 +354,11 @@ my:
instances:
back_to_all: အားလုံး
back_to_limited: ကန့်သတ်ထားသည်
+ back_to_warning: သတိပေးချက်
+ by_domain: ဒိုမိန်း
confirm_purge: ဤဒိုမိန်းမှ အချက်အလက်များကို အပြီးတိုင်ဖျက်လိုသည်မှာ သေချာပါသလား။
content_policies:
+ limited_federation_mode_description_html: ဤဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုမလား။
policies:
reject_media: မီဒီယာဖယ်ရှားရန်
reject_reports: အစီရင်ခံစာများ ဖယ်ရှားရန်
@@ -226,9 +366,13 @@ my:
suspend: ရပ်ဆိုင်းပါ
policy: မူဝါဒ
dashboard:
+ instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ
+ instance_accounts_measure: သိမ်းဆည်းထားသော အကောင့်များ
instance_followers_measure: ကျွန်ုပ်တို့၏စောင့်ကြည့်သူများ အဲ့ဒီနေရာမှာပါ
instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ
instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
+ instance_media_attachments_measure: သိမ်းဆည်းထားသော မီဒီယာပူးတွဲဖိုင်များ
+ instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ
delivery:
all: အားလုံး
unavailable: မရရှိနိုင်ပါ
@@ -238,6 +382,11 @@ my:
title: စိစစ်ခြင်း
private_comment: သီးသန့်မှတ်ချက်
public_comment: အများမြင်မှတ်ချက်
+ title: ဖက်ဒီ
+ total_blocked_by_us: ကျွန်ုပ်တို့မှ ပိတ်ပင်ထားခြင်း
+ total_followed_by_them: "၎င်းတို့မှ စောင့်ကြည့်ခဲ့သည်"
+ total_followed_by_us: ကျွန်ုပ်တို့မှ စောင့်ကြည့်ခဲ့သည်
+ total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ"
total_storage: မီဒီယာ ပူးတွဲချက်များ
invites:
filter:
@@ -257,6 +406,7 @@ my:
'94670856': ၃ နှစ်
new:
title: IP စည်းမျဉ်းအသစ်ဖန်တီးပါ
+ no_ip_block_selected: မည်သည့် IP စည်းမျဉ်းကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
title: IP စည်းမျဉ်းများ
relationships:
title: "%{acct} နှင့် ပတ်သက်မှု"
@@ -266,37 +416,66 @@ my:
disabled: ပိတ်ထားသည်
enable: ဖွင့်ပါ
enabled: ဖွင့်ထားသည်
+ save_and_enable: သိမ်းပြီး ဖွင့်ရန်
status: အခြေအနေ
reports:
account:
notes:
other: "%{count} မှတ်စု"
+ action_log: မှတ်တမ်းများစစ်ဆေးခြင်း
are_you_sure: သေချာပါသလား။
assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန်
assigned: စိစစ်သူကို တာဝန်ပေးရန်
+ cancel: ပယ်ဖျက်မည်
category: အမျိုးအစား
+ comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -"
+ confirm: အတည်ပြုမည်
+ confirm_action: "@%{acct} ကို စိစစ်အကဲဖြတ်ခြင်းအား အတည်ပြုပါ"
delete_and_resolve: ပို့စ်များကို ဖျက်ပါ
+ forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ
+ forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်"
+ mark_as_resolved: ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ
+ mark_as_unresolved: မဖြေရှင်းရသေးကြောင်း အမှတ်အသားပြုပါ
+ no_one_assigned: တစ်ယောက်မျှမရှိပါ
notes:
create: မှတ်စုထည့်ရန်
+ create_and_resolve: မှတ်စုဖြင့် ဖြေရှင်းပါ
create_and_unresolve: မှတ်စုဖြင့် ပြန်ဖွင့်ရန်
delete: ဖျက်ပါ
title: မှတ်စုများ
+ remote_user_placeholder: "%{instance} မှ အဝေးကနေအသုံးပြုသူ"
reopen: အစီရင်ခံစာပြန်ဖွင့်ရန်
report: "#%{id} အစီရင်ခံရန်"
resolved: ဖြေရှင်းပြီးပါပြီ
+ skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန်
status: အခြေအနေ
summary:
+ action_preambles:
+ delete_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို ဖယ်ရှား တော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ -
+ mark_as_sensitive_html: သင်သည် @%{acct} ၏ ပို့စ်အချို့ကို သတိထားရသောပို့စ်များ အဖြစ် အမှတ်အသားပြုတော့မည်ဖြစ်သည်။ ၎င်းတို့မှာ -
+ silence_html: သင်သည် @%{acct} ၏ အကောင့်ကို ကန့်သတ် တော့မည်ဖြစ်သည်။ ၎င်းမှာ -
+ suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ -
actions:
suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း"
delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်"
+ unassign: တာဝန်မှဖြုတ်ရန်
+ unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action}
+ unresolved: မဖြေရှင်းရသေးပါ
updated_at: ပြင်ဆင်ပြီးပါပြီ
view_profile: ပရိုဖိုင်ကြည့်ရန်
roles:
add_new: အခန်းကဏ္ဍထည့်ပါ
+ assigned_users:
+ other: "%{count} အသုံးပြုသူ"
categories:
+ administration: စီမံခန့်ခွဲခြင်း
devops: DevOps
+ invites: ဖိတ်ခေါ်ခြင်း
moderation: စိစစ်ခြင်း
+ special: အထူး
delete: ဖျက်ပါ
+ edit: "'%{name} ၏ အခန်းကဏ္ဍကို ပြင်ဆင်ရန်"
+ everyone: မူလသတ်မှတ်ထားသည့် ခွင့်ပြုချက်များ
permissions_count:
other: "%{count} ခွင့်ပြုချက်"
privileges:
@@ -306,17 +485,31 @@ my:
invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန်
manage_announcements: ကြေညာချက်များကို စီမံပါ
manage_announcements_description: ဆာဗာပေါ်တွင် ကြေညာချက်များစီမံရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန်
+ manage_appeals: အယူခံဝင်ထားခြင်းများကို စီမံပါ
+ manage_appeals_description: စိစစ်အရေးယူမှုများအပေါ် အယူခံဝင်မှုများ ပြန်လည်သုံးသပ်ရန်အတွက် အသုံးပြုသူများအား ခွင့်ပြုရန်
+ manage_blocks: ပိတ်ပင်ထားမှုများကို စီမံပါ
+ manage_custom_emojis: စိတ်ကြိုက်အီမိုဂျီများကို ပြင်ဆင်ရန်
+ manage_custom_emojis_description: အသုံးပြုသူများအား ဆာဗာပေါ်တွင် စိတ်ကြိုက်အီမိုဂျီများကို စီမံခန့်ခွဲရန် ခွင့်ပြုသည်။
+ manage_federation: ဖက်ဒီကို စီမံပါ
+ manage_federation_description: အသုံးပြုသူများအား အခြားဒိုမိန်းများနှင့် ပိတ်ပင်ခြင်း၊ ဖက်ဒီခွင့်ပြုခြင်းနှင့် ပေးပို့နိုင်မှုကို ထိန်းချုပ်ခြင်းတို့ကို ခွင့်ပြုသည်။
+ manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန်
manage_reports: အစီရင်ခံစာများကို စီမံပါ
manage_roles: အခန်းကဏ္ဍများကို စီမံပါ
manage_rules: စည်းမျဉ်းများကို စီမံပါ
manage_settings: သတ်မှတ်ချက်များကို စီမံပါ
+ manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန်
+ manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ
manage_users: အသုံးပြုသူများကို စီမံပါ
+ view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန်
+ view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည်
view_devops: DevOps
+ title: အခန်းကဏ္ဍများ
rules:
delete: ဖျက်ပါ
title: ဆာဗာစည်းမျဉ်းများ
settings:
about:
+ manage_rules: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
title: အကြောင်း
appearance:
title: ပုံပန်းသဏ္ဌာန်
@@ -324,20 +517,31 @@ my:
profile_directory: ပရိုဖိုင်လမ်းညွှန်
domain_blocks:
all: လူတိုင်း
+ disabled: မည်သူ့ကိုမျှ
+ users: အကောင့်ဝင်ထားသော ပြည်တွင်းအသုံးပြုသူများအတွက်
+ registrations_mode:
+ modes:
+ open: မည်သူမဆို အကောင့်ဖွင့်နိုင်ပါသည်
title: ဆာဗာသတ်မှတ်ချက်များ
site_uploads:
delete: တင်ထားသောဖိုင်ဖျက်ရန်
statuses:
account: ရေးသားသူ
+ application: အက်ပလီကေးရှင်း
back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန်
deleted: ဖျက်ပြီးပါပြီ
favourites: အကြိုက်ဆုံးများ
language: ဘာသာစကား
media:
title: မီဒီယာ
+ open: ပို့စ်ဖွင့်ရန်
original_status: မူရင်းပို့စ်
title: အကောင့်ပို့စ်များ
with_media: မီဒီယာနှင့်အတူ
+ strikes:
+ actions:
+ delete_statuses: "%{name} မှ %{target} ၏ ပို့စ်များကို ဖျက်ခဲ့သည်"
+ none: "%{name} မှ %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်"
system_checks:
rules_check:
action: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
@@ -345,10 +549,14 @@ my:
allow: ခွင့်ပြု
approved: အတည်ပြုပြီးပါပြီ
disallow: ခွင့်မပြု
+ links:
+ allow: လင့်ခ်ကို ခွင့်ပြုရန်
+ disallow: လင့်ခ်ကို ခွင့်မပြုရန်
rejected: ဖယ်ရှားပြီးပါပြီ
statuses:
allow: ပို့စ်တင်ခွင့်ပြုရန်
disallow: ပို့စ်ကို တင်ခွင့်မပြုရန်
+ title: လက်ရှိခေတ်စားနေသော ပို့စ်များ
tags:
dashboard:
tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
@@ -358,6 +566,8 @@ my:
listable: အကြံပြုနိုင်ပါသည်
not_usable: အသုံးမပြုနိုင်ပါ
usable: အသုံးပြုနိုင်သည်
+ title: လက်ရှိခေတ်စားမှုများ
+ trending: လက်ရှိခေတ်စားနေခြင်း
warning_presets:
add_new: အသစ်ထည့်ပါ
delete: ဖျက်ပါ
@@ -369,6 +579,10 @@ my:
enabled: လက်ရှိ
events: ပွဲအစီအစဉ်များ
status: အခြေအနေ
+ admin_mailer:
+ new_appeal:
+ actions:
+ none: သတိပေးချက်
appearance:
localization:
guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။
@@ -396,6 +610,8 @@ my:
registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ"
security: လုံခြုံရေး
set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။
+ sign_in:
+ title: "%{domain} သို့ အကောင့်ဝင်ရန်"
status:
account_status: အကောင့်အခြေအနေ
authorize_follow:
@@ -409,6 +625,7 @@ my:
challenge:
confirm: ဆက်လုပ်မည်
invalid_password: စကားဝှက် မမှန်ပါ
+ prompt: ဆက်လက်လုပ်ဆောင်ရန်အတွက် စကားဝှက်အတည်ပြုပါ
date:
formats:
default: "%b %d, %Y"
@@ -432,6 +649,8 @@ my:
success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ
disputes:
strikes:
+ appeals:
+ submit: အယူခံဝင်ခွင့်ပြုရန်
status: "#%{id} ပို့စ်"
title: "%{date} မှ %{action}"
title_actions:
@@ -442,14 +661,20 @@ my:
'404': The page you are looking for isn't here.
'406': This page is not available in the requested format.
'410': The page you were looking for doesn't exist here anymore.
- '429': Too many requests
+ '422':
+ content: လုံခြုံရေး အတည်ပြုခြင်း မအောင်မြင်ပါ။ သင်သည် ကွတ်ကီးများကို ပိတ်ပင်ထားပါသလား။
+ '429': တောင်းဆိုမှု များနေပါသည်
+ '500':
+ title: ဤစာမျက်နှာမှာ မမှန်ကန်ပါ
'503': The page could not be served due to a temporary server failure.
exports:
archive_takeout:
date: ရက်စွဲ
+ download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ
size: အရွယ်အစား
blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း
csv: CSV
+ domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ
lists: စာရင်းများ
storage: မီဒီယာသိုလှောင်မှု
featured_tags:
@@ -470,11 +695,23 @@ my:
statuses:
other: "%{count} ပို့စ်"
title: စစ်ထုတ်ခြင်းများ
+ new:
+ save: စစ်ထုတ်မှုအသစ် သိမ်းပါ
+ title: စစ်ထုတ်မှုအသစ် ထည့်ပါ
+ statuses:
+ index:
+ title: စစ်ထုတ်ထားသော ပို့စ်များ
generic:
all: အားလုံး
copy: ကူးယူပါ
delete: ဖျက်ပါ
today: ယနေ့
+ imports:
+ preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။
+ types:
+ blocking: ပိတ်ပင်ထားသည့်စာရင်း
+ domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း
+ upload: တင္ရန်
invites:
expires_in:
'1800': ၃၀ မိနစ်
@@ -501,9 +738,15 @@ my:
redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည်
notification_mailer:
follow:
+ body: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
+ subject: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
title: စောင့်ကြည့်သူအသစ်
+ follow_request:
+ action: စောင့်ကြည့်ရန်တောင်းဆိုမှုများကို ပြင်ဆင်ရန်
+ title: စောင့်ကြည့်ခွင့်ပြုရန် တောင်းဆိုမှုအသစ်
mention:
action: စာပြန်ရန်
+ body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်-
subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်
status:
subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ"
@@ -607,6 +850,7 @@ my:
two_factor_authentication:
add: ထည့်ရန်
disable: 2FA ကို ပိတ်ပါ
+ disabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ပြီးပါပြီ
edit: ပြင်ဆင်ရန်
enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည်
enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ
@@ -614,18 +858,33 @@ my:
user_mailer:
appeal_approved:
action: သင့်အကောင့်သို့ သွားပါ
+ appeal_rejected:
+ title: အယူခံကို ပယ်ချခဲ့သည်
suspicious_sign_in:
change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ
warning:
+ appeal: အယူခံတင်သွင်းပါ
explanation:
disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။
suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။
reason: အကြောင်းပြချက် -
subject:
+ delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ"
none: "%{acct} အတွက် သတိပေးချက်"
+ silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည်
+ title:
+ delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည်
+ none: သတိပေးချက်
+ suspend: အကောင့်ရပ်ဆိုင်းထားသည်
welcome:
edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန်
edit_profile_step: ပရိုဖိုင်ဓာတ်ပုံတစ်ပုံ တင်ခြင်း၊ ဖော်ပြမည့်အမည် ပြောင်းလဲခြင်းနှင့် အခြားအရာများပြုလုပ်ခြင်းတို့ဖြင့် သင့်ပရိုဖိုင်ကို စိတ်ကြိုက်ပြင်ဆင်နိုင်ပါသည်။ စောင့်ကြည့်သူအသစ်များ သင့်ကိုစောင့်ကြည့်ခွင့်မပြုမီ ပြန်လည်သုံးသပ်ရန်အတွက် ဆုံးဖြတ်နိုင်ပါသည်။
+ explanation: ဤသည်မှာ သင် စတင်အသုံးပြုနိုင်ရန်အတွက် အကြံပြုချက်အချို့ဖြစ်ပါသည်
+ final_action: ပို့စ် တင်ရန်
+ subject: Mastodon မှ လှိုက်လှဲစွာကြိုဆိုပါသည်။
+ users:
+ follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ
+ invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
webauthn_credentials:
delete: ဖျက်ရန်
registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်"
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index d49a9b684d..b7a69b830e 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -91,6 +91,7 @@ nl:
moderation:
active: Actief
all: Alles
+ disabled: Uitgeschakeld
pending: In afwachting
silenced: Beperkt
suspended: Opgeschort
@@ -133,6 +134,7 @@ nl:
search: Zoeken
search_same_email_domain: Andere gebruikers met hetzelfde e-maildomein
search_same_ip: Andere gebruikers met hetzelfde IP-adres
+ security: Beveiliging
security_measures:
only_password: Alleen wachtwoord
password_and_2fa: Wachtwoord en tweestapsverificatie
@@ -427,6 +429,7 @@ nl:
resolve: Domein opzoeken
title: Nieuw e-maildomein blokkeren
no_email_domain_block_selected: Er werden geen e-maildomeinblokkades gewijzigd, omdat er geen enkele werd geselecteerd
+ not_permitted: Niet toegestaan
resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert.
resolved_through_html: Geblokkeerd via %{domain}
title: Geblokkeerde e-maildomeinen
@@ -473,6 +476,7 @@ nl:
content_policies:
comment: Interne reden
description_html: Je kunt het beleid bepalen dat op de accounts van dit domein en alle subdomeinen van toepassing is.
+ limited_federation_mode_description_html: Je kunt kiezen of je federatie met dit domein wilt toestaan.
policies:
reject_media: Mediabestanden weigeren
reject_reports: Rapportages weigeren
@@ -585,11 +589,13 @@ nl:
assign_to_self: Aan mij toewijzen
assigned: Toegewezen moderator
by_target_domain: Domein van gerapporteerde account
+ cancel: Annuleren
category: Category
category_description_html: De reden waarom dit account en/of inhoud werd gerapporteerd wordt aan het gerapporteerde account medegedeeld
comment:
none: Geen
comment_description_html: 'Om meer informatie te verstrekken, schreef %{name}:'
+ confirm: Bevestigen
confirm_action: Bevestig moderatiemaatregel tegen @%{acct}
created_at: Gerapporteerd op
delete_and_resolve: Bericht verwijderen
@@ -792,6 +798,7 @@ nl:
suspend: "%{name} schortte het account %{target} op"
appeal_approved: Bezwaar ingediend
appeal_pending: Bezwaar in behandeling
+ appeal_rejected: Bezwaar afgewezen
system_checks:
database_schema_check:
message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort
@@ -827,6 +834,7 @@ nl:
other: Deze week door %{count} mensen gedeeld
title: Trending links
usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren
+ not_allowed_to_trend: Trending worden niet toegestaan
only_allowed: Alleen goedgekeurde
pending_review: In afwachting van beoordeling
preview_card_providers:
@@ -958,6 +966,7 @@ nl:
applications:
created: Aanmaken toepassing geslaagd
destroyed: Verwijderen toepassing geslaagd
+ logout: Uitloggen
regenerate_token: Toegangscode opnieuw aanmaken
token_regenerated: Opnieuw aanmaken toegangscode geslaagd
warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders!
@@ -994,6 +1003,8 @@ nl:
resend_confirmation: Verstuur de bevestigingsinstructies nogmaals
reset_password: Wachtwoord opnieuw instellen
rules:
+ accept: Accepteren
+ back: Terug
preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}.
title: Enkele basisregels.
security: Beveiliging
@@ -1141,7 +1152,7 @@ nl:
featured_tags:
add_new: Nieuwe toevoegen
errors:
- limit: Je hebt al het maximaal aantal hashtags uitgelicht
+ limit: Je hebt al het maximale aantal hashtags uitgelicht
hint_html: "Wat zijn uitgelichte hashtags? Deze worden prominent op jouw openbare profiel getoond en stelt mensen in staat om jouw openbare berichten per hashtag te bekijken. Het zijn een goed hulpmiddel om creatieve werkzaamheden of langetermijnprojecten bij te houden."
filters:
contexts:
@@ -1253,7 +1264,7 @@ nl:
title: Mensen uitnodigen
lists:
errors:
- limit: Je hebt het maximaal aantal lijsten bereikt
+ limit: Je hebt het maximum aantal lijsten bereikt
login_activities:
authentication_methods:
otp: tweestapsverificatie-app
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index c7797627f0..5ecc6d35f7 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1098,8 +1098,6 @@ nn:
storage: Medielagring
featured_tags:
add_new: Legg til ny
- errors:
- limit: Du har allereie så mange emneknaggar som det går an å ha
hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter."
filters:
contexts:
@@ -1207,9 +1205,6 @@ nn:
expires_at: Vert ugyldig
uses: Bruk
title: By folk inn
- lists:
- errors:
- limit: Du har nådd grensa for kor mange lister du kan ha
login_activities:
authentication_methods:
otp: to-faktor autentiseringsapp
@@ -1523,7 +1518,6 @@ nn:
'7889238': 3 månader
min_age_label: Aldersterskel
min_favs: Behold innlegg som er favorittmarkert av minst
- min_favs_hint: Sletter ingen av dine innlegg som har mottatt minst dette antalet favorittmerkingar. Lat vere blank for å slette innlegg uavhengig av antal favorittmerkingar
min_reblogs: Behold innlegg fremhevet av minst
min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger
stream_entries:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 7b6560547c..b8abdc6cac 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -91,6 +91,7 @@
moderation:
active: Aktive
all: Alle
+ disabled: Deaktivert
pending: Avventer
silenced: Begrenset
suspended: Utvist
@@ -133,6 +134,7 @@
search: Søk
search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukere med den samme IP-en
+ security: Sikkerhet
security_measures:
only_password: Bare passord
password_and_2fa: Passord og 2FA
@@ -427,6 +429,7 @@
resolve: Løs domene
title: Ny blokkeringsoppføring av e-postdomene
no_email_domain_block_selected: Ingen e-postdomeneblokker ble endret da ingen ble valgt
+ not_permitted: Ikke tillatt
resolved_dns_records_hint_html: Domenenavnet løser seg til følgende MX-domener som er til slutt ansvarlige for å motta e-post. Blokkering av et MX-domene vil blokkere signaler fra en hvilken som helst e-postadresse som bruker samme MX-domene, selv om det synlige domenenavnet er annerledes. Vær forsiktig så du ikke blokkerer store e-posttilbydere.
resolved_through_html: Løst gjennom %{domain}
title: Blokkering av e-postdomene
@@ -441,6 +444,7 @@
private_comment_description_html: 'For å hjelpe deg med å holde oversikt over hvor importerte blokkeringer kommer fra, vil de bli opprettet med følgende private kommentar: %{comment}'
private_comment_template: Importert fra %{source} den %{date}
title: Importer domeneblokkeringer
+ invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}'
new:
title: Importer domeneblokkeringer
no_file: Ingen fil valgt
@@ -575,17 +579,23 @@
mark_as_sensitive_description_html: Mediene i de rapporterte innleggene vil bli merket som følsomme, og en advarsel vil bli notert for å hjelpe deg eskalere ved fremtidige overtredelser fra samme konto.
other_description_html: Se flere alternativer for å kontrollere kontoens atferd og tilpasse kommunikasjonen til den oppgitte kontoen.
resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes.
+ silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. Lukker alle rapporter mot denne kontoen.
+ suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen.
actions_description_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dersom du tar noen entydige tiltak mot den oppgitte kontoen, blir det sendt en e-post til dem, unntatt når Søppelpost -kategorien er valgt.
+ actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet.
add_to_report: Legg til mer i rapporten
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilegnet moderator
by_target_domain: Domenet av rapportert bruker
+ cancel: Avbryt
category: Kategori
category_description_html: Årsaken til at denne kontoen og/eller innholdet er blitt rapportert vil bli henvist i forbindelse med den rapporterte kontoen
comment:
none: Ingen
comment_description_html: 'For å gi mer informasjon, %{name} skrev:'
+ confirm: Bekreft
+ confirm_action: Bekreft moderasjonshandling mot @%{acct}
created_at: Rapportert
delete_and_resolve: Slettede innlegg
forwarded: Videresendt
@@ -602,6 +612,7 @@
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
title: Notater
notes_description_html: Se og skriv notater til andre moderatorer og deg selv i fremtiden
+ processed_msg: 'Rapport #%{id} er behandlet'
quick_actions_description_html: 'Ta en rask handling eller bla ned for å se rapportert innhold:'
remote_user_placeholder: ekstern bruker fra %{instance}
reopen: Gjenåpne rapporten
@@ -614,6 +625,12 @@
status: Status
statuses: Rapportert innhold
statuses_description_html: Innholdet som tilbys, vil bli nevnt i forbindelse med den rapporterte kontoen
+ summary:
+ action_preambles:
+ delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:'
+ mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:'
+ silence_html: 'Du er i ferd med å avgrense@%{acct} sin konto. Dette vil:'
+ suspend_html: 'Du er i ferd med å stoppe@%{acct} sin konto. Dette vil:'
target_origin: Opprinnelse for innrapportert konto
title: Rapporter
unassign: Fjern tilegning
@@ -1075,8 +1092,6 @@
storage: Medialagring
featured_tags:
add_new: Legg til ny
- errors:
- limit: Du har allerede fremhevet det maksimale antal hashtags
hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter."
filters:
contexts:
@@ -1182,9 +1197,6 @@
expires_at: Utløper
uses: Bruk
title: Inviter personer
- lists:
- errors:
- limit: Du har nådd det maksimale antall lister
login_activities:
authentication_methods:
otp: to-faktor autentiseringsapp
@@ -1501,7 +1513,6 @@
'7889238': 3 måneder
min_age_label: Terskel for alder
min_favs: Behold innlegg som er favorittmarkert av minst
- min_favs_hint: Sletter ikke noen av dine innlegg som har mottatt minst dette antall favorittmarkeringer. La stå tom for å slette innlegg uavhengig av antall favorittmarkeringer
min_reblogs: Behold innlegg fremhevet av minst
min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger
stream_entries:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 7af4a339da..fb185f7c05 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -600,8 +600,6 @@ oc:
storage: Mèdias gardats
featured_tags:
add_new: Ajustar una etiqueta nòva
- errors:
- limit: Avètz ja utilizat lo maximum d’etiquetas
filters:
contexts:
account: Perfils
@@ -681,9 +679,6 @@ oc:
expires_at: Expirats
uses: Usatges
title: Convidar de monde
- lists:
- errors:
- limit: Avètz atengut lo maximum de listas
login_activities:
authentication_methods:
password: senhal
@@ -947,7 +942,6 @@ oc:
'7889238': 3 meses
min_age_label: Sulhet d’ancianetat
min_favs: Gardar al mens las publicacion en favorit
- min_favs_hint: Suprimís pas las publicacions qu’an recebut al mens aquesta quantitat de favorits. Daissar blanc per suprimir las publicacion quina quantitat de favorits qu’ajan
min_reblogs: Gardar las publicacions partejadas al mens
min_reblogs_hint: Suprimís pas vòstras publicacions qu’an agut aqueste nombre de partiment. Daissar blanc per suprimir las publicacions sens far cas als partiments
stream_entries:
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index f2c1ccdae2..8a30f8e967 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -95,6 +95,7 @@ pl:
moderation:
active: Aktywne
all: Wszystkie
+ disabled: Wyłączone
pending: Oczekujące
silenced: Ograniczone
suspended: Zawieszone
@@ -139,6 +140,7 @@ pl:
search: Szukaj
search_same_email_domain: Inni użytkownicy z tym samym e-mail w tej domenie
search_same_ip: Inni użytkownicy z tym samym IP
+ security: Bezpieczeństwo
security_measures:
only_password: Tylko hasło
password_and_2fa: Hasło i 2FA
@@ -443,6 +445,7 @@ pl:
resolve: Rozwiąż domenę
title: Nowa blokada domeny e-mail
no_email_domain_block_selected: Żadne blokady domeny e-mail nie zostały zmienione, ponieważ żadne z nich nie zostały wybrane
+ not_permitted: Brak uprawnień
resolved_dns_records_hint_html: Nazwa domeny rozwiązuje się do następujących domen MX, które są ostatecznie odpowiedzialne za przyjmowanie wiadomości e-mail. Blokowanie domeny MX spowoduje zablokowanie rejestracji z dowolnego adresu e-mail, który używa tej samej domeny MX, nawet jeśli widoczna nazwa domeny jest inna. Uważaj, aby nie blokować głównych dostawców poczty elektronicznej.
resolved_through_html: Rozwiązano przez %{domain}
title: Blokowanie domen e-mail
@@ -493,6 +496,7 @@ pl:
content_policies:
comment: Wewnętrzna notatka
description_html: Możesz zdefiniować zasady treści, które zostaną zastosowane do wszystkich kont z tej domeny i jej subdomen.
+ limited_federation_mode_description_html: Możesz wybrać, czy zezwolić na federację z tą domeną.
policies:
reject_media: Odrzucaj media
reject_reports: Odrzucaj zgłoszenia
@@ -609,11 +613,13 @@ pl:
assign_to_self: Przypisz do siebie
assigned: Przypisany moderator
by_target_domain: Domena zgłaszanego konta
+ cancel: Anuluj
category: Kategoria
category_description_html: Powód, dla którego to konto i/lub zawartość zostały zgłoszone, będzie cytowany w komunikacji ze zgłoszonym kontem
comment:
none: Brak
comment_description_html: 'Aby dostarczyć więcej informacji, %{name} napisał:'
+ confirm: Potwierdź
confirm_action: Potwierdzenie działań moderacyjnych wobec @%{acct}
created_at: Zgłoszono
delete_and_resolve: Usuń posty
@@ -820,6 +826,7 @@ pl:
suspend: "%{name} zawiesił(-a) konto %{target}"
appeal_approved: Odwołanie
appeal_pending: Odwołanie w toku
+ appeal_rejected: Odwołanie odrzucone
system_checks:
database_schema_check:
message_html: Istnieją oczekujące migracje bazy danych. Uruchom je, aby upewnić się, że aplikacja działa tak, jak powinna
@@ -857,6 +864,7 @@ pl:
other: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia
title: Popularne linki
usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
+ not_allowed_to_trend: Wyłączona widoczność w popularnych
only_allowed: Tylko dozwolone
pending_review: Oczekuje na przegląd
preview_card_providers:
@@ -994,6 +1002,7 @@ pl:
applications:
created: Pomyślnie utworzono aplikację
destroyed: Pomyślnie usunięto aplikację
+ logout: Wyloguj się
regenerate_token: Wygeneruj nowy token dostępu
token_regenerated: Pomyślnie wygenerowano nowy token dostępu
warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu!
@@ -1030,6 +1039,8 @@ pl:
resend_confirmation: Ponownie prześlij instrukcje weryfikacji
reset_password: Zresetuj hasło
rules:
+ accept: Zaakceptuj
+ back: Wróć
preamble: Są one ustawione i wymuszone przez moderatorów %{domain}.
title: Kilka podstawowych zasad.
security: Bezpieczeństwo
@@ -1177,7 +1188,7 @@ pl:
featured_tags:
add_new: Dodaj nowy
errors:
- limit: Już przekroczyłeś(-aś) maksymalną liczbę wyróżnionych hashtagów
+ limit: Przekroczono maksymalną liczbę hasztagów
hint_html: "Czym są wyróżnione hashtagi? Są one na stałe wyświetlane na Twoim profilu i pozwalają innym na przeglądanie Twoich wpisów używających tych hashtagów. Są doskonałym narzędziem do śledzenia kreatywnej twórczości czy długoterminowych projektów."
filters:
contexts:
@@ -1305,7 +1316,7 @@ pl:
title: Zaproś użytkowników
lists:
errors:
- limit: Przekroczyłeś maksymalną liczbę utworzonych list
+ limit: Przekroczono maksymalną liczbę utworzonych list
login_activities:
authentication_methods:
otp: aplikacja weryfikacji dwuetapowej
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index cbd35cd298..dcbaa027df 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1128,8 +1128,6 @@ pt-BR:
storage: Armazenamento de mídia
featured_tags:
add_new: Adicionar hashtag
- errors:
- limit: Você atingiu o limite de hashtags em destaque
hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo."
filters:
contexts:
@@ -1239,9 +1237,6 @@ pt-BR:
expires_at: Expira em
uses: Usos
title: Convidar pessoas
- lists:
- errors:
- limit: Você atingiu o máximo de listas
login_activities:
authentication_methods:
otp: autenticação de dois fatores
@@ -1561,7 +1556,6 @@ pt-BR:
'7889238': 3 meses
min_age_label: Validade
min_favs: Manter publicações favoritadas por ao menos
- min_favs_hint: Não exclui publicações que receberam pelo menos esta quantidade de favoritos. Deixe em branco para excluir publicações independentemente da quantidade de favoritos
min_reblogs: Manter publicações impulsionadas por ao menos
min_reblogs_hint: Não exclui publicações que receberam pelo menos esta quantidade de impulsos. Deixe em branco para excluir publicações independentemente da quantidade de impulsos
stream_entries:
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index fb296988f6..de920c3550 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -91,6 +91,7 @@ pt-PT:
moderation:
active: Activo
all: Todos
+ disabled: Desativado
pending: Pendente
silenced: Limitadas
suspended: Supensos
@@ -133,6 +134,7 @@ pt-PT:
search: Pesquisar
search_same_email_domain: Outros utilizadores com o mesmo domínio de correio electrónico
search_same_ip: Outros utilizadores com o mesmo IP
+ security: Segurança
security_measures:
only_password: Apenas palavra-passe
password_and_2fa: Palavra-passe e 2FA
@@ -427,6 +429,7 @@ pt-PT:
resolve: Domínio de resolução
title: Novo bloqueio de domínio de e-mail
no_email_domain_block_selected: Nenhum bloqueio de domínio de e-mail foi alterado pois nenhum foi selecionado
+ not_permitted: Não permitido
resolved_dns_records_hint_html: O nome de domínio resolve para os seguintes domínios MX, que são, em última análise, responsáveis por aceitar o e-mail. Bloquear um domínio MX irá bloquear as inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo quando o nome de domínio visível é diferente. Cuidado para não bloquear os principais provedores de e-mail.
resolved_through_html: Resolvido através de %{domain}
title: Domínios de e-mail bloqueados
@@ -473,6 +476,7 @@ pt-PT:
content_policies:
comment: Nota interna
description_html: Pode definir políticas de conteúdo que serão aplicadas a todas as contas deste domínio e a qualquer um dos seus subdomínios.
+ limited_federation_mode_description_html: Pode escolher se deseja permitir a federação com este domínio.
policies:
reject_media: Rejeitar media
reject_reports: Rejeitar denúncias
@@ -585,11 +589,13 @@ pt-PT:
assign_to_self: Atribuída a mim
assigned: Atribuída ao moderador
by_target_domain: Domínio da conta denunciada
+ cancel: Cancelar
category: Categorização
category_description_html: A razão pela qual esta conta e/ou conteúdo foi denunciado será citada na comunicação com a conta denunciada
comment:
none: Nenhum
comment_description_html: 'Para fornecer mais informações, %{name} escreveu:'
+ confirm: Confirmar
confirm_action: Confirmar a ação de moderação contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicações
@@ -792,6 +798,7 @@ pt-PT:
suspend: "%{name} suspendeu a conta de %{target}"
appeal_approved: Recorrido
appeal_pending: Recurso pendente
+ appeal_rejected: Recurso rejeitado
system_checks:
database_schema_check:
message_html: Há migrações de base de dados pendentes. Queira executá-las, para garantir que a aplicação se comporta como o esperado
@@ -827,6 +834,7 @@ pt-PT:
other: Partilhado por %{count} pessoas na última semana
title: Ligações em alta
usage_comparison: Partilhado %{today} vezes hoje, em comparação com %{yesterday} ontem
+ not_allowed_to_trend: Não permitido para tendência
only_allowed: Apenas permitidos
pending_review: Pendente de revisão
preview_card_providers:
@@ -958,6 +966,7 @@ pt-PT:
applications:
created: Aplicação correctamente criada
destroyed: Aplicação correctamente eliminada
+ logout: Sair
regenerate_token: Regenerar token de acesso
token_regenerated: Token de acesso regenerado com sucesso
warning: Cuidado com estes dados. Não partilhar com ninguém!
@@ -994,6 +1003,8 @@ pt-PT:
resend_confirmation: Reenviar instruções de confirmação
reset_password: Criar nova palavra-passe
rules:
+ accept: Aceitar
+ back: Retroceder
preamble: Estas são definidas e aplicadas pelos moderadores de %{domain}.
title: Algumas regras básicas.
security: Alterar palavra-passe
@@ -1140,8 +1151,6 @@ pt-PT:
storage: Armazenamento de media
featured_tags:
add_new: Adicionar nova
- errors:
- limit: Já atingiste o limite máximo de etiquetas
hint_html: "O que são etiquetas em destaque? Exibidas de forma bem visível no seu perfil público, permitem que as pessoas consultem as suas publicações públicas especificamente sob essas etiquetas. São uma óptima ferramenta para dar seguimento a trabalhos criativos ou projectos de longo prazo."
filters:
contexts:
@@ -1251,9 +1260,6 @@ pt-PT:
expires_at: Expira
uses: Usos
title: Convidar pessoas
- lists:
- errors:
- limit: Número máximo de listas alcançado
login_activities:
authentication_methods:
otp: aplicação de autenticação em duas etapas
@@ -1573,7 +1579,6 @@ pt-PT:
'7889238': 3 meses
min_age_label: Limite de idade
min_favs: Manter pelo menos as publicações dos marcadores
- min_favs_hint: Não apaga nenhuma das suas publicações que tenha recebido mais do que esta quantidade de favoritos. Deixe em branco para apagar as publicações, independentemente do número de favoritos
min_reblogs: Manter as publicações reforçadas mais de
min_reblogs_hint: Não apaga nenhuma das suas publicações que tenha sido partilhada mais do que este número de vezes. Deixe em branco para apagar as publicações, independentemente do número de partilhas
stream_entries:
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index 48cf790b77..f842988a23 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -576,9 +576,6 @@ ro:
expires_at: Expiră
uses: Utilizări
title: Invită persoane
- lists:
- errors:
- limit: Ați atins valoarea maximă a listelor
media_attachments:
validations:
images_and_video: Nu se poate atașa un videoclip la o stare care conține deja imagini
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index b5fec6cfa7..983dfb4245 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -354,10 +354,10 @@ ru:
new_users: новые пользователи
opened_reports: жалоб открыто
pending_appeals_html:
- few: "%{count} аппеляции в ожидании"
- many: "%{count} апелляций в ожидании"
+ few: "%{count} ожидают аппеляции"
+ many: "%{count} ожидают апелляции"
one: "%{count} ожидает апелляции"
- other: "%{count} апелляций в ожидании"
+ other: 'Ожидают апелляции: %{count}'
pending_reports_html:
few: "%{count} ожидающих отчета"
many: "%{count} ожидающих отчетов"
@@ -457,6 +457,7 @@ ru:
private_comment_description_html: 'Чтобы помочь вам отслеживать откуда импортируются блокировка, импортированные блокировки будут созданы со следующим приватным комментарием: %{comment}'
private_comment_template: Импортировано из %{source} %{date}
title: Импорт доменных блокировок
+ invalid_domain_block: 'Один или несколько доменных блокировок были пропущены из-за следующих ошибок: %{error}'
new:
title: Импорт доменных блокировок
no_file: Файл не выбран
@@ -599,7 +600,10 @@ ru:
mark_as_sensitive_description_html: Весь медиаконтент в обжалованных сообщениях будет отмечен как чувствительный, а претензия - записана, чтобы помочь вам в решении конфликтов при повторных нарушениях со стороны того же аккаунта.
other_description_html: Посмотрите больше настроек для контроля поведения учётной записи и наладьте связь с аккаунтом с жалобой.
resolve_description_html: Никаких действий не будет выполнено относительно доложенного содержимого. Жалоба будет закрыта.
+ silence_description_html: Учетная запись будет видна только тем пользователям, которые уже подписаны на неё, либо открыли его вручную. Это действие можно отменить в любой момент, и отменяет все жалобы против аккаунта.
+ suspend_description_html: Аккаунт и все его содержимое будут недоступны и в конечном итоге удалены, и взаимодействие с ним будет невозможно. Это действие можно отменить в течение 30 дней. Отменяет все жалобы против этого аккаунта.
actions_description_html: Выберите действие, чтобы решить данную жалобу. Если вы выберите наказание против аккаунта, вы получите уведомление по E-Mail, проверяйте папку Спам.
+ actions_description_remote_html: Решите вопрос о том, какие меры необходимо принять для урегулирования этой жалобы. Это повлияет только на то, как ваш сервер взаимодействует с этим удаленным аккаунтом и обрабатывает его содержимое.
add_to_report: Прикрепить ещё
are_you_sure: Вы уверены?
assign_to_self: Назначить себе
@@ -639,13 +643,19 @@ ru:
statuses: Содержимое относящееся к жалобе
statuses_description_html: Нарушающее правила содержимое будет процитировано при коммуникации с фигурирующим в жалобе аккаунтом
summary:
+ action_preambles:
+ suspend_html: 'Вы собираетесь заморозить учетную запись @%{acct}. В результате этого:'
+ actions:
+ delete_html: Удалить оскорбительные сообщения
close_report: 'Отметить жалобу #%{id} как решённую'
close_reports_html: Отметить все жалобы на @%{acct} как разрешённые
delete_data_html: Удалить профиль и контент @%{acct} через 30 дней, если за это время они не будут разблокированы
preview_preamble_html: "@%{acct} получит предупреждение со следующим содержанием:"
+ send_email_html: Отправить @%{acct} предупреждение на почту
target_origin: Происхождение объекта жалобы
title: Жалобы
unassign: Снять назначение
+ unknown_action_msg: 'Неизвестное действие: %{action}'
unresolved: Нерешённые
updated_at: Обновлена
view_profile: Открыть профиль
@@ -745,6 +755,7 @@ ru:
profile_directory: Каталог профилей
public_timelines: Публичные ленты
publish_discovered_servers: Публикация списка обнаруженных узлов
+ publish_statistics: Опубликовать стаитстику
title: Обзор
trends: Популярное
domain_blocks:
@@ -941,6 +952,7 @@ ru:
title: Популярные посты
new_trending_tags:
no_approved_tags: На данный момент популярные подтвержденные хэштеги отсутствуют.
+ requirements: 'Каждый из этих кандидатов может превысить #%{rank} одобренных популярных хештегов. Сейчас это #%{lowest_tag_name} с числом %{lowest_tag_score}.'
title: Популярные хэштеги
subject: Новые тренды для проверки на %{instance}
aliases:
@@ -979,6 +991,8 @@ ru:
auth:
apply_for_account: Запросить аккаунт
change_password: Пароль
+ confirmations:
+ wrong_email_hint: Если этот адрес электронной почты неверен, вы можете изменить его в настройках аккаунта.
delete_account: Удалить учётную запись
delete_account_html: Удалить свою учётную запись можно в два счёта здесь, но прежде у вас будет спрошено подтверждение.
description:
@@ -1152,8 +1166,6 @@ ru:
storage: Ваши файлы
featured_tags:
add_new: Добавить
- errors:
- limit: Вы уже добавили максимальное число хэштегов
hint_html: "Избранные хэштеги отображаются в вашем профиле и позволяют людям быстро найти посты, отмеченные ими. Это отличный инструмент для отслеживания долгосрочных проектов и творческих работ."
filters:
contexts:
@@ -1279,9 +1291,6 @@ ru:
expires_at: Истекает
uses: Исп.
title: Пригласить людей
- lists:
- errors:
- limit: Вы достигли максимального числа списков
login_activities:
authentication_methods:
otp: приложение двухфакторной аутентификации
@@ -1613,7 +1622,6 @@ ru:
'7889238': 3 месяца
min_age_label: Возрастной порог
min_favs: Порог отметок «избранного»
- min_favs_hint: Не удаляет ваши посты, у которых количество отметок «избранного» достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества отметок.
min_reblogs: Порог продвижений
min_reblogs_hint: Не удаляет ваши посты, количество продвижений которых достигло указанного выше значения. Оставьте поле пустым, чтобы удалять посты независимо от количества продвижений.
stream_entries:
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 3c6149be16..b23b1a02b1 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -640,8 +640,6 @@ sc:
storage: Immagasinamentu
featured_tags:
add_new: Agiunghe noa
- errors:
- limit: As giai evidentziadu sa cantidade màssima de etichetas
hint_html: "Ite sunt is etichetas in evidèntzia? Sunt ammustradas in evidèntzia in su profilu pùblicu tuo e permitint a sa gente de navigare is messàgios pùblicos tuos in cussas etichetas ispetzìficas. Sunt unu traste perfetu pro tènnere unu registru de òperas creativas o progetos longos."
filters:
contexts:
@@ -713,9 +711,6 @@ sc:
expires_at: Iscadit
uses: Impreos
title: Invita gente
- lists:
- errors:
- limit: Cantidade màssima de listas cròmpida
media_attachments:
validations:
images_and_video: Non si podet allegare unu vìdeu in una publicatzione chi cuntenet giai immàgines
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index accb1c9065..e2d3178847 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1103,8 +1103,6 @@ sco:
storage: Media storage
featured_tags:
add_new: Add new
- errors:
- limit: Ye'v awriddy featurt the maximum amoont o hashtags
hint_html: "Whit's featurt hashtags? They get pit prominently on yer public profile an alloo fowk fir tae broose yer public posts specifically unner thae hashtags. They'r a braw tuil fir keepin track o creative warks or lang-term projects."
filters:
contexts:
@@ -1214,9 +1212,6 @@ sco:
expires_at: Expires
uses: Uises
title: Invite fowk
- lists:
- errors:
- limit: Ye'v hit the maximum amoont o lists
login_activities:
authentication_methods:
otp: twa-factor authentication app
@@ -1533,7 +1528,6 @@ sco:
'7889238': 3 month
min_age_label: Age threshaud
min_favs: Keep posts favouritit at least
- min_favs_hint: Disnae delete onie o yer posts thit's got at least this amoont o favourites. Lea blank fir tae delete posts regairdless o their nummer o favourites
min_reblogs: Keep posts heezed at least
min_reblogs_hint: Disnae delete onie o yer posts thit's been heezed at least this nummer o times. Lea blank fir tae delete posts regairdless o their number o heezes
stream_entries:
diff --git a/config/locales/si.yml b/config/locales/si.yml
index 18260cba9e..f621037c90 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -931,8 +931,6 @@ si:
storage: මාධ්ය ගබඩාව
featured_tags:
add_new: අලුතින් එකතු කරන්න
- errors:
- limit: ඔබ දැනටමත් උපරිම හෑෂ් ටැග් ප්රමාණය විශේෂාංග කර ඇත
hint_html: "විශේෂාංගගත හැෂ් ටැග් මොනවාද? ඒවා ඔබේ පොදු පැතිකඩෙහි ප්රමුඛව ප්රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ."
filters:
contexts:
@@ -1016,9 +1014,6 @@ si:
expires_at: කල් ඉකුත් වේ
uses: භාවිතා කරයි
title: මිනිසුන්ට ආරාධනා කරන්න
- lists:
- errors:
- limit: ඔබ උපරිම ලැයිස්තු ප්රමාණයට ළඟා වී ඇත
login_activities:
authentication_methods:
otp: ද්වි-සාධක සත්යාපන යෙදුම
@@ -1326,7 +1321,6 @@ si:
'7889238': මාස 3 යි
min_age_label: වයස් සීමාව
min_favs: අඩුම තරමින් පෝස්ට් ප්රිය කරන ලෙස තබා ගන්න
- min_favs_hint: අවම වශයෙන් මෙම ප්රියතම ප්රමාණය ලබා ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත. ඔවුන්ගේ ප්රියතමයන් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න
min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
stream_entries:
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index c17b3b8988..32364cf7e4 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -3,7 +3,10 @@ ast:
simple_form:
hints:
admin_account_action:
- text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar amestar preconfiguraes p'aforrar tiempu
+ text_html: Opcional. Pues usar la sintaxis de los artículos ya amestar alvertencies preconfiguraes p'aforrar tiempu
+ type_html: Escueyi qué facer con %{acct}
+ types:
+ none: Usa esta opción pa unviar una alvertencia al perfil, ensin aicionar nenguna otra aición.
announcement:
all_day: Al marcar la opción, namás apaecen les dates del intervalu de tiempu
ends_at: Opcional. L'anunciu dexa de tar espublizáu na data qu'indiques
@@ -68,8 +71,10 @@ ast:
admin_account_action:
include_statuses: Incluyir nel mensaxe los artículos de los que s'informó
send_email_notification: Avisar al perfil per corréu electrónicu
+ text: Alvertencia personalizada
type: Aición
types:
+ sensitive: Marcar como cuenta sensible
suspend: Suspender
announcement:
all_day: Eventu de tol día
diff --git a/config/locales/simple_form.be.yml b/config/locales/simple_form.be.yml
index e5696a56f5..4a2c532ce6 100644
--- a/config/locales/simple_form.be.yml
+++ b/config/locales/simple_form.be.yml
@@ -18,6 +18,8 @@ be:
disable: Перадухіліць выкарыстанне акаунтаў, але не выдаляць і не хаваць іх змесціва.
none: Выкарыстоўвай гэта для папярэджвання карыстальнікаў але без іншых наступстваў.
sensitive: Прымусова адмячаць усе медыя карыстальніка як дэлікатныя.
+ silence: Забараніць карыстальніку пасты з публічнай бачнасцю, схаваць ягоныя допісы і апавяшчэнні ад людзей, якія на яго не падпісаныя. Закрывае ўсе скаргі на гэты ўліковы запіс.
+ suspend: Забараніць любыя ўзаемадзеянні ад ці з гэтым уліковым запісам і выдаліць ягонае змесціва. Можна адрабіць цягам 30 дзён. Закрывае ўсе скаргі на гэты ўліковы запіс.
warning_preset_id: Неабавязкова. Вы можаце дадаць уласны тэкст напрыканцы шаблону
announcement:
all_day: Калі пазначана, будуць паказаны толькі даты з пазначанага прамежку часу
@@ -72,6 +74,7 @@ be:
hide: Поўнасцю схаваць адфільтраванае змесціва, дзейнічаць, нібы яго не існуе
warn: Схаваць адфільтраваны кантэнт за папярэджаннем з назвай фільтру
form_admin_settings:
+ activity_api_enabled: Падлік лакальна апублікаваных пастоў, актыўных карыстальнікаў і новых рэгістрацый у тыдзень
backups_retention_period: Захоўваць створаныя архівы карыстальніка адзначаную колькасць дзён.
bootstrap_timeline_accounts: Гэтыя ўліковыя запісы будуць замацаваны ў топе рэкамендацый для новых карыстальнікаў.
closed_registrations_message: Паказваецца, калі рэгістрацыя закрытая
@@ -79,6 +82,7 @@ be:
custom_css: Вы можаце прымяняць карыстальніцкія стылі ў вэб-версіі Mastodon.
mascot: Замяняе ілюстрацыю ў пашыраным вэб-інтэрфейсе.
media_cache_retention_period: Спампаваныя медыя будуць выдаляцца пасля выстаўленай колькасці дзён, калі выстаўлены станоўчы лік, і спампоўвацца нанова па запыце.
+ peers_api_enabled: Спіс даменных імён, з якімі сутыкнуўся гэты сервер у федэсвеце. Дадзеныя аб тым, ці знаходзіцеся вы з пэўным серверам у федэрацыі, не ўключаныя, ёсць толькі тое, што ваш сервер ведае пра гэта. Гэта выкарыстоўваецца сэрвісамі, якія збіраюць статыстыку па федэрацыі ў агульным сэнсе.
profile_directory: Дырэкторыя профіляў змяшчае спіс усіх карыстальнікаў, якія вырашылі быць бачнымі.
require_invite_text: Калі рэгістрацыя патрабуе ручнога пацвержання, зрабіце поле "Чаму вы хочаце далучыцца?" абавязковым
site_contact_email: Як людзі могуць звязацца з вамі па юрыдычных запытах або пытаннях падтрымкі.
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 3ec5e19e1c..213e519ce3 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -13,26 +13,26 @@ bg:
include_statuses: Потребителят ще може да види кои публикации са довели до действието от страна на модератора или до предупреждението
send_email_notification: Потребителят ще получи обяснение какво се е случило с неговия акаунт
text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време
- type_html: Изберете какво да сторите с %{acct}
+ type_html: Изберете какво ще правите с %{acct}
types:
disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт.
none: Служи за изпращане на предупреждение до потребител, без да се активира друго действие.
sensitive: Принудително отбелязване на прикачената от потребителя мултимедия като чувствителна.
- silence: Забраняване на потребителя да публикува публично, скриване на неговите публикации и известия от други потребители, които не го следват. Затваря всички доклади срещу този акаунт.
- suspend: Забрана на всякаква интеракция с този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт.
+ silence: Предотвратяване на потребителя да може да публикува с обществена видимост, скриване на публикациите му и известията от хората, които не го следват. Затваря всички доклади срещу този акаунт.
+ suspend: Предотвратяване на всякакво взаимодействие от или към този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт.
warning_preset_id: По избор. Можете да добавите допълнително текст накрая на предварително настроения текст
announcement:
all_day: Когато е избрана настройката, само датите от времевия диапазон ще бъдат показани
ends_at: По избор. В зададеното време обявлението ще бъде автоматично премахнато
- scheduled_at: Ако се остави празно, обявлението ще се публикува незабавно
+ scheduled_at: Оставете празно, за да публикувате оповестяването веднага
starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон
- text: Можете да използвате синтаксиса на обикновени публикации. Не забравяйте, че обявлението ще заеме известно място от екрана на потребителя
+ text: Може да употребявате синтаксиса на публикации. Имайте предвид, че оповестяването ще заема известно място от екрана на потребителя
appeal:
text: Можете да възразите срещу провинение само веднъж
defaults:
autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват
- avatar: PNG, GIF или JPG. До %{size}. Ще бъде смалена до %{dimensions} пиксела
- bot: Покажете на останалите потребители, че акаунтът извършва предимно автоматизирани действия, които не се следят
+ avatar: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела
+ bot: Сигнализиране до другите, че акаунтът изпълнява предимно автоматизирани деяния и може да не се наблюдава
context: Един или повече контексти, към които да се приложи филтърът
current_password: От съображения за сигурност, въведете паролата на текущия акаунт
current_username: Въведете потребителското име на текущия профил, за да потвърдите
@@ -44,12 +44,12 @@ bg:
inbox_url: Копирайте URL адреса на заглавната страница на предаващия сървър, който искат да използвате
irreversible: Филтрираните публикации ще изчезнат безвъзвратно, дори филтърът да бъде премахнат по-късно
locale: Езикът на потребителския интерфейс, известиятата по имейл и насочените известия
- locked: Изисква ръчно одобрение на последователите. По подразбиране, публикациите са достъпни само до последователи.
+ locked: Ръчно управляване кой може да ви последва, одобрявайки заявките за последване
password: Използвайте поне 8 символа
phrase: Ще съвпадне без значение дали са главни или малки букви, или ако е предупреждение към публикация
scopes: Указва до кои API има достъп приложението. Ако изберете диапазон от най-високо ниво, няма нужда да избирате индивидуални.
setting_aggregate_reblogs: Без показване на нови подсилвания за публикации, които са неотдавна подсилени (засяга само новополучени подсилвания)
- setting_always_send_emails: Обикновено известия по имейл няма да бъдат изпратени при активно използване на Mastodon
+ setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon
setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване
setting_display_media_default: Скриване на мултимедия отбелязана като деликатна
setting_display_media_hide_all: Винаги да се скрива мултимедията
@@ -57,10 +57,10 @@ bg:
setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва
setting_noindex: Засяга вашите публикации и публичен профил
setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви
- setting_use_blurhash: Преливането се определя от цветовете на скритите изображения, но детайлите остават скрити
+ setting_use_blurhash: Преливането е въз основа на цветовете на скритите визуализации, но се замъгляват подробностите
setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала
username: Вашето потребителско име ще е неповторим в %{domain}
- whole_word: Ако ключовата дума/фраза е стриктно буквеноцифрена, ще бъде приложена само, ако съвпадне с цялата дума
+ whole_word: Ако ключовата дума или фраза е само буквеноцифрена, то ще се приложи само, ако съвпадне с цялата дума
domain_allow:
domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени
email_domain_block:
@@ -72,15 +72,15 @@ bg:
action: Изберете кое действие да се извърши, прецеждайки съвпаденията на публикацията
actions:
hide: Напълно скриване на филтрираното съдържание, сякаш не съществува
- warn: Скриване на филтрираното съдържание зад предупреждение, включващо името на филтъра
+ warn: Скриване на филтрираното съдържание зад предупреждение, споменавайки заглавието на филтъра
form_admin_settings:
activity_api_enabled: Брой публикувани постове, активни потребители и нови регистрации за седмицата
- backups_retention_period: Запазване на генерираните потребителски архиви за посочения брой дни.
+ backups_retention_period: Задържане на породените потребителски архиви за определения брой дни.
bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители.
closed_registrations_message: Показва се, когато е затворено за регистрации
content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо.
custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon.
- mascot: Можете да заместите илюстрацията в разширения уеб интерфейс.
+ mascot: Замества илюстрацията в разширения уеб интерфейс.
media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване.
peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл.
profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми.
@@ -89,12 +89,12 @@ bg:
site_contact_username: Как хората могат да ви достигнат в Mastodon.
site_extended_description: Всяка допълнителна информация, която може да е полезна за посетителите и потребителите ви. Може да се структурира със синтаксиса на Markdown.
site_short_description: Кратък опис за помощ на неповторимата самоличност на сървъра ви. Кой го управлява, за кого е?
- site_terms: Използвайте собствени правила за поверителност или оставете празно, за да използвате тези по подразбиране. Може да се структурира с Markdown синтаксис.
- site_title: Как могат хората да наричат вашия сървър, освен името на домейна.
+ site_terms: Употребявайте свои правила за поверителност или оставете празно, за да използвате стандартните правила. Може да се структурира със синтаксиса на Markdown.
+ site_title: Как могат хората да се обръщат към сървъра ви, освен по името на домейна.
status_page_url: Адресът на страницата, където хората могат да видят състоянието на този сървър по време на прекъсване
- theme: Темата, която нови и невлезли потребители ще виждат.
- thumbnail: Изображение в резолюция около 2:1, показвана до информацията за вашия сървър.
- timeline_preview: Невлезлите потребители ще могат да преглеждат най-новите публични публикации, налични на сървъра.
+ theme: Темата, която излизащи от системата посетители и нови потребители виждат.
+ thumbnail: Образ в съотношение около 2:1, показвано до информацията за сървъра ви.
+ timeline_preview: Излизащите от системата посетители ще може да разглеждат най-новите публични публикации, налични на сървъра.
trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие.
trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви.
trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено.
@@ -121,12 +121,12 @@ bg:
tag:
name: Можете да смените само употребата на големи/малки букви, например, за да е по-четимо
user:
- chosen_languages: Само публикации на езиците с отметка ще бъдат показвани в публичните инфопотоци
+ chosen_languages: Само публикации на отметнатите езици ще се показват в публичните часови оси
role: Ролите управляват какви права има потребителят
user_role:
color: Цветът, използван за ролите в потребителския интерфейс, като RGB в шестнадесетичен формат
highlighted: Това прави ролята публично видима
- name: Публично име за ролята, ако ролята е настроена да се показва като значка
+ name: Публично име на ролята, ако ролята е зададена да се показва като значка
permissions_as_keys: Потребители с тази роля ще имат достъп до...
position: По-висшата роля може да разреши конфликти в някои ситуации. Някои действия могат да бъдат извършени само за роли с по-нисък приоритет
webhook:
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index c51fda6613..d965f6b714 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -208,7 +208,7 @@ cy:
setting_display_media_show_all: Dangos popeth
setting_expand_spoilers: Dangos postiadau wedi'u marcio â rhybudd cynnwys bob tro
setting_hide_network: Cuddio eich graff cymdeithasol
- setting_noindex: Peidio mynegeio peiriannau chwilio
+ setting_noindex: Eithrio rhag gael eich mynegeio gan beiriannau chwilio
setting_reduce_motion: Lleihau mudiant mewn animeiddiadau
setting_show_application: Datgelu rhaglen a ddefnyddir i anfon postiadau
setting_system_font_ui: Defnyddio ffont rhagosodedig y system
@@ -255,7 +255,7 @@ cy:
site_title: Enw'r gweinydd
status_page_url: URL tudalen statws
theme: Thema ragosodedig
- thumbnail: Lluniau bach gweinydd
+ thumbnail: Bawdlun y gweinydd
timeline_preview: Caniatáu mynediad heb ei ddilysu i linellau amser cyhoeddus
trendable_by_default: Caniatáu pynciau llosg heb adolygiad
trends: Galluogi pynciau llosg
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index b7baf6aff3..0090c2f96d 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -8,7 +8,7 @@ de:
acct: Gib profilname@domain des Kontos an, zu dem du umziehen möchtest
account_warning_preset:
text: Du kannst Beitragssyntax verwenden, wie z. B. URLs, Hashtags und Erwähnungen
- title: Optional. Für den Empfänger nicht sichtbar
+ title: Optional. Für Empfänger*in nicht sichtbar
admin_account_action:
include_statuses: Die Person sieht, welche Beiträge die Moderationsmaßnahme oder Warnung verursacht haben
send_email_notification: Benutzer*in wird eine Erklärung erhalten, was mit dem Konto geschehen ist
@@ -16,7 +16,7 @@ de:
type_html: Wähle aus, wie mit %{acct} vorgegangen werden soll
types:
disable: Benutzer*in daran hindern, das Konto verwenden zu können, aber die Inhalte nicht löschen oder ausblenden.
- none: Verwende dies, um dem Account eine Warnung zu schicken, ohne dabei eine andere Aktion vorzunehmen.
+ none: Dem Account eine Verwarnung zuschicken, ohne dabei eine andere Aktion vorzunehmen.
sensitive: Erzwingen, dass alle Medienanhänge dieses Profils mit einer Inhaltswarnung versehen werden.
silence: Verhindert, dass dieses Profil öffentlich sichtbare Beiträge verfassen kann, und verbirgt alle Beiträge und Benachrichtigungen vor Personen, die diesem Profil nicht folgen. Alle Meldungen zu diesem Konto werden geschlossen.
suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen.
@@ -28,7 +28,7 @@ de:
starts_at: Optional. Nur für den Fall, dass deine Ankündigung an einen bestimmten Zeitraum gebunden ist
text: Du kannst die reguläre Syntax wie für Beiträge verwenden, also auch Profile erwähnen und Hashtags nutzen. Bitte beachte den Platz, den die Ankündigung auf dem Bildschirm der Benutzer*innen einnehmen wird
appeal:
- text: Du kannst nur einmal Einspruch gegen einen Verstoß einlegen
+ text: Du kannst nur einmal Einspruch gegen eine Maßnahme einlegen
defaults:
autofollow: Personen, die sich über deine Einladung registrieren, folgen automatisch deinem Profil
avatar: PNG, GIF oder JPG. Höchstens %{size} groß. Wird auf %{dimensions} px verkleinert
@@ -99,9 +99,9 @@ de:
trends: Trends zeigen, welche Beiträge, Hashtags und Nachrichten auf deinem Server immer beliebter werden.
trends_as_landing_page: Zeigt Trendinhalte abgemeldeter Benutzer und Besucher anstelle einer Beschreibung dieses Servers an. Erfordert, dass Trends aktiviert sind.
form_challenge:
- current_password: Du betrittst einen gesicherten Bereich
+ current_password: Du betrittst einen sicheren Bereich
imports:
- data: CSV-Datei, die aus einem anderen Mastodon-Server exportiert wurde
+ data: CSV-Datei, die von einem Mastodon-Server exportiert worden ist
invite_request:
text: Dies wird uns bei der Überprüfung deiner Anmeldung behilflich sein
ip_block:
@@ -109,7 +109,7 @@ de:
expires_in: IP-Adressen sind eine begrenzte Ressource. Sie können außerdem auf viele Computer aufgeteilt sein und auch die Zuordnungen ändern sich. Deshalb werden unbestimmte IP-Blöcke nicht empfohlen.
ip: Gib eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht selbst aussperrst!
severities:
- no_access: Blockiere Zugriff auf alle Ressourcen
+ no_access: Zugriff auf alle Ressourcen blockieren
sign_up_block: Neue Registrierungen werden nicht möglich sein
sign_up_requires_approval: Neue Registrierungen müssen genehmigt werden
severity: Wähle aus, was mit Anfragen von dieser IP-Adresse geschehen soll
@@ -117,7 +117,7 @@ de:
text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp
sessions:
otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
- webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und ihn, wenn notwendig, antippst.
+ webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst.
tag:
name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen
user:
@@ -130,12 +130,12 @@ de:
permissions_as_keys: Benutzer*innen mit dieser Rolle haben Zugriff auf...
position: Höhere Rollen entscheiden über Konfliktlösungen zu gewissen Situationen. Bestimmte Aktionen können nur mit geringfügigeren Rollen durchgeführt werden
webhook:
- events: Wähle die zu sendenden Termine
+ events: Zu sendende Ereignisse auswählen
url: Wo Ereignisse hingesendet werden
labels:
account:
fields:
- name: Bezeichnung
+ name: Beschriftung
value: Inhalt
account_alias:
acct: Adresse des alten Kontos
@@ -146,15 +146,15 @@ de:
title: Titel
admin_account_action:
include_statuses: Beitragsmeldungen in die E-Mail mit anfügen
- send_email_notification: Nutzer*in per E-Mail benachrichtigen
- text: Benutzerdefinierte Warnung
+ send_email_notification: Benachrichtigung per E-Mail
+ text: Benutzerdefinierte Verwarnung
type: Aktion
types:
disable: Einfrieren
- none: Warnung senden
+ none: Nur Verwarnung
sensitive: Inhaltswarnung
- silence: Einschränkung
- suspend: Sperren
+ silence: Stummschalten
+ suspend: Sperre
warning_preset_id: Warnungsvorlage verwenden
announcement:
all_day: Ganztägiges Ereignis
@@ -163,18 +163,18 @@ de:
starts_at: Beginn der Ankündigung
text: Ankündigung
appeal:
- text: Erkläre, warum diese Entscheidung rückgängig gemacht werden soll
+ text: Begründe, weshalb diese Entscheidung zurückgenommen werden sollte
defaults:
autofollow: Meinem Profil automatisch folgen
avatar: Profilbild
- bot: Dies ist ein Bot-Konto
+ bot: Dieses Profil ist ein Bot
chosen_languages: Sprachen einschränken
confirm_new_password: Neues Passwort bestätigen
confirm_password: Passwort bestätigen
context: Filter nach Bereichen
current_password: Derzeitiges Passwort
data: Daten
- discoverable: Konto für andere empfehlen
+ discoverable: Dieses Konto anderen empfehlen
display_name: Anzeigename
email: E-Mail-Adresse
expires_in: Läuft ab
@@ -187,7 +187,7 @@ de:
locked: Geschütztes Profil
max_uses: Maximale Verwendungen
new_password: Neues Passwort
- note: Über mich
+ note: Biografie
otp_attempt: Zwei-Faktor-Authentisierung
password: Passwort
phrase: Wort oder Formulierung
@@ -217,10 +217,10 @@ de:
setting_unfollow_modal: Bestätigungsdialog anzeigen, bevor jemandem entfolgt wird
setting_use_blurhash: Farbverlauf für verborgene Medien anzeigen
setting_use_pending_items: Langsamer Modus
- severity: Schweregrad
- sign_in_token_attempt: Sicherheitscode
+ severity: Einschränkung
+ sign_in_token_attempt: Sicherheitsschlüssel
title: Titel
- type: Art des Imports
+ type: Typ
username: Profilname
username_or_email: Profilname oder E-Mail
whole_word: Phrasensuche mit exakter Zeichenfolge erzwingen
@@ -231,7 +231,7 @@ de:
filters:
actions:
hide: Vollständig ausblenden
- warn: Mit einer Warnung ausblenden
+ warn: Mit einer Inhaltswarnung ausblenden
form_admin_settings:
activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API
backups_retention_period: Aufbewahrungsfrist für Archive
@@ -244,12 +244,12 @@ de:
peers_api_enabled: Veröffentliche Liste bekannter Server in der API
profile_directory: Profilverzeichnis aktivieren
registrations_mode: Wer darf ein neues Konto registrieren?
- require_invite_text: Grund für den Beitritt verlangen
+ require_invite_text: Begründung für Beitritt verlangen
show_domain_blocks: Anzeigen, welche Domains gesperrt wurden
show_domain_blocks_rationale: Anzeigen, weshalb Domains gesperrt wurden
site_contact_email: E-Mail-Adresse
site_contact_username: Profilname
- site_extended_description: Detaillierte Beschreibung
+ site_extended_description: Erweiterte Beschreibung
site_short_description: Serverbeschreibung
site_terms: Datenschutzerklärung
site_title: Servername
@@ -267,7 +267,7 @@ de:
invite:
comment: Kommentar
invite_request:
- text: Warum möchtest du beitreten?
+ text: Weshalb möchtest du beitreten?
ip_block:
comment: Kommentar
ip: IP-Adresse
@@ -290,10 +290,10 @@ de:
rule:
text: Regel
tag:
- listable: Erlaube diesem Hashtag, im Profilverzeichnis zu erscheinen
+ listable: Erlaube, dass dieser Hashtag in Suchen und Empfehlungen erscheint
name: Hashtag
- trendable: Erlaube es, diesen Hashtag in den Trends erscheinen zu lassen
- usable: Beiträgen erlauben, diesen Hashtag zu verwenden
+ trendable: Erlaube, dass dieser Hashtag in den Trends erscheint
+ usable: Erlaube, dass dieser Hashtag in Beiträgen erscheint
user:
role: Rolle
user_role:
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index d28435c7df..6b4d50d8ef 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -18,6 +18,8 @@ el:
disable: Αποτρέψτε το χρήστη από τη χρήση του λογαριασμού του, αλλά όχι διαγραφή ή απόκρυψη των περιεχομένων του.
none: Χρησιμοποιήστε αυτό για να στείλετε μια προειδοποίηση στον χρήστη, χωρίς να ενεργοποιήσετε οποιαδήποτε άλλη ενέργεια.
sensitive: Εξαναγκάστε όλα τα συνημμένα πολυμέσα αυτού του χρήστη να επισημαίνονται ως ευαίσθητα.
+ silence: Αποτρέψτε τον χρήστη από το να μπορεί να δημοσιεύει με δημόσια ορατότητα, να αποκρύπτει τις δημοσιεύσεις του και τις ειδοποιήσεις του από άτομα που δεν τις ακολουθούν. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
+ suspend: Αποτροπή οποιασδήποτε αλληλεπίδρασης από ή προς αυτόν τον λογαριασμό και διαγραφή των περιεχομένων του. Αναστρέψιμο εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
warning_preset_id: Προαιρετικό. Μπορείς να προσθέσεις επιπλέον κείμενο μετά το προκαθορισμένο κείμενο
announcement:
all_day: Όταν είναι επιλεγμένο, θα εμφανίζονται μόνο οι ημερομηνίες εντός της χρονικής διάρκειας
@@ -25,6 +27,8 @@ el:
scheduled_at: Αν μείνει κενό, η ενημέρωση θα δημοσιευτεί αμέσως
starts_at: Προαιρετικό, για την περίπτωση που η ανακοίνωση αφορά συγκεκριμένη χρονική διάρκεια
text: Δεκτό το συντακτικό των τουτ. Παρακαλούμε έχε υπόψιν σου το χώρο που θα καταλάβει η ανακοίνωση στην οθόνη του χρήστη
+ appeal:
+ text: Μπορείτε να κάνετε έφεση σε μια ποινή μόνο μία φορά
defaults:
autofollow: Όσοι εγγραφούν μέσω της πρόσκλησης θα σε ακολουθούν αυτόματα
avatar: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@@ -33,6 +37,7 @@ el:
current_password: Για λόγους ασφαλείας παρακαλώ γράψε τον κωδικό του τρέχοντος λογαριασμού
current_username: Για επιβεβαίωση, παρακαλώ γράψε το όνομα χρήστη του τρέχοντος λογαριασμού
digest: Αποστέλλεται μόνο μετά από μακρά περίοδο αδράνειας και μόνο αν έχεις λάβει προσωπικά μηνύματα κατά την απουσία σου
+ discoverable: Επιτρέψτε στον λογαριασμό σας να ανακαλυφθεί από αγνώστους μέσω συστάσεων, τάσεων και άλλων χαρακτηριστικών
email: Θα σου σταλεί email επιβεβαίωσης
fields: Μπορείς να έχεις έως 4 σημειώσεις σε μορφή πίνακα στο προφίλ σου
header: PNG, GIF ή JPG. Έως %{size}. Θα περιοριστεί σε διάσταση %{dimensions}px
@@ -59,9 +64,20 @@ el:
domain_allow:
domain: Ο τομέας αυτός θα επιτρέπεται να ανακτά δεδομένα από αυτό τον διακομιστή και τα εισερχόμενα δεδομένα θα επεξεργάζονται και θα αποθηκεύονται
email_domain_block:
+ domain: Αυτό μπορεί να είναι το όνομα τομέα που εμφανίζεται στη διεύθυνση email ή η εγγραφή MX που χρησιμοποιεί. Θα ελέγχονται κατά την εγγραφή.
with_dns_records: Θα γίνει απόπειρα ανάλυσης των εγγραφών DNS του τομέα και τα αποτελέσματα θα μπουν και αυτά σε μαύρη λίστα
featured_tag:
name: 'Εδώ είναι μερικά από τα hashtags που χρησιμοποιήσατε περισσότερο πρόσφατα:'
+ filters:
+ action: Επιλέξτε ποια ενέργεια θα εκτελεστεί όταν μια δημοσίευση ταιριάζει με το φίλτρο
+ actions:
+ hide: Πλήρης αποκρυψη του φιλτραρισμένου περιεχομένου, συμπεριφέρεται σαν να μην υπήρχε
+ warn: Απόκρυψη φιλτραρισμένου περιεχομένου πίσω από μια προειδοποίηση που αναφέρει τον τίτλο του φίλτρου
+ form_admin_settings:
+ activity_api_enabled: Καταμέτρηση τοπικά δημοσιευμένων δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαία πακέτα
+ backups_retention_period: Διατήρηση αρχείων χρηστών που δημιουργήθηκαν για τον καθορισμένο αριθμό ημερών.
+ bootstrap_timeline_accounts: Αυτοί οι λογαριασμοί θα καρφιτσωθούν στην κορυφή των νέων χρηστών που ακολουθούν τις συστάσεις.
+ closed_registrations_message: Εμφανίζεται όταν κλείνουν οι εγγραφές
form_challenge:
current_password: Μπαίνεις σε ασφαλή περιοχή
imports:
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 9cb8dae478..b8edaf6368 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -39,7 +39,7 @@ ko:
digest: 오랫동안 활동하지 않았을 때 받은 멘션들에 대한 요약 받기
discoverable: 추천, 트렌드 및 기타 기능을 통해 낯선 사람이 내 계정을 발견할 수 있도록 허용합니다
email: 당신은 확인 메일을 받게 됩니다
- fields: 당신의 프로파일에 최대 4개까지 표 형식으로 나타낼 수 있습니다
+ fields: 프로필에 최대 4개의 항목을 표로 표시할 수 있습니다.
header: PNG, GIF 혹은 JPG. 최대 %{size}. %{dimensions}px로 축소 됨
inbox_url: 사용 할 릴레이 서버의 프론트페이지에서 URL을 복사합니다
irreversible: 필터링 된 게시물은 나중에 필터가 사라지더라도 돌아오지 않게 됩니다
@@ -175,7 +175,7 @@ ko:
current_password: 현재 암호 입력
data: 데이터
discoverable: 계정을 다른 사람들에게 추천하기
- display_name: 표시되는 이름
+ display_name: 표시 이름
email: 이메일 주소
expires_in: 만료시각
fields: 프로필 메타데이터
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index 67c6daf4b3..47137d801e 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -40,13 +40,13 @@ sr:
fields: Можете имати до 4 ставке приказане као табела на вашем налогу
header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
inbox_url: Копирајте URL са насловне стране релеја који желите користити
- irreversible: Филтриранe трубе ће нестати неповратно, чак и ако је филтер касније уклоњен
- locale: Језик корисничког интерфејса, е-поште и мобилних обавештења
+ irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен
+ locale: Језик корисничког окружења, е-поште и мобилних обавештења
locked: Захтева да појединачно одобрите пратиоце
password: Користите најмање 8 знакова
- phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају трубе
+ phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају објаве
scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
- setting_aggregate_reblogs: Не показуј нова дељења за трубе које су недавно подељене (утиче само на недавно примљена дељења)
+ setting_aggregate_reblogs: Не приказуј нова подржавања за објаве које су недавно подржане (утиче само на недавно примљена подржавања)
setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон
setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом
setting_display_media_default: Сакриј медије означене као осетљиве
@@ -54,7 +54,7 @@ sr:
setting_display_media_show_all: Увек прикажи медије означене као осетљиве
setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу
setting_noindex: Утиче на Ваш јавни налог и статусне стране
- setting_show_application: Апликација коју користиш за објављивање биће приказана у детаљном приказу твојих објава
+ setting_show_application: Апликација коју користите за објављивање ће бити приказана у детаљном приказу ваших објава
setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље
setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава
username: Ваш надимак ће бити јединствен на %{domain}
@@ -77,7 +77,7 @@ sr:
closed_registrations_message: Приказује се када су пријаве затворене
content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно.
custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона.
- mascot: Замењује илустрацију у напредном веб интерфејсу.
+ mascot: Замењује илустрацију у напредном веб окружењу.
media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев.
profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви.
require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони
@@ -115,10 +115,10 @@ sr:
tag:
name: Могу се само променити мала слова у велика, на пример, да би било читљивије
user:
- chosen_languages: Када означите, трубе у изабраним језицима ће се приказати на јавној временској линији
+ chosen_languages: Када је означено, објаве у изабраним језицима ће бити приказане на јавној временској линији
role: Улога контролише које дозволе корисник има
user_role:
- color: Боја која ће се користити за улогу у целом корисничком интерфејсу, као RGB, у хексадецималном формату
+ color: Боја која ће се користити за улогу у целом корисничком окружењу, као RGB у хексадецималном формату
highlighted: Ово чини улогу јавно видљивом
name: Јавни назив улоге, ако је улога подешена да се приказује као значка
permissions_as_keys: Корисници са овом улогом ће имати приступ...
@@ -185,24 +185,24 @@ sr:
otp_attempt: Двофакторски код
password: Лозинка
phrase: Кључна реч или фраза
- setting_advanced_layout: Омогући напредни веб интерфејс
+ setting_advanced_layout: Омогући напредно веб окружење
setting_aggregate_reblogs: Групиши дељења у временским линијама
setting_always_send_emails: Увек шаљи обавештења е-поштом
- setting_auto_play_gif: Аутоматски пуштај анимиране GIF-ове
+ setting_auto_play_gif: Аутоматски репродукуј анимиране GIF-ове
setting_boost_modal: Прикажи дијалог за потврду пре давања подршке
setting_crop_images: Изрежи слике у непроширеним објавама на 16x9
setting_default_language: Језик објављивања
setting_default_privacy: Приватност објава
setting_default_sensitive: Увек означи мултимедију као осетљиву
- setting_delete_modal: Прикажи дијалог за потврду пре брисања тута
+ setting_delete_modal: Прикажи дијалог за потврду пре брисања објаве
setting_disable_swiping: Онемогући покрете превлачења
setting_display_media: Приказ медија
setting_display_media_default: Подразумевано
setting_display_media_hide_all: Сакриј све
setting_display_media_show_all: Прикажи све
- setting_expand_spoilers: Увек прошити трубе које су означене упозорењем садржаја
+ setting_expand_spoilers: Увек прошири објаве које су означене упозорењем садржаја
setting_hide_network: Сакриј своју мрежу
- setting_noindex: Одјави се од индексирања search engine-а
+ setting_noindex: Онемогући индексирање претраживача
setting_reduce_motion: Смањи покрете у анимацијама
setting_show_application: Откриј апликацију која се користи за слање постова
setting_system_font_ui: Користи системски фонт
diff --git a/config/locales/simple_form.zh-HK.yml b/config/locales/simple_form.zh-HK.yml
index 16ece9d2ca..02ef592c93 100644
--- a/config/locales/simple_form.zh-HK.yml
+++ b/config/locales/simple_form.zh-HK.yml
@@ -18,6 +18,8 @@ zh-HK:
disable: 禁止該使用者使用他們的帳號,但是不刪除或隱藏他們的內容。
none: 用這個來警告該使用者,而不進行其他操作。
sensitive: 強制標記此用戶的所有媒體附件為敏感內容。
+ silence: 禁止該使用者發佈公開帖文,沒有追蹤他們的人不會看到其帖文和通知。關閉所有對該帳號的檢舉報告。
+ suspend: 禁止與該帳號的所有互動,並移除其內容。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。
warning_preset_id: 選用。你仍可在預設訊息的結尾加入自訂文字
announcement:
all_day: 勾選後,只會顯示出時間範圍中的日期部分
@@ -72,6 +74,7 @@ zh-HK:
hide: 完全隱藏被篩選的內容,猶如它不存在般。
warn: 將已篩選的內容隱藏在篩選器標題的警告後面。
form_admin_settings:
+ activity_api_enabled: 每週本站發佈的帖文、活躍使用者及新註冊的數量
backups_retention_period: 繼續封存生成的使用者到指定的天數。
bootstrap_timeline_accounts: 這些帳號會被置頂在新使用者的追蹤建議上。
closed_registrations_message: 關閉註冊時顯示
@@ -79,6 +82,7 @@ zh-HK:
custom_css: 你可以在 Mastodon 網頁版套用自訂樣式。
mascot: 覆蓋進階網頁介面中的插圖。
media_cache_retention_period: 當設定為正數時,已下載的媒體檔案將在指定天數後被刪除,並視乎需要重新下載。
+ peers_api_enabled: 本伺服器於聯邦宇宙相遇的網域名單。這裏不包括你與某伺服器有否聯網的數據,僅表示你的伺服器已知的網域。這是供收集一般跨站數據的服務使用。
profile_directory: 個人檔案目錄羅列了所有選擇被發現的使用者。
require_invite_text: 如果需要手動審核註冊,請將「為何你想加入?」文字欄設定為必填,而非選填。
site_contact_email: 大家如何聯絡你有關法律或支援的查詢。
@@ -87,11 +91,13 @@ zh-HK:
site_short_description: 用作辨別你的伺服器的一段簡短描述。誰營運它,它為誰服務的?
site_terms: 使用你的私隱政策,或者留空使用預設的,可以用 Markdown 語法編寫。
site_title: 除了域名以外,其他人會如何指稱你的伺服器。
+ status_page_url: 可在服務中斷期間,查看此伺服器狀態的網頁網址
theme: 未登入訪客和新使用者看到的主題。
thumbnail: 一幅約 2:1 的圖片顯示在你的伺服器資訊的旁邊。
timeline_preview: 未登入的訪客能夠瀏覽伺服器上最新的公開帖文。
trendable_by_default: 跳過對趨勢內容的手動審查,事後仍可從趨勢中刪除個別項目。
trends: 趨勢顯示哪些帖文、標籤和新聞故事在你的伺服器上較有吸引力。
+ trends_as_landing_page: 向未登入的使用者及訪客展示趨勢內容,而非只有此伺服器的描述。需要啟用趨勢。
form_challenge:
current_password: 你正要進入安全區域
imports:
@@ -227,6 +233,7 @@ zh-HK:
hide: 完全隱藏
warn: 警告並隱藏
form_admin_settings:
+ activity_api_enabled: 在 API 中發佈使用者活動的匯總統計數據
backups_retention_period: 封存使用者保留期
bootstrap_timeline_accounts: 總是向新使用者推薦這些帳號
closed_registrations_message: 無法註冊時的自訂訊息
@@ -234,6 +241,7 @@ zh-HK:
custom_css: 自訂 CSS
mascot: 自訂吉祥物 (舊版)
media_cache_retention_period: 媒體快取保留期
+ peers_api_enabled: 在 API 中發佈已知的伺服器名單
profile_directory: 啟用個人檔案目錄
registrations_mode: 誰能註冊
require_invite_text: 提供一個加入的理由
@@ -245,11 +253,13 @@ zh-HK:
site_short_description: 伺服器描述
site_terms: 私隱政策
site_title: 伺服器名稱
+ status_page_url: 狀態頁網址
theme: 預設主題
thumbnail: 伺服器縮圖
timeline_preview: 允許未經認證的人存取公共時間軸
trendable_by_default: 允許未經審核的趨勢
trends: 啟用趨勢
+ trends_as_landing_page: 使用趨勢作為登陸頁面
interactions:
must_be_follower: 隱藏你關注者以外的人的通知
must_be_following: 隱藏你不關注的人的通知
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 8c50b8e94f..5f974c6fd1 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -154,7 +154,7 @@ zh-TW:
none: 什麼也不做
sensitive: 敏感内容
silence: 安靜
- suspend: 停權並不可逆的刪除帳號資料
+ suspend: 停權並永久刪除帳號資料
warning_preset_id: 使用警告預設
announcement:
all_day: 全天活動
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index 6ec3c0c7df..d50da0041a 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -95,6 +95,7 @@ sk:
moderation:
active: Aktívny/a
all: Všetko
+ disabled: Blokovaný
pending: Čakajúci
silenced: Obmedzený
suspended: Vylúčený/á
@@ -133,6 +134,7 @@ sk:
search: Hľadaj
search_same_email_domain: Iní užívatelia s tou istou emailovou doménou
search_same_ip: Ostatní užívatelia s rovnakou IP adresou
+ security: Zabezpečenie
security_measures:
only_password: Iba heslo
password_and_2fa: Heslo a dvoj-faktorové overovanie
@@ -345,6 +347,7 @@ sk:
create: Pridaj doménu
resolve: Preveď doménu
title: Nový email na zablokovanie
+ not_permitted: Nepovolená
resolved_through_html: Prevedená cez %{domain}
title: Blokované emailové adresy
export_domain_allows:
@@ -459,9 +462,11 @@ sk:
assign_to_self: Priraď sebe
assigned: Priradený moderátor
by_target_domain: Doména nahláseného účtu
+ cancel: Zruš
category: Kategória
comment:
none: Žiadne
+ confirm: Potvrď
created_at: Nahlásené
delete_and_resolve: Vymaž príspevky
forwarded: Preposlané
@@ -658,6 +663,7 @@ sk:
applications:
created: Aplikácia bola vytvorená úspešne
destroyed: Aplikáciu sa podarilo odstrániť
+ logout: Odhlás sa
regenerate_token: Znovu vygeneruj prístupový token
token_regenerated: Prístupový token bol úspešne vygenerovaný znova
warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj!
@@ -683,6 +689,8 @@ sk:
registration_closed: "%{instance} neprijíma nových členov"
resend_confirmation: Zašli potvrdzujúce pokyny znovu
reset_password: Obnov heslo
+ rules:
+ back: Späť
security: Zabezpečenie
set_new_password: Nastav nové heslo
setup:
@@ -788,7 +796,7 @@ sk:
featured_tags:
add_new: Pridaj nový
errors:
- limit: Už si si predvolil/a najvyšší možný počet obľúbených haštagov
+ limit: Už si si predvolil/a najvyšší možný počet haštagov
filters:
contexts:
account: Profily
@@ -865,7 +873,7 @@ sk:
title: Pozvi ľudí
lists:
errors:
- limit: Dosiahli ste maximálny možný počet zoznamov
+ limit: Dosiahli ste maximálny počet zoznamov
login_activities:
authentication_methods:
password: heslom
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index e2f712d7f8..18009d3729 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -95,6 +95,7 @@ sl:
moderation:
active: Dejaven
all: Vse
+ disabled: Onemogočeno
pending: Na čakanju
silenced: Omejeno
suspended: Suspendiran
@@ -139,6 +140,7 @@ sl:
search: Iskanje
search_same_email_domain: Drugi uporabniki z isto e-poštno domeno
search_same_ip: Drugi uporabniki z istim IP
+ security: Varnost
security_measures:
only_password: Samo geslo
password_and_2fa: Geslo in 2FA
@@ -443,6 +445,7 @@ sl:
resolve: Razreši domeno
title: Nov vnos e-pošte na črni seznam
no_email_domain_block_selected: Nobena domena e-računa ni bila spremenjena, ker nobena ni bila izbrana
+ not_permitted: Ni dovoljeno
resolved_dns_records_hint_html: Ime domene se razreši na naslednje domene MX, ki so končno odgovorne za sprejemanje e-pošte. Blokiranje domene MX bo blokiralo prijave s poljubnega e-poštnega naslova, ki uporablja isto domeno MX, tudi če je vidno ime domene drugačno. Pazite, da ne blokirate večjih ponudnikov e-pošte.
resolved_through_html: Razrešeno prek %{domain}
title: Črni seznam e-pošt
@@ -493,6 +496,7 @@ sl:
content_policies:
comment: Interna opomba
description_html: Določite lahko pravila (t.i. politike), ki bodo veljale za vse račune te domene ter vseh njenih poddomen.
+ limited_federation_mode_description_html: Izberete lahko, ali dovolite federacijo s to domeno.
policies:
reject_media: Zavrni večpredstavnost
reject_reports: Zavrni prijave
@@ -609,11 +613,13 @@ sl:
assign_to_self: Dodeli meni
assigned: Dodeljen moderator
by_target_domain: Domena prijavljenega računa
+ cancel: Prekliči
category: Kategorija
category_description_html: Razlog, zakaj je ta račun in/ali vsebina prijavljena, bo naveden v komunikaciji z računom iz prijave
comment:
none: Brez
comment_description_html: 'V pojasnilo je %{name} zapisal/a:'
+ confirm: Potrdi
confirm_action: Potrdite dejanje moderiranja proti @%{acct}
created_at: Prijavljeno
delete_and_resolve: Izbriši objave
@@ -820,6 +826,7 @@ sl:
suspend: "%{name} je suspendiral/a račun uporabnika %{target}"
appeal_approved: Pritoženo
appeal_pending: Čakajoč na ugovor
+ appeal_rejected: Pritožba zavrnjena
system_checks:
database_schema_check:
message_html: Na čakanju so migracije zbirke podatkov. Prosimo, izvedite jih, da zagotovite, da se program vede pričakovano
@@ -857,6 +864,7 @@ sl:
two: Delili %{count} osebi v zadnjem tednu
title: Povezave v trendu
usage_comparison: Danes deljeno %{today}-krat, včeraj pa %{yesterday}-krat
+ not_allowed_to_trend: Ni dovoljeno, da bi bilo v trendu
only_allowed: Samo dovoljeni
pending_review: Čakajoče na pregled
preview_card_providers:
@@ -994,6 +1002,7 @@ sl:
applications:
created: Aplikacija je bila uspešno ustvarjena
destroyed: Aplikacija je bila uspešno izbrisana
+ logout: Odjava
regenerate_token: Obnovite dostopni žeton
token_regenerated: Dostopni žeton je bil uspešno regeneriran
warning: Bodite zelo previdni s temi podatki. Nikoli jih ne delite z nikomer!
@@ -1030,6 +1039,8 @@ sl:
resend_confirmation: Ponovno pošlji navodila za potrditev
reset_password: Ponastavi geslo
rules:
+ accept: Sprejmi
+ back: Nazaj
preamble: Slednje določajo in njihovo spoštovanje zagotavljajo moderatorji %{domain}.
title: Nekaj osnovnih pravil.
security: Varnost
@@ -1637,7 +1648,7 @@ sl:
'7889238': 3 mesece
min_age_label: Starostna meja
min_favs: Obrži objave priljubljene vsaj
- min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno količino priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov
+ min_favs_hint: Ne izbriše nobene od vaših objav, ki je prejela vsaj takšno število priljubljenih. Pustite prazno, če želite izbrisati objave ne glede na število všečkov
min_reblogs: Obdrži objave izpostavljene vsaj
min_reblogs_hint: Ne izbriše nobene od vaših objav, ki je bila vsaj tolikokrat podprta. Pustite prazno, če želite izbrisati objave ne glede na število izpostavitev
stream_entries:
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 961a14d47e..a36b667d84 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -91,6 +91,7 @@ sq:
moderation:
active: Aktiv
all: Krejt
+ disabled: I çaktivizuar
pending: Pezull
silenced: I kufizuar
suspended: Të pezulluara
@@ -133,6 +134,7 @@ sq:
search: Kërkoni
search_same_email_domain: Të tjerë përdorues me të njëjtën përkatësi email-i
search_same_ip: Të tjerë përdorues me të njëjtën IP
+ security: Siguri
security_measures:
only_password: Vetëm fjalëkalim
password_and_2fa: Fjalëkalim dhe 2FA
@@ -427,6 +429,7 @@ sq:
resolve: Ftilloje përkatësinë
title: Zë i ri email në listë bllokimesh
no_email_domain_block_selected: S’u ndryshuan blloqe përkatësish email, ngaqë s’qe përzgjedhur ndonjë
+ not_permitted: Jo i lejuar
resolved_dns_records_hint_html: Emri i përkatësisë jep u përket përkatësive vijuese MX, që janë përgjegjëset për pranim email-esh. Bllokimi i një përkatësie MX do të bllokojë regjistrime nga çfarëdo adrese email që përdor të njëjtën përkatësi MX, edhe nëse emri i dukshëm i përkatësisë është i ndryshëm. Jini i kujdesshëm të mos bllokoni shërbime të njohur email-esh.
resolved_through_html: Zgjidhur përmes %{domain}
title: Listë bllokimesh email-esh
@@ -472,6 +475,7 @@ sq:
content_policies:
comment: Shënim i brendshëm
description_html: Mund të përkufizoni rregulla lënde që do të zbatohen mbi krejt llogaritë prej kësaj përkatësie dhe cilësdo nënpërkatësi të saj.
+ limited_federation_mode_description_html: Mund të zgjidhni të lejohet ose jo federimi me këtë përkatësi.
policies:
reject_media: Mos prano media
reject_reports: Hidh tej raportimet
@@ -584,11 +588,13 @@ sq:
assign_to_self: Caktojani vetes
assigned: Iu caktua moderator
by_target_domain: Përkatësi e llogarisë së raportuar
+ cancel: Anuloje
category: Kategori
category_description_html: Arsyeja pse kjo llogari dhe/ose lëndë raportohet do të citohet te komunikimi me llogarinë e raportuar
comment:
none: Asnjë
comment_description_html: 'Për të dhënë më tepër informacion, %{name} shkroi:'
+ confirm: Ripohojeni
confirm_action: Ripohoni veprim moderimi kundër @%{acct}
created_at: Raportuar më
delete_and_resolve: Fshiji postimet
@@ -789,6 +795,7 @@ sq:
suspend: "%{name} e pezulloi llogarinë e %{target}"
appeal_approved: Apeluar
appeal_pending: Apelim pezull
+ appeal_rejected: Apelimi u hodh poshtë
system_checks:
database_schema_check:
message_html: Ka migrime bazash të dhënash pezull. Ju lutemi, kryejini, për të qenë të sigurt se aplikacioni sillet siç priteet
@@ -953,6 +960,7 @@ sq:
applications:
created: Aplikimi u krijua me sukses
destroyed: Aplikimi u fshi me sukses
+ logout: Dalje
regenerate_token: Riprodho token hyrjesh
token_regenerated: Token-i i hyrjeve u riprodhua me sukses
warning: Bëni shumë kujdes me ato të dhëna. Mos ia jepni kurrë njeriu!
@@ -989,6 +997,8 @@ sq:
resend_confirmation: Ridërgo udhëzime ripohimi
reset_password: Ricaktoni fjalëkalimin
rules:
+ accept: Pranoje
+ back: Mbrapsht
preamble: Këto vendosen dhe zbatimi i tyre është nën kujdesin e moderatorëve të %{domain}.
title: Disa rregulla bazë.
security: Siguri
@@ -1136,7 +1146,7 @@ sq:
featured_tags:
add_new: Shtoni të re
errors:
- limit: Keni përdorur tashmë si të zgjedhur sasinë maksimum të hashtag-ëve
+ limit: Keni përdorur tashmë numrin maksimum të hashtag-ëve
hint_html: "Çfarë janë hashtag-ët e zgjedhur? Këta shfaqen dukshëm te profili juaj publik dhe u lejojnë të tjerëve të shfletojnë postime tuajt publikë posaçërisht nën këta hashtag-ë. Janë një mjet i goditur për të ndjekur punë krijuese ose projekte afatgjata."
filters:
contexts:
@@ -1248,7 +1258,7 @@ sq:
title: Ftoni njerëz
lists:
errors:
- limit: Keni mbërritur në numrin maksimum të sasisë së listave
+ limit: Keni mbërritur në numrin maksimum të listave
login_activities:
authentication_methods:
otp: aplikacion mirëfilltësimi dyfaktorësh
@@ -1568,7 +1578,7 @@ sq:
'7889238': 3 muaj
min_age_label: Prag moshe
min_favs: Mbaji postimet e parapëlqyera më shumë se
- min_favs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër parapëlqimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të parapëlqimeve për to
+ min_favs_hint: Mos fshini ndonjë nga postimet tuaja që kanë marrë të paktën këtë numër si të parapëlqyer. Lëreni të zbrazët, që të fshihen postime pavarësisht nga numri se sa herë janë të parapëlqyer
min_reblogs: Mbaji postimet e përforcuara më shumë se
min_reblogs_hint: Nuk fshihet ndonjë nga postimet tuaja që kanë marrë më shumë se sa ky numër përforcimesh. Lëreni të zbrazët për të fshirë postimet, pavarësisht të numrit të përforcimeve për to
stream_entries:
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 1a4a2b7b1e..fdb5d21859 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -256,9 +256,6 @@ sr-Latn:
expires_at: Ističe
uses: Korišćenja
title: Pozovi ljude
- lists:
- errors:
- limit: Dostigli ste limit broja listi
media_attachments:
validations:
images_and_video: Ne može da se prikači video na status koji već ima slike
@@ -286,10 +283,6 @@ sr-Latn:
pagination:
next: Sledeći
prev: Prethodni
- preferences:
- other: Ostali
- posting_defaults: Posting defaults
- public_timelines: Public timelines
remote_follow:
missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog
sessions:
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 656b6f7638..8cb4bcb393 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -290,7 +290,7 @@ sr:
disable: Искључи
disabled: Искључен
enable: Укључи
- enable_hint: Када се омогући, Ваш сервер ће бити претплаћен на све јавне трубе са овог релеја, и почеће да шаље своје јавне трубу на њега.
+ enable_hint: Када се омогући, ваш сервер ће бити претплаћен на све јавне објаве са овог релеја, и почеће да шаље јавне објаве овог сервера на њега.
enabled: Укључен
inbox_url: URL Релеја
pending: Чека се одобрење релеја
@@ -359,6 +359,7 @@ sr:
title: Подразумевано искључи кориснике из индексирања претраживача
discovery:
public_timelines: Јавне временске линије
+ title: Откривање
statuses:
back_to_account: Назад на страну налога
media:
@@ -377,6 +378,17 @@ sr:
body: "%{reporter} је пријавио %{target}"
body_remote: Нека са домена %{domain} је пријавио %{target}
subject: Нова пријава за %{instance} (#%{id})
+ appearance:
+ advanced_web_interface: Напредно веб окружење
+ advanced_web_interface_hint: 'Ако желите да искористите целу ширину екрана, напредно веб окружење вам омогућује да конфигуришете много различитих колона да бисте видели онолико информација у исто време колико желите: почетну страницу, обавештења, здружену временску линију, било који број листа и хеш ознака.'
+ animations_and_accessibility: Анимације и приступачност
+ confirmation_dialogs: Дијалози потврде
+ discovery: Откривање
+ localization:
+ body: Mastodon преводе добровољци.
+ guide_link_text: Свако може допринети.
+ sensitive_content: Осетљив садржај
+ toot_layout: Распоред објава
application_mailer:
notification_preferences: Промени преференце Е-поште
settings: 'Промени подешавања е-поште: %{link}'
@@ -481,7 +493,7 @@ sr:
generic:
changes_saved_msg: Измене успешно сачуване!
copy: Копирај
- save_changes: Сними измене
+ save_changes: Сачувај промене
validation_errors:
few: Нешто није баш како треба! Прегледајте %{count} грешке испод
one: Нешто није баш како треба! Прегледајте грешке испод
@@ -517,9 +529,6 @@ sr:
expires_at: Истиче
uses: Коришћења
title: Позовите људе
- lists:
- errors:
- limit: Достигли сте лимит броја листи
media_attachments:
validations:
images_and_video: Не може да се прикачи видео на статус који већ има слике
@@ -552,7 +561,9 @@ sr:
subject: "%{name} је подржао/ла Ваш статус"
title: Нова подршка
notifications:
+ email_events: Догађаји за обавештења е-поштом
email_events_hint: 'Изаберите дешавања за која желите да примате обавештења:'
+ other_settings: Остала подешавања обавештења
pagination:
newer: Новије
next: Следеће
@@ -560,6 +571,7 @@ sr:
prev: Претходни
preferences:
other: Остало
+ posting_defaults: Подразумевана подешавања објављивања
public_timelines: Јавне временске линије
remote_follow:
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
@@ -609,7 +621,7 @@ sr:
back: Назад на Мастодон
delete: Брисање налога
development: Развој
- edit_profile: Измена налога
+ edit_profile: Уређивање профила
export: Извоз података
import: Увоз
import_and_export: Увоз и извоз
@@ -632,6 +644,7 @@ sr:
other: "%{count} видео записа"
boosted_from_html: Подржано од %{acct_link}
content_warning: 'Упозорење на садржај: %{warning}'
+ default_language: Исто као језик окружења
disallowed_hashtags:
few: 'садржи забрањене хештегове: %{tags}'
one: 'садржи забрањени хештег: %{tags}'
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 8558843d1c..86f9805e4c 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1127,8 +1127,6 @@ sv:
storage: Medialagring
featured_tags:
add_new: Lägg till ny
- errors:
- limit: Du har redan det maximala antalet utvalda hashtaggar
hint_html: "Vad är utvalda hashtaggar? De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt."
filters:
contexts:
@@ -1238,9 +1236,6 @@ sv:
expires_at: Utgår
uses: Användningar
title: Bjud in andra
- lists:
- errors:
- limit: Du har nått det maximala antalet listor
login_activities:
authentication_methods:
otp: tvåfaktorsautentiseringsapp
@@ -1557,7 +1552,6 @@ sv:
'7889238': 3 månader
min_age_label: Åldersgräns
min_favs: Behåll favoritmarkerade inlägg i minst
- min_favs_hint: Raderar inte något av dina inlägg som har blivit favoritmarkerat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal favoritmarkeringar
min_reblogs: Behåll boostade inlägg i minst
min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar
stream_entries:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index a18385f596..a4be17222f 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -89,6 +89,7 @@ th:
moderation:
active: ใช้งานอยู่
all: ทั้งหมด
+ disabled: ปิดใช้งานอยู่
pending: รอดำเนินการ
silenced: จำกัดอยู่
suspended: ระงับอยู่
@@ -130,6 +131,7 @@ th:
search: ค้นหา
search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
+ security: ความปลอดภัย
security_measures:
only_password: รหัสผ่านเท่านั้น
password_and_2fa: รหัสผ่านและ 2FA
@@ -419,6 +421,7 @@ th:
resolve: แปลงที่อยู่โดเมน
title: ปิดกั้นโดเมนอีเมลใหม่
no_email_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนอีเมลเนื่องจากไม่มีการเลือก
+ not_permitted: ไม่ได้รับอนุญาต
resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกันก็ตาม ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่
resolved_through_html: แปลงที่อยู่ผ่าน %{domain}
title: โดเมนอีเมลที่ปิดกั้นอยู่
@@ -463,6 +466,7 @@ th:
content_policies:
comment: หมายเหตุภายใน
description_html: คุณสามารถกำหนดนโยบายเนื้อหาที่จะนำไปใช้กับบัญชีทั้งหมดจากโดเมนนี้และโดเมนย่อยใดก็ตามของโดเมน
+ limited_federation_mode_description_html: คุณสามารถเลือกได้ว่าจะอนุญาตการติดต่อกับภายนอกกับโดเมนนี้หรือไม่
policies:
reject_media: ปฏิเสธสื่อ
reject_reports: ปฏิเสธรายงาน
@@ -573,11 +577,13 @@ th:
assign_to_self: มอบหมายให้ฉัน
assigned: ผู้ควบคุมที่ได้รับมอบหมาย
by_target_domain: โดเมนของบัญชีที่ได้รับการรายงาน
+ cancel: ยกเลิก
category: หมวดหมู่
category_description_html: จะอ้างถึงเหตุผลที่บัญชีและ/หรือเนื้อหานี้ได้รับการรายงานในการสื่อสารกับบัญชีที่ได้รับการรายงาน
comment:
none: ไม่มี
comment_description_html: 'เพื่อให้ข้อมูลเพิ่มเติม %{name} ได้เขียน:'
+ confirm: ยืนยัน
confirm_action: ยืนยันการกระทำการควบคุมต่อ @%{acct}
created_at: รายงานเมื่อ
delete_and_resolve: ลบโพสต์
@@ -778,6 +784,7 @@ th:
suspend: "%{name} ได้ระงับบัญชีของ %{target}"
appeal_approved: อุทธรณ์แล้ว
appeal_pending: รอดำเนินการการอุทธรณ์
+ appeal_rejected: ปฏิเสธการอุทธรณ์แล้ว
system_checks:
database_schema_check:
message_html: มีการโยกย้ายฐานข้อมูลที่รอดำเนินการ โปรดเรียกใช้การโยกย้ายเพื่อให้แน่ใจว่าแอปพลิเคชันทำงานตามที่คาดไว้
@@ -812,6 +819,7 @@ th:
other: แบ่งปันโดย %{count} คนในช่วงสัปดาห์ที่ผ่านมา
title: ลิงก์ที่กำลังนิยม
usage_comparison: แบ่งปัน %{today} ครั้งวันนี้ เทียบกับ %{yesterday} เมื่อวานนี้
+ not_allowed_to_trend: ไม่ได้รับอนุญาตให้ขึ้นแนวโน้ม
only_allowed: อนุญาตเท่านั้น
pending_review: การตรวจทานที่รอดำเนินการ
preview_card_providers:
@@ -940,6 +948,7 @@ th:
applications:
created: สร้างแอปพลิเคชันสำเร็จ
destroyed: ลบแอปพลิเคชันสำเร็จ
+ logout: ออกจากระบบ
regenerate_token: สร้างโทเคนการเข้าถึงใหม่
token_regenerated: สร้างโทเคนการเข้าถึงใหม่สำเร็จ
warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม!
@@ -976,6 +985,8 @@ th:
resend_confirmation: ส่งคำแนะนำการยืนยันใหม่
reset_password: ตั้งรหัสผ่านใหม่
rules:
+ accept: ยอมรับ
+ back: ย้อนกลับ
preamble: มีการตั้งและบังคับใช้กฎโดยผู้ควบคุมของ %{domain}
title: กฎพื้นฐานบางประการ
security: ความปลอดภัย
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index fb254e11b4..0e0edb4216 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -59,25 +59,25 @@ tr:
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 adımlı doğrulamayı kapat
+ disable_two_factor_authentication: 2 aşamalı doğrulamayı kapat
disabled: Kapalı
display_name: Görünen isim
domain: Alan adı
edit: Düzenle
email: E-posta
email_status: E-posta durumu
- enable: Dondurmayı Kaldır
+ 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çiler
+ followers: Takipçi
follows: Takip edilen
header: Üstbilgi
inbox_url: Gelen kutusu bağlantısı
invite_request_text: Katılma gerekçeleri
invited_by: Tarafından davet edildi
ip: IP
- joined: Katıldı
+ joined: Katılma tarihi
location:
all: Hepsi
local: Yerel
@@ -91,9 +91,10 @@ tr:
moderation:
active: Etkin
all: Hepsi
- pending: Bekliyor
+ disabled: Devre dışı bırakıldı
+ pending: Bekleyen
silenced: Sınırlı
- suspended: Uzaklaştırılanlar
+ suspended: Askıya Alınan
title: Denetim
moderation_notes: Denetleme notları
most_recent_activity: Son aktivite
@@ -111,7 +112,7 @@ tr:
promote: Yükselt
protocol: Protokol
public: Herkese açık
- push_subscription_expires: PuSH aboneliği dolumu
+ push_subscription_expires: PuSH aboneliği sona erdi
redownload: Profili yenile
redownloaded_msg: "%{username} kullanıcısının profili kökenden başarıyla yenilendi"
reject: Reddet
@@ -133,6 +134,7 @@ tr:
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:
only_password: Sadece parola
password_and_2fa: Parola ve İki aşamalı doğrulama
@@ -144,7 +146,7 @@ tr:
targeted_reports: Başkaları tarafından şikayet edildi
silence: Sustur
silenced: Susturulmuş
- statuses: Durumlar
+ statuses: Gönderiler
strikes: Önceki eylemler
subscribe: Abone ol
suspend: Askıya al
@@ -168,7 +170,7 @@ tr:
whitelisted: Beyaz listede
action_logs:
action_types:
- approve_appeal: İtirazı Kabul Et
+ 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
@@ -427,6 +429,7 @@ tr:
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: E-posta kara listesi
@@ -473,6 +476,7 @@ tr:
content_policies:
comment: İç not
description_html: Bu alan adındaki ve alt alan adlarındaki tüm hesaplara uygulanacak içerik ilkeleri belirleyebilirsiniz.
+ limited_federation_mode_description_html: Bu alan adıyla birleştirmeye izin verip vermediğinizi seçebilirsiniz.
policies:
reject_media: Medyayı reddet
reject_reports: Şikayetleri reddet
@@ -585,11 +589,13 @@ tr:
assign_to_self: Bana ata
assigned: Denetleyici atandı
by_target_domain: Şikayet edilen hesabın alan adı
+ cancel: İptal et
category: Kategori
category_description_html: Bu hesap ve/veya içeriğin bildirilme gerekçesi, bildirilen hesapla iletişimde alıntılanacaktır
comment:
none: Yok
comment_description_html: 'Daha fazla bilgi vermek için %{name} şunu yazdı:'
+ confirm: Onayla
confirm_action: "%{acct} üzerindeki denetleme eylemini onayla"
created_at: Şikayet edildi
delete_and_resolve: Gönderileri sil
@@ -629,11 +635,13 @@ tr:
actions:
delete_html: Kuralı ihlal eden gönderileri kaldır
mark_as_sensitive_html: Kuralı ihlal eden gönderilerin medyasını hassas olarak işaretle
+ silence_html: "@%{acct} hesabının erişimini oldukça kısıtla: profili ve içeriği sadece onları halihazırda takip edenler veya manuel olarak hesabına erişenlerce mümkün olacak"
suspend_html: "@%{acct} hesabını askıya al, profilini ve içeriğini erişilmez ve etkileşimi imkansız yap"
close_report: "#%{id} bildirimini çözüldü olarak işaretle"
close_reports_html: "@%{acct} hesabına yönelik tüm bildirimleri çözüldü olarak işaretle"
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
@@ -790,6 +798,7 @@ tr:
suspend: "%{name}, %{target} kullanıcısının hesabını askıya aldı"
appeal_approved: İtiraz Edildi
appeal_pending: İtiraz bekliyor
+ appeal_rejected: İtiraz reddedildi
system_checks:
database_schema_check:
message_html: Beklemede olan veritabanı güncellemeleri mevcut. Uygulamanın beklenildiği gibi çalışması için lütfen onları çalıştırın
@@ -825,6 +834,7 @@ tr:
other: Geçen hafta %{count} kişi paylaştı
title: Öne çıkan bağlantılar
usage_comparison: Bugün %{today} kere paylaşıldı, dün %{yesterday} kere paylaşılmıştı
+ not_allowed_to_trend: Öne çıkma izni yok
only_allowed: Sadece izin verilenler
pending_review: İnceleme bekliyor
preview_card_providers:
@@ -956,6 +966,7 @@ tr:
applications:
created: Uygulama başarıyla oluşturuldu
destroyed: Uygulama başarıyla silindi
+ logout: Oturumu kapat
regenerate_token: Erişim belirtecini yeniden oluştur
token_regenerated: Erişim belirteci başarıyla oluşturuldu
warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın!
@@ -992,6 +1003,8 @@ tr:
resend_confirmation: Onaylama talimatlarını tekrar gönder
reset_password: Parolayı sıfırla
rules:
+ accept: Onayla
+ back: Geri
preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır.
title: Bazı temel kurallar.
security: Güvenlik
@@ -1139,7 +1152,7 @@ tr:
featured_tags:
add_new: Yeni ekle
errors:
- limit: Zaten azami hashtag miktarı belirlediniz
+ limit: Zaten azami etiket sayısını öne çıkardınız
hint_html: "Öne çıkan etiketler nelerdir? Genel profilinizde belirgin bir şekilde görüntülenirler ve kişilerin genel yayınlarınıza özellikle bu etiketler altında göz atmalarına izin verir. Yaratıcı çalışmaları veya uzun vadeli projeleri takip etmek için harika bir araçtır."
filters:
contexts:
@@ -1251,7 +1264,7 @@ tr:
title: İnsanları davet et
lists:
errors:
- limit: En yüksek liste sayısına ulaştınız
+ limit: Azami liste sayısına ulaştınız
login_activities:
authentication_methods:
otp: iki aşamalı kimlik doğrulama uygulaması
@@ -1571,7 +1584,7 @@ tr:
'7889238': 3 ay
min_age_label: Zaman eşiği
min_favs: Şundan daha fazla beğenilen gönderileri sakla
- min_favs_hint: Bu belirtilenden daha fazla beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
+ min_favs_hint: En az bu belirtilen kadar beğeni alan gönderilerinizin herhangi birini silmez. Beğeni sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
min_reblogs: Şundan daha fazla teşvik edilen gönderileri sakla
min_reblogs_hint: Bu belirtilenden daha fazla teşvik edilen gönderilerinizin herhangi birini silmez. Teşvik sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
stream_entries:
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index 01b491b11b..9e03822489 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -179,10 +179,6 @@ tt:
next: Киләсе
prev: Алдыгы
truncate: "…"
- preferences:
- other: Башка
- posting_defaults: Posting defaults
- public_timelines: Public timelines
relationships:
following: Язылгансыз
sessions:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index dd6d42daaa..b90f014001 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -95,6 +95,7 @@ uk:
moderation:
active: Активний
all: Усі
+ disabled: Вимкнено
pending: Очікують
silenced: Обмежені
suspended: Призупинені
@@ -139,6 +140,7 @@ uk:
search: Пошук
search_same_email_domain: Інші користувачі з тим самим поштовим доменом
search_same_ip: Інші користувачі з тим самим IP
+ security: Безпека
security_measures:
only_password: Лише пароль
password_and_2fa: Пароль та 2FA
@@ -443,6 +445,7 @@ uk:
resolve: Розв'язати домен
title: Нове блокування поштового домену
no_email_domain_block_selected: Жодні налаштування блокування доменів електронної пошти не було змінено, оскільки жоден з них не було обрано
+ not_permitted: Не дозволено
resolved_dns_records_hint_html: Ім'я домену резолвиться в наступні домени MX, які в кінцевому рахунку відповідають за прийняття електронної пошти. Блокування домену MX заблокує реєстрацію з будь-якої e-mail адреси, яка використовує однаковий домен MX, навіть якщо доменне ім'я буде інакше. Будьте обережні, щоб не блокувати великих поштових провайдерів.
resolved_through_html: Розв'язано через %{domain}
title: Чорний список поштових доменів
@@ -493,6 +496,7 @@ uk:
content_policies:
comment: Внутрішня примітка
description_html: Ви можете визначити правила вмісту що буде застосовано до всіх облікових записів із цього домену та будь-якого з його піддоменів.
+ limited_federation_mode_description_html: Ви можете вибрати, чи дозволити федерацію з цим доменом.
policies:
reject_media: Відхилити медіа
reject_reports: Відхилити скарги
@@ -609,11 +613,13 @@ uk:
assign_to_self: Призначити мені
assigned: Призначений модератор
by_target_domain: Домен облікового запису, на який скаржаться
+ cancel: Скасувати
category: Категорія
category_description_html: Причина скарги на цей обліковий запис та/або вміст, яку буде вказано у звіті
comment:
none: Немає
comment_description_html: 'Щоб надати більше відомостей, %{name} пише:'
+ confirm: Підтвердити
confirm_action: Підтвердьте модераційну дію щодо @%{acct}
created_at: Створено
delete_and_resolve: Видалити дописи
@@ -820,6 +826,7 @@ uk:
suspend: "%{name} заморожує обліковий запис %{target}"
appeal_approved: Оскаржено
appeal_pending: Оскарження в очікуванні
+ appeal_rejected: Апеляцію відхилено
system_checks:
database_schema_check:
message_html: Існують відкладені перенесення бази даних. Запустіть їх, щоб забезпечити очікувану роботу програми
@@ -857,6 +864,7 @@ uk:
other: Поширили %{count} людей за останній тиждень
title: Популярні посилання
usage_comparison: Сьогодні поширено %{today} разів, у порівнянні з %{yesterday} вчора
+ not_allowed_to_trend: Не допускається тенденція
only_allowed: Тільки дозволене
pending_review: Очікує перевірки
preview_card_providers:
@@ -994,6 +1002,7 @@ uk:
applications:
created: Застосунок успішно створений
destroyed: Застосунок успішно видалений
+ logout: Вийти
regenerate_token: Перегенерувати токен доступу
token_regenerated: Токен доступу успішне перегенеровано
warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким!
@@ -1030,6 +1039,8 @@ uk:
resend_confirmation: Повторно відправити інструкції з підтвердження
reset_password: Скинути пароль
rules:
+ accept: Прийняти
+ back: Назад
preamble: Вони налаштовані та закріплені модераторами %{domain}.
title: Деякі основні правила.
security: Зміна паролю
@@ -1637,7 +1648,7 @@ uk:
'7889238': 3 місяці
min_age_label: Поріг давності
min_favs: Залишати дописи в обраному більше ніж
- min_favs_hint: Не видаляти ваших дописів, що отримали більше вказаної кількості додавання до закладок. Залиште порожнім, щоб видаляти дописи незалежно від кількості їхнього додавання до обраних
+ min_favs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень
min_reblogs: Залишати дописи, поширені більше ніж
min_reblogs_hint: Не видаляти ваших дописів, що були поширені більш ніж вказану кількість разів. Залиште порожнім, щоб видаляти дописи, попри кількість їхніх поширень
stream_entries:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 3417761099..c4ffaa1dea 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -89,6 +89,7 @@ vi:
moderation:
active: Hoạt động
all: Tất cả
+ disabled: Đã tắt
pending: Chờ
silenced: Hạn chế
suspended: Vô hiệu hóa
@@ -130,6 +131,7 @@ vi:
search: Tìm kiếm
search_same_email_domain: Tra cứu email
search_same_ip: Tra cứu IP
+ security: Bảo mật
security_measures:
only_password: Chỉ mật khẩu
password_and_2fa: Mật khẩu và 2FA
@@ -419,6 +421,7 @@ vi:
resolve: Xử lý tên miền
title: Chặn tên miền email mới
no_email_domain_block_selected: Không có chặn e-mail nào thay đổi vì không có mục nào được chọn
+ not_permitted: Không cho phép
resolved_dns_records_hint_html: Tên miền phân giải thành các tên miền MX sau, các tên miền này chịu trách nhiệm cuối cùng trong việc chấp nhận email. Chặn tên miền MX sẽ chặn đăng ký từ bất kỳ địa chỉ email nào sử dụng cùng một tên miền MX, ngay cả khi tên miền hiển thị là khác. Cẩn thận đừng chặn những dịch vụ email lớn.
resolved_through_html: Đã xử lý thông qua %{domain}
title: Tên miền email đã chặn
@@ -463,6 +466,7 @@ vi:
content_policies:
comment: Lưu ý nội bộ
description_html: Bạn có thể xác định các chính sách nội dung sẽ được áp dụng cho tất cả các tài khoản trên máy chủ này và bất kỳ tên miền phụ nào của nó.
+ limited_federation_mode_description_html: Bạn có thể chọn nếu muốn cho phép liên hợp với máy chủ này.
policies:
reject_media: Từ chối media
reject_reports: Từ chối báo cáo
@@ -573,11 +577,13 @@ vi:
assign_to_self: Giao cho tôi
assigned: Người xử lý
by_target_domain: Tên tài khoản bị báo cáo
+ cancel: Hủy bỏ
category: Phân loại
category_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ
comment:
none: Không có mô tả
comment_description_html: "%{name} cho biết thêm:"
+ confirm: Xác nhận
confirm_action: Xác nhận kiểm duyệt với %{acct}
created_at: Báo cáo lúc
delete_and_resolve: Xóa tút
@@ -778,6 +784,7 @@ vi:
suspend: "%{name} đã vô hiệu hóa %{target}"
appeal_approved: Đã khiếu nại
appeal_pending: Đang kháng cáo
+ appeal_rejected: Khiếu nại bị từ chối
system_checks:
database_schema_check:
message_html: Có cơ sở dữ liệu đang chờ xử lý. Xin khởi động nó để ứng dụng có thể hoạt động một cách ổn định nhất
@@ -812,6 +819,7 @@ vi:
other: "%{count} người chia sẻ tuần rồi"
title: Liên kết nổi bật
usage_comparison: Chia sẻ %{today} lần hôm nay, so với %{yesterday} lần hôm qua
+ not_allowed_to_trend: Không được phép thành xu hướng
only_allowed: Chỉ cho phép
pending_review: Đang chờ
preview_card_providers:
@@ -940,6 +948,7 @@ vi:
applications:
created: Đơn đăng ký được tạo thành công
destroyed: Đã xóa đơn đăng ký
+ logout: Đăng xuất
regenerate_token: Tạo lại mã truy cập
token_regenerated: Mã truy cập được tạo lại thành công
warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai!
@@ -976,6 +985,8 @@ vi:
resend_confirmation: Gửi lại email xác minh
reset_password: Đặt lại mật khẩu
rules:
+ accept: Chấp nhận
+ back: Quay lại
preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}.
title: Nội quy máy chủ.
security: Bảo mật
@@ -1541,7 +1552,6 @@ vi:
'7889238': 3 tháng
min_age_label: Thời điểm
min_favs: Giữ những tút yêu thích lâu hơn
- min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
min_reblogs: Giữ những tút đã đăng lại lâu hơn
min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
stream_entries:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 78b0f5d133..300a20ecd6 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -89,6 +89,7 @@ zh-CN:
moderation:
active: 活跃
all: 全部
+ disabled: 已禁用
pending: 待审核
silenced: 受限
suspended: 已封禁
@@ -130,6 +131,7 @@ zh-CN:
search: 搜索
search_same_email_domain: 其他具有相同电子邮箱域名的用户
search_same_ip: 具有相同IP的其他用户
+ security: 安全性
security_measures:
only_password: 仅密码
password_and_2fa: 密码和双重认证
@@ -419,6 +421,7 @@ zh-CN:
resolve: 解析域名
title: 添加电子邮件域名屏蔽
no_email_domain_block_selected: 没有任何项目被选中,因此未能更改电子邮件域名屏蔽列表
+ not_permitted: 未允许
resolved_dns_records_hint_html: 该域名解析的 MX 记录所指向的域名如下,这些域名被用于接收电子邮件。 即使电子邮件地址域名与 MX 域名不同,屏蔽一个 MX 域名意味着阻止任何使用相同 MX 域名的电子邮件地址注册本站账户。 请小心不要误屏蔽主要的电子邮件提供商。
resolved_through_html: 通过 %{domain} 解析
title: 电子邮件域名屏蔽
@@ -463,6 +466,7 @@ zh-CN:
content_policies:
comment: 内部备注
description_html: 你可以设置应用于此域名所有账号和其所有子域名的内容策略。
+ limited_federation_mode_description_html: 您可以选择是否允许与该联邦联合。
policies:
reject_media: 拒收媒体
reject_reports: 拒收举报
@@ -573,11 +577,13 @@ zh-CN:
assign_to_self: 接管
assigned: 已接管的监察员
by_target_domain: 被举报账户的域名
+ cancel: 取消
category: 类别
category_description_html: 在与被举报账户的通信时,将引用该账号和/或内容被举报的原因
comment:
none: 没有
comment_description_html: "%{name} 补充道:"
+ confirm: 确认
confirm_action: 确认对 @%{acct} 的管理操作
created_at: 举报时间
delete_and_resolve: 删除嘟文
@@ -778,6 +784,7 @@ zh-CN:
suspend: "%{name} 封禁了用户 %{target}"
appeal_approved: 已申诉
appeal_pending: 申诉待处理
+ appeal_rejected: 申诉已驳回
system_checks:
database_schema_check:
message_html: 有待处理的数据库迁移。请运行它们以确保应用程序正常运行。
@@ -812,6 +819,7 @@ zh-CN:
other: 过去一周内被 %{count} 个人分享过
title: 热门链接
usage_comparison: 今日被分享 %{today} 次,前一日为 %{yesterday} 次
+ not_allowed_to_trend: 不允许的趋势
only_allowed: 仅显示已允许的内容
pending_review: 待审核
preview_card_providers:
@@ -940,6 +948,7 @@ zh-CN:
applications:
created: 应用创建成功
destroyed: 应用删除成功
+ logout: 登出
regenerate_token: 重置访问令牌
token_regenerated: 访问令牌重置成功
warning: 一定小心,千万不要把它分享给任何人!
@@ -976,6 +985,8 @@ zh-CN:
resend_confirmation: 重新发送确认邮件
reset_password: 重置密码
rules:
+ accept: 接受
+ back: 返回
preamble: 这些由 %{domain} 监察员设置和执行。
title: 一些基本规则。
security: 账户安全
@@ -1123,7 +1134,7 @@ zh-CN:
featured_tags:
add_new: 添加新条目
errors:
- limit: 你所推荐的话题标签数已达上限
+ limit: 您所推荐的话题标签数已达上限
hint_html: "什么是精选话题标签? 它们被显示在你的公开个人资料中的突出位置,人们可以在这些标签下浏览你的公共嘟文。 它们是跟踪创作或长期项目的进度的重要工具。"
filters:
contexts:
@@ -1227,7 +1238,7 @@ zh-CN:
title: 邀请用户
lists:
errors:
- limit: 你所建立的列表数量已经达到上限
+ limit: 您已达到列表数量的上限
login_activities:
authentication_methods:
otp: 双因素认证应用
@@ -1541,7 +1552,7 @@ zh-CN:
'7889238': 3个月
min_age_label: 过期阈值
min_favs: 保留如下嘟文:喜欢数超过
- min_favs_hint: 喜欢数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。
+ min_favs_hint: 喜欢数超过该阈值的的嘟文都不会被删除。如果留空,则无论嘟文获得多少喜欢,都将被删除。
min_reblogs: 保留如下嘟文:转嘟数超过
min_reblogs_hint: 转嘟数超过该阈值的的嘟文不会被删除。如果留空,则无论嘟文获得多少转嘟,都将被删除。
stream_entries:
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 3400405d46..1a3238b741 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -89,6 +89,7 @@ zh-HK:
moderation:
active: 活躍
all: 全部
+ disabled: 已停用
pending: 處理中
silenced: 受限
suspended: 已停權
@@ -130,6 +131,7 @@ zh-HK:
search: 搜尋
search_same_email_domain: 其他有相同電郵網域的使用者
search_same_ip: 其他有相同 IP 位址的使用者
+ security: 安全性
security_measures:
only_password: 僅密碼
password_and_2fa: 密碼和兩步認證
@@ -419,6 +421,7 @@ zh-HK:
resolve: 解析網域
title: 新增電郵網域阻隔
no_email_domain_block_selected: 未選取任何電郵網域限制,因此並未變更
+ not_permitted: 無權限
resolved_dns_records_hint_html: 域名解析為以下 MX 網域,這些網域主要用來接收電子郵件。封鎖一個 MX 網域,即使域名看起來不同,也會阻止任何用相同 MX 網域的電郵地址進行註冊。注意不要封鎖主要的電子郵件供應商。
resolved_through_html: 透過 %{domain} 解析
title: 電郵網域阻隔
@@ -433,6 +436,7 @@ zh-HK:
private_comment_description_html: 為了幫助你追蹤匯入封鎖的源頭,匯入的封鎖會在建立時將會有以下的私密備註:%{comment}
private_comment_template: 於 %{date} 從 %{source} 匯入
title: 匯入封鎖的網域
+ invalid_domain_block: 由於以下錯誤,已略過一個或多個域名封鎖:%{error}
new:
title: 匯入封鎖的網域
no_file: 未選擇檔案
@@ -462,6 +466,7 @@ zh-HK:
content_policies:
comment: 內部備註
description_html: 你可以自行制訂內容政策,政策將用於此網域和其子網域的所有帳號。
+ limited_federation_mode_description_html: 你可選擇是否允許此網域加入跨站。
policies:
reject_media: 拒絕接收媒體
reject_reports: 拒絕檢舉
@@ -563,17 +568,23 @@ zh-HK:
mark_as_sensitive_description_html: 被檢舉的帖文中的媒體會被標記為敏感內容,並記錄一次警告,以便日後加快處理同一帳號的違規行為。
other_description_html: 查看更多控制帳號行為,以及自訂與被檢舉帳號溝通的選項。
resolve_description_html: 不會對被檢舉的帳號採取任何動作,也不會記錄警告,檢舉報告將會結案。
+ silence_description_html: 此帳號將會只有追蹤者或手動搜尋它的人才可以看見,大幅限制了它的曝光。你可隨時恢復它。關閉所有對此帳號的檢舉報告。
+ suspend_description_html: 此帳號及其所有內容將不可再被存取,並且最終會被刪除,無法再進行互動。可於 30 天內撤銷此動作。關閉所有對此帳號的檢舉報告。
actions_description_html: 決定對此檢舉採取哪種措施。如果對被檢舉帳號採取懲罰措施,除非選取了垃圾訊息分類,否則將向他們發送一封電郵通知。
+ actions_description_remote_html: 決定對此檢舉採取哪種動作。這只會影響你的伺服器與此遠端帳號的通訊和處理其內容的方式。
add_to_report: 加入更多到檢舉
are_you_sure: 你確認嗎?
assign_to_self: 指派給自己
assigned: 指派版主
by_target_domain: 被舉報帳號的域名
+ cancel: 取消
category: 分類
category_description_html: 此帳號及/或內容被檢舉的原因,將會被引用在與被檢舉帳號的通訊中。
comment:
none: 沒有
comment_description_html: 為了提供更多資訊,%{name} 寫道:
+ confirm: 確定
+ confirm_action: 確認對 @%{acct} 執行管理操作
created_at: 日期
delete_and_resolve: 刪除帖文
forwarded: 已轉寄
@@ -590,6 +601,7 @@ zh-HK:
placeholder: 記錄已執行的動作,或其他相關的更新……
title: 筆記
notes_description_html: 查看並給其他管理員和日後的自己留下筆記
+ processed_msg: '已成功處理檢舉報告 #%{id}'
quick_actions_description_html: 採取快捷操作或向下捲動以查看檢舉內容:
remote_user_placeholder: 來自 %{instance} 的遠端使用者
reopen: 重開舉報個案
@@ -602,9 +614,28 @@ zh-HK:
status: 狀態
statuses: 被檢舉的內容
statuses_description_html: 違規內容將被引用在被檢舉帳號的通訊中
+ summary:
+ action_preambles:
+ delete_html: 你即將移除@%{acct} 的部份帖文。這會:
+ mark_as_sensitive_html: 你即將把 @%{acct} 的部份帖文標記為敏感內容。這會:
+ silence_html: 你即將限制@%{acct} 的帳號。這會:
+ suspend_html: 你即將把 @%{acct} 的帳號停權。這會:
+ actions:
+ delete_html: 移除違規帖文
+ mark_as_sensitive_html: 將違規帖文的媒體標記為敏感內容
+ silence_html: 僅讓 @%{acct} 的追蹤者和手動搜尋其個人檔案的人看到他的個人檔案和內容,從而大幅限制其曝光。
+ suspend_html: 把 @%{acct} 停權,使其個人檔案和內容無法被存取和互動。
+ close_report: '將檢舉報告 #%{id} 標記為已解決'
+ close_reports_html: 將針對 @%{acct} 的所有檢舉報告標記為已解決
+ delete_data_html: 從現在起 30 天後移除 @%{acct} 的個人檔案和內容,除非在此期間撤銷對他們的停權。
+ preview_preamble_html: "@%{acct} 將收到警告,內容如下:"
+ record_strike_html: 記錄對 @%{acct} 的警告,有助你加快處理此帳號日後的違規行為
+ send_email_html: 向 @%{acct} 發送警告郵件
+ warning_placeholder: 選填審核動作的補充理由。
target_origin: 被檢舉帳號來源
title: 舉報
unassign: 取消指派
+ unknown_action_msg: 未知的動作:%{action}
unresolved: 未處理
updated_at: 更新
view_profile: 查看個人檔案
@@ -697,6 +728,8 @@ zh-HK:
preamble: 呈現有趣的內容有助於吸引不認識 Mastodon 的使用者新手上路。控制各種探索功能在你的伺服器上的運作方式。
profile_directory: 個人檔案目錄
public_timelines: 公共時間軸
+ publish_discovered_servers: 公開已知的伺服器
+ publish_statistics: 公佈統計數據
title: 探索
trends: 熱門
domain_blocks:
@@ -751,6 +784,7 @@ zh-HK:
suspend: "%{name} 將 %{target} 的帳號停權"
appeal_approved: 已申訴
appeal_pending: 申訴待審中
+ appeal_rejected: 申訴被駁回
system_checks:
database_schema_check:
message_html: 有待處理的資料庫轉移 (database migration) 。請執行以確保應用程式行為合乎預期
@@ -785,6 +819,7 @@ zh-HK:
other: 上週有 %{count} 人分享
title: 熱門連結
usage_comparison: 今天被分享了 %{today} 次,相較於昨天 %{yesterday} 次
+ not_allowed_to_trend: 不允許登上趨勢
only_allowed: 僅允許
pending_review: 等待審核中
preview_card_providers:
@@ -913,6 +948,7 @@ zh-HK:
applications:
created: 已建立應用程式
destroyed: 已刪除應用程式
+ logout: 登出
regenerate_token: 重設 token
token_regenerated: 已重設 token
warning: 警告,不要把它分享給任何人!
@@ -920,6 +956,8 @@ zh-HK:
auth:
apply_for_account: 申請帳號
change_password: 密碼
+ confirmations:
+ wrong_email_hint: 如果該電郵地址不正確,你可以在帳號設定中修改。
delete_account: 刪除帳號
delete_account_html: 如果你想刪除你的帳號,請點擊這裡繼續。你需要確認你的操作。
description:
@@ -947,6 +985,8 @@ zh-HK:
resend_confirmation: 重發確認指示電郵
reset_password: 重設密碼
rules:
+ accept: 接受
+ back: 返回
preamble: 這些是由 %{domain} 管理員制訂和執行的。
title: 一些基本規則。
security: 登入資訊
@@ -1093,8 +1133,6 @@ zh-HK:
storage: 媒體容量大小
featured_tags:
add_new: 新增
- errors:
- limit: 你所推薦的標籤數量已經達到上限
hint_html: "甚麼是推薦主題標籤? 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!"
filters:
contexts:
@@ -1196,9 +1234,6 @@ zh-HK:
expires_at: 失效時間
uses: 已使用次數
title: 邀請用戶
- lists:
- errors:
- limit: 你所建立的列表數量已經達到上限
login_activities:
authentication_methods:
otp: 兩步認證軟體
@@ -1339,6 +1374,9 @@ zh-HK:
unrecognized_emoji: 不能識別這個emoji
relationships:
activity: 帳戶活動
+ confirm_follow_selected_followers: 你確定要追蹤選取的追蹤者嗎?
+ confirm_remove_selected_followers: 你確定要移除選取的追蹤者嗎?
+ confirm_remove_selected_follows: 你確定要移除選取的追蹤者嗎?
dormant: 潛在
follow_selected_followers: 關注所選的追隨者
followers: 追隨者
@@ -1509,7 +1547,6 @@ zh-HK:
'7889238': 3 個月
min_age_label: 按時間篩選
min_favs: 保留超過嘟文最愛門檻
- min_favs_hint: 如果您嘟文已收到超過最愛門檻則不會刪除。留白表示不論最愛數量皆刪除嘟文。
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。
stream_entries:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index c83dc27067..750f15f0b5 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -11,7 +11,7 @@ zh-TW:
followers:
other: 跟隨者
following: 正在跟隨
- instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。
+ instance_actor_flash: 此帳號是用來代表此伺服器的虛擬執行者,而非個別使用者。它的用途為維繫聯邦宇宙,且不應被停權。
last_active: 上次活躍時間
link_verified_on: 此連結的所有權已在 %{date} 檢查過
nothing_here: 暫時沒有內容可供顯示!
@@ -32,7 +32,7 @@ zh-TW:
add_email_domain_block: 將電子郵件網域加入黑名單
approve: 批准
approved_msg: 成功審核了 %{username} 的新帳號申請
- are_you_sure: 您確定嗎?
+ are_you_sure: 您確定嗎?
avatar: 大頭貼
by_domain: 站點
change_email:
@@ -54,7 +54,7 @@ zh-TW:
delete: 刪除資料
deleted: 已刪除
demote: 降級
- destroyed_msg: 即將刪除 %{username} 的數據
+ destroyed_msg: 即將刪除 %{username} 的資料
disable: 停用
disable_sign_in_token_auth: 停用電子郵件 token 驗證
disable_two_factor_authentication: 停用兩階段認證
@@ -89,6 +89,7 @@ zh-TW:
moderation:
active: 活躍
all: 全部
+ disabled: 已停用
pending: 等待中
silenced: 受限的
suspended: 已停權
@@ -130,6 +131,7 @@ zh-TW:
search: 搜尋
search_same_email_domain: 其他有同個電子郵件網域的使用者
search_same_ip: 其他有同個 IP 的使用者
+ security: 安全性
security_measures:
only_password: 僅使用密碼
password_and_2fa: 密碼及兩階段驗證 (2FA)
@@ -146,8 +148,8 @@ zh-TW:
subscribe: 訂閱
suspend: 停權
suspended: 已停權
- suspension_irreversible: 已永久刪除這個帳號的數據。雖然這個帳號的數據已被永久刪除,但是您仍然可以取消暫停這個帳號。
- suspension_reversible_hint_html: 這個帳號已被暫停,所有數據將會在 %{date} 被刪除。在此之前,您可以完全回復您的帳號。如果您想即時刪除這個帳號的數據,您可以在下面進行操作。
+ suspension_irreversible: 已永久刪除此帳號的資料。您可以取消這個帳號的停權狀態,但無法還原已刪除的資料。
+ suspension_reversible_hint_html: 這個帳號已被停權,所有資料將會於 %{date} 被刪除。在此之前,此帳號可以被完全復原。如果您想即時刪除這個帳號的資料,可以在下面進行操作。
title: 帳號
unblock_email: 解除封鎖電子郵件地址
unblocked_email_msg: 成功解除封鎖 %{username} 的電子郵件地址
@@ -157,7 +159,7 @@ zh-TW:
undo_suspension: 取消停權
unsilenced_msg: 成功解除 %{username} 的帳號限制
unsubscribe: 取消訂閱
- unsuspended_msg: 成功取消暫停 %{username} 的帳號
+ unsuspended_msg: 已成功取消停權 %{username} 的帳號
username: 使用者名稱
view_domain: 查看站台概要
warn: 警告
@@ -242,11 +244,11 @@ zh-TW:
create_user_role_html: "%{name} 建立了 %{target} 角色"
demote_user_html: "%{name} 將使用者 %{target} 降級"
destroy_announcement_html: "%{name} 刪除了公告 %{target}"
- destroy_canonical_email_block_html: "%{name} 取消了 hash 為 %{target} 之 e-mail 的封鎖"
+ destroy_canonical_email_block_html: "%{name} 已解除封鎖 hash 為 %{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_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} 的嘟文"
@@ -270,12 +272,12 @@ zh-TW:
resolve_report_html: "%{name} 處理了 %{target} 的檢舉"
sensitive_account_html: "%{name} 將 %{target} 的媒體檔案標記為敏感內容"
silence_account_html: "%{name} 靜音了使用者 %{target}"
- suspend_account_html: "%{name} 停權了使用者 %{target}"
+ suspend_account_html: "%{name} 已停權 %{target} 的帳號"
unassigned_report_html: "%{name} 取消指派 %{target} 的檢舉"
- unblock_email_account_html: "%{name} 解除封鎖了 %{target} 的電子郵件地址"
+ unblock_email_account_html: "%{name} 已解除封鎖 %{target} 的電子郵件地址"
unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案的敏感狀態取消"
unsilence_account_html: "%{name} 取消了使用者 %{target} 的靜音狀態"
- unsuspend_account_html: "%{name} 取消了使用者 %{target} 的停權狀態"
+ unsuspend_account_html: "%{name} 已取消停權 %{target} 的帳號"
update_announcement_html: "%{name} 更新了公告 %{target}"
update_custom_emoji_html: "%{name} 更新了自訂表情符號 %{target}"
update_domain_block_html: "%{name} 更新了 %{target} 之網域封鎖"
@@ -378,7 +380,7 @@ zh-TW:
domain: 站點
edit: 更改封鎖的站台
existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。
- existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先把他取消封鎖。
+ existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先 解除封鎖。
export: 匯出
import: 匯入
new:
@@ -402,7 +404,7 @@ zh-TW:
reject_media_hint: 刪除本地快取的媒體檔案,並且不再接收來自該站點的任何媒體檔案。與停權無關
reject_reports: 拒絕檢舉
reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關
- undo: 復原欲封鎖域名
+ undo: 撤銷網域封鎖
view: 顯示阻擋的網域
email_domain_blocks:
add_new: 加入新項目
@@ -419,6 +421,7 @@ zh-TW:
resolve: 解析網域
title: 新增電子郵件黑名單項目
no_email_domain_block_selected: 因未選取電子郵件網域黑名單,所以什麼事都沒發生
+ not_permitted: 無權限
resolved_dns_records_hint_html: 網域名稱解析為以下 MX 網域,這些網域最終負責接收電子郵件。封鎖 MX 網域將會封鎖任何來自使用相同 MX 網域的電子郵件註冊,即便可見的域名是不同的也一樣。請注意,不要封鎖主要的電子郵件服務提供商。
resolved_through_html: 透過 %{domain} 解析
title: 電子郵件黑名單
@@ -465,6 +468,7 @@ zh-TW:
content_policies:
comment: 內部備註
description_html: 您可以定義對所有此網域帳號及其子網域所實施之內容政策。
+ limited_federation_mode_description_html: 您可以選擇是否允許此網域加入聯邦宇宙。
policies:
reject_media: 拒絕多媒體
reject_reports: 拒絕檢舉
@@ -553,8 +557,8 @@ zh-TW:
status: 狀態
title: 中繼
report_notes:
- created_msg: 檢舉備註建立成功!
- destroyed_msg: 檢舉備註刪除成功!
+ created_msg: 已成功新增檢舉備註!
+ destroyed_msg: 已成功刪除檢舉備註!
reports:
account:
notes:
@@ -571,15 +575,17 @@ zh-TW:
actions_description_html: 決定應對此報告採取何種行動。若您對檢舉之帳號採取懲罰措施,則將對他們發送 e-mail 通知,如非選擇了 垃圾郵件 類別。
actions_description_remote_html: 決定將對此檢舉報告採取何種動作。這將僅作用於您的伺服器與此遠端帳號及其內容之通訊行為。
add_to_report: 加入更多至報告
- are_you_sure: 您確定嗎?
+ are_you_sure: 您確定嗎?
assign_to_self: 指派給自己
assigned: 指派站務
by_target_domain: 檢舉帳號之網域
+ cancel: 取消
category: 分類
category_description_html: 此帳號及/或被檢舉內容之原因會被引用在檢舉帳號通知中
comment:
none: 無
comment_description_html: 提供更多資訊,%{name} 寫道:
+ confirm: 確認
confirm_action: 確認對 @%{acct} 執行站務動作
created_at: 日期
delete_and_resolve: 刪除嘟文
@@ -615,12 +621,12 @@ zh-TW:
delete_html: 您將要 移除 某些 @%{acct} 之嘟文。此將會:
mark_as_sensitive_html: 您將要 標記 某些 @%{acct} 之嘟文為 敏感內容 。此將會:
silence_html: 您將要 限制@%{acct} 之帳號。此將會:
- suspend_html: 您將要 暫停@%{acct} 之帳號。此將會:
+ suspend_html: 您將要 停權@%{acct} 之帳號。此將會:
actions:
delete_html: 移除違反規則之嘟文
mark_as_sensitive_html: 將違反規則之嘟文多媒體標記為敏感內容
silence_html: 藉由標記他們的個人檔案與內容為僅可見於已跟隨帳號或手動查詢此個人檔案,此將嚴格地限制 @%{acct} 之觸及率
- suspend_html: 暫停 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動
+ suspend_html: 停權 @%{acct},將他們的個人檔案與內容標記為無法存取及無法與之互動
close_report: '將檢舉報告 #%{id} 標記為已處理'
close_reports_html: 將 所有 對於 @%{acct} 之檢舉報告標記為已處理
delete_data_html: 於即日起 30 天後刪除 @%{acct}之個人檔案與內容,除非他們於期限前被解除暫停
@@ -780,6 +786,7 @@ zh-TW:
suspend: "%{name} 將 %{target} 的帳號停權"
appeal_approved: 已申訴
appeal_pending: 申訴待審中
+ appeal_rejected: 申訴被駁回
system_checks:
database_schema_check:
message_html: 發現尚待處理的資料庫遷移 (database migration)。請執行它們以確保應用程式如期運行。
@@ -790,7 +797,7 @@ zh-TW:
version_comparison: Elasticsearch %{running_version} 版正在執行,需要 %{required_version} 版。
rules_check:
action: 管理服务器规则
- message_html: 您没有定義任何伺服器規則。
+ message_html: 您尚未定義任何伺服器規則。
sidekiq_process_check:
message_html: 沒有佇列 %{value} 的 Sidekiq 行程,請檢查您的 Sidekiq 設定組態
tags:
@@ -814,6 +821,7 @@ zh-TW:
other: 上週被 %{count} 名使用者分享
title: 熱門連結
usage_comparison: 於今日被 %{today} 人分享,相較於昨日 %{yesterday} 人
+ not_allowed_to_trend: 不允許登上熱門
only_allowed: 僅允許
pending_review: 等待審核中
preview_card_providers:
@@ -861,7 +869,7 @@ zh-TW:
add_new: 新增
delete: 刪除
edit_preset: 編輯預設警告
- empty: 您未曾定義任何預設警告
+ empty: 您尚未定義任何預設警告。
title: 管理預設警告
webhooks:
add_new: 新增端點
@@ -942,6 +950,7 @@ zh-TW:
applications:
created: 已建立應用程式
destroyed: 已刪除應用程式
+ logout: 登出
regenerate_token: 重新產生存取 token
token_regenerated: 已重新產生存取 token
warning: 警告,不要把它分享給任何人!
@@ -978,6 +987,8 @@ zh-TW:
resend_confirmation: 重新寄送確認指引
reset_password: 重設密碼
rules:
+ accept: 接受
+ back: 上一頁
preamble: 這些被 %{domain} 的管管們制定以及實施。
title: 一些基本守則。
security: 登入資訊
@@ -987,10 +998,10 @@ zh-TW:
email_settings_hint_html: 請確認 e-mail 是否傳送至 %{email} 。如果電子郵件地址不正確的話,可以從帳號設定修改。
title: 設定
sign_in:
- preamble_html: 請登入您於 %{domain} 之帳號密碼。若您的帳號託管於其他伺服器,您將無法於此登入。
+ preamble_html: 請使用您在 %{domain} 的帳號密碼登入。若您的帳號託管於其他伺服器,您將無法在此登入。
title: 登入 %{domain}
sign_up:
- preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。
+ preamble: 在這個 Mastodon 伺服器上有個帳號的話,您將能跟隨聯邦宇宙網路中的任何人,無論他們的帳號託管於哪個伺服器。
title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
@@ -1092,7 +1103,7 @@ zh-TW:
errors:
'400': 您所送出的請求無效或格式不正確。
'403': 您沒有檢視這個頁面的權限。
- '404': 您所尋找的網頁不存在。
+ '404': 您要找的頁面不存在。
'406': 此頁面無法以請求的格式顯示。
'410': 您所尋找的網頁此處已不存在。
'422':
@@ -1125,7 +1136,7 @@ zh-TW:
featured_tags:
add_new: 新增
errors:
- limit: 您所推薦的標籤數量已經達到上限
+ limit: 您所推薦的主題標籤數量已達上限
hint_html: "推薦主題標籤是什麼? 這些主題標籤將顯示於您的公開個人檔案頁,訪客可以藉此閱覽您標示了這些標籤的嘟文,拿來展示創意作品或者長期更新的專案很好用唷!"
filters:
contexts:
@@ -1229,7 +1240,7 @@ zh-TW:
title: 邀請使用者
lists:
errors:
- limit: 您所建立的列表數量已經達到上限
+ limit: 您所建立的列表數量已達上限
login_activities:
authentication_methods:
otp: 兩階段驗證應用程式
@@ -1372,7 +1383,7 @@ zh-TW:
activity: 帳號動態
confirm_follow_selected_followers: 您確定要跟隨這些選取的跟隨者嗎?
confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎?
- confirm_remove_selected_follows: 您確定要移除這些選取的正在跟隨您的帳號嗎?
+ confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎?
dormant: 潛水中
follow_selected_followers: 跟隨所選取的跟隨者
followers: 跟隨者
@@ -1487,8 +1498,8 @@ zh-TW:
open_in_web: 以網頁開啟
over_character_limit: 超過了 %{max} 字的限制
pin_errors:
- direct: 無法釘選只有僅提及使用者可見之嘟文
- limit: 您所置頂的嘟文數量已經達到上限
+ direct: 不能釘選只對被提及的使用者顯示的嘟文
+ limit: 釘選嘟文的數量已達上限
ownership: 不能釘選他人的嘟文
reblog: 不能釘選轉嘟
poll:
@@ -1506,7 +1517,7 @@ zh-TW:
visibilities:
direct: 私訊
private: 僅限跟隨者
- private_long: 只有跟隨您的人能看到
+ private_long: 只有跟隨者能看到
public: 公開
public_long: 所有人都能看到
unlisted: 不在公開時間軸顯示
@@ -1524,8 +1535,8 @@ zh-TW:
keep_direct_hint: 不會刪除任何您的私訊
keep_media: 保留包含媒體內容的嘟文
keep_media_hint: 不會刪除您包含媒體內容之嘟文
- keep_pinned: 保留釘選嘟文
- keep_pinned_hint: 不會刪除您的釘選嘟文
+ keep_pinned: 保留釘選的嘟文
+ keep_pinned_hint: 不會刪除您釘選的嘟文
keep_polls: 保留投票
keep_polls_hint: 不會刪除您的投票
keep_self_bookmark: 保留您已標記為書籤之嘟文
@@ -1547,7 +1558,7 @@ zh-TW:
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除該嘟文。
stream_entries:
- pinned: 釘選嘟文
+ pinned: 釘選的嘟文
reblogged: 轉嘟
sensitive_content: 敏感內容
strikes:
@@ -1610,7 +1621,7 @@ zh-TW:
delete_statuses: 您的某些嘟文被發現違反了一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。
disable: 您無法繼續使用您的帳號,但您的個人頁面及其他資料內容保持不變。您可以要求一份您的資料備份,帳號異動設定,或是刪除帳號。
mark_statuses_as_sensitive: 您的部份嘟文已被 %{instance} 的管理員標記為敏感內容。這代表了人們必須在顯示預覽前點擊嘟文中的媒體。您可以在將來嘟文時自己將媒體標記為敏感內容。
- sensitive: 由此刻起,您所有上傳的媒體檔案將被標記為敏感內容,並且隱藏於點擊警告之後。
+ sensitive: 您之後上傳的所有媒體檔案會被標為敏感內容,並且被隱藏起來,須點擊警告按鈕才會顯示。
silence: 您仍然可以使用您的帳號,但僅有已跟隨您的人才能看到您在此伺服器的嘟文,您也可能會從各式探索功能中被排除。但其他人仍可手動跟隨您。
suspend: 您將不能使用您的帳號,您的個人檔案頁面及其他資料將不再能被存取。您仍可於約 30 日內資料被完全刪除前要求下載您的資料,但我們仍會保留一部份基本資料,以防止有人規避停權處罰。
reason: 原因:
@@ -1630,7 +1641,7 @@ zh-TW:
none: 警告
sensitive: 帳號已標記為敏感內容
silence: 帳號已被限制
- suspend: 帳號己被停用
+ suspend: 帳號己被停權
welcome:
edit_profile_action: 設定個人檔案
edit_profile_step: 您可以設定您的個人檔案,包括上傳大頭貼、變更顯示名稱等等。您也可以選擇在新的跟隨者跟隨前,先對他們進行審核。
@@ -1638,7 +1649,7 @@ zh-TW:
final_action: 開始嘟嘟
final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。'
full_handle: 您的完整帳號名稱
- full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或著跟隨您。
+ full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。
subject: 歡迎來到 Mastodon
title: "%{name} 誠摯歡迎您的加入!"
users:
From 6bd700379925746ea8408bb4d5b0c99dba1506e6 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 23 Feb 2023 05:28:56 -0500
Subject: [PATCH 0125/1254] Fix mispelled spec filenames (#23834)
---
.rubocop_todo.yml | 16 ++++++++--------
..._spec.rb => change_emails_controller_spec.rb} | 0
...es_controller.rb => roles_controller_spec.rb} | 0
...helper_spec.rb => action_logs_helper_spec.rb} | 0
....rb => remove_from_followers_service_spec.rb} | 0
5 files changed, 8 insertions(+), 8 deletions(-)
rename spec/controllers/admin/{change_email_controller_spec.rb => change_emails_controller_spec.rb} (100%)
rename spec/controllers/admin/users/{roles_controller.rb => roles_controller_spec.rb} (100%)
rename spec/helpers/admin/{action_log_helper_spec.rb => action_logs_helper_spec.rb} (100%)
rename spec/services/{remove_from_follwers_service_spec.rb => remove_from_followers_service_spec.rb} (100%)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0bdf72084c..8d546ff42e 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -73,7 +73,7 @@ Lint/EmptyBlock:
- 'spec/fabricators/setting_fabricator.rb'
- 'spec/fabricators/system_key_fabricator.rb'
- 'spec/fabricators/web_setting_fabricator.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/models/account_alias_spec.rb'
- 'spec/models/account_deletion_request_spec.rb'
@@ -579,7 +579,7 @@ RSpec/DescribedClass:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/reblog_service_spec.rb'
- 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
+ - 'spec/services/remove_from_followers_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
- 'spec/services/unblock_service_spec.rb'
@@ -592,7 +592,7 @@ RSpec/DescribedClass:
# This cop supports unsafe autocorrection (--autocorrect-all).
RSpec/EmptyExampleGroup:
Exclude:
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/models/account_alias_spec.rb'
- 'spec/models/account_deletion_request_spec.rb'
- 'spec/models/account_moderation_note_spec.rb'
@@ -864,7 +864,7 @@ RSpec/MissingExampleGroupArgument:
- 'spec/controllers/accounts_controller_spec.rb'
- 'spec/controllers/activitypub/collections_controller_spec.rb'
- 'spec/controllers/admin/statuses_controller_spec.rb'
- - 'spec/controllers/admin/users/roles_controller.rb'
+ - 'spec/controllers/admin/users/roles_controller_spec.rb'
- 'spec/controllers/api/v1/accounts_controller_spec.rb'
- 'spec/controllers/api/v1/admin/account_actions_controller_spec.rb'
- 'spec/controllers/api/v1/admin/domain_allows_controller_spec.rb'
@@ -1060,7 +1060,7 @@ RSpec/NamedSubject:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/reblog_service_spec.rb'
- 'spec/services/reject_follow_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
+ - 'spec/services/remove_from_followers_service_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/report_service_spec.rb'
- 'spec/services/resolve_account_service_spec.rb'
@@ -1149,7 +1149,7 @@ RSpec/Rails/InferredSpecType:
- 'spec/controllers/admin/accounts_controller_spec.rb'
- 'spec/controllers/admin/action_logs_controller_spec.rb'
- 'spec/controllers/admin/base_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
+ - 'spec/controllers/admin/change_emails_controller_spec.rb'
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/dashboard_controller_spec.rb'
- 'spec/controllers/admin/disputes/appeals_controller_spec.rb'
@@ -1235,7 +1235,7 @@ RSpec/Rails/InferredSpecType:
- 'spec/controllers/well_known/webfinger_controller_spec.rb'
- 'spec/helpers/accounts_helper_spec.rb'
- 'spec/helpers/admin/account_moderation_notes_helper_spec.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
+ - 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/helpers/flashes_helper_spec.rb'
- 'spec/helpers/formatting_helper_spec.rb'
- 'spec/helpers/home_helper_spec.rb'
@@ -1398,7 +1398,7 @@ RSpec/SubjectStub:
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
RSpec/VerifiedDoubles:
Exclude:
- - 'spec/controllers/admin/change_email_controller_spec.rb'
+ - 'spec/controllers/admin/change_emails_controller_spec.rb'
- 'spec/controllers/admin/confirmations_controller_spec.rb'
- 'spec/controllers/admin/disputes/appeals_controller_spec.rb'
- 'spec/controllers/admin/domain_allows_controller_spec.rb'
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_emails_controller_spec.rb
similarity index 100%
rename from spec/controllers/admin/change_email_controller_spec.rb
rename to spec/controllers/admin/change_emails_controller_spec.rb
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller_spec.rb
similarity index 100%
rename from spec/controllers/admin/users/roles_controller.rb
rename to spec/controllers/admin/users/roles_controller_spec.rb
diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_logs_helper_spec.rb
similarity index 100%
rename from spec/helpers/admin/action_log_helper_spec.rb
rename to spec/helpers/admin/action_logs_helper_spec.rb
diff --git a/spec/services/remove_from_follwers_service_spec.rb b/spec/services/remove_from_followers_service_spec.rb
similarity index 100%
rename from spec/services/remove_from_follwers_service_spec.rb
rename to spec/services/remove_from_followers_service_spec.rb
From f4f91bc295fd423bdc81ca17f0f9491ed6cd897e Mon Sep 17 00:00:00 2001
From: Tim Lucas
Date: Thu, 23 Feb 2023 22:58:42 +1100
Subject: [PATCH 0126/1254] Increase contrast of upload progress background
(#23836)
---
app/javascript/styles/mastodon-light/diff.scss | 4 ++++
app/javascript/styles/mastodon/components.scss | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 01725cf968..58f161f811 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -258,6 +258,10 @@ html {
border-color: $ui-base-color;
}
+.upload-progress__backdrop {
+ background: $ui-base-color;
+}
+
// Change the background colors of statuses
.focusable:focus {
background: $ui-base-color;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 49a5bda34f..583acfac0e 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4543,7 +4543,7 @@ a.status-card.compact:hover {
width: 100%;
height: 6px;
border-radius: 6px;
- background: $ui-base-lighter-color;
+ background: darken($simple-background-color, 8%);
position: relative;
margin-top: 5px;
}
From 20b80c62ff9b8e31a9a35a3d827fcd4c9b68248b Mon Sep 17 00:00:00 2001
From: Claire
Date: Thu, 23 Feb 2023 16:52:40 +0100
Subject: [PATCH 0127/1254] Change auto-deletion throttling constants to better
scale with server size (#23320)
---
.../accounts_statuses_cleanup_scheduler.rb | 24 +++++++------------
...ccounts_statuses_cleanup_scheduler_spec.rb | 10 --------
2 files changed, 8 insertions(+), 26 deletions(-)
diff --git a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
index 09e0b37f06..f237f1dc9c 100644
--- a/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
+++ b/app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb
@@ -7,7 +7,7 @@ class Scheduler::AccountsStatusesCleanupScheduler
# This limit is mostly to be nice to the fediverse at large and not
# generate too much traffic.
# This also helps limiting the running time of the scheduler itself.
- MAX_BUDGET = 50
+ MAX_BUDGET = 150
# This is an attempt to spread the load across instances, as various
# accounts are likely to have various followers.
@@ -15,28 +15,22 @@ class Scheduler::AccountsStatusesCleanupScheduler
# This is an attempt to limit the workload generated by status removal
# jobs to something the particular instance can handle.
- PER_THREAD_BUDGET = 5
+ PER_THREAD_BUDGET = 6
# Those avoid loading an instance that is already under load
- MAX_DEFAULT_SIZE = 2
+ MAX_DEFAULT_SIZE = 200
MAX_DEFAULT_LATENCY = 5
- MAX_PUSH_SIZE = 5
+ MAX_PUSH_SIZE = 500
MAX_PUSH_LATENCY = 10
+
# 'pull' queue has lower priority jobs, and it's unlikely that pushing
# deletes would cause much issues with this queue if it didn't cause issues
# with default and push. Yet, do not enqueue deletes if the instance is
# lagging behind too much.
- MAX_PULL_SIZE = 500
- MAX_PULL_LATENCY = 300
+ MAX_PULL_SIZE = 10_000
+ MAX_PULL_LATENCY = 5.minutes.to_i
- # This is less of an issue in general, but deleting old statuses is likely
- # to cause delivery errors, and thus increase the number of jobs to be retried.
- # This doesn't directly translate to load, but connection errors and a high
- # number of dead instances may lead to this spiraling out of control if
- # unchecked.
- MAX_RETRY_SIZE = 50_000
-
- sidekiq_options retry: 0, lock: :until_executed
+ sidekiq_options retry: 0, lock: :until_executed, lock_ttl: 1.day.to_i
def perform
return if under_load?
@@ -73,8 +67,6 @@ class Scheduler::AccountsStatusesCleanupScheduler
end
def under_load?
- return true if Sidekiq::Stats.new.retry_size > MAX_RETRY_SIZE
-
queue_under_load?('default', MAX_DEFAULT_SIZE, MAX_DEFAULT_LATENCY) || queue_under_load?('push', MAX_PUSH_SIZE, MAX_PUSH_LATENCY) || queue_under_load?('pull', MAX_PULL_SIZE, MAX_PULL_LATENCY)
end
diff --git a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
index b977bc1fbc..9ed8da1bac 100644
--- a/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
+++ b/spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb
@@ -25,7 +25,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
},
]
end
- let(:retry_size) { 0 }
before do
queue_stub = double
@@ -35,7 +34,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
allow(Sidekiq::ProcessSet).to receive(:new).and_return(process_set_stub)
sidekiq_stats_stub = double
- allow(sidekiq_stats_stub).to receive(:retry_size).and_return(retry_size)
allow(Sidekiq::Stats).to receive(:new).and_return(sidekiq_stats_stub)
# Create a bunch of old statuses
@@ -72,14 +70,6 @@ describe Scheduler::AccountsStatusesCleanupScheduler do
expect(subject.under_load?).to be true
end
end
-
- context 'when there is a huge amount of jobs to retry' do
- let(:retry_size) { 1_000_000 }
-
- it 'returns true' do
- expect(subject.under_load?).to be true
- end
- end
end
describe '#get_budget' do
From 19614ba2477f3d12468f5ec251ce1cc5f8c6210c Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 23 Feb 2023 17:17:48 -0500
Subject: [PATCH 0128/1254] Rename ActivityPub Serializer Specs (#23844)
---
.rubocop_todo.yml | 20 +++++++++----------
.../{note_spec.rb => note_serializer_spec.rb} | 0
...spec.rb => update_poll_serializer_spec.rb} | 0
3 files changed, 10 insertions(+), 10 deletions(-)
rename spec/serializers/activitypub/{note_spec.rb => note_serializer_spec.rb} (100%)
rename spec/serializers/activitypub/{update_poll_spec.rb => update_poll_serializer_spec.rb} (100%)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 8d546ff42e..6b2369fd45 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -557,8 +557,8 @@ RSpec/DescribedClass:
- 'spec/presenters/account_relationships_presenter_spec.rb'
- 'spec/presenters/instance_presenter_spec.rb'
- 'spec/presenters/status_relationships_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/serializers/rest/account_serializer_spec.rb'
- 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_actor_service_spec.rb'
@@ -698,8 +698,8 @@ RSpec/FilePath:
- 'spec/lib/activitypub/tag_manager_spec.rb'
- 'spec/lib/ostatus/tag_manager_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
@@ -733,8 +733,8 @@ RSpec/HookArgument:
- 'spec/helpers/instance_helper_spec.rb'
- 'spec/models/user_spec.rb'
- 'spec/rails_helper.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/import_service_spec.rb'
- 'spec/spec_helper.rb'
@@ -755,8 +755,8 @@ RSpec/InstanceVariable:
- 'spec/models/concerns/account_interactions_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
- 'spec/models/public_feed_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/remove_status_service_spec.rb'
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
@@ -1022,8 +1022,8 @@ RSpec/NamedSubject:
- 'spec/policies/tag_policy_spec.rb'
- 'spec/policies/user_policy_spec.rb'
- 'spec/presenters/familiar_followers_presenter_spec.rb'
- - 'spec/serializers/activitypub/note_spec.rb'
- - 'spec/serializers/activitypub/update_poll_spec.rb'
+ - 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/serializers/rest/account_serializer_spec.rb'
- 'spec/services/account_search_service_spec.rb'
- 'spec/services/account_statuses_cleanup_service_spec.rb'
diff --git a/spec/serializers/activitypub/note_spec.rb b/spec/serializers/activitypub/note_serializer_spec.rb
similarity index 100%
rename from spec/serializers/activitypub/note_spec.rb
rename to spec/serializers/activitypub/note_serializer_spec.rb
diff --git a/spec/serializers/activitypub/update_poll_spec.rb b/spec/serializers/activitypub/update_poll_serializer_spec.rb
similarity index 100%
rename from spec/serializers/activitypub/update_poll_spec.rb
rename to spec/serializers/activitypub/update_poll_serializer_spec.rb
From 8000a8f2309d428c2ce72fe5ffba940754d55339 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Fri, 24 Feb 2023 20:04:38 +0100
Subject: [PATCH 0129/1254] Add `lang` attribute to preview card (#23869)
---
app/javascript/mastodon/features/status/components/card.jsx | 3 ++-
app/serializers/rest/preview_card_serializer.rb | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/javascript/mastodon/features/status/components/card.jsx b/app/javascript/mastodon/features/status/components/card.jsx
index 34fac10105..b588c83e4e 100644
--- a/app/javascript/mastodon/features/status/components/card.jsx
+++ b/app/javascript/mastodon/features/status/components/card.jsx
@@ -196,11 +196,12 @@ export default class Card extends React.PureComponent {
const interactive = card.get('type') !== 'link';
const className = classnames('status-card', { horizontal, compact, interactive });
const title = interactive ? {card.get('title')} : {card.get('title')};
+ const language = card.get('language') || '';
const ratio = card.get('width') / card.get('height');
const height = (compact && !embedded) ? (width / (16 / 9)) : (width / ratio);
const description = (
-
diff --git a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
index 3b2bb02861..7faba4c101 100644
--- a/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
+++ b/app/javascript/mastodon/features/ui/components/zoomable_image.jsx
@@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent {
static propTypes = {
alt: PropTypes.string,
+ lang: PropTypes.string,
src: PropTypes.string.isRequired,
width: PropTypes.number,
height: PropTypes.number,
@@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent {
static defaultProps = {
alt: '',
+ lang: '',
width: null,
height: null,
};
@@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent {
};
render () {
- const { alt, src, width, height, intl } = this.props;
+ const { alt, lang, src, width, height, intl } = this.props;
const { scale, lockTranslate } = this.state;
const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll';
const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : '';
@@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent {
ref={this.setImageRef}
alt={alt}
title={alt}
+ lang={lang}
src={src}
width={width}
height={height}
diff --git a/app/javascript/mastodon/features/video/index.jsx b/app/javascript/mastodon/features/video/index.jsx
index 8d63394aaf..dc722a7a77 100644
--- a/app/javascript/mastodon/features/video/index.jsx
+++ b/app/javascript/mastodon/features/video/index.jsx
@@ -102,6 +102,7 @@ class Video extends React.PureComponent {
frameRate: PropTypes.string,
src: PropTypes.string.isRequired,
alt: PropTypes.string,
+ lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
sensitive: PropTypes.bool,
@@ -524,7 +525,7 @@ class Video extends React.PureComponent {
}
render () {
- const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
+ const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
const playerStyle = {};
@@ -585,6 +586,7 @@ class Video extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
+ lang={lang}
width={width}
height={height}
volume={volume}
From 4bb39ac3c37fc5319898300c1067bb47443d6041 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 27 Feb 2023 03:31:15 -0500
Subject: [PATCH 0141/1254] Fix single-record invalid condition on PollVote
(#23810)
---
app/models/poll_vote.rb | 1 +
app/validators/vote_validator.rb | 26 +++++++++++++++--
spec/models/poll_vote_spec.rb | 49 ++++++++++++++++++++++++++++++++
3 files changed, 73 insertions(+), 3 deletions(-)
diff --git a/app/models/poll_vote.rb b/app/models/poll_vote.rb
index 00eaedd129..92d74a6dbc 100644
--- a/app/models/poll_vote.rb
+++ b/app/models/poll_vote.rb
@@ -23,6 +23,7 @@ class PollVote < ApplicationRecord
after_create_commit :increment_counter_cache
delegate :local?, to: :account
+ delegate :multiple?, :expired?, to: :poll, prefix: true
def object_type
:vote
diff --git a/app/validators/vote_validator.rb b/app/validators/vote_validator.rb
index b1692562d4..9c55f9ab6d 100644
--- a/app/validators/vote_validator.rb
+++ b/app/validators/vote_validator.rb
@@ -2,13 +2,13 @@
class VoteValidator < ActiveModel::Validator
def validate(vote)
- vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll.expired?
+ vote.errors.add(:base, I18n.t('polls.errors.expired')) if vote.poll_expired?
vote.errors.add(:base, I18n.t('polls.errors.invalid_choice')) if invalid_choice?(vote)
- if vote.poll.multiple? && vote.poll.votes.where(account: vote.account, choice: vote.choice).exists?
+ if vote.poll_multiple? && already_voted_for_same_choice_on_multiple_poll?(vote)
vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
- elsif !vote.poll.multiple? && vote.poll.votes.where(account: vote.account).exists?
+ elsif !vote.poll_multiple? && already_voted_on_non_multiple_poll?(vote)
vote.errors.add(:base, I18n.t('polls.errors.already_voted'))
end
end
@@ -18,4 +18,24 @@ class VoteValidator < ActiveModel::Validator
def invalid_choice?(vote)
vote.choice.negative? || vote.choice >= vote.poll.options.size
end
+
+ def already_voted_for_same_choice_on_multiple_poll?(vote)
+ if vote.persisted?
+ account_votes_on_same_poll(vote).where(choice: vote.choice).where.not(poll_votes: { id: vote }).exists?
+ else
+ account_votes_on_same_poll(vote).where(choice: vote.choice).exists?
+ end
+ end
+
+ def already_voted_on_non_multiple_poll?(vote)
+ if vote.persisted?
+ account_votes_on_same_poll(vote).where.not(poll_votes: { id: vote }).exists?
+ else
+ account_votes_on_same_poll(vote).exists?
+ end
+ end
+
+ def account_votes_on_same_poll(vote)
+ vote.poll.votes.where(account: vote.account)
+ end
end
diff --git a/spec/models/poll_vote_spec.rb b/spec/models/poll_vote_spec.rb
index 563f346993..6886a82aa8 100644
--- a/spec/models/poll_vote_spec.rb
+++ b/spec/models/poll_vote_spec.rb
@@ -10,4 +10,53 @@ RSpec.describe PollVote, type: :model do
expect(poll_vote.object_type).to eq :vote
end
end
+
+ describe 'validations' do
+ context 'with a vote on an expired poll' do
+ it 'marks the vote invalid' do
+ poll = Fabricate.build(:poll, expires_at: 30.days.ago)
+
+ vote = Fabricate.build(:poll_vote, poll: poll)
+ expect(vote).to_not be_valid
+ end
+ end
+
+ context 'with invalid choices' do
+ it 'marks vote invalid with negative choice' do
+ poll = Fabricate.build(:poll)
+
+ vote = Fabricate.build(:poll_vote, poll: poll, choice: -100)
+ expect(vote).to_not be_valid
+ end
+
+ it 'marks vote invalid with choice in excess of options' do
+ poll = Fabricate.build(:poll, options: %w(a b c))
+
+ vote = Fabricate.build(:poll_vote, poll: poll, choice: 10)
+ expect(vote).to_not be_valid
+ end
+ end
+
+ context 'with a poll where multiple is true' do
+ it 'does not allow a second vote on same choice from same account' do
+ poll = Fabricate(:poll, multiple: true, options: %w(a b c))
+ first_vote = Fabricate(:poll_vote, poll: poll, choice: 1)
+ expect(first_vote).to be_valid
+
+ second_vote = Fabricate.build(:poll_vote, account: first_vote.account, poll: poll, choice: 1)
+ expect(second_vote).to_not be_valid
+ end
+ end
+
+ context 'with a poll where multiple is false' do
+ it 'does not allow a second vote from same account' do
+ poll = Fabricate(:poll, multiple: false, options: %w(a b c))
+ first_vote = Fabricate(:poll_vote, poll: poll)
+ expect(first_vote).to be_valid
+
+ second_vote = Fabricate.build(:poll_vote, account: first_vote.account, poll: poll)
+ expect(second_vote).to_not be_valid
+ end
+ end
+ end
end
From 9ee83a9f3bf5a20f30bf001019993a2eb262322f Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 27 Feb 2023 10:35:47 -0500
Subject: [PATCH 0142/1254] Add policies and serializers groups to simplecov
output (#23897)
---
spec/spec_helper.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index ddc872fc84..25f3140026 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -5,8 +5,10 @@ GC.disable
if ENV['DISABLE_SIMPLECOV'] != 'true'
require 'simplecov'
SimpleCov.start 'rails' do
- add_group 'Services', 'app/services'
+ add_group 'Policies', 'app/policies'
add_group 'Presenters', 'app/presenters'
+ add_group 'Serializers', 'app/serializers'
+ add_group 'Services', 'app/services'
add_group 'Validators', 'app/validators'
end
end
From 055ed5a6166b8b6a5cdde9e8247fd2a606755a65 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 27 Feb 2023 13:03:35 -0500
Subject: [PATCH 0143/1254] Remove unused InstancePresenter#sample_accounts
method (#23900)
---
app/presenters/instance_presenter.rb | 4 ----
1 file changed, 4 deletions(-)
diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb
index e3ba984f74..50e2a51566 100644
--- a/app/presenters/instance_presenter.rb
+++ b/app/presenters/instance_presenter.rb
@@ -74,10 +74,6 @@ class InstancePresenter < ActiveModelSerializers::Model
Rails.cache.fetch('distinct_domain_count') { Instance.count }
end
- def sample_accounts
- Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.local.discoverable.popular.limit(3) }
- end
-
def version
Mastodon::Version.to_s
end
From cc3633539edfd987fb1d0b6cd722af28f342d008 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 28 Feb 2023 05:56:50 -0500
Subject: [PATCH 0144/1254] Remove unused admin/announcements helper (#23899)
---
app/helpers/admin/announcements_helper.rb | 11 -----------
1 file changed, 11 deletions(-)
delete mode 100644 app/helpers/admin/announcements_helper.rb
diff --git a/app/helpers/admin/announcements_helper.rb b/app/helpers/admin/announcements_helper.rb
deleted file mode 100644
index 0c053ddec3..0000000000
--- a/app/helpers/admin/announcements_helper.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-# frozen_string_literal: true
-
-module Admin::AnnouncementsHelper
- def time_range(announcement)
- if announcement.all_day?
- safe_join([l(announcement.starts_at.to_date), ' - ', l(announcement.ends_at.to_date)])
- else
- safe_join([l(announcement.starts_at), ' - ', l(announcement.ends_at)])
- end
- end
-end
From f8848a5c8bfb17fb419c11b3c060c6a4d023addc Mon Sep 17 00:00:00 2001
From: Shlee
Date: Tue, 28 Feb 2023 12:30:28 +0000
Subject: [PATCH 0145/1254] [Dependashlee] Update to Puma 6.1.0 (#23795)
---
Gemfile | 2 +-
Gemfile.lock | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Gemfile b/Gemfile
index 479a4eeac7..17b0b287de 100644
--- a/Gemfile
+++ b/Gemfile
@@ -6,7 +6,7 @@ ruby '>= 2.7.0', '< 3.3.0'
gem 'pkg-config', '~> 1.5'
gem 'rexml', '~> 3.2'
-gem 'puma', '~> 5.6'
+gem 'puma', '~> 6.1'
gem 'rails', '~> 6.1.7'
gem 'sprockets', '~> 3.7.2'
gem 'thor', '~> 1.2'
diff --git a/Gemfile.lock b/Gemfile.lock
index a78a647574..965832094e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -506,7 +506,7 @@ GEM
pry-rails (0.3.9)
pry (>= 0.10.4)
public_suffix (5.0.1)
- puma (5.6.5)
+ puma (6.1.0)
nio4r (~> 2.0)
pundit (2.3.0)
activesupport (>= 3.0.0)
@@ -853,7 +853,7 @@ DEPENDENCIES
pry-byebug (~> 3.10)
pry-rails (~> 0.3)
public_suffix (~> 5.0)
- puma (~> 5.6)
+ puma (~> 6.1)
pundit (~> 2.3)
rack (~> 2.2.6)
rack-attack (~> 6.6)
From 6185efbc3cb87541ee872d67c26911b3b03915e3 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 28 Feb 2023 08:33:34 -0500
Subject: [PATCH 0146/1254] Admin mailer spec coverage improvement (#23863)
---
spec/mailers/admin_mailer_spec.rb | 62 +++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/spec/mailers/admin_mailer_spec.rb b/spec/mailers/admin_mailer_spec.rb
index 29fb586a34..132c6c7586 100644
--- a/spec/mailers/admin_mailer_spec.rb
+++ b/spec/mailers/admin_mailer_spec.rb
@@ -23,4 +23,66 @@ RSpec.describe AdminMailer, type: :mailer do
expect(mail.body.encoded).to eq("Mike,\r\n\r\nJohn has reported Mike\r\n\r\nView: https://cb6e6126.ngrok.io/admin/reports/#{report.id}\r\n")
end
end
+
+ describe '.new_appeal' do
+ let(:appeal) { Fabricate(:appeal) }
+ let(:recipient) { Fabricate(:account, username: 'Kurt') }
+ let(:mail) { described_class.new_appeal(recipient, appeal) }
+
+ before do
+ recipient.user.update(locale: :en)
+ end
+
+ it 'renders the headers' do
+ expect(mail.subject).to eq("#{appeal.account.username} is appealing a moderation decision on cb6e6126.ngrok.io")
+ expect(mail.to).to eq [recipient.user_email]
+ expect(mail.from).to eq ['notifications@localhost']
+ end
+
+ it 'renders the body' do
+ expect(mail.body.encoded).to match "#{appeal.account.username} is appealing a moderation decision by #{appeal.strike.account.username}"
+ end
+ end
+
+ describe '.new_pending_account' do
+ let(:recipient) { Fabricate(:account, username: 'Barklums') }
+ let(:user) { Fabricate(:user) }
+ let(:mail) { described_class.new_pending_account(recipient, user) }
+
+ before do
+ recipient.user.update(locale: :en)
+ end
+
+ it 'renders the headers' do
+ expect(mail.subject).to eq("New account up for review on cb6e6126.ngrok.io (#{user.account.username})")
+ expect(mail.to).to eq [recipient.user_email]
+ expect(mail.from).to eq ['notifications@localhost']
+ end
+
+ it 'renders the body' do
+ expect(mail.body.encoded).to match 'The details of the new account are below. You can approve or reject this application.'
+ end
+ end
+
+ describe '.new_trends' do
+ let(:recipient) { Fabricate(:account, username: 'Snurf') }
+ let(:links) { [] }
+ let(:statuses) { [] }
+ let(:tags) { [] }
+ let(:mail) { described_class.new_trends(recipient, links, tags, statuses) }
+
+ before do
+ recipient.user.update(locale: :en)
+ end
+
+ it 'renders the headers' do
+ expect(mail.subject).to eq('New trends up for review on cb6e6126.ngrok.io')
+ expect(mail.to).to eq [recipient.user_email]
+ expect(mail.from).to eq ['notifications@localhost']
+ end
+
+ it 'renders the body' do
+ expect(mail.body.encoded).to match 'The following items need a review before they can be displayed publicly'
+ end
+ end
end
From 56489cdc4f0d96202dda3c3f688295e8dabb66ee Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 28 Feb 2023 08:59:19 -0500
Subject: [PATCH 0147/1254] Autofix Rubocop Style/HashConversion (#23852)
---
.rubocop_todo.yml | 7 -------
app/services/import_service.rb | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 8cd4afa5af..22e1a99c12 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2056,13 +2056,6 @@ Style/HashAsLastArrayItem:
- 'app/services/notify_service.rb'
- 'db/migrate/20181024224956_migrate_account_conversations.rb'
-# Offense count: 1
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowSplatArgument.
-Style/HashConversion:
- Exclude:
- - 'app/services/import_service.rb'
-
# Offense count: 12
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
index 7a68e4ca35..940c236d4c 100644
--- a/app/services/import_service.rb
+++ b/app/services/import_service.rb
@@ -67,7 +67,7 @@ class ImportService < BaseService
def import_relationships!(action, undo_action, overwrite_scope, limit, extra_fields = {})
local_domain_suffix = "@#{Rails.configuration.x.local_domain}"
- items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), Hash[extra_fields.map { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }]] }.reject { |(id, _)| id.blank? }
+ items = @data.take(limit).map { |row| [row['Account address']&.strip&.delete_suffix(local_domain_suffix), extra_fields.to_h { |key, field_settings| [key, row[field_settings[:header]]&.strip || field_settings[:default]] }] }.reject { |(id, _)| id.blank? }
if @import.overwrite?
presence_hash = items.each_with_object({}) { |(id, extra), mapping| mapping[id] = [true, extra] }
From cb97ba7a2f195f1c816d89f05c8c8f7783b979d8 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Tue, 28 Feb 2023 15:01:05 +0100
Subject: [PATCH 0148/1254] New Crowdin updates (#23802)
Co-authored-by: Yamagishi Kazutoshi
---
app/javascript/mastodon/locales/ar.json | 8 +-
app/javascript/mastodon/locales/ast.json | 2 +-
app/javascript/mastodon/locales/de.json | 2 +-
app/javascript/mastodon/locales/es-AR.json | 6 +-
app/javascript/mastodon/locales/es.json | 2 +-
app/javascript/mastodon/locales/fi.json | 4 +-
app/javascript/mastodon/locales/hi.json | 14 +-
app/javascript/mastodon/locales/is.json | 2 +-
app/javascript/mastodon/locales/it.json | 2 +-
app/javascript/mastodon/locales/kab.json | 4 +-
app/javascript/mastodon/locales/ko.json | 14 +-
app/javascript/mastodon/locales/lt.json | 2 +-
app/javascript/mastodon/locales/ms.json | 20 +-
app/javascript/mastodon/locales/my.json | 284 ++++++++++-----------
app/javascript/mastodon/locales/nn.json | 2 +-
app/javascript/mastodon/locales/sv.json | 6 +-
app/javascript/mastodon/locales/tt.json | 20 +-
app/javascript/mastodon/locales/zh-TW.json | 36 +--
config/locales/activerecord.bg.yml | 2 +-
config/locales/activerecord.de.yml | 2 +-
config/locales/activerecord.fy.yml | 10 +-
config/locales/activerecord.kab.yml | 4 +
config/locales/activerecord.pt-BR.yml | 2 +-
config/locales/ar.yml | 16 ++
config/locales/ast.yml | 29 ++-
config/locales/bg.yml | 17 +-
config/locales/da.yml | 6 +-
config/locales/de.yml | 4 +-
config/locales/devise.de.yml | 4 +-
config/locales/devise.et.yml | 6 +-
config/locales/devise.fy.yml | 6 +-
config/locales/devise.my.yml | 46 +++-
config/locales/devise.zh-TW.yml | 2 +-
config/locales/doorkeeper.ast.yml | 8 +-
config/locales/doorkeeper.ko.yml | 56 ++--
config/locales/doorkeeper.my.yml | 19 ++
config/locales/doorkeeper.sr.yml | 12 +-
config/locales/doorkeeper.zh-TW.yml | 6 +-
config/locales/el.yml | 31 +++
config/locales/es-MX.yml | 17 ++
config/locales/es.yml | 4 +-
config/locales/fr-QC.yml | 8 +
config/locales/ko.yml | 2 +-
config/locales/nn.yml | 17 ++
config/locales/pt-BR.yml | 11 +
config/locales/pt-PT.yml | 6 +
config/locales/ru.yml | 11 +
config/locales/simple_form.ar.yml | 3 +
config/locales/simple_form.fr-QC.yml | 6 +-
config/locales/simple_form.it.yml | 2 +-
config/locales/simple_form.ko.yml | 20 +-
config/locales/simple_form.my.yml | 120 +++++++++
config/locales/simple_form.sr.yml | 8 +-
config/locales/simple_form.sv.yml | 10 +
config/locales/simple_form.zh-TW.yml | 14 +-
config/locales/sr.yml | 105 +++++++-
config/locales/sv.yml | 33 +++
config/locales/vi.yml | 1 +
config/locales/zh-HK.yml | 6 +
config/locales/zh-TW.yml | 196 +++++++-------
60 files changed, 897 insertions(+), 421 deletions(-)
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index 3e685efec0..cf5dfb55bf 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -138,7 +138,7 @@
"compose_form.poll.remove_option": "إزالة هذا الخيار",
"compose_form.poll.switch_to_multiple": "تغيِير الاستطلاع للسماح باِخيارات مُتعدِّدة",
"compose_form.poll.switch_to_single": "تغيِير الاستطلاع للسماح باِخيار واحد فقط",
- "compose_form.publish": "انشر",
+ "compose_form.publish": "نشر",
"compose_form.publish_form": "انشر",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "احفظ التعديلات",
@@ -176,7 +176,7 @@
"conversation.delete": "احذف المحادثة",
"conversation.mark_as_read": "اعتبرها كمقروءة",
"conversation.open": "اعرض المحادثة",
- "conversation.with": "بـ {names}",
+ "conversation.with": "مع {names}",
"copypaste.copied": "تم نسخه",
"copypaste.copy": "انسخ",
"directory.federated": "مِن الفديفرس المعروف",
@@ -215,7 +215,7 @@
"empty_column.bookmarked_statuses": "ليس لديك أية منشورات في الفواصل المرجعية بعد. عندما ستقوم بإضافة البعض منها، ستظهر هنا.",
"empty_column.community": "الخط العام المحلي فارغ. أكتب شيئا ما للعامة كبداية!",
"empty_column.direct": "لم تتلق أية رسالة خاصة مباشِرة بعد. سوف يتم عرض الرسائل المباشرة هنا إن قمت بإرسال واحدة أو تلقيت البعض منها.",
- "empty_column.domain_blocks": "ليس هناك نطاقات مخفية بعد.",
+ "empty_column.domain_blocks": "ليس هناك نطاقات تم حجبها بعد.",
"empty_column.explore_statuses": "ليس هناك ما هو متداوَل الآن. عد في وقت لاحق!",
"empty_column.favourited_statuses": "ليس لديك أية منشورات مفضلة بعد. عندما ستقوم بالإعجاب بواحدة، ستظهر هنا.",
"empty_column.favourites": "لم يقم أي أحد بالإعجاب بهذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
@@ -245,7 +245,7 @@
"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": "صفحة الإعدادات",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 54bab60d04..018d950d74 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -383,7 +383,7 @@
"navigation_bar.filters": "Pallabres desactivaes",
"navigation_bar.follow_requests": "Solicitúes de siguimientu",
"navigation_bar.followed_tags": "Followed hashtags",
- "navigation_bar.follows_and_followers": "Follows and followers",
+ "navigation_bar.follows_and_followers": "Perfiles que sigues ya te siguen",
"navigation_bar.lists": "Llistes",
"navigation_bar.logout": "Zarrar la sesión",
"navigation_bar.mutes": "Perfiles colos avisos desactivaos",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index 7736877d92..b3cdd4fda5 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -16,7 +16,7 @@
"account.badges.bot": "Bot",
"account.badges.group": "Gruppe",
"account.block": "@{name} blockieren",
- "account.block_domain": "Alles von {domain} verstecken",
+ "account.block_domain": "{domain} sperren",
"account.blocked": "Blockiert",
"account.browse_more_on_origin_server": "Mehr auf dem Originalprofil durchsuchen",
"account.cancel_follow_request": "Folgeanfrage zurückziehen",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index c1994b5f9c..f48187e5da 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -32,9 +32,9 @@
"account.follow": "Seguir",
"account.followers": "Seguidores",
"account.followers.empty": "Todavía nadie sigue a este usuario.",
- "account.followers_counter": "{count, plural, one {{counter} Seguidor} other {{counter} Seguidores}}",
+ "account.followers_counter": "{count, plural, one {{counter} seguidor} other {{counter} seguidores}}",
"account.following": "Siguiendo",
- "account.following_counter": "{count, plural, other {{counter} Siguiendo}}",
+ "account.following_counter": "{count, plural, other {Siguiendo a {counter}}}",
"account.follows.empty": "Todavía este usuario no sigue a nadie.",
"account.follows_you": "Te sigue",
"account.go_to_profile": "Ir al perfil",
@@ -57,7 +57,7 @@
"account.requested_follow": "{name} solicitó seguirte",
"account.share": "Compartir el perfil de @{name}",
"account.show_reblogs": "Mostrar adhesiones de @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Mensaje} other {{counter} Mensajes}}",
+ "account.statuses_counter": "{count, plural, one {{counter} mensaje} other {{counter} mensajes}}",
"account.unblock": "Desbloquear a @{name}",
"account.unblock_domain": "Desbloquear dominio {domain}",
"account.unblock_short": "Desbloquear",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 61800fd6bb..47c6edd829 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -51,7 +51,7 @@
"account.muted": "Silenciado",
"account.open_original_page": "Abrir página original",
"account.posts": "Publicaciones",
- "account.posts_with_replies": "Publicaciones y respuestas",
+ "account.posts_with_replies": "Pub. y respuestas",
"account.report": "Reportar a @{name}",
"account.requested": "Esperando aprobación. Clica para cancelar la solicitud de seguimiento",
"account.requested_follow": "{name} ha solicitado seguirte",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index a1decf1ed0..f41082ed7f 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -29,7 +29,7 @@
"account.featured_tags.last_status_at": "Viimeisin viesti {date}",
"account.featured_tags.last_status_never": "Ei viestejä",
"account.featured_tags.title": "Käyttäjän {name} esillä olevat aihetunnisteet",
- "account.follow": "Seuratut",
+ "account.follow": "Seuraa",
"account.followers": "Seuraajat",
"account.followers.empty": "Kukaan ei seuraa tätä käyttäjää vielä.",
"account.followers_counter": "{count, plural, one {{counter} seuraaja} other {{counter} seuraajaa}}",
@@ -582,7 +582,7 @@
"status.reblogs.empty": "Kukaan ei ole vielä tehostanut tätä viestiä. Kun joku tekee niin, näkyy kyseinen henkilö tässä.",
"status.redraft": "Poista ja palauta muokattavaksi",
"status.remove_bookmark": "Poista kirjanmerkki",
- "status.replied_to": "Vastasit käyttäjälle {name}",
+ "status.replied_to": "Vastaus käyttäjälle {name}",
"status.reply": "Vastaa",
"status.replyAll": "Vastaa ketjuun",
"status.report": "Raportoi @{name}",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 3ac57d50d4..24745cca59 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -54,7 +54,7 @@
"account.posts_with_replies": "टूट्स एवं जवाब",
"account.report": "रिपोर्ट @{name}",
"account.requested": "मंजूरी का इंतजार। फॉलो रिक्वेस्ट को रद्द करने के लिए क्लिक करें",
- "account.requested_follow": "{name} has requested to follow you",
+ "account.requested_follow": "{name} ने आपको फॉलो करने के लिए अनुरोध किया है",
"account.share": "@{name} की प्रोफाइल शेयर करे",
"account.show_reblogs": "@{name} के बूस्ट दिखाए",
"account.statuses_counter": "{count, plural, one {{counter} भोंपू} other {{counter} भोंपू}}",
@@ -128,7 +128,7 @@
"compose.language.search": "भाषाएँ खोजें...",
"compose_form.direct_message_warning_learn_more": "और जानें",
"compose_form.encryption_warning": "मास्टोडॉन पर पोस्ट एन्ड-टू-एन्ड एन्क्रिप्टेड नहीं है। कोई भी व्यक्तिगत जानकारी मास्टोडॉन पर मत भेजें।",
- "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.hashtag_warning": "ये पोस्ट किसी भी हैशटैग में लिस्ट नहीं किया जाएगा क्योंकि ये पब्लिक नहीं है। सिर्फ पब्लिक पोस्ट ही हैशटैग से खोजे जा सकते हैं।",
"compose_form.lock_disclaimer": "आपका खाता {locked} नहीं है। आपको केवल फॉलोवर्स को दिखाई दिए जाने वाले पोस्ट देखने के लिए कोई भी फॉलो कर सकता है।",
"compose_form.lock_disclaimer.lock": "लॉक्ड",
"compose_form.placeholder": "What is on your mind?",
@@ -221,7 +221,7 @@
"empty_column.favourites": "अभी तक किसी ने भी इस टूट को पसंद (स्टार) नहीं किया है. जब भी कोई इसे पसंद करेगा, उनका नाम यहाँ दिखेगा।",
"empty_column.follow_recommendations": "ऐसा लगता है कि आपके लिए कोई सुझाव जेनरेट नहीं किया जा सका. आप उन लोगों को खोजने के लिए सर्च का उपयोग करने का प्रयास कर सकते हैं जिन्हें आप जानते हैं या ट्रेंडिंग हैशटैग का पता लगा सकते हैं।",
"empty_column.follow_requests": "अभी तक किसी ने भी आपका अनुसरण करने की विनती नहीं की है. जब भी कोई आपको विनती भेजेगा, वो यहाँ दिखेगी.",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "आपने किसी हैशटैग को फॉलो नहीं किया है। जैसे ही आप फॉलो करेंगे, आपके फॉलो किए गए हैशटैग यहां दिखेंगे।",
"empty_column.hashtag": "यह हैशटैग अभी तक खाली है।",
"empty_column.home": "आपकी मुख्य कालक्रम अभी खली है. अन्य उपयोगकर्ताओं से मिलने के लिए और अपनी गतिविधियां शुरू करने के लिए या तो {public} पर जाएं या खोज का उपयोग करें।",
"empty_column.home.suggestions": "कुछ सुझाव देखिए",
@@ -240,8 +240,8 @@
"explore.suggested_follows": "आपके लिए",
"explore.title": "एक्स्प्लोर",
"explore.trending_links": "समाचार",
- "explore.trending_statuses": "Posts",
- "explore.trending_tags": "Hashtags",
+ "explore.trending_statuses": "पोस्ट्स",
+ "explore.trending_tags": "हैशटैग्स",
"filter_modal.added.context_mismatch_explanation": "यह फ़िल्टर श्रेणी उस संदर्भ पर लागू नहीं होती जिसमें आपने इस पोस्ट को एक्सेस किया है। यदि आप चाहते हैं कि इस संदर्भ में भी पोस्ट को फ़िल्टर किया जाए, तो आपको फ़िल्टर को एडिट करना होगा।",
"filter_modal.added.context_mismatch_title": "कंटेंट मिसमैच!",
"filter_modal.added.expired_explanation": "यह फ़िल्टर श्रेणी समाप्त हो गई है, इसे लागू करने के लिए आपको समाप्ति तिथि बदलनी होगी।",
@@ -264,7 +264,7 @@
"follow_request.authorize": "अधिकार दें",
"follow_request.reject": "अस्वीकार करें",
"follow_requests.unlocked_explanation": "हालाँकि आपका खाता लॉक नहीं है, फिर भी {domain} डोमेन स्टाफ ने सोचा कि आप इन खातों के मैन्युअल अनुरोधों की समीक्षा करना चाहते हैं।",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "फॉलो किए गए हैशटैग्स",
"footer.about": "अबाउट",
"footer.directory": "प्रोफाइल्स डायरेक्टरी",
"footer.get_app": "अप्प प्राप्त करें",
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "कीबोर्ड शॉर्टकट",
"footer.privacy_policy": "प्राइवेसी पालिसी",
"footer.source_code": "सोर्स कोड देखें",
- "footer.status": "Status",
+ "footer.status": "स्टेटस",
"generic.saved": "सेव्ड",
"getting_started.heading": "पहले कदम रखें",
"hashtag.column_header.tag_mode.all": "और {additional}",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 56ef257c9f..0d5b08b683 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -312,7 +312,7 @@
"keyboard_shortcuts.column": "Setja virkni í dálk",
"keyboard_shortcuts.compose": "Setja virkni á textainnsetningarreit",
"keyboard_shortcuts.description": "Lýsing",
- "keyboard_shortcuts.direct": "að opna dálk með beinum skilaboðum",
+ "keyboard_shortcuts.direct": "Opna dálk með beinum skilaboðum",
"keyboard_shortcuts.down": "Fara neðar í listanum",
"keyboard_shortcuts.enter": "Opna færslu",
"keyboard_shortcuts.favourite": "Eftirlætisfærsla",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index e7b4808145..7914b54ab1 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -474,7 +474,7 @@
"relative_time.full.seconds": "{number, plural, one {# secondo} other {# secondi}} fa",
"relative_time.hours": "{number}h",
"relative_time.just_now": "ora",
- "relative_time.minutes": "{number} minuti",
+ "relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "oggi",
"reply_indicator.cancel": "Annulla",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index 3d6021b6e1..c3eb3d37c5 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -10,7 +10,7 @@
"about.domain_blocks.suspended.title": "Suspended",
"about.not_available": "This information has not been made available on this server.",
"about.powered_by": "Decentralized social media powered by {mastodon}",
- "about.rules": "Server rules",
+ "about.rules": "Ilugan n uqeddac",
"account.account_note_header": "Tazmilt",
"account.add_or_remove_from_list": "Rnu neɣ kkes seg tebdarin",
"account.badges.bot": "Aṛubut",
@@ -83,7 +83,7 @@
"boost_modal.combo": "Tzemreḍ ad tetekkiḍ ɣef {combo} akken ad tessurfeḍ aya tikelt-nniḍen",
"bundle_column_error.copy_stacktrace": "Nɣel tuccḍa n uneqqis",
"bundle_column_error.error.body": "The requested page could not be rendered. It could be due to a bug in our code, or a browser compatibility issue.",
- "bundle_column_error.error.title": "Oh, no!",
+ "bundle_column_error.error.title": "Uh, ala !",
"bundle_column_error.network.body": "There was an error when trying to load this page. This could be due to a temporary problem with your internet connection or this server.",
"bundle_column_error.network.title": "Tuccḍa deg uẓeṭṭa",
"bundle_column_error.retry": "Ɛreḍ tikelt-nniḍen",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index cf428b3d8c..e5a73258d5 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -145,7 +145,7 @@
"compose_form.sensitive.hide": "미디어를 민감함으로 설정하기",
"compose_form.sensitive.marked": "미디어가 열람주의로 설정되어 있습니다",
"compose_form.sensitive.unmarked": "미디어가 열람주의로 설정 되어 있지 않습니다",
- "compose_form.spoiler.marked": "콘텐츠 경고 제거",
+ "compose_form.spoiler.marked": "열람주의 제거",
"compose_form.spoiler.unmarked": "열람 주의 문구 추가",
"compose_form.spoiler_placeholder": "경고 문구를 여기에 작성하세요",
"confirmation_modal.cancel": "취소",
@@ -224,7 +224,7 @@
"empty_column.followed_tags": "아직 아무 해시태그도 팔로우하고 있지 않습니다. 해시태그를 팔로우하면, 여기에 표시됩니다.",
"empty_column.hashtag": "이 해시태그는 아직 사용되지 않았습니다.",
"empty_column.home": "당신의 홈 타임라인은 비어있습니다! 더 많은 사람들을 팔로우 하여 채워보세요. {suggestions}",
- "empty_column.home.suggestions": "몇몇의 제안 보기",
+ "empty_column.home.suggestions": "몇몇 제안 보기",
"empty_column.list": "리스트에 아직 아무것도 없습니다. 리스트의 누군가가 게시물을 올리면 여기에 나타납니다.",
"empty_column.lists": "아직 리스트가 없습니다. 리스트를 만들면 여기에 나타납니다.",
"empty_column.mutes": "아직 아무도 뮤트하지 않았습니다.",
@@ -259,7 +259,7 @@
"filter_modal.select_filter.title": "이 게시물을 필터",
"filter_modal.title.status": "게시물 필터",
"follow_recommendations.done": "완료",
- "follow_recommendations.heading": "게시물을 받아 볼 사람들을 팔로우 하세요! 여기 몇몇의 추천이 있습니다.",
+ "follow_recommendations.heading": "게시물을 받아 볼 사람을 팔로우하세요! 여기 몇몇 추천이 있습니다.",
"follow_recommendations.lead": "당신이 팔로우 하는 사람들의 게시물이 시간순으로 정렬되어 당신의 홈 피드에 표시될 것입니다. 실수를 두려워 하지 마세요, 언제든지 쉽게 팔로우 취소를 할 수 있습니다!",
"follow_request.authorize": "허가",
"follow_request.reject": "거부",
@@ -400,7 +400,7 @@
"notification.follow": "{name} 님이 나를 팔로우했습니다",
"notification.follow_request": "{name} 님이 팔로우 요청을 보냈습니다",
"notification.mention": "{name}님의 멘션",
- "notification.own_poll": "내 투표가 끝났습니다",
+ "notification.own_poll": "투표를 마쳤습니다.",
"notification.poll": "참여했던 투표가 끝났습니다.",
"notification.reblog": "{name} 님이 부스트했습니다",
"notification.status": "{name} 님이 방금 게시물을 올렸습니다",
@@ -589,13 +589,13 @@
"status.sensitive_warning": "민감한 내용",
"status.share": "공유",
"status.show_filter_reason": "그냥 표시하기",
- "status.show_less": "적게 보기",
+ "status.show_less": "접기",
"status.show_less_all": "모두 접기",
- "status.show_more": "더 보기",
+ "status.show_more": "펼치기",
"status.show_more_all": "모두 펼치기",
"status.show_original": "원본 보기",
"status.translate": "번역",
- "status.translated_from_with": "{lang}에서 {provider}를 사용해 번역됨",
+ "status.translated_from_with": "{provider}에 의해 {lang}에서 번역됨",
"status.uncached_media_warning": "사용할 수 없음",
"status.unmute_conversation": "이 대화의 뮤트 해제하기",
"status.unpin": "고정 해제",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index c7a27873de..a2dac91ca1 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -1,7 +1,7 @@
{
"about.blocks": "Moderatorių prižiūrimi serveriai",
"about.contact": "Kontaktai:",
- "about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
+ "about.disclaimer": "Mastodon, tai nemokama, atviro kodo programa, kuriuos prekybinis ženklas priklauso Mastodon GmbH.",
"about.domain_blocks.no_reason_available": "Priežastis nežinoma",
"about.domain_blocks.preamble": "Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.",
"about.domain_blocks.silenced.explanation": "You will generally not see profiles and content from this server, unless you explicitly look it up or opt into it by following.",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index 3f971026ed..a003f42f4b 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -128,7 +128,7 @@
"compose.language.search": "Cari bahasa...",
"compose_form.direct_message_warning_learn_more": "Ketahui lebih lanjut",
"compose_form.encryption_warning": "Hantaran pada Mastodon tidak disulitkan hujung ke hujung. Jangan berkongsi sebarang maklumat sensitif melalui 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.hashtag_warning": "Hantaran ini tidak akan disenaraikan di bawah mana-mana tanda pagar kerana ia tidak tersenarai. Hanya hantaran awam sahaja boleh dicari menggunakan tanda pagar.",
"compose_form.lock_disclaimer": "Akaun anda tidak {locked}. Sesiapa pun boleh mengikuti anda untuk melihat hantaran pengikut-sahaja anda.",
"compose_form.lock_disclaimer.lock": "dikunci",
"compose_form.placeholder": "Apakah yang sedang anda fikirkan?",
@@ -237,11 +237,11 @@
"errors.unexpected_crash.copy_stacktrace": "Salin surih tindanan ke papan keratan",
"errors.unexpected_crash.report_issue": "Laporkan masalah",
"explore.search_results": "Hasil carian",
- "explore.suggested_follows": "For you",
+ "explore.suggested_follows": "Untuk anda",
"explore.title": "Terokai",
- "explore.trending_links": "News",
- "explore.trending_statuses": "Posts",
- "explore.trending_tags": "Hashtags",
+ "explore.trending_links": "Baru",
+ "explore.trending_statuses": "Hantar",
+ "explore.trending_tags": "-Hashtags",
"filter_modal.added.context_mismatch_explanation": "Kumpulan penapis ini tidak terpakai pada konteks di mana anda mengakses hantaran ini. Jika anda ingin hantaran ini untuk ditapis dalam konteks ini juga, anda perlu menyunting penapis tersebut.",
"filter_modal.added.context_mismatch_title": "Konteks tidak sepadan!",
"filter_modal.added.expired_explanation": "Kumpulan filter ini telah tamat tempoh, anda perlu mengubah tarikh luput untuk melaksanakannya.",
@@ -264,7 +264,7 @@
"follow_request.authorize": "Benarkan",
"follow_request.reject": "Tolak",
"follow_requests.unlocked_explanation": "Walaupun akaun anda tidak dikunci, kakitangan {domain} merasakan anda mungkin ingin menyemak permintaan ikutan daripada akaun ini secara manual.",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "Topik terpilih",
"footer.about": "Perihal",
"footer.directory": "Direktori profil",
"footer.get_app": "Dapatkan app",
@@ -272,7 +272,7 @@
"footer.keyboard_shortcuts": "Pintasan papan kekunci",
"footer.privacy_policy": "Dasar privasi",
"footer.source_code": "Lihat kod sumber",
- "footer.status": "Status",
+ "footer.status": "Status:",
"generic.saved": "Disimpan",
"getting_started.heading": "Mari bermula",
"hashtag.column_header.tag_mode.all": "dan {additional}",
@@ -382,7 +382,7 @@
"navigation_bar.favourites": "Kegemaran",
"navigation_bar.filters": "Perkataan yang dibisukan",
"navigation_bar.follow_requests": "Permintaan ikutan",
- "navigation_bar.followed_tags": "Followed hashtags",
+ "navigation_bar.followed_tags": "Ikuti hashtag",
"navigation_bar.follows_and_followers": "Ikutan dan pengikut",
"navigation_bar.lists": "Senarai",
"navigation_bar.logout": "Log keluar",
@@ -544,9 +544,9 @@
"server_banner.server_stats": "Statistik pelayan:",
"sign_in_banner.create_account": "Cipta akaun",
"sign_in_banner.sign_in": "Daftar masuk",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
+ "sign_in_banner.text": "Daftar masuk untuk mengikut profil atau tanda pagar, menggemari, mengkongsi dan membalas kepada hantaran, atau berinteraksi daripada akaun anda pada pelayan lain.",
"status.admin_account": "Buka antara muka penyederhanaan untuk @{name}",
- "status.admin_domain": "Open moderation interface for {domain}",
+ "status.admin_domain": "antara muka penyederhanaan",
"status.admin_status": "Buka hantaran ini dalam antara muka penyederhanaan",
"status.block": "Sekat @{name}",
"status.bookmark": "Tanda buku",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index 366544d2a2..3c1cec63f2 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -102,7 +102,7 @@
"column.blocks": "ဘလော့ထားသောအကောင့်များ",
"column.bookmarks": "မှတ်တမ်းများ",
"column.community": "ဒေသတွင်း အချိန်ဇယား",
- "column.direct": "တိုက်ရိုက် မက်ဆေ့ခ်ျများ",
+ "column.direct": "တိုက်ရိုက်မက်ဆေ့ခ်ျများ",
"column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n",
"column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်",
"column.favourites": "အကြိုက်ဆုံးများ",
@@ -121,7 +121,7 @@
"column_header.show_settings": "ဆက်တင်များကို ပြပါ။",
"column_header.unpin": "မတွဲတော့ပါ",
"column_subheading.settings": "ဆက်တင်များ",
- "community.column_settings.local_only": "Local only",
+ "community.column_settings.local_only": "ပြည်တွင်း၌သာ",
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only",
"compose.language.change": "ဘာသာစကား ပြောင်းမည်",
@@ -195,32 +195,32 @@
"embed.preview": "Here is what it will look like:",
"emoji_button.activity": "Activity",
"emoji_button.clear": "ရှင်းလင်းမည်",
- "emoji_button.custom": "Custom",
+ "emoji_button.custom": "စိတ်ကြိုက်",
"emoji_button.flags": "Flags",
"emoji_button.food": "အစားအသောက်",
- "emoji_button.label": "Insert emoji",
+ "emoji_button.label": "အီမိုဂျီထည့်ပါ",
"emoji_button.nature": "သဘာဝ",
- "emoji_button.not_found": "No matching emojis found",
+ "emoji_button.not_found": "ကိုက်ညီသော အီမိုဂျီများ ရှာမတွေ့ပါ",
"emoji_button.objects": "Objects",
"emoji_button.people": "လူများ",
"emoji_button.recent": "မကြာခဏ အသုံးပြုသော",
"emoji_button.search": "ရှာရန်...",
- "emoji_button.search_results": "Search results",
- "emoji_button.symbols": "Symbols",
- "emoji_button.travel": "Travel & Places",
- "empty_column.account_suspended": "Account suspended",
+ "emoji_button.search_results": "ရှာဖွေမှု ရလဒ်များ",
+ "emoji_button.symbols": "သင်္ကေတများ",
+ "emoji_button.travel": "ခရီးသွားခြင်း နှင့် နေရာများ",
+ "empty_column.account_suspended": "အကောင့်ရပ်ဆိုင်းထားသည်",
"empty_column.account_timeline": "No posts found",
- "empty_column.account_unavailable": "Profile unavailable",
+ "empty_column.account_unavailable": "ပရိုဖိုင် မရနိုင်ပါ",
"empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ",
- "empty_column.bookmarked_statuses": "You don't have any bookmarked posts yet. When you bookmark one, it will show up here.",
+ "empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
- "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+ "empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ",
- "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
- "empty_column.favourited_statuses": "You don't have any favourite posts yet. When you favourite one, it will show up here.",
- "empty_column.favourites": "No one has favourited this post yet. When someone does, they will show up here.",
+ "empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။",
+ "empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
+ "empty_column.favourites": "ဤပို့စ်ကို အကြိုက်တွေ့သူ မရှိသေးပါ။ တစ်စုံတစ်ယောက်က ကြိုက်နှစ်သက်ပါက ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
- "empty_column.follow_requests": "You don't have any follow requests yet. When you receive one, it will show up here.",
+ "empty_column.follow_requests": "သင့်တွင် စောင့်ကြည့်ရန် တောင်းဆိုမှုများ မရှိသေးပါ။ သင်လက်ခံရရှိပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
"empty_column.hashtag": "There is nothing in this hashtag yet.",
"empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
@@ -231,12 +231,12 @@
"empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်",
"empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
"error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.explanation_addons": "ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ခဲ့ပါ။ ဤအမှားသည် Browser add-on ထည့်သွင်းထားမှုများ သို့မဟုတ် အလိုအလျောက် ဘာသာပြန်ကိရိယာများကြောင့် ဖြစ်နိုင်သည်။",
+ "error.unexpected_crash.next_steps": "စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ ၎င်းမှာ အကူအညီမဖြစ်ပါက သင်သည် အခြား Browser သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်လက်အသုံးပြုနိုင်ပါမည်။",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
- "explore.search_results": "Search results",
+ "errors.unexpected_crash.report_issue": "အဆင်မပြေမှုကို တိုင်ကြားရန်",
+ "explore.search_results": "ရှာဖွေမှုရလဒ်များ",
"explore.suggested_follows": "သင့်အတွက်",
"explore.title": "စူးစမ်းရန်",
"explore.trending_links": "သတင်းများ",
@@ -247,50 +247,50 @@
"filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
"filter_modal.added.expired_title": "Expired filter!",
"filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
- "filter_modal.added.review_and_configure_title": "Filter settings",
+ "filter_modal.added.review_and_configure_title": "စစ်ထုတ်မှု သတ်မှတ်ချက်များ",
"filter_modal.added.settings_link": "settings page",
- "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
- "filter_modal.added.title": "Filter added!",
+ "filter_modal.added.short_explanation": "ဤပို့စ်ကို အောက်ပါ စစ်ထုတ်မှုအမျိုးအစားတွင် ပေါင်းထည့်ထားပါသည် - {title}။",
+ "filter_modal.added.title": "စစ်ထုတ်မှု ထည့်သွင်းပြီးပါပြီ။",
"filter_modal.select_filter.context_mismatch": "does not apply to this context",
"filter_modal.select_filter.expired": "သက်တမ်းကုန်သွားပါပြီ",
- "filter_modal.select_filter.prompt_new": "New category: {name}",
- "filter_modal.select_filter.search": "Search or create",
- "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",
- "follow_recommendations.done": "Done",
- "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
+ "filter_modal.select_filter.prompt_new": "အမျိုးအစားအသစ် - {name}",
+ "filter_modal.select_filter.search": "ရှာရန် သို့မဟုတ် ဖန်တီးရန်",
+ "filter_modal.select_filter.subtitle": "ရှိပြီးသားအမျိုးအစားကို သုံးပါ သို့မဟုတ် အသစ်တစ်ခု ဖန်တီးပါ",
+ "filter_modal.select_filter.title": "ဤပို့စ်ကို စစ်ထုတ်ပါ",
+ "filter_modal.title.status": "ပို့စ်တစ်ခု စစ်ထုတ်ပါ",
+ "follow_recommendations.done": "ပြီးပါပြီ",
+ "follow_recommendations.heading": "သင်မြင်လိုသော သူများထံမှ ပို့စ်များကို စောင့်ကြည့်ပါ။ ဤတွင် အကြံပြုချက်အချို့ရှိပါသည်။",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_request.authorize": "Authorize",
- "follow_request.reject": "Reject",
+ "follow_request.reject": "ဖယ်ရှားပါ",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"followed_tags": "Followed hashtags",
"footer.about": "အကြောင်း",
- "footer.directory": "Profiles directory",
- "footer.get_app": "Get the app",
- "footer.invite": "Invite people",
- "footer.keyboard_shortcuts": "Keyboard shortcuts",
- "footer.privacy_policy": "Privacy policy",
+ "footer.directory": "ပရိုဖိုင်များလမ်းညွှန်",
+ "footer.get_app": "အက်ပ်ကို ရယူပါ",
+ "footer.invite": "လူများကို ဖိတ်ပါ",
+ "footer.keyboard_shortcuts": "ကီးဘုတ်အမြန်ခလုတ်များ",
+ "footer.privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
"footer.source_code": "မူရင်းကုဒ်အားကြည့်ရှုမည်",
"footer.status": "အခြေအနေ",
"generic.saved": "သိမ်းဆည်းထားပြီး",
"getting_started.heading": "စတင်မည်",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
+ "hashtag.column_header.tag_mode.all": "နှင့် {additional}",
+ "hashtag.column_header.tag_mode.any": "သို့မဟုတ် {additional}",
+ "hashtag.column_header.tag_mode.none": "မပါဘဲ {additional}",
+ "hashtag.column_settings.select.no_options_message": "အကြံပြုချက်မတွေ့ပါ",
"hashtag.column_settings.select.placeholder": "Enter hashtags…",
"hashtag.column_settings.tag_mode.all": "All of these",
"hashtag.column_settings.tag_mode.any": "Any of these",
"hashtag.column_settings.tag_mode.none": "None of these",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
- "hashtag.follow": "Follow hashtag",
- "hashtag.unfollow": "Unfollow hashtag",
- "home.column_settings.basic": "Basic",
+ "hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်",
+ "hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ",
+ "home.column_settings.basic": "အခြေခံ",
"home.column_settings.show_reblogs": "Show boosts",
- "home.column_settings.show_replies": "Show replies",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
+ "home.column_settings.show_replies": "ပြန်စာများကို ပြပါ",
+ "home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ",
+ "home.show_announcements": "ကြေညာချက်များကို ပြပါ",
"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.",
@@ -299,10 +299,10 @@
"interaction_modal.on_this_server": "ဤဆာဗာတွင်",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
- "interaction_modal.title.favourite": "Favourite {name}'s post",
- "interaction_modal.title.follow": "Follow {name}",
+ "interaction_modal.title.favourite": "အကြိုက်ဆုံး {name} ၏ ပို့စ်",
+ "interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်",
"interaction_modal.title.reblog": "Boost {name}'s post",
- "interaction_modal.title.reply": "Reply to {name}'s post",
+ "interaction_modal.title.reply": "{name} ၏ ပို့စ်ကို စာပြန်မယ်",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
"intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
@@ -312,7 +312,7 @@
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
"keyboard_shortcuts.description": "ဖော်ပြချက်",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.direct": "တိုက်ရိုက်မက်ဆေ့ချ်ကော်လံကို ဖွင့်ရန်",
"keyboard_shortcuts.down": "to move down in the list",
"keyboard_shortcuts.enter": "to open status",
"keyboard_shortcuts.favourite": "to favourite",
@@ -345,8 +345,8 @@
"lightbox.expand": "ပုံကိုဖွင့်ပါ",
"lightbox.next": "ရှေ့သို့",
"lightbox.previous": "Previous",
- "limited_account_hint.action": "Show profile anyway",
- "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
+ "limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ",
+ "limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။",
"lists.account.add": "စာရင်းထဲသို့ထည့်ပါ",
"lists.account.remove": "စာရင်းမှ ဖယ်ရှားလိုက်ပါ။",
"lists.delete": "စာရင်းကိုဖျက်ပါ",
@@ -374,37 +374,37 @@
"navigation_bar.bookmarks": "မှတ်ထားသည်များ",
"navigation_bar.community_timeline": "ဒေသစံတော်ချိန်",
"navigation_bar.compose": "Compose new post",
- "navigation_bar.direct": "Direct messages",
+ "navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ",
"navigation_bar.discover": "Discover",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်",
"navigation_bar.explore": "Explore",
- "navigation_bar.favourites": "Favourites",
+ "navigation_bar.favourites": "အကြိုက်ဆုံးများ",
"navigation_bar.filters": "Muted words",
- "navigation_bar.follow_requests": "Follow requests",
+ "navigation_bar.follow_requests": "တောင်းဆိုချက်များကို စောင့်ကြည့်ပါ",
"navigation_bar.followed_tags": "Followed hashtags",
- "navigation_bar.follows_and_followers": "Follows and followers",
- "navigation_bar.lists": "Lists",
- "navigation_bar.logout": "Logout",
+ "navigation_bar.follows_and_followers": "စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း",
+ "navigation_bar.lists": "စာရင်းများ",
+ "navigation_bar.logout": "ထွက်မယ်",
"navigation_bar.mutes": "Muted users",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned posts",
+ "navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ",
+ "navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ",
"navigation_bar.preferences": "Preferences",
"navigation_bar.public_timeline": "Federated timeline",
- "navigation_bar.search": "Search",
- "navigation_bar.security": "Security",
- "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
+ "navigation_bar.search": "ရှာရန်",
+ "navigation_bar.security": "လုံခြုံရေး",
+ "not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။",
"notification.admin.report": "{name} reported {target}",
- "notification.admin.sign_up": "{name} signed up",
+ "notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်",
"notification.favourite": "{name} favourited your status",
- "notification.follow": "{name} followed you",
- "notification.follow_request": "{name} has requested to follow you",
- "notification.mention": "{name} mentioned you",
+ "notification.follow": "{name} သင့်ကို စောင့်ကြည့်ခဲ့သည်",
+ "notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်",
+ "notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်",
"notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ",
"notification.poll": "သင်ပါဝင်ခဲ့သော စစ်တမ်းပြီးပါပြီ",
"notification.reblog": "{name} boosted your status",
- "notification.status": "{name} just posted",
- "notification.update": "{name} edited a post",
+ "notification.status": "{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ",
+ "notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်",
"notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ",
"notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်",
"notifications.column_settings.admin.report": "New reports:",
@@ -413,29 +413,29 @@
"notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ",
"notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
- "notifications.column_settings.follow": "New followers:",
+ "notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ",
+ "notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -",
"notifications.column_settings.follow_request": "New follow requests:",
"notifications.column_settings.mention": "Mentions:",
"notifications.column_settings.poll": "စစ်တမ်းရလဒ်",
- "notifications.column_settings.push": "Push notifications",
+ "notifications.column_settings.push": "အသိပေးချက်များအား ရအောင်ပို့ခြင်း",
"notifications.column_settings.reblog": "Boosts:",
- "notifications.column_settings.show": "Show in column",
- "notifications.column_settings.sound": "Play sound",
- "notifications.column_settings.status": "New posts:",
- "notifications.column_settings.unread_notifications.category": "Unread notifications",
+ "notifications.column_settings.show": "ကော်လံတွင်ပြပါ",
+ "notifications.column_settings.sound": "အသံဖွင့်မည်",
+ "notifications.column_settings.status": "ပို့စ်အသစ်များ -",
+ "notifications.column_settings.unread_notifications.category": "မဖတ်ရသေးသောအသိပေးချက်များ -",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
- "notifications.column_settings.update": "Edits:",
+ "notifications.column_settings.update": "ပြင်ဆင်ထားမှုများ -",
"notifications.filter.all": "အားလုံး",
"notifications.filter.boosts": "အားပေးမည်",
"notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ",
"notifications.filter.follows": "ဖောလိုးမည်",
"notifications.filter.mentions": " မန်းရှင်းမည်",
"notifications.filter.polls": "စစ်တမ်းရလဒ်",
- "notifications.filter.statuses": "Updates from people you follow",
+ "notifications.filter.statuses": "သင်စောင့်ကြည့်သူများထံမှ အပ်ဒိတ်များ",
"notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်",
- "notifications.group": "{count} notifications",
- "notifications.mark_as_read": "Mark every notification as read",
+ "notifications.group": "အသိပေးချက်များ {count} ခု",
+ "notifications.mark_as_read": "အသိပေးချက်တိုင်းကို ဖတ်ပြီးကြောင်း အမှတ်အသားပြုပါ",
"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.",
@@ -462,9 +462,9 @@
"privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
"privacy.unlisted.short": "Unlisted",
"privacy_policy.last_updated": "Last updated {date}",
- "privacy_policy.title": "Privacy Policy",
- "refresh": "Refresh",
- "regeneration_indicator.label": "Loading…",
+ "privacy_policy.title": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
+ "refresh": "ပြန်လည်စတင်ပါ",
+ "regeneration_indicator.label": "လုပ်ဆောင်နေသည်…",
"regeneration_indicator.sublabel": "Your home feed is being prepared!",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
@@ -473,7 +473,7 @@
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number}h",
- "relative_time.just_now": "now",
+ "relative_time.just_now": "ယခု",
"relative_time.minutes": "{number}m",
"relative_time.seconds": "{number}s",
"relative_time.today": "ယနေ့",
@@ -516,13 +516,13 @@
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
- "report_notification.categories.other": "Other",
+ "report_notification.categories.other": "အခြား",
"report_notification.categories.spam": "Spam",
"report_notification.categories.violation": "Rule violation",
"report_notification.open": "Open report",
"search.placeholder": "ရှာဖွေရန်",
"search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ",
- "search_popout.search_format": "Advanced search format",
+ "search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ",
"search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
"search_popout.tips.hashtag": "ဟက်ရှ်တက်ခ်",
"search_popout.tips.status": "ပို့စ်",
@@ -534,29 +534,29 @@
"search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ",
"search_results.statuses": "ပို့စ်တင်မယ်",
"search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
- "search_results.title": "Search for {q}",
+ "search_results.title": "{q} ကို ရှာပါ",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
"server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
- "server_banner.active_users": "active users",
+ "server_banner.active_users": "လက်ရှိအသုံးပြုသူများ",
"server_banner.administered_by": "Administered by:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
- "server_banner.learn_more": "Learn more",
+ "server_banner.learn_more": "ပိုမိုသိရှိရန်",
"server_banner.server_stats": "Server stats:",
- "sign_in_banner.create_account": "Create account",
- "sign_in_banner.sign_in": "Sign in",
+ "sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်",
+ "sign_in_banner.sign_in": "အကောင့်ဝင်မည်",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_domain": "Open moderation interface for {domain}",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name} ကိုဘလော့မည်",
- "status.bookmark": "Bookmark",
+ "status.bookmark": "မှတ်ထားသည်များ",
"status.cancel_reblog_private": "Unboost",
"status.cannot_reblog": "This post cannot be boosted",
"status.copy": "Copy link to status",
- "status.delete": "Delete",
+ "status.delete": "ဖျက်ရန်",
"status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
- "status.edit": "Edit",
+ "status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်",
+ "status.edit": "ပြင်ဆင်ရန်",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Embed",
@@ -574,86 +574,86 @@
"status.mute_conversation": "Mute conversation",
"status.open": "ပို့စ်ကိုချဲ့ထွင်မည်",
"status.pin": "Pin on profile",
- "status.pinned": "Pinned post",
- "status.read_more": "Read more",
+ "status.pinned": "ပင်တွဲထားသောပို့စ်",
+ "status.read_more": "ပိုမိုဖတ်ရှုရန်",
"status.reblog": "Boost",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} boosted",
"status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
"status.redraft": "Delete & re-draft",
- "status.remove_bookmark": "Remove bookmark",
- "status.replied_to": "Replied to {name}",
- "status.reply": "Reply",
+ "status.remove_bookmark": "မှတ်ထားသည်များကို ဖယ်ရှားပါ",
+ "status.replied_to": "{name} ကို စာပြန်ခဲ့သည်",
+ "status.reply": "စာပြန်ရန်",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
- "status.sensitive_warning": "Sensitive content",
- "status.share": "Share",
- "status.show_filter_reason": "Show anyway",
- "status.show_less": "Show less",
- "status.show_less_all": "Show less for all",
- "status.show_more": "Show more",
- "status.show_more_all": "Show more for all",
- "status.show_original": "Show original",
- "status.translate": "Translate",
- "status.translated_from_with": "Translated from {lang} using {provider}",
- "status.uncached_media_warning": "Not available",
+ "status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ",
+ "status.share": "မျှဝေ",
+ "status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ",
+ "status.show_less": "အနည်းငယ်သာ ပြပါ",
+ "status.show_less_all": "အားလုံးအတွက် အနည်းငယ်သာ ပြပါ",
+ "status.show_more": "ပိုမိုပြရန်",
+ "status.show_more_all": "အားလုံးအတွက် ပိုပြပါ",
+ "status.show_original": "မူရင်းပြပါ",
+ "status.translate": "ဘာသာပြန်ပါ",
+ "status.translated_from_with": "{provider} ကို အသုံးပြု၍ {lang} မှ ဘာသာပြန်ထားသည်",
+ "status.uncached_media_warning": "မရနိုင်ပါ",
"status.unmute_conversation": "Unmute conversation",
"status.unpin": "Unpin from profile",
"subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
- "subscribed_languages.save": "Save changes",
- "subscribed_languages.target": "Change subscribed languages for {target}",
+ "subscribed_languages.save": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ",
+ "subscribed_languages.target": "{target} အတွက် စာရင်းသွင်းထားသော ဘာသာစကားများကို ပြောင်းပါ",
"suggestions.dismiss": "Dismiss suggestion",
"suggestions.header": "You might be interested in…",
- "tabs_bar.federated_timeline": "Federated",
- "tabs_bar.home": "Home",
- "tabs_bar.local_timeline": "Local",
- "tabs_bar.notifications": "Notifications",
+ "tabs_bar.federated_timeline": "ဖက်ဒီ",
+ "tabs_bar.home": "ပင်မစာမျက်နှာ",
+ "tabs_bar.local_timeline": "ပြည်တွင်း",
+ "tabs_bar.notifications": "အသိပေးချက်များ",
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
"time_remaining.moments": "Moments remaining",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
- "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.statuses": "Older posts",
+ "timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။",
+ "timeline_hint.resources.followers": "စောင့်ကြည့်သူများ",
+ "timeline_hint.resources.follows": "စောင့်ကြည့်မယ်",
+ "timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ",
"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",
+ "trends.trending_now": "လက်ရှိခေတ်စားနေသော ပို့စ်များ",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
"upload_area.title": "Drag & drop to upload",
- "upload_button.label": "Add images, a video or an audio file",
- "upload_error.limit": "File upload limit exceeded.",
+ "upload_button.label": "ပုံများ၊ ဗီဒီယို သို့မဟုတ် အသံဖိုင်တစ်ခု ထည့်ပါ",
+ "upload_error.limit": "ဖိုင်အများဆုံးတင်နိုင်မည့်ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။",
"upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ",
"upload_form.audio_description": "အကြားအာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
- "upload_form.description_missing": "No description added",
- "upload_form.edit": "Edit",
+ "upload_form.description_missing": "ဖော်ပြချက် မထည့်ပါ",
+ "upload_form.edit": "ပြင်ရန်",
"upload_form.thumbnail": "Change thumbnail",
- "upload_form.undo": "Delete",
+ "upload_form.undo": "ဖျက်ရန်",
"upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
"upload_modal.applying": "Applying…",
- "upload_modal.choose_image": "Choose image",
- "upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
+ "upload_modal.choose_image": "ပုံရွေးပါ",
+ "upload_modal.description_placeholder": "သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ္ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေး ဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်",
"upload_modal.detect_text": "Detect text from picture",
- "upload_modal.edit_media": "Edit media",
+ "upload_modal.edit_media": "မီဒီယာကို ပြင်ဆင်ရန်",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
- "upload_modal.preparing_ocr": "Preparing OCR…",
+ "upload_modal.preparing_ocr": "OCR ပြင်ဆင်နေသည်…",
"upload_modal.preview_label": "Preview ({ratio})",
"upload_progress.label": "တင်နေသည်...",
- "upload_progress.processing": "Processing…",
- "video.close": "Close video",
- "video.download": "Download file",
- "video.exit_fullscreen": "Exit full screen",
- "video.expand": "Expand video",
- "video.fullscreen": "Full screen",
- "video.hide": "Hide video",
- "video.mute": "Mute sound",
- "video.pause": "Pause",
- "video.play": "Play",
- "video.unmute": "Unmute sound"
+ "upload_progress.processing": "လုပ်ဆောင်နေသည်…",
+ "video.close": "ဗီဒီယိုကို ပိတ်ပါ",
+ "video.download": "ဖိုင်ကို ဒေါင်းလုဒ်လုပ်ပါ",
+ "video.exit_fullscreen": "မျက်နှာပြင်အပြည့်မှ ထွက်ပါ",
+ "video.expand": "ဗီဒီယိုကို ချဲ့ပါ",
+ "video.fullscreen": "မျက်နှာပြင်အပြည့်",
+ "video.hide": "ဗီဒီယိုကို ဖျောက်ပါ",
+ "video.mute": "အသံပိတ်ထားပါ",
+ "video.pause": "ခဏရပ်ပါ",
+ "video.play": "ဖွင့်ပါ",
+ "video.unmute": "အသံပြန်ဖွင့်ပါ"
}
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 9ed91cc345..33026253a1 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -34,7 +34,7 @@
"account.followers.empty": "Ingen fylgjer denne brukaren enno.",
"account.followers_counter": "{count, plural, one {{counter} fylgjar} other {{counter} fylgjarar}}",
"account.following": "Fylgjer",
- "account.following_counter": "{count, plural, one {Fylgjar {counter}} other {Fylgjar {counter}}}",
+ "account.following_counter": "{count, plural, one {Fylgjer {counter}} other {Fylgjer {counter}}}",
"account.follows.empty": "Denne brukaren fylgjer ikkje nokon enno.",
"account.follows_you": "Fylgjer deg",
"account.go_to_profile": "Gå til profil",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 75a9467be2..47efca424b 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -221,7 +221,7 @@
"empty_column.favourites": "Ingen har favoritmarkerat detta inlägg än. När någon gör det kommer de synas här.",
"empty_column.follow_recommendations": "Det ser ut som om inga förslag kan genereras till dig. Du kan prova att använda sök för att leta efter personer som du kanske känner eller utforska trendande hash-taggar.",
"empty_column.follow_requests": "Du har inga följarförfrågningar än. När du får en kommer den visas här.",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "Du följer inga hashtags ännu. När du gör det kommer de att dyka upp här.",
"empty_column.hashtag": "Det finns inget i denna hashtag ännu.",
"empty_column.home": "Din hemma-tidslinje är tom! Följ fler användare för att fylla den. {suggestions}",
"empty_column.home.suggestions": "Se några förslag",
@@ -264,7 +264,7 @@
"follow_request.authorize": "Godkänn",
"follow_request.reject": "Avvisa",
"follow_requests.unlocked_explanation": "Även om ditt konto inte är låst tror {domain} personalen att du kanske vill granska dessa följares förfrågningar manuellt.",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "Följda hashtags",
"footer.about": "Om",
"footer.directory": "Profilkatalog",
"footer.get_app": "Skaffa appen",
@@ -544,7 +544,7 @@
"server_banner.server_stats": "Serverstatistik:",
"sign_in_banner.create_account": "Skapa konto",
"sign_in_banner.sign_in": "Logga in",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
+ "sign_in_banner.text": "Logga in för att följa profiler eller hashtags, favoritmarkera, dela och svara på inlägg. Du kan också interagera med ditt konto på en annan server.",
"status.admin_account": "Öppet modereringsgränssnitt för @{name}",
"status.admin_domain": "Öppet modereringsgränssnitt för @{domain}",
"status.admin_status": "Öppna detta inlägg i modereringsgränssnittet",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 76009ba1e5..41098618ce 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -7,7 +7,7 @@
"about.domain_blocks.silenced.explanation": "Гадәттә, сез бу серверның профильләрен һәм эчтәлеген күрмәячәксез, әгәр сез аларны ачыктан-ачык карамасагыз яки бу адымнарны үтәп язылмасагыз.",
"about.domain_blocks.silenced.title": "Чикле",
"about.domain_blocks.suspended.explanation": "Бу серверның бернинди мәгълүматлары да эшкәртелмәячәк, сакланмаячак яки алмаштырылмаячак, бу сервердан кулланучылар белән үзара бәйләнешне яки аралашуны мөмкин итми.",
- "about.domain_blocks.suspended.title": "Асылмалы",
+ "about.domain_blocks.suspended.title": "Блокланган",
"about.not_available": "Бу серверда бу мәгълүмат юк иде.",
"about.powered_by": "Децентрализованные социаль челтәрләр нигезендә {mastodon}",
"about.rules": "Сервер кагыйдәләре",
@@ -39,22 +39,22 @@
"account.follows_you": "Сезгә язылган",
"account.go_to_profile": "Профильгә күчү",
"account.hide_reblogs": "Скрывать көчен нче @{name}",
- "account.joined_short": "Кушылу",
- "account.languages": "Подписка телләрен үзгәртү",
+ "account.joined_short": "Кушылды",
+ "account.languages": "Сайланган телләрен үзгәртү",
"account.link_verified_on": "Бу сылтамага милек хокукы тикшерелде {date}",
"account.locked_info": "Бу - ябык аккаунт. Аны язылучылар гына күрә ала.",
"account.media": "Медиа",
"account.mention": "@{name} искәртү",
"account.moved_to": "{name} аларның яңа счеты хәзер күрсәтте:",
- "account.mute": "Тавышсыз @{name}",
- "account.mute_notifications": "Отключите хәбәрләр нче @{name}",
- "account.muted": "Тавышсыз",
+ "account.mute": "@{name} кулланучыга әһәмият бирмәү",
+ "account.mute_notifications": "@{name} кулланучыдан хәбәрләргә әһәмият бирмәү",
+ "account.muted": "Әһәмият бирмәнгән",
"account.open_original_page": "Чыганак битен ачу",
- "account.posts": "Toots",
- "account.posts_with_replies": "Toots and replies",
- "account.report": "Хисап @{name}",
+ "account.posts": "Пост",
+ "account.posts_with_replies": "Пост һәм җавап",
+ "account.report": "@{name} кулланучыга шикаять итү",
"account.requested": "Awaiting approval",
- "account.requested_follow": "{name} сиңа иярүеңне сорады",
+ "account.requested_follow": "{name} Сезгә язылу соравын җиберде",
"account.share": "Уртаклашу @{name} профиль",
"account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 3af82e86ed..4e5cfb876c 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -104,14 +104,14 @@
"column.community": "本站時間軸",
"column.direct": "私訊",
"column.directory": "瀏覽個人檔案",
- "column.domain_blocks": "已封鎖的網域",
+ "column.domain_blocks": "已封鎖網域",
"column.favourites": "最愛",
"column.follow_requests": "跟隨請求",
"column.home": "首頁",
"column.lists": "列表",
"column.mutes": "已靜音的使用者",
"column.notifications": "通知",
- "column.pins": "釘選嘟文",
+ "column.pins": "釘選的嘟文",
"column.public": "聯邦時間軸",
"column_back_button.label": "上一頁",
"column_header.hide_settings": "隱藏設定",
@@ -168,7 +168,7 @@
"confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。",
"confirmations.mute.message": "您確定要靜音 {name} 嗎?",
"confirmations.redraft.confirm": "刪除並重新編輯",
- "confirmations.redraft.message": "您確定要刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
+ "confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文的轉嘟及最愛,且對原始嘟文的回覆都會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
"confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
"confirmations.unfollow.confirm": "取消跟隨",
@@ -190,7 +190,7 @@
"dismissable_banner.explore_links": "這些新聞故事正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
"dismissable_banner.explore_statuses": "這些於此伺服器以及去中心化網路中其他伺服器發出的嘟文正在被此伺服器上的人們熱烈討論著。",
"dismissable_banner.explore_tags": "這些主題標籤正在被此伺服器以及去中心化網路上的人們熱烈討論著。",
- "dismissable_banner.public_timeline": "這些是來自此伺服器以及去中心化網路中其他已知伺服器的最新公開嘟文。",
+ "dismissable_banner.public_timeline": "這些是來自這裡以及去中心化網路中其他已知伺服器之最新公開嘟文。",
"embed.instructions": "要在您的網站嵌入此嘟文,請複製以下程式碼。",
"embed.preview": "它將顯示成這樣:",
"emoji_button.activity": "活動",
@@ -246,7 +246,7 @@
"filter_modal.added.context_mismatch_title": "不符合情境!",
"filter_modal.added.expired_explanation": "此過濾器類別已失效,您需要更新過期日期以套用。",
"filter_modal.added.expired_title": "過期的過濾器!",
- "filter_modal.added.review_and_configure": "若欲檢視和進一步設定此過濾器類別,請至 {settings_link}。",
+ "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}。",
@@ -306,11 +306,11 @@
"intervals.full.days": "{number, plural, one {# 天} other {# 天}}",
"intervals.full.hours": "{number, plural, one {# 小時} other {# 小時}}",
"intervals.full.minutes": "{number, plural, one {# 分鐘} other {# 分鐘}}",
- "keyboard_shortcuts.back": "返回上一頁",
- "keyboard_shortcuts.blocked": "開啟「封鎖使用者」名單",
+ "keyboard_shortcuts.back": "上一頁",
+ "keyboard_shortcuts.blocked": "開啟「封鎖使用者」列表",
"keyboard_shortcuts.boost": "轉嘟",
- "keyboard_shortcuts.column": "聚焦至其中一欄的嘟文",
- "keyboard_shortcuts.compose": "聚焦至撰寫文字區塊",
+ "keyboard_shortcuts.column": "將游標移至其中一欄",
+ "keyboard_shortcuts.compose": "將游標移至文字撰寫區塊",
"keyboard_shortcuts.description": "說明",
"keyboard_shortcuts.direct": "開啟私訊欄",
"keyboard_shortcuts.down": "往下移動",
@@ -332,13 +332,13 @@
"keyboard_shortcuts.profile": "開啟作者的個人檔案頁面",
"keyboard_shortcuts.reply": "回應嘟文",
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
- "keyboard_shortcuts.search": "聚焦至搜尋框",
+ "keyboard_shortcuts.search": "將游標移至搜尋框",
"keyboard_shortcuts.spoilers": "顯示或隱藏內容警告之嘟文",
"keyboard_shortcuts.start": "開啟「開始使用」欄位",
"keyboard_shortcuts.toggle_hidden": "顯示或隱藏在內容警告之後的嘟文",
"keyboard_shortcuts.toggle_sensitivity": "顯示或隱藏媒體",
"keyboard_shortcuts.toot": "發個新嘟文",
- "keyboard_shortcuts.unfocus": "取消輸入文字區塊或搜尋之焦點",
+ "keyboard_shortcuts.unfocus": "跳離文字撰寫區塊或搜尋框",
"keyboard_shortcuts.up": "往上移動",
"lightbox.close": "關閉",
"lightbox.compress": "折疊圖片檢視框",
@@ -376,27 +376,27 @@
"navigation_bar.compose": "撰寫新嘟文",
"navigation_bar.direct": "私訊",
"navigation_bar.discover": "探索",
- "navigation_bar.domain_blocks": "已封鎖的網域",
+ "navigation_bar.domain_blocks": "已封鎖網域",
"navigation_bar.edit_profile": "編輯個人檔案",
"navigation_bar.explore": "探索",
"navigation_bar.favourites": "最愛",
"navigation_bar.filters": "已靜音的關鍵字",
"navigation_bar.follow_requests": "跟隨請求",
- "navigation_bar.followed_tags": "已跟隨主題標籤",
+ "navigation_bar.followed_tags": "已跟隨的主題標籤",
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
"navigation_bar.mutes": "已靜音的使用者",
"navigation_bar.personal": "個人",
- "navigation_bar.pins": "釘選嘟文",
+ "navigation_bar.pins": "釘選的嘟文",
"navigation_bar.preferences": "偏好設定",
"navigation_bar.public_timeline": "聯邦時間軸",
"navigation_bar.search": "搜尋",
"navigation_bar.security": "安全性",
"not_signed_in_indicator.not_signed_in": "您需要登入才能存取此資源。",
- "notification.admin.report": "{name} 檢舉了 {target}",
+ "notification.admin.report": "{name} 已檢舉 {target}",
"notification.admin.sign_up": "{name} 已經註冊",
- "notification.favourite": "{name} 把您的嘟文加入了最愛",
+ "notification.favourite": "{name} 已將您的嘟文加入最愛",
"notification.follow": "{name} 跟隨了您",
"notification.follow_request": "{name} 要求跟隨您",
"notification.mention": "{name} 提到了您",
@@ -404,7 +404,7 @@
"notification.poll": "您曾投過的投票已經結束",
"notification.reblog": "{name} 轉嘟了您的嘟文",
"notification.status": "{name} 剛剛嘟文",
- "notification.update": "{name} 編輯了嘟文",
+ "notification.update": "{name} 已編輯嘟文",
"notifications.clear": "清除通知",
"notifications.clear_confirmation": "您確定要永久清除您的通知嗎?",
"notifications.column_settings.admin.report": "新檢舉報告:",
@@ -544,7 +544,7 @@
"server_banner.server_stats": "伺服器統計:",
"sign_in_banner.create_account": "新增帳號",
"sign_in_banner.sign_in": "登入",
- "sign_in_banner.text": "登入以追蹤個人檔案、主題標籤、最愛,分享和回覆嘟文。您也能與您其他伺服器之帳號進行互動。",
+ "sign_in_banner.text": "登入以跟隨個人檔案和主題標籤,或收藏、分享和回覆嘟文。您也可以使用您的帳號在其他伺服器上進行互動。",
"status.admin_account": "開啟 @{name} 的管理介面",
"status.admin_domain": "開啟 {domain} 的管理介面",
"status.admin_status": "在管理介面開啟此嘟文",
diff --git a/config/locales/activerecord.bg.yml b/config/locales/activerecord.bg.yml
index 2fd0791715..8b1e44ee4c 100644
--- a/config/locales/activerecord.bg.yml
+++ b/config/locales/activerecord.bg.yml
@@ -41,7 +41,7 @@ bg:
attributes:
email:
blocked: използва се забранен доставчик на услуга за е-поща
- unreachable: изглежда, че не съществува
+ unreachable: изглежда не съществува
role_id:
elevated: не може да е по-висока от текущата ви роля
user_role:
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index 0c25cea8c0..c45d3ae8c8 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -28,7 +28,7 @@ de:
doorkeeper/application:
attributes:
website:
- invalid: ist keine gültige Adresse
+ invalid: ist keine gültige URL
import:
attributes:
data:
diff --git a/config/locales/activerecord.fy.yml b/config/locales/activerecord.fy.yml
index cc10d817d5..22f0c0d15d 100644
--- a/config/locales/activerecord.fy.yml
+++ b/config/locales/activerecord.fy.yml
@@ -43,13 +43,13 @@ fy:
blocked: brûkt in net tastiene e-mailprovider
unreachable: liket net te bestean
role_id:
- elevated: kin net heger wêze as dyn aktuele rol
+ elevated: kin net heger wêze as jo aktuele rol
user_role:
attributes:
permissions_as_keys:
dangerous: rjochten tafoegje dy’t net feilich binne foar de basisrol
- elevated: kin gjin rjochten tafoegje dy’t dyn aktuele rol net besit
- own_role: kin net mei dyn aktuele rol wizige wurde
+ elevated: kin gjin rjochten tafoegje dy’t jo aktuele rol net besit
+ own_role: kin net mei jo aktuele rol wizige wurde
position:
- elevated: kin net heger wêze as dyn aktuele rol
- own_role: kin net mei dyn aktuele rol wizige wurde
+ elevated: kin net heger wêze as jo aktuele rol
+ own_role: kin net mei jo aktuele rol wizige wurde
diff --git a/config/locales/activerecord.kab.yml b/config/locales/activerecord.kab.yml
index 5b3d06634d..909ff68c24 100644
--- a/config/locales/activerecord.kab.yml
+++ b/config/locales/activerecord.kab.yml
@@ -25,3 +25,7 @@ kab:
attributes:
reblog:
taken: n iddaden yellan yakan
+ user:
+ attributes:
+ email:
+ unreachable: ur d-ttban ara d akken yella
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index 9aa9af62ed..eb29b5a3a8 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -43,7 +43,7 @@ pt-BR:
blocked: usa provedor de e-mail não permitido
unreachable: parece não existir
role_id:
- elevated: não pode ser maior do que seu cargo atual
+ elevated: não pode ser maior que seu cargo atual
user_role:
attributes:
permissions_as_keys:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 5ab26083a2..32130cc7da 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -114,6 +114,13 @@ ar:
pending: في انتظار المراجعة
perform_full_suspension: تعليق الحساب
previous_strikes: العقوبات السابقة
+ previous_strikes_description_html:
+ few: لدى هذا الحساب %{count} إنذارات.
+ many: لدى هذا الحساب %{count} إنذارًا.
+ one: هذا الحساب لديه %{count}انذار.
+ other: لدى هذا الحساب %{count} إنذار.
+ two: لدى هذا الحساب %{count} إنذاران اثنان.
+ zero: هذا الحساب لديه %{count}انذار.
promote: ترقية
protocol: البروتوكول
public: عمومي
@@ -880,6 +887,13 @@ ar:
trending_rank: 'المتداولة #%{rank}'
usable: يمكن استخدامه
usage_comparison: تم استخدامه %{today} مرات اليوم، مقارنة بـ %{yesterday} بالأمس
+ used_by_over_week:
+ few: مستخدَم من قِبل %{count} أشخاص خلال الأسبوع الماضي
+ many: مستخدَم من قِبل %{count} شخصا خلال الأسبوع الماضي
+ one: مستخدَم من قِبل %{count} شخص واحد خلال الأسبوع الماضي
+ other: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي
+ two: مستخدَم من قِبل %{count} شخصين خلال الأسبوع الماضي
+ zero: مستخدَم من قِبل %{count} شخص خلال الأسبوع الماضي
title: المتداوَلة
trending: المتداولة
warning_presets:
@@ -1150,6 +1164,8 @@ ar:
storage: ذاكرة التخزين
featured_tags:
add_new: أضف واحدًا جديدا
+ errors:
+ limit: لقد قمت بالفعل بعرض الحد الأقصى من عدد الوسوم
hint_html: "ما هي الوسوم الرائجة؟ يتم عرضها بشكل بارز على ملفك الشخصي العام وتسمح للناس بتصفح منشوراتك العامة على وجه التحديد تحت تلك الوسوم. وهي أداة رائعة لتتبع الأعمال الإبداعية أو المشاريع الطويلة الأجل."
filters:
contexts:
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index 536e3887cb..afdb5176c4 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -6,7 +6,7 @@ ast:
hosted_on: 'Mastodon ta agospiáu en: %{domain}'
title: Tocante a
accounts:
- last_active: Última actividá
+ last_active: última actividá
nothing_here: "¡Equí nun hai nada!"
posts:
one: Artículu
@@ -20,6 +20,7 @@ ast:
accounts:
add_email_domain_block: Bloquiar el dominiu de corréu electrónicu
approved_msg: Aprobóse correutamente la solicitú de rexistru de «%{username}»
+ are_you_sure: "¿De xuru que quies facer esta aición?"
avatar: Avatar
by_domain: Dominiu
confirming: En confirmación
@@ -39,6 +40,7 @@ ast:
login_status: Estáu del aniciu de la sesión
moderation:
pending: Pendiente
+ title: Moderación
most_recent_activity: L'actividá más recién
most_recent_ip: La IP más recién
perform_full_suspension: Suspender
@@ -201,12 +203,19 @@ ast:
known_accounts:
one: "%{count} cuenta conocida"
other: "%{count} cuentes conocíes"
+ moderation:
+ title: Moderación
private_comment: Comentariu priváu
public_comment: Comentariu públicu
title: Federación
total_reported: Informes d'esa instancia
invites:
deactivate_all: Desactivalo too
+ filter:
+ all: Too
+ available: Disponible
+ expired: Caducó
+ title: Peñera
title: Invitaciones
ip_blocks:
expires_in:
@@ -231,6 +240,7 @@ ast:
silence_description_html: La cuenta va ser visible namás pa quien xá la siguiere o la buscare manualmente, lo que llenda'l so algame. Esta decisión pue desfacese en cualesquier momentu. Si escueyes esta opción, zárrense tolos informes escontra esta cuenta.
actions_description_html: Decidi qué aición tomar pa resolver esti informe. Si tomes una aición punitiva escontra la cuenta de la que s'informó, va unviase un avisu per corréu electrónicu a esa cuenta, esceuto cuando se seleiciona la categoría Puxarra.
add_to_report: Amestar más al informe
+ are_you_sure: "¿De xuru que quies facer esta aición?"
category: Categoría
category_description_html: El motivu pol que s'informó d'esta cuenta y/o conteníu cítase na comunicación cola cuenta de la que s'informó
comment_description_html: 'Pa fornir más información, %{name} escribió:'
@@ -268,6 +278,7 @@ ast:
administration: Alministración
devops: DevOps
invites: Invitaciones
+ moderation: Moderación
edit: Edición del rol «%{name}»
everyone: Permisos predeterminaos
permissions_count:
@@ -339,6 +350,7 @@ ast:
strikes:
actions:
delete_statuses: "%{name} desanició l'artículu de: %{target}"
+ disable: "%{name} conxeló la cuenta de: %{target}"
mark_statuses_as_sensitive: "%{name} marcó l'artículu de %{target} como sensible"
none: "%{name} unvió una alvertencia a %{target}"
sensitive: "%{name} marcó la cuenta de %{target} como sensible"
@@ -433,6 +445,7 @@ ast:
notification_preferences: Camudar les preferencies de los mensaxes de corréu electrónicu
applications:
created: L'aplicación creóse correutamente
+ destroyed: L'aplicación desanicióse correutamente
regenerate_token: Volver xenerar el pase d'accesu
token_regenerated: El pase d'accesu volvió xenerase correutamente
warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide!
@@ -520,12 +533,14 @@ ast:
action_taken: Aición tomada
appeal: Apellación
appeal_rejected: Refugóse l'apellación
+ appeal_submitted_at: Data de l'apellación
appealed_msg: Unvióse l'apellación. Si s'aprueba, avisámoste.
appeals:
submit: Unviu d'una apellación
approve_appeal: Aprobar l'apellación
associated_report: Informe asociáu
created_at: Data
+ recipient: Dirixóse a
reject_appeal: Refugar l'apellación
status: 'Artículu #%{id}'
status_removed: L'artículu xá se quitó del sistema
@@ -570,6 +585,7 @@ ast:
public: Llinies de tiempu públiques
thread: Conversaciones
edit:
+ add_keyword: Amestar una pallabra clave
keywords: Pallabres clave
statuses: Artículos individuales
errors:
@@ -654,6 +670,8 @@ ast:
incoming_migrations_html: Pa migrar d'otra cuenta a esta, primero tienes de crear un nomatu de cuenta.
warning:
followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva
+ moderation:
+ title: Moderación
notification_mailer:
admin:
sign_up:
@@ -778,6 +796,7 @@ ast:
notifications: Avisos
preferences: Preferencies
profile: Perfil
+ relationships: Perfiles que sigues ya te siguen
statuses_cleanup: Desaniciu automáticu d'artículos
two_factor_authentication: Autenticación en dos pasos
webauthn_authentication: Llaves de seguranza
@@ -819,8 +838,16 @@ ast:
exceptions: Esceiciones
interaction_exceptions: Esceiciones basaes nes interaiciones
keep_direct: Caltener los mensaxes direutos
+ keep_direct_hint: Nun desanicia nengún mensaxe direutu
+ keep_media: Caltener los artículos con elementos multimedia
+ keep_media_hint: Nun desanicia nengún artículu de to que contenta elementos multimedia
keep_pinned: Caltener los artículos fixaos
keep_polls: Caltener les encuestes
+ keep_polls_hint: Nun desanicia nenguna encuesta de to
+ keep_self_bookmark: Caltener los artículos que metieres en Marcadores
+ keep_self_bookmark_hint: Nun desanicia nengún artículu que metieres en Marcadores
+ keep_self_fav: Caltener los artículos que seyan favoritos
+ keep_self_fav_hint: Nun desanicia nengún artículu que marcares como favoritu
min_age:
'1209600': 2 selmanes
'15778476': 6 meses
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index adaf31d852..7483c562b0 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -105,7 +105,7 @@ bg:
not_subscribed: Без абонамент
pending: Изчаква преглед
perform_full_suspension: Спиране
- previous_strikes: Предишни нарушения
+ previous_strikes: Предишни предупреждения
previous_strikes_description_html:
one: Този акаунт има едно нарушение.
other: Този акунт има %{count} нарушения.
@@ -231,7 +231,7 @@ bg:
actions:
approve_appeal_html: "%{name} одобри обжалването на решение за модериране от %{target}"
approve_user_html: "%{name} одобри регистрирането от %{target}"
- assigned_to_self_report_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}"
@@ -613,6 +613,7 @@ bg:
placeholder: Опишете какви действия са били предприети или всякакви други свързани нови неща...
title: Бележки
notes_description_html: Прегледайте и оставете бележки за други модератори и за вас самите след време
+ processed_msg: Доклад №%{id} успешно обработен
quick_actions_description_html: 'Предприемете бързо действие или превъртете надолу, за да видите докладваното съдържание:'
remote_user_placeholder: отдалеченият потребител от %{instance}
reopen: Отваряне пак на доклад
@@ -633,10 +634,14 @@ bg:
suspend_html: 'На път сте да спрете акаунта на @%{acct}. Това ще:'
actions:
delete_html: Премахване на обидните публикации
+ mark_as_sensitive_html: Означаване на мултимедийните обидни публикации като деликатни
silence_html: Силно ограничаване достигането на @%{acct}, което прави профилът и съдържанието на това лице видимо само до хората, които са го последвали или ръчно търсещите профила
+ suspend_html: Спирането на @%{acct} ще направи профилът и съдържанието недостъпни и невъзможни за взаимодействие
close_report: Отбелязване на доклад №%{id} като решен
close_reports_html: Означаване на всички доклади срещу @%{acct} като решени
+ delete_data_html: Изтриване на профила и съдържанието на @%{acct} за 30 дни от сега, освен ако междувременно не получи спиране
preview_preamble_html: "@%{acct} ще получи предупреждение със следното съдържание:"
+ record_strike_html: Запис на предупреждение против @%{acct}, за да ви помогне при изострянето на бъдещи нарушения от този акаунт
send_email_html: Изпращане на предупредително е-писмо на @%{acct}
warning_placeholder: Незадължителни допълнителни причини за модераторско действие.
target_origin: Произход на докладвания акаунт
@@ -1020,7 +1025,7 @@ bg:
functional: Вашият акаунт е в изправност.
pending: Вашето приложение чака преглед от нашия екип. Това може да отнеме време. Ще получите имейл, ако приложението е одобрено.
redirecting_to: Вашият акаунт е бездеен, защото сега се пренасочва към %{acct}.
- view_strikes: Преглед на предишните нарушения за вашия акаунт
+ view_strikes: Преглед на предишните предупреждения против акаунта ви
too_fast: Образецът подаден пребързо, опитайте пак.
use_security_key: Употреба на ключ за сигурност
authorize_follow:
@@ -1083,7 +1088,7 @@ bg:
strikes:
action_taken: Предприето действие
appeal: Обжалване
- appeal_approved: Това нарушение беше успешно обжалвано и е вече невалидно
+ appeal_approved: Това предупреждение беше успешно обжалвано и е вече невалидно
appeal_rejected: Обжалването е отхвърлено
appeal_submitted_at: Подадено обжалване
appealed_msg: Вашето обжалване е отхвърлено. Ако е одобрено, то ще бъдете известени.
@@ -1492,7 +1497,7 @@ bg:
profile: Профил
relationships: Последвания и последователи
statuses_cleanup: Автоматично изтриване на публикации
- strikes: Нарушения
+ strikes: Модериране на предупреждения
two_factor_authentication: Двустепенно удостоверяване
webauthn_authentication: Ключове за сигурност
statuses:
@@ -1586,7 +1591,7 @@ bg:
sensitive_content: Деликатно съдържание
strikes:
errors:
- too_late: Късно е за обжалване на това нарушение
+ too_late: Твърде късно е за обжалване на това предупреждение
tags:
does_not_match_previous_name: не съвпада с предишното име
themes:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index e0468d6c70..38111748d8 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -990,7 +990,7 @@ da:
migrate_account: Flyt til en anden konto
migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér.
or_log_in_with: Eller log ind med
- privacy_policy_agreement_html: Jeg accepterer Fortrolighedspolitikken
+ privacy_policy_agreement_html: Jeg accepterer privatlivspolitikken
providers:
cas: CAS
saml: SAML
@@ -1077,7 +1077,7 @@ da:
email_contact_html: Hvis det stadig ikke ankommer, kan du sende en e-mail til %{email} for hjælp
email_reconfirmation_html: Modtager du ikke bekræftelses-e-mailen, kan du anmode om en ny
irreversible: Du vil ikke kunne gendanne/genaktivere din konto
- more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken.
+ more_details_html: For yderligere oplysningerer, tjek privatlivspolitikken.
username_available: Dit brugernavn vil blive tilgængeligt igen
username_unavailable: Dit brugernavn vil forblive utilgængeligt
disputes:
@@ -1392,7 +1392,7 @@ da:
posting_defaults: Standarder for indlæg
public_timelines: Offentlige tidslinjer
privacy_policy:
- title: Fortrolighedspolitik
+ title: Privatlivspolitik
reactions:
errors:
limit_reached: Grænse for forskellige reaktioner nået
diff --git a/config/locales/de.yml b/config/locales/de.yml
index d5aa904f97..69284b09f9 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -735,8 +735,8 @@ de:
preamble: Lege fest, wie lange nutzergenerierte Inhalte auf deiner Mastodon-Instanz gespeichert werden.
title: Cache & Archive
default_noindex:
- desc_html: Betrifft alle Benutzer, die diese Einstellung nicht selbst geändert haben
- title: Benutzer standardmäßig von der Suchmaschinen-Indizierung ausnehmen
+ desc_html: Betrifft alle Benutzer*innen, die diese Einstellung bei sich nicht geändert haben
+ title: Profile standardmäßig von der Suchmaschinen-Indizierung ausnehmen
discovery:
follow_recommendations: Folgeempfehlungen
preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren.
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 577cf13004..c4d41aa620 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -20,9 +20,9 @@ de:
confirmation_instructions:
action: E-Mail-Adresse verifizieren
action_with_app: Bestätigen – und dann zur App %{app} zurückkehren
- explanation: Du hast auf %{host} mit dieser E-Mail-Adresse ein Konto erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
+ explanation: Du hast mit dieser E-Mail-Adresse ein Konto auf %{host} erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
- extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen.
+ extra_html: Bitte beachte auch die Serverregeln und unsere Datenschutzerklärung.
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
title: E-Mail-Adresse verifizieren
email_changed:
diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml
index 9fd54d1422..c15801f4cc 100644
--- a/config/locales/devise.et.yml
+++ b/config/locales/devise.et.yml
@@ -48,15 +48,15 @@ et:
title: Salasõna lähtestamine
two_factor_disabled:
explanation: Kontol on kaheastmeline autentimine välja lülitatud. Sisenemine on võimalik ainult kasutades e-postiaadressi ja salasõna.
- subject: 'Mastodon: Kahe-etapine autentimine välja lülitatud'
+ subject: 'Mastodon: Kaheastmeline autentimine välja lülitatud'
title: 2FA keelatud
two_factor_enabled:
explanation: Kontol on sisse lülitatud kaheastmeline autentimine. Sisenemiseks on vajalik ühekordne aeguv võti TOTP-rakenduse poolt.
- subject: 'Mastodon: Kahe-etapine autentimine sisse lülitatud'
+ subject: 'Mastodon: kaheastmeline autentimine sisse lülitatud'
title: 2FA lubatud
two_factor_recovery_codes_changed:
explanation: Eelmised taastekoodid on nüüd kehtetud ning loodud uued.
- subject: 'Mastodon: Kahe-etapise autentimise taastuskoodid taasloodud'
+ subject: 'Mastodon: Kaheastmelise autentimise taastuskoodid taasloodud'
title: 2FA taastekoodid muudetud
unlock_instructions:
subject: 'Mastodon: Lahti lukustamis juhendid'
diff --git a/config/locales/devise.fy.yml b/config/locales/devise.fy.yml
index 3a7ead83e3..fd246227a2 100644
--- a/config/locales/devise.fy.yml
+++ b/config/locales/devise.fy.yml
@@ -6,13 +6,13 @@ fy:
send_instructions: Do ûntfangst fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard.
send_paranoid_instructions: As dyn e-mailadres yn de database stiet, ûntfangsto fia in e-mailberjocht ynstruksjes hoe’tsto dyn account befêstigje kinst. Sjoch yn de map net-winske wannear’t neat ûntfongen waard.
failure:
- already_authenticated: Do bist al oanmeld.
+ already_authenticated: Jo binne al oanmeld.
inactive: Jo account is noch net aktivearre.
invalid: "%{authentication_keys} of wachtwurd ûnjildich."
last_attempt: Do hast noch ien besykjen oer eardat dyn account blokkearre wurdt.
- locked: Dyn account is blokkearre.
+ locked: Jo account is blokkearre.
not_found_in_database: "%{authentication_keys} of wachtwurd ûnjildich."
- pending: Dyn account moat noch hieltyd beoardiele wurde.
+ pending: Jo account moat noch hieltyd beoardiele wurde.
timeout: Dyn sesje is ferrûn, meld dy opnij oan.
unauthenticated: Jo moatte oanmelde of registrearje.
unconfirmed: Do moatst earst dyn account befêstigje.
diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml
index 14b26845ae..4a5500aed4 100644
--- a/config/locales/devise.my.yml
+++ b/config/locales/devise.my.yml
@@ -3,14 +3,16 @@ my:
devise:
confirmations:
confirmed: သင်၏ အီးမေးလ်လိပ်စာ အောင်မြင်စွာအတည်ပြုပြီးပါပြီ။
- send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
- send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင့်ထံ ပေးပို့လိုက်မည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
failure:
already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။
+ inactive: သင့်အကောင့်မှာ အတည်မဖြစ်သေးပါ။
invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။
locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။
not_found_in_database: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
+ pending: သင့်အကောင့်အား စိစစ်ဆဲဖြစ်သည်။
timeout: သင့် Session သက်တမ်းကုန်သွားပါပြီ။ ရှေ့ဆက်ရန်အတွက် ကျေးဇူးပြုပြီး ထပ်မံဝင်ရောက်ပါ။
unauthenticated: ဆက်မလုပ်မီ သင်သည် အကောင့်ဝင်ရန် သို့မဟုတ် အကောင့်ဖွင့်ရန် လိုအပ်သည်။
unconfirmed: ဆက်မလုပ်မီ သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရပါမည်။
@@ -18,33 +20,46 @@ my:
confirmation_instructions:
action: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
action_with_app: အတည်ပြုပြီး %{app} သို့ပြန်သွားပါ
+ explanation: "%{host} တွင် ဤအီးမေးလ်လိပ်စာဖြင့် သင် အကောင့်တစ်ခု ဖန်တီးထားပြီးဖြစ်သည်။ သင် ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် အကောင့်အား အသက်ဝင်စေနိုင်သည်။ အကယ်၍ သင်ဖန်တီးထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။"
+ explanation_when_pending: "%{host} သို့ ဖိတ်ခေါ်မှုတစ်ခုကို ဤအီးမေးလ်လိပ်စာဖြင့် သင်တောင်းဆိုခဲ့သည်။ အီးမေးလ်လိပ်စာကို သင်အတည်ပြုပြီးပါက ကျွန်ုပ်တို့အနေဖြင့် သင့်တောင်းဆိုမှုအား စိစစ်မည်ဖြစ်သည်။ သင့်အနေဖြင့် မိမိအကောင့်အတွင်း ဝင်ရောက်၍ အသေးစိတ်အချက်အလက်များအား ပြုပြင်နိုင်သည် (သို့) မိမိအကောင့်အား ဖျက်နိုင်သည်။ သို့သော် သင့်အကောင့်ကို အတည်ပြုမပြီးမချင်း သင့်အနေဖြင့် လုပ်ငန်းဆောင်တာအများစုအား ဆောင်ရွက်နိုင်မည် မဟုတ်ပေ။ သင်၏ အကောင့်တောင်းဆိုမှု ငြင်းဆန်ခံရပါက သင့်အချက်အလက်များအား ဖယ်ရှားပေးမည်ဖြစ်သည်။ သင့်အနေဖြင့် တခြားအရေးယူဆောင်ရွက်ရန် မလိုအပ်ပါ။ အကယ်၍ ယခုတောင်းဆိုမှုအား သင်ပြုလုပ်ထားခြင်းမဟုတ်ခဲ့လျှင် ယခုအီးမေးလ်အား ကျေးဇူးပြု၍ လျစ်လျူရှုပါ။"
extra_html: ကျေးဇူးပြု၍ ဆာဗာစည်းမျဉ်းများ နှင့် ကျွန်ုပ်တို့၏ဝန်ဆောင်မှုစည်းမျဉ်းများကိုလည်း စစ်ဆေးကြည့်ပါ။
subject: Mastodon - %{instance} အတွက် အတည်ပြုချက် ညွှန်ကြားချက်များ
title: အီးမေးလ်လိပ်စာကို အတည်ပြုပါ
email_changed:
explanation: သင့်အကောင့်အတွက် အီးမေးလ်လိပ်စာကို ပြောင်းလဲနေပါသည် -
+ extra: သင့်အီးမေးလ်လိပ်စာ မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။
subject: 'Mastodon: အီးမေးလ်ပြောင်းလဲသွားပြီ'
title: အီးမေးလ်လိပ်စာအသစ်
password_change:
explanation: သင့်အကောင့်အတွက် စကားဝှက်ကို ပြောင်းလဲလိုက်ပါပြီ။
+ extra: သင့်စကားဝှက် မပြောင်းထားပါက တစ်စုံတစ်ဦးသည် သင့်အကောင့်သို့ ဝင်ရောက်ခွင့်ရရှိသွားနိုင်ပါသည်။ သင့်အကောင့် လော့ခ်ကျသွားပါက သင့်စကားဝှက်ကို ချက်ချင်းပြောင်းပါ သို့မဟုတ် ဆာဗာစီမံခန့်ခွဲသူကို ဆက်သွယ်ပါ။
subject: 'Mastodon: စကားဝှက်ပြောင်းလဲသွားပြီ'
title: စကားဝှက်ပြောင်းလဲသွားပြီ
reconfirmation_instructions:
explanation: သင်၏အီးမေးလ်လိပ်စာပြောင်းရန် လိပ်စာအသစ်အတည်ပြုပါ။
+ extra: တစ်ကယ်လို့ ပြောင်းလဲမှုကို သင်တောင်းဆိုတာမဟုတ်ဘူးဆိုရင် ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အပေါ်မှ လင့်ခ်ကိုမဝင်မချင်း သင့်အီးမေးလ်ပြောင်းသွားမည်မဟုတ်ပါ
subject: 'Mastodon: %{instance} အတွက်အီးမေးလ်အတည်ပြုပါ'
title: အီးမေးလ်လိပ်စာစစ်ဆေးပါ
reset_password_instructions:
action: စကားဝှက်ပြောင်းမည်
+ explanation: သင့်အကောင့်အတွက် စကားဝှက်အသစ်တစ်ခု တောင်းဆိုခဲ့သည်။
+ extra: သင်မတောင်းဆိုထားပါက ဤအီးမေးလ်ကို လျစ်လျူရှုလိုက်ပါ။ အထက်ဖော်ပြပါလင့်ခ်ကို သင်ဝင်ရောက်ပြီး အသစ်တစ်ခုမဖန်တီးမချင်း သင့်စကားဝှက်သည် ပြောင်းလဲမည်မဟုတ်ပါ။
subject: 'Mastodon: စကားဝှက်ညွှန်ကြားချက် ပြန်လည်သတ်မှတ်မည်'
title: စကားဝှက်ပြန်လည်သတ်မှတ်မည်
two_factor_disabled:
+ explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ အီးမေးလ်လိပ်စာနှင့် စကားဝှက်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။
subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်'
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ပိတ်ထားသည်
two_factor_enabled:
+ explanation: သင့်အကောင့်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အထောက်အထားပြခြင်းကို ဖွင့်ထားသည်။ TOTP အက်ပ်မှ ထုတ်ပေးသည့် တိုကင်တစ်ခုမှာ အကောင့်ဝင်ရန်အတွက် လိုအပ်ပါသည်။
subject: 'Mastodon: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်'
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ဖွင့်ထားသည်
two_factor_recovery_codes_changed:
+ explanation: ယခင်ပြန်လည်ရယူသည့်ကုဒ်များမှာ မမှန်ကန်သောကြောင့် အသစ်များကို ထုတ်ပေးခဲ့သည်။
+ subject: Mastodon - နှစ်ဆင့်ခံလုံခြုံရေး ပြန်လည်ရယူသည့်ကုဒ်များကို ပြန်လည်ထုတ်ပေးခြင်း
title: နှစ်ဆင့်ခံလုံခြုံရေးစနစ် ပြန်လည်ရယူသည့်ကုဒ်နံပါတ်များ ပြောင်းလဲခဲ့သည်
+ unlock_instructions:
+ subject: Mastodon - ညွှန်ကြားချက်များကို လော့ခ်ဖွင့်ပါ
webauthn_credential:
added:
explanation: ဖော်ပြပါလုံခြုံရေးသော့ချက်အား သင့်အကောင့်ထဲသို့ထည့်ပြီးပါပြီ
@@ -55,16 +70,43 @@ my:
subject: 'Mastodon: လုံခြုံရေးသော့ချက် ဖျက်လိုက်ပါပြီ'
title: လုံခြုံရေးသော့ချက်များထဲမှတစ်ခု ဖျက်လိုက်ပါပြီ
webauthn_disabled:
+ explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီးများဖြင့် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်။ TOTP အက်ပ်မှထုတ်ပေးသည့် တိုကင်ကိုသာ အသုံးပြု၍ အကောင့်ဝင်ရောက်နိုင်ပါသည်။
+ subject: Mastodon - လုံခြုံရေးကီးများဖြင့် အထောက်အထားစိစစ်ခြင်းကို ပိတ်ထားသည်
title: လုံခြုံရေးသော့ချက်များ ပိတ်ပြီးပါပြီ
webauthn_enabled:
+ explanation: သင့်အကောင့်အတွက် လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည်။ အကောင့်ဝင်ရန်အတွက် သင်၏လုံခြုံရေးကီးကို ယခုအသုံးပြုနိုင်ပါပြီ။
+ subject: Mastodon - လုံခြုံရေးကီး အထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားသည်
title: လုံခြုံရေးသော့ချက်များ ဖွင့်ပြီးပါပြီ
+ omniauth_callbacks:
+ failure: "“%{reason}” ကြောင့် %{kind} မှ သင့်ကို စစ်မှန်ကြောင်း အထောက်အထား မပြနိုင်ပါ။"
+ success: "%{kind} အကောင့်မှ အထောက်အထားပြပြီးပါပြီ။"
+ passwords:
+ no_token: စကားဝှက်ပြန်လည်သတ်မှတ်ခြင်းအီးမေးလ်မှ မလာပါက ဤစာမျက်နှာကို သင်ဝင်ရောက်၍မရနိုင်ပါ။ အကယ်၍ ၎င်းမှလာပါက ပေးထားသော URL အပြည့်အစုံကို အသုံးပြုရပါမည်။
+ send_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာတွင် စကားဝှက်ပြန်လည်ရယူရေးလင့်ခ် ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ updated: သင့်စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းလဲပြီးပါပြီ။ သင်သည် ယခု အကောင့်ဝင်ထားပြီးဖြစ်ပါသည်။
+ updated_not_active: သင့်စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းလဲပြီးပါပြီ။
registrations:
+ destroyed: တာ့တာ၊ သင့်အကောင့်ကို ပယ်ဖျက်လိုက်ပါပြီ။ မကြာခင် ပြန်တွေ့နိုင်ရန်မျှော်လင့်မိပါသည်။
+ signed_up: ကြိုဆိုပါသည်။ သင်သည် အောင်မြင်စွာ စာရင်းသွင်းပြီးပါပြီ။
+ signed_up_but_inactive: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့် အတည်မပြုရသေးသောကြောင့် ဝင်၍မရနိုင်ပါ။
+ signed_up_but_locked: သင်သည် အောင်မြင်စွာ အကောင့်ဖွင့်ပြီးပါပြီ။ သို့သော်လည်း သင့်အကောင့်လော့ခ်ချထားသောကြောင့် လက်မှတ်ထိုးဝင်၍မရနိုင်ပါ။
+ signed_up_but_pending: အတည်ပြုချက်လင့်ခ်ပါရှိသော စာတိုတစ်စောင်ကို သင့်အီးမေးလ်လိပ်စာသို့ ပေးပို့လိုက်ပါပြီ။ လင့်ခ်ကို နှိပ်ပြီးနောက် သင့်အက်ပလီကေးရှင်းကို ကျွန်ုပ်တို့ ပြန်လည်စစ်ဆေးပါမည်။ အတည်ပြုပြီးပါက သင့်ထံ အကြောင်းကြားပါမည်။
+ signed_up_but_unconfirmed: အကောင့်ဖွင့်ရန်အတွက် လင့်ခ်တစ်ခုကို ထောက်ခံချက်အီးမေးလ််နှင့်အတူပို့ပေးလိုက်ပါပြီ။ သင့်အကောင့်ဖွင့်နိုင်ရန် လင့်ခ်ကိုဝင်ရောက်ပေးပါ။ အီးမေးလ်မတွေ့ပါက စပမ်းဖိုင်တွဲထဲတွင်စစ်ကြည့်ပါ။
+ update_needs_confirmation: သင့်အကောင့်ကို မွမ်းမံပြင်ဆင်ထားသော်လည်း သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန် လိုအပ်ပါသည်။ ကျေးဇူးပြု၍ သင့်အီးမေးလ်ကို စစ်ဆေးပြီး သင့်အီးမေးလ်လိပ်စာအသစ်ကို အတည်ပြုရန်အတွက် အတည်ပြုလင့်ခ်အား နှိပ်ပါ။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
updated: သင့်အကောင့်အားအောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။
sessions:
already_signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။
signed_in: အောင်မြင်စွာအကောင့်ဝင်ပြီးပါပြီ။
signed_out: အောင်မြင်စွာအကောင့်မှထွက်ပြီးပါပြီ။
+ unlocks:
+ send_instructions: မိနစ်အနည်းငယ်အတွင်း သင့်အကောင့်လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်လက်ခံရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို မရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ send_paranoid_instructions: အကယ်၍ သင့်တွင် အကောင့်ရှိပါက မိနစ်အနည်းငယ်အတွင်း လော့ခ်ဖွင့်နည်းအတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်သည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
+ unlocked: သင့်အကောင့်ကို လော့ခ်ဖွင့်ပြီးပါပြီ။ ရှေ့ဆက်ရန်အတွက် အကောင့်ဝင်ပါ။
errors:
messages:
+ already_confirmed: အတည်ပြုပြီးဖြစ်သည်။ ကျေးဇူးပြု၍ အကောင့်ဝင်ကြည့်ပါ။
+ confirmation_period_expired: "%{period} အတွင်း အတည်ပြုရန် လိုအပ်ပြီး အသစ်တစ်ခု တောင်းဆိုပါ"
expired: သည် သက်တမ်းကျော်လွန်သွားပြီ။ ကျေးဇူးပြု၍အသစ်တစ်ခု တောင်းဆိုပါ
not_found: ရှာမတွေ့ပါ
+ not_locked: လော့ခ် မချထားပါ
diff --git a/config/locales/devise.zh-TW.yml b/config/locales/devise.zh-TW.yml
index 85b775b0b6..3c1968e50b 100644
--- a/config/locales/devise.zh-TW.yml
+++ b/config/locales/devise.zh-TW.yml
@@ -20,7 +20,7 @@ zh-TW:
confirmation_instructions:
action: 驗證電子郵件地址
action_with_app: 確認並返回 %{app}
- explanation: 您已經使用此電子郵件地址在 %{host} 上建立了一個帳號。距離啟用它只剩一點之遙了。如果這不是您本人,請忽略此郵件。
+ explanation: 您已經在 %{host} 上以此電子郵件地址建立了一支帳號。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
explanation_when_pending: 您使用此電子郵件地址申請了 %{host} 的邀請。當您確認電子郵件地址後我們將審核您的申請。您可以在登入後變更詳細資訊或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您本人,請忽略此郵件。
extra_html: 同時也請看看伺服器規則與服務條款。
subject: Mastodon:%{instance} 確認說明
diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml
index 628de6524a..61d6c4ad1f 100644
--- a/config/locales/doorkeeper.ast.yml
+++ b/config/locales/doorkeeper.ast.yml
@@ -14,6 +14,8 @@ ast:
destroy: Destruyir
edit: Editar
submit: Unviar
+ confirmations:
+ destroy: "¿De xuru que quies facer esta aición?"
form:
error: "¡Meca! Revisa los errores posibles del formulariu"
help:
@@ -46,6 +48,8 @@ ast:
authorized_applications:
buttons:
revoke: Revocar
+ confirmations:
+ revoke: "¿De xuru que quies facer esta aición?"
index:
description_html: Estes son les aplicaciones que puen acceder a la cuenta cola API. Si equí hai aplicaciones que nun conoces o hai dalguna aplicación que nun funciona correutamente, pues revocar el so accesu.
never_used: Enxamás s'usó
@@ -94,7 +98,7 @@ ast:
admin:write: modifica tolos datos del sirvidor
crypto: usa'l cifráu de puntu a puntu
follow: modifica les rellaciones de les cuentes
- push: receición d'avisos push
+ push: recibe avisos push
read: llee tolos datos de les cuentes
read:accounts: mira la información de les cuentes
read:blocks: mira les cuentes bloquiaes
@@ -118,5 +122,5 @@ ast:
write:media: xube ficheros multimedia
write:mutes: desactiva los avisos de perfiles ya de conversaciones
write:notifications: borra los avisos
- write:reports: informa d'otres perfiles
+ write:reports: informa d'otros perfiles
write:statuses: espubliza artículos
diff --git a/config/locales/doorkeeper.ko.yml b/config/locales/doorkeeper.ko.yml
index 504fefd281..584ff7219a 100644
--- a/config/locales/doorkeeper.ko.yml
+++ b/config/locales/doorkeeper.ko.yml
@@ -4,7 +4,7 @@ ko:
attributes:
doorkeeper/application:
name: 애플리케이션 이름
- redirect_uri: 리다이렉트 URI
+ redirect_uri: 리디렉트 URI
scopes: 범위
website: 애플리케이션 웹사이트
errors:
@@ -15,7 +15,7 @@ ko:
fragment_present: fragment를 포함할 수 없습니다
invalid_uri: 올바른 URI 이어야 합니다.
relative_uri: 절대경로 URI 이어야 합니다
- secured_uri: " HTTPS/SSL URI 이어야 합니다."
+ secured_uri: HTTPS/SSL URI 이어야 합니다.
doorkeeper:
applications:
buttons:
@@ -31,16 +31,16 @@ ko:
form:
error: 이런! 오류를 확인하세요
help:
- native_redirect_uri: "%{native_redirect_uri} 을/를 이용해 로컬 테스트를 할 수 있습니다"
+ native_redirect_uri: "%{native_redirect_uri}에서 로컬 테스트를 할 수 있습니다."
redirect_uri: 한 줄에 하나의 URI를 작성하세요
scopes: 스페이스로 범위를 구분하세요. 빈 칸으로 놔두면 기본 범위를 사용합니다.
index:
application: 애플리케이션
callback_url: 콜백 URL
delete: 삭제
- empty: 애플리케이션이 없습니다.
+ empty: 앱이 없습니다.
name: 이름
- new: 새 애플리케이션
+ new: 새로운 앱
scopes: 범위
show: 표시
title: 내 응용프로그램
@@ -52,7 +52,7 @@ ko:
callback_urls: 콜백 URL
scopes: 범위
secret: 클라이언트 비밀키
- title: '애플리케이션: %{name}'
+ title: '앱: %{name}'
authorizations:
buttons:
authorize: 승인
@@ -60,11 +60,11 @@ ko:
error:
title: 오류가 발생하였습니다
new:
- prompt_html: "%{client_name}이 당신의 계정에 대한 접근 권한을 요청합니다. 이것은 제3자의 응용프로그램입니다. 이것을 신뢰하지 않는다면, 권한을 승인하지 말아야 합니다."
+ prompt_html: "%{client_name} 제3자 앱이 귀하의 계정에 접근하기 위한 권한을 요청했습니다. 이 앱을 신뢰할 수 없다면 요청을 승인하지 마십시오."
review_permissions: 권한 검토
title: 승인 필요
show:
- title: 이 승인 코드를 복사하여 애플리케이션에 붙여넣으세요
+ title: 이 승인 코드를 복사해 앱에 붙여 넣어야 합니다.
authorized_applications:
buttons:
revoke: 삭제
@@ -72,7 +72,7 @@ ko:
revoke: 확실합니까?
index:
authorized_at: "%{date}에 승인됨"
- description_html: 당신의 계정에 API를 통해 접근 가능한 응용프로그램의 목록입니다. 알 수 없는 응용프로그램, 혹은 잘못된 행동을 하고 있는 응용프로그램이 있다면, 권한을 취소할 수 있습니다.
+ description_html: 이 계정에 API를 통해 접근 가능한 앱의 목록입니다. 알 수 없는 앱이나 잘못된 행위를 하는 앱이 있다면 권한을 취소할 수 있습니다.
last_used_at: "%{date}에 마지막으로 사용됨"
never_used: 사용되지 않음
scopes: 권한
@@ -82,7 +82,7 @@ ko:
messages:
access_denied: 리소스 소유자 또는 인증 서버가 요청을 거부했습니다.
credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials의 설정이 되어있지 않아 리소스 소유자 암호 자격증명이 실패하였습니다.
- invalid_client: 알 수 없는 클라이언트이기 때문에 클라이언트 인증이 실패하였습니다, 클라이언트 자격증명이 포함되지 않았거나, 지원 되지 않는 메소드입니다.
+ invalid_client: 클라이언트를 확인할 수 없기 때문에 인증이 실패하였습니다. 클라이언트 자격 증명이 포함되지 않았거나 지원되지 않는 메소드입니다.
invalid_grant: 제공된 권한 부여가 잘못되거나, 만료되었거나, 취소되었거나, 권한 부여 요청에 사용된 리디렉션 URI가 일치하지 않거나, 다른 클라이언트에 지정되었습니다.
invalid_redirect_uri: 리디렉션 URI가 올바르지 않습니다
invalid_request:
@@ -104,14 +104,14 @@ ko:
flash:
applications:
create:
- notice: 애플리케이션이 생성 되었습니다.
+ notice: 앱이 생성 되었습니다.
destroy:
- notice: 애플리케이션이 삭제 되었습니다.
+ notice: 앱을 삭제했습니다.
update:
- notice: 애플리케이션이 갱신 되었습니다.
+ notice: 앱을 갱신했습니다.
authorized_applications:
destroy:
- notice: 애플리케이션이 삭제되었습니다.
+ notice: 운영자에 의해 앱이 해지되었습니다.
grouped_scopes:
access:
read: 읽기 전용 권한
@@ -142,7 +142,7 @@ ko:
layouts:
admin:
nav:
- applications: 애플리케이션
+ applications: 앱
oauth2_provider: OAuth2 제공자
application:
title: OAuth 인증이 필요합니다
@@ -164,26 +164,26 @@ ko:
admin:write:ip_blocks: IP 차단에 모더레이션 조치 취하기
admin:write:reports: 신고에 모더레이션 조치 취하기
crypto: 종단간 암호화 사용
- follow: 계정의 관계를 수정
- push: 푸시 알림을 받기
- read: 계정의 모든 데이터를 읽기
- read:accounts: 계정의 정보를 보기
- read:blocks: 차단을 보기
+ follow: 계정 관계 수정
+ push: 푸시 알림 받기
+ read: 계정의 모든 데이터 읽기
+ read:accounts: 계정 정보 보기
+ read:blocks: 차단 보기
read:bookmarks: 내 북마크 보기
- read:favourites: 관심글을 보기
- read:filters: 필터를 보기
- read:follows: 팔로우를 보기
- read:lists: 리스트를 보기
- read:mutes: 뮤트를 보기
+ read:favourites: 좋아요 보기
+ read:filters: 필터 보기
+ read:follows: 팔로우 보기
+ read:lists: 리스트 보기
+ read:mutes: 뮤트 보기
read:notifications: 알림 보기
read:reports: 신고 보기
read:search: 당신의 권한으로 검색
- read:statuses: 게시물 모두 보기
+ read:statuses: 모든 게시물 보기
write: 계정 정보 수정
write:accounts: 프로필 수정
- write:blocks: 계정이나 도메인 차단
+ write:blocks: 계정 및 도메인 차단
write:bookmarks: 게시물을 북마크에 넣기
- write:conversations: 뮤트와 대화 삭제
+ write:conversations: 뮤트 및 대화 삭제
write:favourites: 관심글 지정
write:filters: 필터 만들기
write:follows: 사람을 팔로우
diff --git a/config/locales/doorkeeper.my.yml b/config/locales/doorkeeper.my.yml
index 345a3b2649..8a92d7e79f 100644
--- a/config/locales/doorkeeper.my.yml
+++ b/config/locales/doorkeeper.my.yml
@@ -12,6 +12,7 @@ my:
doorkeeper/application:
attributes:
redirect_uri:
+ fragment_present: အပိုင်းတစ်ပိုင်း မပါဝင်နိုင်ပါ။
invalid_uri: သည် မှန်ကန်သော URI ဖြစ်ရမည်။
relative_uri: URI ဖြစ်ရမည်။
secured_uri: သည် HTTPS/SSL URI ဖြစ်ရမည်။
@@ -59,6 +60,7 @@ my:
error:
title: အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်
new:
+ prompt_html: "%{client_name} က သင့်အကောင့်သို့ ဝင်ရောက်ရန် ခွင့်ပြုချက်ရယူလိုပါသည်။ ၎င်းမှာ ပြင်ပကြားခံအက်ပလီကေးရှင်းတစ်ခုဖြစ်သည်။ သင် မယုံကြည်ပါက ၎င်းကိုခွင့်မပြုသင့်ပါ။"
review_permissions: ခွင့်ပြုချက်များကို ပြန်လည်သုံးသပ်ပါ
title: ခွင့်ပြုချက် လိုအပ်သည်
show:
@@ -74,16 +76,29 @@ my:
last_used_at: "%{date} တွင် နောက်ဆုံးအသုံးပြုခဲ့သည်"
never_used: မသုံးဖူးပါ
scopes: ခွင့်ပြုချက်များ
+ superapp: အတွင်းပိုင်း
title: ခွင့်ပြုထားသော အက်ပလီကေးရှင်းများ
errors:
messages:
access_denied: မူလပိုင်ရှင် သို့မဟုတ် ခွင့်ပြုချက်ရှိသောဆာဗာမှ တောင်းဆိုချက်ကို ငြင်းပယ်ခဲ့သည်။
credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials ကို သတ်မှတ်မထားသည့်အတွက် မူလပိုင်ရှင် စကားဝှက် အထောက်အထားများထည့်သွင်းခြင်းမှာ မအောင်မြင်တော့ပါ။
+ invalid_client: Client အထောက်အထားစိစစ်မှု မအောင်မြင်ခြင်းမှာ အမည်မသိ Client ဖြစ်ခြင်း၊ Client စစ်မှန်ကြောင်းအထောက်အထားမပါဝင်ခြင်း သို့မဟုတ် ပံ့ပိုးမထားသည့် အထောက်အထားဖြစ်နေခြင်းကြောင့် ဖြစ်ပါသည်။
invalid_redirect_uri: ပြန်ညွှန်းထားခြင်းတွင် ပါဝင်သော URI မှာ မမှန်ကန်ပါ။
+ invalid_request:
+ missing_param: ပျောက်နေသည့် လိုအပ်သောအရာ - %{value}။
+ request_not_authorized: ခွင့်ပြုချက်တောင်းခံရန် လိုအပ်ပါသည်။ တောင်းဆိုမှုခွင့်ပြုချက်အတွက် လိုအပ်သောအရာမှာ ပျောက်ဆုံးနေခြင်း သို့မဟုတ် မမှန်ကန်ခြင်း ကြောင့်ဖြစ်ပါသည်။
+ unknown: တောင်းဆိုချက်တွင် ပံ့ပိုးမထားသော တန်ဖိုးတစ်ခုပါဝင်သည့် လိုအပ်သောအချက်အလက်တစ်ခု ပျောက်ဆုံးနေပါသည် သို့မဟုတ် ပုံစံမှားယွင်းနေပါသည်။
+ invalid_resource_owner: ပံ့ပိုးပေးထားသည့် မူလပိုင်ရှင်အထောက်အထားများမှာ မမှန်ကန်ပါ သို့မဟုတ် မူလပိုင်ရှင်ကို ရှာမတွေ့ပါ။
+ invalid_scope: တောင်းဆိုထားသော နယ်ပယ်မှာ မမှန်ကန်ခြင်း၊ မသိခြင်း သို့မဟုတ် ပုံစံမမှန်ကန်ခြင်းတို့ကြောင့် ဖြစ်ပါသည်။
invalid_token:
expired: အသုံးပြုခွင့် တိုကင် သက်တမ်းကုန်သွားပါပြီ
revoked: အသုံးပြုခွင့်တိုကင်ကို ရုပ်သိမ်းခဲ့သည်
unknown: အသုံးပြုခွင့်တိုကင်မှာ မမှန်ကန်ပါ
+ resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator ကို ပြုပြင်မွမ်းမံမှုအားဖယ်ရှားထားခြင်းကြောင့် မူလပိုင်ရှင်ရှာဖွေခြင်းမှာ မအောင်မြင်ပါ။
+ server_error: ခွင့်ပြုထားသောဆာဗာသည် တောင်းဆိုချက်ကို မဖြည့်ဆည်းပေးနိုင်သည့် မမျှော်လင့်ထားသော အခြေအနေတစ်ခုကို ကြုံတွေ့ခဲ့ရသည်။
+ temporarily_unavailable: ဆာဗာမှာ ယာယီအလုပ်များပိုလုပ်နေရခြင်း သို့မဟုတ် ဆာဗာပြုပြင်ထိန်းသိမ်းမှုတို့ကြောင့် တောင်းဆိုချက်ကို လောလောဆယ်တွင် ကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါ။
+ unauthorized_client: ဤနည်းလမ်းကို အသုံးပြု၍ Client မှ ဤတောင်းဆိုမှုကို ဆောင်ရွက်ခွင့်မရှိပါ။
+ unsupported_grant_type: တရားဝင်ခွင့်ပြုချက်အမျိုးအစားကို ခွင့်ပြုချက်ဆာဗာမှ မပံ့ပိုးထားပါ။
unsupported_response_type: ခွင့်ပြုထားသောဆာဗာသည် ဤတုံ့ပြန်မှုအမျိုးအစားကို မပံ့ပိုးပါ။
flash:
applications:
@@ -100,6 +115,7 @@ my:
access:
read: ဖတ်ခွင့်သာရှိသည်
read/write: ဖတ်ပြီးပြင်ဆင်ခွင့်ရှိသည်
+ write: ပြင်ခွင့်သာရှိသည်
title:
accounts: အကောင့်များ
admin/accounts: အကောင့်စီမံခန့်ခွဲမှု
@@ -132,6 +148,7 @@ my:
scopes:
admin:read: ဆာဗာရှိ အချက်အလက်အားလုံးကို ဖတ်ပါ
admin:read:accounts: အကောင့်အားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
+ admin:read:canonical_email_blocks: ပိတ်ပင်ထားသော Canonical Email အားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:domain_allows: ခွင့်ပြုထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:domain_blocks: ပိတ်ပင်ထားသော ဒိုမိန်းအားလုံး၏ အရေးကြီးသော သတင်းအချက်အလက်များကို ဖတ်ပါ
admin:read:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းအားလုံး၏ အရေးကြီးသောသတင်းအချက်အလက်များကို ဖတ်ပါ
@@ -139,6 +156,7 @@ my:
admin:read:reports: မှတ်တမ်းများနှင့် တိုင်ကြားထားသောအကောင့်များအားလုံး၏ အရေးကြီးသော အချက်အလက်ကို ဖတ်ပါ။
admin:write: ဆာဗာပေါ်ရှိ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
admin:write:accounts: အကောင့်များအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
+ admin:write:canonical_email_blocks: Canonical Email ပိတ်ပင်ထားမှုများအား စိစစ်လုပ်ဆောင်မှုများ ဆောင်ရွက်ပါ
admin:write:domain_allows: ခွင့်ပြုထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
admin:write:domain_blocks: ပိတ်ပင်ထားသောဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
admin:write:email_domain_blocks: ပိတ်ပင်ထားသော အီးမေးလ်ဒိုမိန်းပေါ်တွင် စိစစ်လုပ်ဆောင်ချက်များ ဆောင်ရွက်ပါ
@@ -158,6 +176,7 @@ my:
read:mutes: သင်အသံပိတ်ထားမှုများကို ကြည့်ပါ
read:notifications: သင့်အသိပေးချက်များကို ကြည့်ပါ
read:reports: သင့်မှတ်တမ်းများကို ကြည့်ပါ
+ read:search: သင့်ကိုယ်စား ရှာဖွေပါ
read:statuses: ပို့စ်အားလုံးကို ကြည့်ပါ
write: သင့်အကောင့်၏ အချက်အလက်အားလုံးကို ပြင်ဆင်ပါ
write:accounts: သင့်ပရိုဖိုင်ကို ပြင်ဆင်ပါ
diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml
index 887a218953..db399b05f6 100644
--- a/config/locales/doorkeeper.sr.yml
+++ b/config/locales/doorkeeper.sr.yml
@@ -122,16 +122,18 @@ sr:
admin/accounts: Администрација налога
admin/all: Све функције администрације
admin/reports: Администрација пријава
+ all: Потпуни приступ вашем Mastodon налогу
blocks: Блокирани
bookmarks: Обележивачи
conversations: Разговори
crypto: End-to-end енкрипција
favourites: Омиљени
filters: Филтери
+ follow: Праћења, игнорисања и блокирања
follows: Праћени
lists: Листе
media: Мултимедијални прилози
- mutes: Утишани
+ mutes: Игнорисани
notifications: Обавештења
push: Прослеђена обавештења
reports: Пријаве
@@ -157,7 +159,7 @@ sr:
admin:write:ip_blocks: изврши модераторске активности на IP блоковима
admin:write:reports: вршење модераторских активности над извештајима
crypto: коришћење end-to-end енкрипције
- follow: прати, блокира, одблокира и отпрати налоге
+ follow: мења односе налога
push: примање прослеђених обавештења
read: чита податке Вашег налога
read:accounts: погледај информације о налозима
@@ -167,7 +169,7 @@ sr:
read:filters: погледај своје филтере
read:follows: погледај кога пратиш
read:lists: погледај своје листе
- read:mutes: погледај своје утишане
+ read:mutes: погледај игнорисања
read:notifications: погледај своја обавештења
read:reports: погледај своје пријаве
read:search: претражи у своје име
@@ -176,13 +178,13 @@ sr:
write:accounts: измени свој профил
write:blocks: блокирај налоге и домене
write:bookmarks: обележи објаве
- write:conversations: утишај и обриши разговоре
+ write:conversations: игнориши и избриши разговоре
write:favourites: омиљене објаве
write:filters: креирај филтере
write:follows: прати кориснике
write:lists: креирај листе
write:media: отпреми медијске датотеке
- write:mutes: утишај коринсике и разговоре
+ write:mutes: игнориши кориснике и разговоре
write:notifications: обриши своја обавештења
write:reports: пријави друге кориснике
write:statuses: објави објаве
diff --git a/config/locales/doorkeeper.zh-TW.yml b/config/locales/doorkeeper.zh-TW.yml
index da5597c85c..6d07717e1d 100644
--- a/config/locales/doorkeeper.zh-TW.yml
+++ b/config/locales/doorkeeper.zh-TW.yml
@@ -131,7 +131,7 @@ zh-TW:
filters: 過濾器
follow: 跟隨、靜音與封鎖
follows: 跟隨的使用者
- lists: 名單
+ lists: 列表
media: 多媒體附加檔案
mutes: 靜音
notifications: 通知
@@ -168,12 +168,12 @@ zh-TW:
push: 接收帳號的推播通知
read: 讀取您所有的帳號資料
read:accounts: 檢視帳號資訊
- read:blocks: 檢視您的封鎖名單
+ read:blocks: 檢視您的封鎖列表
read:bookmarks: 檢視您的書籤
read:favourites: 檢視您收藏的最愛
read:filters: 檢視您的過濾條件
read:follows: 檢視您跟隨的人
- read:lists: 檢視您的名單
+ read:lists: 檢視您的列表
read:mutes: 檢視您靜音的人
read:notifications: 檢視您的通知
read:reports: 檢視您的檢舉
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 9a0ac8dbd2..7994f71740 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -278,6 +278,15 @@ el:
suspend_account_html: Ο/Η %{name} ανέστειλε τον λογαριασμό του/της %{target}
unassigned_report_html: Ο/Η %{name} αποδέσμευσε την αναφορά %{target}
unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}"
+ unsensitive_account_html: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
+ unsilence_account_html: Ο/Η %{name} αφαίρεσε το όριο του λογαριασμού του/της %{target}
+ unsuspend_account_html: Ο/Η %{name} επανέφερε τον λογαριασμό του/της %{target}
+ update_announcement_html: Ο/Η %{name} ενημέρωση την ανακοίνωση %{target}
+ update_custom_emoji_html: Ο/Η %{name} ενημέρωσε το emoji %{target}
+ update_domain_block_html: Ο/Η %{name} ενημέρωσε τον αποκλεισμό τομέα για %{target}
+ update_ip_block_html: Ο/Η %{name} άλλαξε τον κανόνα για την IP %{target}
+ update_status_html: Ο/Η %{name} ενημέρωσε την ανάρτηση του/της %{target}
+ update_user_role_html: Ο/Η %{name} άλλαξε τον ρόλο %{target}
deleted_account: διαγραμμένος λογαριασμός
empty: Δεν βρέθηκαν αρχεία καταγραφής.
filter_by_action: Φιλτράρισμα ανά ενέργεια
@@ -322,6 +331,7 @@ el:
listed: Αναφερθέντα
new:
title: Προσθήκη νέου προσαρμοσμένου emoji
+ no_emoji_selected: Δεν άλλαξαν τα emoji καθώς δεν επιλέχθηκε κανένα
not_permitted: Δεν επιτρέπεται να κάνετε αυτή την λειτουργία
overwrite: Αντικατάσταση
shortcode: Σύντομος κωδικός
@@ -335,12 +345,30 @@ el:
upload: Ανέβασμα
dashboard:
active_users: ενεργοί χρήστες
+ interactions: αλληλεπιδράσεις
+ media_storage: Αποθηκευτικός Χώρος
new_users: νέοι χρήστες
+ opened_reports: αναφορές που ανοίχτηκαν
+ pending_reports_html:
+ one: "%{count} εκκρεμής αναφορά"
+ other: "%{count} εκκρεμείς αναφορές"
+ pending_tags_html:
+ one: "%{count} εκκρεμής ετικέτα"
+ other: "%{count} εκκρεμείς ετικέτες"
+ pending_users_html:
+ one: "%{count} χρήστης σε εκκρεμότητα"
+ other: "%{count} χρήστες σε εκκρεμότητα"
+ resolved_reports: επιλυμμένες αναφορές
software: Λογισμικό
+ sources: Πηγές εγγραφής
space: Κατανάλωση χώρου
title: Ταμπλό
+ top_languages: Κορυφαίες ενεργές γλώσσες
+ top_servers: Κορυφαίοι ενεργοί διακομιστές
+ website: Ιστοσελίδα
disputes:
appeals:
+ empty: Καμία ένσταση.
title: Εφέσεις
domain_allows:
add_new: Έγκριση τομέα
@@ -363,10 +391,13 @@ el:
create: Δημιουργία αποκλεισμού
hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς.
severity:
+ desc_html: Ο περιορισμός θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων.
noop: Κανένα
silence: Περιορισμός
suspend: Αναστολή
title: Αποκλεισμός νέου τομέα
+ no_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας
+ not_permitted: Δεν επιτρπέπεται να εκτελέσετε αυτήν την ενέργεια
private_comment: Ιδιωτικό σχόλιο
private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές.
public_comment: Δημόσιο σχόλιο
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 0ce2a894ae..1267c49172 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -91,6 +91,7 @@ es-MX:
moderation:
active: Activo
all: Todos
+ disabled: Deshabilitado
pending: Pendiente
silenced: Limitado
suspended: Suspendidos
@@ -133,6 +134,7 @@ es-MX:
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
+ security: Seguridad
security_measures:
only_password: Sólo contraseña
password_and_2fa: Contraseña y 2FA
@@ -427,6 +429,7 @@ es-MX:
resolve: Resolver dominio
title: Nueva entrada en la lista negra de correo
no_email_domain_block_selected: No se han cambiado bloqueos de dominio ya que ninguno ha sido seleccionado
+ not_permitted: No permitido
resolved_dns_records_hint_html: El nombre de dominio resuelve los siguientes dominios MX, los cuales son responsables en última instancia de aceptar el correo electrónico. Bloquear un dominio MX bloqueará los registros de cualquier dirección de correo electrónico que utilice el mismo dominio MX, incluso si el nombre de dominio visible es diferente. Tenga cuidado de no bloquear los principales proveedores de correo electrónico.
resolved_through_html: Resuelto a través de %{domain}
title: Lista negra de correo
@@ -473,6 +476,7 @@ es-MX:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
+ limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@@ -585,11 +589,13 @@ es-MX:
assign_to_self: Asignármela a mí
assigned: Moderador asignado
by_target_domain: Dominio de la cuenta reportada
+ cancel: Cancelar
category: Categoría
category_description_html: La razón por la que se reportó esta cuenta o contenido será citada en las comunicaciones con la cuenta reportada
comment:
none: Ninguno
comment_description_html: 'Para proporcionar más información, %{name} escribió:'
+ confirm: Confirmar
confirm_action: Confirmar acción de moderación contra @%{acct}
created_at: Denunciado
delete_and_resolve: Eliminar publicaciones
@@ -792,6 +798,7 @@ es-MX:
suspend: "%{name} suspendio la cuenta de %{target}"
appeal_approved: Apelado
appeal_pending: Apelación pendiente
+ appeal_rejected: Apelación rechazada
system_checks:
database_schema_check:
message_html: Hay migraciones pendientes de la base de datos. Por favor, ejecútalas para asegurarte de que la aplicación funciona como debería
@@ -827,6 +834,7 @@ es-MX:
other: Compartido por %{count} personas durante la última semana
title: Enlaces en tendencia
usage_comparison: Compartido %{today} veces hoy, comparado a %{yesterday} ayer
+ not_allowed_to_trend: No permitido para tendencia
only_allowed: Sólo las permitidas
pending_review: Revisión pendiente
preview_card_providers:
@@ -958,6 +966,7 @@ es-MX:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
+ logout: Cerrar sesión
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
@@ -994,6 +1003,8 @@ es-MX:
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
rules:
+ accept: Aceptar
+ back: Atrás
preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
title: Algunas reglas básicas.
security: Cambiar contraseña
@@ -1140,6 +1151,8 @@ es-MX:
storage: Almacenamiento
featured_tags:
add_new: Añadir nuevo
+ errors:
+ limit: Ya has alcanzado la cantidad máxima de hashtags
hint_html: "¿Qué son las etiquetas destacadas? Se muestran de forma prominente en tu perfil público y permiten a los usuarios navegar por tus publicaciones públicas específicamente bajo esas etiquetas. Son una gran herramienta para hacer un seguimiento de trabajos creativos o proyectos a largo plazo."
filters:
contexts:
@@ -1247,6 +1260,9 @@ es-MX:
expires_at: Expira
uses: Usos
title: Invitar a gente
+ lists:
+ errors:
+ limit: Has alcanzado la cantidad máxima de listas
login_activities:
authentication_methods:
otp: aplicación de autenticación en dos pasos
@@ -1566,6 +1582,7 @@ es-MX:
'7889238': 3 meses
min_age_label: Umbral de tiempo
min_favs: Mantener mensajes con un número de favoritos mayor que
+ min_favs_hint: No borra ninguna de las publicaciones que hayan recibido al menos esta cantidad de favoritos. Deja en blanco para eliminar publicaciones sin importar el número de favoritos
min_reblogs: Mantener publicaciones reblogueadas más de
min_reblogs_hint: No borra ninguna de las publicaciones que hayan sido reblogueadas más de este número de veces. Deja en blanco para eliminar publicaciones sin importar el número de reblogueos
stream_entries:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index aaf438b17b..f87042792f 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -476,7 +476,7 @@ es:
content_policies:
comment: Nota interna
description_html: Puedes definir políticas de contenido que se aplicarán a todas las cuentas de este dominio y a cualquiera de sus subdominios.
- limited_federation_mode_description_html: Puede elegir si permite la federación en este dominio.
+ limited_federation_mode_description_html: Puedes elegir si permites la federación con este dominio.
policies:
reject_media: Rechazar multimedia
reject_reports: Rechazar informes
@@ -925,7 +925,7 @@ es:
new_report:
body: "%{reporter} ha reportado a %{target}"
body_remote: Alguien de %{domain} a reportado a %{target}
- subject: Nuevo reporte para la %{instance} (#%{id})
+ subject: Nuevo informe para %{instance} (#%{id})
new_trends:
body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:'
new_trending_links:
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 4c69085b61..76788b995d 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -834,6 +834,7 @@ fr-QC:
other: Partagé par %{count} personnes au cours de la dernière semaine
title: Liens tendances
usage_comparison: Partagé %{today} fois aujourd'hui, comparé à %{yesterday} hier
+ not_allowed_to_trend: Non autorisé à apparaître dans les tendances
only_allowed: Autorisées seulement
pending_review: En attente de révision
preview_card_providers:
@@ -1002,6 +1003,7 @@ fr-QC:
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
rules:
+ accept: Accepter
back: Retour
preamble: Celles-ci sont définies et appliqués par les modérateurs de %{domain}.
title: Quelques règles de base.
@@ -1149,6 +1151,8 @@ fr-QC:
storage: Médias stockés
featured_tags:
add_new: Ajouter un nouveau hashtag
+ errors:
+ limit: Vous avez déjà mis en avant le nombre maximum de hashtags
hint_html: "Que sont les hashtags mis en avant ? Ils sont affichés en évidence sur votre profil public et permettent aux gens de parcourir vos messages publics qui utilisent ces hashtags. Ils sont un excellent outil pour garder la trace d’activités créatrices ou de projets de long terme."
filters:
contexts:
@@ -1256,6 +1260,9 @@ fr-QC:
expires_at: Expire
uses: Utilisations
title: Inviter des gens
+ lists:
+ errors:
+ limit: Vous avez atteint le nombre maximum de listes
login_activities:
authentication_methods:
otp: application d'authentification à deux facteurs
@@ -1575,6 +1582,7 @@ fr-QC:
'7889238': 3 mois
min_age_label: Seuil d'ancienneté
min_favs: Conserver les messages mis en favoris au moins
+ min_favs_hint: Ne supprime aucun de vos messages qui ont reçu au moins ce nombre de favoris. Laisser vide pour supprimer les messages quel que soit leur nombre de favoris
min_reblogs: Conserver les messages partagés au moins
min_reblogs_hint: Ne supprime aucun de vos messages qui ont été partagés au moins ce nombre de fois. Laisser vide pour supprimer les messages indépendamment de leur nombre de partages
stream_entries:
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index a8fe44087f..fb778f803f 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1466,7 +1466,7 @@ ko:
export: 데이터 내보내기
featured_tags: 추천 해시태그
import: 데이터 가져오기
- import_and_export: 가져오기 / 내보내기
+ import_and_export: 가져오기 & 내보내기
migrate: 계정 이동
notifications: 알림
preferences: 사용자 설정
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index f6bae8c5c7..49f30bab09 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -91,6 +91,7 @@ nn:
moderation:
active: Aktiv
all: Alle
+ disabled: Deaktivert
pending: Ventar på svar
silenced: Avgrensa
suspended: Utvist
@@ -133,6 +134,7 @@ nn:
search: Søk
search_same_email_domain: Andre brukarar med same e-postdomene
search_same_ip: Andre brukarar med same IP
+ security: Sikkerhet
security_measures:
only_password: Kun passord
password_and_2fa: Passord og 2FA
@@ -421,6 +423,7 @@ nn:
resolve: Løs domene
title: Ny blokkeringsoppføring av e-postdomene
no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde
+ not_permitted: Ikke tillatt
resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. Pass på så du ikkje blokkerer dei store e-postleverandørane.
resolved_through_html: Løyst gjennom %{domain}
title: Blokkerte e-postadresser
@@ -435,6 +438,7 @@ nn:
private_comment_description_html: 'For å hjelpa deg med å halda oversikt over kvar importerte blokkeringar kjem frå, vil dei bli oppretta med fylgjande private kommentar: %{comment}'
private_comment_template: Importert frå %{source} den %{date}
title: Importer domeneblokkeringar
+ invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}'
new:
title: Importer domeneblokkeringar
no_file: Inga fil vald
@@ -569,17 +573,23 @@ nn:
mark_as_sensitive_description_html: Mediene i dei rapporterte innlegga vil verte markerte som ømtolege, og ein merknad vil verte lagra for å hjelpe deg å eskalera ved framtidige regelbrot frå same konto.
other_description_html: Sjå fleire alternativ når det gjeld kontroll av kontoåtferd og tilpassing av kommunikasjonen til den rapporterte kontoen.
resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes.
+ silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. Lukker alle rapporter mot denne kontoen.
+ suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen.
actions_description_html: Avgjer kva som skal gjerast med denne rapporteringa. Dersom du utfører straffetiltak mot den rapporterte kontoen, vil dei motta ein e-post – så sant du ikkje har valt kategorien Spam.
+ actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet.
add_to_report: Legg til i rapporten
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
assigned: Tilsett moderator
by_target_domain: Domenet av rapportert bruker
+ cancel: Avbryt
category: Kategori
category_description_html: Årsaka til at kontoen og/eller innhaldet vart rapportert vil bli inkludert i kommunikasjonen med den rapporterte kontoen
comment:
none: Ingen
comment_description_html: 'For å gje meir informasjon, skreiv %{name}:'
+ confirm: Bekreft
+ confirm_action: Bekreft moderasjonshandling mot @%{acct}
created_at: Rapportert
delete_and_resolve: Slett innlegg
forwarded: Videresendt
@@ -596,6 +606,7 @@ nn:
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
title: Merknad
notes_description_html: Sjå og skriv merknadar til andre moderatorar og ditt framtidige sjølv
+ processed_msg: 'Rapport #%{id} er behandlet'
quick_actions_description_html: 'Utfør ei handling eller bla ned for å sjå det rapporterte innhaldet:'
remote_user_placeholder: den eksterne brukaren frå %{instance}
reopen: Opn rapport igjen
@@ -608,6 +619,12 @@ nn:
status: Status
statuses: Rapportert innhold
statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen
+ summary:
+ action_preambles:
+ delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:'
+ mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:'
+ silence_html: 'Du er i ferd med å avgrense@%{acct} sin konto. Dette vil:'
+ suspend_html: 'Du er i ferd med å stoppe@%{acct} sin konto. Dette vil:'
target_origin: Opprinnelse for innrapportert konto
title: Rapportar
unassign: Avset
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 79ad3e839a..d855721077 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -91,6 +91,7 @@ pt-BR:
moderation:
active: Ativo
all: Todos
+ disabled: Desativado
pending: Pendente
silenced: Limitado
suspended: Suspendido
@@ -133,6 +134,7 @@ pt-BR:
search: Buscar
search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
search_same_ip: Outros usuários com o mesmo IP
+ security: Segurança
security_measures:
only_password: Apenas senha
password_and_2fa: Senha e autenticação de dois fatores
@@ -426,6 +428,7 @@ pt-BR:
resolve: Resolver domínio
title: Nova entrada de lista negra de e-mail
no_email_domain_block_selected: Nenhum bloco de domínio de e-mail foi alterado, pois nenhum foi selecionado
+ not_permitted: Não permitido
resolved_dns_records_hint_html: O nome de domínio resolve os seguintes domínios MX, que são responsáveis finais por aceitar o e-mail. Bloquear um domínio MX bloqueará inscrições de qualquer endereço de e-mail que use o mesmo domínio MX, mesmo que o nome de domínio visível seja diferente. Cuidado para não bloquear os principais provedores de e-mail.
resolved_through_html: Resolvido através de %{domain}
title: Lista de negra de e-mail
@@ -580,11 +583,13 @@ pt-BR:
assign_to_self: Atribuir para si
assigned: Moderador responsável
by_target_domain: Domínio da conta denunciada
+ cancel: Cancelar
category: Categoria
category_description_html: O motivo pelo qual esta conta e/ou conteúdo foi denunciado será citado na comunicação com a conta denunciada
comment:
none: Nenhum
comment_description_html: 'Para fornecer mais informações, %{name} escreveu:'
+ confirm: Confirmar
created_at: Denunciado
delete_and_resolve: Excluir publicações
forwarded: Encaminhados
@@ -601,6 +606,7 @@ pt-BR:
placeholder: Descreva quais ações foram tomadas ou quaisquer outras atualizações relacionadas...
title: Notas
notes_description_html: Visualize e deixe anotações para outros moderadores e para você mesmo no futuro
+ processed_msg: 'Relatório #%{id} processado com sucesso'
quick_actions_description_html: 'Tome uma ação rápida ou role para baixo para ver o conteúdo denunciado:'
remote_user_placeholder: o usuário remoto de %{instance}
reopen: Reabrir denúncia
@@ -982,6 +988,8 @@ pt-BR:
resend_confirmation: Reenviar instruções de confirmação
reset_password: Redefinir senha
rules:
+ accept: Aceitar
+ back: Voltar
preamble: Estes são definidos e aplicados pelos moderadores de %{domain}.
title: Algumas regras básicas.
security: Segurança
@@ -1235,6 +1243,9 @@ pt-BR:
expires_at: Expira em
uses: Usos
title: Convidar pessoas
+ lists:
+ errors:
+ limit: Você atingiu o número máximo de listas
login_activities:
authentication_methods:
otp: autenticação de dois fatores
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 701be825e9..d3649ba40d 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1151,6 +1151,8 @@ pt-PT:
storage: Armazenamento de media
featured_tags:
add_new: Adicionar nova
+ errors:
+ limit: Já destacou o número máximo de hashtags permitido
hint_html: "O que são etiquetas em destaque? Exibidas de forma bem visível no seu perfil público, permitem que as pessoas consultem as suas publicações públicas especificamente sob essas etiquetas. São uma óptima ferramenta para dar seguimento a trabalhos criativos ou projectos de longo prazo."
filters:
contexts:
@@ -1258,6 +1260,9 @@ pt-PT:
expires_at: Expira
uses: Usos
title: Convidar pessoas
+ lists:
+ errors:
+ limit: Atingiu o número máximo de listas permitido
login_activities:
authentication_methods:
otp: aplicação de autenticação em duas etapas
@@ -1577,6 +1582,7 @@ pt-PT:
'7889238': 3 meses
min_age_label: Limite de idade
min_favs: Manter pelo menos as publicações dos marcadores
+ min_favs_hint: Não elimina nenhuma das suas publicações que tenha recebido pelo menos este número de favoritos. Deixe em branco para eliminar publicações, independentemente do seu número de favoritos
min_reblogs: Manter as publicações reforçadas mais de
min_reblogs_hint: Não apaga nenhuma das suas publicações que tenha sido partilhada mais do que este número de vezes. Deixe em branco para apagar as publicações, independentemente do número de partilhas
stream_entries:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 28402b46b1..9b8749b818 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -95,6 +95,7 @@ ru:
moderation:
active: Действующие
all: Все
+ disabled: Отключено
pending: В ожидании
silenced: Ограниченные
suspended: Заблокированные
@@ -139,6 +140,7 @@ ru:
search: Поиск
search_same_email_domain: Другие пользователи с тем же доменом электронной почты
search_same_ip: Другие пользователи с таким же IP
+ security: Безопасность
security_measures:
only_password: Только пароль
password_and_2fa: Пароль и 2FA
@@ -443,6 +445,7 @@ ru:
resolve: Проверить домен
title: Новая блокировка по домену
no_email_domain_block_selected: Блоки домена электронной почты не были изменены, так как не были выбраны
+ not_permitted: Не разрешено
resolved_dns_records_hint_html: Доменное имя устраняется на следующие MX-домены, которые в конечном итоге отвечают за прием электронной почты. Блокировка MX-домена будет блокировать регистрации с любого адреса электронной почты, который использует тот же MX-домен, даже если видимое доменное имя отличается от него. Будьте осторожны, чтобы не блокировать основных поставщиков электронной почты
resolved_through_html: Разрешено через %{domain}
title: Блокировка e-mail доменов
@@ -493,6 +496,7 @@ ru:
content_policies:
comment: Внутренняя заметка
description_html: Вы можете определить политики контента, которые будут применяться ко всем учетным записям этого домена и любого из его субдоменов.
+ limited_federation_mode_description_html: Вы можете выбрать, разрешать ли объединение с этим доменом.
policies:
reject_media: Отклонить медиа
reject_reports: Отклонять жалобы
@@ -609,11 +613,13 @@ ru:
assign_to_self: Назначить себе
assigned: Назначенный модератор
by_target_domain: Домен объекта жалобы
+ cancel: Отменить
category: Категория
category_description_html: Причина, по которой были доложены этот пользователь или содержимое, будет указана при коммуникации с фигурирующим в жалобе пользователем
comment:
none: Нет
comment_description_html: 'В дополнение, %{name} добавил(а) следующий комментарий:'
+ confirm: Подтвердить
created_at: Создана
delete_and_resolve: Удалить посты
forwarded: Переслано
@@ -810,6 +816,7 @@ ru:
suspend: "%{name} приостановил аккаунт %{target}"
appeal_approved: Обжаловано
appeal_pending: Обжалование в обработке
+ appeal_rejected: Апелляция отклонена
system_checks:
database_schema_check:
message_html: Есть отложенные миграции базы данных. Запустите их, чтобы убедиться, что приложение работает должным образом
@@ -847,6 +854,7 @@ ru:
other: Поделился %{count} человек за последнюю неделю
title: Актуальные ссылки
usage_comparison: Поделились %{today} раз сегодня, по сравнению с %{yesterday} вчера
+ not_allowed_to_trend: Не допущено в популярное
only_allowed: Только разрешенное
pending_review: Ожидает рассмотрения
preview_card_providers:
@@ -984,6 +992,7 @@ ru:
applications:
created: Приложение успешно создано
destroyed: Приложение успешно удалено
+ logout: Выйти
regenerate_token: Повторно сгенерировать токен доступа
token_regenerated: Токен доступа успешно сгенерирован
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
@@ -1020,6 +1029,8 @@ ru:
resend_confirmation: Повторить отправку инструкции для подтверждения
reset_password: Сбросить пароль
rules:
+ accept: Принять
+ back: Назад
preamble: Они устанавливаются и применяются модераторами %{domain}.
title: Несколько основных правил.
security: Безопасность
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index 267d2292cb..61befb9e64 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -19,6 +19,7 @@ ar:
none: استخدم هذه لإرسال تحذير للمستخدم، دون تشغيل أو إثارة أي إجراء آخر.
sensitive: إجبار جميع مرفقات الوسائط لهذا المستخدم على أن تكون حساسة.
silence: منع المستخدم من القدرة على النشر للعامة، وإخفاء مشاركاته وإشعاراته لمن لا يتبعونه. إغلاق جميع التقارير المقترنة بهذا الحساب.
+ suspend: منع أي تفاعل من هذا الحساب أو إليه وحذف محتوياته. يمكن التراجع عنه في غضون 30 يوما. إغلاق جميع التقارير المفتوحة ضد هذا الحساب.
warning_preset_id: اختياري. يمكنك إضافة نص مخصص إلى نهاية النموذج
announcement:
all_day: إن أختير، سيتم عرض تواريخ النطاق الزمني فقط
@@ -95,6 +96,7 @@ ar:
timeline_preview: الزوار الذين سجلوا خروجهم سيكونون قادرين على تصفح أحدث المشاركات العامة المتاحة على الخادم.
trendable_by_default: تخطي مراجعة المحتوى التريند اليدوي. لا يزال من الممكن الإزالة اللاحقة للعناصر الفردية من التريندات.
trends: تظهر التريندز أي المشاركات وعلامات وقصص الأخبار التي تجذب الانتباه على الخادم الخاص بك.
+ trends_as_landing_page: إظهار المحتوى المتداوَل للمستخدمين والزوار غير المسجلين بدلاً من وصف هذا الخادم. يتطلب هذا تفعيل المتداولة.
form_challenge:
current_password: إنك بصدد الدخول إلى منطقة آمنة
imports:
@@ -230,6 +232,7 @@ ar:
hide: إخفاء بالكامل
warn: إخفاء بتحذير
form_admin_settings:
+ activity_api_enabled: نشر مُجمل الإحصائيات عن نشاط المستخدمين في واجهة برمجة التطبيقات API
backups_retention_period: فترة الاحتفاظ بأرشيف المستخدم
bootstrap_timeline_accounts: أوصي دائما بهذه الحسابات للمستخدمين الجدد
closed_registrations_message: رسالة مخصصة عندما يكون التسجيل غير متاح
diff --git a/config/locales/simple_form.fr-QC.yml b/config/locales/simple_form.fr-QC.yml
index bc78f0ae65..541bc8be6a 100644
--- a/config/locales/simple_form.fr-QC.yml
+++ b/config/locales/simple_form.fr-QC.yml
@@ -82,7 +82,7 @@ fr-QC:
custom_css: Vous pouvez appliquer des styles personnalisés sur la version Web de Mastodon.
mascot: Remplace l'illustration dans l'interface Web avancée.
media_cache_retention_period: Les fichiers multimédias téléchargés seront supprimés après le nombre de jours spécifiés lorsque la valeur est positive, et seront téléchargés à nouveau sur demande.
- peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fediverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général.
+ peers_api_enabled: Une liste de noms de domaine que ce serveur a rencontrés dans le fédiverse. Aucune donnée indiquant si vous vous fédérez ou non avec un serveur particulier n'est incluse ici, seulement l'information que votre serveur connaît un autre serveur. Cette option est utilisée par les services qui collectent des statistiques sur la fédération en général.
profile_directory: L'annuaire des profils répertorie tous les utilisateurs qui ont opté pour être découverts.
require_invite_text: Lorsque les inscriptions nécessitent une approbation manuelle, rendre le texte de l’invitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif
site_contact_email: Comment les personnes peuvent vous joindre pour des demandes de renseignements juridiques ou d'assistance.
@@ -91,11 +91,13 @@ fr-QC:
site_short_description: Une courte description pour aider à identifier de manière unique votre serveur. Qui l'exécute, à qui il est destiné ?
site_terms: Utilisez votre propre politique de confidentialité ou laissez vide pour utiliser la syntaxe par défaut. Peut être structurée avec la syntaxe Markdown.
site_title: Comment les personnes peuvent se référer à votre serveur en plus de son nom de domaine.
+ status_page_url: URL d'une page où les gens peuvent voir l'état de ce serveur en cas de panne
theme: Thème que verront les utilisateur·rice·s déconnecté·e·s ainsi que les nouveaux·elles utilisateur·rice·s.
thumbnail: Une image d'environ 2:1 affichée à côté des informations de votre serveur.
timeline_preview: Les visiteurs déconnectés pourront parcourir les derniers messages publics disponibles sur le serveur.
trendable_by_default: Ignorer l'examen manuel du contenu tendance. Des éléments individuels peuvent toujours être supprimés des tendances après coup.
trends: Les tendances montrent quelles publications, hashtags et actualités sont en train de gagner en traction sur votre serveur.
+ trends_as_landing_page: Afficher le contenu tendance au lieu d'une description de ce serveur pour les comptes déconnectés et les non-inscrit⋅e⋅s. Nécessite que les tendances soient activées.
form_challenge:
current_password: Vous entrez une zone sécurisée
imports:
@@ -251,11 +253,13 @@ fr-QC:
site_short_description: Description du serveur
site_terms: Politique de confidentialité
site_title: Nom du serveur
+ status_page_url: URL de la page de l'état du serveur
theme: Thème par défaut
thumbnail: Miniature du serveur
timeline_preview: Autoriser l’accès non authentifié aux fils publics
trendable_by_default: Autoriser les tendances sans révision préalable
trends: Activer les tendances
+ trends_as_landing_page: Utiliser les tendances comme page d'accueil
interactions:
must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas
must_be_following: Bloquer les notifications des personnes que vous ne suivez pas
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 3af09275fb..189b9bfc50 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -259,7 +259,7 @@ it:
timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche
trendable_by_default: Consenti le tendenze senza revisione preventiva
trends: Abilita le tendenze
- trends_as_landing_page: Utilizza le tendenze come pagina di destinazione
+ trends_as_landing_page: Usa le tendenze come pagina di destinazione
interactions:
must_be_follower: Blocca notifiche da chi non ti segue
must_be_following: Blocca notifiche dalle persone che non segui
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index b8edaf6368..294fc548bb 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -101,7 +101,7 @@ ko:
form_challenge:
current_password: 당신은 보안 구역에 진입하고 있습니다
imports:
- data: 다른 마스토돈 서버에서 추출된 CSV 파일
+ data: 다른 마스토돈 서버에서 내보낸 CSV 파일
invite_request:
text: 이 정보는 신청을 검토하는데 도움을 줄 수 있습니다.
ip_block:
@@ -116,7 +116,7 @@ ko:
rule:
text: 이 서버 사용자들이 지켜야 할 규칙과 요구사항을 설명해주세요. 짧고 간단하게 작성해주세요
sessions:
- otp: '휴대전화에서 생성 된 2단계 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
+ otp: '휴대전화에서 생성된 이중 인증 코드를 입력하거나, 복구 코드 중 하나를 사용하세요:'
webauthn: USB 키라면 삽입했는지 확인하고, 필요하다면 누르세요.
tag:
name: 읽기 쉽게하기 위한 글자의 대소문자만 변경할 수 있습니다.
@@ -150,11 +150,11 @@ ko:
text: 커스텀 경고
type: 조치
types:
- disable: 비활성화
- none: 아무 것도 하지 않기
+ disable: 동결
+ none: 경고 보내기
sensitive: 민감함
silence: 제한
- suspend: 정지하고 되돌릴 수 없는 데이터 삭제
+ suspend: 정지
warning_preset_id: 경고 틀 사용하기
announcement:
all_day: 종일 일정
@@ -163,7 +163,7 @@ ko:
starts_at: 이벤트 시작
text: 공지사항
appeal:
- text: 이 결정이 왜 번복되어야 하는지에 대해 설명해주세요
+ text: 이 결정을 번복해야만 하는 이유가 무엇입니까
defaults:
autofollow: 초대를 통한 팔로우
avatar: 아바타
@@ -188,7 +188,7 @@ ko:
max_uses: 사용 횟수 제한
new_password: 새로운 암호 입력
note: 자기소개
- otp_attempt: 2단계 인증 코드
+ otp_attempt: 이중 인증 코드
password: 암호
phrase: 키워드 또는 문장
setting_advanced_layout: 고급 웹 UI 활성화
@@ -206,11 +206,11 @@ ko:
setting_display_media_default: 기본
setting_display_media_hide_all: 모두 가리기
setting_display_media_show_all: 모두 보이기
- setting_expand_spoilers: 열람주의 툿을 항상 펼치기
+ setting_expand_spoilers: 열람주의 게시물을 항상 펼치기
setting_hide_network: 내 인맥 숨기기
setting_noindex: 검색엔진의 인덱싱을 거절
setting_reduce_motion: 애니메이션 줄이기
- setting_show_application: 툿 작성에 사용한 앱을 공개
+ setting_show_application: 게시물 작성에 쓰인 애플리케이션 공개
setting_system_font_ui: 시스템의 기본 글꼴을 사용
setting_theme: 사이트 테마
setting_trends: 오늘의 유행 보이기
@@ -305,7 +305,7 @@ ko:
webhook:
events: 활성화된 이벤트
url: 엔드포인트 URL
- 'no': 아니오
+ 'no': 아니요
not_recommended: 추천하지 않음
recommended: 추천함
required:
diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml
index 5e1fc6bee9..8a1cefc94b 100644
--- a/config/locales/simple_form.my.yml
+++ b/config/locales/simple_form.my.yml
@@ -1 +1,121 @@
+---
my:
+ simple_form:
+ hints:
+ defaults:
+ password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။
+ setting_display_media_hide_all: မီဒီယာကို အမြဲတမ်းဖျောက်ထားပါ
+ setting_display_media_show_all: မီဒီယာကို အမြဲတမ်းပြပါ
+ setting_hide_network: သင်စောင့်ကြည့်မည့်သူများနှင့် သင့်ကိုစောင့်ကြည့်မည့်သူများကို သင့်ပရိုဖိုင်တွင် ဖျောက်ထားနိုင်ပါသည်
+ setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည်
+ setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည်
+ imports:
+ data: အခြား Mastodon ဆာဗာမှ CSV ဖိုင်ကို ပို့ထားသည်
+ invite_request:
+ text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်"
+ ip_block:
+ severities:
+ sign_up_requires_approval: အကောင့်အသစ်များသည် သင့်ခွင့်ပြုချက်လိုအပ်ပါသည်
+ sessions:
+ otp: သင့်ဖုန်းအက်ပ်မှထုတ်ပေးသောနှစ်ဆင့်ခံလုံခြုံရေးကုဒ်ကို ထည့်ပါ သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုပါ -
+ labels:
+ account:
+ fields:
+ value: အကြောင်းအရာ
+ account_alias:
+ acct: အကောင့်ဟောင်းကို ကိုင်တွယ်ပါ။
+ account_migration:
+ acct: အကောင့်သစ်ကို ကိုင်တွယ်ပါ။
+ account_warning_preset:
+ title: ခေါင်းစဥ်
+ admin_account_action:
+ type: လုပ်ဆောင်ချက်
+ types:
+ none: သတိပေးချက်ပေးပို့ပါ
+ silence: ကန့်သတ်
+ announcement:
+ text: ကြေညာချက်
+ defaults:
+ avatar: ကိုယ်စားပြုရုပ်ပုံ
+ bot: ဤသည်မှာ ဘော့တ်အကောင့်တစ်ခုဖြစ်သည်။
+ chosen_languages: ဘာသာစကားများကို စစ်ထုတ်ထားခြင်း
+ confirm_new_password: စကားဝှက်အသစ်ကို အတည်ပြုပါ
+ confirm_password: စကားဝှက်ကို အတည်ပြုပါ။
+ context: အကြောင်းအရာများကို စစ်ထုတ်ပါ။
+ current_password: လက်ရှိစကားဝှက်
+ data: အချက်အလက်
+ display_name: ဖော်ပြမည့်အမည်
+ email: အီးမေးလ်လိပ်စာ
+ header: မျက်နှာဖုံးပုံ
+ honeypot: "%{label} (မဖြည့်ပါနှင့်)"
+ new_password: စကားဝှက်အသစ်
+ note: ကိုယ်ရေးအကျဉ်း
+ otp_attempt: နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
+ password: စကားဝှက်
+ phrase: အဓိကစကားလုံး သို့မဟုတ် စကားစု
+ setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ
+ setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ
+ setting_display_media: မီဒီယာဖော်ပြမှု
+ setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ
+ setting_display_media_show_all: အားလုံးပြရန်
+ setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ
+ setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ
+ setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ
+ sign_in_token_attempt: လုံခြုံရေးကုဒ်
+ title: ခေါင်းစဥ်
+ username: အသုံးပြုသူအမည်
+ username_or_email: အသုံးပြုသူအမည် သို့မဟုတ် အီးမေးလ်
+ featured_tag:
+ name: Hashtag
+ form_admin_settings:
+ custom_css: စိတ်ကြိုက်ပြုလုပ်ထားသော CSS
+ mascot: စိတ်ကြိုက်ပြုလုပ်ထားသော mascot (legacy)
+ registrations_mode: ဘယ်သူတွေ အကောင့်ဖွင့်နိုင်မလဲ
+ require_invite_text: ပါဝင်ရန် အကြောင်းပြချက်တစ်ခု လိုအပ်ပါသည်
+ show_domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများကိုပြရန်
+ show_domain_blocks_rationale: ဒိုမိန်းများကို ဘာကြောင့် ပိတ်ဆို့ထားရကြောင်း ပြရန်
+ site_contact_email: ဆက်သွယ်ရမည့် အီးမေးလ်
+ site_contact_username: ဆက်သွယ်ရမည့် အသုံးပြုသူအမည်
+ site_short_description: ဆာဗာဖော်ပြချက်
+ site_terms: ကိုယ်ရေးအချက်အလက်မူဝါဒ
+ site_title: ဆာဗာအမည်
+ thumbnail: ဆာဗာ ပုံသေး
+ interactions:
+ must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
+ must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
+ must_be_following_dm: သင် စောင့်ကြည့်မထားသူများထံမှ တိုက်ရိုက်မက်ဆေ့ချ်များကို ပိတ်ပါ
+ invite:
+ comment: မှတ်ချက်
+ invite_request:
+ text: သင် ဘာကြောင့် ပါဝင်ချင်တာလဲ။
+ ip_block:
+ comment: မှတ်ချက်
+ ip: IP
+ severities:
+ sign_up_block: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ပါ
+ sign_up_requires_approval: အကောင့်ဖွင့်ခြင်းများကို ကန့်သတ်ပါ
+ severity: စည်းမျဉ်း
+ notification_emails:
+ favourite: တစ်စုံတစ်ဦးက သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်။
+ follow: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ခဲ့သည်
+ follow_request: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုခဲ့သည်
+ mention: တစ်စုံတစ်ဦးက သင့်ကို ဖော်ပြခဲ့သည်
+ pending_account: အကောင့်အသစ်ကို ပြန်လည်သုံးသပ်ရန် လိုအပ်သည်
+ rule:
+ text: စည်းမျဉ်း
+ tag:
+ name: Hashtag
+ user:
+ role: အခန်းကဏ္ဍ
+ user_role:
+ name: အမည်
+ permissions_as_keys: ခွင့်ပြုချက်များ
+ position: ဦးစားပေး
+ 'no': မလုပ်ပါ
+ required:
+ mark: "*"
+ text: လိုအပ်သော
+ title:
+ sessions:
+ webauthn: အကောင့်ဝင်ရန်အတွက် သင့်လုံခြုံရေးကီးများထဲမှ တစ်ခုကို အသုံးပြုပါ
+ 'yes': ဟုတ်ကဲ့
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index 47137d801e..cb11250ad1 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -7,12 +7,12 @@ sr:
account_migration:
acct: Наведи корисничко_име@домен налога на који желиш да пређеш
account_warning_preset:
- text: Можете користити синтаксу труба, као што су нпр. УРЛ-ова, тарабе и помињања
+ text: Можете користити синтаксу објава, као што су URL адресе, хеш ознаке и помињања
title: Опционо. Није видљиво примаоцу
admin_account_action:
include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење
send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога
- text_html: Опционално. Можете користити синтаксу труба. Можете додати упозоравајућа преподешавање да сачувате време
+ text_html: Опционално. Можете користити синтаксу објава. Можете додати унапред одређене поставке упозорења за уштеду времена
type_html: Изаберите шта да радите са %{acct}
types:
disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај.
@@ -29,7 +29,7 @@ sr:
text: На брисање се можеш жалити само једном
defaults:
autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити
- avatar: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
+ avatar: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа
context: Један или више контекста у којима треба да се примени филтер
current_password: Унеси лозинку текућег налога из безбедносних разлога
@@ -38,7 +38,7 @@ sr:
discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција
email: Биће вам послата е-пошта са потврдом
fields: Можете имати до 4 ставке приказане као табела на вашем налогу
- header: PNG, GIF или JPG. Највише %{size}. Биће смањена на %{dimensions}px
+ header: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
inbox_url: Копирајте URL са насловне стране релеја који желите користити
irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен
locale: Језик корисничког окружења, е-поште и мобилних обавештења
diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml
index ede921615c..cf914b0583 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -18,6 +18,8 @@ sv:
disable: Förhindra användaren från att använda sitt konto, men radera eller dölj inte innehållet.
none: Använd det här för att skicka en varning till användaren, utan att vidta någon ytterligare åtgärd.
sensitive: Tvinga alla denna användares mediebilagor till att flaggas som känsliga.
+ silence: Hindra användaren från att kunna göra offentliga inlägg, göm deras inlägg och notiser från folk som inte följer dem. Stänger alla anmälningar mot detta kontot.
+ suspend: Förhindrar all interaktion från eller till detta konto och ta bort dess innehåll. Går att ångra inom 30 dagar. Stänger alla anmälningar mot detta konto.
warning_preset_id: Valfri. Du kan lägga till anpassad text i slutet av förinställningen
announcement:
all_day: När det är markerat visas endast datum för tidsintervallet
@@ -72,6 +74,7 @@ sv:
hide: Dölj det filtrerade innehållet helt (beter sig som om det inte fanns)
warn: Dölj det filtrerade innehållet bakom en varning som visar filtrets rubrik
form_admin_settings:
+ activity_api_enabled: Antalet lokalt publicerade inlägg, aktiva användare och nya registrerade konton per vecka
backups_retention_period: Behåll genererade användararkiv i det angivna antalet dagar.
bootstrap_timeline_accounts: Dessa konton kommer fästas högst upp i nya användares följrekommendationer.
closed_registrations_message: Visas när nyregistreringar är avstängda
@@ -79,6 +82,7 @@ sv:
custom_css: Du kan använda anpassade stilar på webbversionen av Mastodon.
mascot: Åsidosätter illustrationen i det avancerade webbgränssnittet.
media_cache_retention_period: Nedladdade mediefiler kommer raderas efter det angivna antalet dagar, om inställt till ett positivt värde, och laddas ned på nytt vid behov.
+ peers_api_enabled: En lista över domänen den här servern har stött på i fediversum. Ingen data inkluderas om du har federerat med servern, bara att din server känner till den. Detta används av tjänster som samlar statistik om federering i allmänhet.
profile_directory: Profilkatalogen visar alla användare som har samtyckt till att bli upptäckbara.
require_invite_text: Gör fältet "Varför vill du gå med?" obligatoriskt när nyregistreringar kräver manuellt godkännande
site_contact_email: Hur människor kan nå dig för juridiska spörsmål eller supportfrågor.
@@ -87,11 +91,13 @@ sv:
site_short_description: En kort beskrivning för att unikt identifiera din server. Vem är det som driver den, vilka är den till för?
site_terms: Använd din egen sekretesspolicy eller lämna tomt för att använda standardinställningen. Kan struktureras med Markdown-syntax.
site_title: Hur folk kan hänvisa till din server förutom med dess domännamn.
+ status_page_url: URL till en sida där personer kan se serverns status under ett driftavbrott
theme: Tema som utloggade besökare och nya användare ser.
thumbnail: En bild i cirka 2:1-proportioner som visas tillsammans med din serverinformation.
timeline_preview: Utloggade besökare kommer kunna bläddra bland de senaste offentliga inläggen som finns på servern.
trendable_by_default: Hoppa över manuell granskning av trendande innehåll. Enskilda objekt kan ändå raderas från trender retroaktivt.
trends: Trender visar vilka inlägg, hashtaggar och nyheter det pratas om på din server.
+ trends_as_landing_page: Visa trendande innehåll för utloggade användare och besökare istället för en beskrivning om servern. Kräver att trender är aktiverat.
form_challenge:
current_password: Du går in i ett säkert område
imports:
@@ -227,6 +233,7 @@ sv:
hide: Dölj helt
warn: Dölj med en varning
form_admin_settings:
+ activity_api_enabled: Publicera aggregerad statistik om användaraktivitet i API:et
backups_retention_period: Lagringsperiod för användararkivet
bootstrap_timeline_accounts: Rekommendera alltid dessa konton till nya användare
closed_registrations_message: Anpassat meddelande när nyregistreringar inte är tillgängliga
@@ -234,6 +241,7 @@ sv:
custom_css: Anpassad CSS
mascot: Anpassad maskot (tekniskt arv)
media_cache_retention_period: Tid för bibehållande av mediecache
+ peers_api_enabled: Publicera lista över upptäckta servrar i API:et
profile_directory: Aktivera profilkatalog
registrations_mode: Vem kan registrera sig
require_invite_text: Kräv anledning för att gå med
@@ -245,11 +253,13 @@ sv:
site_short_description: Serverbeskrivning
site_terms: Integritetspolicy
site_title: Servernamn
+ status_page_url: URL för statussida
theme: Standardtema
thumbnail: Serverns tumnagelbild
timeline_preview: Tillåt oautentiserad åtkomst till offentliga tidslinjer
trendable_by_default: Tillåt trender utan föregående granskning
trends: Aktivera trender
+ trends_as_landing_page: Använd trender som landningssida
interactions:
must_be_follower: Blockera notiser från icke-följare
must_be_following: Blockera notiser från personer du inte följer
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 5f974c6fd1..8a2bcc0a1f 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -49,7 +49,7 @@ zh-TW:
phrase: 無論是嘟文的本文或是內容警告都會被過濾
scopes: 允許讓應用程式存取的 API。 若您選擇最高階範圍,則無須選擇個別項目。
setting_aggregate_reblogs: 請勿顯示最近已被轉嘟之嘟文的最新轉嘟(只影響最新收到的嘟文)
- setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送 e-mail 通知
+ setting_always_send_emails: 一般情況下若您活躍使用 Mastodon ,我們不會寄送電子郵件通知
setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示
setting_display_media_default: 隱藏標為敏感內容的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
@@ -62,10 +62,10 @@ zh-TW:
username: 您的使用者名稱將在 %{domain} 是獨一無二的
whole_word: 如果關鍵字或詞組僅有字母與數字,則其將只在符合整個單字的時候才會套用
domain_allow:
- domain: 此域名將能夠攫取本站資料,而自域名該發出的資料也會於本站處理和留存。
+ domain: 此網域將能夠攫取本站資料,而自該網域發出的資料也會於本站處理和留存。
email_domain_block:
domain: 這可以是顯示在電子郵件中的網域名稱,或是其使用的 MX 紀錄。其將在註冊時檢查。
- with_dns_records: Mastodon 會嘗試解析所給域名的 DNS 記錄,解析結果一致者將一併封鎖
+ with_dns_records: Mastodon 會嘗試解析所給網域的 DNS 記錄,解析結果一致者將一併封鎖
featured_tag:
name: 這些是您最近使用的一些主題標籤:
filters:
@@ -107,7 +107,7 @@ zh-TW:
ip_block:
comment: 可選的,但請記得您為何添加這項規則。
expires_in: IP 位址是經常共用或轉手的有限資源,不建議無限期地封鎖特定 IP 位址。
- ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要把自己給一併封鎖掉囉!
+ ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要將自己給一併封鎖掉囉!
severities:
no_access: 封鎖對所有資源存取
sign_up_block: 無法註冊新帳號
@@ -154,7 +154,7 @@ zh-TW:
none: 什麼也不做
sensitive: 敏感内容
silence: 安靜
- suspend: 停權並永久刪除帳號資料
+ suspend: 停權並不可逆的刪除帳號資料
warning_preset_id: 使用警告預設
announcement:
all_day: 全天活動
@@ -193,7 +193,7 @@ zh-TW:
phrase: 關鍵字或片語
setting_advanced_layout: 啟用進階網頁介面
setting_aggregate_reblogs: 時間軸中的群組轉嘟
- setting_always_send_emails: 總是發送 e-mail 通知
+ setting_always_send_emails: 總是發送電子郵件通知
setting_auto_play_gif: 自動播放 GIF 動畫
setting_boost_modal: 轉嘟前先詢問我
setting_crop_images: 將未展開嘟文中的圖片裁剪至 16x9
@@ -283,7 +283,7 @@ zh-TW:
follow: 當有使用者跟隨您時,傳送電子郵件通知
follow_request: 當有使用者請求跟隨您時,傳送電子郵件通知
mention: 當有使用者在嘟文提及您時,傳送電子郵件通知
- pending_account: 需要審核的新帳號
+ pending_account: 有新的帳號需要審核
reblog: 當有使用者轉嘟您的嘟文時,傳送電子郵件通知
report: 新回報已遞交
trending_tag: 新熱門趨勢需要審核
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 8cb4bcb393..8a56fa7f30 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -105,6 +105,7 @@ sr:
reject: Одбаци
remove_avatar: Уклони аватар
remove_header: Одстрани заглавље
+ removed_avatar_msg: Слика аватара корисника %{username} је успешно уклоњена
resend_confirmation:
already_confirmed: Овој корисник е веќе потврден
send: Препрати го е-мајлот за потврда
@@ -152,10 +153,13 @@ sr:
disable_user: Онемогући корисника
enable_user: Омогући корисника
reject_user: Одбаци корисника
+ remove_avatar_user: Уклони аватар
silence_account: Ограничи налог
suspend_account: Обустави налог
update_status: Уреди објаву
update_user_role: Уреди улогу
+ actions:
+ remove_avatar_user_html: "%{name} је уклонио аватар корисника %{target}"
deleted_account: обрисан налог
filter_by_action: Филтрирај по активности
filter_by_user: Филтрирај по кориснику
@@ -236,6 +240,9 @@ sr:
create: Додај домен
title: Нова ставка е-поштe у црној листи
title: Црна листа E-поште
+ export_domain_blocks:
+ import:
+ existing_relationships_warning: Постојећи односи у облику праћења
follow_recommendations:
status: Статус
instances:
@@ -283,6 +290,8 @@ sr:
new:
title: Креирај ново IP правило
no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано
+ relationships:
+ title: Односи корисника %{acct}
relays:
add_new: Додај нови релеј
delete: Обриши
@@ -404,14 +413,14 @@ sr:
your_token: Ваш приступни токен
auth:
change_password: Лозинка
- delete_account: Обриши налог
- delete_account_html: Ако желите да обришете Ваш налог, можете наставити овде. Бићете упитани да потврдите.
+ delete_account: Брисање налога
+ delete_account_html: Ако желите да избришете ваш налог, можете наставити овде. Од вас ће се тражити потврда.
didnt_get_confirmation: Нисте добили поруку са упутствима за потврду налога?
forgot_password: Заборавили сте лозинку?
invalid_reset_password_token: Токен за ресетовање лозинке је неисправан или је истекао. Затражите нови.
login: Пријави се
logout: Одјава
- migrate_account: Помери у други налог
+ migrate_account: Премештање у други налог
migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то подесити овде.
or_log_in_with: Или се пријавите са
providers:
@@ -422,6 +431,9 @@ sr:
reset_password: Ресетуј лозинку
security: Безбедност
set_new_password: Постави нову лозинку
+ status:
+ account_status: Статус налога
+ functional: Ваш налог је потпуно оперативан.
authorize_follow:
already_following: Већ пратите овај налог
error: Нажалост, десила се грешка при тражењу удаљеног налога
@@ -466,15 +478,20 @@ sr:
archive_takeout:
date: Датум
download: Преузмите Вашу архиву
- hint_html: Можете затражити архиву ваших труба и отпремљених медија. Извезени подаци ће бити у АктивитиПаб формату, који можете читати са било којим усаглашеним софтвером. Архиву можете затражити сваких 7 дана.
+ hint_html: Можете затражити архиву ваших објава и отпремљених медија. Извезени подаци ће бити у ActivityPub формату, који може читати било који компатибилан софтвер. Архиву можете затражити сваких 7 дана.
in_progress: Састављање ваше архиве...
- request: Затражите Вашу архиву
+ request: Затражите своју архиву
size: Величина
blocks: Блокирали сте
domain_blocks: Блокови домена
lists: Листе
- mutes: Ућуткали сте
+ mutes: Игноришете
storage: Мултимедијално складиште
+ featured_tags:
+ add_new: Додај нову
+ errors:
+ limit: Већ сте истакли максималан број хеш ознака
+ hint_html: "Шта су истакнуте хеш онаке? Оне се приказују истакнуто на вашем јавном профилу и омогућују људима да прегледају ваше јавне објаве конкретно под тим хеш ознакама. Оне су сјајан алат за праћење креативних радова или дугорочних пројеката."
filters:
contexts:
home: Временска линија почетне
@@ -487,6 +504,7 @@ sr:
invalid_context: Ниједан или неважећи контекст испоручен
index:
delete: Избриши
+ empty: Немате филтере.
title: Филтери
new:
title: Додај нови филтер
@@ -535,6 +553,8 @@ sr:
too_many: Не може се прикачити више од 4 фајла
migrations:
acct: корисник@домен новог налога
+ incoming_migrations: Премештање из другог налога
+ incoming_migrations_html: Да бисте прешли са другог налога на овај, прво морате креирате псеудоним налога.
moderation:
title: Модерација
notification_mailer:
@@ -573,18 +593,38 @@ sr:
other: Остало
posting_defaults: Подразумевана подешавања објављивања
public_timelines: Јавне временске линије
+ relationships:
+ activity: Активност налога
+ confirm_follow_selected_followers: Да ли сте сигурни да желите да пратите изабране пратиоце?
+ confirm_remove_selected_followers: Да ли сте сигурни да желите да уклоните изабране пратиоце?
+ confirm_remove_selected_follows: Да ли сте сигурни да желите да уклоните изабрана праћења?
+ dormant: Неактиван
+ follow_selected_followers: Прати изабране пратиоце
+ followers: Пратиоци
+ following: Праћења
+ invited: Позван
+ last_active: Последњи пут активан
+ most_recent: Најновији
+ moved: Премештен
+ mutual: Заједнички
+ primary: Примарни
+ relationship: Однос
+ remove_selected_domains: Уклони све пратиоце са изабраних домена
+ remove_selected_followers: Уклони изабране пратиоце
+ remove_selected_follows: Отпрати изабране кориснике
+ status: Статус налога
remote_follow:
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
scheduled_statuses:
- over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан
- over_total_limit: Прекорачили сте границу од %{limit} планираних труба
+ over_daily_limit: Прекорачили сте границу од %{limit} планираних објава за данас
+ over_total_limit: Прекорачили сте границу од %{limit} планираних објава
too_soon: Планирани датум мора бити у будућности
sessions:
activity: Последња активност
browser: Веб читач
browsers:
alipay: Алипеј
- chrome: Хром
+ chrome: Chrome
edge: Мајкрософт Еџ
electron: Електрон
firefox: Фајерфокс
@@ -609,13 +649,16 @@ sr:
linux: Линукса
mac: Мека
other: непознате платформе
- windows: Виндоуза
- windows_mobile: Виндоуз мобилног
- windows_phone: Виндоуз телефона
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: Опозови
revoke_success: Сесија успешно опозвана
title: Сесије
+ view_authentication_history: Погледајте историју аутентификације вашег налога
settings:
+ account: Налог
+ account_settings: Подешавања налога
appearance: Изглед
authorized_apps: Ауторизоване апликације
back: Назад на Мастодон
@@ -623,6 +666,7 @@ sr:
development: Развој
edit_profile: Уређивање профила
export: Извоз података
+ featured_tags: Истакнуте хеш ознаке
import: Увоз
import_and_export: Увоз и извоз
migrate: Пребацивање налога
@@ -630,6 +674,7 @@ sr:
preferences: Подешавања
profile: Налог
relationships: Праћења и пратиоци
+ statuses_cleanup: Аутоматско брисање објава
two_factor_authentication: Двофакторска идентификација
statuses:
attached:
@@ -652,7 +697,7 @@ sr:
open_in_web: Отвори у вебу
over_character_limit: ограничење од %{max} карактера прекорачено
pin_errors:
- limit: Већ имате прикачен највећи број труба
+ limit: Већ сте закачили максималан број објава
ownership: Туђа објава се не може закачити
reblog: Подршка не може да се прикачи
show_more: Прикажи још
@@ -664,6 +709,40 @@ sr:
public_long: Свако може да види
unlisted: Неизлистано
unlisted_long: Свако може да види, али није излистано на јавним временским линијама
+ statuses_cleanup:
+ enabled: Аутоматски избриши старе објаве
+ enabled_hint: Аутоматски брише ваше објаве када достигну одређени старосни праг, осим ако се не подударају са једним од изузетака у наставку
+ exceptions: Изузеци
+ explanation: Пошто је брисање објава скупа операција, ово се ради полако током времена када сервер иначе није заузет. Из тог разлога, ваше објаве могу бити избрисане неко време након што достигну старосни праг.
+ ignore_favs: Игнориши омиљене
+ ignore_reblogs: Игнориши подржавања
+ interaction_exceptions: Изузеци засновани на интеракцијама
+ interaction_exceptions_explanation: Имајте на уму да не постоји гаранција да ће објаве бити избрисане ако број означавања као омиљених или број подржавања падне испод прага након што га премаше.
+ keep_direct: Задржи директне поруке
+ keep_direct_hint: Не брише ниједну од ваших директних порука
+ keep_media: Задржи објаве са медијским прилозима
+ keep_media_hint: Не брише ниједну од ваших објава које имају медијске прилоге
+ keep_pinned: Задржи закачене објаве
+ keep_pinned_hint: Не брише ниједну од ваших закачених објава
+ keep_polls: Задржи анкете
+ keep_polls_hint: Не брише ниједну од ваших анкета
+ keep_self_bookmark: Задржи објаве које сте додали у обележиваче
+ keep_self_bookmark_hint: Не брише ваше сопствене објаве ако сте их додлаи у обележиваче
+ keep_self_fav: Задржи омиљене објаве
+ keep_self_fav_hint: Не брише ваше сопствене објаве ако сте их означили као омиљене
+ min_age:
+ '1209600': 2 седмице
+ '15778476': 6 месеци
+ '2629746': 1 месец
+ '31556952': 1 година
+ '5259492': 2 месеца
+ '604800': 1 седмица
+ '63113904': 2 годинe
+ '7889238': 3 месеца
+ min_age_label: Старосни праг
+ min_favs: Задржи објаве означене као омиљене најмање
+ min_favs_hint: Не брише ниједну вашу објаву која је добила најмање овај број омиљених. Оставите празно за брисање објава без обзира на њихов број омиљених
+ min_reblogs_hint: Не брише ниједну вашу објаву која је била подржана најмање оволико пута. Оставите празно за брисање објава без обзира на њихов број подржавања
stream_entries:
pinned: Закачена објава
reblogged: подржано
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index c5ad5a8da3..9352f0c19a 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -91,6 +91,7 @@ sv:
moderation:
active: Aktiv
all: Alla
+ disabled: Inaktiverad
pending: Väntande
silenced: Begränsad
suspended: Avstängda
@@ -133,6 +134,7 @@ sv:
search: Sök
search_same_email_domain: Andra användare med samma e-postdomän
search_same_ip: Annan användare med samma IP-adress
+ security: Säkerhet
security_measures:
only_password: Endast lösenord
password_and_2fa: Lösenord och 2FA
@@ -427,6 +429,7 @@ sv:
resolve: Slå upp domän
title: Blockera ny e-postdomän
no_email_domain_block_selected: Inga blockeringar av e-postdomäner ändrades eftersom inga valdes
+ not_permitted: Ej tillåtet
resolved_dns_records_hint_html: Domännamnet ger uppslag till följande MX-domäner, vilka är ytterst ansvariga för att e-post tas emot. Att blockera en MX-domän blockerar även registreringar från alla e-postadresser som använder samma MX-domän, även om det synliga domännamnet är annorlunda. Var noga med att inte blockera stora e-postleverantörer.
resolved_through_html: Uppslagen genom %{domain}
title: Blockerade e-postdomäner
@@ -473,6 +476,7 @@ sv:
content_policies:
comment: Intern anteckning
description_html: Du kan definiera innehållspolicyer som kommer tillämpas på alla konton från denna domän samt alla dess underdomäner.
+ limited_federation_mode_description_html: Du kan välja om du vill tillåta federering med den här domänen.
policies:
reject_media: Avvisa media
reject_reports: Avvisa rapporter
@@ -585,11 +589,13 @@ sv:
assign_to_self: Tilldela till mig
assigned: Tilldelad moderator
by_target_domain: Domän för rapporterat konto
+ cancel: Avbryt
category: Kategori
category_description_html: Anledningen till att kontot och/eller innehållet rapporterades kommer att visas i kommunikation med det rapporterade kontot
comment:
none: Ingen
comment_description_html: 'För att ge mer information, skrev %{name}:'
+ confirm: Bekräfta
confirm_action: Bekräfta modereringsåtgärd mot @%{acct}
created_at: Anmäld
delete_and_resolve: Ta bort inlägg
@@ -628,9 +634,20 @@ sv:
suspend_html: 'Du håller på att stänga av@%{acct}s konto. Detta kommer:'
actions:
delete_html: Ta bort kränkande inlägg
+ mark_as_sensitive_html: Markera de anmälda inläggens media som känslig
+ silence_html: Begränsa kraftigt @%{acct} räckvidd genom att göra deras profil och innehåll bara synligt till folk som redan följer dom eller som manuellt söker upp deras profil
+ suspend_html: Stäng av @%{acct}, vilket gör deras profil och innehåll oåtkomligt och omöjligt att interagera med
+ close_report: 'Markera anmälningen #%{id} som löst'
+ close_reports_html: Markera alla anmälningar mot @%{acct} som lösta
+ delete_data_html: Ta bort @%{acct}s profil och innehåll om 30 dagar ifall deras avstängning inte tagits bort under tiden
+ preview_preamble_html: "@%{acct} kommer få en varning med följande innehåll:"
+ record_strike_html: Registrera en varning mot @%{acct} för att hjälpa dig eskalera vid framtida överträdelser från detta konto
+ send_email_html: Skicka @%{acct} ett varningsmejl
+ warning_placeholder: Valfri ytterligare resonemang för modereringsåtgärd.
target_origin: Ursprung för anmält konto
title: Anmälningar
unassign: Otilldela
+ unknown_action_msg: 'Okänd åtgärd: %{action}'
unresolved: Olösta
updated_at: Uppdaterad
view_profile: Visa profil
@@ -781,6 +798,7 @@ sv:
suspend: "%{name} stängde av %{target}s konto"
appeal_approved: Överklagad
appeal_pending: Överklagande väntar
+ appeal_rejected: Överklagan avslagen
system_checks:
database_schema_check:
message_html: Det finns väntande databasmigreringar. Vänligen kör dem för att säkerställa att programmet beter sig som förväntat
@@ -816,6 +834,7 @@ sv:
other: Delad av %{count} personer under den senaste veckan
title: Trendande länkar
usage_comparison: Delade %{today} gånger idag, jämfört med %{yesterday} igår
+ not_allowed_to_trend: Inte tillåtet att trenda
only_allowed: Endast tillåtna
pending_review: Väntar på granskning
preview_card_providers:
@@ -947,6 +966,7 @@ sv:
applications:
created: Ansökan är framgångsrikt skapad
destroyed: Ansökan är framgångsrikt borttagen
+ logout: Logga ut
regenerate_token: Regenerera access token
token_regenerated: Access token lyckades regenereras
warning: Var mycket försiktig med denna data. Dela aldrig den med någon!
@@ -954,6 +974,8 @@ sv:
auth:
apply_for_account: Ansök om konto
change_password: Lösenord
+ confirmations:
+ wrong_email_hint: Om e-postadressen inte är rätt, kan du ändra den i kontoinställningarna.
delete_account: Radera konto
delete_account_html: Om du vill radera ditt konto kan du fortsätta här. Du kommer att bli ombedd att bekräfta.
description:
@@ -981,6 +1003,8 @@ sv:
resend_confirmation: Skicka instruktionerna om bekräftelse igen
reset_password: Återställ lösenord
rules:
+ accept: Godkänn
+ back: Tillbaka
preamble: Dessa bestäms och upprätthålls av moderatorerna för %{domain}.
title: Några grundregler.
security: Säkerhet
@@ -1127,6 +1151,8 @@ sv:
storage: Medialagring
featured_tags:
add_new: Lägg till ny
+ errors:
+ limit: Du har redan fäst det maximala antalet hashtags
hint_html: "Vad är utvalda hashtaggar? De visas tydligt på din offentliga profil och låter andra bläddra bland dina offentliga inlägg specifikt under dessa hashtaggar. De är ett bra verktyg för att hålla reda på kreativa arbeten eller långsiktiga projekt."
filters:
contexts:
@@ -1234,6 +1260,9 @@ sv:
expires_at: Utgår
uses: Användningar
title: Bjud in andra
+ lists:
+ errors:
+ limit: Du har nått det maximala antalet listor
login_activities:
authentication_methods:
otp: tvåfaktorsautentiseringsapp
@@ -1374,6 +1403,9 @@ sv:
unrecognized_emoji: är inte en igenkänd emoji
relationships:
activity: Kontoaktivitet
+ confirm_follow_selected_followers: Är du säker på att du vill följa valda följare?
+ confirm_remove_selected_followers: Är du säker på att du vill ta bort valda följare?
+ confirm_remove_selected_follows: Är du säker på att du vill ta bort valda följare?
dormant: Vilande
follow_selected_followers: Följ valda personer
followers: Följare
@@ -1550,6 +1582,7 @@ sv:
'7889238': 3 månader
min_age_label: Åldersgräns
min_favs: Behåll favoritmarkerade inlägg i minst
+ min_favs_hint: Raderar inte några av dina inlägg som har fått minst detta antalet av favoritmarkeringar. Lämna tomt för att ta bort inlägg oavsett hur många favoritmarkeringar de har fått
min_reblogs: Behåll boostade inlägg i minst
min_reblogs_hint: Raderar inte något av dina inlägg som har blivit boostat minst detta antal gånger. Lämna tomt för att radera inlägg oavsett antal boostar
stream_entries:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 269e4f4b06..538b9304b0 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1550,6 +1550,7 @@ vi:
'7889238': 3 tháng
min_age_label: Thời điểm
min_favs: Giữ những tút yêu thích lâu hơn
+ min_favs_hint: Những tút có lượt thích nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
min_reblogs: Giữ những tút đã đăng lại lâu hơn
min_reblogs_hint: Những tút có lượt đăng lại nhiều hơn số này sẽ không bị xóa. Để trống nếu bạn muốn xóa hết
stream_entries:
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index adaad2c1cf..6538e34590 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1133,6 +1133,8 @@ zh-HK:
storage: 媒體容量大小
featured_tags:
add_new: 新增
+ errors:
+ limit: 你推薦的標籤數量已達上限
hint_html: "甚麼是推薦主題標籤? 它們會被顯示在你的個人資料頁面,讓其他人可以根據標籤瀏覽你的公開文章,令人們更易找到你創作或者長期作品!"
filters:
contexts:
@@ -1232,6 +1234,9 @@ zh-HK:
expires_at: 失效時間
uses: 已使用次數
title: 邀請用戶
+ lists:
+ errors:
+ limit: 你已達到列表數量的上限
login_activities:
authentication_methods:
otp: 兩步認證軟體
@@ -1545,6 +1550,7 @@ zh-HK:
'7889238': 3 個月
min_age_label: 按時間篩選
min_favs: 保留超過嘟文最愛門檻
+ min_favs_hint: 收到此數量或更多最愛的帖文將不會被刪除。 留空可無視最愛數量刪除帖子
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除嘟文。
stream_entries:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 04752a294e..a25818bca6 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -31,7 +31,7 @@ zh-TW:
accounts:
add_email_domain_block: 將電子郵件網域加入黑名單
approve: 批准
- approved_msg: 成功審核了 %{username} 的新帳號申請
+ approved_msg: 已成功審核 %{username} 的新帳號申請
are_you_sure: 您確定嗎?
avatar: 大頭貼
by_domain: 站點
@@ -113,13 +113,13 @@ zh-TW:
redownload: 重新整理個人檔案
redownloaded_msg: 成功重新載入%{username} 的個人檔案頁面
reject: 拒絕
- rejected_msg: 成功婉拒了 %{username} 的新帳號申請
+ rejected_msg: 已成功婉拒 %{username} 的新帳號申請
remote_suspension_irreversible: 此帳號之資料已被不可逆地刪除。
remote_suspension_reversible_hint_html: 這個帳號已於此伺服器被停權,所有資料將會於 %{date} 被刪除。在此之前,遠端伺服器可以完全回復此的帳號。如果您想即時刪除這個帳號的資料,您可以在下面進行操作。
remove_avatar: 取消大頭貼
remove_header: 移除開頭
- removed_avatar_msg: 成功刪除了 %{username} 的大頭貼
- removed_header_msg: 成功刪除了 %{username} 的封面圖片
+ removed_avatar_msg: 已成功刪除 %{username} 的大頭貼
+ removed_header_msg: 已成功刪除 %{username} 的封面圖片
resend_confirmation:
already_confirmed: 此使用者已被確認
send: 重新發送驗證信
@@ -135,11 +135,11 @@ zh-TW:
security_measures:
only_password: 僅使用密碼
password_and_2fa: 密碼及兩階段驗證 (2FA)
- sensitive: 敏感内容
+ sensitive: 強制標記為敏感内容
sensitized: 已標記為敏感內容
shared_inbox_url: 共享收件匣 URL
show:
- created_reports: 建立檢舉
+ created_reports: 新增檢舉
targeted_reports: 由其他人檢舉
silence: 靜音
silenced: 已靜音
@@ -154,7 +154,7 @@ zh-TW:
unblock_email: 解除封鎖電子郵件地址
unblocked_email_msg: 成功解除封鎖 %{username} 的電子郵件地址
unconfirmed_email: 未確認的電子郵件地址
- undo_sensitized: 取消敏感狀態
+ undo_sensitized: 取消強制標記為敏感內容
undo_silenced: 取消靜音
undo_suspension: 取消停權
unsilenced_msg: 成功解除 %{username} 的帳號限制
@@ -173,23 +173,23 @@ zh-TW:
change_email_user: 變更使用者的電子郵件地址
change_role_user: 變更使用者角色
confirm_user: 確認使用者
- create_account_warning: 建立警告
- create_announcement: 建立公告
+ create_account_warning: 新增警告
+ create_announcement: 新增公告
create_canonical_email_block: 新增 E-mail 封鎖
- create_custom_emoji: 建立自訂顏文字
- create_domain_allow: 建立允許網域
- create_domain_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: 把用戶降級
+ create_user_role: 新增角色
+ demote_user: 將用戶降級
destroy_announcement: 刪除公告
destroy_canonical_email_block: 刪除 E-mail 封鎖
destroy_custom_emoji: 刪除自訂顏文字
destroy_domain_allow: 刪除允許網域
- destroy_domain_block: 刪除阻擋網域
- destroy_email_domain_block: 刪除阻擋電郵網域
+ destroy_domain_block: 刪除網域封鎖
+ destroy_email_domain_block: 刪除電子郵件網域封鎖
destroy_instance: 清除網域
destroy_ip_block: 刪除 IP 規則
destroy_status: 刪除狀態
@@ -203,7 +203,7 @@ zh-TW:
enable_sign_in_token_auth_user: 啟用使用者電子郵件 token 驗證
enable_user: 啓用帳號
memorialize_account: 設定成追悼帳號
- promote_user: 把用戶升級
+ promote_user: 將用戶升級
reject_appeal: 駁回申訴
reject_user: 回絕使用者
remove_avatar_user: 刪除大頭貼
@@ -211,79 +211,79 @@ zh-TW:
resend_user: 重新發送驗證信
reset_password_user: 重設密碼
resolve_report: 消除舉報
- sensitive_account: 把您的帳號的媒體標記為敏感內容
+ sensitive_account: 將媒體強制標記為敏感內容
silence_account: 靜音帳號
suspend_account: 停權帳號
unassigned_report: 取消指派舉報
unblock_email_account: 解除封鎖電子郵件地址
- unsensitive_account: 取消把您的帳號的媒體設定為敏感內容
+ unsensitive_account: 取消將媒體強制標記為敏感內容
unsilence_account: 取消帳號的靜音狀態
unsuspend_account: 取消帳號的暫停狀態
update_announcement: 更新公告
update_custom_emoji: 更新自訂顏文字
- update_domain_block: 更新封鎖網域
+ update_domain_block: 更新網域封鎖
update_ip_block: 更新 IP 規則
update_status: 更新狀態
update_user_role: 更新角色
actions:
- approve_appeal_html: "%{name} 批准了來自 %{target} 的審核決定申訴"
- approve_user_html: "%{name} 批准了從 %{target} 而來的註冊"
+ 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} 的電子郵件位址"
+ 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} 已封鎖了 hash 為 %{target} 之 e-mail"
- create_custom_emoji_html: "%{name} 上傳了新自訂表情符號 %{target}"
+ create_announcement_html: "%{name} 已新增公告 %{target}"
+ create_canonical_email_block_html: "%{name} 已封鎖 hash 為 %{target} 的 e-mail"
+ 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_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} 角色"
+ create_user_role_html: "%{name} 已新增 %{target} 角色"
demote_user_html: "%{name} 將使用者 %{target} 降級"
- destroy_announcement_html: "%{name} 刪除了公告 %{target}"
+ destroy_announcement_html: "%{name} 已刪除公告 %{target}"
destroy_canonical_email_block_html: "%{name} 已解除封鎖 hash 為 %{target} 的電子郵件"
- destroy_custom_emoji_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} 的嘟文"
- destroy_unavailable_domain_html: "%{name} 恢復了對網域 %{target} 的發送"
- destroy_user_role_html: "%{name} 刪除了 %{target} 角色"
- disable_2fa_user_html: "%{name} 停用了使用者 %{target} 的兩階段認證 (2FA) "
- disable_custom_emoji_html: "%{name} 停用了自訂表情符號 %{target}"
- disable_sign_in_token_auth_user_html: "%{name} 停用了 %{target} 之使用者電子郵件 token 驗證"
+ destroy_instance_html: "%{name} 已清除網域 %{target}"
+ destroy_ip_block_html: "%{name} 已刪除 IP %{target} 的規則"
+ destroy_status_html: "%{name} 已刪除 %{target} 的嘟文"
+ destroy_unavailable_domain_html: "%{name} 已恢復對網域 %{target} 的發送"
+ destroy_user_role_html: "%{name} 已刪除 %{target} 角色"
+ disable_2fa_user_html: "%{name} 已停用使用者 %{target} 的兩階段認證 (2FA) "
+ disable_custom_emoji_html: "%{name} 已停用自訂表情符號 %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} 已停用 %{target} 之使用者電子郵件 token 驗證"
disable_user_html: "%{name} 將使用者 %{target} 設定為禁止登入"
- enable_custom_emoji_html: "%{name} 啟用了自訂表情符號 %{target}"
- enable_sign_in_token_auth_user_html: "%{name} 啟用了 %{target} 之使用者電子郵件 token 驗證"
+ enable_custom_emoji_html: "%{name} 已啟用自訂表情符號 %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} 已啟用 %{target} 之使用者電子郵件 token 驗證"
enable_user_html: "%{name} 將使用者 %{target} 設定為允許登入"
memorialize_account_html: "%{name} 將 %{target} 設定為追悼帳號"
- promote_user_html: "%{name} 對使用者 %{target} 進行了晉級操作"
- reject_appeal_html: "%{name} 回絕了來自 %{target} 的審核決定申訴"
- reject_user_html: "%{name} 回絕了從 %{target} 而來的註冊"
- remove_avatar_user_html: "%{name} 移除了 %{target} 的大頭貼"
+ promote_user_html: "%{name} 對使用者 %{target} 已進行晉級操作"
+ reject_appeal_html: "%{name} 已回絕來自 %{target} 的審核決定申訴"
+ 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} 的檢舉"
+ reset_password_user_html: "%{name} 已重新設定使用者 %{target} 的密碼"
+ resolve_report_html: "%{name} 已處理 %{target} 的檢舉"
sensitive_account_html: "%{name} 將 %{target} 的媒體檔案標記為敏感內容"
- silence_account_html: "%{name} 靜音了使用者 %{target}"
+ silence_account_html: "%{name} 已靜音使用者 %{target}"
suspend_account_html: "%{name} 已停權 %{target} 的帳號"
unassigned_report_html: "%{name} 取消指派 %{target} 的檢舉"
unblock_email_account_html: "%{name} 已解除封鎖 %{target} 的電子郵件地址"
- unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案的敏感狀態取消"
- unsilence_account_html: "%{name} 取消了使用者 %{target} 的靜音狀態"
+ unsensitive_account_html: "%{name} 將 %{target} 的媒體檔案取消標記為敏感內容"
+ unsilence_account_html: "%{name} 已取消使用者 %{target} 的靜音狀態"
unsuspend_account_html: "%{name} 已取消停權 %{target} 的帳號"
- update_announcement_html: "%{name} 更新了公告 %{target}"
- update_custom_emoji_html: "%{name} 更新了自訂表情符號 %{target}"
- update_domain_block_html: "%{name} 更新了 %{target} 之網域封鎖"
- update_ip_block_html: "%{name} 已經更新了 IP %{target} 之規則"
- update_status_html: "%{name} 更新了 %{target} 的嘟文"
- update_user_role_html: "%{name} 變更了 %{target} 角色"
+ update_announcement_html: "%{name} 已更新公告 %{target}"
+ update_custom_emoji_html: "%{name} 已更新自訂表情符號 %{target}"
+ update_domain_block_html: "%{name} 已更新 %{target} 之網域封鎖"
+ update_ip_block_html: "%{name} 已變更 IP %{target} 之規則"
+ update_status_html: "%{name} 已更新 %{target} 的嘟文"
+ update_user_role_html: "%{name} 已變更 %{target} 角色"
deleted_account: 已刪除帳號
empty: 找不到 log
filter_by_action: 按動作過濾
@@ -296,7 +296,7 @@ zh-TW:
empty: 找不到公告。
live: 直播
new:
- create: 建立公告
+ create: 新增公告
title: 新增公告
publish: 發布
published_msg: 成功發布公告!
@@ -374,13 +374,13 @@ zh-TW:
import: 匯入
undo: 從聯邦宇宙白名單移除
domain_blocks:
- add_new: 新增欲封鎖域名
+ add_new: 新增網域黑名單
created_msg: 正在進行網域封鎖
destroyed_msg: 已撤銷網域封鎖
domain: 站點
edit: 更改封鎖的站台
- existing_domain_block: 您已對 %{name} 施加了更嚴格的限制。
- existing_domain_block_html: 您已經對 %{name} 施加了更嚴格的限制,您需要先 解除封鎖。
+ existing_domain_block: 您已對 %{name} 施加更嚴格的限制。
+ existing_domain_block_html: 您已對 %{name} 施加更嚴格的限制,您需要先 解除封鎖。
export: 匯出
import: 匯入
new:
@@ -391,7 +391,7 @@ zh-TW:
noop: 無
silence: 靜音
suspend: 停權
- title: 新增封鎖站點
+ title: 新增網域黑名單
no_domain_block_selected: 因未選取網域黑名單,所以什麼事都沒發生
not_permitted: 您無權執行此操作
obfuscate: 混淆網域名稱
@@ -405,7 +405,7 @@ zh-TW:
reject_reports: 拒絕檢舉
reject_reports_hint: 忽略所有來自此網域的檢舉。與停權無關
undo: 撤銷網域封鎖
- view: 顯示阻擋的網域
+ view: 顯示已封鎖網域
email_domain_blocks:
add_new: 加入新項目
attempts_over_week:
@@ -715,7 +715,7 @@ zh-TW:
title: 關於
appearance:
preamble: 客製化 Mastodon 網頁介面。
- title: 外觀設定
+ title: 外觀
branding:
preamble: 您的伺服器品牌使之從聯邦宇宙網路中其他伺服器間凸顯自己。此資訊可能於各種不同的環境中顯示,例如 Mastodon 網頁介面、原生應用程式、其他網頁上的連結預覽或是其他通訊應用程式等等。因此,請盡可能保持此資訊簡潔明朗。
title: 品牌化
@@ -777,13 +777,13 @@ zh-TW:
with_media: 含有媒體檔案
strikes:
actions:
- delete_statuses: "%{name} 刪除了 %{target} 的嘟文"
- disable: "%{name} 凍結了 %{target} 的帳號"
+ delete_statuses: "%{name} 已刪除 %{target} 的嘟文"
+ disable: "%{name} 已凍結 %{target} 的帳號"
mark_statuses_as_sensitive: "%{name} 將 %{target} 的嘟文標記為敏感內容"
none: "%{name} 已對 %{target} 送出警告"
sensitive: "%{name} 將 %{target} 的帳號標記為含有敏感內容"
- silence: "%{name} 限制了 %{target} 的帳號"
- suspend: "%{name} 將 %{target} 的帳號停權"
+ silence: "%{name} 已限制 %{target} 的帳號"
+ suspend: "%{name} 已將 %{target} 的帳號停權"
appeal_approved: 已申訴
appeal_pending: 申訴待審中
appeal_rejected: 申訴被駁回
@@ -907,8 +907,8 @@ zh-TW:
body: 以下是新帳號的詳細資訊。您可以同意或拒絕這項申請。
subject: "%{instance} 上有新帳號 (%{username}) 待審核"
new_report:
- body: "%{reporter} 檢舉了使用者 %{target}"
- body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target}
+ body: "%{reporter} 已檢舉使用者 %{target}"
+ body_remote: 來自 %{domain} 的使用者已檢舉使用者 %{target}
subject: 來自 %{instance} 的使用者檢舉(#%{id})
new_trends:
body: 以下項目需要經過審核才能公開顯示:
@@ -953,7 +953,7 @@ zh-TW:
logout: 登出
regenerate_token: 重新產生存取 token
token_regenerated: 已重新產生存取 token
- warning: 警告,不要把它分享給任何人!
+ warning: 警告,不要將它分享給任何人!
your_token: 您的 access token
auth:
apply_for_account: 申請帳號
@@ -1001,7 +1001,7 @@ zh-TW:
preamble_html: 請使用您在 %{domain} 的帳號密碼登入。若您的帳號託管於其他伺服器,您將無法在此登入。
title: 登入 %{domain}
sign_up:
- preamble: 在這個 Mastodon 伺服器上有個帳號的話,您將能跟隨聯邦宇宙網路中的任何人,無論他們的帳號託管於哪個伺服器。
+ preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。
title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
@@ -1013,7 +1013,7 @@ zh-TW:
too_fast: 送出表單的速度太快跟不上,請稍後再試。
use_security_key: 使用安全金鑰
authorize_follow:
- already_following: 您已經跟隨了這個使用者
+ already_following: 您已經跟隨這個使用者
already_requested: 您早已向該帳號寄送跟隨請求
error: 對不起,搜尋其他站點使用者出現錯誤
follow: 跟隨
@@ -1099,7 +1099,7 @@ zh-TW:
your_appeal_pending: 您已遞交申訴
your_appeal_rejected: 您的申訴已被駁回
domain_validator:
- invalid_domain: 並非一個有效域名
+ invalid_domain: 並非一個有效網域
errors:
'400': 您所送出的請求無效或格式不正確。
'403': 您沒有檢視這個頁面的權限。
@@ -1129,7 +1129,7 @@ zh-TW:
blocks: 您封鎖的使用者
bookmarks: 書籤
csv: CSV
- domain_blocks: 域名封鎖
+ domain_blocks: 網域封鎖
lists: 列表
mutes: 您靜音的使用者
storage: 儲存空間大小
@@ -1191,7 +1191,7 @@ zh-TW:
deselect: 取消選擇全部
none: 無
order_by: 排序
- save_changes: 儲存修改
+ save_changes: 儲存變更
select_all_matching_items:
other: 選取 %{count} 個符合您搜尋的項目。
today: 今天
@@ -1209,10 +1209,10 @@ zh-TW:
preface: 您可以在此匯入您在其他伺服器所匯出的資料檔,包括跟隨的使用者、封鎖的使用者名單。
success: 資料上傳成功,正在匯入,請稍候
types:
- blocking: 您封鎖的使用者名單
+ blocking: 您封鎖的使用者列表
bookmarks: 書籤
- domain_blocking: 域名封鎖名單
- following: 您跟隨的使用者名單
+ domain_blocking: 網域封鎖列表
+ following: 您跟隨的使用者列表
muting: 您靜音的使用者名單
upload: 上傳
invites:
@@ -1282,7 +1282,7 @@ zh-TW:
before: 在進行下一步驟之前,請詳細閱讀以下説明:
cooldown: 在轉移帳號後會有一段等待時間,在等待時間內您將無法再次轉移
disabled_account: 之後您的目前帳號將完全無法使用。但您可以存取資料匯出與重新啟用。
- followers: 此動作將會把目前帳號的所有跟隨者轉移至新帳號
+ followers: 此動作將會將目前帳號的所有跟隨者轉移至新帳號
only_redirect_html: 或者,您也可以僅在您的個人檔案中設定重新導向。
other_data: 其他資料並不會自動轉移
redirect: 您目前的帳號將會在個人檔案頁面新增重新導向公告,並會被排除在搜尋結果之外
@@ -1297,7 +1297,7 @@ zh-TW:
notification_mailer:
admin:
report:
- subject: "%{name} 送出了一則檢舉報告"
+ subject: "%{name} 已送出一則檢舉報告"
sign_up:
subject: "%{name} 已進行註冊"
favourite:
@@ -1327,7 +1327,7 @@ zh-TW:
status:
subject: "%{name} 剛剛嘟文"
update:
- subject: "%{name} 編輯了嘟文"
+ subject: "%{name} 已編輯嘟文"
notifications:
email_events: 電子郵件通知設定
email_events_hint: 選取您想接收通知的事件:
@@ -1379,11 +1379,11 @@ zh-TW:
unrecognized_emoji: 並非一個可識別的 emoji
relationships:
activity: 帳號動態
- confirm_follow_selected_followers: 您確定要跟隨這些選取的跟隨者嗎?
- confirm_remove_selected_followers: 您確定要移除這些選取的跟隨者嗎?
+ confirm_follow_selected_followers: 您確定要跟隨選取的跟隨者嗎?
+ confirm_remove_selected_followers: 您確定要移除選取的跟隨者嗎?
confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎?
dormant: 潛水中
- follow_selected_followers: 跟隨所選取的跟隨者
+ follow_selected_followers: 跟隨選取的跟隨者
followers: 跟隨者
following: 跟隨中
invited: 已邀請
@@ -1394,8 +1394,8 @@ zh-TW:
primary: 主要
relationship: 關係
remove_selected_domains: 從所選取網域中移除所有跟隨者
- remove_selected_followers: 移除所選取的跟隨者
- remove_selected_follows: 取消跟隨所選取使用者
+ remove_selected_followers: 移除選取的跟隨者
+ remove_selected_follows: 取消跟隨選取的使用者
status: 帳號狀態
remote_follow:
missing_resource: 無法找到資源
@@ -1409,7 +1409,7 @@ zh-TW:
tag: '帶有 #%{hashtag} 之公開嘟文'
scheduled_statuses:
over_daily_limit: 您已經超過了本日排定發嘟的限額 (%{limit})
- over_total_limit: 您已經超過了排定發嘟的限額 (%{limit})
+ over_total_limit: 您已經超過排程發嘟的限額 (%{limit})
too_soon: 嘟文不可以改變過去哦,只能預定未來 (咦)
sessions:
activity: 最近活動
@@ -1457,7 +1457,7 @@ zh-TW:
account: 帳號
account_settings: 帳號設定
aliases: 帳號別名
- appearance: 外觀設定
+ appearance: 外觀
authorized_apps: 已授權應用程式
back: 回到 Mastodon
delete: 刪除帳號
@@ -1494,9 +1494,9 @@ zh-TW:
errors:
in_reply_not_found: 您嘗試回覆的嘟文看起來不存在。
open_in_web: 以網頁開啟
- over_character_limit: 超過了 %{max} 字的限制
+ over_character_limit: 已超過 %{max} 字的限制
pin_errors:
- direct: 不能釘選只對被提及的使用者顯示的嘟文
+ direct: 無法釘選只有僅提及使用者可見之嘟文
limit: 釘選嘟文的數量已達上限
ownership: 不能釘選他人的嘟文
reblog: 不能釘選轉嘟
@@ -1533,8 +1533,8 @@ zh-TW:
keep_direct_hint: 不會刪除任何您的私訊
keep_media: 保留包含媒體內容的嘟文
keep_media_hint: 不會刪除您包含媒體內容之嘟文
- keep_pinned: 保留釘選的嘟文
- keep_pinned_hint: 不會刪除您釘選的嘟文
+ keep_pinned: 保留釘選嘟文
+ keep_pinned_hint: 不會刪除您的釘選嘟文
keep_polls: 保留投票
keep_polls_hint: 不會刪除您的投票
keep_self_bookmark: 保留您已標記為書籤之嘟文
@@ -1556,7 +1556,7 @@ zh-TW:
min_reblogs: 保留超過嘟文轉嘟門檻
min_reblogs_hint: 如果您嘟文已收到超過轉嘟門檻則不會刪除。留白表示不論轉嘟數量皆刪除該嘟文。
stream_entries:
- pinned: 釘選的嘟文
+ pinned: 釘選嘟文
reblogged: 轉嘟
sensitive_content: 敏感內容
strikes:
@@ -1581,7 +1581,7 @@ zh-TW:
enabled: 兩階段認證已啟用
enabled_success: 已成功啟用兩階段認證
generate_recovery_codes: 產生備用驗證碼
- lost_recovery_codes: 讓您可以在遺失手機時,使用備用驗證碼登入。若您遺失了備用驗證碼,可以在這裏產生一批新的,舊有的備用驗證碼將會失效。
+ lost_recovery_codes: 讓您可以在遺失手機時,使用備用驗證碼登入。若您已遺失備用驗證碼,可於此產生一批新的,舊有的備用驗證碼將會失效。
methods: 兩步驟方式
otp: 驗證應用程式
recovery_codes: 備份備用驗證碼
@@ -1616,7 +1616,7 @@ zh-TW:
spam: 垃圾訊息
violation: 該內容違反以下社群規章
explanation:
- delete_statuses: 您的某些嘟文被發現違反了一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。
+ delete_statuses: 您的某些嘟文被發現已違反一項或多項社群準則,隨後已被 %{instance} 的管理員刪除。
disable: 您無法繼續使用您的帳號,但您的個人頁面及其他資料內容保持不變。您可以要求一份您的資料備份,帳號異動設定,或是刪除帳號。
mark_statuses_as_sensitive: 您的部份嘟文已被 %{instance} 的管理員標記為敏感內容。這代表了人們必須在顯示預覽前點擊嘟文中的媒體。您可以在將來嘟文時自己將媒體標記為敏感內容。
sensitive: 您之後上傳的所有媒體檔案會被標為敏感內容,並且被隱藏起來,須點擊警告按鈕才會顯示。
From b6602f68eb0dbe07ee2e9b8fb27ee048037c414e Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 2 Mar 2023 04:04:14 -0500
Subject: [PATCH 0149/1254] Spec coverage for HomeHelper (#23907)
---
app/helpers/home_helper.rb | 12 +---
spec/helpers/home_helper_spec.rb | 112 +++++++++++++++++++++++++++++++
2 files changed, 114 insertions(+), 10 deletions(-)
diff --git a/app/helpers/home_helper.rb b/app/helpers/home_helper.rb
index f41104709e..ea21960865 100644
--- a/app/helpers/home_helper.rb
+++ b/app/helpers/home_helper.rb
@@ -41,9 +41,9 @@ module HomeHelper
def obscured_counter(count)
if count <= 0
- 0
+ '0'
elsif count == 1
- 1
+ '1'
else
'1+'
end
@@ -57,14 +57,6 @@ module HomeHelper
end
end
- def optional_link_to(condition, path, options = {}, &block)
- if condition
- link_to(path, options, &block)
- else
- content_tag(:div, &block)
- end
- end
-
def sign_up_message
if closed_registrations?
t('auth.registration_closed', instance: site_hostname)
diff --git a/spec/helpers/home_helper_spec.rb b/spec/helpers/home_helper_spec.rb
index 77db327c2d..3d2c5fe248 100644
--- a/spec/helpers/home_helper_spec.rb
+++ b/spec/helpers/home_helper_spec.rb
@@ -8,4 +8,116 @@ RSpec.describe HomeHelper, type: :helper do
expect(helper.default_props).to eq locale: I18n.locale
end
end
+
+ describe 'account_link_to' do
+ context 'with a missing account' do
+ let(:account) { nil }
+
+ it 'returns a button' do
+ result = helper.account_link_to(account)
+
+ expect(result).to match t('about.contact_missing')
+ end
+ end
+
+ context 'with a valid account' do
+ let(:account) { Fabricate(:account) }
+
+ it 'returns a link to the account' do
+ without_partial_double_verification do
+ allow(helper).to receive(:current_account).and_return(account)
+ allow(helper).to receive(:prefers_autoplay?).and_return(false)
+ result = helper.account_link_to(account)
+
+ expect(result).to match "@#{account.acct}"
+ end
+ end
+ end
+ end
+
+ describe 'obscured_counter' do
+ context 'with a value of less than zero' do
+ let(:count) { -10 }
+
+ it 'returns the correct string' do
+ expect(helper.obscured_counter(count)).to eq '0'
+ end
+ end
+
+ context 'with a value of zero' do
+ let(:count) { 0 }
+
+ it 'returns the correct string' do
+ expect(helper.obscured_counter(count)).to eq '0'
+ end
+ end
+
+ context 'with a value of one' do
+ let(:count) { 1 }
+
+ it 'returns the correct string' do
+ expect(helper.obscured_counter(count)).to eq '1'
+ end
+ end
+
+ context 'with a value of more than one' do
+ let(:count) { 10 }
+
+ it 'returns the correct string' do
+ expect(helper.obscured_counter(count)).to eq '1+'
+ end
+ end
+ end
+
+ describe 'custom_field_classes' do
+ context 'with a verified field' do
+ let(:field) { instance_double(Account::Field, verified?: true) }
+
+ it 'returns verified string' do
+ result = helper.custom_field_classes(field)
+ expect(result).to eq 'verified'
+ end
+ end
+
+ context 'with a non-verified field' do
+ let(:field) { instance_double(Account::Field, verified?: false) }
+
+ it 'returns verified string' do
+ result = helper.custom_field_classes(field)
+ expect(result).to eq 'emojify'
+ end
+ end
+ end
+
+ describe 'sign_up_messages' do
+ context 'with closed registrations' do
+ it 'returns correct sign up message' do
+ allow(helper).to receive(:closed_registrations?).and_return(true)
+ result = helper.sign_up_message
+
+ expect(result).to eq t('auth.registration_closed', instance: 'cb6e6126.ngrok.io')
+ end
+ end
+
+ context 'with open registrations' do
+ it 'returns correct sign up message' do
+ allow(helper).to receive(:closed_registrations?).and_return(false)
+ allow(helper).to receive(:open_registrations?).and_return(true)
+ result = helper.sign_up_message
+
+ expect(result).to eq t('auth.register')
+ end
+ end
+
+ context 'with approved registrations' do
+ it 'returns correct sign up message' do
+ allow(helper).to receive(:closed_registrations?).and_return(false)
+ allow(helper).to receive(:open_registrations?).and_return(false)
+ allow(helper).to receive(:approved_registrations?).and_return(true)
+ result = helper.sign_up_message
+
+ expect(result).to eq t('auth.apply_for_account')
+ end
+ end
+ end
end
From d9271126ce9f1d270b7e1af9692b4622d987a1af Mon Sep 17 00:00:00 2001
From: Stanislav Dobrovolschii
Date: Thu, 2 Mar 2023 10:05:05 +0100
Subject: [PATCH 0150/1254] Add rspecs for FollowRecommendationsScheduler
(#23890)
---
spec/fabricators/user_fabricator.rb | 3 +-
.../follow_recommendations_scheduler_spec.rb | 43 +++++++++++++++++++
2 files changed, 45 insertions(+), 1 deletion(-)
create mode 100644 spec/workers/scheduler/follow_recommendations_scheduler_spec.rb
diff --git a/spec/fabricators/user_fabricator.rb b/spec/fabricators/user_fabricator.rb
index 967347319c..9031d5cd04 100644
--- a/spec/fabricators/user_fabricator.rb
+++ b/spec/fabricators/user_fabricator.rb
@@ -5,5 +5,6 @@ Fabricator(:user) do
email { sequence(:email) { |i| "#{i}#{Faker::Internet.email}" } }
password '123456789'
confirmed_at { Time.zone.now }
- agreement true
+ current_sign_in_at { Time.zone.now }
+ agreement true
end
diff --git a/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb b/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb
new file mode 100644
index 0000000000..18d5260e42
--- /dev/null
+++ b/spec/workers/scheduler/follow_recommendations_scheduler_spec.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Scheduler::FollowRecommendationsScheduler do
+ let!(:target_accounts) do
+ Fabricate.times(3, :account) do
+ statuses(count: 6)
+ end
+ end
+ let!(:follower_accounts) do
+ Fabricate.times(5, :account) do
+ statuses(count: 6)
+ end
+ end
+
+ describe '#perform' do
+ subject(:scheduled_run) { described_class.new.perform }
+
+ context 'when there are accounts to recommend' do
+ before do
+ # Follow the target accounts by follow accounts to make them recommendable
+ follower_accounts.each do |follower_account|
+ target_accounts.each do |target_account|
+ Fabricate(:follow, account: follower_account, target_account: target_account)
+ end
+ end
+ end
+
+ it 'creates recommendations' do
+ expect { scheduled_run }.to change(FollowRecommendation, :count).from(0).to(target_accounts.size)
+ expect(redis.zrange('follow_recommendations:en', 0, -1)).to match_array(target_accounts.pluck(:id).map(&:to_s))
+ end
+ end
+
+ context 'when there are no accounts to recommend' do
+ it 'does not create follow recommendations' do
+ expect { scheduled_run }.to_not change(FollowRecommendation, :count)
+ expect(redis.zrange('follow_recommendations:en', 0, -1)).to be_empty
+ end
+ end
+ end
+end
From 6047c84468b145da8c38b2f5f0fa1723276acca6 Mon Sep 17 00:00:00 2001
From: Shlee
Date: Thu, 2 Mar 2023 10:08:22 +0000
Subject: [PATCH 0151/1254] [Dependashlee] Bump color-blend from 3.0.1 to 4.0.0
(JS) (#23823)
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 3d923bbacf..6493662444 100644
--- a/package.json
+++ b/package.json
@@ -47,7 +47,7 @@
"blurhash": "^2.0.5",
"classnames": "^2.3.2",
"cocoon-js-vanilla": "^1.3.0",
- "color-blend": "^3.0.1",
+ "color-blend": "^4.0.0",
"compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.3",
"css-loader": "^5.2.7",
diff --git a/yarn.lock b/yarn.lock
index 2fd3352cf1..d614f7ce73 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3373,10 +3373,10 @@ collection-visit@^1.0.0:
map-visit "^1.0.0"
object-visit "^1.0.0"
-color-blend@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-3.0.1.tgz#3882ed1190ca18760ffe11570d8537960171172b"
- integrity sha512-KueDvNiKHAvVeApic0SxHZLyy4x3NELfTLzMHRpRRLi+9e2kWhpeWvtuH3Sjb92mOJYEUhRjb8z7lr4OqDv17Q==
+color-blend@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-4.0.0.tgz#e9950e9fa5d6e552ff8bb107c39f7e83a0c1a3bb"
+ integrity sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw==
color-convert@^1.9.0, color-convert@^1.9.1:
version "1.9.3"
From 083e18e45b88f51e07837d21e2dd664efd0112cb Mon Sep 17 00:00:00 2001
From: Shlee
Date: Thu, 2 Mar 2023 10:41:32 +0000
Subject: [PATCH 0152/1254] [Dependashlee] Bump fuzzysort from 1.9.0 to 2.0.4
(JS) (#23822)
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 6493662444..fa9b650076 100644
--- a/package.json
+++ b/package.json
@@ -61,7 +61,7 @@
"express": "^4.18.2",
"file-loader": "^6.2.0",
"font-awesome": "^4.7.0",
- "fuzzysort": "^1.9.0",
+ "fuzzysort": "^2.0.4",
"glob": "^8.1.0",
"history": "^4.10.1",
"http-link-header": "^1.1.0",
diff --git a/yarn.lock b/yarn.lock
index d614f7ce73..04a247c49b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5263,10 +5263,10 @@ functions-have-names@^1.2.2:
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
-fuzzysort@^1.9.0:
- version "1.9.0"
- resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-1.9.0.tgz#d36d27949eae22340bb6f7ba30ea6751b92a181c"
- integrity sha512-MOxCT0qLTwLqmEwc7UtU045RKef7mc8Qz8eR4r2bLNEq9dy/c3ZKMEFp6IEst69otkQdFZ4FfgH2dmZD+ddX1g==
+fuzzysort@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-2.0.4.tgz#a21d1ce8947eaf2797dc3b7c28c36db9d1165f84"
+ integrity sha512-Api1mJL+Ad7W7vnDZnWq5pGaXJjyencT+iKGia2PlHUcSsSzWwIQ3S1isiMpwpavjYtGd2FzhUIhnnhOULZgDw==
gauge@^5.0.0:
version "5.0.0"
From 59f42c262b4faab3df7ec5fe2742f7707d58c285 Mon Sep 17 00:00:00 2001
From: Shlee
Date: Thu, 2 Mar 2023 10:45:14 +0000
Subject: [PATCH 0153/1254] [Dependashlee] Bump @github/webauthn-json from
0.5.7 to 2.1.1 (js) (#23819)
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index fa9b650076..1ab297d041 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"@babel/preset-react": "^7.18.6",
"@babel/runtime": "^7.21.0",
"@gamestdio/websocket": "^0.3.2",
- "@github/webauthn-json": "^0.5.7",
+ "@github/webauthn-json": "^2.1.1",
"@rails/ujs": "^6.1.7",
"abortcontroller-polyfill": "^1.7.5",
"array-includes": "^3.1.6",
diff --git a/yarn.lock b/yarn.lock
index 04a247c49b..a856cf91dd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1245,10 +1245,10 @@
resolved "https://registry.yarnpkg.com/@gamestdio/websocket/-/websocket-0.3.2.tgz#321ba0976ee30fd14e51dbf8faa85ce7b325f76a"
integrity sha512-J3n5SKim+ZoLbe44hRGI/VYAwSMCeIJuBy+FfP6EZaujEpNchPRFcIsVQLWAwpU1bP2Ji63rC+rEUOd1vjUB6Q==
-"@github/webauthn-json@^0.5.7":
- version "0.5.7"
- resolved "https://registry.yarnpkg.com/@github/webauthn-json/-/webauthn-json-0.5.7.tgz#143bc67f6e0f75f8d188e565741507bb08c31214"
- integrity sha512-SUYsttDxFSvWvvJssJpwzjmRCqYfdfqC9VCmAHQYfdKCVelyJteCHo9/lK1CB72mx/jrl6cFNY08aua4J2jIyg==
+"@github/webauthn-json@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@github/webauthn-json/-/webauthn-json-2.1.1.tgz#648e63fc28050917d2882cc2b27817a88cb420fc"
+ integrity sha512-XrftRn4z75SnaJOmZQbt7Mk+IIjqVHw+glDGOxuHwXkZBZh/MBoRS7MHjSZMDaLhT4RjN2VqiEU7EOYleuJWSQ==
"@humanwhocodes/config-array@^0.11.8":
version "0.11.8"
From 35dff48edf19a344cbf192b510033ba6785c367b Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 2 Mar 2023 09:30:40 -0500
Subject: [PATCH 0154/1254] Add spec coverage for Admin::Trends::StatusesHelper
(#23898)
---
.../admin/trends/statuses_helper_spec.rb | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 spec/helpers/admin/trends/statuses_helper_spec.rb
diff --git a/spec/helpers/admin/trends/statuses_helper_spec.rb b/spec/helpers/admin/trends/statuses_helper_spec.rb
new file mode 100644
index 0000000000..92caae6909
--- /dev/null
+++ b/spec/helpers/admin/trends/statuses_helper_spec.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::Trends::StatusesHelper do
+ describe '.one_line_preview' do
+ before do
+ allow(helper).to receive(:current_user).and_return(Fabricate.build(:user))
+ end
+
+ context 'with a local status' do
+ let(:status) { Fabricate.build(:status, text: 'Test local status') }
+
+ it 'renders a correct preview text' do
+ result = helper.one_line_preview(status)
+
+ expect(result).to eq 'Test local status'
+ end
+ end
+
+ context 'with a remote status' do
+ let(:status) { Fabricate.build(:status, uri: 'https://sfd.sdf', text: '
Test remote status
text
') }
+
+ it 'renders a correct preview text' do
+ result = helper.one_line_preview(status)
+
+ expect(result).to eq 'Test remote status'
+ end
+ end
+
+ context 'with a status that has empty text' do
+ let(:status) { Fabricate.build(:status, text: '') }
+
+ it 'renders a correct preview text' do
+ result = helper.one_line_preview(status)
+
+ expect(result).to eq ''
+ end
+ end
+
+ context 'with a status that has emoji' do
+ before { Fabricate(:custom_emoji, shortcode: 'florpy') }
+
+ let(:status) { Fabricate(:status, text: 'hello there :florpy:') }
+
+ it 'renders a correct preview text' do
+ result = helper.one_line_preview(status)
+
+ expect(result).to match 'hello there'
+ expect(result).to match '
Date: Thu, 2 Mar 2023 09:55:37 -0500
Subject: [PATCH 0155/1254] Update rspec-rails to version 6.0.1 (#23908)
---
Gemfile | 2 +-
Gemfile.lock | 34 ++++++++++++++--------------
spec/services/search_service_spec.rb | 2 +-
3 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/Gemfile b/Gemfile
index 17b0b287de..354f6bd6cf 100644
--- a/Gemfile
+++ b/Gemfile
@@ -106,7 +106,7 @@ group :development, :test do
gem 'i18n-tasks', '~> 1.0', require: false
gem 'pry-byebug', '~> 3.10'
gem 'pry-rails', '~> 0.3'
- gem 'rspec-rails', '~> 5.1'
+ gem 'rspec-rails', '~> 6.0'
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index 965832094e..78774ac9cc 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -193,7 +193,7 @@ GEM
cocoon (1.2.15)
coderay (1.1.3)
color_diff (0.1)
- concurrent-ruby (1.2.0)
+ concurrent-ruby (1.2.2)
connection_pool (2.3.0)
cose (1.3.0)
cbor (~> 0.5.9)
@@ -585,26 +585,26 @@ GEM
chunky_png (~> 1.0)
rqrcode_core (~> 1.0)
rqrcode_core (1.2.0)
- rspec-core (3.11.0)
- rspec-support (~> 3.11.0)
- rspec-expectations (3.11.0)
+ rspec-core (3.12.1)
+ rspec-support (~> 3.12.0)
+ rspec-expectations (3.12.2)
diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.11.0)
- rspec-mocks (3.11.1)
+ rspec-support (~> 3.12.0)
+ rspec-mocks (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
- rspec-support (~> 3.11.0)
- rspec-rails (5.1.2)
- actionpack (>= 5.2)
- activesupport (>= 5.2)
- railties (>= 5.2)
- rspec-core (~> 3.10)
- rspec-expectations (~> 3.10)
- rspec-mocks (~> 3.10)
- rspec-support (~> 3.10)
+ rspec-support (~> 3.12.0)
+ rspec-rails (6.0.1)
+ actionpack (>= 6.1)
+ activesupport (>= 6.1)
+ railties (>= 6.1)
+ rspec-core (~> 3.11)
+ rspec-expectations (~> 3.11)
+ rspec-mocks (~> 3.11)
+ rspec-support (~> 3.11)
rspec-sidekiq (3.1.0)
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
- rspec-support (3.11.1)
+ rspec-support (3.12.0)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.45.1)
@@ -869,7 +869,7 @@ DEPENDENCIES
redis-namespace (~> 1.10)
rexml (~> 3.2)
rqrcode (~> 2.1)
- rspec-rails (~> 5.1)
+ rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
rspec_junit_formatter (~> 0.6)
rubocop
diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb
index 7ec334a56c..1ad0efe0af 100644
--- a/spec/services/search_service_spec.rb
+++ b/spec/services/search_service_spec.rb
@@ -77,7 +77,7 @@ describe SearchService, type: :service do
it 'includes the tag in the results' do
query = '#tag'
tag = Tag.new
- allow(Tag).to receive(:search_for).with('tag', 10, 0, exclude_unreviewed: nil).and_return([tag])
+ allow(Tag).to receive(:search_for).with('tag', 10, 0, { exclude_unreviewed: nil }).and_return([tag])
results = subject.call(query, nil, 10)
expect(Tag).to have_received(:search_for).with('tag', 10, 0, exclude_unreviewed: nil)
From af578e8ce0aabdbe9c0cd3d72d6fa2cc30b7fc66 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 2 Mar 2023 10:21:04 -0500
Subject: [PATCH 0156/1254] Fix deprecation warning about merging conditions
(#23618)
---
app/models/account_filter.rb | 24 +++++++++++++++++++++---
spec/models/account_filter_spec.rb | 26 ++++++++++++++++++++++++++
2 files changed, 47 insertions(+), 3 deletions(-)
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index d27bb46fcf..1666ea883a 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -17,13 +17,13 @@ class AccountFilter
attr_reader :params
def initialize(params)
- @params = params
+ @params = params.to_h.symbolize_keys
end
def results
scope = Account.includes(:account_stat, user: [:ips, :invite_request]).without_instance_actor.reorder(nil)
- params.each do |key, value|
+ relevant_params.each do |key, value|
next if key.to_s == 'page'
scope.merge!(scope_for(key, value)) if value.present?
@@ -34,6 +34,16 @@ class AccountFilter
private
+ def relevant_params
+ params.tap do |args|
+ args.delete(:origin) if origin_is_remote_and_domain_present?
+ end
+ end
+
+ def origin_is_remote_and_domain_present?
+ params[:origin] == 'remote' && params[:by_domain].present?
+ end
+
def scope_for(key, value)
case key.to_s
when 'origin'
@@ -94,7 +104,15 @@ class AccountFilter
def order_scope(value)
case value.to_s
when 'active'
- accounts_with_users.left_joins(:account_stat).order(Arel.sql('coalesce(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) desc, accounts.id desc'))
+ accounts_with_users
+ .left_joins(:account_stat)
+ .order(
+ Arel.sql(
+ <<~SQL.squish
+ COALESCE(users.current_sign_in_at, account_stats.last_status_at, to_timestamp(0)) DESC, accounts.id DESC
+ SQL
+ )
+ )
when 'recent'
Account.recent
else
diff --git a/spec/models/account_filter_spec.rb b/spec/models/account_filter_spec.rb
index 853d20a0cb..3032260fef 100644
--- a/spec/models/account_filter_spec.rb
+++ b/spec/models/account_filter_spec.rb
@@ -18,4 +18,30 @@ describe AccountFilter do
expect { filter.results }.to raise_error(/wrong/)
end
end
+
+ describe 'with origin and by_domain interacting' do
+ let!(:local_account) { Fabricate(:account, domain: nil) }
+ let!(:remote_account_one) { Fabricate(:account, domain: 'example.org') }
+ let(:remote_account_two) { Fabricate(:account, domain: 'other.domain') }
+
+ it 'works with domain first and origin remote' do
+ filter = described_class.new(by_domain: 'example.org', origin: 'remote')
+ expect(filter.results).to match_array [remote_account_one]
+ end
+
+ it 'works with domain last and origin remote' do
+ filter = described_class.new(origin: 'remote', by_domain: 'example.org')
+ expect(filter.results).to match_array [remote_account_one]
+ end
+
+ it 'works with domain first and origin local' do
+ filter = described_class.new(by_domain: 'example.org', origin: 'local')
+ expect(filter.results).to match_array [local_account]
+ end
+
+ it 'works with domain last and origin local' do
+ filter = described_class.new(origin: 'local', by_domain: 'example.org')
+ expect(filter.results).to match_array [remote_account_one]
+ end
+ end
end
From 3a6451c867595fd58998ee1706589b15a69d993b Mon Sep 17 00:00:00 2001
From: Claire
Date: Fri, 3 Mar 2023 20:19:29 +0100
Subject: [PATCH 0157/1254] Add support for incoming rich text (#23913)
---
app/javascript/styles/application.scss | 1 +
app/javascript/styles/mastodon/rich_text.scss | 64 +++++++++++++++++++
lib/sanitize_ext/sanitize_config.rb | 19 ++----
spec/lib/sanitize_config_spec.rb | 28 ++++----
4 files changed, 85 insertions(+), 27 deletions(-)
create mode 100644 app/javascript/styles/mastodon/rich_text.scss
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index 81a040108e..1b2969c234 100644
--- a/app/javascript/styles/application.scss
+++ b/app/javascript/styles/application.scss
@@ -23,3 +23,4 @@
@import 'mastodon/dashboard';
@import 'mastodon/rtl';
@import 'mastodon/accessibility';
+@import 'mastodon/rich_text';
diff --git a/app/javascript/styles/mastodon/rich_text.scss b/app/javascript/styles/mastodon/rich_text.scss
new file mode 100644
index 0000000000..35901984b4
--- /dev/null
+++ b/app/javascript/styles/mastodon/rich_text.scss
@@ -0,0 +1,64 @@
+.status__content__text,
+.e-content,
+.reply-indicator__content {
+ pre,
+ blockquote {
+ margin-bottom: 20px;
+ white-space: pre-wrap;
+ unicode-bidi: plaintext;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ blockquote {
+ padding-left: 10px;
+ border-left: 3px solid $darker-text-color;
+ color: $darker-text-color;
+ white-space: normal;
+
+ p:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ & > ul,
+ & > ol {
+ margin-bottom: 20px;
+ }
+
+ b,
+ strong {
+ font-weight: 700;
+ }
+
+ em,
+ i {
+ font-style: italic;
+ }
+
+ ul,
+ ol {
+ margin-left: 2em;
+
+ p {
+ margin: 0;
+ }
+ }
+
+ ul {
+ list-style-type: disc;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+}
+
+.reply-indicator__content {
+ blockquote {
+ border-left-color: $inverted-text-color;
+ color: $inverted-text-color;
+ }
+}
diff --git a/lib/sanitize_ext/sanitize_config.rb b/lib/sanitize_ext/sanitize_config.rb
index dc39e9c90f..9cc500c36e 100644
--- a/lib/sanitize_ext/sanitize_config.rb
+++ b/lib/sanitize_ext/sanitize_config.rb
@@ -51,29 +51,22 @@ class Sanitize
end
UNSUPPORTED_ELEMENTS_TRANSFORMER = lambda do |env|
- return unless %w(h1 h2 h3 h4 h5 h6 blockquote pre ul ol li).include?(env[:node_name])
+ return unless %w(h1 h2 h3 h4 h5 h6).include?(env[:node_name])
current_node = env[:node]
- case env[:node_name]
- when 'li'
- current_node.traverse do |node|
- next unless %w(p ul ol li).include?(node.name)
-
- node.add_next_sibling(' ') if node.next_sibling
- node.replace(node.children) unless node.text?
- end
- else
- current_node.name = 'p'
- end
+ current_node.name = 'strong'
+ current_node.wrap('')
end
MASTODON_STRICT ||= freeze_config(
- elements: %w(p br span a),
+ elements: %w(p br span a del pre blockquote code b strong u i em ul ol li),
attributes: {
'a' => %w(href rel class),
'span' => %w(class),
+ 'ol' => %w(start reversed),
+ 'li' => %w(value),
},
add_attributes: {
diff --git a/spec/lib/sanitize_config_spec.rb b/spec/lib/sanitize_config_spec.rb
index c9543ceb0c..a01122bed0 100644
--- a/spec/lib/sanitize_config_spec.rb
+++ b/spec/lib/sanitize_config_spec.rb
@@ -6,24 +6,16 @@ describe Sanitize::Config do
describe '::MASTODON_STRICT' do
subject { Sanitize::Config::MASTODON_STRICT }
- it 'converts h1 to p' do
- expect(Sanitize.fragment('
Foo
', subject)).to eq '
Foo
'
+ it 'converts h1 to p strong' do
+ expect(Sanitize.fragment('
Foo
', subject)).to eq '
Foo
'
end
- it 'converts ul to p' do
- expect(Sanitize.fragment('
Check out:
Foo
Bar
', subject)).to eq '
Check out:
Foo Bar
'
+ it 'keeps ul' do
+ expect(Sanitize.fragment('
Check out:
Foo
Bar
', subject)).to eq '
Check out:
Foo
Bar
'
end
- it 'converts p inside ul' do
- expect(Sanitize.fragment('
Foo
Bar
Baz
', subject)).to eq '
Foo Bar Baz
'
- end
-
- it 'converts ul inside ul' do
- expect(Sanitize.fragment('
Foo
Bar
Baz
', subject)).to eq '
Foo Bar Baz
'
- end
-
- it 'keep links in lists' do
- expect(Sanitize.fragment('
diff --git a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx
index 50b36b478b..82ba6e692a 100644
--- a/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/zoomable_image.jsx
@@ -96,6 +96,7 @@ class ZoomableImage extends React.PureComponent {
static propTypes = {
alt: PropTypes.string,
+ lang: PropTypes.string,
src: PropTypes.string.isRequired,
width: PropTypes.number,
height: PropTypes.number,
@@ -106,6 +107,7 @@ class ZoomableImage extends React.PureComponent {
static defaultProps = {
alt: '',
+ lang: '',
width: null,
height: null,
};
@@ -403,7 +405,7 @@ class ZoomableImage extends React.PureComponent {
};
render () {
- const { alt, src, width, height, intl } = this.props;
+ const { alt, lang, src, width, height, intl } = this.props;
const { scale, lockTranslate } = this.state;
const overflow = scale === MIN_SCALE ? 'hidden' : 'scroll';
const zoomButtonShouldHide = this.state.navigationHidden || this.props.zoomButtonHidden || this.state.zoomMatrix.rate <= MIN_SCALE ? 'media-modal__zoom-button--hidden' : '';
@@ -431,6 +433,7 @@ class ZoomableImage extends React.PureComponent {
ref={this.setImageRef}
alt={alt}
title={alt}
+ lang={lang}
src={src}
width={width}
height={height}
diff --git a/app/javascript/flavours/glitch/features/video/index.jsx b/app/javascript/flavours/glitch/features/video/index.jsx
index cb923bcf76..9ab56b439e 100644
--- a/app/javascript/flavours/glitch/features/video/index.jsx
+++ b/app/javascript/flavours/glitch/features/video/index.jsx
@@ -101,6 +101,7 @@ class Video extends React.PureComponent {
frameRate: PropTypes.string,
src: PropTypes.string.isRequired,
alt: PropTypes.string,
+ lang: PropTypes.string,
width: PropTypes.number,
height: PropTypes.number,
sensitive: PropTypes.bool,
@@ -538,7 +539,7 @@ class Video extends React.PureComponent {
}
render () {
- const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
+ const { preview, src, inline, onOpenVideo, onCloseVideo, intl, alt, lang, letterbox, fullwidth, detailed, sensitive, editable, blurhash, autoFocus } = this.props;
const { containerWidth, currentTime, duration, volume, buffer, dragging, paused, fullscreen, hovered, muted, revealed } = this.state;
const progress = Math.min((currentTime / duration) * 100, 100);
const playerStyle = {};
@@ -603,6 +604,7 @@ class Video extends React.PureComponent {
tabIndex='0'
aria-label={alt}
title={alt}
+ lang={lang}
width={width}
height={height}
volume={volume}
From bb4e211c86270de6de8a78da96295208ee77dce1 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 5 Mar 2023 20:38:18 +0100
Subject: [PATCH 0198/1254] New Crowdin updates (#2118)
* New translations en.json (Spanish)
[ci skip]
* New translations en.yml (Spanish)
[ci skip]
---
.../flavours/glitch/locales/es.json | 41 ++++++++++---------
config/locales-glitch/es.yml | 19 +++++----
2 files changed, 33 insertions(+), 27 deletions(-)
diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json
index 7231fe1351..b85c05c4b3 100644
--- a/app/javascript/flavours/glitch/locales/es.json
+++ b/app/javascript/flavours/glitch/locales/es.json
@@ -8,12 +8,13 @@
"advanced_options.icon_title": "Opciones avanzadas",
"advanced_options.local-only.long": "No publicar a otras instancias",
"advanced_options.local-only.short": "Local",
- "advanced_options.local-only.tooltip": "Este toot es local",
+ "advanced_options.local-only.tooltip": "Esta publicación es local",
"advanced_options.threaded_mode.long": "Al publicar abre automáticamente una respuesta",
"advanced_options.threaded_mode.short": "Modo hilo",
"advanced_options.threaded_mode.tooltip": "Modo hilo habilitado",
+ "boost_modal.missing_description": "Esta publicación contiene medios sin descripción",
"column.favourited_by": "Marcado como favorito por",
- "column.reblogged_by": "Retooteado por",
+ "column.reblogged_by": "Impulsado por",
"column_header.profile": "Perfil",
"column_subheading.lists": "Listas",
"column_subheading.navigation": "Navegación",
@@ -50,26 +51,26 @@
"settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido",
"settings.auto_collapse": "Colapsar automáticamente",
"settings.auto_collapse_all": "Todo",
- "settings.auto_collapse_lengthy": "Toots largos",
- "settings.auto_collapse_media": "Toots con medios",
+ "settings.auto_collapse_lengthy": "Publicaciones largas",
+ "settings.auto_collapse_media": "Publicaciones multimedia",
"settings.auto_collapse_notifications": "Notificaciones",
- "settings.auto_collapse_reblogs": "Retoots",
+ "settings.auto_collapse_reblogs": "Impulsos",
"settings.auto_collapse_replies": "Respuestas",
"settings.close": "Cerrar",
- "settings.collapsed_statuses": "Toots colapsados",
+ "settings.collapsed_statuses": "Publicaciones colapsadas",
"settings.compose_box_opts": "Cuadro de redacción",
- "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir un mensaje estabas escribiendo",
- "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de retootear publicaciones con medios sin descripción",
- "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de publicar toots con medios sin descripción",
+ "settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmación antes de sobreescribir el mensaje siendo redactado",
+ "settings.confirm_boost_missing_media_description": "Mostrar diálogo de confirmación antes de impulsar publicaciones con medios sin descripciones",
+ "settings.confirm_missing_media_description": "Mostrar diálogo de confirmación antes de enviar publicaciones con medios sin descripciones",
"settings.content_warnings": "Advertencias de contenido",
"settings.content_warnings.regexp": "Regexp (expresión regular)",
"settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:",
- "settings.enable_collapsed": "Habilitar toots colapsados",
- "settings.enable_content_warnings_auto_unfold": "Descolapsar automáticamente advertencias de contenido",
+ "settings.enable_collapsed": "Habilitar publicaciones colapsadas",
+ "settings.enable_content_warnings_auto_unfold": "Desplegar automáticamente advertencias de contenido",
"settings.hicolor_privacy_icons": "Íconos de privacidad más visibles",
"settings.image_backgrounds": "Fondos de imágenes",
- "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados",
- "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados",
+ "settings.image_backgrounds_media": "Vista previa de medios de publicaciones colapsadas",
+ "settings.image_backgrounds_users": "Darle fondo de imagen a publicaciones colapsadas",
"settings.inline_preview_cards": "Vista previa para enlaces externos",
"settings.layout": "Diseño",
"settings.layout_opts": "Opciones de diseño",
@@ -91,21 +92,21 @@
"settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)",
"settings.rewrite_mentions_no": "No reescribir menciones",
"settings.rewrite_mentions_username": "Reescribir con nombre de usuarix",
- "settings.show_action_bar": "Mostrar botones de acción en toots colapsados",
- "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear toots",
+ "settings.show_action_bar": "Mostrar botones de acción en publicaciones colapsadas",
+ "settings.show_content_type_choice": "Mostrar selección de tipo de contenido al crear publicaciones",
"settings.show_reply_counter": "Mostrar un conteo estimado de respuestas",
"settings.side_arm": "Botón secundario:",
"settings.side_arm.none": "Ninguno",
- "settings.side_arm_reply_mode": "Al responder a un toot, el botón de toot secundario debe:",
- "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad del toot al que estás respondiendo",
+ "settings.side_arm_reply_mode": "Al responder a una publicación, el botón de publicación secundario debe:",
+ "settings.side_arm_reply_mode.copy": "Copiar opción de privacidad de la publicación a la que estás respondiendo",
"settings.side_arm_reply_mode.keep": "Conservar opción de privacidad",
- "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma del toot al que estás respondiendo",
+ "settings.side_arm_reply_mode.restrict": "Restringir la opción de privacidad a la misma de la publicación a la que estás respondiendo",
"settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (Sólo en móvil)",
"settings.tag_misleading_links": "Marcar enlaces engañosos",
"settings.tag_misleading_links.hint": "Añadir una indicación visual indicando el destino de los enlace que no los mencionen explícitamente",
"settings.wide_view": "Vista amplia (solo modo de escritorio)",
"status.collapse": "Colapsar",
- "status.in_reply_to": "Este toot es una respuesta",
- "status.is_poll": "Este toot es una encuesta",
+ "status.in_reply_to": "Esta publicación es una respuesta",
+ "status.is_poll": "Esta publicación es una encuesta",
"status.uncollapse": "Descolapsar"
}
diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml
index c03cea6c6f..1cc1aca610 100644
--- a/config/locales-glitch/es.yml
+++ b/config/locales-glitch/es.yml
@@ -2,27 +2,32 @@
es:
admin:
custom_emojis:
- batch_copy_error: Se produjo un error cuando se copian algunos emojis seleccionados %{message}
- batch_error: Ocurrió un error %{message}
+ batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}'
+ batch_error: 'Ocurrió un error %{message}'
settings:
+ captcha_enabled:
+ title: Requerir que usuarixs nuevxs resuelvan un CAPTCHA para confirmar su cuenta
hide_followers_count:
desc_html: No mostrar el conteo de seguidorxs en perfiles de usuarix
title: Ocultar conteo de seguidorxs
outgoing_spoilers:
desc_html: Cuando los toots federen, agrega esta etiqueta de contenido a los toots que no tengan. Es útil si tu servidor se especializa en contenido que otros servidores desearían tener con una advertencia de contenido. Los medios también se marcarán como sensibles.
- title: Advertencia de contenido para los toots salientes
+ title: Advertencia de contenido para publicaciones salientes
show_reblogs_in_public_timelines:
- desc_html: Mostrar retoots públicos en las línea de tiempo local y pública.
- title: Mostrar retoots en líneas de tiempo públicas
+ desc_html: Mostrar impulsos públicos en las líneas de tiempo local y pública.
+ title: Mostrar impulsos en líneas de tiempo públicas
show_replies_in_public_timelines:
- desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las línea de tiempo local y pública.
+ desc_html: Además de auto-respuestas públicas (hilos), mostrar respuestas públicas en las líneas de tiempo local y pública.
title: Mostrar respuestas en líneas de tiempo públicas
trending_status_cw:
- title: Permitir que toots con advertencias de contenido sean tendencia
+ title: Permitir que publicaciones con advertencias de contenido sean tendencia
appearance:
localization:
glitch_guide_link: https://crowdin.com/project/glitch-soc
glitch_guide_link_text: Al igual que para glitch-soc!
+ auth:
+ captcha_confirmation:
+ title: Verificación de usuarix
generic:
use_this: Usar
settings:
From 03ac84b0f4857f36a14e0b8f3196c35b00fb3b16 Mon Sep 17 00:00:00 2001
From: Claire
Date: Fri, 3 Mar 2023 20:25:36 +0100
Subject: [PATCH 0199/1254] =?UTF-8?q?[Glitch]=20Fix=20duplicate=20?=
=?UTF-8?q?=E2=80=9CPublish=E2=80=9D=20button=20on=20mobile?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Port b55fc883b6181fb8080fbafd53bc7a9f1896b295 to glitch-soc
Signed-off-by: Claire
---
.../flavours/glitch/features/ui/components/header.jsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/javascript/flavours/glitch/features/ui/components/header.jsx b/app/javascript/flavours/glitch/features/ui/components/header.jsx
index d9ad949611..5aa045fee9 100644
--- a/app/javascript/flavours/glitch/features/ui/components/header.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/header.jsx
@@ -23,8 +23,8 @@ const mapDispatchToProps = (dispatch) => ({
},
});
-export default @connect(null, mapDispatchToProps)
-@withRouter
+export default @withRouter
+@connect(null, mapDispatchToProps)
class Header extends React.PureComponent {
static contextTypes = {
From 9a1bd1c3e9990056e847d16b407818df4adfdf24 Mon Sep 17 00:00:00 2001
From: Terry Garcia <10190993+TerryGarcia@users.noreply.github.com>
Date: Fri, 3 Mar 2023 13:37:49 -0600
Subject: [PATCH 0200/1254] [Glitch] Switched bookmark and favourites around
Port a1347f456e47e085ef1031b607cabd0683c496c2 to glitch-soc
Signed-off-by: Claire
---
.../flavours/glitch/features/ui/components/navigation_panel.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
index 3b46c6eec0..5a296435f6 100644
--- a/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
+++ b/app/javascript/flavours/glitch/features/ui/components/navigation_panel.jsx
@@ -78,8 +78,8 @@ class NavigationPanel extends React.Component {
{signedIn && (
-
+
From 1317553f3a91b9372220fec8c40b537edfca2446 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Fri, 3 Mar 2023 21:06:31 +0100
Subject: [PATCH 0201/1254] [Glitch] Only offer translation for supported
languages
Port 5a8c651e8f0252c7135042e79396f782361302d9 to glitch-soc
Signed-off-by: Claire
---
app/javascript/flavours/glitch/components/status_content.jsx | 4 ++--
app/javascript/flavours/glitch/initial_state.js | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx
index 790a5c6591..f217320659 100644
--- a/app/javascript/flavours/glitch/components/status_content.jsx
+++ b/app/javascript/flavours/glitch/components/status_content.jsx
@@ -5,7 +5,7 @@ import { FormattedMessage, injectIntl } from 'react-intl';
import Permalink from './permalink';
import classnames from 'classnames';
import Icon from 'flavours/glitch/components/icon';
-import { autoPlayGif, languages as preloadedLanguages, translationEnabled } from 'flavours/glitch/initial_state';
+import { autoPlayGif, languages as preloadedLanguages } from 'flavours/glitch/initial_state';
import { decode as decodeIDNA } from 'flavours/glitch/utils/idna';
const textMatchesTarget = (text, origin, host) => {
@@ -315,7 +315,7 @@ class StatusContent extends React.PureComponent {
} = this.props;
const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden;
- const renderTranslate = translationEnabled && this.context.identity.signedIn && this.props.onTranslate && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && status.get('language') !== null && intl.locale !== status.get('language');
+ const renderTranslate = this.props.onTranslate && status.get('translatable');
const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') };
const spoilerContent = { __html: status.get('spoilerHtml') };
diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js
index c4b249db81..03be4ff6cf 100644
--- a/app/javascript/flavours/glitch/initial_state.js
+++ b/app/javascript/flavours/glitch/initial_state.js
@@ -140,7 +140,6 @@ export const unfollowModal = getMeta('unfollow_modal');
export const useBlurhash = getMeta('use_blurhash');
export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
-export const translationEnabled = getMeta('translation_enabled');
export const languages = initialState?.languages;
export const statusPageUrl = getMeta('status_page_url');
From 7f3b0dedebfb1e200b23f0e3e1151e1050424a34 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 5 Mar 2023 21:25:48 +0100
Subject: [PATCH 0202/1254] Refactor glitch-soc rich text SCSS
---
.../styles/components/compose_form.scss | 76 +-------------
.../glitch/styles/components/status.scss | 86 +---------------
.../flavours/glitch/styles/index.scss | 1 +
.../flavours/glitch/styles/rich_text.scss | 99 +++++++++++++++++++
4 files changed, 102 insertions(+), 160 deletions(-)
create mode 100644 app/javascript/flavours/glitch/styles/rich_text.scss
diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss
index aa2cc664ee..1c2e0aeb4d 100644
--- a/app/javascript/flavours/glitch/styles/components/compose_form.scss
+++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss
@@ -164,8 +164,7 @@
white-space: pre-wrap;
p,
- pre,
- blockquote {
+ pre {
margin-bottom: 20px;
white-space: pre-wrap;
@@ -174,79 +173,6 @@
}
}
- h1,
- h2,
- h3,
- h4,
- h5 {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- h1,
- h2 {
- font-weight: 700;
- font-size: 18px;
- }
-
- h2 {
- font-size: 16px;
- }
-
- h3,
- h4,
- h5 {
- font-weight: 500;
- }
-
- blockquote {
- padding-left: 10px;
- border-left: 3px solid $inverted-text-color;
- color: $inverted-text-color;
- white-space: normal;
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- b,
- strong {
- font-weight: 700;
- }
-
- em,
- i {
- font-style: italic;
- }
-
- sub {
- font-size: smaller;
- vertical-align: sub;
- }
-
- sup {
- font-size: smaller;
- vertical-align: super;
- }
-
- ul,
- ol {
- margin-left: 1em;
-
- p {
- margin: 0;
- }
- }
-
- ul {
- list-style-type: disc;
- }
-
- ol {
- list-style-type: decimal;
- }
-
a {
color: $lighter-text-color;
text-decoration: none;
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index 7f94b25e9f..1a7dfe9aed 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -68,8 +68,7 @@
}
p,
- pre,
- blockquote {
+ pre {
margin-bottom: 20px;
white-space: pre-wrap;
unicode-bidi: plaintext;
@@ -79,89 +78,6 @@
}
}
- .status__content__text,
- .e-content {
- overflow: hidden;
-
- & > ul,
- & > ol {
- margin-bottom: 20px;
- }
-
- h1,
- h2,
- h3,
- h4,
- h5 {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- h1,
- h2 {
- font-weight: 700;
- font-size: 1.2em;
- }
-
- h2 {
- font-size: 1.1em;
- }
-
- h3,
- h4,
- h5 {
- font-weight: 500;
- }
-
- blockquote {
- padding-left: 10px;
- border-left: 3px solid $darker-text-color;
- color: $darker-text-color;
- white-space: normal;
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- b,
- strong {
- font-weight: 700;
- }
-
- em,
- i {
- font-style: italic;
- }
-
- sub {
- font-size: smaller;
- vertical-align: sub;
- }
-
- sup {
- font-size: smaller;
- vertical-align: super;
- }
-
- ul,
- ol {
- margin-left: 2em;
-
- p {
- margin: 0;
- }
- }
-
- ul {
- list-style-type: disc;
- }
-
- ol {
- list-style-type: decimal;
- }
- }
-
a {
color: $secondary-text-color;
text-decoration: none;
diff --git a/app/javascript/flavours/glitch/styles/index.scss b/app/javascript/flavours/glitch/styles/index.scss
index fbb02c7884..1cb913c8b8 100644
--- a/app/javascript/flavours/glitch/styles/index.scss
+++ b/app/javascript/flavours/glitch/styles/index.scss
@@ -21,3 +21,4 @@
@import 'accessibility';
@import 'rtl';
@import 'dashboard';
+@import 'rich_text';
diff --git a/app/javascript/flavours/glitch/styles/rich_text.scss b/app/javascript/flavours/glitch/styles/rich_text.scss
new file mode 100644
index 0000000000..e608183534
--- /dev/null
+++ b/app/javascript/flavours/glitch/styles/rich_text.scss
@@ -0,0 +1,99 @@
+.status__content__text,
+.e-content,
+.reply-indicator__content {
+ pre,
+ blockquote {
+ margin-bottom: 20px;
+ white-space: pre-wrap;
+ unicode-bidi: plaintext;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ blockquote {
+ padding-left: 10px;
+ border-left: 3px solid $darker-text-color;
+ color: $darker-text-color;
+ white-space: normal;
+
+ p:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ & > ul,
+ & > ol {
+ margin-bottom: 20px;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5 {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ }
+
+ h1,
+ h2 {
+ font-weight: 700;
+ font-size: 1.2em;
+ }
+
+ h2 {
+ font-size: 1.1em;
+ }
+
+ h3,
+ h4,
+ h5 {
+ font-weight: 500;
+ }
+
+ b,
+ strong {
+ font-weight: 700;
+ }
+
+ em,
+ i {
+ font-style: italic;
+ }
+
+ sub {
+ font-size: smaller;
+ vertical-align: sub;
+ }
+
+ sup {
+ font-size: smaller;
+ vertical-align: super;
+ }
+
+ ul,
+ ol {
+ margin-left: 2em;
+
+ p {
+ margin: 0;
+ }
+ }
+
+ ul {
+ list-style-type: disc;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+}
+
+.reply-indicator__content {
+ blockquote {
+ border-left-color: $inverted-text-color;
+ color: $inverted-text-color;
+ }
+}
From 7f96391eaef601ea34672551bb06915acec7e492 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 5 Mar 2023 21:27:27 +0100
Subject: [PATCH 0203/1254] Normalize translations
---
config/locales-glitch/es.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/config/locales-glitch/es.yml b/config/locales-glitch/es.yml
index 1cc1aca610..05a9313723 100644
--- a/config/locales-glitch/es.yml
+++ b/config/locales-glitch/es.yml
@@ -2,8 +2,8 @@
es:
admin:
custom_emojis:
- batch_copy_error: 'Se produjo un error cuando se copian algunos emojis seleccionados %{message}'
- batch_error: 'Ocurrió un error %{message}'
+ batch_copy_error: Se produjo un error cuando se copian algunos emojis seleccionados %{message}
+ batch_error: Ocurrió un error %{message}
settings:
captcha_enabled:
title: Requerir que usuarixs nuevxs resuelvan un CAPTCHA para confirmar su cuenta
From c4cf92094ec3cc065df2b05c76352dcb72020777 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Mon, 6 Mar 2023 15:37:19 +0100
Subject: [PATCH 0204/1254] Do not strip tags from
`Setting.site_short_description` (#23975)
---
app/views/application/_sidebar.html.haml | 2 +-
app/views/shared/_og.html.haml | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml
index 6d18668b08..9d0efa7e10 100644
--- a/app/views/application/_sidebar.html.haml
+++ b/app/views/application/_sidebar.html.haml
@@ -3,7 +3,7 @@
= image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title
.hero-widget__text
- %p= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html')
+ %p= @instance_presenter.description.presence || t('about.about_mastodon_html')
- if Setting.trends && !(user_signed_in? && !current_user.setting_trends)
- trends = Trends.tags.query.allowed.limit(3)
diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml
index 2941b566e0..a5d99ae33a 100644
--- a/app/views/shared/_og.html.haml
+++ b/app/views/shared/_og.html.haml
@@ -1,5 +1,5 @@
- thumbnail = @instance_presenter.thumbnail
-- description ||= strip_tags(@instance_presenter.description.presence || t('about.about_mastodon_html'))
+- description ||= @instance_presenter.description.presence || strip_tags(t('about.about_mastodon_html'))
%meta{ name: 'description', content: description }/
From 4595862978a7f726fbd6139a1bc415cc83cf34fe Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 6 Mar 2023 09:43:21 -0500
Subject: [PATCH 0205/1254] Remove pinned rexml (#23964)
---
Gemfile | 1 -
Gemfile.lock | 1 -
2 files changed, 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index d3eefb224c..5804327cca 100644
--- a/Gemfile
+++ b/Gemfile
@@ -4,7 +4,6 @@ source 'https://rubygems.org'
ruby '>= 2.7.0', '< 3.3.0'
gem 'pkg-config', '~> 1.5'
-gem 'rexml', '~> 3.2'
gem 'puma', '~> 6.1'
gem 'rails', '~> 6.1.7'
diff --git a/Gemfile.lock b/Gemfile.lock
index 6f75f8f769..c6b4e74f6a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -855,7 +855,6 @@ DEPENDENCIES
redcarpet (~> 3.6)
redis (~> 4.5)
redis-namespace (~> 1.10)
- rexml (~> 3.2)
rqrcode (~> 2.1)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
From 86f8aa2db2bf4f19f482b5857c4e49b8791eb514 Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 6 Mar 2023 16:00:08 +0100
Subject: [PATCH 0206/1254] Fix unconfirmed accounts being registered as active
users (#23803)
---
app/models/user.rb | 3 +++
1 file changed, 3 insertions(+)
diff --git a/app/models/user.rb b/app/models/user.rb
index 5e106dee57..d56a9b9ca1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -507,11 +507,14 @@ class User < ApplicationRecord
def prepare_new_user!
BootstrapTimelineWorker.perform_async(account_id)
ActivityTracker.increment('activity:accounts:local')
+ ActivityTracker.record('activity:logins', id)
UserMailer.welcome(self).deliver_later
TriggerWebhookWorker.perform_async('account.approved', 'Account', account_id)
end
def prepare_returning_user!
+ return unless confirmed?
+
ActivityTracker.record('activity:logins', id)
regenerate_feed! if needs_feed_update?
end
From 21db91a0a8fbe5b4fd69eecd2aeb4a84823343a0 Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 6 Mar 2023 16:25:35 +0100
Subject: [PATCH 0207/1254] Remove sidebar dead code (#23984)
---
app/views/application/_sidebar.html.haml | 16 ----------------
config/locales/an.yml | 2 --
config/locales/ar.yml | 2 --
config/locales/ast.yml | 2 --
config/locales/be.yml | 2 --
config/locales/bg.yml | 2 --
config/locales/ca.yml | 2 --
config/locales/ckb.yml | 2 --
config/locales/co.yml | 2 --
config/locales/cs.yml | 2 --
config/locales/cy.yml | 2 --
config/locales/da.yml | 2 --
config/locales/de.yml | 2 --
config/locales/el.yml | 2 --
config/locales/en.yml | 2 --
config/locales/eo.yml | 2 --
config/locales/es-AR.yml | 2 --
config/locales/es-MX.yml | 2 --
config/locales/es.yml | 2 --
config/locales/et.yml | 2 --
config/locales/eu.yml | 2 --
config/locales/fa.yml | 2 --
config/locales/fi.yml | 2 --
config/locales/fo.yml | 2 --
config/locales/fr-QC.yml | 2 --
config/locales/fr.yml | 2 --
config/locales/fy.yml | 2 --
config/locales/gd.yml | 2 --
config/locales/gl.yml | 2 --
config/locales/he.yml | 2 --
config/locales/hr.yml | 2 --
config/locales/hu.yml | 2 --
config/locales/hy.yml | 2 --
config/locales/id.yml | 2 --
config/locales/io.yml | 2 --
config/locales/is.yml | 2 --
config/locales/it.yml | 2 --
config/locales/ja.yml | 2 --
config/locales/kab.yml | 2 --
config/locales/kk.yml | 2 --
config/locales/ko.yml | 2 --
config/locales/ku.yml | 2 --
config/locales/lv.yml | 2 --
config/locales/nl.yml | 2 --
config/locales/nn.yml | 2 --
config/locales/no.yml | 2 --
config/locales/oc.yml | 2 --
config/locales/pl.yml | 2 --
config/locales/pt-BR.yml | 2 --
config/locales/pt-PT.yml | 2 --
config/locales/ru.yml | 2 --
config/locales/sc.yml | 2 --
config/locales/sco.yml | 2 --
config/locales/si.yml | 2 --
config/locales/sk.yml | 2 --
config/locales/sl.yml | 2 --
config/locales/sq.yml | 2 --
config/locales/sv.yml | 2 --
config/locales/th.yml | 2 --
config/locales/tr.yml | 2 --
config/locales/uk.yml | 2 --
config/locales/vi.yml | 2 --
config/locales/zh-CN.yml | 2 --
config/locales/zh-HK.yml | 2 --
config/locales/zh-TW.yml | 2 --
65 files changed, 144 deletions(-)
delete mode 100644 app/views/application/_sidebar.html.haml
diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml
deleted file mode 100644
index 9d0efa7e10..0000000000
--- a/app/views/application/_sidebar.html.haml
+++ /dev/null
@@ -1,16 +0,0 @@
-.hero-widget
- .hero-widget__img
- = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title
-
- .hero-widget__text
- %p= @instance_presenter.description.presence || t('about.about_mastodon_html')
-
-- if Setting.trends && !(user_signed_in? && !current_user.setting_trends)
- - trends = Trends.tags.query.allowed.limit(3)
-
- - unless trends.empty?
- .endorsements-widget.trends-widget
- %h4.emojify= t('footer.trending_now')
-
- - trends.each do |tag|
- = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer, scope: current_user, scope_name: :current_user).as_json
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 3a6ddda1b7..2e1a7e36ff 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1159,8 +1159,6 @@ an:
index:
hint: Este filtro s'aplica a la selección de publicacions individuals independientment d'atros criterios. Puede anyadir mas publicacions a este filtro dende la interficie web.
title: Publicacions filtradas
- footer:
- trending_now: Tendencia agora
generic:
all: Totz
all_items_on_page_selected_html:
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 32130cc7da..d72a11130b 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1214,8 +1214,6 @@ ar:
index:
hint: ينطبق الفلتر هذا على اختيار المنشورات الفردية بغض النظر عن المعايير الأخرى. يمكنك إضافة المزيد من المنشورات إلى هذا الفلتر من واجهة الويب.
title: الرسائل المصفّاة
- footer:
- trending_now: المتداولة الآن
generic:
all: الكل
changes_saved_msg: تم حفظ التعديلات بنجاح!
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index afdb5176c4..b59ebba455 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -601,8 +601,6 @@ ast:
title: Peñeres
new:
title: Amestar una peñera
- footer:
- trending_now: En tendencia
generic:
all: Too
all_items_on_page_selected_html:
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 17fcabe9b0..05c7b7bffe 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1238,8 +1238,6 @@ be:
index:
hint: Гэты фільтр прымяняецца для выбару асобных допісаў незалежна ад іншых крытэрыяў. Вы можаце дадаць больш допісаў у гэты фільтр з вэб-інтэрфейсу.
title: Адфільтраваныя допісы
- footer:
- trending_now: Актуальнае
generic:
all: Усе
all_items_on_page_selected_html:
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 7483c562b0..34f0542759 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -1196,8 +1196,6 @@ bg:
index:
hint: Този филтър се прилага за избор на отделни публикации, независимо от други критерии. Може да добавите още публикации в този филтър от уебинтерфейса.
title: Филтрирани публикации
- footer:
- trending_now: Налагащи се сега
generic:
all: Всичко
all_items_on_page_selected_html:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 68c5db23e4..2a459dbde6 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1196,8 +1196,6 @@ ca:
index:
hint: Aquest filtre aplica als tuts seleccionats independentment d'altres criteris. Pots afegir més tuts a aquest filtre des de la interfície Web.
title: Tuts filtrats
- footer:
- trending_now: En tendència
generic:
all: Tot
all_items_on_page_selected_html:
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 2cfa5dfee8..0f481c8ce2 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -744,8 +744,6 @@ ckb:
title: فلتەرەکان
new:
title: زیادکردنی فلتەری نوێ
- footer:
- trending_now: هەوادارانی ئێستا
generic:
all: هەموو
changes_saved_msg: گۆڕانکاریەکان بە سەرکەوتوویی هەڵگیرا!
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 6cf1f28b33..94f2101c20 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -704,8 +704,6 @@ co:
title: Filtri
new:
title: Aghjunghje un novu filtru
- footer:
- trending_now: Tindenze d'avà
generic:
all: Tuttu
changes_saved_msg: Cambiamenti salvati!
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index f6796ec6b8..8c44bba8c5 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1213,8 +1213,6 @@ cs:
index:
hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní.
title: Filtrované příspěvky
- footer:
- trending_now: Právě populární
generic:
all: Všechny
all_items_on_page_selected_html:
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 14ecbe7034..f887329885 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1280,8 +1280,6 @@ cy:
index:
hint: Mae'r hidlydd hwn yn berthnasol i ddethol postiadau unigol waeth beth fo'r meini prawf eraill. Gallwch ychwanegu mwy o bostiadau at yr hidlydd hwn o'r rhyngwyneb gwe.
title: Postiadau wedi'u hidlo
- footer:
- trending_now: Trendiau
generic:
all: Popeth
all_items_on_page_selected_html:
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 38111748d8..a75364a792 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1192,8 +1192,6 @@ da:
index:
hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen.
title: Filtrerede indlæg
- footer:
- trending_now: Trender lige nu
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 69284b09f9..3f2666bdbf 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1196,8 +1196,6 @@ de:
index:
hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über das Webinterface hinzufügen.
title: Gefilterte Beiträge
- footer:
- trending_now: Jetzt in den Trends
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 7994f71740..3ed8ca4054 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -875,8 +875,6 @@ el:
new:
save: Αποθήκευση νέου φίλτρου
title: Πρόσθεσε νέο φίλτρο
- footer:
- trending_now: Τάσεις
generic:
all: Όλα
changes_saved_msg: Οι αλλαγές αποθηκεύτηκαν!
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 97d0999e4a..87231836ae 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1196,8 +1196,6 @@ en:
index:
hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface.
title: Filtered posts
- footer:
- trending_now: Trending now
generic:
all: All
all_items_on_page_selected_html:
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index 151ca2429f..a8279b6a6f 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1197,8 +1197,6 @@ eo:
index:
hint: Ĉi tiu filtrilo kongruas kelkaj mesaĝoj sendepende de aliaj kriterioj.
title: Filtritaj mesaĝoj
- footer:
- trending_now: Nunaj furoraĵoj
generic:
all: Ĉio
all_items_on_page_selected_html:
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index 8d934011cd..bef481b35d 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1196,8 +1196,6 @@ es-AR:
index:
hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web.
title: Mensajes filtrados
- footer:
- trending_now: Tendencia ahora
generic:
all: Todas
all_items_on_page_selected_html:
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 1267c49172..978cd0c3ce 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1196,8 +1196,6 @@ es-MX:
index:
hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
title: Publicaciones filtradas
- footer:
- trending_now: Tendencia ahora
generic:
all: Todos
all_items_on_page_selected_html:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index f87042792f..29c4e84e73 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1196,8 +1196,6 @@ es:
index:
hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
title: Publicaciones filtradas
- footer:
- trending_now: Tendencia ahora
generic:
all: Todos
all_items_on_page_selected_html:
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 1b5910154e..55cb810116 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1196,8 +1196,6 @@ et:
index:
hint: See filter kehtib üksikute postituste valimisel, sõltumata muudest kriteeriumidest. Sellesse filtrisse saab veebiliidese kaudu rohkem postitusi lisada.
title: Filtreeritud postitused
- footer:
- trending_now: Praegu trendikad
generic:
all: Kõik
all_items_on_page_selected_html:
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index b9a9482bf5..0b2ab33d4d 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1198,8 +1198,6 @@ eu:
index:
hint: Iragazki honek banako bidalketei eragiten die, beste kriterioak badaude ere. Bidalketa gehiago gehitu ditzakezu iragazkira web interfazetik.
title: Iragazitako bidalketak
- footer:
- trending_now: Joera orain
generic:
all: Denak
all_items_on_page_selected_html:
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 88366c7b95..a418dc3776 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -890,8 +890,6 @@ fa:
title: پالایهها
new:
title: افزودن پالایهٔ جدید
- footer:
- trending_now: پرطرفدار
generic:
all: همه
changes_saved_msg: تغییرات با موفقیت ذخیره شدند!
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 8a77fa8a57..30d5f11791 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1196,8 +1196,6 @@ fi:
index:
hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä.
title: Suodatetut viestit
- footer:
- trending_now: Suosittua nyt
generic:
all: Kaikki
all_items_on_page_selected_html:
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index db3aca3693..baebaae2f3 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1196,8 +1196,6 @@ fo:
index:
hint: Hetta filtrið er galdandi fyri útvaldar stakar postar óansæð aðrar treytir. Tú kanst leggja fleiri postar afturat hesum filtrinum frá vevmarkamótinum.
title: Filtreraðir postar
- footer:
- trending_now: Rák beint nú
generic:
all: Alt
all_items_on_page_selected_html:
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 76788b995d..922cea0dca 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -1196,8 +1196,6 @@ fr-QC:
index:
hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web.
title: Messages filtrés
- footer:
- trending_now: Tendance en ce moment
generic:
all: Tous
all_items_on_page_selected_html:
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index c3ec4bdc7a..c0d48df88f 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1196,8 +1196,6 @@ fr:
index:
hint: Ce filtre s'applique à la sélection de messages individuels, indépendamment d'autres critères. Vous pouvez ajouter plus de messages à ce filtre à partir de l'interface Web.
title: Messages filtrés
- footer:
- trending_now: Tendance en ce moment
generic:
all: Tous
all_items_on_page_selected_html:
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 45e15a4d2f..2c1c8657ff 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1196,8 +1196,6 @@ fy:
index:
hint: Dit filter is fan tapassing om yndividuele berjochten te selektearjen, ûnôfhinklik fan oare kritearia. Jo kinne yn de webomjouwing mear berjochten oan dit filter tafoegje.
title: Filtere berjochten
- footer:
- trending_now: Trends
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index f47c99073d..b5347d91b4 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1225,8 +1225,6 @@ gd:
index:
hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn.
title: Postaichean criathraichte
- footer:
- trending_now: A’ treandadh an-dràsta
generic:
all: Na h-uile
all_items_on_page_selected_html:
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index cdb128f927..2c3af8f889 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1196,8 +1196,6 @@ gl:
index:
hint: Este filtro aplícase para seleccionar publicacións individuais independentemente doutros criterios. Podes engadir máis publicacións a este filtro desde a interface web.
title: Publicacións filtradas
- footer:
- trending_now: Tendencia agora
generic:
all: Todo
all_items_on_page_selected_html:
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 064e127a0d..a4af50b533 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1238,8 +1238,6 @@ he:
index:
hint: סנן זה חל באופן של בחירת הודעות בודדות ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד הודעות לסנן זה ממנשק הווב.
title: הודעות שסוננו
- footer:
- trending_now: נושאים חמים
generic:
all: הכל
all_items_on_page_selected_html:
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index 0563712266..e9d414ef59 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -99,8 +99,6 @@ hr:
title: Filteri
new:
title: Dodaj novi filter
- footer:
- trending_now: Popularno
generic:
all: Sve
changes_saved_msg: Izmjene su uspješno sačuvane!
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 620e8d6799..2887b4a69a 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1196,8 +1196,6 @@ hu:
index:
hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül.
title: Megszűrt bejegyzések
- footer:
- trending_now: Most felkapott
generic:
all: Mind
all_items_on_page_selected_html:
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index de995c5b5e..158402ce81 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -575,8 +575,6 @@ hy:
title: Ֆիլտրեր
new:
title: Ավելացնել ֆիլտր
- footer:
- trending_now: Այժմ արդիական
generic:
all: Բոլորը
changes_saved_msg: Փոփոխութիւնները յաջող պահուած են
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 2363cc66ac..0342c7bd90 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1133,8 +1133,6 @@ id:
index:
hint: Saringan ini diterapkan ke beberapa kiriman individu tanpa memengaruhi oleh kriteria lain. Anda dapat menambahkan lebih banyak kiriman ke saringan ini dari antarmuka web.
title: Kiriman yang disaring
- footer:
- trending_now: Sedang tren
generic:
all: Semua
all_items_on_page_selected_html:
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 9ef6c03128..b557788297 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1112,8 +1112,6 @@ io:
index:
hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo.
title: Filtrita posti
- footer:
- trending_now: Nuna tendenco
generic:
all: Omna
all_items_on_page_selected_html:
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 5f63482522..2ba3d3108c 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1196,8 +1196,6 @@ is:
index:
hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu.
title: Síaðar færslur
- footer:
- trending_now: Í umræðunni núna
generic:
all: Allt
all_items_on_page_selected_html:
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 9256ed49d9..ce3fd34b7e 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1198,8 +1198,6 @@ it:
index:
hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web.
title: Post filtrati
- footer:
- trending_now: Di tendenza ora
generic:
all: Tutto
all_items_on_page_selected_html:
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 374fdaf84a..6743d83883 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -1175,8 +1175,6 @@ ja:
index:
hint: このフィルターは、他の条件に関係なく個々の投稿を選択する場合に適用されます。Webインターフェースからこのフィルターにさらに投稿を追加できます。
title: フィルターされた投稿
- footer:
- trending_now: トレンドタグ
generic:
all: すべて
all_items_on_page_selected_html:
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index ead31b695f..085a8958a9 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -543,8 +543,6 @@ kab:
back_to_filter: Tuɣalin ɣer umsizdeg
batch:
remove: Kkes seg umsizdeg
- footer:
- trending_now: Ayen mucaɛen tura
generic:
all: Akk
changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq!
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index 959f7b0f01..c7bdae1772 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -470,8 +470,6 @@ kk:
title: Фильтрлер
new:
title: Жаңа фильтр қосу
- footer:
- trending_now: Бүгінгі трендтер
generic:
all: Барлығы
changes_saved_msg: Өзгерістер сәтті сақталды!
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index fb778f803f..057e57068f 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1177,8 +1177,6 @@ ko:
index:
hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다.
title: 필터링된 게시물
- footer:
- trending_now: 지금 유행 중
generic:
all: 모두
all_items_on_page_selected_html:
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 899cd936a0..fa291b5c7f 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1156,8 +1156,6 @@ ku:
index:
hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî.
title: Şandiyên parzûnkirî
- footer:
- trending_now: Niha rojevê de
generic:
all: Hemû
all_items_on_page_selected_html:
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 8bcb23c602..1c5eb356d4 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1217,8 +1217,6 @@ lv:
index:
hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni.
title: Filtrētās ziņas
- footer:
- trending_now: Šobrīd populārākie
generic:
all: Visi
all_items_on_page_selected_html:
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index e9a63e9d83..7732a64421 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1196,8 +1196,6 @@ nl:
index:
hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere criteria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen.
title: Gefilterde berichten
- footer:
- trending_now: Trends
generic:
all: Alles
all_items_on_page_selected_html:
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index 49f30bab09..7b860b54b2 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1156,8 +1156,6 @@ nn:
index:
hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet.
title: Filtrerte innlegg
- footer:
- trending_now: Populært no
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 3036ce050f..ebad60b73c 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1131,8 +1131,6 @@
index:
hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet.
title: Filtrerte innlegg
- footer:
- trending_now: Trender nå
generic:
all: Alle
all_items_on_page_selected_html:
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 1d5ed61fe7..e1406ec614 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -627,8 +627,6 @@ oc:
title: Filtres
new:
title: Ajustar un nòu filtre
- footer:
- trending_now: Tendéncia del moment
generic:
all: Tot
changes_saved_msg: Cambiaments ben realizats !
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 90a6aaf9ee..d086161910 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1238,8 +1238,6 @@ pl:
index:
hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego.
title: Filtrowane posty
- footer:
- trending_now: Obecnie na czasie
generic:
all: Wszystkie
all_items_on_page_selected_html:
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index d855721077..5192a83d22 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1179,8 +1179,6 @@ pt-BR:
index:
hint: Este filtro se aplica a publicações individuais, independentemente de outros critérios. Você pode adicionar mais postagens a este filtro a partir da interface web.
title: Publicações filtradas
- footer:
- trending_now: Em alta no momento
generic:
all: Tudo
all_items_on_page_selected_html:
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index d3649ba40d..2718a7fb46 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1196,8 +1196,6 @@ pt-PT:
index:
hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web.
title: Publicações filtradas
- footer:
- trending_now: Em alta neste momento
generic:
all: Tudo
all_items_on_page_selected_html:
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 9b8749b818..bfb3f5779c 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1226,8 +1226,6 @@ ru:
index:
hint: Этот фильтр применяется для выбора отдельных постов, независимо от других критериев. Вы можете добавить больше записей в этот фильтр из веб-интерфейса.
title: Отфильтрованные посты
- footer:
- trending_now: Актуально сейчас
generic:
all: Любой
all_items_on_page_selected_html:
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 3a84f81702..113786f77a 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -658,8 +658,6 @@ sc:
title: Filtros
new:
title: Agiunghe unu filtru nou
- footer:
- trending_now: Est tendèntzia immoe
generic:
all: Totus
changes_saved_msg: Modìficas sarvadas.
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index 6cd4be0601..719a8918fc 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1146,8 +1146,6 @@ sco:
index:
hint: This filter applies tae select individual posts regairdless o ither criteria. Ye kin add mair posts tae this filter fae the wab interface.
title: Filtert posts
- footer:
- trending_now: Trendin the noo
generic:
all: Aw
all_items_on_page_selected_html:
diff --git a/config/locales/si.yml b/config/locales/si.yml
index 9a639b720d..87eaee5b6b 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -959,8 +959,6 @@ si:
new:
save: නව පෙරහන සුරකින්න
title: නව පෙරහනක් එකතු කරන්න
- footer:
- trending_now: දැන් ප්රවණතාවය
generic:
all: සියල්ල
changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී!
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index da653857fb..f1b021127b 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -814,8 +814,6 @@ sk:
title: Triedenia
new:
title: Pridaj nové triedenie
- footer:
- trending_now: Teraz populárne
generic:
all: Všetko
changes_saved_msg: Zmeny boli úspešne uložené!
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 7cabc0cd86..303f9ea559 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1238,8 +1238,6 @@ sl:
index:
hint: Ta filter se nanaša na posamezne objave ne glede na druge pogoje. Filtru lahko dodate več objav prek spletnega vmesnika.
title: Filtrirane objave
- footer:
- trending_now: Zdaj v trendu
generic:
all: Vse
all_items_on_page_selected_html:
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 467aa8967e..ea94dfb6a3 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1190,8 +1190,6 @@ sq:
index:
hint: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësisht kriteresh të tjera. Që nga ndërfaqja web mund të shtoni më tepër postime te ky filtër.
title: Postime të filtruar
- footer:
- trending_now: Prirjet e tashme
generic:
all: Krejt
all_items_on_page_selected_html:
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 9352f0c19a..aea9cea4e6 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1196,8 +1196,6 @@ sv:
index:
hint: Detta filter gäller för att välja enskilda inlägg oavsett andra kriterier. Du kan lägga till fler inlägg till detta filter från webbgränssnittet.
title: Filtrerade inlägg
- footer:
- trending_now: Trendar nu
generic:
all: Alla
all_items_on_page_selected_html:
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 9c4a7bfc58..815936a2d1 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1175,8 +1175,6 @@ th:
index:
hint: ตัวกรองนี้นำไปใช้เพื่อเลือกโพสต์แต่ละรายการโดยไม่คำนึงถึงเกณฑ์อื่น ๆ คุณสามารถเพิ่มโพสต์เพิ่มเติมไปยังตัวกรองนี้ได้จากส่วนติดต่อเว็บ
title: โพสต์ที่กรองอยู่
- footer:
- trending_now: กำลังนิยม
generic:
all: ทั้งหมด
all_items_on_page_selected_html:
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 90a4208f0a..6cbd3f5103 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1196,8 +1196,6 @@ tr:
index:
hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz.
title: Filtrelenmiş gönderiler
- footer:
- trending_now: Şu an gündemde
generic:
all: Tümü
all_items_on_page_selected_html:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 347f7414dc..44d54363f3 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1238,8 +1238,6 @@ uk:
index:
hint: Цей фільтр застосовується для вибору окремих дописів, незалежно від інших критеріїв. Ви можете додавати більше дописів до цього фільтра з вебінтерфейсу.
title: Відфільтровані дописи
- footer:
- trending_now: Актуальні
generic:
all: Усі
all_items_on_page_selected_html:
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 538b9304b0..88592b7044 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1175,8 +1175,6 @@ vi:
index:
hint: Bộ lọc này áp dụng để chọn các tút riêng lẻ bất kể các tiêu chí khác. Bạn có thể thêm các tút khác vào bộ lọc này từ giao diện web.
title: Những tút đã lọc
- footer:
- trending_now: Thịnh hành
generic:
all: Tất cả
all_items_on_page_selected_html:
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index e8ca1910a7..ed1780ce8d 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1175,8 +1175,6 @@ zh-CN:
index:
hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。
title: 过滤的嘟文
- footer:
- trending_now: 现在流行
generic:
all: 全部
all_items_on_page_selected_html:
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 6538e34590..405f321d46 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1175,8 +1175,6 @@ zh-HK:
index:
hint: 不管其他條件如何,此篩選器會套用於所選的個別帖文。你可以在網頁介面上加入更多帖文到此篩選器。
title: 篩選帖文
- footer:
- trending_now: 今期流行
generic:
all: 全部
all_items_on_page_selected_html:
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index a25818bca6..3174287175 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1177,8 +1177,6 @@ zh-TW:
index:
hint: 此過濾器會套用至所選之各別嘟文,不管它們有無符合其他條件。您可以從網頁介面中將更多嘟文加入至此過濾器。
title: 已過濾之嘟文
- footer:
- trending_now: 現正熱門
generic:
all: 全部
all_items_on_page_selected_html:
From 8770473dbb92042f76e058469a76e5bb4beecb9f Mon Sep 17 00:00:00 2001
From: PauloVilarinho <33267902+PauloVilarinho@users.noreply.github.com>
Date: Mon, 6 Mar 2023 13:33:09 -0300
Subject: [PATCH 0208/1254] add modal message when editing toot (#23936)
Co-authored-by: PauloVilarinho
---
.../mastodon/containers/status_container.jsx | 15 ++++++++++++++-
app/javascript/mastodon/locales/en.json | 2 ++
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/app/javascript/mastodon/containers/status_container.jsx b/app/javascript/mastodon/containers/status_container.jsx
index 294105f259..580f409e94 100644
--- a/app/javascript/mastodon/containers/status_container.jsx
+++ b/app/javascript/mastodon/containers/status_container.jsx
@@ -56,6 +56,8 @@ const messages = defineMessages({
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.' },
replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+ editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
+ editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
blockDomainConfirm: { id: 'confirmations.domain_block.confirm', defaultMessage: 'Hide entire domain' },
});
@@ -149,7 +151,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
},
onEdit (status, history) {
- dispatch(editStatus(status.get('id'), history));
+ dispatch((_, getState) => {
+ let state = getState();
+ if (state.getIn(['compose', 'text']).trim().length !== 0) {
+ dispatch(openModal('CONFIRM', {
+ message: intl.formatMessage(messages.editMessage),
+ confirm: intl.formatMessage(messages.editConfirm),
+ onConfirm: () => dispatch(editStatus(status.get('id'), history)),
+ }));
+ } else {
+ dispatch(editStatus(status.get('id'), history));
+ }
+ });
},
onTranslate (status) {
diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json
index ae7722635d..f4d0519403 100644
--- a/app/javascript/mastodon/locales/en.json
+++ b/app/javascript/mastodon/locales/en.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
From dfa1be4ab451a4dd099ad3c140502fb0759ef832 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Mon, 6 Mar 2023 11:33:58 -0500
Subject: [PATCH 0209/1254] Remove unused TOCGenerator (#23986)
---
app/lib/toc_generator.rb | 69 ----------------------------------------
1 file changed, 69 deletions(-)
delete mode 100644 app/lib/toc_generator.rb
diff --git a/app/lib/toc_generator.rb b/app/lib/toc_generator.rb
deleted file mode 100644
index 0c8f766ca4..0000000000
--- a/app/lib/toc_generator.rb
+++ /dev/null
@@ -1,69 +0,0 @@
-# frozen_string_literal: true
-
-class TOCGenerator
- TARGET_ELEMENTS = %w(h1 h2 h3 h4 h5 h6).freeze
- LISTED_ELEMENTS = %w(h2 h3).freeze
-
- class Section
- attr_accessor :depth, :title, :children, :anchor
-
- def initialize(depth, title, anchor)
- @depth = depth
- @title = title
- @children = []
- @anchor = anchor
- end
-
- delegate :<<, to: :children
- end
-
- def initialize(source_html)
- @source_html = source_html
- @processed = false
- @target_html = ''
- @headers = []
- @slugs = Hash.new { |h, k| h[k] = 0 }
- end
-
- def html
- parse_and_transform unless @processed
- @target_html
- end
-
- def toc
- parse_and_transform unless @processed
- @headers
- end
-
- private
-
- def parse_and_transform
- return if @source_html.blank?
-
- parsed_html = Nokogiri::HTML.fragment(@source_html)
-
- parsed_html.traverse do |node|
- next unless TARGET_ELEMENTS.include?(node.name)
-
- anchor = node['id'] || node.text.parameterize.presence || 'sec'
- @slugs[anchor] += 1
- anchor = "#{anchor}-#{@slugs[anchor]}" if @slugs[anchor] > 1
-
- node['id'] = anchor
-
- next unless LISTED_ELEMENTS.include?(node.name)
-
- depth = node.name[1..-1]
- latest_section = @headers.last
-
- if latest_section.nil? || latest_section.depth >= depth
- @headers << Section.new(depth, node.text, anchor)
- else
- latest_section << Section.new(depth, node.text, anchor)
- end
- end
-
- @target_html = parsed_html.to_s
- @processed = true
- end
-end
From 59b24c3688628a3cb778e71fc0684636cbda557b Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 6 Mar 2023 17:44:55 +0100
Subject: [PATCH 0210/1254] Fix `/api/v1/streaming` sub-paths not being
redirected (#23988)
---
config/routes.rb | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/config/routes.rb b/config/routes.rb
index e7c4c000ee..530b46a5a5 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -472,7 +472,9 @@ Rails.application.routes.draw do
resources :list, only: :show
end
- resources :streaming, only: [:index]
+ get '/streaming', to: 'streaming#index'
+ get '/streaming/(*any)', to: 'streaming#index'
+
resources :custom_emojis, only: [:index]
resources :suggestions, only: [:index, :destroy]
resources :scheduled_statuses, only: [:index, :show, :update, :destroy]
From 174352716ada7c8da451f1a2db57f18b66cd3fdb Mon Sep 17 00:00:00 2001
From: Claire
Date: Mon, 6 Mar 2023 21:00:10 +0100
Subject: [PATCH 0211/1254] Disable anonymous access to the streaming API
(#23989)
---
streaming/index.js | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/streaming/index.js b/streaming/index.js
index 2cc4934ee9..91e86fdbc5 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -16,7 +16,6 @@ const WebSocket = require('ws');
const { JSDOM } = require('jsdom');
const env = process.env.NODE_ENV || 'development';
-const alwaysRequireAuth = process.env.LIMITED_FEDERATION_MODE === 'true' || process.env.WHITELIST_MODE === 'true' || process.env.AUTHORIZED_FETCH === 'true';
dotenv.config({
path: env === 'production' ? '.env.production' : '.env',
@@ -347,22 +346,17 @@ const startWorker = async (workerId) => {
* @param {boolean=} required
* @return {Promise.}
*/
- const accountFromRequest = (req, required = true) => new Promise((resolve, reject) => {
+ const accountFromRequest = (req) => new Promise((resolve, reject) => {
const authorization = req.headers.authorization;
const location = url.parse(req.url, true);
const accessToken = location.query.access_token || req.headers['sec-websocket-protocol'];
if (!authorization && !accessToken) {
- if (required) {
- const err = new Error('Missing access token');
- err.status = 401;
+ const err = new Error('Missing access token');
+ err.status = 401;
- reject(err);
- return;
- } else {
- resolve();
- return;
- }
+ reject(err);
+ return;
}
const token = authorization ? authorization.replace(/^Bearer /, '') : accessToken;
@@ -465,7 +459,7 @@ const startWorker = async (workerId) => {
// variables. OAuth scope checks are moved to the point of subscription
// to a specific stream.
- accountFromRequest(info.req, alwaysRequireAuth).then(() => {
+ accountFromRequest(info.req).then(() => {
callback(true, undefined, undefined);
}).catch(err => {
log.error(info.req.requestId, err.toString());
@@ -539,7 +533,7 @@ const startWorker = async (workerId) => {
return;
}
- accountFromRequest(req, alwaysRequireAuth).then(() => checkScopes(req, channelNameFromPath(req))).then(() => {
+ accountFromRequest(req).then(() => checkScopes(req, channelNameFromPath(req))).then(() => {
subscribeHttpToSystemChannel(req, res);
}).then(() => {
next();
From e594bb7d5042f4a531334fd29bf4961f2152c4fa Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Mon, 6 Mar 2023 22:49:43 -0500
Subject: [PATCH 0212/1254] Convert CircleCI to GitHub Actions (#23608)
---
.circleci/config.yml | 128 -----------------------------
.github/workflows/test-ruby.yml | 139 ++++++++++++++++++++++++++++++++
CONTRIBUTING.md | 2 -
Gemfile | 1 +
Gemfile.lock | 2 +
README.md | 3 +-
config/webpacker.yml | 2 +-
7 files changed, 144 insertions(+), 133 deletions(-)
delete mode 100644 .circleci/config.yml
create mode 100644 .github/workflows/test-ruby.yml
diff --git a/.circleci/config.yml b/.circleci/config.yml
deleted file mode 100644
index 3913a6b0f8..0000000000
--- a/.circleci/config.yml
+++ /dev/null
@@ -1,128 +0,0 @@
-version: 2.1
-
-orbs:
- ruby: circleci/ruby@2.0.0
- node: circleci/node@5.0.3
-
-executors:
- default:
- parameters:
- ruby-version:
- type: string
- docker:
- - image: cimg/ruby:<< parameters.ruby-version >>
- environment:
- BUNDLE_JOBS: 3
- BUNDLE_RETRY: 3
- CONTINUOUS_INTEGRATION: true
- DB_HOST: localhost
- DB_USER: root
- DISABLE_SIMPLECOV: true
- RAILS_ENV: test
- - image: cimg/postgres:14.5
- environment:
- POSTGRES_USER: root
- POSTGRES_HOST_AUTH_METHOD: trust
- - image: cimg/redis:7.0
-
-commands:
- install-system-dependencies:
- steps:
- - run:
- name: Install system dependencies
- command: |
- sudo apt-get update
- sudo apt-get install -y libicu-dev libidn11-dev
- install-ruby-dependencies:
- parameters:
- ruby-version:
- type: string
- steps:
- - run:
- command: |
- bundle config clean 'true'
- bundle config frozen 'true'
- bundle config without 'development production'
- name: Set bundler settings
- - ruby/install-deps:
- bundler-version: '2.3.26'
- key: ruby<< parameters.ruby-version >>-gems-v2
- wait-db:
- steps:
- - run:
- command: dockerize -wait tcp://localhost:5432 -wait tcp://localhost:6379 -timeout 1m
- name: Wait for PostgreSQL and Redis
-
-jobs:
- build:
- docker:
- - image: cimg/ruby:3.2-node
- environment:
- RAILS_ENV: test
- steps:
- - checkout
- - install-system-dependencies
- - install-ruby-dependencies:
- ruby-version: '3.2'
- - node/install-packages:
- cache-version: v1
- pkg-manager: yarn
- - run:
- command: |
- export NODE_OPTIONS=--openssl-legacy-provider
- ./bin/rails assets:precompile
- name: Precompile assets
- - persist_to_workspace:
- paths:
- - public/assets
- - public/packs-test
- root: .
-
- test:
- parameters:
- ruby-version:
- type: string
- executor:
- name: default
- ruby-version: << parameters.ruby-version >>
- environment:
- ALLOW_NOPAM: true
- PAM_ENABLED: true
- PAM_DEFAULT_SERVICE: pam_test
- PAM_CONTROLLED_SERVICE: pam_test_controlled
- parallelism: 4
- steps:
- - checkout
- - install-system-dependencies
- - run:
- command: sudo apt-get install -y ffmpeg imagemagick libmagickcore-dev libmagickwand-dev libjpeg-dev libpng-dev libtiff-dev libwebp-dev libpam-dev
- name: Install additional system dependencies
- - run:
- command: bundle config with 'pam_authentication'
- name: Enable PAM authentication
- - install-ruby-dependencies:
- ruby-version: << parameters.ruby-version >>
- - attach_workspace:
- at: .
- - wait-db
- - run:
- command: ./bin/rails db:create db:schema:load db:seed
- name: Load database schema
- - ruby/rspec-test
-
-workflows:
- version: 2
- build-and-test:
- jobs:
- - build
- - test:
- matrix:
- parameters:
- ruby-version:
- - '2.7'
- - '3.0'
- - '3.1'
- - '3.2'
- name: test-ruby<< matrix.ruby-version >>
- requires:
- - build
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
new file mode 100644
index 0000000000..60f5df8850
--- /dev/null
+++ b/.github/workflows/test-ruby.yml
@@ -0,0 +1,139 @@
+name: Ruby Testing
+
+on:
+ push:
+ pull_request:
+
+env:
+ BUNDLE_CLEAN: true
+ BUNDLE_FROZEN: true
+ BUNDLE_WITHOUT: 'development production'
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+
+ env:
+ RAILS_ENV: test
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ cache: yarn
+ node-version-file: '.nvmrc'
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - run: yarn install --frozen-lockfile
+ - name: Precompile assets
+ # Previously had set this, but it's not supported
+ # export NODE_OPTIONS=--openssl-legacy-provider
+ run: |-
+ ./bin/rails assets:precompile
+
+ - uses: actions/upload-artifact@v3
+ with:
+ path: |-
+ ./public/assets
+ ./public/packs-test
+ name: ${{ github.sha }}
+ retention-days: 0
+
+ test:
+ runs-on: ubuntu-latest
+
+ needs:
+ - build
+
+ services:
+ postgres:
+ image: postgres:14.5
+ env:
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_USER: postgres
+ options: >-
+ --health-cmd pg_isready
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 5432:5432
+
+ redis:
+ image: redis:7.0
+ options: >-
+ --health-cmd "redis-cli ping"
+ --health-interval 10s
+ --health-timeout 5s
+ --health-retries 5
+ ports:
+ - 6379:6379
+
+ env:
+ DB_HOST: localhost
+ DB_USER: postgres
+ DB_PASS: postgres
+ DISABLE_SIMPLECOV: true
+ RAILS_ENV: test
+ ALLOW_NOPAM: true
+ PAM_ENABLED: true
+ PAM_DEFAULT_SERVICE: pam_test
+ PAM_CONTROLLED_SERVICE: pam_test_controlled
+ BUNDLE_WITH: 'pam_authentication'
+ CI_JOBS: ${{ matrix.ci_job }}/4
+
+ strategy:
+ fail-fast: false
+ matrix:
+ ruby-version:
+ - '2.7'
+ - '3.0'
+ - '3.1'
+ - '.ruby-version'
+ ci_job:
+ - 1
+ - 2
+ - 3
+ - 4
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: actions/download-artifact@v3
+ with:
+ path: './public'
+ name: ${{ github.sha }}
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Install additional system dependencies
+ run: sudo apt-get install -y ffmpeg imagemagick libpam-dev
+
+ - name: Set up bundler cache
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby-version}}
+ bundler-cache: true
+
+ - name: Update system gems
+ if: matrix.ruby-version == '2.7'
+ run: gem update --system
+
+ - name: Load database schema
+ run: './bin/rails db:create db:schema:load db:seed'
+
+ - run: bundle exec rake rspec_chunked
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index d67b21ee58..c1a5fef798 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -41,8 +41,6 @@ It is not always possible to phrase every change in such a manner, but it is des
- Code style rules (rubocop, eslint)
- Normalization of locale files (i18n-tasks)
-**Note**: You may need to log in and authorise the GitHub account your fork of this repository belongs to with CircleCI to enable some of the automated checks to run.
-
## Documentation
The [Mastodon documentation](https://docs.joinmastodon.org) is a statically generated site. You can [submit merge requests to mastodon/documentation](https://github.com/mastodon/documentation).
diff --git a/Gemfile b/Gemfile
index 5804327cca..dbe9ce8c0f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -104,6 +104,7 @@ group :development, :test do
gem 'fuubar', '~> 2.5'
gem 'i18n-tasks', '~> 1.0', require: false
gem 'rspec-rails', '~> 6.0'
+ gem 'rspec_chunked', '~> 0.6'
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index c6b4e74f6a..5afa9775ba 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -596,6 +596,7 @@ GEM
rspec-core (~> 3.0, >= 3.0.0)
sidekiq (>= 2.4.0)
rspec-support (3.12.0)
+ rspec_chunked (0.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
rubocop (1.45.1)
@@ -858,6 +859,7 @@ DEPENDENCIES
rqrcode (~> 2.1)
rspec-rails (~> 6.0)
rspec-sidekiq (~> 3.1)
+ rspec_chunked (~> 0.6)
rspec_junit_formatter (~> 0.6)
rubocop
rubocop-performance
diff --git a/README.md b/README.md
index 306665e9a6..f517668a95 100644
--- a/README.md
+++ b/README.md
@@ -5,13 +5,12 @@
[![GitHub release](https://img.shields.io/github/release/mastodon/mastodon.svg)][releases]
-[![Build Status](https://img.shields.io/circleci/project/github/mastodon/mastodon.svg)][circleci]
+[![Ruby Testing](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml/badge.svg)](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml)
[![Code Climate](https://img.shields.io/codeclimate/maintainability/mastodon/mastodon.svg)][code_climate]
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/mastodon/localized.svg)][crowdin]
[![Docker Pulls](https://img.shields.io/docker/pulls/tootsuite/mastodon.svg)][docker]
[releases]: https://github.com/mastodon/mastodon/releases
-[circleci]: https://circleci.com/gh/mastodon/mastodon
[code_climate]: https://codeclimate.com/github/mastodon/mastodon
[crowdin]: https://crowdin.com/project/mastodon
[docker]: https://hub.docker.com/r/tootsuite/mastodon/
diff --git a/config/webpacker.yml b/config/webpacker.yml
index 0baff662b0..1745a17988 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -75,7 +75,7 @@ development:
test:
<<: *default
- # CircleCI precompiles packs prior to running the tests.
+ # CI precompiles packs prior to running the tests.
# Also avoids race conditions in parallel_tests.
compile: false
From fb13f374751e9e6d9d54d6f781d71ba2b31afe97 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 8 Mar 2023 01:12:57 -0500
Subject: [PATCH 0213/1254] Skip double building on Dependabot branches
(#24025)
---
.github/workflows/rebase-needed.yml | 4 ++++
.github/workflows/test-ruby.yml | 2 ++
2 files changed, 6 insertions(+)
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index 99b224ec60..944ae7b283 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -2,7 +2,11 @@ name: PR Needs Rebase
on:
push:
+ branches-ignore:
+ - 'dependabot/**'
pull_request_target:
+ branches-ignore:
+ - 'dependabot/**'
types: [synchronize]
permissions:
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
index 60f5df8850..39b4341884 100644
--- a/.github/workflows/test-ruby.yml
+++ b/.github/workflows/test-ruby.yml
@@ -2,6 +2,8 @@ name: Ruby Testing
on:
push:
+ branches-ignore:
+ - 'dependabot/**'
pull_request:
env:
From 6ee39e85f3975e137fb9197a954c321767a4497a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:29:57 +0100
Subject: [PATCH 0214/1254] Bump pg from 1.4.5 to 1.4.6 (#24001)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 5afa9775ba..6ab9b00ac5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -482,7 +482,7 @@ GEM
parslet (2.0.0)
pastel (0.8.0)
tty-color (~> 0.5)
- pg (1.4.5)
+ pg (1.4.6)
pghero (3.1.0)
activerecord (>= 6)
pkg-config (1.5.1)
From 722349963c34fadacda3770928e7f0dcc32f9a3d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:30:36 +0100
Subject: [PATCH 0215/1254] Bump yargs from 17.7.0 to 17.7.1 (#24002)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 15bf30925c..2b9b31909c 100644
--- a/package.json
+++ b/package.json
@@ -161,7 +161,7 @@
"stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1",
"webpack-dev-server": "^3.11.3",
- "yargs": "^17.7.0"
+ "yargs": "^17.7.1"
},
"resolutions": {
"kind-of": "^6.0.3"
diff --git a/yarn.lock b/yarn.lock
index 68cef79651..6541c0b8f2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -11975,10 +11975,10 @@ yargs@^13.3.2:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^17.3.1, yargs@^17.7.0:
- version "17.7.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.0.tgz#b21e9af1e0a619a2a9c67b1133219b2975a07985"
- integrity sha512-dwqOPg5trmrre9+v8SUo2q/hAwyKoVfu8OC1xPHKJGNdxAvPl4sKxL4vBnh3bQz/ZvvGAFeA5H3ou2kcOY8sQQ==
+yargs@^17.3.1, yargs@^17.7.1:
+ version "17.7.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967"
+ integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==
dependencies:
cliui "^8.0.1"
escalade "^3.1.1"
From 49a4a7fa83c4097c787c3599d5954aa13c612b8f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:31:46 +0100
Subject: [PATCH 0216/1254] Bump sidekiq-scheduler from 5.0.1 to 5.0.2 (#24004)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 6ab9b00ac5..4b0569e1b5 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -645,9 +645,9 @@ GEM
redis (>= 4.5.0, < 5)
sidekiq-bulk (0.2.0)
sidekiq
- sidekiq-scheduler (5.0.1)
+ sidekiq-scheduler (5.0.2)
rufus-scheduler (~> 3.2)
- sidekiq (>= 4, < 8)
+ sidekiq (>= 6, < 8)
tilt (>= 1.4.0)
sidekiq-unique-jobs (7.1.29)
brpoplpush-redis_script (> 0.1.1, <= 2.0.0)
@@ -693,7 +693,7 @@ GEM
terrapin (0.6.0)
climate_control (>= 0.0.3, < 1.0)
thor (1.2.1)
- tilt (2.0.11)
+ tilt (2.1.0)
timeout (0.3.1)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
From aabf2bf8d6119dd1aac78ea9ced7eb18c2a2033c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:32:09 +0100
Subject: [PATCH 0217/1254] Bump rack from 2.2.6.2 to 2.2.6.3 (#23997)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 4b0569e1b5..8fce14aa0e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -503,7 +503,7 @@ GEM
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.6.2)
- rack (2.2.6.2)
+ rack (2.2.6.3)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
rack-cors (1.1.1)
From ff1913d58fa47f24039b4a140e3c5cdf65858ac0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:32:21 +0100
Subject: [PATCH 0218/1254] Bump axios from 1.3.3 to 1.3.4 (#23996)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 2b9b31909c..cb8559ea3c 100644
--- a/package.json
+++ b/package.json
@@ -38,7 +38,7 @@
"array-includes": "^3.1.6",
"arrow-key-navigation": "^1.2.0",
"autoprefixer": "^9.8.8",
- "axios": "^1.3.3",
+ "axios": "^1.3.4",
"babel-loader": "^8.3.0",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.1.0",
diff --git a/yarn.lock b/yarn.lock
index 6541c0b8f2..89d9c5342a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2598,10 +2598,10 @@ axe-core@^4.6.2:
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece"
integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg==
-axios@^1.3.3:
- version "1.3.3"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.3.tgz#e7011384ba839b885007c9c9fae1ff23dceb295b"
- integrity sha512-eYq77dYIFS77AQlhzEL937yUBSepBfPIe8FcgEDN35vMNZKMrs81pgnyrQpwfy4NF4b4XWX1Zgx7yX+25w8QJA==
+axios@^1.3.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024"
+ integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==
dependencies:
follow-redirects "^1.15.0"
form-data "^4.0.0"
From 3d46823e9f5b2fee15931636eec3268e74f2da6a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:32:44 +0100
Subject: [PATCH 0219/1254] Bump utf-8-validate from 6.0.2 to 6.0.3 (#23992)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index cb8559ea3c..73446b246c 100644
--- a/package.json
+++ b/package.json
@@ -168,6 +168,6 @@
},
"optionalDependencies": {
"bufferutil": "^4.0.7",
- "utf-8-validate": "^6.0.2"
+ "utf-8-validate": "^6.0.3"
}
}
diff --git a/yarn.lock b/yarn.lock
index 89d9c5342a..aeb944ec20 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -11232,10 +11232,10 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-utf-8-validate@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.2.tgz#2d80529963e4cc55ac5a1ca9dafdaa990d5ea16b"
- integrity sha512-yd7PQEOW+EgecUzSD7XUXTyq/vREGXk7t7fzGfOvwOAr0Z64h5rfGrmkNk8+ddVmf/FrkjPPhVyYBa7fuSPVTg==
+utf-8-validate@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-6.0.3.tgz#7d8c936d854e86b24d1d655f138ee27d2636d777"
+ integrity sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==
dependencies:
node-gyp-build "^4.3.0"
From c9860d36d4e8323125186f3479407b476ea6575d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:44:23 +0100
Subject: [PATCH 0220/1254] Bump omniauth_openid_connect from 0.6.0 to 0.6.1
(#23991)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile | 2 +-
Gemfile.lock | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/Gemfile b/Gemfile
index dbe9ce8c0f..eaaf1bf1fc 100644
--- a/Gemfile
+++ b/Gemfile
@@ -39,7 +39,7 @@ end
gem 'net-ldap', '~> 0.17'
gem 'omniauth-cas', '~> 2.0'
gem 'omniauth-saml', '~> 1.10'
-gem 'omniauth_openid_connect', '~> 0.6.0'
+gem 'omniauth_openid_connect', '~> 0.6.1'
gem 'omniauth', '~> 1.9'
gem 'omniauth-rails_csrf_protection', '~> 0.1'
diff --git a/Gemfile.lock b/Gemfile.lock
index 8fce14aa0e..bf7c3c76f0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -397,7 +397,7 @@ GEM
loofah (2.19.1)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
- mail (2.8.0.1)
+ mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
@@ -415,7 +415,7 @@ GEM
mime-types-data (3.2022.0105)
mini_mime (1.1.2)
mini_portile2 (2.8.1)
- minitest (5.17.0)
+ minitest (5.18.0)
msgpack (1.6.0)
multi_json (1.15.0)
multipart-post (2.3.0)
@@ -457,7 +457,7 @@ GEM
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
ruby-saml (~> 1.9)
- omniauth_openid_connect (0.6.0)
+ omniauth_openid_connect (0.6.1)
omniauth (>= 1.9, < 3)
openid_connect (~> 1.1)
openid_connect (1.4.2)
@@ -694,7 +694,7 @@ GEM
climate_control (>= 0.0.3, < 1.0)
thor (1.2.1)
tilt (2.1.0)
- timeout (0.3.1)
+ timeout (0.3.2)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
openssl (> 2.0)
@@ -832,7 +832,7 @@ DEPENDENCIES
omniauth-cas (~> 2.0)
omniauth-rails_csrf_protection (~> 0.1)
omniauth-saml (~> 1.10)
- omniauth_openid_connect (~> 0.6.0)
+ omniauth_openid_connect (~> 0.6.1)
ox (~> 2.14)
parslet
pg (~> 1.4)
From 5da3fd170e5194bdaac063a787e9b6188bfd821b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 11:45:09 +0100
Subject: [PATCH 0221/1254] Bump doorkeeper from 5.6.4 to 5.6.5 (#24009)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index bf7c3c76f0..ca6befa2a6 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -225,7 +225,7 @@ GEM
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
- doorkeeper (5.6.4)
+ doorkeeper (5.6.5)
railties (>= 5)
dotenv (2.8.1)
dotenv-rails (2.8.1)
From 71cd77536dfc82d4b68eec4b4f639898f21b1f88 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 12:00:05 +0100
Subject: [PATCH 0222/1254] Bump jest from 29.4.3 to 29.5.0 (#24003)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 627 ++++++++++++++++++++++++++++++++-------------------
2 files changed, 391 insertions(+), 238 deletions(-)
diff --git a/package.json b/package.json
index 73446b246c..59529b34a1 100644
--- a/package.json
+++ b/package.json
@@ -151,7 +151,7 @@
"eslint-plugin-jsx-a11y": "~6.7.1",
"eslint-plugin-promise": "~6.1.1",
"eslint-plugin-react": "~7.32.2",
- "jest": "^29.4.3",
+ "jest": "^29.5.0",
"jest-environment-jsdom": "^29.4.3",
"postcss-scss": "^4.0.6",
"prettier": "^2.8.4",
diff --git a/yarn.lock b/yarn.lock
index aeb944ec20..f28c926c96 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1285,49 +1285,49 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/console@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1"
- integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A==
+"@jest/console@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.5.0.tgz#593a6c5c0d3f75689835f1b3b4688c4f8544cb57"
+ integrity sha512-NEpkObxPwyw/XxZVLPmAGKE89IQRp4puc6IQRPru6JKd1M3fW9v1xM1AnzIJE65hbCkzQAdnL8P47e9hzhiYLQ==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
-"@jest/core@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b"
- integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ==
+"@jest/core@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.5.0.tgz#76674b96904484e8214614d17261cc491e5f1f03"
+ integrity sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/reporters" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/reporters" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
ci-info "^3.2.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
- jest-changed-files "^29.4.3"
- jest-config "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-message-util "^29.4.3"
+ jest-changed-files "^29.5.0"
+ jest-config "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-resolve-dependencies "^29.4.3"
- jest-runner "^29.4.3"
- jest-runtime "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
- jest-watcher "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-resolve-dependencies "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
+ jest-watcher "^29.5.0"
micromatch "^4.0.4"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-ansi "^6.0.0"
@@ -1341,20 +1341,30 @@
"@types/node" "*"
jest-mock "^29.4.3"
-"@jest/expect-utils@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e"
- integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ==
+"@jest/environment@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
+ integrity sha512-5FXw2+wD29YU1d4I2htpRX7jYnAyTRjP2CsXQdo9SAM8g3ifxWPSV0HnClSn71xwctr0U3oZIIH+dtbfmnbXVQ==
+ dependencies:
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ jest-mock "^29.5.0"
+
+"@jest/expect-utils@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.5.0.tgz#f74fad6b6e20f924582dc8ecbf2cb800fe43a036"
+ integrity sha512-fmKzsidoXQT2KwnrwE0SQq3uj8Z763vzR8LnLBwC2qYWEFpjX8daRsk6rHUM1QvNlEW/UJXNXm59ztmJJWs2Mg==
dependencies:
jest-get-type "^29.4.3"
-"@jest/expect@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e"
- integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ==
+"@jest/expect@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.5.0.tgz#80952f5316b23c483fbca4363ce822af79c38fba"
+ integrity sha512-PueDR2HGihN3ciUNGr4uelropW7rqUfTiOn+8u0leg/42UhblPxHkfoh0Ruu3I9Y1962P3u2DY4+h7GVTSVU6g==
dependencies:
- expect "^29.4.3"
- jest-snapshot "^29.4.3"
+ expect "^29.5.0"
+ jest-snapshot "^29.5.0"
"@jest/fake-timers@^29.4.3":
version "29.4.3"
@@ -1368,26 +1378,38 @@
jest-mock "^29.4.3"
jest-util "^29.4.3"
-"@jest/globals@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279"
- integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA==
+"@jest/fake-timers@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
+ integrity sha512-9ARvuAAQcBwDAqOnglWq2zwNIRUDtk/SCkp/ToGEhFv5r86K21l+VEs0qNTaXtyiY0lEePl3kylijSYJQqdbDg==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/expect" "^29.4.3"
- "@jest/types" "^29.4.3"
- jest-mock "^29.4.3"
+ "@jest/types" "^29.5.0"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
-"@jest/reporters@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353"
- integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg==
+"@jest/globals@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.5.0.tgz#6166c0bfc374c58268677539d0c181f9c1833298"
+ integrity sha512-S02y0qMWGihdzNbUiqSAiKSpSozSuHX5UYc7QbnHP+D9Lyw8DgGGCinrN9uSuHPeKgSSzvPom2q1nAtBvUsvPQ==
+ dependencies:
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ jest-mock "^29.5.0"
+
+"@jest/reporters@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.5.0.tgz#985dfd91290cd78ddae4914ba7921bcbabe8ac9b"
+ integrity sha512-D05STXqj/M8bP9hQNSICtPqz97u7ffGzZu+9XLucXhkOFBqKcXe04JLZOgIekOxdb73MAoBUFnqvf7MCpKk5OA==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@jridgewell/trace-mapping" "^0.3.15"
"@types/node" "*"
chalk "^4.0.0"
@@ -1400,9 +1422,9 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.1.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
- jest-worker "^29.4.3"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
slash "^3.0.0"
string-length "^4.0.1"
strip-ansi "^6.0.0"
@@ -1424,24 +1446,24 @@
callsites "^3.0.0"
graceful-fs "^4.2.9"
-"@jest/test-result@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8"
- integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA==
+"@jest/test-result@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.5.0.tgz#7c856a6ca84f45cc36926a4e9c6b57f1973f1408"
+ integrity sha512-fGl4rfitnbfLsrfx1uUpDEESS7zM8JdgZgOCQuxQvL1Sn/I6ijeAVQWGfXI9zb1i9Mzo495cIpVZhA0yr60PkQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898"
- integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw==
+"@jest/test-sequencer@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.5.0.tgz#34d7d82d3081abd523dbddc038a3ddcb9f6d3cc4"
+ integrity sha512-yPafQEcKjkSfDXyvtgiV4pevSeyuA6MQr6ZIdVkWJly9vkqjnFfcfhRQqpD5whjoU8EORki752xQmjaqoFjzMQ==
dependencies:
- "@jest/test-result" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
+ jest-haste-map "^29.5.0"
slash "^3.0.0"
"@jest/transform@^29.4.3":
@@ -1465,6 +1487,27 @@
slash "^3.0.0"
write-file-atomic "^4.0.2"
+"@jest/transform@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9"
+ integrity sha512-8vbeZWqLJOvHaDfeMuoHITGKSz5qWc9u04lnWrQE3VyuSw604PzQM824ZeX9XSjUCeDiE3GuxZe5UKa8J61NQw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.5.0"
+ "@jridgewell/trace-mapping" "^0.3.15"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.5.0"
+ jest-regex-util "^29.4.3"
+ jest-util "^29.5.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
"@jest/types@^25.5.0":
version "25.5.0"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.5.0.tgz#4d6a4793f7b9599fc3680877b856a97dbccf2a9d"
@@ -1486,10 +1529,10 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f"
- integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA==
+"@jest/types@^29.4.3", "@jest/types@^29.5.0":
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
+ integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
dependencies:
"@jest/schemas" "^29.4.3"
"@types/istanbul-lib-coverage" "^2.0.0"
@@ -2627,6 +2670,19 @@ babel-jest@^29.4.3:
graceful-fs "^4.2.9"
slash "^3.0.0"
+babel-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5"
+ integrity sha512-mA4eCDh5mSo2EcA9xQjVTpmbbNk32Zb3Q3QFQsNhaK56Q+yoXowzFodLux30HRgyOho5rsQ6B0P9QpMkvvnJ0Q==
+ dependencies:
+ "@jest/transform" "^29.5.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.5.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
babel-loader@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8"
@@ -2658,6 +2714,16 @@ babel-plugin-jest-hoist@^29.4.3:
"@types/babel__core" "^7.1.14"
"@types/babel__traverse" "^7.0.6"
+babel-plugin-jest-hoist@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a"
+ integrity sha512-zSuuuAlTMT4mzLj2nPnUm6fsE6270vdOfnpbJ+RmruU75UhLFvL0N2NgI7xpeS7NaB6hGqmd5pVpGTDYvi4Q3w==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
babel-plugin-lodash@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/babel-plugin-lodash/-/babel-plugin-lodash-3.3.4.tgz#4f6844358a1340baed182adbeffa8df9967bc196"
@@ -2765,6 +2831,14 @@ babel-preset-jest@^29.4.3:
babel-plugin-jest-hoist "^29.4.3"
babel-preset-current-node-syntax "^1.0.0"
+babel-preset-jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2"
+ integrity sha512-JOMloxOqdiBSxMAzjRaH023/vvcaSaec49zvg+2LmNsktC7ei39LTJGw02J+9uUtTZUq6xbLyJ4dxe9sSmIuAg==
+ dependencies:
+ babel-plugin-jest-hoist "^29.5.0"
+ babel-preset-current-node-syntax "^1.0.0"
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -4853,16 +4927,16 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe"
- integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg==
+expect@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.5.0.tgz#68c0509156cb2a0adb8865d413b137eeaae682f7"
+ integrity sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==
dependencies:
- "@jest/expect-utils" "^29.4.3"
+ "@jest/expect-utils" "^29.5.0"
jest-get-type "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
express@^4.17.1, express@^4.18.2:
version "4.18.2"
@@ -6514,82 +6588,83 @@ jake@^10.8.5:
filelist "^1.0.1"
minimatch "^3.0.4"
-jest-changed-files@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7"
- integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ==
+jest-changed-files@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.5.0.tgz#e88786dca8bf2aa899ec4af7644e16d9dcf9b23e"
+ integrity sha512-IFG34IUMUaNBIxjQXF/iu7g6EcdMrGRRxaUSw92I/2g2YC6vCdTltl4nHvt7Ci5nSJwXIkCu8Ka1DKF+X7Z1Ag==
dependencies:
execa "^5.0.0"
p-limit "^3.1.0"
-jest-circus@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04"
- integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw==
+jest-circus@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.5.0.tgz#b5926989449e75bff0d59944bae083c9d7fb7317"
+ integrity sha512-gq/ongqeQKAplVxqJmbeUOJJKkW3dDNPY8PjhJ5G0lBRvu0e3EWGxGy5cI4LAGA7gV2UHCtWBI4EMXK8c9nQKA==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/expect" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/expect" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
is-generator-fn "^2.0.0"
- jest-each "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-runtime "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
+ jest-each "^29.5.0"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
p-limit "^3.1.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
+ pure-rand "^6.0.0"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-cli@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163"
- integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg==
+jest-cli@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.5.0.tgz#b34c20a6d35968f3ee47a7437ff8e53e086b4a67"
+ integrity sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==
dependencies:
- "@jest/core" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/core" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
import-local "^3.0.2"
- jest-config "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-config "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
prompts "^2.0.1"
yargs "^17.3.1"
-jest-config@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978"
- integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ==
+jest-config@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.5.0.tgz#3cc972faec8c8aaea9ae158c694541b79f3748da"
+ integrity sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^29.4.3"
- "@jest/types" "^29.4.3"
- babel-jest "^29.4.3"
+ "@jest/test-sequencer" "^29.5.0"
+ "@jest/types" "^29.5.0"
+ babel-jest "^29.5.0"
chalk "^4.0.0"
ci-info "^3.2.0"
deepmerge "^4.2.2"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-circus "^29.4.3"
- jest-environment-node "^29.4.3"
+ jest-circus "^29.5.0"
+ jest-environment-node "^29.5.0"
jest-get-type "^29.4.3"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-runner "^29.4.3"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-runner "^29.5.0"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
micromatch "^4.0.4"
parse-json "^5.2.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
slash "^3.0.0"
strip-json-comments "^3.1.1"
@@ -6603,15 +6678,15 @@ jest-diff@^25.2.1:
jest-get-type "^25.2.6"
pretty-format "^25.5.0"
-jest-diff@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347"
- integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA==
+jest-diff@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.5.0.tgz#e0d83a58eb5451dcc1fa61b1c3ee4e8f5a290d63"
+ integrity sha512-LtxijLLZBduXnHSniy0WMdaHjmQnt3g5sa16W4p0HqukYTTsyTW3GD1q41TyGl5YFXj/5B2U6dlh5FM1LIMgxw==
dependencies:
chalk "^4.0.0"
diff-sequences "^29.4.3"
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
jest-docblock@^29.4.3:
version "29.4.3"
@@ -6620,16 +6695,16 @@ jest-docblock@^29.4.3:
dependencies:
detect-newline "^3.0.0"
-jest-each@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819"
- integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q==
+jest-each@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.5.0.tgz#fc6e7014f83eac68e22b7195598de8554c2e5c06"
+ integrity sha512-HM5kIJ1BTnVt+DQZ2ALp3rzXEl+g726csObrW/jpEGl+CDSSQpOJJX2KE/vEg8cxcMXdyEPu6U4QX5eruQv5hA==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
chalk "^4.0.0"
jest-get-type "^29.4.3"
- jest-util "^29.4.3"
- pretty-format "^29.4.3"
+ jest-util "^29.5.0"
+ pretty-format "^29.5.0"
jest-environment-jsdom@^29.4.3:
version "29.4.3"
@@ -6645,17 +6720,17 @@ jest-environment-jsdom@^29.4.3:
jest-util "^29.4.3"
jsdom "^20.0.0"
-jest-environment-node@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014"
- integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg==
+jest-environment-node@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.5.0.tgz#f17219d0f0cc0e68e0727c58b792c040e332c967"
+ integrity sha512-ExxuIK/+yQ+6PRGaHkKewYtg6hto2uGCgvKdb2nfJfKXgZ17DfXjvbZ+jA1Qt9A8EQSfPnt5FKIfnOO3u1h9qw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
jest-get-type@^25.2.6:
version "25.2.6"
@@ -6686,23 +6761,42 @@ jest-haste-map@^29.4.3:
optionalDependencies:
fsevents "^2.3.2"
-jest-leak-detector@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a"
- integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA==
+jest-haste-map@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de"
+ integrity sha512-IspOPnnBro8YfVYSw6yDRKh/TiCdRngjxeacCps1cQ9cgVN6+10JUcuJ1EabrgYLOATsIAigxA0rLR9x/YlrSA==
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.4.3"
+ jest-util "^29.5.0"
+ jest-worker "^29.5.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
+jest-leak-detector@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.5.0.tgz#cf4bdea9615c72bac4a3a7ba7e7930f9c0610c8c"
+ integrity sha512-u9YdeeVnghBUtpN5mVxjID7KbkKE1QU4f6uUwuxiY0vYRi9BUCLKlPEZfDGR67ofdFmDz9oPAy2G92Ujrntmow==
dependencies:
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
-jest-matcher-utils@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0"
- integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg==
+jest-matcher-utils@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.5.0.tgz#d957af7f8c0692c5453666705621ad4abc2c59c5"
+ integrity sha512-lecRtgm/rjIK0CQ7LPQwzCs2VwW6WAahA55YBuI+xqmhm7LAaxokSB8C97yJeYyT+HvQkH741StzpU41wohhWw==
dependencies:
chalk "^4.0.0"
- jest-diff "^29.4.3"
+ jest-diff "^29.5.0"
jest-get-type "^29.4.3"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
jest-message-util@^29.4.3:
version "29.4.3"
@@ -6719,6 +6813,21 @@ jest-message-util@^29.4.3:
slash "^3.0.0"
stack-utils "^2.0.3"
+jest-message-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
+ integrity sha512-Kijeg9Dag6CKtIDA7O21zNTACqD5MD/8HfIV8pdD94vFyFuer52SigdC3IQMhab3vACxXMiFk+yMHNdbqtyTGA==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.5.0"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.5.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
jest-mock@^29.4.3:
version "29.4.3"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e"
@@ -6728,6 +6837,15 @@ jest-mock@^29.4.3:
"@types/node" "*"
jest-util "^29.4.3"
+jest-mock@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed"
+ integrity sha512-GqOzvdWDE4fAV2bWQLQCkujxYWL7RxjCnj71b5VhDAGOevB3qj3Ovg26A5NI84ZpODxyzaozXLOh2NCgkbvyaw==
+ dependencies:
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ jest-util "^29.5.0"
+
jest-pnp-resolver@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
@@ -6738,88 +6856,88 @@ jest-regex-util@^29.4.3:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8"
integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg==
-jest-resolve-dependencies@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5"
- integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw==
+jest-resolve-dependencies@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.5.0.tgz#f0ea29955996f49788bf70996052aa98e7befee4"
+ integrity sha512-sjV3GFr0hDJMBpYeUuGduP+YeCRbd7S/ck6IvL3kQ9cpySYKqcqhdLLC2rFwrcL7tz5vYibomBrsFYWkIGGjOg==
dependencies:
jest-regex-util "^29.4.3"
- jest-snapshot "^29.4.3"
+ jest-snapshot "^29.5.0"
-jest-resolve@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2"
- integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw==
+jest-resolve@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.5.0.tgz#b053cc95ad1d5f6327f0ac8aae9f98795475ecdc"
+ integrity sha512-1TzxJ37FQq7J10jPtQjcc+MkCkE3GBpBecsSUWJ0qZNJpmg6m0D9/7II03yJulm3H/fvVjgqLh/k2eYg+ui52w==
dependencies:
chalk "^4.0.0"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
+ jest-haste-map "^29.5.0"
jest-pnp-resolver "^1.2.2"
- jest-util "^29.4.3"
- jest-validate "^29.4.3"
+ jest-util "^29.5.0"
+ jest-validate "^29.5.0"
resolve "^1.20.0"
resolve.exports "^2.0.0"
slash "^3.0.0"
-jest-runner@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e"
- integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA==
+jest-runner@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.5.0.tgz#6a57c282eb0ef749778d444c1d758c6a7693b6f8"
+ integrity sha512-m7b6ypERhFghJsslMLhydaXBiLf7+jXy8FwGRHO3BGV1mcQpPbwiqiKUR2zU2NJuNeMenJmlFZCsIqzJCTeGLQ==
dependencies:
- "@jest/console" "^29.4.3"
- "@jest/environment" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/console" "^29.5.0"
+ "@jest/environment" "^29.5.0"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
emittery "^0.13.1"
graceful-fs "^4.2.9"
jest-docblock "^29.4.3"
- jest-environment-node "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-leak-detector "^29.4.3"
- jest-message-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-runtime "^29.4.3"
- jest-util "^29.4.3"
- jest-watcher "^29.4.3"
- jest-worker "^29.4.3"
+ jest-environment-node "^29.5.0"
+ jest-haste-map "^29.5.0"
+ jest-leak-detector "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-resolve "^29.5.0"
+ jest-runtime "^29.5.0"
+ jest-util "^29.5.0"
+ jest-watcher "^29.5.0"
+ jest-worker "^29.5.0"
p-limit "^3.1.0"
source-map-support "0.5.13"
-jest-runtime@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf"
- integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q==
+jest-runtime@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.5.0.tgz#c83f943ee0c1da7eb91fa181b0811ebd59b03420"
+ integrity sha512-1Hr6Hh7bAgXQP+pln3homOiEZtCDZFqwmle7Ew2j8OlbkIu6uE3Y/etJQG8MLQs3Zy90xrp2C0BRrtPHG4zryw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/globals" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/globals" "^29.5.0"
"@jest/source-map" "^29.4.3"
- "@jest/test-result" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
collect-v8-coverage "^1.0.0"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
- jest-message-util "^29.4.3"
- jest-mock "^29.4.3"
+ jest-haste-map "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-mock "^29.5.0"
jest-regex-util "^29.4.3"
- jest-resolve "^29.4.3"
- jest-snapshot "^29.4.3"
- jest-util "^29.4.3"
+ jest-resolve "^29.5.0"
+ jest-snapshot "^29.5.0"
+ jest-util "^29.5.0"
slash "^3.0.0"
strip-bom "^4.0.0"
-jest-snapshot@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145"
- integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw==
+jest-snapshot@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.5.0.tgz#c9c1ce0331e5b63cd444e2f95a55a73b84b1e8ce"
+ integrity sha512-x7Wolra5V0tt3wRs3/ts3S6ciSQVypgGQlJpz2rsdQYoUKxMxPNaoHMGJN6qAuPJqS+2iQ1ZUn5kl7HCyls84g==
dependencies:
"@babel/core" "^7.11.6"
"@babel/generator" "^7.7.2"
@@ -6827,23 +6945,22 @@ jest-snapshot@^29.4.3:
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.3.3"
- "@jest/expect-utils" "^29.4.3"
- "@jest/transform" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/expect-utils" "^29.5.0"
+ "@jest/transform" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/babel__traverse" "^7.0.6"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^29.4.3"
+ expect "^29.5.0"
graceful-fs "^4.2.9"
- jest-diff "^29.4.3"
+ jest-diff "^29.5.0"
jest-get-type "^29.4.3"
- jest-haste-map "^29.4.3"
- jest-matcher-utils "^29.4.3"
- jest-message-util "^29.4.3"
- jest-util "^29.4.3"
+ jest-matcher-utils "^29.5.0"
+ jest-message-util "^29.5.0"
+ jest-util "^29.5.0"
natural-compare "^1.4.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
semver "^7.3.5"
jest-util@^29.4.3:
@@ -6858,30 +6975,42 @@ jest-util@^29.4.3:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f"
- integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw==
+jest-util@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
+ integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
dependencies:
- "@jest/types" "^29.4.3"
+ "@jest/types" "^29.5.0"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
+jest-validate@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.5.0.tgz#8e5a8f36178d40e47138dc00866a5f3bd9916ffc"
+ integrity sha512-pC26etNIi+y3HV8A+tUGr/lph9B18GnzSRAkPaaZJIE1eFdiYm6/CewuiJQ8/RlfHd1u/8Ioi8/sJ+CmbA+zAQ==
+ dependencies:
+ "@jest/types" "^29.5.0"
camelcase "^6.2.0"
chalk "^4.0.0"
jest-get-type "^29.4.3"
leven "^3.1.0"
- pretty-format "^29.4.3"
+ pretty-format "^29.5.0"
-jest-watcher@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384"
- integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA==
+jest-watcher@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.5.0.tgz#cf7f0f949828ba65ddbbb45c743a382a4d911363"
+ integrity sha512-KmTojKcapuqYrKDpRwfqcQ3zjMlwu27SYext9pt4GlF5FUgB+7XE1mcCnSm6a4uUpFyQIkb6ZhzZvHl+jiBCiA==
dependencies:
- "@jest/test-result" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/test-result" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
emittery "^0.13.1"
- jest-util "^29.4.3"
+ jest-util "^29.5.0"
string-length "^4.0.1"
jest-worker@^26.2.1, jest-worker@^26.5.0:
@@ -6903,15 +7032,25 @@ jest-worker@^29.4.3:
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386"
- integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA==
+jest-worker@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d"
+ integrity sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==
dependencies:
- "@jest/core" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@types/node" "*"
+ jest-util "^29.5.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
+jest@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.5.0.tgz#f75157622f5ce7ad53028f2f8888ab53e1f1f24e"
+ integrity sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==
+ dependencies:
+ "@jest/core" "^29.5.0"
+ "@jest/types" "^29.5.0"
import-local "^3.0.2"
- jest-cli "^29.4.3"
+ jest-cli "^29.5.0"
js-sdsl@^4.1.4:
version "4.3.0"
@@ -8871,6 +9010,15 @@ pretty-format@^29.4.3:
ansi-styles "^5.0.0"
react-is "^18.0.0"
+pretty-format@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
+ integrity sha512-V2mGkI31qdttvTFX7Mt4efOqHXqJWMu4/r66Xh3Z3BwZaPfPJgp6/gbwoujRpPUtfEF6AUUWx3Jim3GCw5g/Qw==
+ dependencies:
+ "@jest/schemas" "^29.4.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
@@ -8987,6 +9135,11 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f"
integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==
+pure-rand@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c"
+ integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==
+
q@^1.1.2:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
From a47358e27c27203425285f38be68937cc3bdb63e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 12:14:18 +0100
Subject: [PATCH 0223/1254] Bump jest-environment-jsdom from 29.4.3 to 29.5.0
(#23998)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 87 ++++++----------------------------------------------
2 files changed, 11 insertions(+), 78 deletions(-)
diff --git a/package.json b/package.json
index 59529b34a1..7b49c82fd5 100644
--- a/package.json
+++ b/package.json
@@ -152,7 +152,7 @@
"eslint-plugin-promise": "~6.1.1",
"eslint-plugin-react": "~7.32.2",
"jest": "^29.5.0",
- "jest-environment-jsdom": "^29.4.3",
+ "jest-environment-jsdom": "^29.5.0",
"postcss-scss": "^4.0.6",
"prettier": "^2.8.4",
"raf": "^3.4.1",
diff --git a/yarn.lock b/yarn.lock
index f28c926c96..c7929852cc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1331,16 +1331,6 @@
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548"
- integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA==
- dependencies:
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
- "@types/node" "*"
- jest-mock "^29.4.3"
-
"@jest/environment@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.5.0.tgz#9152d56317c1fdb1af389c46640ba74ef0bb4c65"
@@ -1366,18 +1356,6 @@
expect "^29.5.0"
jest-snapshot "^29.5.0"
-"@jest/fake-timers@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0"
- integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw==
- dependencies:
- "@jest/types" "^29.4.3"
- "@sinonjs/fake-timers" "^10.0.2"
- "@types/node" "*"
- jest-message-util "^29.4.3"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
-
"@jest/fake-timers@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.5.0.tgz#d4d09ec3286b3d90c60bdcd66ed28d35f1b4dc2c"
@@ -6706,18 +6684,18 @@ jest-each@^29.5.0:
jest-util "^29.5.0"
pretty-format "^29.5.0"
-jest-environment-jsdom@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.4.3.tgz#bd8ed3808e6d3f616403fbaf8354f77019613d90"
- integrity sha512-rFjf8JXrw3OjUzzmSE5l0XjMj0/MSVEUMCSXBGPDkfwb1T03HZI7iJSL0cGctZApPSyJxbjyKDVxkZuyhHkuTw==
+jest-environment-jsdom@^29.5.0:
+ version "29.5.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.5.0.tgz#cfe86ebaf1453f3297b5ff3470fbe94739c960cb"
+ integrity sha512-/KG8yEK4aN8ak56yFVdqFDzKNHgF4BAymCx2LbPNPsUshUlfAl0eX402Xm1pt+eoG9SLZEUVifqXtX8SK74KCw==
dependencies:
- "@jest/environment" "^29.4.3"
- "@jest/fake-timers" "^29.4.3"
- "@jest/types" "^29.4.3"
+ "@jest/environment" "^29.5.0"
+ "@jest/fake-timers" "^29.5.0"
+ "@jest/types" "^29.5.0"
"@types/jsdom" "^20.0.0"
"@types/node" "*"
- jest-mock "^29.4.3"
- jest-util "^29.4.3"
+ jest-mock "^29.5.0"
+ jest-util "^29.5.0"
jsdom "^20.0.0"
jest-environment-node@^29.5.0:
@@ -6798,21 +6776,6 @@ jest-matcher-utils@^29.5.0:
jest-get-type "^29.4.3"
pretty-format "^29.5.0"
-jest-message-util@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b"
- integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw==
- dependencies:
- "@babel/code-frame" "^7.12.13"
- "@jest/types" "^29.4.3"
- "@types/stack-utils" "^2.0.0"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- micromatch "^4.0.4"
- pretty-format "^29.4.3"
- slash "^3.0.0"
- stack-utils "^2.0.3"
-
jest-message-util@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.5.0.tgz#1f776cac3aca332ab8dd2e3b41625435085c900e"
@@ -6828,15 +6791,6 @@ jest-message-util@^29.5.0:
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e"
- integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg==
- dependencies:
- "@jest/types" "^29.4.3"
- "@types/node" "*"
- jest-util "^29.4.3"
-
jest-mock@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.5.0.tgz#26e2172bcc71d8b0195081ff1f146ac7e1518aed"
@@ -6963,19 +6917,7 @@ jest-snapshot@^29.5.0:
pretty-format "^29.5.0"
semver "^7.3.5"
-jest-util@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496"
- integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q==
- dependencies:
- "@jest/types" "^29.4.3"
- "@types/node" "*"
- chalk "^4.0.0"
- ci-info "^3.2.0"
- graceful-fs "^4.2.9"
- picomatch "^2.2.3"
-
-jest-util@^29.5.0:
+jest-util@^29.4.3, jest-util@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
@@ -9001,15 +8943,6 @@ pretty-format@^27.0.2:
ansi-styles "^5.0.0"
react-is "^17.0.1"
-pretty-format@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c"
- integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA==
- dependencies:
- "@jest/schemas" "^29.4.3"
- ansi-styles "^5.0.0"
- react-is "^18.0.0"
-
pretty-format@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.5.0.tgz#283134e74f70e2e3e7229336de0e4fce94ccde5a"
From 60d664eab8883ca8cad3edb1924c94efdc33c899 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 12:53:48 +0100
Subject: [PATCH 0224/1254] Bump rubocop from 1.45.1 to 1.48.0 (#23999)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index ca6befa2a6..bd1aece576 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -599,18 +599,18 @@ GEM
rspec_chunked (0.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
- rubocop (1.45.1)
+ rubocop (1.48.0)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8, < 3.0)
rexml (>= 3.2.5, < 4.0)
- rubocop-ast (>= 1.24.1, < 2.0)
+ rubocop-ast (>= 1.26.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 3.0)
- rubocop-ast (1.24.1)
- parser (>= 3.1.1.0)
+ rubocop-ast (1.27.0)
+ parser (>= 3.2.1.0)
rubocop-capybara (2.17.0)
rubocop (~> 1.41)
rubocop-performance (1.16.0)
From f47c404f88980e6f09fba8039357930862e84938 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 12:54:12 +0100
Subject: [PATCH 0225/1254] Bump mkdirp from 2.1.3 to 2.1.5 (#23994)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 7b49c82fd5..4d6e2f8b8d 100644
--- a/package.json
+++ b/package.json
@@ -77,7 +77,7 @@
"mark-loader": "^0.1.6",
"marky": "^1.2.5",
"mini-css-extract-plugin": "^1.6.2",
- "mkdirp": "^2.1.3",
+ "mkdirp": "^2.1.5",
"npmlog": "^7.0.1",
"object-assign": "^4.1.1",
"object.values": "^1.1.6",
diff --git a/yarn.lock b/yarn.lock
index c7929852cc..cdd57c1bce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7737,10 +7737,10 @@ mkdirp@^1.0, mkdirp@^1.0.3, mkdirp@^1.0.4:
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
-mkdirp@^2.1.3:
- version "2.1.3"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.3.tgz#b083ff37be046fd3d6552468c1f0ff44c1545d1f"
- integrity sha512-sjAkg21peAG9HS+Dkx7hlG9Ztx7HLeKnvB3NQRcu/mltCVmvkF0pisbiTSfDVYTT86XEfZrTUosLdZLStquZUw==
+mkdirp@^2.1.5:
+ version "2.1.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.5.tgz#78d7eaf15e069ba7b6b47d76dd94cfadf7a4062f"
+ integrity sha512-jbjfql+shJtAPrFoKxHOXip4xS+kul9W3OzfzzrqueWK2QMGon2bFH2opl6W9EagBThjEz+iysyi/swOoVfB/w==
mousetrap@^1.5.2:
version "1.6.5"
From 0bc1a002fda69ce4c5015cbf68dc5a86fdc679b9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 8 Mar 2023 16:25:16 +0100
Subject: [PATCH 0226/1254] Bump babel-jest from 29.4.3 to 29.5.0 (#24007)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 85 ++--------------------------------------------------
2 files changed, 3 insertions(+), 84 deletions(-)
diff --git a/package.json b/package.json
index 4d6e2f8b8d..efc8a0dc20 100644
--- a/package.json
+++ b/package.json
@@ -145,7 +145,7 @@
"@babel/eslint-parser": "^7.19.1",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
- "babel-jest": "^29.4.3",
+ "babel-jest": "^29.5.0",
"eslint": "^8.33.0",
"eslint-plugin-import": "~2.27.5",
"eslint-plugin-jsx-a11y": "~6.7.1",
diff --git a/yarn.lock b/yarn.lock
index cdd57c1bce..29d74690fa 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1444,27 +1444,6 @@
jest-haste-map "^29.5.0"
slash "^3.0.0"
-"@jest/transform@^29.4.3":
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037"
- integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg==
- dependencies:
- "@babel/core" "^7.11.6"
- "@jest/types" "^29.4.3"
- "@jridgewell/trace-mapping" "^0.3.15"
- babel-plugin-istanbul "^6.1.1"
- chalk "^4.0.0"
- convert-source-map "^2.0.0"
- fast-json-stable-stringify "^2.1.0"
- graceful-fs "^4.2.9"
- jest-haste-map "^29.4.3"
- jest-regex-util "^29.4.3"
- jest-util "^29.4.3"
- micromatch "^4.0.4"
- pirates "^4.0.4"
- slash "^3.0.0"
- write-file-atomic "^4.0.2"
-
"@jest/transform@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.5.0.tgz#cf9c872d0965f0cbd32f1458aa44a2b1988b00f9"
@@ -1507,7 +1486,7 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^29.4.3", "@jest/types@^29.5.0":
+"@jest/types@^29.5.0":
version "29.5.0"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.5.0.tgz#f59ef9b031ced83047c67032700d8c807d6e1593"
integrity sha512-qbu7kN6czmVRc3xWFQcAN03RAUamgppVUdXrvl1Wr3jlNF93o9mJbGcDWrwGB6ht44u7efB1qCFgVQmca24Uog==
@@ -2635,19 +2614,6 @@ axobject-query@^3.1.1:
dependencies:
deep-equal "^2.0.5"
-babel-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792"
- integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw==
- dependencies:
- "@jest/transform" "^29.4.3"
- "@types/babel__core" "^7.1.14"
- babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^29.4.3"
- chalk "^4.0.0"
- graceful-fs "^4.2.9"
- slash "^3.0.0"
-
babel-jest@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.5.0.tgz#3fe3ddb109198e78b1c88f9ebdecd5e4fc2f50a5"
@@ -2682,16 +2648,6 @@ babel-plugin-istanbul@^6.1.1:
istanbul-lib-instrument "^5.0.4"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101"
- integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q==
- dependencies:
- "@babel/template" "^7.3.3"
- "@babel/types" "^7.3.3"
- "@types/babel__core" "^7.1.14"
- "@types/babel__traverse" "^7.0.6"
-
babel-plugin-jest-hoist@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.5.0.tgz#a97db437936f441ec196990c9738d4b88538618a"
@@ -2801,14 +2757,6 @@ babel-preset-current-node-syntax@^1.0.0:
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52"
- integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw==
- dependencies:
- babel-plugin-jest-hoist "^29.4.3"
- babel-preset-current-node-syntax "^1.0.0"
-
babel-preset-jest@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.5.0.tgz#57bc8cc88097af7ff6a5ab59d1cd29d52a5916e2"
@@ -6720,25 +6668,6 @@ jest-get-type@^29.4.3:
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5"
integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg==
-jest-haste-map@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2"
- integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ==
- dependencies:
- "@jest/types" "^29.4.3"
- "@types/graceful-fs" "^4.1.3"
- "@types/node" "*"
- anymatch "^3.0.3"
- fb-watchman "^2.0.0"
- graceful-fs "^4.2.9"
- jest-regex-util "^29.4.3"
- jest-util "^29.4.3"
- jest-worker "^29.4.3"
- micromatch "^4.0.4"
- walker "^1.0.8"
- optionalDependencies:
- fsevents "^2.3.2"
-
jest-haste-map@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.5.0.tgz#69bd67dc9012d6e2723f20a945099e972b2e94de"
@@ -6917,7 +6846,7 @@ jest-snapshot@^29.5.0:
pretty-format "^29.5.0"
semver "^7.3.5"
-jest-util@^29.4.3, jest-util@^29.5.0:
+jest-util@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.5.0.tgz#24a4d3d92fc39ce90425311b23c27a6e0ef16b8f"
integrity sha512-RYMgG/MTadOr5t8KdhejfvUU82MxsCu5MF6KuDUHl+NuwzUt+Sm6jJWxTJVrDR1j5M/gJVCPKQEpWXY+yIQ6lQ==
@@ -6964,16 +6893,6 @@ jest-worker@^26.2.1, jest-worker@^26.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest-worker@^29.4.3:
- version "29.4.3"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e"
- integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA==
- dependencies:
- "@types/node" "*"
- jest-util "^29.4.3"
- merge-stream "^2.0.0"
- supports-color "^8.0.0"
-
jest-worker@^29.5.0:
version "29.5.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.5.0.tgz#bdaefb06811bd3384d93f009755014d8acb4615d"
From b715bd8e53537c44915fa76e89e4af53486b027f Mon Sep 17 00:00:00 2001
From: 9p4
Date: Wed, 8 Mar 2023 11:06:53 -0500
Subject: [PATCH 0227/1254] Add refreshing many accounts at once with "tootctl
accounts refresh" (#23304)
---
lib/mastodon/accounts_cli.rb | 36 +++++++++++++++++++++---------------
1 file changed, 21 insertions(+), 15 deletions(-)
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 98855cbd06..a6532541e0 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -372,16 +372,16 @@ module Mastodon
option :concurrency, type: :numeric, default: 5, aliases: [:c]
option :verbose, type: :boolean, aliases: [:v]
option :dry_run, type: :boolean
- desc 'refresh [USERNAME]', 'Fetch remote user data and files'
+ desc 'refresh [USERNAMES]', 'Fetch remote user data and files'
long_desc <<-LONG_DESC
Fetch remote user data and files for one or multiple accounts.
With the --all option, all remote accounts will be processed.
Through the --domain option, this can be narrowed down to a
- specific domain only. Otherwise, a single remote account must
- be specified with USERNAME.
+ specific domain only. Otherwise, remote accounts must be
+ specified with space-separated USERNAMES.
LONG_DESC
- def refresh(username = nil)
+ def refresh(*usernames)
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
if options[:domain] || options[:all]
@@ -397,19 +397,25 @@ module Mastodon
end
say("Refreshed #{processed} accounts#{dry_run}", :green, true)
- elsif username.present?
- username, domain = username.split('@')
- account = Account.find_remote(username, domain)
+ elsif !usernames.empty?
+ usernames.each do |user|
+ user, domain = user.split('@')
+ account = Account.find_remote(user, domain)
- if account.nil?
- say('No such account', :red)
- exit(1)
- end
+ if account.nil?
+ say('No such account', :red)
+ exit(1)
+ end
- unless options[:dry_run]
- account.reset_avatar!
- account.reset_header!
- account.save
+ next if options[:dry_run]
+
+ begin
+ account.reset_avatar!
+ account.reset_header!
+ account.save
+ rescue Mastodon::UnexpectedResponseError
+ say("Account failed: #{user}@#{domain}", :red)
+ end
end
say("OK#{dry_run}", :green)
From 9dfe2dbd3f29d1d6f3ffb530c9d9e782b56b5c95 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 8 Mar 2023 13:26:25 -0500
Subject: [PATCH 0228/1254] Skip rebase-needed job for i10n branch (#24026)
---
.github/workflows/rebase-needed.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/rebase-needed.yml b/.github/workflows/rebase-needed.yml
index 944ae7b283..6a8035210c 100644
--- a/.github/workflows/rebase-needed.yml
+++ b/.github/workflows/rebase-needed.yml
@@ -4,9 +4,11 @@ on:
push:
branches-ignore:
- 'dependabot/**'
+ - 'l10n_main'
pull_request_target:
branches-ignore:
- 'dependabot/**'
+ - 'l10n_main'
types: [synchronize]
permissions:
From 684a970b3c7ce19ec419c4db52b67a3b0903f493 Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Wed, 8 Mar 2023 19:56:41 +0100
Subject: [PATCH 0229/1254] Unescape HTML entities (#24019)
---
app/lib/plain_text_formatter.rb | 6 ++-
spec/lib/plain_text_formatter_spec.rb | 61 ++++++++++++++++++++++++---
2 files changed, 61 insertions(+), 6 deletions(-)
diff --git a/app/lib/plain_text_formatter.rb b/app/lib/plain_text_formatter.rb
index 08aa296964..6fa2bc5d2c 100644
--- a/app/lib/plain_text_formatter.rb
+++ b/app/lib/plain_text_formatter.rb
@@ -18,7 +18,7 @@ class PlainTextFormatter
if local?
text
else
- strip_tags(insert_newlines).chomp
+ html_entities.decode(strip_tags(insert_newlines)).chomp
end
end
@@ -27,4 +27,8 @@ class PlainTextFormatter
def insert_newlines
text.gsub(NEWLINE_TAGS_RE) { |match| "#{match}\n" }
end
+
+ def html_entities
+ HTMLEntities.new
+ end
end
diff --git a/spec/lib/plain_text_formatter_spec.rb b/spec/lib/plain_text_formatter_spec.rb
index 4a0519aaf6..80b3c331a6 100644
--- a/spec/lib/plain_text_formatter_spec.rb
+++ b/spec/lib/plain_text_formatter_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe PlainTextFormatter do
describe '#to_s' do
subject { described_class.new(status.text, status.local?).to_s }
- context 'given a post with local status' do
+ context 'when status is local' do
let(:status) { Fabricate(:status, text: '
a text by a nerd who uses an HTML tag in text
', uri: nil) }
it 'returns the raw text' do
@@ -14,12 +14,63 @@ RSpec.describe PlainTextFormatter do
end
end
- context 'given a post with remote status' do
+ context 'when status is remote' do
let(:remote_account) { Fabricate(:account, domain: 'remote.test', username: 'bob', url: 'https://remote.test/') }
- let(:status) { Fabricate(:status, account: remote_account, text: '
Hello
') }
- it 'returns tag-stripped text' do
- expect(subject).to eq 'Hello'
+ context 'when text contains inline HTML tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Loremipsum') }
+
+ it 'strips the tags' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
+ end
+
+ context 'when text contains
tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: '
Lorem
ipsum
') }
+
+ it 'inserts a newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains a single tag' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') }
+
+ it 'inserts a newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains consecutive tag' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem
ipsum') }
+
+ it 'inserts a single newline' do
+ expect(subject).to eq "Lorem\nipsum"
+ end
+ end
+
+ context 'when text contains HTML entity' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem & ipsum ❤') }
+
+ it 'unescapes the entity' do
+ expect(subject).to eq 'Lorem & ipsum ❤'
+ end
+ end
+
+ context 'when text contains ipsum') }
+
+ it 'strips the tag and its contents' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
+ end
+
+ context 'when text contains an HTML comment tags' do
+ let(:status) { Fabricate(:status, account: remote_account, text: 'Lorem ipsum') }
+
+ it 'strips the comment' do
+ expect(subject).to eq 'Lorem ipsum'
+ end
end
end
end
From 2f7a663b0bccd7b5de1fa47b89a7bdc7591e69ec Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 9 Mar 2023 08:27:48 -0500
Subject: [PATCH 0230/1254] Explicitly set github repo in instance presenter
spec (#24036)
---
Gemfile | 1 +
Gemfile.lock | 1 +
spec/presenters/instance_presenter_spec.rb | 24 ++++++++++++++++++++--
3 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/Gemfile b/Gemfile
index eaaf1bf1fc..7a836b6ba4 100644
--- a/Gemfile
+++ b/Gemfile
@@ -117,6 +117,7 @@ end
group :test do
gem 'capybara', '~> 3.38'
+ gem 'climate_control'
gem 'faker', '~> 3.1'
gem 'json-schema', '~> 3.0'
gem 'rack-test', '~> 2.0'
diff --git a/Gemfile.lock b/Gemfile.lock
index bd1aece576..e5ad5bfe54 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -784,6 +784,7 @@ DEPENDENCIES
capybara (~> 3.38)
charlock_holmes (~> 0.7.7)
chewy (~> 7.2)
+ climate_control
cocoon (~> 1.2)
color_diff (~> 0.1)
concurrent-ruby
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 29170a79ae..795abd8b45 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -89,8 +89,28 @@ describe InstancePresenter do
end
describe '#source_url' do
- it 'returns "https://github.com/mastodon/mastodon"' do
- expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon')
+ context 'with the GITHUB_REPOSITORY env variable set' do
+ around do |example|
+ ClimateControl.modify GITHUB_REPOSITORY: 'other/repo' do
+ example.run
+ end
+ end
+
+ it 'uses the env variable to build a repo URL' do
+ expect(instance_presenter.source_url).to eq('https://github.com/other/repo')
+ end
+ end
+
+ context 'without the GITHUB_REPOSITORY env variable set' do
+ around do |example|
+ ClimateControl.modify GITHUB_REPOSITORY: nil do
+ example.run
+ end
+ end
+
+ it 'defaults to the core mastodon repo URL' do
+ expect(instance_presenter.source_url).to eq('https://github.com/mastodon/mastodon')
+ end
end
end
From a52ccd7ad98d7d60dffb520c0397ba8aa4c2eb9d Mon Sep 17 00:00:00 2001
From: Rodion Borisov
Date: Thu, 9 Mar 2023 16:35:44 +0300
Subject: [PATCH 0231/1254] Center the text itself in upload area (#24029)
---
app/javascript/styles/mastodon/components.scss | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 583acfac0e..ecec71804b 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -4509,6 +4509,7 @@ a.status-card.compact:hover {
display: flex;
align-items: center;
justify-content: center;
+ text-align: center;
color: $secondary-text-color;
font-size: 18px;
font-weight: 500;
From 4fa542f3c4b7eeb8dade6f7be2463ce4b702b68e Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Fri, 10 Mar 2023 05:10:47 -0500
Subject: [PATCH 0232/1254] Sync CI and Docker Compose image versions (#24053)
---
.devcontainer/docker-compose.yml | 2 +-
.github/workflows/test-migrations-one-step.yml | 4 ++--
.github/workflows/test-migrations-two-step.yml | 4 ++--
.github/workflows/test-ruby.yml | 4 ++--
4 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml
index 19f9c0b5b3..1b1756eca6 100644
--- a/.devcontainer/docker-compose.yml
+++ b/.devcontainer/docker-compose.yml
@@ -41,7 +41,7 @@ services:
- internal_network
redis:
- image: redis:6-alpine
+ image: redis:7-alpine
restart: unless-stopped
volumes:
- redis-data:/data
diff --git a/.github/workflows/test-migrations-one-step.yml b/.github/workflows/test-migrations-one-step.yml
index 8f070697ca..a3594e5535 100644
--- a/.github/workflows/test-migrations-one-step.yml
+++ b/.github/workflows/test-migrations-one-step.yml
@@ -25,7 +25,7 @@ jobs:
services:
postgres:
- image: postgres:14.5
+ image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -38,7 +38,7 @@ jobs:
- 5432:5432
redis:
- image: redis:7.0
+ image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
diff --git a/.github/workflows/test-migrations-two-step.yml b/.github/workflows/test-migrations-two-step.yml
index 2fdce80254..f357bc9f68 100644
--- a/.github/workflows/test-migrations-two-step.yml
+++ b/.github/workflows/test-migrations-two-step.yml
@@ -25,7 +25,7 @@ jobs:
services:
postgres:
- image: postgres:14.5
+ image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -37,7 +37,7 @@ jobs:
ports:
- 5432:5432
redis:
- image: redis:7.0
+ image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
diff --git a/.github/workflows/test-ruby.yml b/.github/workflows/test-ruby.yml
index 39b4341884..bfdabd4ea6 100644
--- a/.github/workflows/test-ruby.yml
+++ b/.github/workflows/test-ruby.yml
@@ -63,7 +63,7 @@ jobs:
services:
postgres:
- image: postgres:14.5
+ image: postgres:14-alpine
env:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
@@ -76,7 +76,7 @@ jobs:
- 5432:5432
redis:
- image: redis:7.0
+ image: redis:7-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
From 53309fa31a4106500e2da80b845fad08d7d09900 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 10 Mar 2023 11:12:06 +0100
Subject: [PATCH 0233/1254] Bump puma from 6.1.0 to 6.1.1 (#24045)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index e5ad5bfe54..8fbb7c5d1a 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -497,7 +497,7 @@ GEM
premailer (~> 1.7, >= 1.7.9)
private_address_check (0.5.0)
public_suffix (5.0.1)
- puma (6.1.0)
+ puma (6.1.1)
nio4r (~> 2.0)
pundit (2.3.0)
activesupport (>= 3.0.0)
From 56bddfbfa39956ea3a8c52721eb364b1120634f6 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Fri, 10 Mar 2023 06:12:51 -0500
Subject: [PATCH 0234/1254] Serializers spec coverage (#24017)
---
.rubocop_todo.yml | 4 +++
.../encrypted_message_fabricator.rb | 7 +++++
.../activitypub/device_serializer_spec.rb | 20 ++++++++++++++
.../one_time_key_serializer_spec.rb | 20 ++++++++++++++
.../activitypub/undo_like_serializer_spec.rb | 20 ++++++++++++++
.../activitypub/vote_serializer_spec.rb | 20 ++++++++++++++
.../rest/encrypted_message_serializer_spec.rb | 20 ++++++++++++++
.../rest/instance_serializer_spec.rb | 20 ++++++++++++++
.../rest/keys/claim_result_serializer_spec.rb | 20 ++++++++++++++
.../rest/keys/device_serializer_spec.rb | 20 ++++++++++++++
.../rest/keys/query_result_serializer_spec.rb | 20 ++++++++++++++
.../rest/suggestion_serializer_spec.rb | 26 +++++++++++++++++++
12 files changed, 217 insertions(+)
create mode 100644 spec/fabricators/encrypted_message_fabricator.rb
create mode 100644 spec/serializers/activitypub/device_serializer_spec.rb
create mode 100644 spec/serializers/activitypub/one_time_key_serializer_spec.rb
create mode 100644 spec/serializers/activitypub/undo_like_serializer_spec.rb
create mode 100644 spec/serializers/activitypub/vote_serializer_spec.rb
create mode 100644 spec/serializers/rest/encrypted_message_serializer_spec.rb
create mode 100644 spec/serializers/rest/instance_serializer_spec.rb
create mode 100644 spec/serializers/rest/keys/claim_result_serializer_spec.rb
create mode 100644 spec/serializers/rest/keys/device_serializer_spec.rb
create mode 100644 spec/serializers/rest/keys/query_result_serializer_spec.rb
create mode 100644 spec/serializers/rest/suggestion_serializer_spec.rb
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index b53f655bd0..90e6448560 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -698,7 +698,11 @@ RSpec/FilePath:
- 'spec/lib/activitypub/tag_manager_spec.rb'
- 'spec/lib/ostatus/tag_manager_spec.rb'
- 'spec/lib/sanitize_config_spec.rb'
+ - 'spec/serializers/activitypub/device_serializer_spec.rb'
- 'spec/serializers/activitypub/note_serializer_spec.rb'
+ - 'spec/serializers/activitypub/one_time_key_serializer_spec.rb'
+ - 'spec/serializers/activitypub/undo_like_serializer_spec.rb'
+ - 'spec/serializers/activitypub/vote_serializer_spec.rb'
- 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
diff --git a/spec/fabricators/encrypted_message_fabricator.rb b/spec/fabricators/encrypted_message_fabricator.rb
new file mode 100644
index 0000000000..43b3105146
--- /dev/null
+++ b/spec/fabricators/encrypted_message_fabricator.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+Fabricator(:encrypted_message) do
+ device
+ from_account { Fabricate(:account) }
+ from_device_id { Faker::Number.number(digits: 5) }
+end
diff --git a/spec/serializers/activitypub/device_serializer_spec.rb b/spec/serializers/activitypub/device_serializer_spec.rb
new file mode 100644
index 0000000000..2a3be82121
--- /dev/null
+++ b/spec/serializers/activitypub/device_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::DeviceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:device) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Device')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/one_time_key_serializer_spec.rb b/spec/serializers/activitypub/one_time_key_serializer_spec.rb
new file mode 100644
index 0000000000..6fe1f06185
--- /dev/null
+++ b/spec/serializers/activitypub/one_time_key_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::OneTimeKeySerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:one_time_key) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Curve25519Key')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/undo_like_serializer_spec.rb b/spec/serializers/activitypub/undo_like_serializer_spec.rb
new file mode 100644
index 0000000000..43cf7192e4
--- /dev/null
+++ b/spec/serializers/activitypub/undo_like_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::UndoLikeSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:favourite) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Undo')
+ end
+ end
+end
diff --git a/spec/serializers/activitypub/vote_serializer_spec.rb b/spec/serializers/activitypub/vote_serializer_spec.rb
new file mode 100644
index 0000000000..c329542d79
--- /dev/null
+++ b/spec/serializers/activitypub/vote_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::VoteSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:poll_vote) }
+
+ describe 'type' do
+ it 'returns correct serialized type' do
+ expect(serialization['type']).to eq('Create')
+ end
+ end
+end
diff --git a/spec/serializers/rest/encrypted_message_serializer_spec.rb b/spec/serializers/rest/encrypted_message_serializer_spec.rb
new file mode 100644
index 0000000000..e0e70a3b84
--- /dev/null
+++ b/spec/serializers/rest/encrypted_message_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::EncryptedMessageSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Fabricate(:encrypted_message) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account_id']).to eq(record.from_account.id.to_s)
+ end
+ end
+end
diff --git a/spec/serializers/rest/instance_serializer_spec.rb b/spec/serializers/rest/instance_serializer_spec.rb
new file mode 100644
index 0000000000..15a5de18dd
--- /dev/null
+++ b/spec/serializers/rest/instance_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::InstanceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { InstancePresenter.new }
+
+ describe 'usage' do
+ it 'returns recent usage data' do
+ expect(serialization['usage']).to eq({ 'users' => { 'active_month' => 0 } })
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/claim_result_serializer_spec.rb b/spec/serializers/rest/keys/claim_result_serializer_spec.rb
new file mode 100644
index 0000000000..cf9416f032
--- /dev/null
+++ b/spec/serializers/rest/keys/claim_result_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::ClaimResultSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Keys::ClaimService::Result.new(Account.new(id: 123), 456) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account_id']).to eq('123')
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/device_serializer_spec.rb b/spec/serializers/rest/keys/device_serializer_spec.rb
new file mode 100644
index 0000000000..c15e197cb8
--- /dev/null
+++ b/spec/serializers/rest/keys/device_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::DeviceSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Device.new(name: 'Device name') }
+
+ describe 'name' do
+ it 'returns the name' do
+ expect(serialization['name']).to eq('Device name')
+ end
+ end
+end
diff --git a/spec/serializers/rest/keys/query_result_serializer_spec.rb b/spec/serializers/rest/keys/query_result_serializer_spec.rb
new file mode 100644
index 0000000000..983780ae98
--- /dev/null
+++ b/spec/serializers/rest/keys/query_result_serializer_spec.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::Keys::QueryResultSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) { Keys::QueryService::Result.new(Account.new(id: 123), []) }
+
+ describe 'account' do
+ it 'returns the associated account id' do
+ expect(serialization['account_id']).to eq('123')
+ end
+ end
+end
diff --git a/spec/serializers/rest/suggestion_serializer_spec.rb b/spec/serializers/rest/suggestion_serializer_spec.rb
new file mode 100644
index 0000000000..b3c086208d
--- /dev/null
+++ b/spec/serializers/rest/suggestion_serializer_spec.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe REST::SuggestionSerializer do
+ let(:serialization) do
+ JSON.parse(
+ ActiveModelSerializers::SerializableResource.new(
+ record, serializer: described_class
+ ).to_json
+ )
+ end
+ let(:record) do
+ AccountSuggestions::Suggestion.new(
+ account: account,
+ source: 'SuggestionSource'
+ )
+ end
+ let(:account) { Fabricate(:account) }
+
+ describe 'account' do
+ it 'returns the associated account' do
+ expect(serialization['account']['id']).to eq(account.id.to_s)
+ end
+ end
+end
From 688287c59d526ef76089322a368789f5846c6ac3 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Fri, 10 Mar 2023 07:33:30 -0500
Subject: [PATCH 0235/1254] Coverage improvement round-out following up
previous work (#23987)
---
.rubocop_todo.yml | 1 +
.../activitypub/claims_controller_spec.rb | 19 +++++++++
.../api/v2/instances_controller_spec.rb | 22 ++++++++++
.../api/v2/suggestions_controller_spec.rb | 22 ++++++++++
.../controllers/auth/setup_controller_spec.rb | 25 +++++++++++
.../controllers/custom_css_controller_spec.rb | 14 +++++++
.../filters/statuses_controller_spec.rb | 41 +++++++++++++++++++
spec/controllers/filters_controller_spec.rb | 27 ++++++++++++
spec/controllers/health_controller_spec.rb | 14 +++++++
spec/controllers/privacy_controller_spec.rb | 14 +++++++
spec/helpers/statuses_helper_spec.rb | 28 ++++++++++++-
spec/lib/importer/base_importer_spec.rb | 14 +++++++
spec/lib/search_query_transformer_spec.rb | 18 ++++++++
spec/models/admin/appeal_filter_spec.rb | 16 ++++++++
spec/models/form/admin_settings_spec.rb | 36 ++++++++++++++++
.../form/status_filter_batch_action_spec.rb | 13 ++++++
.../verify_account_links_worker_spec.rb | 13 ++++++
17 files changed, 336 insertions(+), 1 deletion(-)
create mode 100644 spec/controllers/activitypub/claims_controller_spec.rb
create mode 100644 spec/controllers/api/v2/instances_controller_spec.rb
create mode 100644 spec/controllers/api/v2/suggestions_controller_spec.rb
create mode 100644 spec/controllers/auth/setup_controller_spec.rb
create mode 100644 spec/controllers/custom_css_controller_spec.rb
create mode 100644 spec/controllers/filters/statuses_controller_spec.rb
create mode 100644 spec/controllers/filters_controller_spec.rb
create mode 100644 spec/controllers/health_controller_spec.rb
create mode 100644 spec/controllers/privacy_controller_spec.rb
create mode 100644 spec/lib/importer/base_importer_spec.rb
create mode 100644 spec/lib/search_query_transformer_spec.rb
create mode 100644 spec/models/admin/appeal_filter_spec.rb
create mode 100644 spec/models/form/admin_settings_spec.rb
create mode 100644 spec/models/form/status_filter_batch_action_spec.rb
create mode 100644 spec/workers/verify_account_links_worker_spec.rb
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 90e6448560..0035478c40 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -661,6 +661,7 @@ RSpec/ExpectInHook:
RSpec/FilePath:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
+ - 'spec/controllers/activitypub/claims_controller_spec.rb'
- 'spec/controllers/activitypub/collections_controller_spec.rb'
- 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- 'spec/controllers/activitypub/inboxes_controller_spec.rb'
diff --git a/spec/controllers/activitypub/claims_controller_spec.rb b/spec/controllers/activitypub/claims_controller_spec.rb
new file mode 100644
index 0000000000..f00eeb732a
--- /dev/null
+++ b/spec/controllers/activitypub/claims_controller_spec.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe ActivityPub::ClaimsController do
+ let(:account) { Fabricate(:account) }
+
+ describe 'POST #create' do
+ context 'without signature' do
+ before do
+ post :create, params: { account_username: account.username }, body: '{}'
+ end
+
+ it 'returns http not authorized' do
+ expect(response).to have_http_status(401)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/instances_controller_spec.rb b/spec/controllers/api/v2/instances_controller_spec.rb
new file mode 100644
index 0000000000..b7206da0a2
--- /dev/null
+++ b/spec/controllers/api/v2/instances_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::V2::InstancesController do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/suggestions_controller_spec.rb b/spec/controllers/api/v2/suggestions_controller_spec.rb
new file mode 100644
index 0000000000..5e6508bfda
--- /dev/null
+++ b/spec/controllers/api/v2/suggestions_controller_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::V2::SuggestionsController do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read') }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ it 'returns http success' do
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/auth/setup_controller_spec.rb b/spec/controllers/auth/setup_controller_spec.rb
new file mode 100644
index 0000000000..75e42aaf96
--- /dev/null
+++ b/spec/controllers/auth/setup_controller_spec.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Auth::SetupController do
+ render_views
+
+ describe 'GET #show' do
+ context 'with a signed out request' do
+ it 'returns http redirect' do
+ get :show
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with an unconfirmed signed in user' do
+ before { sign_in Fabricate(:user, confirmed_at: nil) }
+
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/custom_css_controller_spec.rb b/spec/controllers/custom_css_controller_spec.rb
new file mode 100644
index 0000000000..47fe6031fa
--- /dev/null
+++ b/spec/controllers/custom_css_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe CustomCssController do
+ render_views
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/filters/statuses_controller_spec.rb b/spec/controllers/filters/statuses_controller_spec.rb
new file mode 100644
index 0000000000..492361188b
--- /dev/null
+++ b/spec/controllers/filters/statuses_controller_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Filters::StatusesController do
+ render_views
+
+ describe 'GET #index' do
+ let(:filter) { Fabricate(:custom_filter) }
+
+ context 'with signed out user' do
+ it 'redirects' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with a signed in user' do
+ context 'with the filter user signed in' do
+ before { sign_in(filter.account.user) }
+
+ it 'returns http success' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'with another user signed in' do
+ before { sign_in(Fabricate(:user)) }
+
+ it 'returns http not found' do
+ get :index, params: { filter_id: filter }
+
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/controllers/filters_controller_spec.rb b/spec/controllers/filters_controller_spec.rb
new file mode 100644
index 0000000000..f68f87ba7a
--- /dev/null
+++ b/spec/controllers/filters_controller_spec.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe FiltersController do
+ render_views
+
+ describe 'GET #index' do
+ context 'with signed out user' do
+ it 'redirects' do
+ get :index
+
+ expect(response).to be_redirect
+ end
+ end
+
+ context 'with a signed in user' do
+ before { sign_in(Fabricate(:user)) }
+
+ it 'returns http success' do
+ get :index
+
+ expect(response).to have_http_status(200)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/health_controller_spec.rb b/spec/controllers/health_controller_spec.rb
new file mode 100644
index 0000000000..282b664199
--- /dev/null
+++ b/spec/controllers/health_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe HealthController do
+ render_views
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/controllers/privacy_controller_spec.rb b/spec/controllers/privacy_controller_spec.rb
new file mode 100644
index 0000000000..c92c71ea64
--- /dev/null
+++ b/spec/controllers/privacy_controller_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe PrivacyController do
+ render_views
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+ expect(response).to have_http_status(200)
+ end
+ end
+end
diff --git a/spec/helpers/statuses_helper_spec.rb b/spec/helpers/statuses_helper_spec.rb
index c8ca2ed323..105da7e1b1 100644
--- a/spec/helpers/statuses_helper_spec.rb
+++ b/spec/helpers/statuses_helper_spec.rb
@@ -2,7 +2,33 @@
require 'rails_helper'
-RSpec.describe StatusesHelper, type: :helper do
+describe StatusesHelper do
+ describe 'status_text_summary' do
+ context 'with blank text' do
+ let(:status) { Status.new(spoiler_text: '') }
+
+ it 'returns immediately with nil' do
+ result = helper.status_text_summary(status)
+ expect(result).to be_nil
+ end
+ end
+
+ context 'with present text' do
+ let(:status) { Status.new(spoiler_text: 'SPOILERS!!!') }
+
+ it 'returns the content warning' do
+ result = helper.status_text_summary(status)
+ expect(result).to eq(I18n.t('statuses.content_warning', warning: 'SPOILERS!!!'))
+ end
+ end
+ end
+
+ def status_text_summary(status)
+ return if status.spoiler_text.blank?
+
+ I18n.t('statuses.content_warning', warning: status.spoiler_text)
+ end
+
describe 'link_to_newer' do
it 'returns a link to newer content' do
url = 'https://example.com'
diff --git a/spec/lib/importer/base_importer_spec.rb b/spec/lib/importer/base_importer_spec.rb
new file mode 100644
index 0000000000..78e9a869b8
--- /dev/null
+++ b/spec/lib/importer/base_importer_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Importer::BaseImporter do
+ describe 'import!' do
+ let(:pool) { Concurrent::FixedThreadPool.new(5) }
+ let(:importer) { described_class.new(batch_size: 123, executor: pool) }
+
+ it 'raises an error' do
+ expect { importer.import! }.to raise_error(NotImplementedError)
+ end
+ end
+end
diff --git a/spec/lib/search_query_transformer_spec.rb b/spec/lib/search_query_transformer_spec.rb
new file mode 100644
index 0000000000..1095334695
--- /dev/null
+++ b/spec/lib/search_query_transformer_spec.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe SearchQueryTransformer do
+ describe 'initialization' do
+ let(:parser) { SearchQueryParser.new.parse('query') }
+
+ it 'sets attributes' do
+ transformer = described_class.new.apply(parser)
+
+ expect(transformer.should_clauses.first).to be_a(SearchQueryTransformer::TermClause)
+ expect(transformer.must_clauses.first).to be_nil
+ expect(transformer.must_not_clauses.first).to be_nil
+ expect(transformer.filter_clauses.first).to be_nil
+ end
+ end
+end
diff --git a/spec/models/admin/appeal_filter_spec.rb b/spec/models/admin/appeal_filter_spec.rb
new file mode 100644
index 0000000000..e840bc3bc1
--- /dev/null
+++ b/spec/models/admin/appeal_filter_spec.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Admin::AppealFilter do
+ describe '#results' do
+ let(:approved_appeal) { Fabricate(:appeal, approved_at: 10.days.ago) }
+ let(:not_approved_appeal) { Fabricate(:appeal, approved_at: nil) }
+
+ it 'returns filtered appeals' do
+ filter = described_class.new(status: 'approved')
+
+ expect(filter.results).to eq([approved_appeal])
+ end
+ end
+end
diff --git a/spec/models/form/admin_settings_spec.rb b/spec/models/form/admin_settings_spec.rb
new file mode 100644
index 0000000000..0dc2d881ad
--- /dev/null
+++ b/spec/models/form/admin_settings_spec.rb
@@ -0,0 +1,36 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Form::AdminSettings do
+ describe 'validations' do
+ describe 'site_contact_username' do
+ context 'with no accounts' do
+ it 'is not valid' do
+ setting = described_class.new(site_contact_username: 'Test')
+ setting.valid?
+
+ expect(setting).to model_have_error_on_field(:site_contact_username)
+ end
+ end
+
+ context 'with an account' do
+ before { Fabricate(:account, username: 'Glorp') }
+
+ it 'is not valid when account doesnt match' do
+ setting = described_class.new(site_contact_username: 'Test')
+ setting.valid?
+
+ expect(setting).to model_have_error_on_field(:site_contact_username)
+ end
+
+ it 'is valid when account matches' do
+ setting = described_class.new(site_contact_username: 'Glorp')
+ setting.valid?
+
+ expect(setting).to_not model_have_error_on_field(:site_contact_username)
+ end
+ end
+ end
+ end
+end
diff --git a/spec/models/form/status_filter_batch_action_spec.rb b/spec/models/form/status_filter_batch_action_spec.rb
new file mode 100644
index 0000000000..f06a11cc8b
--- /dev/null
+++ b/spec/models/form/status_filter_batch_action_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Form::StatusFilterBatchAction do
+ describe '#save!' do
+ it 'does nothing if status_filter_ids is empty' do
+ batch_action = described_class.new(status_filter_ids: [])
+
+ expect(batch_action.save!).to be_nil
+ end
+ end
+end
diff --git a/spec/workers/verify_account_links_worker_spec.rb b/spec/workers/verify_account_links_worker_spec.rb
new file mode 100644
index 0000000000..227591392c
--- /dev/null
+++ b/spec/workers/verify_account_links_worker_spec.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe VerifyAccountLinksWorker do
+ let(:worker) { described_class.new }
+
+ describe 'perform' do
+ it 'runs without error for missing record' do
+ expect { worker.perform(nil) }.to_not raise_error
+ end
+ end
+end
From 540d49ec143094e94996b04ba06ae8bdfd092ba8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 10 Mar 2023 14:08:10 +0100
Subject: [PATCH 0236/1254] Bump pghero from 3.1.0 to 3.2.0 (#24044)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 8fbb7c5d1a..df3385cf3f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -483,7 +483,7 @@ GEM
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.4.6)
- pghero (3.1.0)
+ pghero (3.2.0)
activerecord (>= 6)
pkg-config (1.5.1)
posix-spawn (0.3.15)
From 8931f18a218ed910cc242f680a81b533cc270ad3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 10 Mar 2023 15:24:19 +0100
Subject: [PATCH 0237/1254] Bump eslint from 8.33.0 to 8.35.0 (#24049)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 34 ++++++++++++++++++++--------------
2 files changed, 21 insertions(+), 15 deletions(-)
diff --git a/package.json b/package.json
index efc8a0dc20..e487238969 100644
--- a/package.json
+++ b/package.json
@@ -146,7 +146,7 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
"babel-jest": "^29.5.0",
- "eslint": "^8.33.0",
+ "eslint": "^8.35.0",
"eslint-plugin-import": "~2.27.5",
"eslint-plugin-jsx-a11y": "~6.7.1",
"eslint-plugin-promise": "~6.1.1",
diff --git a/yarn.lock b/yarn.lock
index 29d74690fa..39d9fb8773 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1201,10 +1201,10 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
-"@eslint/eslintrc@^1.4.1":
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
- integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
+"@eslint/eslintrc@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff"
+ integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
@@ -1216,6 +1216,11 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
+"@eslint/js@8.35.0":
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7"
+ integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==
+
"@floating-ui/core@^1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.1.tgz#00e64d74e911602c8533957af0cce5af6b2e93c8"
@@ -4667,12 +4672,13 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@^8.33.0:
- version "8.33.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
- integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
+eslint@^8.35.0:
+ version "8.35.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323"
+ integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==
dependencies:
- "@eslint/eslintrc" "^1.4.1"
+ "@eslint/eslintrc" "^2.0.0"
+ "@eslint/js" "8.35.0"
"@humanwhocodes/config-array" "^0.11.8"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
@@ -4686,7 +4692,7 @@ eslint@^8.33.0:
eslint-utils "^3.0.0"
eslint-visitor-keys "^3.3.0"
espree "^9.4.0"
- esquery "^1.4.0"
+ esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
@@ -4726,10 +4732,10 @@ esprima@^4.0.0, esprima@^4.0.1:
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-esquery@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
- integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
+esquery@^1.4.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
+ integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
dependencies:
estraverse "^5.1.0"
From 3ea0856f707c0b59914d616608ae15cc6d9a9e1a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Fri, 10 Mar 2023 10:32:37 -0500
Subject: [PATCH 0238/1254] Enable RSpec/FilePath (#23965)
---
.rubocop.yml | 17 +++++++++++
.rubocop_todo.yml | 72 -----------------------------------------------
2 files changed, 17 insertions(+), 72 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index b4387a4611..99206e5977 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -96,9 +96,26 @@ Rails/Exit:
- 'lib/mastodon/cli_helper.rb'
- 'lib/cli.rb'
+# Reason: Some single letter camel case files shouldn't be split
+# https://docs.rubocop.org/rubocop-rspec/cops_rspec.html#rspecfilepath
RSpec/FilePath:
CustomTransform:
+ ActivityPub: activitypub # Ignore the snake_case due to the amount of files to rename
DeepL: deepl
+ FetchOEmbedService: fetch_oembed_service
+ JsonLdHelper: jsonld_helper
+ OEmbedController: oembed_controller
+ OStatus: ostatus
+ NodeInfoController: nodeinfo_controller # NodeInfo isn't snake_cased for any of the instances
+ Exclude:
+ - 'spec/config/initializers/rack_attack_spec.rb' # namespaces usually have separate folder
+ - 'spec/lib/sanitize_config_spec.rb' # namespaces usually have separate folder
+ - 'spec/controllers/concerns/account_controller_concern_spec.rb' # Concerns describe ApplicationController and don't fit naming
+ - 'spec/controllers/concerns/export_controller_concern_spec.rb'
+ - 'spec/controllers/concerns/localized_spec.rb'
+ - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
+ - 'spec/controllers/concerns/signature_verification_spec.rb'
+ - 'spec/controllers/concerns/user_tracking_concern_spec.rb'
RSpec/NotToNot:
EnforcedStyle: to_not
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0035478c40..a9727f9399 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -655,78 +655,6 @@ RSpec/ExpectInHook:
- 'spec/controllers/settings/applications_controller_spec.rb'
- 'spec/lib/status_filter_spec.rb'
-# Offense count: 61
-# Configuration parameters: Include, CustomTransform, IgnoreMethods, SpecSuffixOnly.
-# Include: **/*_spec*rb*, **/spec/**/*
-RSpec/FilePath:
- Exclude:
- - 'spec/config/initializers/rack_attack_spec.rb'
- - 'spec/controllers/activitypub/claims_controller_spec.rb'
- - 'spec/controllers/activitypub/collections_controller_spec.rb'
- - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
- - 'spec/controllers/activitypub/inboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/outboxes_controller_spec.rb'
- - 'spec/controllers/activitypub/replies_controller_spec.rb'
- - 'spec/controllers/admin/change_email_controller_spec.rb'
- - 'spec/controllers/admin/users/roles_controller.rb'
- - 'spec/controllers/api/oembed_controller_spec.rb'
- - 'spec/controllers/concerns/account_controller_concern_spec.rb'
- - 'spec/controllers/concerns/export_controller_concern_spec.rb'
- - 'spec/controllers/concerns/localized_spec.rb'
- - 'spec/controllers/concerns/rate_limit_headers_spec.rb'
- - 'spec/controllers/concerns/signature_verification_spec.rb'
- - 'spec/controllers/concerns/user_tracking_concern_spec.rb'
- - 'spec/controllers/well_known/nodeinfo_controller_spec.rb'
- - 'spec/helpers/admin/action_log_helper_spec.rb'
- - 'spec/helpers/jsonld_helper_spec.rb'
- - 'spec/lib/activitypub/activity/accept_spec.rb'
- - 'spec/lib/activitypub/activity/add_spec.rb'
- - 'spec/lib/activitypub/activity/announce_spec.rb'
- - 'spec/lib/activitypub/activity/block_spec.rb'
- - 'spec/lib/activitypub/activity/create_spec.rb'
- - 'spec/lib/activitypub/activity/delete_spec.rb'
- - 'spec/lib/activitypub/activity/flag_spec.rb'
- - 'spec/lib/activitypub/activity/follow_spec.rb'
- - 'spec/lib/activitypub/activity/like_spec.rb'
- - 'spec/lib/activitypub/activity/move_spec.rb'
- - 'spec/lib/activitypub/activity/reject_spec.rb'
- - 'spec/lib/activitypub/activity/remove_spec.rb'
- - 'spec/lib/activitypub/activity/undo_spec.rb'
- - 'spec/lib/activitypub/activity/update_spec.rb'
- - 'spec/lib/activitypub/adapter_spec.rb'
- - 'spec/lib/activitypub/dereferencer_spec.rb'
- - 'spec/lib/activitypub/linked_data_signature_spec.rb'
- - 'spec/lib/activitypub/tag_manager_spec.rb'
- - 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/sanitize_config_spec.rb'
- - 'spec/serializers/activitypub/device_serializer_spec.rb'
- - 'spec/serializers/activitypub/note_serializer_spec.rb'
- - 'spec/serializers/activitypub/one_time_key_serializer_spec.rb'
- - 'spec/serializers/activitypub/undo_like_serializer_spec.rb'
- - 'spec/serializers/activitypub/vote_serializer_spec.rb'
- - 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
- - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_featured_tags_collection_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_account_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_actor_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_key_service_spec.rb'
- - 'spec/services/activitypub/fetch_remote_status_service_spec.rb'
- - 'spec/services/activitypub/fetch_replies_service_spec.rb'
- - 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/activitypub/process_collection_service_spec.rb'
- - 'spec/services/activitypub/process_status_update_service_spec.rb'
- - 'spec/services/activitypub/synchronize_followers_service_spec.rb'
- - 'spec/services/fetch_oembed_service_spec.rb'
- - 'spec/services/remove_from_follwers_service_spec.rb'
- - 'spec/workers/activitypub/delivery_worker_spec.rb'
- - 'spec/workers/activitypub/distribute_poll_update_worker_spec.rb'
- - 'spec/workers/activitypub/distribution_worker_spec.rb'
- - 'spec/workers/activitypub/fetch_replies_worker_spec.rb'
- - 'spec/workers/activitypub/move_distribution_worker_spec.rb'
- - 'spec/workers/activitypub/processing_worker_spec.rb'
- - 'spec/workers/activitypub/status_update_distribution_worker_spec.rb'
- - 'spec/workers/activitypub/update_distribution_worker_spec.rb'
-
# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
From 1ed12d5e2f6dc0f7d891916df84be6e06d37786d Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Fri, 10 Mar 2023 13:31:10 -0500
Subject: [PATCH 0239/1254] Add basic search specs for chewy indexes (#24065)
---
spec/chewy/accounts_index_spec.rb | 31 +++++++++++++++++++++++++++++++
spec/chewy/statuses_index_spec.rb | 31 +++++++++++++++++++++++++++++++
spec/chewy/tags_index_spec.rb | 31 +++++++++++++++++++++++++++++++
spec/rails_helper.rb | 2 ++
4 files changed, 95 insertions(+)
create mode 100644 spec/chewy/accounts_index_spec.rb
create mode 100644 spec/chewy/statuses_index_spec.rb
create mode 100644 spec/chewy/tags_index_spec.rb
diff --git a/spec/chewy/accounts_index_spec.rb b/spec/chewy/accounts_index_spec.rb
new file mode 100644
index 0000000000..f9c5922c76
--- /dev/null
+++ b/spec/chewy/accounts_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe AccountsIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'account' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/chewy/statuses_index_spec.rb b/spec/chewy/statuses_index_spec.rb
new file mode 100644
index 0000000000..768e9415fc
--- /dev/null
+++ b/spec/chewy/statuses_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe StatusesIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'status' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/chewy/tags_index_spec.rb b/spec/chewy/tags_index_spec.rb
new file mode 100644
index 0000000000..054589bdfb
--- /dev/null
+++ b/spec/chewy/tags_index_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe TagsIndex do
+ describe 'Searching the index' do
+ before do
+ mock_elasticsearch_response(described_class, raw_response)
+ end
+
+ it 'returns results from a query' do
+ results = described_class.query(match: { name: 'tag' })
+
+ expect(results).to eq []
+ end
+ end
+
+ def raw_response
+ {
+ took: 3,
+ hits: {
+ hits: [
+ {
+ _id: '0',
+ _score: 1.6375021,
+ },
+ ],
+ },
+ }
+ end
+end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index 70d3a968ca..c204fcdbd2 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -10,6 +10,7 @@ require 'rspec/rails'
require 'webmock/rspec'
require 'paperclip/matchers'
require 'capybara/rspec'
+require 'chewy/rspec'
Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
@@ -45,6 +46,7 @@ RSpec.configure do |config|
config.include Devise::Test::ControllerHelpers, type: :view
config.include Paperclip::Shoulda::Matchers
config.include ActiveSupport::Testing::TimeHelpers
+ config.include Chewy::Rspec::Helpers
config.include Redisable
config.before :each, type: :feature do
From f432db7b9f54501269c6377faf85b1b4b1424239 Mon Sep 17 00:00:00 2001
From: Claire
Date: Sun, 12 Mar 2023 23:47:55 +0100
Subject: [PATCH 0240/1254] Fix sidekiq jobs not triggering Elasticsearch index
updates (#24046)
---
bin/tootctl | 4 +++-
config/initializers/chewy.rb | 1 -
lib/mastodon/sidekiq_middleware.rb | 4 ++--
3 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/bin/tootctl b/bin/tootctl
index a9ebb22c6d..9c7ae8b871 100755
--- a/bin/tootctl
+++ b/bin/tootctl
@@ -5,7 +5,9 @@ require_relative '../config/boot'
require_relative '../lib/cli'
begin
- Mastodon::CLI.start(ARGV)
+ Chewy.strategy(:mastodon) do
+ Mastodon::CLI.start(ARGV)
+ end
rescue Interrupt
exit(130)
end
diff --git a/config/initializers/chewy.rb b/config/initializers/chewy.rb
index 752fc3c6df..2a91efefc8 100644
--- a/config/initializers/chewy.rb
+++ b/config/initializers/chewy.rb
@@ -19,7 +19,6 @@ Chewy.settings = {
# cycle, which takes care of checking if Elasticsearch is enabled
# or not. However, mind that for the Rails console, the :urgent
# strategy is set automatically with no way to override it.
-Chewy.root_strategy = :mastodon
Chewy.request_strategy = :mastodon
Chewy.use_after_commit_callbacks = false
diff --git a/lib/mastodon/sidekiq_middleware.rb b/lib/mastodon/sidekiq_middleware.rb
index c75e8401f5..9832e1a27c 100644
--- a/lib/mastodon/sidekiq_middleware.rb
+++ b/lib/mastodon/sidekiq_middleware.rb
@@ -3,8 +3,8 @@
class Mastodon::SidekiqMiddleware
BACKTRACE_LIMIT = 3
- def call(*)
- yield
+ def call(*, &block)
+ Chewy.strategy(:mastodon, &block)
rescue Mastodon::HostValidationError
# Do not retry
rescue => e
From e762a14c0ab235c337b3cddbef1eaf72b26faf58 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sun, 12 Mar 2023 19:03:07 -0400
Subject: [PATCH 0241/1254] Enable Rubocop Performance/DeleteSuffix (#24077)
---
.rubocop_todo.yml | 7 -------
lib/tasks/repo.rake | 4 ++--
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index a9727f9399..8a96e59f90 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -301,13 +301,6 @@ Performance/DeletePrefix:
- 'app/services/resolve_account_service.rb'
- 'app/services/tag_search_service.rb'
-# Offense count: 1
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: SafeMultiline.
-Performance/DeleteSuffix:
- Exclude:
- - 'lib/tasks/repo.rake'
-
# Offense count: 19
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/MapCompact:
diff --git a/lib/tasks/repo.rake b/lib/tasks/repo.rake
index 5d1b4f7544..888337b4f2 100644
--- a/lib/tasks/repo.rake
+++ b/lib/tasks/repo.rake
@@ -91,8 +91,8 @@ namespace :repo do
missing_json_files = I18n.available_locales.reject { |locale| Rails.root.join('app', 'javascript', 'mastodon', 'locales', "#{locale}.json").exist? }
locales_in_files = Dir[Rails.root.join('config', 'locales', '*.yml')].map do |path|
- file_name = File.basename(path)
- file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').gsub(/\.yml\z/, '').to_sym
+ file_name = File.basename(path, '.yml')
+ file_name.gsub(/\A(doorkeeper|devise|activerecord|simple_form)\./, '').to_sym
end.uniq.compact
missing_available_locales = locales_in_files - I18n.available_locales
From d258ec8e3ba7eec75d4da645444d03975e8dd62c Mon Sep 17 00:00:00 2001
From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com>
Date: Mon, 13 Mar 2023 00:06:27 +0100
Subject: [PATCH 0242/1254] Prefer the stored location as after_sign_in_path in
Omniauth Callback Controller (#24073)
---
app/controllers/auth/omniauth_callbacks_controller.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/controllers/auth/omniauth_callbacks_controller.rb b/app/controllers/auth/omniauth_callbacks_controller.rb
index 3d7962de56..9e0fb942aa 100644
--- a/app/controllers/auth/omniauth_callbacks_controller.rb
+++ b/app/controllers/auth/omniauth_callbacks_controller.rb
@@ -33,7 +33,7 @@ class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController
def after_sign_in_path_for(resource)
if resource.email_present?
- root_path
+ stored_location_for(resource) || root_path
else
auth_setup_path(missing_email: '1')
end
From 245f0aead2f7afe007bd6982f9fb8491c4422e27 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 11:16:24 +0100
Subject: [PATCH 0243/1254] Bump jsdom from 21.1.0 to 21.1.1 (#24090)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 86 +++++++++++++++++++++++++++++++++++++---------------
2 files changed, 62 insertions(+), 26 deletions(-)
diff --git a/package.json b/package.json
index e487238969..8482692acf 100644
--- a/package.json
+++ b/package.json
@@ -72,7 +72,7 @@
"intl-relativeformat": "^6.4.3",
"is-nan": "^1.3.2",
"js-yaml": "^4.1.0",
- "jsdom": "^21.1.0",
+ "jsdom": "^21.1.1",
"lodash": "^4.17.21",
"mark-loader": "^0.1.6",
"marky": "^1.2.5",
diff --git a/yarn.lock b/yarn.lock
index 39d9fb8773..5b1252f68e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2248,7 +2248,7 @@ acorn@^6.4.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
-acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1:
+acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0, acorn@^8.8.1, acorn@^8.8.2:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
@@ -3906,6 +3906,13 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
+cssstyle@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-3.0.0.tgz#17ca9c87d26eac764bb8cfd00583cff21ce0277a"
+ integrity sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==
+ dependencies:
+ rrweb-cssom "^0.6.0"
+
csstype@^2.6.7:
version "2.6.13"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
@@ -3943,6 +3950,15 @@ data-urls@^3.0.2:
whatwg-mimetype "^3.0.0"
whatwg-url "^11.0.0"
+data-urls@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-4.0.0.tgz#333a454eca6f9a5b7b0f1013ff89074c3f522dd4"
+ integrity sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==
+ dependencies:
+ abab "^2.0.6"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^12.0.0"
+
debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -3977,10 +3993,10 @@ decamelize@^1.1.0, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-decimal.js@^10.4.2:
- version "10.4.2"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e"
- integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==
+decimal.js@^10.4.2, decimal.js@^10.4.3:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23"
+ integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==
decode-uri-component@^0.2.0:
version "0.2.2"
@@ -6976,18 +6992,17 @@ jsdom@^20.0.0:
ws "^8.11.0"
xml-name-validator "^4.0.0"
-jsdom@^21.1.0:
- version "21.1.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.0.tgz#d56ba4a84ed478260d83bd53dc181775f2d8e6ef"
- integrity sha512-m0lzlP7qOtthD918nenK3hdItSd2I+V3W9IrBcB36sqDwG+KnUs66IF5GY7laGWUnlM9vTsD0W1QwSEBYWWcJg==
+jsdom@^21.1.1:
+ version "21.1.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-21.1.1.tgz#ab796361e3f6c01bcfaeda1fea3c06197ac9d8ae"
+ integrity sha512-Jjgdmw48RKcdAIQyUD1UdBh2ecH7VqwaXPN3ehoZN6MqgVbMn+lRm1aAT1AsdJRAJpwfa4IpwgzySn61h2qu3w==
dependencies:
abab "^2.0.6"
- acorn "^8.8.1"
+ acorn "^8.8.2"
acorn-globals "^7.0.0"
- cssom "^0.5.0"
- cssstyle "^2.3.0"
- data-urls "^3.0.2"
- decimal.js "^10.4.2"
+ cssstyle "^3.0.0"
+ data-urls "^4.0.0"
+ decimal.js "^10.4.3"
domexception "^4.0.0"
escodegen "^2.0.0"
form-data "^4.0.0"
@@ -6996,7 +7011,8 @@ jsdom@^21.1.0:
https-proxy-agent "^5.0.1"
is-potential-custom-element-name "^1.0.1"
nwsapi "^2.2.2"
- parse5 "^7.1.1"
+ parse5 "^7.1.2"
+ rrweb-cssom "^0.6.0"
saxes "^6.0.0"
symbol-tree "^3.2.4"
tough-cookie "^4.1.2"
@@ -7004,8 +7020,8 @@ jsdom@^21.1.0:
webidl-conversions "^7.0.0"
whatwg-encoding "^2.0.0"
whatwg-mimetype "^3.0.0"
- whatwg-url "^11.0.0"
- ws "^8.11.0"
+ whatwg-url "^12.0.1"
+ ws "^8.13.0"
xml-name-validator "^4.0.0"
jsesc@^2.5.1:
@@ -8218,10 +8234,10 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-parse5@^7.0.0, parse5@^7.1.1:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
- integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==
+parse5@^7.0.0, parse5@^7.1.1, parse5@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
+ integrity sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==
dependencies:
entities "^4.4.0"
@@ -9736,6 +9752,11 @@ rollup@^2.43.1:
optionalDependencies:
fsevents "~2.3.2"
+rrweb-cssom@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz#ed298055b97cbddcdeb278f904857629dec5e0e1"
+ integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -10946,6 +10967,13 @@ tr46@^3.0.0:
dependencies:
punycode "^2.1.1"
+tr46@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-4.1.1.tgz#281a758dcc82aeb4fe38c7dfe4d11a395aac8469"
+ integrity sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==
+ dependencies:
+ punycode "^2.3.0"
+
tr46@~0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
@@ -11589,6 +11617,14 @@ whatwg-url@^11.0.0:
tr46 "^3.0.0"
webidl-conversions "^7.0.0"
+whatwg-url@^12.0.0, whatwg-url@^12.0.1:
+ version "12.0.1"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-12.0.1.tgz#fd7bcc71192e7c3a2a97b9a8d6b094853ed8773c"
+ integrity sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==
+ dependencies:
+ tr46 "^4.1.1"
+ webidl-conversions "^7.0.0"
+
whatwg-url@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
@@ -11907,10 +11943,10 @@ ws@^7.3.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-ws@^8.11.0, ws@^8.12.1:
- version "8.12.1"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.1.tgz#c51e583d79140b5e42e39be48c934131942d4a8f"
- integrity sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==
+ws@^8.11.0, ws@^8.12.1, ws@^8.13.0:
+ version "8.13.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0"
+ integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==
xml-name-validator@^4.0.0:
version "4.0.0"
From 43ec9d24f935d6d1858a7c96f33815c51860e988 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 13 Mar 2023 11:32:15 +0100
Subject: [PATCH 0244/1254] Bump pghero from 3.2.0 to 3.3.0 (#24085)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index df3385cf3f..9227e5cb82 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -483,7 +483,7 @@ GEM
pastel (0.8.0)
tty-color (~> 0.5)
pg (1.4.6)
- pghero (3.2.0)
+ pghero (3.3.0)
activerecord (>= 6)
pkg-config (1.5.1)
posix-spawn (0.3.15)
From 5dee40b5f5582c2b3dbf60b61e667312ebc54940 Mon Sep 17 00:00:00 2001
From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com>
Date: Tue, 14 Mar 2023 14:47:57 +0100
Subject: [PATCH 0245/1254] Support the PROXY protocol through the
PROXY_PROTO_V1 env variable (#24064)
---
config/puma.rb | 2 ++
1 file changed, 2 insertions(+)
diff --git a/config/puma.rb b/config/puma.rb
index e592954458..c4e2b0b85c 100644
--- a/config/puma.rb
+++ b/config/puma.rb
@@ -22,3 +22,5 @@ on_worker_boot do
end
plugin :tmp_restart
+
+set_remote_address(proxy_protocol: :v1) if ENV['PROXY_PROTO_V1'] == 'true'
From 82d7b08fcf49787196a5b2ee62ed55f37ae6229b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 14 Mar 2023 14:50:08 +0100
Subject: [PATCH 0246/1254] Bump rack from 2.2.6.3 to 2.2.6.4 (#24097)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 9227e5cb82..1a48c25d27 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -503,7 +503,7 @@ GEM
activesupport (>= 3.0.0)
raabro (1.4.0)
racc (1.6.2)
- rack (2.2.6.3)
+ rack (2.2.6.4)
rack-attack (6.6.1)
rack (>= 1.0, < 3)
rack-cors (1.1.1)
From 5b39d208046ee6b44c3c24d25b6bbf1010e3e8cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 14 Mar 2023 14:50:19 +0100
Subject: [PATCH 0247/1254] Bump rails from 6.1.7.2 to 6.1.7.3 (#24096)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 106 +++++++++++++++++++++++++--------------------------
1 file changed, 53 insertions(+), 53 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 1a48c25d27..02de43e009 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -30,40 +30,40 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- actioncable (6.1.7.2)
- actionpack (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actioncable (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.1.7.2)
- actionpack (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionmailbox (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
mail (>= 2.7.1)
- actionmailer (6.1.7.2)
- actionpack (= 6.1.7.2)
- actionview (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionmailer (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ actionview (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.1.7.2)
- actionview (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionpack (6.1.7.3)
+ actionview (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
rack (~> 2.0, >= 2.0.9)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
- actiontext (6.1.7.2)
- actionpack (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ actiontext (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
nokogiri (>= 1.8.5)
- actionview (6.1.7.2)
- activesupport (= 6.1.7.2)
+ actionview (6.1.7.3)
+ activesupport (= 6.1.7.3)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
@@ -74,22 +74,22 @@ GEM
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
active_record_query_trace (1.8)
- activejob (6.1.7.2)
- activesupport (= 6.1.7.2)
+ activejob (6.1.7.3)
+ activesupport (= 6.1.7.3)
globalid (>= 0.3.6)
- activemodel (6.1.7.2)
- activesupport (= 6.1.7.2)
- activerecord (6.1.7.2)
- activemodel (= 6.1.7.2)
- activesupport (= 6.1.7.2)
- activestorage (6.1.7.2)
- actionpack (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ activemodel (6.1.7.3)
+ activesupport (= 6.1.7.3)
+ activerecord (6.1.7.3)
+ activemodel (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
+ activestorage (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
marcel (~> 1.0)
mini_mime (>= 1.1.0)
- activesupport (6.1.7.2)
+ activesupport (6.1.7.3)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
@@ -518,20 +518,20 @@ GEM
rack
rack-test (2.0.2)
rack (>= 1.3)
- rails (6.1.7.2)
- actioncable (= 6.1.7.2)
- actionmailbox (= 6.1.7.2)
- actionmailer (= 6.1.7.2)
- actionpack (= 6.1.7.2)
- actiontext (= 6.1.7.2)
- actionview (= 6.1.7.2)
- activejob (= 6.1.7.2)
- activemodel (= 6.1.7.2)
- activerecord (= 6.1.7.2)
- activestorage (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ rails (6.1.7.3)
+ actioncable (= 6.1.7.3)
+ actionmailbox (= 6.1.7.3)
+ actionmailer (= 6.1.7.3)
+ actionpack (= 6.1.7.3)
+ actiontext (= 6.1.7.3)
+ actionview (= 6.1.7.3)
+ activejob (= 6.1.7.3)
+ activemodel (= 6.1.7.3)
+ activerecord (= 6.1.7.3)
+ activestorage (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
bundler (>= 1.15.0)
- railties (= 6.1.7.2)
+ railties (= 6.1.7.3)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
@@ -545,9 +545,9 @@ GEM
rails-i18n (6.0.0)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 7)
- railties (6.1.7.2)
- actionpack (= 6.1.7.2)
- activesupport (= 6.1.7.2)
+ railties (6.1.7.3)
+ actionpack (= 6.1.7.3)
+ activesupport (= 6.1.7.3)
method_source
rake (>= 12.2)
thor (~> 1.0)
From f4f3e2b46e619fcc2eda48c2eb66c517b4f466aa Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 14 Mar 2023 14:55:42 +0100
Subject: [PATCH 0248/1254] Bump rubocop from 1.48.0 to 1.48.1 (#24095)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile.lock | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Gemfile.lock b/Gemfile.lock
index 02de43e009..5904ed804d 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -477,7 +477,7 @@ GEM
orm_adapter (0.5.0)
ox (2.14.14)
parallel (1.22.1)
- parser (3.2.1.0)
+ parser (3.2.1.1)
ast (~> 2.4.1)
parslet (2.0.0)
pastel (0.8.0)
@@ -599,7 +599,7 @@ GEM
rspec_chunked (0.6)
rspec_junit_formatter (0.6.0)
rspec-core (>= 2, < 4, != 2.12.0)
- rubocop (1.48.0)
+ rubocop (1.48.1)
json (~> 2.3)
parallel (~> 1.10)
parser (>= 3.2.0.0)
From 50d39c275d07dfac75d9739d90fa2f1b5d3dc0cd Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Tue, 14 Mar 2023 20:27:43 +0100
Subject: [PATCH 0249/1254] Push Docker images to Github Container Registry as
well (#24101)
---
.github/workflows/build-image.yml | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index c567cd9c3a..0ef0cdc17f 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -12,6 +12,7 @@ on:
- Dockerfile
permissions:
contents: read
+ packages: write
jobs:
build-image:
@@ -26,15 +27,28 @@ jobs:
- uses: hadolint/hadolint-action@v3.1.0
- uses: docker/setup-qemu-action@v2
- uses: docker/setup-buildx-action@v2
- - uses: docker/login-action@v2
+
+ - name: Log in to Docker Hub
+ uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
if: github.event_name != 'pull_request'
+
+ - name: Log in to the Github Container registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ if: github.event_name != 'pull_request'
+
- uses: docker/metadata-action@v4
id: meta
with:
- images: tootsuite/mastodon
+ images: |
+ tootsuite/mastodon
+ ghcr.io/mastodon/mastodon
flavor: |
latest=auto
tags: |
@@ -42,6 +56,7 @@ jobs:
type=pep440,pattern={{raw}}
type=pep440,pattern=v{{major}}.{{minor}}
type=ref,event=pr
+
- uses: docker/build-push-action@v4
with:
context: .
@@ -50,5 +65,6 @@ jobs:
builder: ${{ steps.buildx.outputs.name }}
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
From ed887271f3985b00d97139ae25b73b1f062666be Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 14 Mar 2023 22:43:49 -0400
Subject: [PATCH 0250/1254] Skip Docker CI Login/Push on forks (#23564)
---
.github/workflows/build-image.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index 0ef0cdc17f..a1db68e3b4 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -33,7 +33,7 @@ jobs:
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- if: github.event_name != 'pull_request'
+ if: github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request'
- name: Log in to the Github Container registry
uses: docker/login-action@v2
@@ -41,7 +41,7 @@ jobs:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- if: github.event_name != 'pull_request'
+ if: github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request'
- uses: docker/metadata-action@v4
id: meta
From 1d0ad558ff51ce3e42ef4e4c9a9bed3c4b722d0d Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 15 Mar 2023 03:45:15 +0100
Subject: [PATCH 0251/1254] Change sidekiq-bulk's batch size from 10,000 to
1,000 jobs in one Redis call (#24034)
---
app/lib/activitypub/forwarder.rb | 2 +-
app/services/delete_account_service.rb | 4 ++--
app/services/remove_status_service.rb | 2 +-
app/services/suspend_account_service.rb | 12 ++++++------
app/services/unsuspend_account_service.rb | 2 +-
app/services/update_account_service.rb | 2 +-
.../activitypub/distribute_poll_update_worker.rb | 2 +-
app/workers/activitypub/move_distribution_worker.rb | 2 +-
app/workers/activitypub/raw_distribution_worker.rb | 2 +-
lib/cli.rb | 2 +-
10 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/app/lib/activitypub/forwarder.rb b/app/lib/activitypub/forwarder.rb
index b01d63e586..3a94f9669a 100644
--- a/app/lib/activitypub/forwarder.rb
+++ b/app/lib/activitypub/forwarder.rb
@@ -12,7 +12,7 @@ class ActivityPub::Forwarder
end
def forward!
- ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::LowPriorityDeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, signature_account_id, inbox_url]
end
end
diff --git a/app/services/delete_account_service.rb b/app/services/delete_account_service.rb
index a2d535d262..190a72e5c5 100644
--- a/app/services/delete_account_service.rb
+++ b/app/services/delete_account_service.rb
@@ -257,11 +257,11 @@ class DeleteAccountService < BaseService
end
def delete_actor!
- ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(delivery_inboxes, limit: 1_000) do |inbox_url|
[delete_actor_json, @account.id, inbox_url]
end
- ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes) do |inbox_url|
+ ActivityPub::LowPriorityDeliveryWorker.push_bulk(low_priority_delivery_inboxes, limit: 1_000) do |inbox_url|
[delete_actor_json, @account.id, inbox_url]
end
end
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 45cfb75f47..ea799db57f 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -88,7 +88,7 @@ class RemoveStatusService < BaseService
status_reach_finder = StatusReachFinder.new(@status, unsafe: true)
- ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(status_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/suspend_account_service.rb b/app/services/suspend_account_service.rb
index 211544fea6..cfb3eb5831 100644
--- a/app/services/suspend_account_service.rb
+++ b/app/services/suspend_account_service.rb
@@ -31,13 +31,13 @@ class SuspendAccountService < BaseService
# counterpart to this operation, i.e. you can't then force a remote
# account to re-follow you, so this part is not reversible.
- follows = Follow.where(account: @account).to_a
+ Follow.where(account: @account).find_in_batches do |follows|
+ ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
+ [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
+ end
- ActivityPub::DeliveryWorker.push_bulk(follows) do |follow|
- [Oj.dump(serialize_payload(follow, ActivityPub::RejectFollowSerializer)), follow.target_account_id, @account.inbox_url]
+ follows.each(&:destroy)
end
-
- follows.each(&:destroy)
end
def distribute_update_actor!
@@ -45,7 +45,7 @@ class SuspendAccountService < BaseService
account_reach_finder = AccountReachFinder.new(@account)
- ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/unsuspend_account_service.rb b/app/services/unsuspend_account_service.rb
index 70667308ec..d851a0f708 100644
--- a/app/services/unsuspend_account_service.rb
+++ b/app/services/unsuspend_account_service.rb
@@ -41,7 +41,7 @@ class UnsuspendAccountService < BaseService
account_reach_finder = AccountReachFinder.new(@account)
- ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(account_reach_finder.inboxes, limit: 1_000) do |inbox_url|
[signed_activity_json, @account.id, inbox_url]
end
end
diff --git a/app/services/update_account_service.rb b/app/services/update_account_service.rb
index 71976ab005..4604d71b2b 100644
--- a/app/services/update_account_service.rb
+++ b/app/services/update_account_service.rb
@@ -22,7 +22,7 @@ class UpdateAccountService < BaseService
def authorize_all_follow_requests(account)
follow_requests = FollowRequest.where(target_account: account)
follow_requests = follow_requests.preload(:account).select { |req| !req.account.silenced? }
- AuthorizeFollowWorker.push_bulk(follow_requests) do |req|
+ AuthorizeFollowWorker.push_bulk(follow_requests, limit: 1_000) do |req|
[req.account_id, req.target_account_id]
end
end
diff --git a/app/workers/activitypub/distribute_poll_update_worker.rb b/app/workers/activitypub/distribute_poll_update_worker.rb
index 25dee4ee25..8c1eefd93d 100644
--- a/app/workers/activitypub/distribute_poll_update_worker.rb
+++ b/app/workers/activitypub/distribute_poll_update_worker.rb
@@ -12,7 +12,7 @@ class ActivityPub::DistributePollUpdateWorker
return unless @status.preloadable_poll
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, @account.id, inbox_url]
end
diff --git a/app/workers/activitypub/move_distribution_worker.rb b/app/workers/activitypub/move_distribution_worker.rb
index 65c5c0d1c3..1680fcc76e 100644
--- a/app/workers/activitypub/move_distribution_worker.rb
+++ b/app/workers/activitypub/move_distribution_worker.rb
@@ -10,7 +10,7 @@ class ActivityPub::MoveDistributionWorker
@migration = AccountMigration.find(migration_id)
@account = @migration.account
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[signed_payload, @account.id, inbox_url]
end
diff --git a/app/workers/activitypub/raw_distribution_worker.rb b/app/workers/activitypub/raw_distribution_worker.rb
index 8ecc17db9a..c77821e0f1 100644
--- a/app/workers/activitypub/raw_distribution_worker.rb
+++ b/app/workers/activitypub/raw_distribution_worker.rb
@@ -25,7 +25,7 @@ class ActivityPub::RawDistributionWorker
def distribute!
return if inboxes.empty?
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[payload, source_account_id, inbox_url, options]
end
end
diff --git a/lib/cli.rb b/lib/cli.rb
index 157465c4b5..ac235cf039 100644
--- a/lib/cli.rb
+++ b/lib/cli.rb
@@ -131,7 +131,7 @@ module Mastodon
json = Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(account))
unless options[:dry_run]
- ActivityPub::DeliveryWorker.push_bulk(inboxes) do |inbox_url|
+ ActivityPub::DeliveryWorker.push_bulk(inboxes, limit: 1_000) do |inbox_url|
[json, account.id, inbox_url]
end
From 39c723664998e73778a528ed0d467faed2c160dc Mon Sep 17 00:00:00 2001
From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com>
Date: Wed, 15 Mar 2023 03:52:40 +0100
Subject: [PATCH 0252/1254] Redirect users to SLO at the IdP after logging them
out of Mastodon. (#24020)
---
app/controllers/application_controller.rb | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index ad70e28ab5..cee2061b5d 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -61,7 +61,11 @@ class ApplicationController < ActionController::Base
end
def after_sign_out_path_for(_resource_or_scope)
- new_user_session_path
+ if ENV['OMNIAUTH_ONLY'] == 'true' && ENV['OIDC_ENABLED'] == 'true'
+ '/auth/auth/openid_connect/logout'
+ else
+ new_user_session_path
+ end
end
protected
From a471e1c48f4c9ec9e96832f51783b11407b67161 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Tue, 14 Mar 2023 22:56:09 -0400
Subject: [PATCH 0253/1254] Add spec for the CLI `version` task (#23978)
---
spec/lib/mastodon/cli_spec.rb | 14 ++++++++++++++
1 file changed, 14 insertions(+)
create mode 100644 spec/lib/mastodon/cli_spec.rb
diff --git a/spec/lib/mastodon/cli_spec.rb b/spec/lib/mastodon/cli_spec.rb
new file mode 100644
index 0000000000..419f8b864e
--- /dev/null
+++ b/spec/lib/mastodon/cli_spec.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+require 'cli'
+
+describe Mastodon::CLI do
+ describe 'version' do
+ it 'returns the Mastodon version' do
+ expect { described_class.new.invoke(:version) }.to output(
+ a_string_including(Mastodon::Version.to_s)
+ ).to_stdout
+ end
+ end
+end
From 15fdd94e2f3d1f5c1724971854ba201d47650255 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 14 Mar 2023 23:01:10 -0400
Subject: [PATCH 0254/1254] Update PostCSS dependencies (#23835)
---
package.json | 6 +-
postcss.config.js | 8 +-
yarn.lock | 986 +++++++++++++++-------------------------------
3 files changed, 330 insertions(+), 670 deletions(-)
diff --git a/package.json b/package.json
index 8482692acf..05eafb2f06 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
"abortcontroller-polyfill": "^1.7.5",
"array-includes": "^3.1.6",
"arrow-key-navigation": "^1.2.0",
- "autoprefixer": "^9.8.8",
+ "autoprefixer": "^10.4.13",
"axios": "^1.3.4",
"babel-loader": "^8.3.0",
"babel-plugin-lodash": "^3.3.4",
@@ -51,7 +51,7 @@
"compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.3",
"css-loader": "^5.2.7",
- "cssnano": "^4.1.11",
+ "cssnano": "^5.1.15",
"detect-passive-events": "^2.0.3",
"dotenv": "^16.0.3",
"emoji-mart": "npm:emoji-mart-lazyload@latest",
@@ -85,7 +85,7 @@
"pg": "^8.5.0",
"pg-connection-string": "^2.5.0",
"postcss": "^8.4.21",
- "postcss-loader": "^3.0.0",
+ "postcss-loader": "^4.3.0",
"promise.prototype.finally": "^3.1.4",
"prop-types": "^15.8.1",
"punycode": "^2.3.0",
diff --git a/postcss.config.js b/postcss.config.js
index e7749a219d..5d58d74e34 100644
--- a/postcss.config.js
+++ b/postcss.config.js
@@ -1,6 +1,6 @@
module.exports = ({ env }) => ({
- plugins: {
- autoprefixer: {},
- cssnano: env === 'production' ? {} : false,
- },
+ plugins: [
+ 'autoprefixer',
+ env === 'production' ? 'cssnano' : '',
+ ],
});
diff --git a/yarn.lock b/yarn.lock
index 5b1252f68e..ac50d0ce71 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1762,6 +1762,11 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@trysound/sax@0.2.0":
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
+ integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
+
"@types/aria-query@^4.2.0":
version "4.2.0"
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.0.tgz#14264692a9d6e2fa4db3df5e56e94b5e25647ac0"
@@ -1928,11 +1933,6 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
-"@types/q@^1.5.1":
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
- integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
-
"@types/react-dom@<18.0.0":
version "17.0.15"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.15.tgz#f2c8efde11521a4b7991e076cb9c70ba3bb0d156"
@@ -2298,11 +2298,6 @@ ajv@^8.0.1, ajv@^8.6.0:
require-from-string "^2.0.2"
uri-js "^4.2.2"
-alphanum-sort@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
- integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
-
ansi-colors@^3.0.0:
version "3.2.4"
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
@@ -2580,18 +2575,17 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^9.8.8:
- version "9.8.8"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.8.tgz#fd4bd4595385fa6f06599de749a4d5f7a474957a"
- integrity sha512-eM9d/swFopRt5gdJ7jrpCwgvEMIayITpojhkkSMRsFHYuH5bkSQ4p/9qTEHtmNudUZh22Tehu7I6CxAW0IXTKA==
+autoprefixer@^10.4.13:
+ version "10.4.13"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
+ integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
dependencies:
- browserslist "^4.12.0"
- caniuse-lite "^1.0.30001109"
+ browserslist "^4.21.4"
+ caniuse-lite "^1.0.30001426"
+ fraction.js "^4.2.0"
normalize-range "^0.1.2"
- num2fraction "^1.2.2"
- picocolors "^0.2.1"
- postcss "^7.0.32"
- postcss-value-parser "^4.1.0"
+ picocolors "^1.0.0"
+ postcss-value-parser "^4.2.0"
available-typed-arrays@^1.0.5:
version "1.0.5"
@@ -2880,7 +2874,7 @@ bonjour@^3.5.0:
multicast-dns "^6.0.1"
multicast-dns-service-types "^1.1.0"
-boolbase@^1.0.0, boolbase@~1.0.0:
+boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
@@ -2989,7 +2983,7 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.21.3, browserslist@^4.21.4:
+browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4:
version "4.21.4"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
@@ -3137,25 +3131,6 @@ call-bind@^1.0.0, call-bind@^1.0.2:
function-bind "^1.1.1"
get-intrinsic "^1.0.2"
-caller-callsite@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
- integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
- dependencies:
- callsites "^2.0.0"
-
-caller-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
- integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
- dependencies:
- caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
- integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
callsites@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
@@ -3190,12 +3165,17 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001400:
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400:
version "1.0.30001414"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz"
integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==
-chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
+caniuse-lite@^1.0.30001426:
+ version "1.0.30001462"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe"
+ integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==
+
+chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -3351,15 +3331,6 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
-coa@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
- dependencies:
- "@types/q" "^1.5.1"
- chalk "^2.4.1"
- q "^1.1.2"
-
cocoon-js-vanilla@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/cocoon-js-vanilla/-/cocoon-js-vanilla-1.3.0.tgz#1e53663f5d314e5e9b315b63eaf8ae701df113c0"
@@ -3383,7 +3354,7 @@ color-blend@^4.0.0:
resolved "https://registry.yarnpkg.com/color-blend/-/color-blend-4.0.0.tgz#e9950e9fa5d6e552ff8bb107c39f7e83a0c1a3bb"
integrity sha512-fYODTHhI/NG+B5GnzvuL3kiFrK/UnkUezWFTgEPBTY5V+kpyfAn95Vn9sJeeCX6omrCOdxnqCL3CvH+6sXtIbw==
-color-convert@^1.9.0, color-convert@^1.9.1:
+color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -3402,33 +3373,17 @@ color-name@1.1.3:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@^1.0.0, color-name@~1.1.4:
+color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-color-string@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.6.0.tgz#c3915f61fe267672cb7e1e064c9d692219f6c312"
- integrity sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==
- dependencies:
- color-name "^1.0.0"
- simple-swizzle "^0.2.2"
-
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-color@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
- integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
- dependencies:
- color-convert "^1.9.1"
- color-string "^1.5.2"
-
-colord@^2.9.3:
+colord@^2.9.1, colord@^2.9.3:
version "2.9.3"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
@@ -3604,16 +3559,6 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cosmiconfig@^5.0.0:
- version "5.2.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
- integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
- dependencies:
- import-fresh "^2.0.0"
- is-directory "^0.3.1"
- js-yaml "^3.13.1"
- parse-json "^4.0.0"
-
cosmiconfig@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982"
@@ -3726,18 +3671,10 @@ crypto-random-string@^2.0.0:
resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
-css-color-names@0.0.4, css-color-names@^0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
- integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-
-css-declaration-sorter@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
- integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
- dependencies:
- postcss "^7.0.1"
- timsort "^0.3.0"
+css-declaration-sorter@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec"
+ integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==
css-functions-list@^3.1.0:
version "3.1.0"
@@ -3760,35 +3697,23 @@ css-loader@^5.2.7:
schema-utils "^3.0.0"
semver "^7.3.5"
-css-select-base-adapter@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
- integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
-
-css-select@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef"
- integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==
+css-select@^4.1.3:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b"
+ integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==
dependencies:
boolbase "^1.0.0"
- css-what "^3.2.1"
- domutils "^1.7.0"
- nth-check "^1.0.2"
+ css-what "^6.0.1"
+ domhandler "^4.3.1"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
-css-tree@1.0.0-alpha.37:
- version "1.0.0-alpha.37"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22"
- integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==
+css-tree@^1.1.2, css-tree@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
+ integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
dependencies:
- mdn-data "2.0.4"
- source-map "^0.6.1"
-
-css-tree@1.0.0-alpha.39:
- version "1.0.0-alpha.39"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb"
- integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==
- dependencies:
- mdn-data "2.0.6"
+ mdn-data "2.0.14"
source-map "^0.6.1"
css-tree@^2.3.1:
@@ -3799,10 +3724,10 @@ css-tree@^2.3.1:
mdn-data "2.0.30"
source-map-js "^1.0.1"
-css-what@^3.2.1:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39"
- integrity sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==
+css-what@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
css.escape@^1.5.1:
version "1.5.1"
@@ -3814,80 +3739,61 @@ cssesc@^3.0.0:
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-cssnano-preset-default@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff"
- integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==
+cssnano-preset-default@^5.2.14:
+ version "5.2.14"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8"
+ integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==
dependencies:
- css-declaration-sorter "^4.0.1"
- cssnano-util-raw-cache "^4.0.1"
- postcss "^7.0.0"
- postcss-calc "^7.0.1"
- postcss-colormin "^4.0.3"
- postcss-convert-values "^4.0.1"
- postcss-discard-comments "^4.0.2"
- postcss-discard-duplicates "^4.0.2"
- postcss-discard-empty "^4.0.1"
- postcss-discard-overridden "^4.0.1"
- postcss-merge-longhand "^4.0.11"
- postcss-merge-rules "^4.0.3"
- postcss-minify-font-values "^4.0.2"
- postcss-minify-gradients "^4.0.2"
- postcss-minify-params "^4.0.2"
- postcss-minify-selectors "^4.0.2"
- postcss-normalize-charset "^4.0.1"
- postcss-normalize-display-values "^4.0.2"
- postcss-normalize-positions "^4.0.2"
- postcss-normalize-repeat-style "^4.0.2"
- postcss-normalize-string "^4.0.2"
- postcss-normalize-timing-functions "^4.0.2"
- postcss-normalize-unicode "^4.0.1"
- postcss-normalize-url "^4.0.1"
- postcss-normalize-whitespace "^4.0.2"
- postcss-ordered-values "^4.1.2"
- postcss-reduce-initial "^4.0.3"
- postcss-reduce-transforms "^4.0.2"
- postcss-svgo "^4.0.3"
- postcss-unique-selectors "^4.0.1"
+ css-declaration-sorter "^6.3.1"
+ cssnano-utils "^3.1.0"
+ postcss-calc "^8.2.3"
+ postcss-colormin "^5.3.1"
+ postcss-convert-values "^5.1.3"
+ postcss-discard-comments "^5.1.2"
+ postcss-discard-duplicates "^5.1.0"
+ postcss-discard-empty "^5.1.1"
+ postcss-discard-overridden "^5.1.0"
+ postcss-merge-longhand "^5.1.7"
+ postcss-merge-rules "^5.1.4"
+ postcss-minify-font-values "^5.1.0"
+ postcss-minify-gradients "^5.1.1"
+ postcss-minify-params "^5.1.4"
+ postcss-minify-selectors "^5.2.1"
+ postcss-normalize-charset "^5.1.0"
+ postcss-normalize-display-values "^5.1.0"
+ postcss-normalize-positions "^5.1.1"
+ postcss-normalize-repeat-style "^5.1.1"
+ postcss-normalize-string "^5.1.0"
+ postcss-normalize-timing-functions "^5.1.0"
+ postcss-normalize-unicode "^5.1.1"
+ postcss-normalize-url "^5.1.0"
+ postcss-normalize-whitespace "^5.1.1"
+ postcss-ordered-values "^5.1.3"
+ postcss-reduce-initial "^5.1.2"
+ postcss-reduce-transforms "^5.1.0"
+ postcss-svgo "^5.1.0"
+ postcss-unique-selectors "^5.1.1"
-cssnano-util-get-arguments@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
- integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
+cssnano-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
+ integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
-cssnano-util-get-match@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
- integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
-
-cssnano-util-raw-cache@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
- integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
+cssnano@^5.1.15:
+ version "5.1.15"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf"
+ integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==
dependencies:
- postcss "^7.0.0"
+ cssnano-preset-default "^5.2.14"
+ lilconfig "^2.0.3"
+ yaml "^1.10.2"
-cssnano-util-same-parent@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
- integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
-
-cssnano@^4.1.11:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99"
- integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==
+csso@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
+ integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
dependencies:
- cosmiconfig "^5.0.0"
- cssnano-preset-default "^4.0.8"
- is-resolvable "^1.0.0"
- postcss "^7.0.0"
-
-csso@^4.0.2:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903"
- integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==
- dependencies:
- css-tree "1.0.0-alpha.39"
+ css-tree "^1.1.2"
cssom@^0.5.0:
version "0.5.0"
@@ -4257,12 +4163,13 @@ dom-helpers@^5.2.0:
"@babel/runtime" "^7.8.7"
csstype "^3.0.2"
-dom-serializer@0:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51"
- integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==
+dom-serializer@^1.0.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30"
+ integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==
dependencies:
domelementtype "^2.0.1"
+ domhandler "^4.2.0"
entities "^2.0.0"
domain-browser@^1.1.1:
@@ -4270,16 +4177,16 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-domelementtype@1:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
- integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-
domelementtype@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+domelementtype@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
domexception@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
@@ -4287,20 +4194,21 @@ domexception@^4.0.0:
dependencies:
webidl-conversions "^7.0.0"
-domutils@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
- integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
+domhandler@^4.2.0, domhandler@^4.3.1:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
dependencies:
- dom-serializer "0"
- domelementtype "1"
+ domelementtype "^2.2.0"
-dot-prop@^5.2.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88"
- integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==
+domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
- is-obj "^2.0.0"
+ dom-serializer "^1.0.1"
+ domelementtype "^2.2.0"
+ domhandler "^4.2.0"
dotenv@^16.0.3:
version "16.0.3"
@@ -4438,7 +4346,7 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
+es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
version "1.20.4"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
@@ -5191,6 +5099,11 @@ forwarded@0.2.0:
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+fraction.js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+ integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
+
fragment-cache@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
@@ -5540,7 +5453,7 @@ has-property-descriptors@^1.0.0:
dependencies:
get-intrinsic "^1.1.1"
-has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3:
+has-symbols@^1.0.2, has-symbols@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
@@ -5588,7 +5501,7 @@ has-values@^1.0.0:
is-number "^3.0.0"
kind-of "^4.0.0"
-has@^1.0.0, has@^1.0.3:
+has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
@@ -5612,11 +5525,6 @@ hash.js@^1.0.0, hash.js@^1.0.3:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
-hex-color-regex@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
- integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
history@^4.10.1, history@^4.7.2:
version "4.10.1"
resolved "https://registry.yarnpkg.com/history/-/history-4.10.1.tgz#33371a65e3a83b267434e2b3f3b1b4c58aad4cf3"
@@ -5679,16 +5587,6 @@ hpack.js@^2.1.6:
readable-stream "^2.0.1"
wbuf "^1.1.0"
-hsl-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
- integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
-
-hsla-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
- integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-
html-encoding-sniffer@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
@@ -5842,21 +5740,6 @@ immutable@^4.0.0, immutable@^4.2.4:
resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a"
integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==
-import-cwd@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
- integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
- dependencies:
- import-from "^2.1.0"
-
-import-fresh@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
- integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
- dependencies:
- caller-path "^2.0.0"
- resolve-from "^3.0.0"
-
import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
@@ -5865,13 +5748,6 @@ import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
parent-module "^1.0.0"
resolve-from "^4.0.0"
-import-from@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
- integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
- dependencies:
- resolve-from "^3.0.0"
-
import-lazy@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153"
@@ -5913,11 +5789,6 @@ indent-string@^4.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
-indexes-of@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
- integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
-
infer-owner@^1.0.3, infer-owner@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
@@ -6050,11 +5921,6 @@ ipaddr.js@1.9.1, ipaddr.js@^1.9.0:
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-is-absolute-url@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
- integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
-
is-absolute-url@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698"
@@ -6101,11 +5967,6 @@ is-arrayish@^0.2.1:
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-is-arrayish@^0.3.1:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
- integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
is-bigint@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a"
@@ -6137,18 +5998,6 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-color-stop@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
- integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
- dependencies:
- css-color-names "^0.0.4"
- hex-color-regex "^1.1.0"
- hsl-regex "^1.0.0"
- hsla-regex "^1.0.0"
- rgb-regex "^1.0.1"
- rgba-regex "^1.0.0"
-
is-core-module@^2.11.0, is-core-module@^2.5.0, is-core-module@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144"
@@ -6200,11 +6049,6 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
is-data-descriptor "^1.0.0"
kind-of "^6.0.2"
-is-directory@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
- integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-
is-electron@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-electron/-/is-electron-2.2.0.tgz#8943084f09e8b731b3a7a0298a7b5d56f6b7eef0"
@@ -6301,11 +6145,6 @@ is-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-is-obj@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
- integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==
-
is-path-cwd@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
@@ -6365,11 +6204,6 @@ is-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
-is-resolvable@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
- integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
-
is-set@^2.0.1, is-set@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec"
@@ -7034,7 +6868,7 @@ jsesc@~0.5.0:
resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
+json-parse-better-errors@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
@@ -7185,6 +7019,11 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lilconfig@^2.0.3:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
lines-and-columns@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
@@ -7195,7 +7034,7 @@ loader-runner@^2.4.0:
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
+loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.2"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3"
integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==
@@ -7413,21 +7252,16 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
+mdn-data@2.0.14:
+ version "2.0.14"
+ resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
+ integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+
mdn-data@2.0.30:
version "2.0.30"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
-mdn-data@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
- integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
-mdn-data@2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978"
- integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==
-
media-typer@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
@@ -7666,7 +7500,7 @@ mixin-deep@^1.2.0:
for-in "^1.0.2"
is-extendable "^1.0.1"
-mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1:
+mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5:
version "0.5.5"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
@@ -7873,10 +7707,10 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
-normalize-url@^3.0.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
- integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
+normalize-url@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a"
+ integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==
npm-run-path@^2.0.0:
version "2.0.2"
@@ -7902,17 +7736,12 @@ npmlog@^7.0.1:
gauge "^5.0.0"
set-blocking "^2.0.0"
-nth-check@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
- integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
+nth-check@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
+ integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
dependencies:
- boolbase "~1.0.0"
-
-num2fraction@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
- integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
+ boolbase "^1.0.0"
nwsapi@^2.2.2:
version "2.2.2"
@@ -7994,14 +7823,6 @@ object.fromentries@^2.0.6:
define-properties "^1.1.4"
es-abstract "^1.20.4"
-object.getownpropertydescriptors@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649"
- integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
-
object.hasown@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.2.tgz#f919e21fad4eb38a57bc6345b3afd496515c3f92"
@@ -8017,7 +7838,7 @@ object.pick@^1.3.0:
dependencies:
isobject "^3.0.1"
-object.values@^1.1.0, object.values@^1.1.6:
+object.values@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.6.tgz#4abbaa71eba47d63589d402856f908243eea9b1d"
integrity sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==
@@ -8211,14 +8032,6 @@ parse-asn1@^5.0.0, parse-asn1@^5.1.5:
pbkdf2 "^3.0.3"
safe-buffer "^5.1.1"
-parse-json@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
- integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
- dependencies:
- error-ex "^1.3.1"
- json-parse-better-errors "^1.0.1"
-
parse-json@^5.0.0, parse-json@^5.2.0:
version "5.2.0"
resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd"
@@ -8395,11 +8208,6 @@ pgpass@1.x:
dependencies:
split2 "^3.1.1"
-picocolors@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
- integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
-
picocolors@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
@@ -8465,146 +8273,117 @@ posix-character-classes@^0.1.0:
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-postcss-calc@^7.0.1:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz#5e177ddb417341e6d4a193c5d9fd8ada79094f8b"
- integrity sha512-0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==
+postcss-calc@^8.2.3:
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
+ integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
dependencies:
- postcss "^7.0.27"
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.0.2"
+ postcss-selector-parser "^6.0.9"
+ postcss-value-parser "^4.2.0"
-postcss-colormin@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
- integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
+postcss-colormin@^5.3.1:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f"
+ integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==
dependencies:
- browserslist "^4.0.0"
- color "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ caniuse-api "^3.0.0"
+ colord "^2.9.1"
+ postcss-value-parser "^4.2.0"
-postcss-convert-values@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
- integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
+postcss-convert-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393"
+ integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-value-parser "^4.2.0"
-postcss-discard-comments@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
- integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-comments@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
+ integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
-postcss-discard-duplicates@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
- integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-duplicates@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
+ integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
-postcss-discard-empty@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
- integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-empty@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
+ integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
-postcss-discard-overridden@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
- integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
- dependencies:
- postcss "^7.0.0"
+postcss-discard-overridden@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
+ integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
-postcss-load-config@^2.0.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a"
- integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==
+postcss-loader@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-4.3.0.tgz#2c4de9657cd4f07af5ab42bd60a673004da1b8cc"
+ integrity sha512-M/dSoIiNDOo8Rk0mUqoj4kpGq91gcxCfb9PoyZVdZ76/AuhxylHDYZblNE8o+EQ9AMSASeMFEKxZf5aU6wlx1Q==
dependencies:
- cosmiconfig "^5.0.0"
- import-cwd "^2.0.0"
-
-postcss-loader@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
- integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
- dependencies:
- loader-utils "^1.1.0"
- postcss "^7.0.0"
- postcss-load-config "^2.0.0"
- schema-utils "^1.0.0"
+ cosmiconfig "^7.0.0"
+ klona "^2.0.4"
+ loader-utils "^2.0.0"
+ schema-utils "^3.0.0"
+ semver "^7.3.4"
postcss-media-query-parser@^0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz#27b39c6f4d94f81b1a73b8f76351c609e5cef244"
integrity sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=
-postcss-merge-longhand@^4.0.11:
- version "4.0.11"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
- integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
+postcss-merge-longhand@^5.1.7:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16"
+ integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==
dependencies:
- css-color-names "0.0.4"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- stylehacks "^4.0.0"
+ postcss-value-parser "^4.2.0"
+ stylehacks "^5.1.1"
-postcss-merge-rules@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
- integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
+postcss-merge-rules@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c"
+ integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==
dependencies:
- browserslist "^4.0.0"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
- cssnano-util-same-parent "^4.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
- vendors "^1.0.0"
+ cssnano-utils "^3.1.0"
+ postcss-selector-parser "^6.0.5"
-postcss-minify-font-values@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
- integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
+postcss-minify-font-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
+ integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-minify-gradients@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
- integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
+postcss-minify-gradients@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
+ integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- is-color-stop "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ colord "^2.9.1"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.0"
-postcss-minify-params@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
- integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
+postcss-minify-params@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352"
+ integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==
dependencies:
- alphanum-sort "^1.0.0"
- browserslist "^4.0.0"
- cssnano-util-get-arguments "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- uniqs "^2.0.0"
+ browserslist "^4.21.4"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.0"
-postcss-minify-selectors@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
- integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
+postcss-minify-selectors@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
+ integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
dependencies:
- alphanum-sort "^1.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
+ postcss-selector-parser "^6.0.5"
postcss-modules-extract-imports@^3.0.0:
version "3.0.0"
@@ -8634,115 +8413,91 @@ postcss-modules-values@^4.0.0:
dependencies:
icss-utils "^5.0.0"
-postcss-normalize-charset@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
- integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
- dependencies:
- postcss "^7.0.0"
+postcss-normalize-charset@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
+ integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
-postcss-normalize-display-values@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
- integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
+postcss-normalize-display-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
+ integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-positions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
- integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
+postcss-normalize-positions@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92"
+ integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-repeat-style@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
- integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
+postcss-normalize-repeat-style@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2"
+ integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-string@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
- integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
+postcss-normalize-string@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
+ integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
dependencies:
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-timing-functions@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
- integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
+postcss-normalize-timing-functions@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
+ integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
dependencies:
- cssnano-util-get-match "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-unicode@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
- integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
+postcss-normalize-unicode@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030"
+ integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==
dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-url@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
- integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
+postcss-normalize-url@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
+ integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
dependencies:
- is-absolute-url "^2.0.0"
- normalize-url "^3.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ normalize-url "^6.0.1"
+ postcss-value-parser "^4.2.0"
-postcss-normalize-whitespace@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
- integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
+postcss-normalize-whitespace@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
+ integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
-postcss-ordered-values@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
- integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
+postcss-ordered-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38"
+ integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==
dependencies:
- cssnano-util-get-arguments "^4.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ cssnano-utils "^3.1.0"
+ postcss-value-parser "^4.2.0"
-postcss-reduce-initial@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
- integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
+postcss-reduce-initial@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6"
+ integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==
dependencies:
- browserslist "^4.0.0"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
-postcss-reduce-transforms@^4.0.2:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
- integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
+postcss-reduce-transforms@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
+ integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
dependencies:
- cssnano-util-get-match "^4.0.0"
- has "^1.0.0"
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
+ postcss-value-parser "^4.2.0"
postcss-resolve-nested-selector@^0.1.1:
version "0.1.1"
@@ -8759,16 +8514,7 @@ postcss-scss@^4.0.2, postcss-scss@^4.0.6:
resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.6.tgz#5d62a574b950a6ae12f2aa89b60d63d9e4432bfd"
integrity sha512-rLDPhJY4z/i4nVFZ27j9GqLxj1pwxE80eAzUNRMXtcpipFYIeowerzBgG3yJhMtObGEXidtIgbUpQ3eLDsf5OQ==
-postcss-selector-parser@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270"
- integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==
- dependencies:
- dot-prop "^5.2.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6:
+postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
version "6.0.11"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc"
integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==
@@ -8776,43 +8522,26 @@ postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.2, postcss-selecto
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-svgo@^4.0.3:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
- integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==
+postcss-svgo@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
+ integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
dependencies:
- postcss "^7.0.0"
- postcss-value-parser "^3.0.0"
- svgo "^1.0.0"
+ postcss-value-parser "^4.2.0"
+ svgo "^2.7.0"
-postcss-unique-selectors@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
- integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
+postcss-unique-selectors@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
+ integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
dependencies:
- alphanum-sort "^1.0.0"
- postcss "^7.0.0"
- uniqs "^2.0.0"
+ postcss-selector-parser "^6.0.5"
-postcss-value-parser@^3.0.0:
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
- integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32:
- version "7.0.32"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d"
- integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==
- dependencies:
- chalk "^2.4.2"
- source-map "^0.6.1"
- supports-color "^6.1.0"
-
postcss@^8.2.15, postcss@^8.4.21:
version "8.4.21"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4"
@@ -9014,11 +8743,6 @@ pure-rand@^6.0.0:
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.0.tgz#701996ceefa253507923a0e864c17ab421c04a7c"
integrity sha512-rLSBxJjP+4DQOgcJAx6RZHT2he2pkhQdSnofG5VWyVl6GRq/K02ISOuOLcsMOrtKDIJb8JN2zm3FFzWNbezdPw==
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-
qs@6.11.0:
version "6.11.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
@@ -9698,16 +9422,6 @@ reusify@^1.0.4:
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
-rgb-regex@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
- integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
-
-rgba-regex@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
- integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-
rimraf@^2.5.4, rimraf@^2.6.3:
version "2.7.1"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
@@ -9822,11 +9536,6 @@ sass@^1.58.3:
immutable "^4.0.0"
source-map-js ">=0.6.2 <2.0.0"
-sax@~1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
- integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
saxes@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
@@ -10055,13 +9764,6 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-swizzle@^0.2.2:
- version "0.2.2"
- resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
- integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
- dependencies:
- is-arrayish "^0.3.1"
-
sirv@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.10.tgz#3e591f5a9ae2520f50d5830f5fae38d97e7be194"
@@ -10534,14 +10236,13 @@ style-search@^0.1.0:
resolved "https://registry.yarnpkg.com/style-search/-/style-search-0.1.0.tgz#7958c793e47e32e07d2b5cafe5c0bf8e12e77902"
integrity sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=
-stylehacks@^4.0.0:
- version "4.0.3"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
- integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
+stylehacks@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9"
+ integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==
dependencies:
- browserslist "^4.0.0"
- postcss "^7.0.0"
- postcss-selector-parser "^3.0.0"
+ browserslist "^4.21.4"
+ postcss-selector-parser "^6.0.4"
stylelint-config-recommended-scss@^9.0.0:
version "9.0.0"
@@ -10687,24 +10388,18 @@ svg-tags@^1.0.0:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
-svgo@^1.0.0:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167"
- integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==
+svgo@^2.7.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
+ integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
dependencies:
- chalk "^2.4.1"
- coa "^2.0.2"
- css-select "^2.0.0"
- css-select-base-adapter "^0.1.1"
- css-tree "1.0.0-alpha.37"
- csso "^4.0.2"
- js-yaml "^3.13.1"
- mkdirp "~0.5.1"
- object.values "^1.1.0"
- sax "~1.2.4"
+ "@trysound/sax" "0.2.0"
+ commander "^7.2.0"
+ css-select "^4.1.3"
+ css-tree "^1.1.3"
+ csso "^4.2.0"
+ picocolors "^1.0.0"
stable "^0.1.8"
- unquote "~1.1.1"
- util.promisify "~1.0.0"
symbol-tree@^3.2.4:
version "3.2.4"
@@ -10866,11 +10561,6 @@ timers-browserify@^2.0.4:
dependencies:
setimmediate "^1.0.4"
-timsort@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
- integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-
tiny-invariant@^1.0.2:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.1.0.tgz#634c5f8efdc27714b7f386c35e6760991d230875"
@@ -11144,16 +10834,6 @@ union-value@^1.0.0:
is-extendable "^0.1.1"
set-value "^2.0.1"
-uniq@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
- integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-
-uniqs@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
- integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
-
unique-filename@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
@@ -11195,11 +10875,6 @@ unpipe@1.0.0, unpipe@~1.0.0:
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-unquote@~1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
- integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
-
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
@@ -11283,16 +10958,6 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-util.promisify@~1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee"
- integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.2"
- has-symbols "^1.0.1"
- object.getownpropertydescriptors "^2.1.0"
-
util@0.10.3:
version "0.10.3"
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
@@ -11354,11 +11019,6 @@ vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-vendors@^1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e"
- integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==
-
vm-browserify@^1.0.1:
version "1.1.2"
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
@@ -11983,7 +11643,7 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yaml@^1.10.0, yaml@^1.7.2:
+yaml@^1.10.0, yaml@^1.10.2, yaml@^1.7.2:
version "1.10.2"
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
From 9875be09feebc52592caca739291288c3ae05b46 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 15 Mar 2023 04:01:49 +0100
Subject: [PATCH 0255/1254] Fix dashboard crash on ElasticSearch server error
(#23751)
---
app/lib/admin/system_check/elasticsearch_check.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb
index 5b4c12399b..0b55be3501 100644
--- a/app/lib/admin/system_check/elasticsearch_check.rb
+++ b/app/lib/admin/system_check/elasticsearch_check.rb
@@ -31,7 +31,7 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
def running_version
@running_version ||= begin
Chewy.client.info['version']['number']
- rescue Faraday::ConnectionFailed
+ rescue Faraday::ConnectionFailed, Elasticsearch::Transport::Transport::Error
nil
end
end
From cf50667e26853d2d0f78ec1226db84995c4b83f4 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 15 Mar 2023 04:14:47 +0100
Subject: [PATCH 0256/1254] Fix incorrect post links in strikes when the
account is remote (#23611)
---
app/views/admin/reports/actions/preview.html.haml | 14 +++++++-------
app/views/disputes/strikes/show.html.haml | 14 +++++++-------
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/app/views/admin/reports/actions/preview.html.haml b/app/views/admin/reports/actions/preview.html.haml
index 58745319c8..70edb48d80 100644
--- a/app/views/admin/reports/actions/preview.html.haml
+++ b/app/views/admin/reports/actions/preview.html.haml
@@ -54,15 +54,15 @@
.strike-card__statuses-list__item
- if (status = status_map[status_id.to_i])
.one-liner
- = link_to short_account_status_url(@report.target_account, status_id), class: 'emojify' do
- = one_line_preview(status)
+ .emojify= one_line_preview(status)
- - status.ordered_media_attachments.each do |media_attachment|
- %abbr{ title: media_attachment.description }
- = fa_icon 'link'
- = media_attachment.file_file_name
+ - status.ordered_media_attachments.each do |media_attachment|
+ %abbr{ title: media_attachment.description }
+ = fa_icon 'link'
+ = media_attachment.file_file_name
.strike-card__statuses-list__item__meta
- %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
+ = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
+ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- unless status.application.nil?
·
= status.application.name
diff --git a/app/views/disputes/strikes/show.html.haml b/app/views/disputes/strikes/show.html.haml
index 7797348dd7..ce52e470d9 100644
--- a/app/views/disputes/strikes/show.html.haml
+++ b/app/views/disputes/strikes/show.html.haml
@@ -50,15 +50,15 @@
.strike-card__statuses-list__item
- if (status = status_map[status_id.to_i])
.one-liner
- = link_to short_account_status_url(@strike.target_account, status_id), class: 'emojify' do
- = one_line_preview(status)
+ .emojify= one_line_preview(status)
- - status.ordered_media_attachments.each do |media_attachment|
- %abbr{ title: media_attachment.description }
- = fa_icon 'link'
- = media_attachment.file_file_name
+ - status.ordered_media_attachments.each do |media_attachment|
+ %abbr{ title: media_attachment.description }
+ = fa_icon 'link'
+ = media_attachment.file_file_name
.strike-card__statuses-list__item__meta
- %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
+ = link_to ActivityPub::TagManager.instance.url_for(status), target: '_blank' do
+ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- unless status.application.nil?
·
= status.application.name
From a232a1feb804e22507ca104ca0aaf21a7c70cb26 Mon Sep 17 00:00:00 2001
From: Claire
Date: Wed, 15 Mar 2023 04:15:20 +0100
Subject: [PATCH 0257/1254] Fix misleading error code when receiving invalid
WebAuthn credentials (#23568)
---
.../webauthn_credentials_controller.rb | 2 +-
.../webauthn_credentials_controller_spec.rb | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
index e43818c941..d1ee7dc195 100644
--- a/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
+++ b/app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb
@@ -52,7 +52,7 @@ module Settings
end
else
flash[:error] = I18n.t('webauthn_credentials.create.error')
- status = :internal_server_error
+ status = :unprocessable_entity
end
else
flash[:error] = t('webauthn_credentials.create.error')
diff --git a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
index f060c3a4bd..a95521c94a 100644
--- a/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
+++ b/spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb
@@ -248,7 +248,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
post :create, params: { credential: new_webauthn_credential, nickname: 'USB Key' }
- expect(response).to have_http_status(500)
+ expect(response).to have_http_status(422)
expect(flash[:error]).to be_present
end
end
@@ -268,7 +268,7 @@ describe Settings::TwoFactorAuthentication::WebauthnCredentialsController do
post :create, params: { credential: new_webauthn_credential, nickname: nickname }
- expect(response).to have_http_status(500)
+ expect(response).to have_http_status(422)
expect(flash[:error]).to be_present
end
end
From 75131e7bf7f3d96cf325e674e6b76b0096382e99 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Tue, 14 Mar 2023 23:15:36 -0400
Subject: [PATCH 0258/1254] Setup haml-lint CI with todo config (#23524)
---
.../workflows/haml-lint-problem-matcher.json | 17 +++
.github/workflows/lint-haml.yml | 44 ++++++
.haml-lint.yml | 103 +-------------
.haml-lint_todo.yml | 128 ++++++++++++++++++
Gemfile | 1 +
Gemfile.lock | 8 ++
app/views/admin/accounts/show.html.haml | 8 +-
app/views/admin/action_logs/index.html.haml | 2 +-
app/views/admin/announcements/index.html.haml | 2 +-
.../admin/disputes/appeals/index.html.haml | 2 +-
app/views/admin/instances/index.html.haml | 2 +-
app/views/admin/rules/index.html.haml | 2 +-
.../admin/warning_presets/index.html.haml | 2 +-
app/views/admin/webhooks/index.html.haml | 2 +-
app/views/auth/sessions/two_factor.html.haml | 2 +-
app/views/filters/_filter_fields.html.haml | 2 +-
app/views/filters/index.html.haml | 2 +-
app/views/kaminari/_next_page.html.haml | 16 ++-
app/views/kaminari/_paginator.html.haml | 15 +-
app/views/kaminari/_prev_page.html.haml | 15 +-
app/views/layouts/modal.html.haml | 2 +-
.../notification_mailer/_status.html.haml | 4 +-
app/views/oauth/authorizations/show.html.haml | 2 +-
.../settings/applications/index.html.haml | 2 +-
.../settings/applications/show.html.haml | 4 +-
.../settings/login_activities/index.html.haml | 2 +-
app/views/statuses/_poll.html.haml | 2 +-
27 files changed, 248 insertions(+), 145 deletions(-)
create mode 100644 .github/workflows/haml-lint-problem-matcher.json
create mode 100644 .github/workflows/lint-haml.yml
create mode 100644 .haml-lint_todo.yml
diff --git a/.github/workflows/haml-lint-problem-matcher.json b/.github/workflows/haml-lint-problem-matcher.json
new file mode 100644
index 0000000000..3523ea2951
--- /dev/null
+++ b/.github/workflows/haml-lint-problem-matcher.json
@@ -0,0 +1,17 @@
+{
+ "problemMatcher": [
+ {
+ "owner": "haml-lint",
+ "severity": "warning",
+ "pattern": [
+ {
+ "regexp": "^(.*):(\\d+)\\s\\[W]\\s(.*):\\s(.*)$",
+ "file": 1,
+ "line": 2,
+ "code": 3,
+ "message": 4
+ }
+ ]
+ }
+ ]
+}
diff --git a/.github/workflows/lint-haml.yml b/.github/workflows/lint-haml.yml
new file mode 100644
index 0000000000..a2b22a6590
--- /dev/null
+++ b/.github/workflows/lint-haml.yml
@@ -0,0 +1,44 @@
+name: Haml Linting
+on:
+ push:
+ branches-ignore:
+ - 'dependabot/**'
+ paths:
+ - '.github/workflows/haml-lint-problem-matcher.json'
+ - '.github/workflows/lint-haml.yml'
+ - '.haml-lint*.yml'
+ - '.rubocop*.yml'
+ - '.ruby-version'
+ - '**/*.haml'
+ - 'Gemfile*'
+
+ pull_request:
+ paths:
+ - '.github/workflows/haml-lint-problem-matcher.json'
+ - '.github/workflows/lint-haml.yml'
+ - '.haml-lint*.yml'
+ - '.rubocop*.yml'
+ - '.ruby-version'
+ - '**/*.haml'
+ - 'Gemfile*'
+
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Clone repository
+ uses: actions/checkout@v3
+
+ - name: Install native Ruby dependencies
+ run: sudo apt-get install -y libicu-dev libidn11-dev
+
+ - name: Set up Ruby
+ uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: .ruby-version
+ bundler-cache: true
+
+ - name: Run haml-lint
+ run: |
+ echo "::add-matcher::.github/workflows/haml-lint-problem-matcher.json"
+ bundle exec haml-lint
diff --git a/.haml-lint.yml b/.haml-lint.yml
index 7853d81d7c..12ca463422 100644
--- a/.haml-lint.yml
+++ b/.haml-lint.yml
@@ -1,108 +1,9 @@
-# Whether to ignore frontmatter at the beginning of HAML documents for
-# frameworks such as Jekyll/Middleman
-skip_frontmatter: false
+inherits_from: .haml-lint_todo.yml
exclude:
- 'vendor/**/*'
- - 'spec/**/*'
- - 'lib/templates/**/*'
- - 'app/views/kaminari/**/*'
+ - lib/templates/haml/scaffold/_form.html.haml
linters:
AltText:
- enabled: false
-
- ClassAttributeWithStaticValue:
- enabled: true
-
- ClassesBeforeIds:
- enabled: true
-
- ConsecutiveComments:
- enabled: true
-
- ConsecutiveSilentScripts:
- enabled: true
- max_consecutive: 2
-
- EmptyObjectReference:
- enabled: true
-
- EmptyScript:
- enabled: true
-
- FinalNewline:
- enabled: true
- present: true
-
- HtmlAttributes:
- enabled: true
-
- ImplicitDiv:
- enabled: true
-
- LeadingCommentSpace:
- enabled: true
-
- LineLength:
- enabled: false
- max: 80
-
- MultilinePipe:
- enabled: true
-
- MultilineScript:
- enabled: true
-
- ObjectReferenceAttributes:
- enabled: true
-
- RuboCop:
- enabled: true
- # These cops are incredibly noisy when it comes to HAML templates, so we
- # ignore them.
- ignored_cops:
- - Lint/BlockAlignment
- - Lint/EndAlignment
- - Lint/Void
- - Metrics/BlockLength
- - Metrics/LineLength
- - Style/AlignParameters
- - Style/BlockNesting
- - Style/ElseAlignment
- - Style/EndOfLine
- - Style/FileName
- - Style/FinalNewline
- - Style/FrozenStringLiteralComment
- - Style/IfUnlessModifier
- - Style/IndentationWidth
- - Style/Next
- - Style/TrailingBlankLines
- - Style/TrailingWhitespace
- - Style/WhileUntilModifier
-
- RubyComments:
- enabled: true
-
- SpaceBeforeScript:
- enabled: true
-
- SpaceInsideHashAttributes:
- enabled: true
- style: space
-
- Indentation:
- enabled: true
- character: space # or tab
-
- TagName:
- enabled: true
-
- TrailingWhitespace:
- enabled: true
-
- UnnecessaryInterpolation:
- enabled: true
-
- UnnecessaryStringOutput:
enabled: true
diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml
new file mode 100644
index 0000000000..203010b043
--- /dev/null
+++ b/.haml-lint_todo.yml
@@ -0,0 +1,128 @@
+# This configuration was generated by
+# `haml-lint --auto-gen-config`
+# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0.
+# The point is for the user to remove these configuration records
+# one by one as the lints are removed from the code base.
+# Note that changes in the inspected code, or installation of new
+# versions of Haml-Lint, may require this file to be generated again.
+
+linters:
+ # Offense count: 76
+ RuboCop:
+ exclude:
+ - 'app/views/accounts/_og.html.haml'
+ - 'app/views/admin/account_actions/new.html.haml'
+ - 'app/views/admin/account_warnings/_account_warning.html.haml'
+ - 'app/views/admin/accounts/index.html.haml'
+ - 'app/views/admin/accounts/show.html.haml'
+ - 'app/views/admin/action_logs/index.html.haml'
+ - 'app/views/admin/announcements/edit.html.haml'
+ - 'app/views/admin/announcements/new.html.haml'
+ - 'app/views/admin/change_emails/show.html.haml'
+ - 'app/views/admin/custom_emojis/index.html.haml'
+ - 'app/views/admin/dashboard/index.html.haml'
+ - 'app/views/admin/disputes/appeals/_appeal.html.haml'
+ - 'app/views/admin/domain_blocks/edit.html.haml'
+ - 'app/views/admin/domain_blocks/new.html.haml'
+ - 'app/views/admin/ip_blocks/new.html.haml'
+ - 'app/views/admin/reports/actions/preview.html.haml'
+ - 'app/views/admin/reports/index.html.haml'
+ - 'app/views/admin/reports/show.html.haml'
+ - 'app/views/admin/roles/_form.html.haml'
+ - 'app/views/admin/settings/about/show.html.haml'
+ - 'app/views/admin/settings/appearance/show.html.haml'
+ - 'app/views/admin/settings/registrations/show.html.haml'
+ - 'app/views/admin/statuses/show.html.haml'
+ - 'app/views/application/_card.html.haml'
+ - 'app/views/application/_sidebar.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/auth/registrations/new.html.haml'
+ - 'app/views/auth/sessions/new.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+ - 'app/views/filters/_filter_fields.html.haml'
+ - 'app/views/invites/_form.html.haml'
+ - 'app/views/layouts/application.html.haml'
+ - 'app/views/layouts/error.html.haml'
+ - 'app/views/layouts/mailer.html.haml'
+ - 'app/views/notification_mailer/_status.html.haml'
+ - 'app/views/notification_mailer/favourite.html.haml'
+ - 'app/views/notification_mailer/follow_request.html.haml'
+ - 'app/views/oauth/authorizations/new.html.haml'
+ - 'app/views/oauth/authorized_applications/index.html.haml'
+ - 'app/views/settings/applications/_fields.html.haml'
+ - 'app/views/settings/imports/show.html.haml'
+ - 'app/views/settings/login_activities/_login_activity.html.haml'
+ - 'app/views/settings/preferences/appearance/show.html.haml'
+ - 'app/views/settings/preferences/other/show.html.haml'
+ - 'app/views/settings/preferences/other/show.html.haml'
+ - 'app/views/statuses_cleanup/show.html.haml'
+ - 'app/views/statuses/_detailed_status.html.haml'
+ - 'app/views/statuses/_og_image.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+ - 'app/views/statuses/_status.html.haml'
+ - 'app/views/statuses/show.html.haml'
+ - 'app/views/user_mailer/suspicious_sign_in.html.haml'
+ - 'app/views/user_mailer/warning.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_added.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
+
+ # Offense count: 918
+ LineLength:
+ enabled: false
+
+ # Offense count: 22
+ UnnecessaryStringOutput:
+ exclude:
+ - 'app/views/accounts/show.html.haml'
+ - 'app/views/admin/custom_emojis/_custom_emoji.html.haml'
+ - 'app/views/admin/relays/_relay.html.haml'
+ - 'app/views/admin/rules/_rule.html.haml'
+ - 'app/views/admin/statuses/index.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+ - 'app/views/notification_mailer/_status.html.haml'
+ - 'app/views/settings/two_factor_authentication_methods/index.html.haml'
+ - 'app/views/statuses/_detailed_status.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+ - 'app/views/statuses/_simple_status.html.haml'
+ - 'app/views/user_mailer/suspicious_sign_in.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_added.html.haml'
+ - 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
+ - 'app/views/user_mailer/welcome.html.haml'
+
+ # Offense count: 3
+ ViewLength:
+ exclude:
+ - 'app/views/admin/accounts/show.html.haml'
+ - 'app/views/admin/reports/show.html.haml'
+ - 'app/views/disputes/strikes/show.html.haml'
+
+ # Offense count: 43
+ InstanceVariables:
+ exclude:
+ - 'app/views/admin/reports/_actions.html.haml'
+ - 'app/views/admin/roles/_form.html.haml'
+ - 'app/views/admin/webhooks/_form.html.haml'
+ - 'app/views/application/_sidebar.html.haml'
+ - 'app/views/auth/registrations/_sessions.html.haml'
+ - 'app/views/auth/registrations/_status.html.haml'
+ - 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
+ - 'app/views/authorize_interactions/_post_follow_actions.html.haml'
+ - 'app/views/invites/_form.html.haml'
+ - 'app/views/relationships/_account.html.haml'
+ - 'app/views/shared/_og.html.haml'
+ - 'app/views/statuses/_status.html.haml'
+
+ # Offense count: 6
+ ConsecutiveSilentScripts:
+ exclude:
+ - 'app/views/admin/settings/shared/_links.html.haml'
+ - 'app/views/settings/login_activities/_login_activity.html.haml'
+ - 'app/views/statuses/_poll.html.haml'
+
+ # Offense count: 3
+ IdNames:
+ exclude:
+ - 'app/views/authorize_interactions/error.html.haml'
+ - 'app/views/oauth/authorizations/error.html.haml'
+ - 'app/views/shared/_error_messages.html.haml'
diff --git a/Gemfile b/Gemfile
index 7a836b6ba4..c7889118d3 100644
--- a/Gemfile
+++ b/Gemfile
@@ -139,6 +139,7 @@ group :development do
gem 'memory_profiler'
gem 'brakeman', '~> 5.4', require: false
gem 'bundler-audit', '~> 0.9', require: false
+ gem 'haml_lint', require: false
gem 'capistrano', '~> 3.17'
gem 'capistrano-rails', '~> 1.6'
diff --git a/Gemfile.lock b/Gemfile.lock
index 5904ed804d..0041c24c74 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -308,6 +308,12 @@ GEM
activesupport (>= 5.1)
haml (>= 4.0.6)
railties (>= 5.1)
+ haml_lint (0.45.0)
+ haml (>= 4.0, < 6.2)
+ parallel (~> 1.10)
+ rainbow
+ rubocop (>= 0.50.0)
+ sysexits (~> 1.1)
hashdiff (1.0.1)
hashie (5.0.0)
highline (2.0.3)
@@ -687,6 +693,7 @@ GEM
activesupport (>= 3)
attr_required (>= 0.0.5)
httpclient (>= 2.4)
+ sysexits (1.2.0)
temple (0.10.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
@@ -804,6 +811,7 @@ DEPENDENCIES
fog-openstack (~> 0.3)
fuubar (~> 2.5)
haml-rails (~> 2.0)
+ haml_lint
hiredis (~> 0.6)
htmlentities (~> 4.3)
http (~> 5.1)
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index c8a9d33a70..f5ae88379d 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -206,7 +206,7 @@
- if @deletion_request.present?
= link_to t('admin.accounts.delete'), admin_account_path(@account.id), method: :delete, class: 'button button--destructive', data: { confirm: t('admin.accounts.are_you_sure') } if can?(:destroy, @account)
- else
- %div.action-buttons
+ .action-buttons
%div
- if @account.local? && @account.user_approved?
= link_to t('admin.accounts.warn'), new_admin_account_action_path(@account.id, type: 'none'), class: 'button' if can?(:warn, @account)
@@ -276,9 +276,9 @@
%hr.spacer/
- if @account.user&.invite_request&.text&.present?
- %div.speech-bubble
- %div.speech-bubble__bubble
+ .speech-bubble
+ .speech-bubble__bubble
= @account.user&.invite_request&.text
- %div.speech-bubble__owner
+ .speech-bubble__owner
= admin_account_link_to @account
= t('admin.accounts.invite_request_text')
diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml
index d8b7132f5c..e2992fb80c 100644
--- a/app/views/admin/action_logs/index.html.haml
+++ b/app/views/admin/action_logs/index.html.haml
@@ -19,7 +19,7 @@
= select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
- if @action_logs.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.action_logs.empty'
- else
.report-notes
diff --git a/app/views/admin/announcements/index.html.haml b/app/views/admin/announcements/index.html.haml
index 40f02b914e..ce520f59d3 100644
--- a/app/views/admin/announcements/index.html.haml
+++ b/app/views/admin/announcements/index.html.haml
@@ -12,7 +12,7 @@
%li= filter_link_to safe_join([t('admin.announcements.live'), "(#{number_with_delimiter(Announcement.published.count)})"], ' '), published: '1', unpublished: nil
- if @announcements.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.announcements.empty'
- else
.announcements-list
diff --git a/app/views/admin/disputes/appeals/index.html.haml b/app/views/admin/disputes/appeals/index.html.haml
index dd6a6f403f..602414550e 100644
--- a/app/views/admin/disputes/appeals/index.html.haml
+++ b/app/views/admin/disputes/appeals/index.html.haml
@@ -13,7 +13,7 @@
%li= filter_link_to t('admin.trends.rejected'), status: 'rejected'
- if @appeals.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.disputes.appeals.empty'
- else
.announcements-list
diff --git a/app/views/admin/instances/index.html.haml b/app/views/admin/instances/index.html.haml
index 8f7e3e67d2..0bae70e31d 100644
--- a/app/views/admin/instances/index.html.haml
+++ b/app/views/admin/instances/index.html.haml
@@ -47,7 +47,7 @@
%hr.spacer/
- if @instances.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.instances.empty'
- else
= render partial: 'instance', collection: @instances
diff --git a/app/views/admin/rules/index.html.haml b/app/views/admin/rules/index.html.haml
index 4fb993ad07..aa6a4c1b6a 100644
--- a/app/views/admin/rules/index.html.haml
+++ b/app/views/admin/rules/index.html.haml
@@ -18,7 +18,7 @@
%hr.spacer/
- if @rules.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.rules.empty'
- else
.announcements-list
diff --git a/app/views/admin/warning_presets/index.html.haml b/app/views/admin/warning_presets/index.html.haml
index dbc23fa308..b26a13d966 100644
--- a/app/views/admin/warning_presets/index.html.haml
+++ b/app/views/admin/warning_presets/index.html.haml
@@ -17,7 +17,7 @@
%hr.spacer/
- if @warning_presets.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.warning_presets.empty'
- else
.announcements-list
diff --git a/app/views/admin/webhooks/index.html.haml b/app/views/admin/webhooks/index.html.haml
index e4499e078b..603d0edd25 100644
--- a/app/views/admin/webhooks/index.html.haml
+++ b/app/views/admin/webhooks/index.html.haml
@@ -9,7 +9,7 @@
%hr.spacer/
- if @webhooks.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'admin.webhooks.empty'
- else
.applications-list
diff --git a/app/views/auth/sessions/two_factor.html.haml b/app/views/auth/sessions/two_factor.html.haml
index b897a0422e..20232d8dc2 100644
--- a/app/views/auth/sessions/two_factor.html.haml
+++ b/app/views/auth/sessions/two_factor.html.haml
@@ -1,7 +1,7 @@
- content_for :page_title do
= t('auth.login')
-=javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
+= javascript_pack_tag 'two_factor_authentication', crossorigin: 'anonymous'
- if @webauthn_enabled
= render partial: 'auth/sessions/two_factor/webauthn_form', locals: { hidden: @scheme_type != 'webauthn' }
diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml
index c58978f5a3..a554b55ff6 100644
--- a/app/views/filters/_filter_fields.html.haml
+++ b/app/views/filters/_filter_fields.html.haml
@@ -35,6 +35,6 @@
= render 'keyword_fields', f: keyword
%tfoot
%tr
- %td{ colspan: 3}
+ %td{ colspan: 3 }
= link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
= safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml
index 0227526a47..9c84f796ff 100644
--- a/app/views/filters/index.html.haml
+++ b/app/views/filters/index.html.haml
@@ -5,7 +5,7 @@
= link_to t('filters.new.title'), new_filter_path, class: 'button'
- if @filters.empty?
- %div.muted-hint.center-text= t 'filters.index.empty'
+ .muted-hint.center-text= t 'filters.index.empty'
- else
.applications-list
= render partial: 'filter', collection: @filters
diff --git a/app/views/kaminari/_next_page.html.haml b/app/views/kaminari/_next_page.html.haml
index 30a3643d64..c44aea1f11 100644
--- a/app/views/kaminari/_next_page.html.haml
+++ b/app/views/kaminari/_next_page.html.haml
@@ -1,9 +1,11 @@
--# Link to the "Next" page
--# available local variables
--# url: url to the next page
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
+-#
+ Link to the "Next" page
+ available local variables
+ url: url to the next page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+
%span.next
= link_to_unless current_page.last?, safe_join([t('pagination.next'), fa_icon('chevron-right')], ' '), url, rel: 'next', remote: remote
diff --git a/app/views/kaminari/_paginator.html.haml b/app/views/kaminari/_paginator.html.haml
index b1da236d5d..4778f6279a 100644
--- a/app/views/kaminari/_paginator.html.haml
+++ b/app/views/kaminari/_paginator.html.haml
@@ -1,10 +1,11 @@
--# The container tag
--# available local variables
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
--# paginator: the paginator that renders the pagination tags inside
+-#
+ The container tag
+ available local variables
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
+ paginator: the paginator that renders the pagination tags inside
= paginator.render do
%nav.pagination
= prev_page_tag unless current_page.first?
diff --git a/app/views/kaminari/_prev_page.html.haml b/app/views/kaminari/_prev_page.html.haml
index 1089e35668..284d6223b8 100644
--- a/app/views/kaminari/_prev_page.html.haml
+++ b/app/views/kaminari/_prev_page.html.haml
@@ -1,9 +1,10 @@
--# Link to the "Previous" page
--# available local variables
--# url: url to the previous page
--# current_page: a page object for the currently displayed page
--# total_pages: total number of pages
--# per_page: number of items to fetch per page
--# remote: data-remote
+-#
+ Link to the "Previous" page
+ available local variables
+ url: url to the previous page
+ current_page: a page object for the currently displayed page
+ total_pages: total number of pages
+ per_page: number of items to fetch per page
+ remote: data-remote
%span.prev
= link_to_unless current_page.first?, safe_join([fa_icon('chevron-left'), t('pagination.prev')], ' '), url, rel: 'prev', remote: remote
diff --git a/app/views/layouts/modal.html.haml b/app/views/layouts/modal.html.haml
index bbdae602f3..bd2dcc1324 100644
--- a/app/views/layouts/modal.html.haml
+++ b/app/views/layouts/modal.html.haml
@@ -15,6 +15,6 @@
.modal-layout__mastodon
%div
- %img{alt: '', draggable: 'false', src: mascot_url }
+ %img{ alt: '', draggable: 'false', src: mascot_url }
= render template: 'layouts/application'
diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml
index e7cd5ba3eb..03f49c73da 100644
--- a/app/views/notification_mailer/_status.html.haml
+++ b/app/views/notification_mailer/_status.html.haml
@@ -26,11 +26,11 @@
= "@#{status.account.pretty_acct}"
- if status.spoiler_text?
- %div.auto-dir
+ .auto-dir
%p
= status.spoiler_text
- %div.auto-dir
+ .auto-dir
= status_content_format(status)
- if status.ordered_media_attachments.size > 0
diff --git a/app/views/oauth/authorizations/show.html.haml b/app/views/oauth/authorizations/show.html.haml
index c3c9960d8a..a5122a87fc 100644
--- a/app/views/oauth/authorizations/show.html.haml
+++ b/app/views/oauth/authorizations/show.html.haml
@@ -3,5 +3,5 @@
%p= t('doorkeeper.authorizations.show.title')
.input-copy
.input-copy__wrapper
- %input{ type: 'text', class: 'oauth-code', spellcheck: 'false', readonly: true, value: params[:code] }
+ %input.oauth-code{ type: 'text', spellcheck: 'false', readonly: true, value: params[:code] }
%button{ type: :button }= t('generic.copy')
diff --git a/app/views/settings/applications/index.html.haml b/app/views/settings/applications/index.html.haml
index a1f904a3a8..5c31d56bca 100644
--- a/app/views/settings/applications/index.html.haml
+++ b/app/views/settings/applications/index.html.haml
@@ -5,7 +5,7 @@
= link_to t('doorkeeper.applications.index.new'), new_settings_application_path, class: 'button'
- if @applications.empty?
- %div.muted-hint.center-text=t 'doorkeeper.applications.index.empty'
+ .muted-hint.center-text= t 'doorkeeper.applications.index.empty'
- else
.table-wrapper
%table.table
diff --git a/app/views/settings/applications/show.html.haml b/app/views/settings/applications/show.html.haml
index 390682d6f9..466a8ba340 100644
--- a/app/views/settings/applications/show.html.haml
+++ b/app/views/settings/applications/show.html.haml
@@ -6,7 +6,7 @@
.table-wrapper
%table.table
%tbody
- %tr
+ %tr
%th= t('doorkeeper.applications.show.application_id')
%td
%code= @application.uid
@@ -15,7 +15,7 @@
%td
%code= @application.secret
%tr
- %th{ rowspan: 2}= t('applications.your_token')
+ %th{ rowspan: 2 }= t('applications.your_token')
%td
%code= current_user.token_for_app(@application).token
%tr
diff --git a/app/views/settings/login_activities/index.html.haml b/app/views/settings/login_activities/index.html.haml
index ce524fbef7..6fb1bc34c0 100644
--- a/app/views/settings/login_activities/index.html.haml
+++ b/app/views/settings/login_activities/index.html.haml
@@ -6,7 +6,7 @@
%hr.spacer/
- if @login_activities.empty?
- %div.muted-hint.center-text
+ .muted-hint.center-text
= t 'login_activities.empty'
- else
.announcements-list
diff --git a/app/views/statuses/_poll.html.haml b/app/views/statuses/_poll.html.haml
index d0f2640957..248c6058cb 100644
--- a/app/views/statuses/_poll.html.haml
+++ b/app/views/statuses/_poll.html.haml
@@ -21,7 +21,7 @@
%span.poll__chart
- else
%label.poll__option><
- %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil}><
+ %span.poll__input{ class: poll.multiple? ? 'checkbox' : nil }><
%span.poll__option__text
= prerender_custom_emojis(h(option.title), status.emojis)
.poll__footer
From 17fb58bff31ec4b92c5621884ae87fa23033127a Mon Sep 17 00:00:00 2001
From: PauloVilarinho <33267902+PauloVilarinho@users.noreply.github.com>
Date: Mon, 6 Mar 2023 13:33:09 -0300
Subject: [PATCH 0259/1254] [Glitch] add modal message when editing toot
Port 8770473dbb92042f76e058469a76e5bb4beecb9f to glitch-soc
Co-authored-by: PauloVilarinho
Signed-off-by: Claire
---
.../glitch/containers/status_container.js | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/app/javascript/flavours/glitch/containers/status_container.js b/app/javascript/flavours/glitch/containers/status_container.js
index 645919ebe8..9873725e49 100644
--- a/app/javascript/flavours/glitch/containers/status_container.js
+++ b/app/javascript/flavours/glitch/containers/status_container.js
@@ -52,6 +52,8 @@ const messages = defineMessages({
redraftMessage: { id: 'confirmations.redraft.message', defaultMessage: 'Are you sure you want to delete this status and re-draft it? You will lose all replies, boosts and favourites to it.' },
replyConfirm: { id: 'confirmations.reply.confirm', defaultMessage: 'Reply' },
replyMessage: { id: 'confirmations.reply.message', defaultMessage: 'Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
+ editConfirm: { id: 'confirmations.edit.confirm', defaultMessage: 'Edit' },
+ editMessage: { id: 'confirmations.edit.message', defaultMessage: 'Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?' },
unfilterConfirm: { id: 'confirmations.unfilter.confirm', defaultMessage: 'Show' },
author: { id: 'confirmations.unfilter.author', defaultMessage: 'Author' },
matchingFilters: { id: 'confirmations.unfilter.filters', defaultMessage: 'Matching {count, plural, one {filter} other {filters}}' },
@@ -183,7 +185,18 @@ const mapDispatchToProps = (dispatch, { intl, contextType }) => ({
},
onEdit (status, history) {
- dispatch(editStatus(status.get('id'), history));
+ dispatch((_, getState) => {
+ let state = getState();
+ if (state.getIn(['compose', 'text']).trim().length !== 0) {
+ dispatch(openModal('CONFIRM', {
+ message: intl.formatMessage(messages.editMessage),
+ confirm: intl.formatMessage(messages.editConfirm),
+ onConfirm: () => dispatch(editStatus(status.get('id'), history)),
+ }));
+ } else {
+ dispatch(editStatus(status.get('id'), history));
+ }
+ });
},
onTranslate (status) {
From 32418f0ff3e7f25ca67334585d6d8442b34cb4af Mon Sep 17 00:00:00 2001
From: Rodion Borisov
Date: Thu, 9 Mar 2023 16:35:44 +0300
Subject: [PATCH 0260/1254] [Glitch] Center the text itself in upload area
Port a52ccd7ad98d7d60dffb520c0397ba8aa4c2eb9d to glitch-soc
Signed-off-by: Claire
---
app/javascript/flavours/glitch/styles/components/misc.scss | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss
index 2cd9b75037..86b8b99c1b 100644
--- a/app/javascript/flavours/glitch/styles/components/misc.scss
+++ b/app/javascript/flavours/glitch/styles/components/misc.scss
@@ -1628,6 +1628,7 @@ button.icon-button.active i.fa-retweet {
display: flex;
align-items: center;
justify-content: center;
+ text-align: center;
color: $secondary-text-color;
font-size: 18px;
font-weight: 500;
From f9bdaebad237414b5284be41af7e358ef71f0dee Mon Sep 17 00:00:00 2001
From: Renaud Chaput
Date: Wed, 15 Mar 2023 16:41:13 +0100
Subject: [PATCH 0261/1254] Use Github Container Registry as the official
container image source (#24113)
---
README.md | 3 +--
docker-compose.yml | 6 +++---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index f517668a95..d88699d7ba 100644
--- a/README.md
+++ b/README.md
@@ -8,12 +8,10 @@
[![Ruby Testing](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml/badge.svg)](https://github.com/mastodon/mastodon/actions/workflows/test-ruby.yml)
[![Code Climate](https://img.shields.io/codeclimate/maintainability/mastodon/mastodon.svg)][code_climate]
[![Crowdin](https://d322cqt584bo4o.cloudfront.net/mastodon/localized.svg)][crowdin]
-[![Docker Pulls](https://img.shields.io/docker/pulls/tootsuite/mastodon.svg)][docker]
[releases]: https://github.com/mastodon/mastodon/releases
[code_climate]: https://codeclimate.com/github/mastodon/mastodon
[crowdin]: https://crowdin.com/project/mastodon
-[docker]: https://hub.docker.com/r/tootsuite/mastodon/
Mastodon is a **free, open-source social network server** based on ActivityPub where users can follow friends and discover new ones. On Mastodon, users can publish anything they want: links, pictures, text, video. All Mastodon servers are interoperable as a federated network (users on one server can seamlessly communicate with users from another one, including non-Mastodon software that implements ActivityPub!)
@@ -30,6 +28,7 @@ Click below to **learn more** in a video:
- [View sponsors](https://joinmastodon.org/sponsors)
- [Blog](https://blog.joinmastodon.org)
- [Documentation](https://docs.joinmastodon.org)
+- [Official Docker image](https://github.com/mastodon/mastodon/pkgs/container/mastodon)
- [Browse Mastodon servers](https://joinmastodon.org/communities)
- [Browse Mastodon apps](https://joinmastodon.org/apps)
diff --git a/docker-compose.yml b/docker-compose.yml
index c534286c76..f603c2f7e2 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -56,7 +56,7 @@ services:
web:
build: .
- image: tootsuite/mastodon
+ image: ghcr.io/mastodon/mastodon
restart: always
env_file: .env.production
command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
@@ -77,7 +77,7 @@ services:
streaming:
build: .
- image: tootsuite/mastodon
+ image: ghcr.io/mastodon/mastodon
restart: always
env_file: .env.production
command: node ./streaming
@@ -95,7 +95,7 @@ services:
sidekiq:
build: .
- image: tootsuite/mastodon
+ image: ghcr.io/mastodon/mastodon
restart: always
env_file: .env.production
command: bundle exec sidekiq
From 0b8b0ef65221e5341cd81b212f0e40722ffd5ef7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 15 Mar 2023 11:43:44 -0400
Subject: [PATCH 0262/1254] Skip pushing containers on forks (#24106)
---
.github/workflows/build-image.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml
index a1db68e3b4..c0a4976b1a 100644
--- a/.github/workflows/build-image.yml
+++ b/.github/workflows/build-image.yml
@@ -63,7 +63,7 @@ jobs:
platforms: linux/amd64,linux/arm64
provenance: false
builder: ${{ steps.buildx.outputs.name }}
- push: ${{ github.event_name != 'pull_request' }}
+ push: ${{ github.repository == 'mastodon/mastodon' && github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
From 65669d3c5719e72000bf26849d0ee1eaec1f9d1b Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 15 Mar 2023 15:07:43 -0400
Subject: [PATCH 0263/1254] Fix more haml-lint Rubocop (#24107)
---
.haml-lint_todo.yml | 32 +++----------------
app/views/admin/account_actions/new.html.haml | 2 +-
app/views/admin/accounts/show.html.haml | 2 +-
app/views/admin/action_logs/index.html.haml | 2 +-
app/views/admin/change_emails/show.html.haml | 2 +-
app/views/admin/custom_emojis/index.html.haml | 4 +--
app/views/admin/dashboard/index.html.haml | 2 +-
app/views/application/_card.html.haml | 2 +-
.../auth/registrations/_sessions.html.haml | 2 +-
app/views/auth/sessions/new.html.haml | 2 +-
app/views/layouts/mailer.html.haml | 2 +-
.../notification_mailer/_status.html.haml | 2 +-
.../notification_mailer/favourite.html.haml | 2 +-
.../follow_request.html.haml | 2 +-
.../_login_activity.html.haml | 2 +-
.../preferences/appearance/show.html.haml | 4 +--
app/views/statuses/_detailed_status.html.haml | 6 ++--
app/views/statuses/_og_image.html.haml | 2 +-
app/views/statuses/_status.html.haml | 2 +-
.../user_mailer/suspicious_sign_in.html.haml | 2 +-
.../webauthn_credential_added.html.haml | 2 +-
.../webauthn_credential_deleted.html.haml | 2 +-
22 files changed, 30 insertions(+), 52 deletions(-)
diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml
index 203010b043..c601683907 100644
--- a/.haml-lint_todo.yml
+++ b/.haml-lint_todo.yml
@@ -1,26 +1,21 @@
# This configuration was generated by
# `haml-lint --auto-gen-config`
-# on 2023-02-11 02:16:03 -0500 using Haml-Lint version 0.45.0.
+# on 2023-03-15 00:55:01 -0400 using Haml-Lint version 0.45.0.
# The point is for the user to remove these configuration records
# one by one as the lints are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of Haml-Lint, may require this file to be generated again.
linters:
- # Offense count: 76
+ # Offense count: 63
RuboCop:
exclude:
- 'app/views/accounts/_og.html.haml'
- - 'app/views/admin/account_actions/new.html.haml'
- 'app/views/admin/account_warnings/_account_warning.html.haml'
- 'app/views/admin/accounts/index.html.haml'
- 'app/views/admin/accounts/show.html.haml'
- - 'app/views/admin/action_logs/index.html.haml'
- 'app/views/admin/announcements/edit.html.haml'
- 'app/views/admin/announcements/new.html.haml'
- - 'app/views/admin/change_emails/show.html.haml'
- - 'app/views/admin/custom_emojis/index.html.haml'
- - 'app/views/admin/dashboard/index.html.haml'
- 'app/views/admin/disputes/appeals/_appeal.html.haml'
- 'app/views/admin/domain_blocks/edit.html.haml'
- 'app/views/admin/domain_blocks/new.html.haml'
@@ -33,40 +28,24 @@ linters:
- 'app/views/admin/settings/appearance/show.html.haml'
- 'app/views/admin/settings/registrations/show.html.haml'
- 'app/views/admin/statuses/show.html.haml'
- - 'app/views/application/_card.html.haml'
- - 'app/views/application/_sidebar.html.haml'
- - 'app/views/auth/registrations/_sessions.html.haml'
- 'app/views/auth/registrations/new.html.haml'
- - 'app/views/auth/sessions/new.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
- 'app/views/filters/_filter_fields.html.haml'
- 'app/views/invites/_form.html.haml'
- 'app/views/layouts/application.html.haml'
- 'app/views/layouts/error.html.haml'
- - 'app/views/layouts/mailer.html.haml'
- 'app/views/notification_mailer/_status.html.haml'
- - 'app/views/notification_mailer/favourite.html.haml'
- - 'app/views/notification_mailer/follow_request.html.haml'
- - 'app/views/oauth/authorizations/new.html.haml'
- - 'app/views/oauth/authorized_applications/index.html.haml'
- 'app/views/settings/applications/_fields.html.haml'
- 'app/views/settings/imports/show.html.haml'
- - 'app/views/settings/login_activities/_login_activity.html.haml'
- 'app/views/settings/preferences/appearance/show.html.haml'
- 'app/views/settings/preferences/other/show.html.haml'
- - 'app/views/settings/preferences/other/show.html.haml'
- - 'app/views/statuses_cleanup/show.html.haml'
- 'app/views/statuses/_detailed_status.html.haml'
- - 'app/views/statuses/_og_image.html.haml'
- 'app/views/statuses/_poll.html.haml'
- - 'app/views/statuses/_status.html.haml'
- 'app/views/statuses/show.html.haml'
- - 'app/views/user_mailer/suspicious_sign_in.html.haml'
+ - 'app/views/statuses_cleanup/show.html.haml'
- 'app/views/user_mailer/warning.html.haml'
- - 'app/views/user_mailer/webauthn_credential_added.html.haml'
- - 'app/views/user_mailer/webauthn_credential_deleted.html.haml'
- # Offense count: 918
+ # Offense count: 913
LineLength:
enabled: false
@@ -97,13 +76,12 @@ linters:
- 'app/views/admin/reports/show.html.haml'
- 'app/views/disputes/strikes/show.html.haml'
- # Offense count: 43
+ # Offense count: 41
InstanceVariables:
exclude:
- 'app/views/admin/reports/_actions.html.haml'
- 'app/views/admin/roles/_form.html.haml'
- 'app/views/admin/webhooks/_form.html.haml'
- - 'app/views/application/_sidebar.html.haml'
- 'app/views/auth/registrations/_sessions.html.haml'
- 'app/views/auth/registrations/_status.html.haml'
- 'app/views/auth/sessions/two_factor/_otp_authentication_form.html.haml'
diff --git a/app/views/admin/account_actions/new.html.haml b/app/views/admin/account_actions/new.html.haml
index c7bb618dfb..2a0cae15a0 100644
--- a/app/views/admin/account_actions/new.html.haml
+++ b/app/views/admin/account_actions/new.html.haml
@@ -5,7 +5,7 @@
= f.input :report_id, as: :hidden
.fields-group
- = f.input :type, as: :radio_buttons, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { safe_join([I18n.t("simple_form.labels.admin_account_action.types.#{type}"), content_tag(:span, I18n.t("simple_form.hints.admin_account_action.types.#{type}"), class: 'hint')])}, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct)
+ = f.input :type, as: :radio_buttons, collection: Admin::AccountAction.types_for_account(@account), include_blank: false, wrapper: :with_block_label, label_method: ->(type) { safe_join([I18n.t("simple_form.labels.admin_account_action.types.#{type}"), content_tag(:span, I18n.t("simple_form.hints.admin_account_action.types.#{type}"), class: 'hint')]) }, hint: t('simple_form.hints.admin_account_action.type_html', acct: @account.pretty_acct)
- if @account.local?
%hr.spacer/
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index f5ae88379d..44867d0a26 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -187,7 +187,7 @@
%th= t('admin.accounts.shared_inbox_url')
%td
= @account.shared_inbox_url
- = fa_icon DeliveryFailureTracker.available?(@account.shared_inbox_url) ? 'check': 'times'
+ = fa_icon DeliveryFailureTracker.available?(@account.shared_inbox_url) ? 'check' : 'times'
%td
- if @domain_block.nil?
= table_link_to 'ban', t('admin.domain_blocks.add_new'), new_admin_domain_block_path(_domain: @account.domain)
diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml
index e2992fb80c..4c78797c13 100644
--- a/app/views/admin/action_logs/index.html.haml
+++ b/app/views/admin/action_logs/index.html.haml
@@ -16,7 +16,7 @@
.filter-subset.filter-subset--with-select
%strong= t('admin.action_logs.filter_by_action')
.input.select.optional
- = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key]}, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
+ = select_tag :action_type, options_for_select(Admin::ActionLogFilter::ACTION_TYPE_MAP.keys.map { |key| [I18n.t("admin.action_logs.action_types.#{key}"), key] }, params[:action_type]), prompt: I18n.t('admin.accounts.moderation.all')
- if @action_logs.empty?
.muted-hint.center-text
diff --git a/app/views/admin/change_emails/show.html.haml b/app/views/admin/change_emails/show.html.haml
index bc00d61142..8536a18d2c 100644
--- a/app/views/admin/change_emails/show.html.haml
+++ b/app/views/admin/change_emails/show.html.haml
@@ -9,4 +9,4 @@
= f.input :unconfirmed_email, wrapper: :with_label, label: t('admin.accounts.change_email.new_email')
.actions
- = f.button :submit, class: "button", value: t('admin.accounts.change_email.submit')
+ = f.button :submit, class: 'button', value: t('admin.accounts.change_email.submit')
diff --git a/app/views/admin/custom_emojis/index.html.haml b/app/views/admin/custom_emojis/index.html.haml
index bfec0407ef..6ded4b4332 100644
--- a/app/views/admin/custom_emojis/index.html.haml
+++ b/app/views/admin/custom_emojis/index.html.haml
@@ -15,12 +15,12 @@
%li= filter_link_to t('admin.accounts.location.all'), local: nil, remote: nil
%li
- if selected? local: '1', remote: nil
- = filter_link_to t('admin.accounts.location.local'), {local: nil, remote: nil}, {local: '1', remote: nil}
+ = filter_link_to t('admin.accounts.location.local'), { local: nil, remote: nil }, { local: '1', remote: nil }
- else
= filter_link_to t('admin.accounts.location.local'), local: '1', remote: nil
%li
- if selected? remote: '1', local: nil
- = filter_link_to t('admin.accounts.location.remote'), {remote: nil, local: nil}, {remote: '1', local: nil}
+ = filter_link_to t('admin.accounts.location.remote'), { remote: nil, local: nil }, { remote: '1', local: nil }
- else
= filter_link_to t('admin.accounts.location.remote'), remote: '1', local: nil
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index 8354f0b9f5..e05215327f 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -59,7 +59,7 @@
= react_admin_component :dimension, dimension: 'servers', start_at: @time_period.first, end_at: @time_period.last, limit: 8, label: t('admin.dashboard.top_servers')
.dashboard__item.dashboard__item--span-double-column
- = react_admin_component :retention, start_at: @time_period.last - 6.months, end_at: @time_period.last, frequency: 'month'
+ = react_admin_component :retention, start_at: @time_period.last - 6.months, end_at: @time_period.last, frequency: 'month'
.dashboard__item.dashboard__item--span-double-row
= react_admin_component :trends, limit: 7
diff --git a/app/views/application/_card.html.haml b/app/views/application/_card.html.haml
index 3d0e6b1dad..719856d495 100644
--- a/app/views/application/_card.html.haml
+++ b/app/views/application/_card.html.haml
@@ -13,4 +13,4 @@
%strong.emojify.p-name= display_name(account, custom_emojify: true)
%span
= acct(account)
- = fa_icon('lock', { data: ({hidden: true} unless account.locked?)})
+ = fa_icon('lock', { data: ({ hidden: true } unless account.locked?) })
diff --git a/app/views/auth/registrations/_sessions.html.haml b/app/views/auth/registrations/_sessions.html.haml
index c094dfd255..55d753c18a 100644
--- a/app/views/auth/registrations/_sessions.html.haml
+++ b/app/views/auth/registrations/_sessions.html.haml
@@ -20,7 +20,7 @@
%span{ title: session.user_agent }<
= fa_icon "#{session_device_icon(session)} fw", 'aria-label': session_device_icon(session)
= ' '
- = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: "#{session.browser}"), platform: t("sessions.platforms.#{session.platform}", default: "#{session.platform}")
+ = t 'sessions.description', browser: t("sessions.browsers.#{session.browser}", default: session.browser.to_s), platform: t("sessions.platforms.#{session.platform}", default: session.platform.to_s)
%td
%samp= session.ip
%td
diff --git a/app/views/auth/sessions/new.html.haml b/app/views/auth/sessions/new.html.haml
index e98c1ff3de..7914e0157f 100644
--- a/app/views/auth/sessions/new.html.haml
+++ b/app/views/auth/sessions/new.html.haml
@@ -19,7 +19,7 @@
.actions
= f.button :button, t('auth.login'), type: :submit
-- if devise_mapping.omniauthable? and resource_class.omniauth_providers.any?
+- if devise_mapping.omniauthable? && resource_class.omniauth_providers.any?
.simple_form.alternative-login
%h4= omniauth_only? ? t('auth.log_in_with') : t('auth.or_log_in_with')
diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml
index d816f1b8c0..43c8559270 100644
--- a/app/views/layouts/mailer.html.haml
+++ b/app/views/layouts/mailer.html.haml
@@ -35,7 +35,7 @@
%tbody
%tr
%td.content-cell.content-end
- != " "
+ != ' '
%tr
%td.blank-cell.footer
.email-row
diff --git a/app/views/notification_mailer/_status.html.haml b/app/views/notification_mailer/_status.html.haml
index 03f49c73da..fd65039ae9 100644
--- a/app/views/notification_mailer/_status.html.haml
+++ b/app/views/notification_mailer/_status.html.haml
@@ -20,7 +20,7 @@
%tbody
%tr
%td{ align: 'left', width: 48 }
- = image_tag full_asset_url(status.account.avatar.url), alt:''
+ = image_tag full_asset_url(status.account.avatar.url), alt: ''
%td{ align: 'left' }
%bdi= display_name(status.account)
= "@#{status.account.pretty_acct}"
diff --git a/app/views/notification_mailer/favourite.html.haml b/app/views/notification_mailer/favourite.html.haml
index 5d9be3f57f..4ec89172d9 100644
--- a/app/views/notification_mailer/favourite.html.haml
+++ b/app/views/notification_mailer/favourite.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt:''
+ = image_tag full_pack_url('media/images/mailer/icon_grade.png'), alt: ''
%h1= t 'notification_mailer.favourite.title'
%p.lead= t('notification_mailer.favourite.body', name: @account.pretty_acct)
diff --git a/app/views/notification_mailer/follow_request.html.haml b/app/views/notification_mailer/follow_request.html.haml
index 4c32c831ed..3885a411d9 100644
--- a/app/views/notification_mailer/follow_request.html.haml
+++ b/app/views/notification_mailer/follow_request.html.haml
@@ -39,5 +39,5 @@
%tbody
%tr
%td.button-primary
- = link_to web_url("follow_requests") do
+ = link_to web_url('follow_requests') do
%span= t 'notification_mailer.follow_request.action'
diff --git a/app/views/settings/login_activities/_login_activity.html.haml b/app/views/settings/login_activities/_login_activity.html.haml
index 0c2c7087d7..9f4c24d871 100644
--- a/app/views/settings/login_activities/_login_activity.html.haml
+++ b/app/views/settings/login_activities/_login_activity.html.haml
@@ -1,6 +1,6 @@
- method_str = content_tag(:span, login_activity.omniauth? ? t(login_activity.provider, scope: 'auth.providers') : t(login_activity.authentication_method, scope: 'login_activities.authentication_methods'), class: 'target')
- ip_str = content_tag(:span, login_activity.ip, class: 'target')
-- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: "#{login_activity.browser}"), platform: t("sessions.platforms.#{login_activity.platform}", default: "#{login_activity.platform}")), class: 'target', title: login_activity.user_agent)
+- browser_str = content_tag(:span, t('sessions.description', browser: t("sessions.browsers.#{login_activity.browser}", default: login_activity.browser.to_s), platform: t("sessions.platforms.#{login_activity.platform}", default: login_activity.platform.to_)), class: 'target', title: login_activity.user_agent)
.log-entry
.log-entry__header
diff --git a/app/views/settings/preferences/appearance/show.html.haml b/app/views/settings/preferences/appearance/show.html.haml
index 9e3964f217..bc23df6473 100644
--- a/app/views/settings/preferences/appearance/show.html.haml
+++ b/app/views/settings/preferences/appearance/show.html.haml
@@ -13,7 +13,7 @@
- unless I18n.locale == :en
.flash-message.translation-prompt
- #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: "_blank", rel: "noopener")}
+ #{t 'appearance.localization.body'} #{content_tag(:a, t('appearance.localization.guide_link_text'), href: t('appearance.localization.guide_link'), target: '_blank', rel: 'noopener')}
%h4= t 'appearance.advanced_web_interface'
@@ -53,7 +53,7 @@
%h4= t 'appearance.sensitive_content'
.fields-group
- = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'],label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label
+ = f.input :setting_display_media, collection: ['default', 'show_all', 'hide_all'], label_method: lambda { |item| t("simple_form.hints.defaults.setting_display_media_#{item}") }, hint: false, as: :radio_buttons, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', wrapper: :with_floating_label
.fields-group
= f.input :setting_use_blurhash, as: :boolean, wrapper: :with_label
diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml
index bf498e33d5..70cfbd6b87 100644
--- a/app/views/statuses/_detailed_status.html.haml
+++ b/app/views/statuses/_detailed_status.html.haml
@@ -62,18 +62,18 @@
- else
= fa_icon('reply-all')
%span.detailed-status__reblogs>= friendly_number_to_human status.replies_count
- = " "
+ = ' '
·
- if status.public_visibility? || status.unlisted_visibility?
%span.detailed-status__link
= fa_icon('retweet')
%span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count
- = " "
+ = ' '
·
%span.detailed-status__link
= fa_icon('star')
%span.detailed-status__favorites>= friendly_number_to_human status.favourites_count
- = " "
+ = ' '
- if user_signed_in?
·
diff --git a/app/views/statuses/_og_image.html.haml b/app/views/statuses/_og_image.html.haml
index 39f390fdf4..1ae97adff6 100644
--- a/app/views/statuses/_og_image.html.haml
+++ b/app/views/statuses/_og_image.html.haml
@@ -31,7 +31,7 @@
- player_card = true
= opengraph 'og:image', full_asset_url(account.avatar.url(:original))
= opengraph 'og:image:width', '400'
- = opengraph 'og:image:height','400'
+ = opengraph 'og:image:height', '400'
= opengraph 'og:audio', full_asset_url(media.file.url(:original))
= opengraph 'og:audio:secure_url', full_asset_url(media.file.url(:original))
= opengraph 'og:audio:type', media.file_content_type
diff --git a/app/views/statuses/_status.html.haml b/app/views/statuses/_status.html.haml
index 3b7152753a..afeb55fafd 100644
--- a/app/views/statuses/_status.html.haml
+++ b/app/views/statuses/_status.html.haml
@@ -11,7 +11,7 @@
h_class = microformats_h_class(status, is_predecessor, is_successor, include_threads)
style_classes = style_classes(status, is_predecessor, is_successor, include_threads)
mf_classes = microformats_classes(status, is_direct_parent, is_direct_child)
- entry_classes = h_class + ' ' + mf_classes + ' ' + style_classes
+ entry_classes = "#{h_class} #{mf_classes} #{style_classes}"
- if status.reply? && include_threads
- if @next_ancestor
diff --git a/app/views/user_mailer/suspicious_sign_in.html.haml b/app/views/user_mailer/suspicious_sign_in.html.haml
index 856f9fb7cf..e4ad500c3d 100644
--- a/app/views/user_mailer/suspicious_sign_in.html.haml
+++ b/app/views/user_mailer/suspicious_sign_in.html.haml
@@ -45,7 +45,7 @@
= @remote_ip
%br/
%strong= "#{t('sessions.browser')}:"
- %span{ title: @user_agent }= t 'sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: "#{@detection.id}"), platform: t("sessions.platforms.#{@detection.platform.id}", default: "#{@detection.platform.id}")
+ %span{ title: @user_agent }= t 'sessions.description', browser: t("sessions.browsers.#{@detection.id}", default: @detection.id.to_s), platform: t("sessions.platforms.#{@detection.platform.id}", default: @detection.platform.id.to_s)
%br/
= l(@timestamp)
diff --git a/app/views/user_mailer/webauthn_credential_added.html.haml b/app/views/user_mailer/webauthn_credential_added.html.haml
index 81de84b564..c91c96d6fa 100644
--- a/app/views/user_mailer/webauthn_credential_added.html.haml
+++ b/app/views/user_mailer/webauthn_credential_added.html.haml
@@ -20,7 +20,7 @@
= image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.webauthn_credential.added.title'
- %p.lead= "#{t 'devise.mailer.webauthn_credential.added.explanation' }:"
+ %p.lead= "#{t('devise.mailer.webauthn_credential.added.explanation')}:"
%p.lead= @webauthn_credential.nickname
%table.email-table{ cellspacing: 0, cellpadding: 0 }
diff --git a/app/views/user_mailer/webauthn_credential_deleted.html.haml b/app/views/user_mailer/webauthn_credential_deleted.html.haml
index 7b47f0c88e..578a080220 100644
--- a/app/views/user_mailer/webauthn_credential_deleted.html.haml
+++ b/app/views/user_mailer/webauthn_credential_deleted.html.haml
@@ -20,7 +20,7 @@
= image_tag full_pack_url('media/images/mailer/icon_lock_open.png'), alt: ''
%h1= t 'devise.mailer.webauthn_credential.deleted.title'
- %p.lead= "#{t 'devise.mailer.webauthn_credential.deleted.explanation' }:"
+ %p.lead= "#{t('devise.mailer.webauthn_credential.deleted.explanation')}:"
%p.lead= @webauthn_credential.nickname
%table.email-table{ cellspacing: 0, cellpadding: 0 }
From a38f67c1c3f3c05bcbf552aad2f7f931fa0a4286 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 15 Mar 2023 20:36:37 -0400
Subject: [PATCH 0264/1254] Autofix Rubocop Style/PreferredHashMethods (#23851)
---
.rubocop_todo.yml | 8 --------
spec/support/matchers/model/model_have_error_on_field.rb | 2 +-
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 8a96e59f90..0921d4f731 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2050,14 +2050,6 @@ Style/OptionalBooleanParameter:
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
-# Offense count: 1
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: short, verbose
-Style/PreferredHashMethods:
- Exclude:
- - 'spec/support/matchers/model/model_have_error_on_field.rb'
-
# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Methods.
diff --git a/spec/support/matchers/model/model_have_error_on_field.rb b/spec/support/matchers/model/model_have_error_on_field.rb
index 21632b5748..0f9c81a475 100644
--- a/spec/support/matchers/model/model_have_error_on_field.rb
+++ b/spec/support/matchers/model/model_have_error_on_field.rb
@@ -4,7 +4,7 @@ RSpec::Matchers.define :model_have_error_on_field do |expected|
match do |record|
record.valid? if record.errors.empty?
- record.errors.has_key?(expected)
+ record.errors.key?(expected)
end
failure_message do |record|
From 0566c81a0cac884e7b176f8fc0a187ae11cf34c0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:33:26 +0900
Subject: [PATCH 0265/1254] Bump rack-test from 2.0.2 to 2.1.0 (#24112)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
Gemfile | 2 +-
Gemfile.lock | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Gemfile b/Gemfile
index c7889118d3..cc039d7e00 100644
--- a/Gemfile
+++ b/Gemfile
@@ -120,7 +120,7 @@ group :test do
gem 'climate_control'
gem 'faker', '~> 3.1'
gem 'json-schema', '~> 3.0'
- gem 'rack-test', '~> 2.0'
+ gem 'rack-test', '~> 2.1'
gem 'rails-controller-testing', '~> 1.0'
gem 'rspec_junit_formatter', '~> 0.6'
gem 'rspec-sidekiq', '~> 3.1'
diff --git a/Gemfile.lock b/Gemfile.lock
index 0041c24c74..151eba150c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -522,7 +522,7 @@ GEM
rack (>= 2.1.0)
rack-proxy (0.7.6)
rack
- rack-test (2.0.2)
+ rack-test (2.1.0)
rack (>= 1.3)
rails (6.1.7.3)
actioncable (= 6.1.7.3)
@@ -856,7 +856,7 @@ DEPENDENCIES
rack (~> 2.2.6)
rack-attack (~> 6.6)
rack-cors (~> 1.1)
- rack-test (~> 2.0)
+ rack-test (~> 2.1)
rails (~> 6.1.7)
rails-controller-testing (~> 1.0)
rails-i18n (~> 6.0)
From 25d36b6edd77ed161b2f496101f7127f7c1c9e5c Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 15 Mar 2023 21:34:00 -0400
Subject: [PATCH 0266/1254] Autofix Rubocop Style/RedundantArgument (#23798)
---
.rubocop_todo.yml | 9 ---------
app/controllers/concerns/signature_verification.rb | 2 +-
app/helpers/application_helper.rb | 4 ++--
lib/tasks/emojis.rake | 4 ++--
4 files changed, 5 insertions(+), 14 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 0921d4f731..6dbcbaeba1 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2050,15 +2050,6 @@ Style/OptionalBooleanParameter:
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
-# Offense count: 5
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: Methods.
-Style/RedundantArgument:
- Exclude:
- - 'app/controllers/concerns/signature_verification.rb'
- - 'app/helpers/application_helper.rb'
- - 'lib/tasks/emojis.rake'
-
# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantRegexpCharacterClass:
diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb
index b0a087d536..9317259433 100644
--- a/app/controllers/concerns/signature_verification.rb
+++ b/app/controllers/concerns/signature_verification.rb
@@ -138,7 +138,7 @@ module SignatureVerification
end
def signed_headers
- signature_params.fetch('headers', signature_algorithm == 'hs2019' ? '(created)' : 'date').downcase.split(' ')
+ signature_params.fetch('headers', signature_algorithm == 'hs2019' ? '(created)' : 'date').downcase.split
end
def verify_signature_strength!
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 08020a65a2..9dc8bba2d7 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -112,7 +112,7 @@ module ApplicationHelper
def fa_icon(icon, attributes = {})
class_names = attributes[:class]&.split(' ') || []
class_names << 'fa'
- class_names += icon.split(' ').map { |cl| "fa-#{cl}" }
+ class_names += icon.split.map { |cl| "fa-#{cl}" }
content_tag(:i, nil, attributes.merge(class: class_names.join(' ')))
end
@@ -164,7 +164,7 @@ module ApplicationHelper
end
def body_classes
- output = (@body_classes || '').split(' ')
+ output = (@body_classes || '').split
output << "theme-#{current_theme.parameterize}"
output << 'system-font' if current_account&.user&.setting_system_font_ui
output << (current_account&.user&.setting_reduce_motion ? 'reduce-motion' : 'no-reduce-motion')
diff --git a/lib/tasks/emojis.rake b/lib/tasks/emojis.rake
index c743f8a554..fbb2e8d4f3 100644
--- a/lib/tasks/emojis.rake
+++ b/lib/tasks/emojis.rake
@@ -6,7 +6,7 @@ def gen_border(codepoint, color)
doc = File.open(input) { |f| Nokogiri::XML(f) }
svg = doc.at_css('svg')
if svg.key?('viewBox')
- view_box = svg['viewBox'].split(' ').map(&:to_i)
+ view_box = svg['viewBox'].split.map(&:to_i)
view_box[0] -= 2
view_box[1] -= 2
view_box[2] += 4
@@ -36,7 +36,7 @@ end
def codepoints_to_unicode(codepoints)
if codepoints.include?(' ')
- codepoints.split(' ').map(&:hex).pack('U*')
+ codepoints.split.map(&:hex).pack('U*')
else
[codepoints.hex].pack('U')
end
From b1b8a27b42a1018405d388b90252f62938d34487 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:42:27 +0900
Subject: [PATCH 0267/1254] Bump immutable from 4.2.4 to 4.3.0 (#24088)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 05eafb2f06..409e38d160 100644
--- a/package.json
+++ b/package.json
@@ -65,7 +65,7 @@
"glob": "^8.1.0",
"history": "^4.10.1",
"http-link-header": "^1.1.0",
- "immutable": "^4.2.4",
+ "immutable": "^4.3.0",
"imports-loader": "^1.2.0",
"intl": "^1.2.5",
"intl-messageformat": "^2.2.0",
diff --git a/yarn.lock b/yarn.lock
index ac50d0ce71..5523b03931 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5735,10 +5735,10 @@ ignore@^5.2.0, ignore@^5.2.4:
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324"
integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==
-immutable@^4.0.0, immutable@^4.2.4:
- version "4.2.4"
- resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.2.4.tgz#83260d50889526b4b531a5e293709a77f7c55a2a"
- integrity sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==
+immutable@^4.0.0, immutable@^4.3.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.0.tgz#eb1738f14ffb39fd068b1dbe1296117484dd34be"
+ integrity sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==
import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1:
version "3.3.0"
From b9618c82e3e97deace9dae5906014d1e707a3717 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:44:21 +0900
Subject: [PATCH 0268/1254] Bump @babel/eslint-parser from 7.19.1 to 7.21.3
(#24109)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 409e38d160..2cae786a1b 100644
--- a/package.json
+++ b/package.json
@@ -142,7 +142,7 @@
"ws": "^8.12.1"
},
"devDependencies": {
- "@babel/eslint-parser": "^7.19.1",
+ "@babel/eslint-parser": "^7.21.3",
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
"babel-jest": "^29.5.0",
diff --git a/yarn.lock b/yarn.lock
index 5523b03931..91d2765489 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -62,10 +62,10 @@
json5 "^2.2.2"
semver "^6.3.0"
-"@babel/eslint-parser@^7.19.1":
- version "7.19.1"
- resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4"
- integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==
+"@babel/eslint-parser@^7.21.3":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.21.3.tgz#d79e822050f2de65d7f368a076846e7184234af7"
+ integrity sha512-kfhmPimwo6k4P8zxNs8+T7yR44q1LdpsZdE1NkCsVlfiuTPRfnGgjaF8Qgug9q9Pou17u6wneYF0lDCZJATMFg==
dependencies:
"@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
From dbbd462c10e7749cfd8dee8ef5201ae6e0b47917 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:44:56 +0900
Subject: [PATCH 0269/1254] Bump eslint from 8.35.0 to 8.36.0 (#24089)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 70 ++++++++++++++++++++++++++--------------------------
2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/package.json b/package.json
index 2cae786a1b..5f629d1b93 100644
--- a/package.json
+++ b/package.json
@@ -146,7 +146,7 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
"babel-jest": "^29.5.0",
- "eslint": "^8.35.0",
+ "eslint": "^8.36.0",
"eslint-plugin-import": "~2.27.5",
"eslint-plugin-jsx-a11y": "~6.7.1",
"eslint-plugin-promise": "~6.1.1",
diff --git a/yarn.lock b/yarn.lock
index 91d2765489..dbbd702464 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1201,14 +1201,26 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46"
integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==
-"@eslint/eslintrc@^2.0.0":
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff"
- integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==
+"@eslint-community/eslint-utils@^4.2.0":
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.2.0.tgz#a831e6e468b4b2b5ae42bf658bea015bf10bc518"
+ integrity sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==
+ dependencies:
+ eslint-visitor-keys "^3.3.0"
+
+"@eslint-community/regexpp@^4.4.0":
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403"
+ integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==
+
+"@eslint/eslintrc@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d"
+ integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
- espree "^9.4.0"
+ espree "^9.5.0"
globals "^13.19.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
@@ -1216,10 +1228,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@8.35.0":
- version "8.35.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7"
- integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==
+"@eslint/js@8.36.0":
+ version "8.36.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe"
+ integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==
"@floating-ui/core@^1.0.1":
version "1.0.1"
@@ -4579,14 +4591,7 @@ eslint-scope@^7.1.1:
esrecurse "^4.3.0"
estraverse "^5.2.0"
-eslint-utils@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
- integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
- dependencies:
- eslint-visitor-keys "^2.0.0"
-
-eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
+eslint-visitor-keys@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
@@ -4596,13 +4601,15 @@ eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
-eslint@^8.35.0:
- version "8.35.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323"
- integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==
+eslint@^8.36.0:
+ version "8.36.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf"
+ integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==
dependencies:
- "@eslint/eslintrc" "^2.0.0"
- "@eslint/js" "8.35.0"
+ "@eslint-community/eslint-utils" "^4.2.0"
+ "@eslint-community/regexpp" "^4.4.0"
+ "@eslint/eslintrc" "^2.0.1"
+ "@eslint/js" "8.36.0"
"@humanwhocodes/config-array" "^0.11.8"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
@@ -4613,9 +4620,8 @@ eslint@^8.35.0:
doctrine "^3.0.0"
escape-string-regexp "^4.0.0"
eslint-scope "^7.1.1"
- eslint-utils "^3.0.0"
eslint-visitor-keys "^3.3.0"
- espree "^9.4.0"
+ espree "^9.5.0"
esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@@ -4637,15 +4643,14 @@ eslint@^8.35.0:
minimatch "^3.1.2"
natural-compare "^1.4.0"
optionator "^0.9.1"
- regexpp "^3.2.0"
strip-ansi "^6.0.1"
strip-json-comments "^3.1.0"
text-table "^0.2.0"
-espree@^9.4.0:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.1.tgz#51d6092615567a2c2cff7833445e37c28c0065bd"
- integrity sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==
+espree@^9.5.0:
+ version "9.5.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113"
+ integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==
dependencies:
acorn "^8.8.0"
acorn-jsx "^5.3.2"
@@ -9258,11 +9263,6 @@ regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.4.3:
define-properties "^1.1.3"
functions-have-names "^1.2.2"
-regexpp@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
- integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
-
regexpu-core@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
From 6fa81ca17e50c2f66a4357fc6866b33b7a606b42 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 02:53:55 +0100
Subject: [PATCH 0270/1254] Remove `bullet` and `active_record_query_trace`
gems (#24121)
---
Gemfile | 2 --
Gemfile.lock | 7 -------
config/environments/development.rb | 20 ++++++--------------
3 files changed, 6 insertions(+), 23 deletions(-)
diff --git a/Gemfile b/Gemfile
index cc039d7e00..e5353a08c9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -129,11 +129,9 @@ group :test do
end
group :development do
- gem 'active_record_query_trace', '~> 1.8'
gem 'annotate', '~> 3.2'
gem 'better_errors', '~> 2.9'
gem 'binding_of_caller', '~> 1.0'
- gem 'bullet', '~> 7.0'
gem 'letter_opener', '~> 1.8'
gem 'letter_opener_web', '~> 2.0'
gem 'memory_profiler'
diff --git a/Gemfile.lock b/Gemfile.lock
index 151eba150c..c7e1d17504 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -73,7 +73,6 @@ GEM
activemodel (>= 4.1, < 7.1)
case_transform (>= 0.2)
jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
- active_record_query_trace (1.8)
activejob (6.1.7.3)
activesupport (= 6.1.7.3)
globalid (>= 0.3.6)
@@ -149,9 +148,6 @@ GEM
concurrent-ruby (~> 1.0, >= 1.0.5)
redis (>= 1.0, < 6)
builder (3.2.4)
- bullet (7.0.7)
- activesupport (>= 3.0.0)
- uniform_notifier (~> 1.11)
bundler-audit (0.9.1)
bundler (>= 1.2.0, < 3)
thor (~> 1.0)
@@ -727,7 +723,6 @@ GEM
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (2.4.2)
- uniform_notifier (1.16.0)
uri (0.12.0)
validate_email (0.1.6)
activemodel (>= 3.0)
@@ -772,7 +767,6 @@ PLATFORMS
DEPENDENCIES
active_model_serializers (~> 0.10)
- active_record_query_trace (~> 1.8)
addressable (~> 2.8)
annotate (~> 3.2)
aws-sdk-s3 (~> 1.119)
@@ -782,7 +776,6 @@ DEPENDENCIES
bootsnap (~> 1.16.0)
brakeman (~> 5.4)
browser
- bullet (~> 7.0)
bundler-audit (~> 0.9)
capistrano (~> 3.17)
capistrano-rails (~> 1.6)
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 29b17a3500..f5f6cbed8d 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -24,7 +24,6 @@ Rails.application.configure do
}
else
config.action_controller.perform_caching = false
-
config.cache_store = :null_store
end
@@ -34,9 +33,10 @@ Rails.application.configure do
end
# Generate random VAPID keys
- vapid_key = Webpush.generate_key
- config.x.vapid_private_key = vapid_key.private_key
- config.x.vapid_public_key = vapid_key.public_key
+ Webpush.generate_key.tap do |vapid_key|
+ config.x.vapid_private_key = vapid_key.private_key
+ config.x.vapid_public_key = vapid_key.public_key
+ end
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
@@ -76,21 +76,13 @@ Rails.application.configure do
# Otherwise, use letter_opener, which launches a browser window to view sent mail.
config.action_mailer.delivery_method = (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV']) ? :letter_opener_web : :letter_opener
- config.after_initialize do
- Bullet.enable = true
- Bullet.bullet_logger = true
- Bullet.rails_logger = false
-
- Bullet.add_safelist type: :n_plus_one_query, class_name: 'User', association: :account
- end
-
+ # We provide a default secret for the development environment here.
+ # This value should not be used in production environments!
config.x.otp_secret = ENV.fetch('OTP_SECRET', '1fc2b87989afa6351912abeebe31ffc5c476ead9bf8b3d74cbc4a302c7b69a45b40b1bbef3506ddad73e942e15ed5ca4b402bf9a66423626051104f4b5f05109')
end
Redis.raise_deprecations = true
-ActiveRecordQueryTrace.enabled = ENV['QUERY_TRACE_ENABLED'] == 'true'
-
module PrivateAddressCheck
def self.private_address?(*)
false
From 8cb2543ee571e47be46195eed798194136aeae4c Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 02:55:13 +0100
Subject: [PATCH 0271/1254] Add `SENDFILE_HEADER` environment variable (#24123)
---
config/environments/production.rb | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 345a255a74..b8536c53ab 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -38,8 +38,7 @@ Rails.application.configure do
# `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
# Specifies the header that your server uses for sending files.
- # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
- config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
+ config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present?
# Allow to specify public IP of reverse proxy if it's needed
config.action_dispatch.trusted_proxies = ENV['TRUSTED_PROXY_IP'].split(/(?:\s*,\s*|\s+)/).map { |item| IPAddr.new(item) } if ENV['TRUSTED_PROXY_IP'].present?
From be488adf711e75ab05a9b22b6241c676e5615c71 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:55:29 +0900
Subject: [PATCH 0272/1254] Bump @babel/core from 7.21.0 to 7.21.3 (#24111)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 70 ++++++++++++++++++++++++++--------------------------
2 files changed, 36 insertions(+), 36 deletions(-)
diff --git a/package.json b/package.json
index 5f629d1b93..1af6d4af73 100644
--- a/package.json
+++ b/package.json
@@ -24,7 +24,7 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.21.0",
+ "@babel/core": "^7.21.3",
"@babel/plugin-proposal-decorators": "^7.21.0",
"@babel/plugin-transform-react-inline-elements": "^7.21.0",
"@babel/plugin-transform-runtime": "^7.21.0",
diff --git a/yarn.lock b/yarn.lock
index dbbd702464..52b82f68d2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -41,21 +41,21 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
-"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.0", "@babel/core@^7.7.2":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13"
- integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==
+"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.21.3", "@babel/core@^7.7.2":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.3.tgz#cf1c877284a469da5d1ce1d1e53665253fae712e"
+ integrity sha512-qIJONzoa/qiHghnm0l1n4i/6IIziDpzqc36FBs4pzMhDUraHqponwJLiAKm1hGLP3OSB/TVNz6rMwVGpwxxySw==
dependencies:
"@ampproject/remapping" "^2.2.0"
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.21.0"
+ "@babel/generator" "^7.21.3"
"@babel/helper-compilation-targets" "^7.20.7"
- "@babel/helper-module-transforms" "^7.21.0"
+ "@babel/helper-module-transforms" "^7.21.2"
"@babel/helpers" "^7.21.0"
- "@babel/parser" "^7.21.0"
+ "@babel/parser" "^7.21.3"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.0"
- "@babel/types" "^7.21.0"
+ "@babel/traverse" "^7.21.3"
+ "@babel/types" "^7.21.3"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
@@ -71,12 +71,12 @@
eslint-visitor-keys "^2.1.0"
semver "^6.3.0"
-"@babel/generator@^7.21.0", "@babel/generator@^7.7.2":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.0.tgz#45d731e84f506ce02a7b22b9ba5861ea88eef64f"
- integrity sha512-z/zN3SePOtxN1/vPFdqrkuJGCD2Vx469+dSbNRD+4TF2+6e4Of5exHqAtcfL/2Nwu0RN0QsFwjyDBFwdUMzNSA==
+"@babel/generator@^7.21.3", "@babel/generator@^7.7.2":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.3.tgz#232359d0874b392df04045d72ce2fd9bb5045fce"
+ integrity sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==
dependencies:
- "@babel/types" "^7.21.0"
+ "@babel/types" "^7.21.3"
"@jridgewell/gen-mapping" "^0.3.2"
"@jridgewell/trace-mapping" "^0.3.17"
jsesc "^2.5.1"
@@ -205,10 +205,10 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.0.tgz#89a8f86ad748870e3d024e470b2e8405e869db67"
- integrity sha512-eD/JQ21IG2i1FraJnTMbUarAUkA7G988ofehG5MDCRXaUU91rEBJuCeSoou2Sk1y4RbLYXzqEg1QLwEmRU4qcQ==
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.6", "@babel/helper-module-transforms@^7.21.2":
+ version "7.21.2"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2"
+ integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==
dependencies:
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-module-imports" "^7.18.6"
@@ -216,8 +216,8 @@
"@babel/helper-split-export-declaration" "^7.18.6"
"@babel/helper-validator-identifier" "^7.19.1"
"@babel/template" "^7.20.7"
- "@babel/traverse" "^7.21.0"
- "@babel/types" "^7.21.0"
+ "@babel/traverse" "^7.21.2"
+ "@babel/types" "^7.21.2"
"@babel/helper-optimise-call-expression@^7.18.6":
version "7.18.6"
@@ -324,10 +324,10 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.0.tgz#cc09288743b867763cb927ba101ccdf0b600b7e4"
- integrity sha512-ONjtg4renj14A9pj3iA5T5+r5Eijxbr2eNIkMBTC74occDSsRZUpe8vowmowAjFR1imWlkD8eEmjYXiREZpGZg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3"
+ integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ==
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
version "7.18.6"
@@ -1063,26 +1063,26 @@
"@babel/parser" "^7.20.7"
"@babel/types" "^7.20.7"
-"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.7.2":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.0.tgz#0e1807abd5db98e6a19c204b80ed1e3f5bca0edc"
- integrity sha512-Xdt2P1H4LKTO8ApPfnO1KmzYMFpp7D/EinoXzLYN/cHcBNrVCAkAtGUcXnHXrl/VGktureU6fkQrHSBE2URfoA==
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.3", "@babel/traverse@^7.7.2":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.3.tgz#4747c5e7903d224be71f90788b06798331896f67"
+ integrity sha512-XLyopNeaTancVitYZe2MlUEvgKb6YVVPXzofHgqHijCImG33b/uTurMS488ht/Hbsb2XK3U2BnSTxKVNGV3nGQ==
dependencies:
"@babel/code-frame" "^7.18.6"
- "@babel/generator" "^7.21.0"
+ "@babel/generator" "^7.21.3"
"@babel/helper-environment-visitor" "^7.18.9"
"@babel/helper-function-name" "^7.21.0"
"@babel/helper-hoist-variables" "^7.18.6"
"@babel/helper-split-export-declaration" "^7.18.6"
- "@babel/parser" "^7.21.0"
- "@babel/types" "^7.21.0"
+ "@babel/parser" "^7.21.3"
+ "@babel/types" "^7.21.3"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.21.0"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.0.tgz#1da00d89c2f18b226c9207d96edbeb79316a1819"
- integrity sha512-uR7NWq2VNFnDi7EYqiRz2Jv/VQIu38tu64Zy8TX2nQFQ6etJ9V/Rr2msW8BS132mum2rL645qpDrLtAJtVpuow==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.21.3"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.3.tgz#4865a5357ce40f64e3400b0f3b737dc6d4f64d05"
+ integrity sha512-sBGdETxC+/M4o/zKC0sl6sjWv62WFR/uzxrJ6uYyMLZOUlPnwzw0tKgVHOXxaAd5l2g8pEDM5RZ495GPQI77kg==
dependencies:
"@babel/helper-string-parser" "^7.19.4"
"@babel/helper-validator-identifier" "^7.19.1"
From f0e727f958cd9428b2c56a3c6a65bbbf176bfa0d Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 02:55:54 +0100
Subject: [PATCH 0273/1254] Add cache headers to static files served through
Rails (#24120)
---
config/application.rb | 5 ++++
config/environments/development.rb | 5 ----
config/environments/production.rb | 12 +-------
config/environments/test.rb | 5 ----
lib/public_file_server_middleware.rb | 43 ++++++++++++++++++++++++++++
5 files changed, 49 insertions(+), 21 deletions(-)
create mode 100644 lib/public_file_server_middleware.rb
diff --git a/config/application.rb b/config/application.rb
index c51eacd680..43631c5516 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -35,6 +35,7 @@ require_relative '../lib/terrapin/multi_pipe_extensions'
require_relative '../lib/mastodon/snowflake'
require_relative '../lib/mastodon/version'
require_relative '../lib/mastodon/rack_middleware'
+require_relative '../lib/public_file_server_middleware'
require_relative '../lib/devise/two_factor_ldap_authenticatable'
require_relative '../lib/devise/two_factor_pam_authenticatable'
require_relative '../lib/chewy/strategy/mastodon'
@@ -181,6 +182,10 @@ module Mastodon
config.active_job.queue_adapter = :sidekiq
config.action_mailer.deliver_later_queue_name = 'mailers'
+ # We use our own middleware for this
+ config.public_file_server.enabled = false
+
+ config.middleware.use PublicFileServerMiddleware if Rails.env.development? || ENV['RAILS_SERVE_STATIC_FILES'] == 'true'
config.middleware.use Rack::Attack
config.middleware.use Mastodon::RackMiddleware
diff --git a/config/environments/development.rb b/config/environments/development.rb
index f5f6cbed8d..32c5cce8b9 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -16,12 +16,7 @@ Rails.application.configure do
# Run rails dev:cache to toggle caching.
if Rails.root.join('tmp/caching-dev.txt').exist?
config.action_controller.perform_caching = true
-
config.cache_store = :redis_cache_store, REDIS_CACHE_PARAMS
-
- config.public_file_server.headers = {
- 'Cache-Control' => "public, max-age=#{2.days.to_i}",
- }
else
config.action_controller.perform_caching = false
config.cache_store = :null_store
diff --git a/config/environments/production.rb b/config/environments/production.rb
index b8536c53ab..00d7834775 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -19,24 +19,14 @@ Rails.application.configure do
# or in config/master.key. This key is used to decrypt credentials (and other encrypted files).
# config.require_master_key = true
- # Disable serving static files from the `/public` folder by default since
- # Apache or NGINX already handles this.
- config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
-
ActiveSupport::Logger.new(STDOUT).tap do |logger|
logger.formatter = config.log_formatter
config.logger = ActiveSupport::TaggedLogging.new(logger)
end
- # Compress JavaScripts and CSS.
- # config.assets.js_compressor = Uglifier.new(mangle: false)
- # config.assets.css_compressor = :sass
-
# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false
- # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
-
# Specifies the header that your server uses for sending files.
config.action_dispatch.x_sendfile_header = ENV['SENDFILE_HEADER'] if ENV['SENDFILE_HEADER'].present?
@@ -66,7 +56,7 @@ Rails.application.configure do
# Enable locale fallbacks for I18n (makes lookups for any locale fall back to
# English when a translation cannot be found).
- config.i18n.fallbacks = [:en]
+ config.i18n.fallbacks = true
# Send deprecation notices to registered listeners.
config.active_support.deprecation = :notify
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 9cbf31e8d7..1328e155a3 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -12,11 +12,6 @@ Rails.application.configure do
# preloads Rails for running tests, you may have to set it to true.
config.eager_load = false
- # Configure public file server for tests with Cache-Control for performance.
- config.public_file_server.enabled = true
- config.public_file_server.headers = {
- 'Cache-Control' => "public, max-age=#{1.hour.to_i}"
- }
config.assets.digest = false
# Show full error reports and disable caching.
diff --git a/lib/public_file_server_middleware.rb b/lib/public_file_server_middleware.rb
new file mode 100644
index 0000000000..3799230a22
--- /dev/null
+++ b/lib/public_file_server_middleware.rb
@@ -0,0 +1,43 @@
+# frozen_string_literal: true
+
+require 'action_dispatch/middleware/static'
+
+class PublicFileServerMiddleware
+ SERVICE_WORKER_TTL = 7.days.to_i
+ CACHE_TTL = 28.days.to_i
+
+ def initialize(app)
+ @app = app
+ @file_handler = ActionDispatch::FileHandler.new(Rails.application.paths['public'].first)
+ end
+
+ def call(env)
+ file = @file_handler.attempt(env)
+
+ # If the request is not a static file, move on!
+ return @app.call(env) if file.nil?
+
+ status, headers, response = file
+
+ # Set cache headers on static files. Some paths require different cache headers
+ headers['Cache-Control'] = begin
+ request_path = env['REQUEST_PATH']
+
+ if request_path.start_with?('/sw.js')
+ "public, max-age=#{SERVICE_WORKER_TTL}, must-revalidate"
+ elsif request_path.start_with?(paperclip_root_url)
+ "public, max-age=#{CACHE_TTL}, immutable"
+ else
+ "public, max-age=#{CACHE_TTL}, must-revalidate"
+ end
+ end
+
+ [status, headers, response]
+ end
+
+ private
+
+ def paperclip_root_url
+ ENV.fetch('PAPERCLIP_ROOT_URL', '/system')
+ end
+end
From aa7d63d9aac610fa2b21080fb594314d86338191 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 10:56:03 +0900
Subject: [PATCH 0274/1254] Bump autoprefixer from 10.4.13 to 10.4.14 (#24108)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 65 ++++++++++++++++++++++++----------------------------
2 files changed, 31 insertions(+), 36 deletions(-)
diff --git a/package.json b/package.json
index 1af6d4af73..0daf5c41b0 100644
--- a/package.json
+++ b/package.json
@@ -37,7 +37,7 @@
"abortcontroller-polyfill": "^1.7.5",
"array-includes": "^3.1.6",
"arrow-key-navigation": "^1.2.0",
- "autoprefixer": "^10.4.13",
+ "autoprefixer": "^10.4.14",
"axios": "^1.3.4",
"babel-loader": "^8.3.0",
"babel-plugin-lodash": "^3.3.4",
diff --git a/yarn.lock b/yarn.lock
index 52b82f68d2..990dad043d 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2587,13 +2587,13 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-autoprefixer@^10.4.13:
- version "10.4.13"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
- integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
+autoprefixer@^10.4.14:
+ version "10.4.14"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
+ integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
dependencies:
- browserslist "^4.21.4"
- caniuse-lite "^1.0.30001426"
+ browserslist "^4.21.5"
+ caniuse-lite "^1.0.30001464"
fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
@@ -2995,15 +2995,15 @@ browserify-zlib@^0.2.0:
dependencies:
pako "~1.0.5"
-browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4:
- version "4.21.4"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
- integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+browserslist@^4.0.0, browserslist@^4.21.3, browserslist@^4.21.4, browserslist@^4.21.5:
+ version "4.21.5"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7"
+ integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==
dependencies:
- caniuse-lite "^1.0.30001400"
- electron-to-chromium "^1.4.251"
- node-releases "^2.0.6"
- update-browserslist-db "^1.0.9"
+ caniuse-lite "^1.0.30001449"
+ electron-to-chromium "^1.4.284"
+ node-releases "^2.0.8"
+ update-browserslist-db "^1.0.10"
bser@2.1.1:
version "2.1.1"
@@ -3177,15 +3177,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400:
- version "1.0.30001414"
- resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz"
- integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==
-
-caniuse-lite@^1.0.30001426:
- version "1.0.30001462"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001462.tgz#b2e801e37536d453731286857c8520d3dcee15fe"
- integrity sha512-PDd20WuOBPiasZ7KbFnmQRyuLE7cFXW2PVd7dmALzbkUXEP46upAuCDm9eY9vho8fgNMGmbAX92QBZHzcnWIqw==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464:
+ version "1.0.30001466"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375"
+ integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w==
chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.2:
version "2.4.2"
@@ -4254,10 +4249,10 @@ ejs@^3.1.6:
dependencies:
jake "^10.8.5"
-electron-to-chromium@^1.4.251:
- version "1.4.254"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6"
- integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==
+electron-to-chromium@^1.4.284:
+ version "1.4.330"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.330.tgz#4740378db7160d7210afb29800c74048cdf10a99"
+ integrity sha512-PqyefhybrVdjAJ45HaPLtuVaehiSw7C3ya0aad+rvmV53IVyXmYRk3pwIOb2TxTDTnmgQdn46NjMMaysx79/6Q==
elliptic@^6.5.3:
version "6.5.4"
@@ -7670,10 +7665,10 @@ node-libs-browser@^2.2.1:
util "^0.11.0"
vm-browserify "^1.0.1"
-node-releases@^2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
- integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+node-releases@^2.0.8:
+ version "2.0.10"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f"
+ integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==
normalize-package-data@^2.5.0:
version "2.5.0"
@@ -10888,10 +10883,10 @@ upath@^1.1.1, upath@^1.2.0:
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-update-browserslist-db@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18"
- integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==
+update-browserslist-db@^1.0.10:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3"
+ integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==
dependencies:
escalade "^3.1.1"
picocolors "^1.0.0"
From f57bcb028bb5f69c98fdd758deac7be7f1367536 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 16 Mar 2023 11:11:54 +0900
Subject: [PATCH 0275/1254] Bump sass from 1.58.3 to 1.59.3 (#24105)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 8 ++++----
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/package.json b/package.json
index 0daf5c41b0..81e265ffab 100644
--- a/package.json
+++ b/package.json
@@ -116,7 +116,7 @@
"requestidlecallback": "^0.3.0",
"reselect": "^4.1.7",
"rimraf": "^4.1.2",
- "sass": "^1.58.3",
+ "sass": "^1.59.3",
"sass-loader": "^10.2.0",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
diff --git a/yarn.lock b/yarn.lock
index 990dad043d..4e647d44ce 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -9522,10 +9522,10 @@ sass-loader@^10.2.0:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.58.3:
- version "1.58.3"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d"
- integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A==
+sass@^1.59.3:
+ version "1.59.3"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f"
+ integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
From aa947a143b5bd84865bff2b24878d84f3d69b8b7 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Wed, 15 Mar 2023 23:31:08 -0400
Subject: [PATCH 0276/1254] Regen rubocop-todo without Max shadowing (#24076)
---
.rubocop.yml | 10 -
.rubocop_todo.yml | 2339 ++++++++++++++++++++++++++++++++++---
lib/mastodon/media_cli.rb | 2 -
3 files changed, 2151 insertions(+), 200 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 99206e5977..8eb3d402ef 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -32,7 +32,6 @@ Layout/FirstHashElementIndentation:
EnforcedStyle: consistent
Layout/LineLength:
- Max: 140 # RuboCop default 120
AllowedPatterns:
# Allow comments to be long lines
- !ruby/regexp / \# .*$/
@@ -47,13 +46,11 @@ Lint/UselessAccessModifier:
- class_methods
Metrics/AbcSize:
- Max: 34 # RuboCop default 17
Exclude:
- 'lib/**/*cli*.rb'
- db/*migrate/**/*
Metrics/BlockLength:
- Max: 55 # Default 25
CountAsOne: [array, heredoc]
Exclude:
- 'lib/mastodon/*_cli.rb'
@@ -63,30 +60,23 @@ Metrics/BlockNesting:
- 'lib/mastodon/*_cli.rb'
Metrics/ClassLength:
- Max: 500 # Default 100
CountAsOne: [array, heredoc]
Exclude:
- 'lib/mastodon/*_cli.rb'
Metrics/CyclomaticComplexity:
- Max: 12 # Default 7
Exclude:
- lib/mastodon/*cli*.rb
- db/*migrate/**/*
Metrics/MethodLength:
- Max: 25 # RuboCop default 10
CountAsOne: [array, heredoc]
Exclude:
- 'lib/mastodon/*_cli.rb'
Metrics/ModuleLength:
- Max: 200 # Default 100
CountAsOne: [array, heredoc]
-Metrics/PerceivedComplexity:
- Max: 16 # RuboCop default 8
-
Rails/HttpStatus:
EnforcedStyle: numeric
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 6dbcbaeba1..e79f4f8e97 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -1,12 +1,11 @@
# This configuration was generated by
-# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit`
-# on 2023-02-19 06:22:09 UTC using RuboCop version 1.45.1.
+# `rubocop --auto-gen-config --auto-gen-only-exclude --no-exclude-limit --no-offense-counts --no-auto-gen-timestamp`
+# using RuboCop version 1.48.1.
# The point is for the user to remove these configuration records
# one by one as the offenses are removed from the code base.
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
-# Offense count: 15
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation, Include.
# Include: **/*.gemfile, **/Gemfile, **/gems.rb
@@ -14,14 +13,6 @@ Bundler/OrderedGems:
Exclude:
- 'Gemfile'
-# Offense count: 581
-# This cop supports safe autocorrection (--autocorrect).
-# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
-# URISchemes: http, https
-Layout/LineLength:
- Enabled: false
-
-# Offense count: 14
# Configuration parameters: AllowedMethods, AllowedPatterns.
Lint/AmbiguousBlockAssociation:
Exclude:
@@ -35,7 +26,6 @@ Lint/AmbiguousBlockAssociation:
- 'spec/services/unsuspend_account_service_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-# Offense count: 15
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
@@ -50,7 +40,6 @@ Lint/ConstantDefinitionInBlock:
- 'spec/lib/settings/extend_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
-# Offense count: 5
# Configuration parameters: IgnoreLiteralBranches, IgnoreConstantBranches.
Lint/DuplicateBranch:
Exclude:
@@ -60,7 +49,6 @@ Lint/DuplicateBranch:
- 'app/validators/vote_validator.rb'
- 'lib/mastodon/maintenance_cli.rb'
-# Offense count: 42
# Configuration parameters: AllowComments, AllowEmptyLambdas.
Lint/EmptyBlock:
Exclude:
@@ -68,11 +56,7 @@ Lint/EmptyBlock:
- 'spec/controllers/application_controller_spec.rb'
- 'spec/fabricators/access_token_fabricator.rb'
- 'spec/fabricators/conversation_fabricator.rb'
- - 'spec/fabricators/conversation_mute_fabricator.rb'
- - 'spec/fabricators/import_fabricator.rb'
- - 'spec/fabricators/setting_fabricator.rb'
- 'spec/fabricators/system_key_fabricator.rb'
- - 'spec/fabricators/web_setting_fabricator.rb'
- 'spec/helpers/admin/action_logs_helper_spec.rb'
- 'spec/lib/activitypub/adapter_spec.rb'
- 'spec/models/account_alias_spec.rb'
@@ -93,7 +77,6 @@ Lint/EmptyBlock:
- 'spec/models/list_spec.rb'
- 'spec/models/login_activity_spec.rb'
- 'spec/models/mute_spec.rb'
- - 'spec/models/one_time_key_spec.rb'
- 'spec/models/preview_card_spec.rb'
- 'spec/models/preview_card_trend_spec.rb'
- 'spec/models/relay_spec.rb'
@@ -107,30 +90,25 @@ Lint/EmptyBlock:
- 'spec/models/user_role_spec.rb'
- 'spec/models/web/setting_spec.rb'
-# Offense count: 1
# Configuration parameters: AllowComments.
Lint/EmptyClass:
Exclude:
- 'spec/controllers/api/base_controller_spec.rb'
-# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
Lint/NonDeterministicRequireOrder:
Exclude:
- 'spec/rails_helper.rb'
-# Offense count: 1
Lint/NonLocalExitFromIterator:
Exclude:
- 'app/helpers/jsonld_helper.rb'
-# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
Lint/OrAssignmentToConstant:
Exclude:
- 'lib/sanitize_ext/sanitize_config.rb'
-# Offense count: 33
Lint/UselessAssignment:
Exclude:
- 'app/services/activitypub/process_status_update_service.rb'
@@ -151,53 +129,46 @@ Lint/UselessAssignment:
- 'spec/services/resolve_url_service_spec.rb'
- 'spec/views/statuses/show.html.haml_spec.rb'
-# Offense count: 3
# Configuration parameters: CheckForMethodsWithNoSideEffects.
Lint/Void:
Exclude:
- 'spec/services/resolve_account_service_spec.rb'
-# Offense count: 66
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
Metrics/AbcSize:
- Enabled: false
+ Max: 150
-# Offense count: 10
-# Configuration parameters: CountComments, Max, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
+# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
- Exclude:
- - 'app/models/concerns/account_interactions.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- - 'lib/tasks/branding.rake'
- - 'lib/tasks/mastodon.rake'
- - 'lib/tasks/repo.rake'
- - 'lib/tasks/tests.rake'
+ Max: 433
-# Offense count: 1
# Configuration parameters: CountBlocks, Max.
Metrics/BlockNesting:
Exclude:
- 'lib/tasks/mastodon.rake'
-# Offense count: 39
+# Configuration parameters: CountComments, CountAsOne.
+Metrics/ClassLength:
+ Max: 373
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/CyclomaticComplexity:
- Enabled: false
+ Max: 25
-# Offense count: 35
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
Metrics/MethodLength:
- Enabled: false
+ Max: 58
-# Offense count: 1
# Configuration parameters: CountComments, Max, CountAsOne.
Metrics/ModuleLength:
Exclude:
+ - 'app/controllers/concerns/signature_verification.rb'
+ - 'app/helpers/application_helper.rb'
+ - 'app/helpers/jsonld_helper.rb'
+ - 'app/helpers/statuses_helper.rb'
- 'app/models/concerns/account_interactions.rb'
-# Offense count: 5
# Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters.
Metrics/ParameterLists:
Exclude:
@@ -206,32 +177,14 @@ Metrics/ParameterLists:
- 'app/services/activitypub/fetch_remote_actor_service.rb'
- 'app/services/activitypub/fetch_remote_status_service.rb'
-# Offense count: 16
-# Configuration parameters: AllowedMethods, AllowedPatterns, Max.
+# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/PerceivedComplexity:
- Exclude:
- - 'app/helpers/jsonld_helper.rb'
- - 'app/lib/feed_manager.rb'
- - 'app/lib/status_cache_hydrator.rb'
- - 'app/lib/user_settings_decorator.rb'
- - 'app/models/trends/links.rb'
- - 'app/services/activitypub/fetch_remote_key_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/activitypub/process_account_service.rb'
- - 'app/services/fetch_link_card_service.rb'
- - 'app/services/fetch_oembed_service.rb'
- - 'app/services/process_mentions_service.rb'
- - 'app/services/resolve_account_service.rb'
- - 'lib/mastodon/accounts_cli.rb'
- - 'lib/mastodon/domains_cli.rb'
- - 'lib/mastodon/maintenance_cli.rb'
+ Max: 28
-# Offense count: 1
Naming/AccessorMethodName:
Exclude:
- 'app/controllers/auth/sessions_controller.rb'
-# Offense count: 7
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
Naming/MemoizedInstanceVariableName:
@@ -243,10 +196,9 @@ Naming/MemoizedInstanceVariableName:
- 'app/services/resolve_url_service.rb'
- 'app/services/search_service.rb'
-# Offense count: 50
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
# SupportedStyles: snake_case, normalcase, non_integer
-# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339
+# AllowedIdentifiers: capture3, iso8601, rfc1123_date, rfc822, rfc2822, rfc3339, x86_64
Naming/VariableNumber:
Exclude:
- 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
@@ -263,7 +215,6 @@ Naming/VariableNumber:
- 'spec/models/user_spec.rb'
- 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
-# Offense count: 12
# Configuration parameters: MinSize.
Performance/CollectionLiteralInLoop:
Exclude:
@@ -278,14 +229,12 @@ Performance/CollectionLiteralInLoop:
- 'app/services/unsuspend_account_service.rb'
- 'lib/mastodon/media_cli.rb'
-# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/Count:
Exclude:
- 'app/lib/importer/accounts_index_importer.rb'
- 'app/lib/importer/tags_index_importer.rb'
-# Offense count: 10
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SafeMultiline.
Performance/DeletePrefix:
@@ -301,7 +250,6 @@ Performance/DeletePrefix:
- 'app/services/resolve_account_service.rb'
- 'app/services/tag_search_service.rb'
-# Offense count: 19
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/MapCompact:
Exclude:
@@ -321,36 +269,30 @@ Performance/MapCompact:
- 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb'
- 'spec/presenters/status_relationships_presenter_spec.rb'
-# Offense count: 7
Performance/MethodObjectAsBlock:
Exclude:
- 'app/models/account_suggestions/source.rb'
- 'spec/models/export_spec.rb'
-# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/RedundantEqualityComparisonBlock:
Exclude:
- 'spec/requests/link_headers_spec.rb'
-# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SafeMultiline.
Performance/StartWith:
Exclude:
- 'app/lib/extractor.rb'
-# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: OnlySumOrWithInitialValue.
Performance/Sum:
Exclude:
- 'app/lib/activity_tracker.rb'
- 'app/models/trends/history.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- 'lib/paperclip/color_extractor.rb'
-# Offense count: 15
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/TimesMap:
Exclude:
@@ -360,7 +302,6 @@ Performance/TimesMap:
- 'spec/lib/request_pool_spec.rb'
- 'spec/models/account_spec.rb'
-# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
Performance/UnfreezeString:
Exclude:
@@ -369,7 +310,6 @@ Performance/UnfreezeString:
- 'app/validators/status_length_validator.rb'
- 'lib/tasks/mastodon.rake'
-# Offense count: 27
RSpec/AnyInstance:
Exclude:
- 'spec/controllers/activitypub/inboxes_controller_spec.rb'
@@ -390,12 +330,10 @@ RSpec/AnyInstance:
- 'spec/workers/activitypub/delivery_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
-# Offense count: 1
RSpec/BeforeAfterAll:
Exclude:
- 'spec/requests/localization_spec.rb'
-# Offense count: 558
# Configuration parameters: Prefixes, AllowedPatterns.
# Prefixes: when, with, without
RSpec/ContextWording:
@@ -440,7 +378,6 @@ RSpec/ContextWording:
- 'spec/lib/html_aware_formatter_spec.rb'
- 'spec/lib/link_details_extractor_spec.rb'
- 'spec/lib/ostatus/tag_manager_spec.rb'
- - 'spec/lib/plain_text_formatter_spec.rb'
- 'spec/lib/scope_transformer_spec.rb'
- 'spec/lib/status_cache_hydrator_spec.rb'
- 'spec/lib/status_reach_finder_spec.rb'
@@ -506,7 +443,6 @@ RSpec/ContextWording:
- 'spec/workers/move_worker_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-# Offense count: 339
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SkipBlocks, EnforcedStyle.
# SupportedStyles: described_class, explicit
@@ -581,7 +517,6 @@ RSpec/DescribedClass:
- 'spec/services/update_account_service_spec.rb'
- 'spec/validators/note_length_validator_spec.rb'
-# Offense count: 32
# This cop supports unsafe autocorrection (--autocorrect-all).
RSpec/EmptyExampleGroup:
Exclude:
@@ -604,7 +539,6 @@ RSpec/EmptyExampleGroup:
- 'spec/models/list_spec.rb'
- 'spec/models/login_activity_spec.rb'
- 'spec/models/mute_spec.rb'
- - 'spec/models/one_time_key_spec.rb'
- 'spec/models/preview_card_spec.rb'
- 'spec/models/preview_card_trend_spec.rb'
- 'spec/models/relay_spec.rb'
@@ -618,12 +552,10 @@ RSpec/EmptyExampleGroup:
- 'spec/models/web/setting_spec.rb'
- 'spec/services/unmute_service_spec.rb'
-# Offense count: 178
# Configuration parameters: CountAsOne.
RSpec/ExampleLength:
Max: 22
-# Offense count: 21
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: method_call, block
@@ -641,14 +573,12 @@ RSpec/ExpectChange:
- 'spec/services/unsuspend_account_service_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-# Offense count: 5
RSpec/ExpectInHook:
Exclude:
- 'spec/controllers/api/v1/media_controller_spec.rb'
- 'spec/controllers/settings/applications_controller_spec.rb'
- 'spec/lib/status_filter_spec.rb'
-# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: implicit, each, example
@@ -664,7 +594,6 @@ RSpec/HookArgument:
- 'spec/services/import_service_spec.rb'
- 'spec/spec_helper.rb'
-# Offense count: 101
# Configuration parameters: AssignmentOnly.
RSpec/InstanceVariable:
Exclude:
@@ -687,7 +616,6 @@ RSpec/InstanceVariable:
- 'spec/services/search_service_spec.rb'
- 'spec/services/unblock_domain_service_spec.rb'
-# Offense count: 15
RSpec/LeakyConstantDeclaration:
Exclude:
- 'spec/controllers/api/base_controller_spec.rb'
@@ -700,7 +628,6 @@ RSpec/LeakyConstantDeclaration:
- 'spec/lib/settings/extend_spec.rb'
- 'spec/models/concerns/remotable_spec.rb'
-# Offense count: 108
RSpec/LetSetup:
Exclude:
- 'spec/controllers/admin/accounts_controller_spec.rb'
@@ -753,7 +680,6 @@ RSpec/LetSetup:
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
- 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb'
-# Offense count: 7
RSpec/MessageChain:
Exclude:
- 'spec/controllers/api/v1/media_controller_spec.rb'
@@ -761,7 +687,6 @@ RSpec/MessageChain:
- 'spec/models/session_activation_spec.rb'
- 'spec/models/setting_spec.rb'
-# Offense count: 47
# Configuration parameters: EnforcedStyle.
# SupportedStyles: have_received, receive
RSpec/MessageSpies:
@@ -784,7 +709,6 @@ RSpec/MessageSpies:
- 'spec/spec_helper.rb'
- 'spec/validators/status_length_validator_spec.rb'
-# Offense count: 35
RSpec/MissingExampleGroupArgument:
Exclude:
- 'spec/controllers/accounts_controller_spec.rb'
@@ -810,16 +734,13 @@ RSpec/MissingExampleGroupArgument:
- 'spec/services/notify_service_spec.rb'
- 'spec/services/process_mentions_service_spec.rb'
-# Offense count: 599
RSpec/MultipleExpectations:
Max: 19
-# Offense count: 442
# Configuration parameters: AllowSubject.
RSpec/MultipleMemoizedHelpers:
Max: 21
-# Offense count: 7
# This cop supports safe autocorrection (--autocorrect).
RSpec/MultipleSubjects:
Exclude:
@@ -831,7 +752,6 @@ RSpec/MultipleSubjects:
- 'spec/controllers/follower_accounts_controller_spec.rb'
- 'spec/controllers/following_accounts_controller_spec.rb'
-# Offense count: 1407
# Configuration parameters: EnforcedStyle, IgnoreSharedExamples.
# SupportedStyles: always, named_only
RSpec/NamedSubject:
@@ -1030,12 +950,10 @@ RSpec/NamedSubject:
- 'spec/workers/unfollow_follow_worker_spec.rb'
- 'spec/workers/web/push_notification_worker_spec.rb'
-# Offense count: 552
# Configuration parameters: AllowedGroups.
RSpec/NestedGroups:
Max: 6
-# Offense count: 2
# Configuration parameters: AllowedPatterns.
# AllowedPatterns: ^expect_, ^assert_
RSpec/NoExpectationExample:
@@ -1043,13 +961,11 @@ RSpec/NoExpectationExample:
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/services/precompute_feed_service_spec.rb'
-# Offense count: 3
RSpec/PendingWithoutReason:
Exclude:
- 'spec/models/account_spec.rb'
- 'spec/support/examples/lib/settings/scoped_settings.rb'
-# Offense count: 9
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
# SupportedStyles: inflected, explicit
@@ -1059,7 +975,6 @@ RSpec/PredicateMatcher:
- 'spec/models/user_spec.rb'
- 'spec/services/post_status_service_spec.rb'
-# Offense count: 180
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Inferences.
RSpec/Rails/InferredSpecType:
@@ -1166,7 +1081,6 @@ RSpec/Rails/InferredSpecType:
- 'spec/helpers/formatting_helper_spec.rb'
- 'spec/helpers/home_helper_spec.rb'
- 'spec/helpers/routing_helper_spec.rb'
- - 'spec/helpers/statuses_helper_spec.rb'
- 'spec/mailers/admin_mailer_spec.rb'
- 'spec/mailers/notification_mailer_spec.rb'
- 'spec/mailers/user_mailer_spec.rb'
@@ -1184,18 +1098,15 @@ RSpec/Rails/InferredSpecType:
- 'spec/models/announcement_mute_spec.rb'
- 'spec/models/announcement_reaction_spec.rb'
- 'spec/models/announcement_spec.rb'
- - 'spec/models/appeal_spec.rb'
- 'spec/models/backup_spec.rb'
- 'spec/models/block_spec.rb'
- 'spec/models/canonical_email_block_spec.rb'
- 'spec/models/conversation_mute_spec.rb'
- 'spec/models/conversation_spec.rb'
- - 'spec/models/custom_emoji_category_spec.rb'
- 'spec/models/custom_emoji_spec.rb'
- 'spec/models/custom_filter_keyword_spec.rb'
- 'spec/models/custom_filter_spec.rb'
- 'spec/models/device_spec.rb'
- - 'spec/models/domain_allow_spec.rb'
- 'spec/models/domain_block_spec.rb'
- 'spec/models/email_domain_block_spec.rb'
- 'spec/models/encrypted_message_spec.rb'
@@ -1208,28 +1119,22 @@ RSpec/Rails/InferredSpecType:
- 'spec/models/identity_spec.rb'
- 'spec/models/import_spec.rb'
- 'spec/models/invite_spec.rb'
- - 'spec/models/ip_block_spec.rb'
- 'spec/models/list_account_spec.rb'
- 'spec/models/list_spec.rb'
- 'spec/models/login_activity_spec.rb'
- - 'spec/models/marker_spec.rb'
- 'spec/models/media_attachment_spec.rb'
- 'spec/models/mention_spec.rb'
- 'spec/models/mute_spec.rb'
- 'spec/models/notification_spec.rb'
- - 'spec/models/one_time_key_spec.rb'
- - 'spec/models/poll_spec.rb'
- 'spec/models/poll_vote_spec.rb'
- 'spec/models/preview_card_spec.rb'
- 'spec/models/preview_card_trend_spec.rb'
- 'spec/models/public_feed_spec.rb'
- 'spec/models/relay_spec.rb'
- - 'spec/models/rule_spec.rb'
- 'spec/models/scheduled_status_spec.rb'
- 'spec/models/session_activation_spec.rb'
- 'spec/models/setting_spec.rb'
- 'spec/models/site_upload_spec.rb'
- - 'spec/models/status_edit_spec.rb'
- 'spec/models/status_pin_spec.rb'
- 'spec/models/status_spec.rb'
- 'spec/models/status_stat_spec.rb'
@@ -1245,23 +1150,19 @@ RSpec/Rails/InferredSpecType:
- 'spec/models/webauthn_credentials_spec.rb'
- 'spec/models/webhook_spec.rb'
-# Offense count: 6
RSpec/RepeatedExample:
Exclude:
- 'spec/policies/status_policy_spec.rb'
-# Offense count: 6
RSpec/RepeatedExampleGroupBody:
Exclude:
- 'spec/controllers/statuses_controller_spec.rb'
-# Offense count: 4
RSpec/RepeatedExampleGroupDescription:
Exclude:
- 'spec/controllers/admin/reports/actions_controller_spec.rb'
- 'spec/policies/report_note_policy_spec.rb'
-# Offense count: 12
RSpec/ScatteredSetup:
Exclude:
- 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
@@ -1269,15 +1170,12 @@ RSpec/ScatteredSetup:
- 'spec/controllers/admin/disputes/appeals_controller_spec.rb'
- 'spec/controllers/auth/registrations_controller_spec.rb'
- 'spec/services/activitypub/process_account_service_spec.rb'
- - 'spec/services/fetch_resource_service_spec.rb'
-# Offense count: 1
# This cop supports safe autocorrection (--autocorrect).
RSpec/SharedContext:
Exclude:
- 'spec/services/unsuspend_account_service_spec.rb'
-# Offense count: 16
RSpec/StubbedMock:
Exclude:
- 'spec/controllers/api/base_controller_spec.rb'
@@ -1289,7 +1187,6 @@ RSpec/StubbedMock:
- 'spec/lib/webfinger_resource_spec.rb'
- 'spec/services/activitypub/process_collection_service_spec.rb'
-# Offense count: 22
RSpec/SubjectDeclaration:
Exclude:
- 'spec/controllers/admin/domain_blocks_controller_spec.rb'
@@ -1314,13 +1211,11 @@ RSpec/SubjectDeclaration:
- 'spec/policies/user_policy_spec.rb'
- 'spec/services/activitypub/process_account_service_spec.rb'
-# Offense count: 5
RSpec/SubjectStub:
Exclude:
- 'spec/services/unallow_domain_service_spec.rb'
- 'spec/validators/blacklisted_email_validator_spec.rb'
-# Offense count: 119
# Configuration parameters: IgnoreNameless, IgnoreSymbolicNames.
RSpec/VerifiedDoubles:
Exclude:
@@ -1361,7 +1256,6 @@ RSpec/VerifiedDoubles:
- 'spec/workers/feed_insert_worker_spec.rb'
- 'spec/workers/regeneration_worker_spec.rb'
-# Offense count: 19
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: ExpectedOrder, Include.
# ExpectedOrder: index, show, new, edit, create, update, destroy
@@ -1388,7 +1282,6 @@ Rails/ActionOrder:
- 'app/controllers/settings/applications_controller.rb'
- 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
-# Offense count: 7
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Include.
# Include: app/models/**/*.rb
@@ -1402,7 +1295,6 @@ Rails/ActiveRecordCallbacksOrder:
- 'app/models/session_activation.rb'
- 'app/models/status.rb'
-# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/ApplicationController:
Exclude:
@@ -1411,7 +1303,6 @@ Rails/ApplicationController:
- 'app/controllers/well_known/nodeinfo_controller.rb'
- 'app/controllers/well_known/webfinger_controller.rb'
-# Offense count: 35
# Configuration parameters: Database, Include.
# SupportedDatabases: mysql, postgresql
# Include: db/migrate/*.rb
@@ -1449,7 +1340,6 @@ Rails/BulkChangeTable:
- 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
- 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb'
-# Offense count: 7
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/CompactBlank:
Exclude:
@@ -1460,14 +1350,12 @@ Rails/CompactBlank:
- 'app/models/user.rb'
- 'app/services/import_service.rb'
-# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
Rails/ContentTag:
Exclude:
- 'app/helpers/application_helper.rb'
- 'app/helpers/branding_helper.rb'
-# Offense count: 8
# Configuration parameters: Include.
# Include: db/migrate/*.rb
Rails/CreateTableWithTimestamps:
@@ -1481,22 +1369,17 @@ Rails/CreateTableWithTimestamps:
- 'db/migrate/20220824233535_create_status_trends.rb'
- 'db/migrate/20221006061337_create_preview_card_trends.rb'
-# Offense count: 4
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/DeprecatedActiveModelErrorsMethods:
Exclude:
- - 'app/validators/ed25519_key_validator.rb'
- - 'app/validators/ed25519_signature_validator.rb'
- 'lib/mastodon/accounts_cli.rb'
-# Offense count: 4
# This cop supports safe autocorrection (--autocorrect).
Rails/DuplicateAssociation:
Exclude:
- 'app/serializers/activitypub/collection_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
-# Offense count: 76
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
Rails/FilePath:
@@ -1564,7 +1447,6 @@ Rails/FilePath:
- 'spec/rails_helper.rb'
- 'spec/spec_helper.rb'
-# Offense count: 6
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasAndBelongsToMany:
@@ -1574,7 +1456,6 @@ Rails/HasAndBelongsToMany:
- 'app/models/status.rb'
- 'app/models/tag.rb'
-# Offense count: 15
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/HasManyOrHasOneDependent:
@@ -1589,7 +1470,6 @@ Rails/HasManyOrHasOneDependent:
- 'app/models/user.rb'
- 'app/models/web/push_subscription.rb'
-# Offense count: 4
# Configuration parameters: Include.
# Include: app/helpers/**/*.rb
Rails/HelperInstanceVariable:
@@ -1598,7 +1478,6 @@ Rails/HelperInstanceVariable:
- 'app/helpers/instance_helper.rb'
- 'app/helpers/jsonld_helper.rb'
-# Offense count: 3
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: Include.
# Include: spec/**/*, test/**/*
@@ -1606,7 +1485,6 @@ Rails/HttpPositionalArguments:
Exclude:
- 'spec/config/initializers/rack_attack_spec.rb'
-# Offense count: 7
# Configuration parameters: Include.
# Include: spec/**/*.rb, test/**/*.rb
Rails/I18nLocaleAssignment:
@@ -1615,13 +1493,11 @@ Rails/I18nLocaleAssignment:
- 'spec/helpers/application_helper_spec.rb'
- 'spec/requests/localization_spec.rb'
-# Offense count: 6
Rails/I18nLocaleTexts:
Exclude:
- 'lib/tasks/mastodon.rake'
- 'spec/helpers/flashes_helper_spec.rb'
-# Offense count: 8
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/IgnoredColumnsAssignment:
Exclude:
@@ -1634,7 +1510,6 @@ Rails/IgnoredColumnsAssignment:
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
-# Offense count: 25
# Configuration parameters: IgnoreScopes, Include.
# Include: app/models/**/*.rb
Rails/InverseOf:
@@ -1647,9 +1522,7 @@ Rails/InverseOf:
- 'app/models/instance.rb'
- 'app/models/notification.rb'
- 'app/models/status.rb'
- - 'app/models/user_ip.rb'
-# Offense count: 13
# Configuration parameters: Include.
# Include: app/controllers/**/*.rb, app/mailers/**/*.rb
Rails/LexicallyScopedActionFilter:
@@ -1660,7 +1533,6 @@ Rails/LexicallyScopedActionFilter:
- 'app/controllers/auth/registrations_controller.rb'
- 'app/controllers/auth/sessions_controller.rb'
-# Offense count: 18
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/NegateInclude:
Exclude:
@@ -1680,7 +1552,6 @@ Rails/NegateInclude:
- 'app/workers/web/push_notification_worker.rb'
- 'lib/paperclip/color_extractor.rb'
-# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: app/**/*.rb, config/**/*.rb, db/**/*.rb, lib/**/*.rb
@@ -1688,7 +1559,6 @@ Rails/Output:
Exclude:
- 'lib/mastodon/ip_blocks_cli.rb'
-# Offense count: 9
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: **/Rakefile, **/*.rake
@@ -1701,7 +1571,6 @@ Rails/RakeEnvironment:
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
-# Offense count: 29
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ReversibleMigration:
@@ -1720,7 +1589,6 @@ Rails/ReversibleMigration:
- 'db/migrate/20180617162849_remove_unused_indexes.rb'
- 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
-# Offense count: 141
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
Rails/SkipsModelValidations:
@@ -1774,7 +1642,6 @@ Rails/SkipsModelValidations:
- 'spec/services/follow_service_spec.rb'
- 'spec/services/update_account_service_spec.rb'
-# Offense count: 11
# This cop supports unsafe autocorrection (--autocorrect-all).
Rails/SquishedSQLHeredocs:
Exclude:
@@ -1784,7 +1651,6 @@ Rails/SquishedSQLHeredocs:
- 'lib/mastodon/snowflake.rb'
- 'lib/tasks/tests.rake'
-# Offense count: 7
Rails/TransactionExitStatement:
Exclude:
- 'app/lib/activitypub/activity/announce.rb'
@@ -1792,7 +1658,6 @@ Rails/TransactionExitStatement:
- 'app/lib/activitypub/activity/delete.rb'
- 'app/services/activitypub/process_account_service.rb'
-# Offense count: 4
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/UniqueValidationWithoutIndex:
@@ -1802,7 +1667,6 @@ Rails/UniqueValidationWithoutIndex:
- 'app/models/identity.rb'
- 'app/models/webauthn_credential.rb'
-# Offense count: 19
# Configuration parameters: Include.
# Include: app/models/**/*.rb
Rails/UnusedIgnoredColumns:
@@ -1816,7 +1680,6 @@ Rails/UnusedIgnoredColumns:
- 'app/models/status_edit.rb'
- 'app/models/user.rb'
-# Offense count: 61
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: exists, where
@@ -1856,24 +1719,461 @@ Rails/WhereExists:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
-# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: MinBranchesCount.
Style/CaseLikeIf:
Exclude:
- - 'app/controllers/authorize_interactions_controller.rb'
- 'app/controllers/concerns/signature_verification.rb'
- - 'app/helpers/jsonld_helper.rb'
- - 'app/models/account.rb'
- - 'app/services/resolve_url_service.rb'
-# Offense count: 445
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: nested, compact
Style/ClassAndModuleChildren:
- Enabled: false
+ Exclude:
+ - 'app/controllers/activitypub/base_controller.rb'
+ - 'app/controllers/activitypub/claims_controller.rb'
+ - 'app/controllers/activitypub/collections_controller.rb'
+ - 'app/controllers/activitypub/followers_synchronizations_controller.rb'
+ - 'app/controllers/activitypub/inboxes_controller.rb'
+ - 'app/controllers/activitypub/outboxes_controller.rb'
+ - 'app/controllers/activitypub/replies_controller.rb'
+ - 'app/controllers/admin/announcements_controller.rb'
+ - 'app/controllers/admin/disputes/appeals_controller.rb'
+ - 'app/controllers/admin/domain_allows_controller.rb'
+ - 'app/controllers/admin/reports/actions_controller.rb'
+ - 'app/controllers/admin/settings/about_controller.rb'
+ - 'app/controllers/admin/settings/appearance_controller.rb'
+ - 'app/controllers/admin/settings/branding_controller.rb'
+ - 'app/controllers/admin/settings/content_retention_controller.rb'
+ - 'app/controllers/admin/settings/discovery_controller.rb'
+ - 'app/controllers/admin/settings/registrations_controller.rb'
+ - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb'
+ - 'app/controllers/admin/trends/links_controller.rb'
+ - 'app/controllers/admin/trends/statuses_controller.rb'
+ - 'app/controllers/admin/trends/tags_controller.rb'
+ - 'app/controllers/admin/users/roles_controller.rb'
+ - 'app/controllers/admin/users/two_factor_authentications_controller.rb'
+ - 'app/controllers/admin/webhooks/secrets_controller.rb'
+ - 'app/controllers/api/base_controller.rb'
+ - 'app/controllers/api/oembed_controller.rb'
+ - 'app/controllers/api/v1/accounts/credentials_controller.rb'
+ - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb'
+ - 'app/controllers/api/v1/accounts/featured_tags_controller.rb'
+ - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
+ - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
+ - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb'
+ - 'app/controllers/api/v1/accounts/lists_controller.rb'
+ - 'app/controllers/api/v1/accounts/lookup_controller.rb'
+ - 'app/controllers/api/v1/accounts/notes_controller.rb'
+ - 'app/controllers/api/v1/accounts/pins_controller.rb'
+ - 'app/controllers/api/v1/accounts/relationships_controller.rb'
+ - 'app/controllers/api/v1/accounts/search_controller.rb'
+ - 'app/controllers/api/v1/accounts/statuses_controller.rb'
+ - 'app/controllers/api/v1/accounts_controller.rb'
+ - 'app/controllers/api/v1/admin/account_actions_controller.rb'
+ - 'app/controllers/api/v1/admin/accounts_controller.rb'
+ - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/dimensions_controller.rb'
+ - 'app/controllers/api/v1/admin/domain_allows_controller.rb'
+ - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/ip_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/measures_controller.rb'
+ - 'app/controllers/api/v1/admin/reports_controller.rb'
+ - 'app/controllers/api/v1/admin/retention_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/links_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/statuses_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/tags_controller.rb'
+ - 'app/controllers/api/v1/announcements/reactions_controller.rb'
+ - 'app/controllers/api/v1/announcements_controller.rb'
+ - 'app/controllers/api/v1/apps/credentials_controller.rb'
+ - 'app/controllers/api/v1/apps_controller.rb'
+ - 'app/controllers/api/v1/blocks_controller.rb'
+ - 'app/controllers/api/v1/bookmarks_controller.rb'
+ - 'app/controllers/api/v1/conversations_controller.rb'
+ - 'app/controllers/api/v1/crypto/deliveries_controller.rb'
+ - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/claims_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/counts_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/queries_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb'
+ - 'app/controllers/api/v1/custom_emojis_controller.rb'
+ - 'app/controllers/api/v1/directories_controller.rb'
+ - 'app/controllers/api/v1/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/emails/confirmations_controller.rb'
+ - 'app/controllers/api/v1/endorsements_controller.rb'
+ - 'app/controllers/api/v1/favourites_controller.rb'
+ - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb'
+ - 'app/controllers/api/v1/featured_tags_controller.rb'
+ - 'app/controllers/api/v1/filters_controller.rb'
+ - 'app/controllers/api/v1/follow_requests_controller.rb'
+ - 'app/controllers/api/v1/followed_tags_controller.rb'
+ - 'app/controllers/api/v1/instances/activity_controller.rb'
+ - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb'
+ - 'app/controllers/api/v1/instances/peers_controller.rb'
+ - 'app/controllers/api/v1/instances/privacy_policies_controller.rb'
+ - 'app/controllers/api/v1/instances/rules_controller.rb'
+ - 'app/controllers/api/v1/instances_controller.rb'
+ - 'app/controllers/api/v1/lists/accounts_controller.rb'
+ - 'app/controllers/api/v1/lists_controller.rb'
+ - 'app/controllers/api/v1/markers_controller.rb'
+ - 'app/controllers/api/v1/media_controller.rb'
+ - 'app/controllers/api/v1/mutes_controller.rb'
+ - 'app/controllers/api/v1/notifications_controller.rb'
+ - 'app/controllers/api/v1/polls/votes_controller.rb'
+ - 'app/controllers/api/v1/polls_controller.rb'
+ - 'app/controllers/api/v1/preferences_controller.rb'
+ - 'app/controllers/api/v1/push/subscriptions_controller.rb'
+ - 'app/controllers/api/v1/reports_controller.rb'
+ - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
+ - 'app/controllers/api/v1/statuses/bookmarks_controller.rb'
+ - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
+ - 'app/controllers/api/v1/statuses/favourites_controller.rb'
+ - 'app/controllers/api/v1/statuses/histories_controller.rb'
+ - 'app/controllers/api/v1/statuses/mutes_controller.rb'
+ - 'app/controllers/api/v1/statuses/pins_controller.rb'
+ - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
+ - 'app/controllers/api/v1/statuses/reblogs_controller.rb'
+ - 'app/controllers/api/v1/statuses/sources_controller.rb'
+ - 'app/controllers/api/v1/statuses/translations_controller.rb'
+ - 'app/controllers/api/v1/statuses_controller.rb'
+ - 'app/controllers/api/v1/streaming_controller.rb'
+ - 'app/controllers/api/v1/suggestions_controller.rb'
+ - 'app/controllers/api/v1/tags_controller.rb'
+ - 'app/controllers/api/v1/timelines/home_controller.rb'
+ - 'app/controllers/api/v1/timelines/list_controller.rb'
+ - 'app/controllers/api/v1/timelines/public_controller.rb'
+ - 'app/controllers/api/v1/timelines/tag_controller.rb'
+ - 'app/controllers/api/v1/trends/links_controller.rb'
+ - 'app/controllers/api/v1/trends/statuses_controller.rb'
+ - 'app/controllers/api/v1/trends/tags_controller.rb'
+ - 'app/controllers/api/v2/admin/accounts_controller.rb'
+ - 'app/controllers/api/v2/filters/keywords_controller.rb'
+ - 'app/controllers/api/v2/filters/statuses_controller.rb'
+ - 'app/controllers/api/v2/filters_controller.rb'
+ - 'app/controllers/api/v2/instances_controller.rb'
+ - 'app/controllers/api/v2/media_controller.rb'
+ - 'app/controllers/api/v2/search_controller.rb'
+ - 'app/controllers/api/v2/suggestions_controller.rb'
+ - 'app/controllers/api/web/base_controller.rb'
+ - 'app/controllers/api/web/embeds_controller.rb'
+ - 'app/controllers/api/web/push_subscriptions_controller.rb'
+ - 'app/controllers/api/web/settings_controller.rb'
+ - 'app/controllers/auth/challenges_controller.rb'
+ - 'app/controllers/auth/confirmations_controller.rb'
+ - 'app/controllers/auth/omniauth_callbacks_controller.rb'
+ - 'app/controllers/auth/passwords_controller.rb'
+ - 'app/controllers/auth/registrations_controller.rb'
+ - 'app/controllers/auth/sessions_controller.rb'
+ - 'app/controllers/auth/setup_controller.rb'
+ - 'app/controllers/disputes/appeals_controller.rb'
+ - 'app/controllers/disputes/base_controller.rb'
+ - 'app/controllers/disputes/strikes_controller.rb'
+ - 'app/controllers/filters/statuses_controller.rb'
+ - 'app/controllers/oauth/authorizations_controller.rb'
+ - 'app/controllers/oauth/authorized_applications_controller.rb'
+ - 'app/controllers/oauth/tokens_controller.rb'
+ - 'app/controllers/settings/aliases_controller.rb'
+ - 'app/controllers/settings/applications_controller.rb'
+ - 'app/controllers/settings/base_controller.rb'
+ - 'app/controllers/settings/deletes_controller.rb'
+ - 'app/controllers/settings/exports_controller.rb'
+ - 'app/controllers/settings/featured_tags_controller.rb'
+ - 'app/controllers/settings/imports_controller.rb'
+ - 'app/controllers/settings/login_activities_controller.rb'
+ - 'app/controllers/settings/migration/redirects_controller.rb'
+ - 'app/controllers/settings/migrations_controller.rb'
+ - 'app/controllers/settings/preferences/appearance_controller.rb'
+ - 'app/controllers/settings/preferences/notifications_controller.rb'
+ - 'app/controllers/settings/preferences/other_controller.rb'
+ - 'app/controllers/settings/preferences_controller.rb'
+ - 'app/controllers/settings/profiles_controller.rb'
+ - 'app/controllers/settings/sessions_controller.rb'
+ - 'app/helpers/admin/account_moderation_notes_helper.rb'
+ - 'app/helpers/admin/action_logs_helper.rb'
+ - 'app/helpers/admin/dashboard_helper.rb'
+ - 'app/helpers/admin/filter_helper.rb'
+ - 'app/helpers/admin/settings_helper.rb'
+ - 'app/helpers/admin/trends/statuses_helper.rb'
+ - 'app/lib/activitypub/activity.rb'
+ - 'app/lib/activitypub/activity/accept.rb'
+ - 'app/lib/activitypub/activity/add.rb'
+ - 'app/lib/activitypub/activity/announce.rb'
+ - 'app/lib/activitypub/activity/block.rb'
+ - 'app/lib/activitypub/activity/create.rb'
+ - 'app/lib/activitypub/activity/delete.rb'
+ - 'app/lib/activitypub/activity/flag.rb'
+ - 'app/lib/activitypub/activity/follow.rb'
+ - 'app/lib/activitypub/activity/like.rb'
+ - 'app/lib/activitypub/activity/move.rb'
+ - 'app/lib/activitypub/activity/reject.rb'
+ - 'app/lib/activitypub/activity/remove.rb'
+ - 'app/lib/activitypub/activity/undo.rb'
+ - 'app/lib/activitypub/activity/update.rb'
+ - 'app/lib/activitypub/adapter.rb'
+ - 'app/lib/activitypub/case_transform.rb'
+ - 'app/lib/activitypub/dereferencer.rb'
+ - 'app/lib/activitypub/forwarder.rb'
+ - 'app/lib/activitypub/linked_data_signature.rb'
+ - 'app/lib/activitypub/parser/custom_emoji_parser.rb'
+ - 'app/lib/activitypub/parser/media_attachment_parser.rb'
+ - 'app/lib/activitypub/parser/poll_parser.rb'
+ - 'app/lib/activitypub/parser/status_parser.rb'
+ - 'app/lib/activitypub/serializer.rb'
+ - 'app/lib/activitypub/tag_manager.rb'
+ - 'app/lib/admin/metrics/dimension.rb'
+ - 'app/lib/admin/metrics/dimension/base_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/servers_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/sources_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb'
+ - 'app/lib/admin/metrics/measure.rb'
+ - 'app/lib/admin/metrics/measure/active_users_measure.rb'
+ - 'app/lib/admin/metrics/measure/base_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_followers_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_follows_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb'
+ - 'app/lib/admin/metrics/measure/interactions_measure.rb'
+ - 'app/lib/admin/metrics/measure/new_users_measure.rb'
+ - 'app/lib/admin/metrics/measure/opened_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_servers_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_uses_measure.rb'
+ - 'app/lib/admin/metrics/retention.rb'
+ - 'app/lib/admin/system_check.rb'
+ - 'app/lib/admin/system_check/base_check.rb'
+ - 'app/lib/admin/system_check/database_schema_check.rb'
+ - 'app/lib/admin/system_check/elasticsearch_check.rb'
+ - 'app/lib/admin/system_check/message.rb'
+ - 'app/lib/admin/system_check/rules_check.rb'
+ - 'app/lib/admin/system_check/sidekiq_process_check.rb'
+ - 'app/lib/connection_pool/shared_connection_pool.rb'
+ - 'app/lib/connection_pool/shared_timed_stack.rb'
+ - 'app/lib/importer/accounts_index_importer.rb'
+ - 'app/lib/importer/base_importer.rb'
+ - 'app/lib/importer/statuses_index_importer.rb'
+ - 'app/lib/importer/tags_index_importer.rb'
+ - 'app/lib/nodeinfo/adapter.rb'
+ - 'app/lib/ostatus/tag_manager.rb'
+ - 'app/lib/request.rb'
+ - 'app/lib/rss/builder.rb'
+ - 'app/lib/rss/channel.rb'
+ - 'app/lib/rss/element.rb'
+ - 'app/lib/rss/item.rb'
+ - 'app/lib/rss/media_content.rb'
+ - 'app/lib/translation_service/deepl.rb'
+ - 'app/lib/translation_service/libre_translate.rb'
+ - 'app/lib/translation_service/translation.rb'
+ - 'app/lib/vacuum/access_tokens_vacuum.rb'
+ - 'app/lib/vacuum/backups_vacuum.rb'
+ - 'app/lib/vacuum/feeds_vacuum.rb'
+ - 'app/lib/vacuum/media_attachments_vacuum.rb'
+ - 'app/lib/vacuum/preview_cards_vacuum.rb'
+ - 'app/lib/vacuum/statuses_vacuum.rb'
+ - 'app/lib/vacuum/system_keys_vacuum.rb'
+ - 'app/models/account/field.rb'
+ - 'app/models/account_suggestions/global_source.rb'
+ - 'app/models/account_suggestions/past_interactions_source.rb'
+ - 'app/models/account_suggestions/setting_source.rb'
+ - 'app/models/account_suggestions/source.rb'
+ - 'app/models/account_suggestions/suggestion.rb'
+ - 'app/models/admin/account_action.rb'
+ - 'app/models/admin/action_log.rb'
+ - 'app/models/admin/action_log_filter.rb'
+ - 'app/models/admin/appeal_filter.rb'
+ - 'app/models/admin/import.rb'
+ - 'app/models/admin/status_batch_action.rb'
+ - 'app/models/admin/status_filter.rb'
+ - 'app/models/form/account_batch.rb'
+ - 'app/models/form/admin_settings.rb'
+ - 'app/models/form/challenge.rb'
+ - 'app/models/form/custom_emoji_batch.rb'
+ - 'app/models/form/delete_confirmation.rb'
+ - 'app/models/form/domain_block_batch.rb'
+ - 'app/models/form/email_domain_block_batch.rb'
+ - 'app/models/form/ip_block_batch.rb'
+ - 'app/models/form/redirect.rb'
+ - 'app/models/form/status_filter_batch_action.rb'
+ - 'app/models/form/two_factor_confirmation.rb'
+ - 'app/models/trends/base.rb'
+ - 'app/models/trends/history.rb'
+ - 'app/models/trends/links.rb'
+ - 'app/models/trends/preview_card_batch.rb'
+ - 'app/models/trends/preview_card_filter.rb'
+ - 'app/models/trends/preview_card_provider_batch.rb'
+ - 'app/models/trends/preview_card_provider_filter.rb'
+ - 'app/models/trends/query.rb'
+ - 'app/models/trends/status_batch.rb'
+ - 'app/models/trends/status_filter.rb'
+ - 'app/models/trends/statuses.rb'
+ - 'app/models/trends/tag_batch.rb'
+ - 'app/models/trends/tag_filter.rb'
+ - 'app/models/trends/tags.rb'
+ - 'app/models/web/push_subscription.rb'
+ - 'app/models/web/setting.rb'
+ - 'app/policies/admin/status_policy.rb'
+ - 'app/presenters/activitypub/activity_presenter.rb'
+ - 'app/presenters/activitypub/collection_presenter.rb'
+ - 'app/presenters/webhooks/event_presenter.rb'
+ - 'app/serializers/activitypub/accept_follow_serializer.rb'
+ - 'app/serializers/activitypub/activity_serializer.rb'
+ - 'app/serializers/activitypub/actor_serializer.rb'
+ - 'app/serializers/activitypub/add_serializer.rb'
+ - 'app/serializers/activitypub/block_serializer.rb'
+ - 'app/serializers/activitypub/collection_serializer.rb'
+ - 'app/serializers/activitypub/delete_actor_serializer.rb'
+ - 'app/serializers/activitypub/delete_serializer.rb'
+ - 'app/serializers/activitypub/device_serializer.rb'
+ - 'app/serializers/activitypub/emoji_serializer.rb'
+ - 'app/serializers/activitypub/encrypted_message_serializer.rb'
+ - 'app/serializers/activitypub/flag_serializer.rb'
+ - 'app/serializers/activitypub/follow_serializer.rb'
+ - 'app/serializers/activitypub/hashtag_serializer.rb'
+ - 'app/serializers/activitypub/image_serializer.rb'
+ - 'app/serializers/activitypub/like_serializer.rb'
+ - 'app/serializers/activitypub/move_serializer.rb'
+ - 'app/serializers/activitypub/note_serializer.rb'
+ - 'app/serializers/activitypub/one_time_key_serializer.rb'
+ - 'app/serializers/activitypub/outbox_serializer.rb'
+ - 'app/serializers/activitypub/public_key_serializer.rb'
+ - 'app/serializers/activitypub/reject_follow_serializer.rb'
+ - 'app/serializers/activitypub/remove_serializer.rb'
+ - 'app/serializers/activitypub/undo_announce_serializer.rb'
+ - 'app/serializers/activitypub/undo_block_serializer.rb'
+ - 'app/serializers/activitypub/undo_follow_serializer.rb'
+ - 'app/serializers/activitypub/undo_like_serializer.rb'
+ - 'app/serializers/activitypub/update_poll_serializer.rb'
+ - 'app/serializers/activitypub/update_serializer.rb'
+ - 'app/serializers/activitypub/vote_serializer.rb'
+ - 'app/serializers/nodeinfo/discovery_serializer.rb'
+ - 'app/serializers/nodeinfo/serializer.rb'
+ - 'app/serializers/rest/account_serializer.rb'
+ - 'app/serializers/rest/admin/account_serializer.rb'
+ - 'app/serializers/rest/admin/canonical_email_block_serializer.rb'
+ - 'app/serializers/rest/admin/cohort_serializer.rb'
+ - 'app/serializers/rest/admin/dimension_serializer.rb'
+ - 'app/serializers/rest/admin/domain_allow_serializer.rb'
+ - 'app/serializers/rest/admin/domain_block_serializer.rb'
+ - 'app/serializers/rest/admin/email_domain_block_serializer.rb'
+ - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb'
+ - 'app/serializers/rest/admin/ip_block_serializer.rb'
+ - 'app/serializers/rest/admin/ip_serializer.rb'
+ - 'app/serializers/rest/admin/measure_serializer.rb'
+ - 'app/serializers/rest/admin/report_serializer.rb'
+ - 'app/serializers/rest/admin/tag_serializer.rb'
+ - 'app/serializers/rest/admin/webhook_event_serializer.rb'
+ - 'app/serializers/rest/announcement_serializer.rb'
+ - 'app/serializers/rest/application_serializer.rb'
+ - 'app/serializers/rest/context_serializer.rb'
+ - 'app/serializers/rest/conversation_serializer.rb'
+ - 'app/serializers/rest/credential_account_serializer.rb'
+ - 'app/serializers/rest/custom_emoji_serializer.rb'
+ - 'app/serializers/rest/domain_block_serializer.rb'
+ - 'app/serializers/rest/encrypted_message_serializer.rb'
+ - 'app/serializers/rest/extended_description_serializer.rb'
+ - 'app/serializers/rest/familiar_followers_serializer.rb'
+ - 'app/serializers/rest/featured_tag_serializer.rb'
+ - 'app/serializers/rest/filter_keyword_serializer.rb'
+ - 'app/serializers/rest/filter_result_serializer.rb'
+ - 'app/serializers/rest/filter_serializer.rb'
+ - 'app/serializers/rest/filter_status_serializer.rb'
+ - 'app/serializers/rest/instance_serializer.rb'
+ - 'app/serializers/rest/keys/claim_result_serializer.rb'
+ - 'app/serializers/rest/keys/device_serializer.rb'
+ - 'app/serializers/rest/keys/query_result_serializer.rb'
+ - 'app/serializers/rest/list_serializer.rb'
+ - 'app/serializers/rest/marker_serializer.rb'
+ - 'app/serializers/rest/media_attachment_serializer.rb'
+ - 'app/serializers/rest/muted_account_serializer.rb'
+ - 'app/serializers/rest/notification_serializer.rb'
+ - 'app/serializers/rest/poll_serializer.rb'
+ - 'app/serializers/rest/preferences_serializer.rb'
+ - 'app/serializers/rest/preview_card_serializer.rb'
+ - 'app/serializers/rest/privacy_policy_serializer.rb'
+ - 'app/serializers/rest/reaction_serializer.rb'
+ - 'app/serializers/rest/relationship_serializer.rb'
+ - 'app/serializers/rest/report_serializer.rb'
+ - 'app/serializers/rest/role_serializer.rb'
+ - 'app/serializers/rest/rule_serializer.rb'
+ - 'app/serializers/rest/scheduled_status_serializer.rb'
+ - 'app/serializers/rest/search_serializer.rb'
+ - 'app/serializers/rest/status_edit_serializer.rb'
+ - 'app/serializers/rest/status_serializer.rb'
+ - 'app/serializers/rest/status_source_serializer.rb'
+ - 'app/serializers/rest/suggestion_serializer.rb'
+ - 'app/serializers/rest/tag_serializer.rb'
+ - 'app/serializers/rest/translation_serializer.rb'
+ - 'app/serializers/rest/trends/link_serializer.rb'
+ - 'app/serializers/rest/v1/filter_serializer.rb'
+ - 'app/serializers/rest/v1/instance_serializer.rb'
+ - 'app/serializers/rest/web_push_subscription_serializer.rb'
+ - 'app/serializers/web/notification_serializer.rb'
+ - 'app/services/activitypub/fetch_featured_collection_service.rb'
+ - 'app/services/activitypub/fetch_featured_tags_collection_service.rb'
+ - 'app/services/activitypub/fetch_remote_account_service.rb'
+ - 'app/services/activitypub/fetch_remote_actor_service.rb'
+ - 'app/services/activitypub/fetch_remote_key_service.rb'
+ - 'app/services/activitypub/fetch_remote_poll_service.rb'
+ - 'app/services/activitypub/fetch_remote_status_service.rb'
+ - 'app/services/activitypub/fetch_replies_service.rb'
+ - 'app/services/activitypub/prepare_followers_synchronization_service.rb'
+ - 'app/services/activitypub/process_account_service.rb'
+ - 'app/services/activitypub/process_collection_service.rb'
+ - 'app/services/activitypub/process_status_update_service.rb'
+ - 'app/services/activitypub/synchronize_followers_service.rb'
+ - 'app/services/keys/claim_service.rb'
+ - 'app/services/keys/query_service.rb'
+ - 'app/workers/activitypub/account_raw_distribution_worker.rb'
+ - 'app/workers/activitypub/delivery_worker.rb'
+ - 'app/workers/activitypub/distribute_poll_update_worker.rb'
+ - 'app/workers/activitypub/distribution_worker.rb'
+ - 'app/workers/activitypub/fetch_replies_worker.rb'
+ - 'app/workers/activitypub/followers_synchronization_worker.rb'
+ - 'app/workers/activitypub/low_priority_delivery_worker.rb'
+ - 'app/workers/activitypub/migrated_follow_delivery_worker.rb'
+ - 'app/workers/activitypub/move_distribution_worker.rb'
+ - 'app/workers/activitypub/post_upgrade_worker.rb'
+ - 'app/workers/activitypub/processing_worker.rb'
+ - 'app/workers/activitypub/raw_distribution_worker.rb'
+ - 'app/workers/activitypub/status_update_distribution_worker.rb'
+ - 'app/workers/activitypub/synchronize_featured_collection_worker.rb'
+ - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb'
+ - 'app/workers/activitypub/update_distribution_worker.rb'
+ - 'app/workers/admin/account_deletion_worker.rb'
+ - 'app/workers/admin/domain_purge_worker.rb'
+ - 'app/workers/admin/suspension_worker.rb'
+ - 'app/workers/admin/unsuspension_worker.rb'
+ - 'app/workers/import/relationship_worker.rb'
+ - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/follow_recommendations_scheduler.rb'
+ - 'app/workers/scheduler/indexing_scheduler.rb'
+ - 'app/workers/scheduler/instance_refresh_scheduler.rb'
+ - 'app/workers/scheduler/ip_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/pghero_scheduler.rb'
+ - 'app/workers/scheduler/scheduled_statuses_scheduler.rb'
+ - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/trends/refresh_scheduler.rb'
+ - 'app/workers/scheduler/trends/review_notifications_scheduler.rb'
+ - 'app/workers/scheduler/user_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/vacuum_scheduler.rb'
+ - 'app/workers/web/push_notification_worker.rb'
+ - 'app/workers/webhooks/delivery_worker.rb'
+ - 'lib/mastodon/rack_middleware.rb'
+ - 'lib/mastodon/sidekiq_middleware.rb'
+ - 'lib/mastodon/snowflake.rb'
+ - 'lib/webpacker/helper_extensions.rb'
+ - 'lib/webpacker/manifest_extensions.rb'
-# Offense count: 2
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedMethods, AllowedPatterns.
# AllowedMethods: ==, equal?, eql?
@@ -1882,24 +2182,1352 @@ Style/ClassEqualityComparison:
- 'app/helpers/jsonld_helper.rb'
- 'app/serializers/activitypub/outbox_serializer.rb'
-# Offense count: 7
Style/CombinableLoops:
Exclude:
- 'app/models/form/custom_emoji_batch.rb'
- 'app/models/form/ip_block_batch.rb'
-# Offense count: 5
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/ConcatArrayLiterals:
Exclude:
- 'app/lib/feed_manager.rb'
-# Offense count: 1433
# Configuration parameters: AllowedConstants.
Style/Documentation:
- Enabled: false
+ Exclude:
+ - 'app/chewy/accounts_index.rb'
+ - 'app/chewy/statuses_index.rb'
+ - 'app/chewy/tags_index.rb'
+ - 'app/controllers/about_controller.rb'
+ - 'app/controllers/accounts_controller.rb'
+ - 'app/controllers/activitypub/base_controller.rb'
+ - 'app/controllers/activitypub/claims_controller.rb'
+ - 'app/controllers/activitypub/collections_controller.rb'
+ - 'app/controllers/activitypub/followers_synchronizations_controller.rb'
+ - 'app/controllers/activitypub/inboxes_controller.rb'
+ - 'app/controllers/activitypub/outboxes_controller.rb'
+ - 'app/controllers/activitypub/replies_controller.rb'
+ - 'app/controllers/admin/account_actions_controller.rb'
+ - 'app/controllers/admin/account_moderation_notes_controller.rb'
+ - 'app/controllers/admin/accounts_controller.rb'
+ - 'app/controllers/admin/action_logs_controller.rb'
+ - 'app/controllers/admin/announcements_controller.rb'
+ - 'app/controllers/admin/base_controller.rb'
+ - 'app/controllers/admin/change_emails_controller.rb'
+ - 'app/controllers/admin/confirmations_controller.rb'
+ - 'app/controllers/admin/custom_emojis_controller.rb'
+ - 'app/controllers/admin/dashboard_controller.rb'
+ - 'app/controllers/admin/disputes/appeals_controller.rb'
+ - 'app/controllers/admin/domain_allows_controller.rb'
+ - 'app/controllers/admin/domain_blocks_controller.rb'
+ - 'app/controllers/admin/email_domain_blocks_controller.rb'
+ - 'app/controllers/admin/export_domain_allows_controller.rb'
+ - 'app/controllers/admin/export_domain_blocks_controller.rb'
+ - 'app/controllers/admin/follow_recommendations_controller.rb'
+ - 'app/controllers/admin/instances_controller.rb'
+ - 'app/controllers/admin/invites_controller.rb'
+ - 'app/controllers/admin/ip_blocks_controller.rb'
+ - 'app/controllers/admin/relationships_controller.rb'
+ - 'app/controllers/admin/relays_controller.rb'
+ - 'app/controllers/admin/report_notes_controller.rb'
+ - 'app/controllers/admin/reports/actions_controller.rb'
+ - 'app/controllers/admin/reports_controller.rb'
+ - 'app/controllers/admin/resets_controller.rb'
+ - 'app/controllers/admin/roles_controller.rb'
+ - 'app/controllers/admin/rules_controller.rb'
+ - 'app/controllers/admin/settings/about_controller.rb'
+ - 'app/controllers/admin/settings/appearance_controller.rb'
+ - 'app/controllers/admin/settings/branding_controller.rb'
+ - 'app/controllers/admin/settings/content_retention_controller.rb'
+ - 'app/controllers/admin/settings/discovery_controller.rb'
+ - 'app/controllers/admin/settings/registrations_controller.rb'
+ - 'app/controllers/admin/settings_controller.rb'
+ - 'app/controllers/admin/site_uploads_controller.rb'
+ - 'app/controllers/admin/statuses_controller.rb'
+ - 'app/controllers/admin/tags_controller.rb'
+ - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb'
+ - 'app/controllers/admin/trends/links_controller.rb'
+ - 'app/controllers/admin/trends/statuses_controller.rb'
+ - 'app/controllers/admin/trends/tags_controller.rb'
+ - 'app/controllers/admin/users/roles_controller.rb'
+ - 'app/controllers/admin/users/two_factor_authentications_controller.rb'
+ - 'app/controllers/admin/warning_presets_controller.rb'
+ - 'app/controllers/admin/webhooks/secrets_controller.rb'
+ - 'app/controllers/admin/webhooks_controller.rb'
+ - 'app/controllers/api/base_controller.rb'
+ - 'app/controllers/api/oembed_controller.rb'
+ - 'app/controllers/api/v1/accounts/credentials_controller.rb'
+ - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb'
+ - 'app/controllers/api/v1/accounts/featured_tags_controller.rb'
+ - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
+ - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
+ - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb'
+ - 'app/controllers/api/v1/accounts/lists_controller.rb'
+ - 'app/controllers/api/v1/accounts/lookup_controller.rb'
+ - 'app/controllers/api/v1/accounts/notes_controller.rb'
+ - 'app/controllers/api/v1/accounts/pins_controller.rb'
+ - 'app/controllers/api/v1/accounts/relationships_controller.rb'
+ - 'app/controllers/api/v1/accounts/search_controller.rb'
+ - 'app/controllers/api/v1/accounts/statuses_controller.rb'
+ - 'app/controllers/api/v1/accounts_controller.rb'
+ - 'app/controllers/api/v1/admin/account_actions_controller.rb'
+ - 'app/controllers/api/v1/admin/accounts_controller.rb'
+ - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/dimensions_controller.rb'
+ - 'app/controllers/api/v1/admin/domain_allows_controller.rb'
+ - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/ip_blocks_controller.rb'
+ - 'app/controllers/api/v1/admin/measures_controller.rb'
+ - 'app/controllers/api/v1/admin/reports_controller.rb'
+ - 'app/controllers/api/v1/admin/retention_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/links_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/statuses_controller.rb'
+ - 'app/controllers/api/v1/admin/trends/tags_controller.rb'
+ - 'app/controllers/api/v1/announcements/reactions_controller.rb'
+ - 'app/controllers/api/v1/announcements_controller.rb'
+ - 'app/controllers/api/v1/apps/credentials_controller.rb'
+ - 'app/controllers/api/v1/apps_controller.rb'
+ - 'app/controllers/api/v1/blocks_controller.rb'
+ - 'app/controllers/api/v1/bookmarks_controller.rb'
+ - 'app/controllers/api/v1/conversations_controller.rb'
+ - 'app/controllers/api/v1/crypto/deliveries_controller.rb'
+ - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/claims_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/counts_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/queries_controller.rb'
+ - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb'
+ - 'app/controllers/api/v1/custom_emojis_controller.rb'
+ - 'app/controllers/api/v1/directories_controller.rb'
+ - 'app/controllers/api/v1/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/emails/confirmations_controller.rb'
+ - 'app/controllers/api/v1/endorsements_controller.rb'
+ - 'app/controllers/api/v1/favourites_controller.rb'
+ - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb'
+ - 'app/controllers/api/v1/featured_tags_controller.rb'
+ - 'app/controllers/api/v1/filters_controller.rb'
+ - 'app/controllers/api/v1/follow_requests_controller.rb'
+ - 'app/controllers/api/v1/followed_tags_controller.rb'
+ - 'app/controllers/api/v1/instances/activity_controller.rb'
+ - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
+ - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb'
+ - 'app/controllers/api/v1/instances/peers_controller.rb'
+ - 'app/controllers/api/v1/instances/privacy_policies_controller.rb'
+ - 'app/controllers/api/v1/instances/rules_controller.rb'
+ - 'app/controllers/api/v1/instances_controller.rb'
+ - 'app/controllers/api/v1/lists/accounts_controller.rb'
+ - 'app/controllers/api/v1/lists_controller.rb'
+ - 'app/controllers/api/v1/markers_controller.rb'
+ - 'app/controllers/api/v1/media_controller.rb'
+ - 'app/controllers/api/v1/mutes_controller.rb'
+ - 'app/controllers/api/v1/notifications_controller.rb'
+ - 'app/controllers/api/v1/polls/votes_controller.rb'
+ - 'app/controllers/api/v1/polls_controller.rb'
+ - 'app/controllers/api/v1/preferences_controller.rb'
+ - 'app/controllers/api/v1/push/subscriptions_controller.rb'
+ - 'app/controllers/api/v1/reports_controller.rb'
+ - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
+ - 'app/controllers/api/v1/statuses/bookmarks_controller.rb'
+ - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
+ - 'app/controllers/api/v1/statuses/favourites_controller.rb'
+ - 'app/controllers/api/v1/statuses/histories_controller.rb'
+ - 'app/controllers/api/v1/statuses/mutes_controller.rb'
+ - 'app/controllers/api/v1/statuses/pins_controller.rb'
+ - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
+ - 'app/controllers/api/v1/statuses/reblogs_controller.rb'
+ - 'app/controllers/api/v1/statuses/sources_controller.rb'
+ - 'app/controllers/api/v1/statuses/translations_controller.rb'
+ - 'app/controllers/api/v1/statuses_controller.rb'
+ - 'app/controllers/api/v1/streaming_controller.rb'
+ - 'app/controllers/api/v1/suggestions_controller.rb'
+ - 'app/controllers/api/v1/tags_controller.rb'
+ - 'app/controllers/api/v1/timelines/home_controller.rb'
+ - 'app/controllers/api/v1/timelines/list_controller.rb'
+ - 'app/controllers/api/v1/timelines/public_controller.rb'
+ - 'app/controllers/api/v1/timelines/tag_controller.rb'
+ - 'app/controllers/api/v1/trends/links_controller.rb'
+ - 'app/controllers/api/v1/trends/statuses_controller.rb'
+ - 'app/controllers/api/v1/trends/tags_controller.rb'
+ - 'app/controllers/api/v2/admin/accounts_controller.rb'
+ - 'app/controllers/api/v2/filters/keywords_controller.rb'
+ - 'app/controllers/api/v2/filters/statuses_controller.rb'
+ - 'app/controllers/api/v2/filters_controller.rb'
+ - 'app/controllers/api/v2/instances_controller.rb'
+ - 'app/controllers/api/v2/media_controller.rb'
+ - 'app/controllers/api/v2/search_controller.rb'
+ - 'app/controllers/api/v2/suggestions_controller.rb'
+ - 'app/controllers/api/web/base_controller.rb'
+ - 'app/controllers/api/web/embeds_controller.rb'
+ - 'app/controllers/api/web/push_subscriptions_controller.rb'
+ - 'app/controllers/api/web/settings_controller.rb'
+ - 'app/controllers/application_controller.rb'
+ - 'app/controllers/auth/challenges_controller.rb'
+ - 'app/controllers/auth/confirmations_controller.rb'
+ - 'app/controllers/auth/omniauth_callbacks_controller.rb'
+ - 'app/controllers/auth/passwords_controller.rb'
+ - 'app/controllers/auth/registrations_controller.rb'
+ - 'app/controllers/auth/sessions_controller.rb'
+ - 'app/controllers/auth/setup_controller.rb'
+ - 'app/controllers/authorize_interactions_controller.rb'
+ - 'app/controllers/concerns/access_token_tracking_concern.rb'
+ - 'app/controllers/concerns/account_controller_concern.rb'
+ - 'app/controllers/concerns/account_owned_concern.rb'
+ - 'app/controllers/concerns/accountable_concern.rb'
+ - 'app/controllers/concerns/admin_export_controller_concern.rb'
+ - 'app/controllers/concerns/authorization.rb'
+ - 'app/controllers/concerns/cache_concern.rb'
+ - 'app/controllers/concerns/export_controller_concern.rb'
+ - 'app/controllers/concerns/localized.rb'
+ - 'app/controllers/concerns/rate_limit_headers.rb'
+ - 'app/controllers/concerns/registration_spam_concern.rb'
+ - 'app/controllers/concerns/session_tracking_concern.rb'
+ - 'app/controllers/concerns/signature_authentication.rb'
+ - 'app/controllers/concerns/signature_verification.rb'
+ - 'app/controllers/concerns/two_factor_authentication_concern.rb'
+ - 'app/controllers/concerns/user_tracking_concern.rb'
+ - 'app/controllers/concerns/web_app_controller_concern.rb'
+ - 'app/controllers/custom_css_controller.rb'
+ - 'app/controllers/disputes/appeals_controller.rb'
+ - 'app/controllers/disputes/base_controller.rb'
+ - 'app/controllers/disputes/strikes_controller.rb'
+ - 'app/controllers/emojis_controller.rb'
+ - 'app/controllers/filters/statuses_controller.rb'
+ - 'app/controllers/filters_controller.rb'
+ - 'app/controllers/follower_accounts_controller.rb'
+ - 'app/controllers/following_accounts_controller.rb'
+ - 'app/controllers/health_controller.rb'
+ - 'app/controllers/home_controller.rb'
+ - 'app/controllers/instance_actors_controller.rb'
+ - 'app/controllers/intents_controller.rb'
+ - 'app/controllers/invites_controller.rb'
+ - 'app/controllers/manifests_controller.rb'
+ - 'app/controllers/media_controller.rb'
+ - 'app/controllers/media_proxy_controller.rb'
+ - 'app/controllers/oauth/authorizations_controller.rb'
+ - 'app/controllers/oauth/authorized_applications_controller.rb'
+ - 'app/controllers/oauth/tokens_controller.rb'
+ - 'app/controllers/privacy_controller.rb'
+ - 'app/controllers/relationships_controller.rb'
+ - 'app/controllers/settings/aliases_controller.rb'
+ - 'app/controllers/settings/applications_controller.rb'
+ - 'app/controllers/settings/base_controller.rb'
+ - 'app/controllers/settings/deletes_controller.rb'
+ - 'app/controllers/settings/exports/blocked_accounts_controller.rb'
+ - 'app/controllers/settings/exports/blocked_domains_controller.rb'
+ - 'app/controllers/settings/exports/bookmarks_controller.rb'
+ - 'app/controllers/settings/exports/following_accounts_controller.rb'
+ - 'app/controllers/settings/exports/lists_controller.rb'
+ - 'app/controllers/settings/exports/muted_accounts_controller.rb'
+ - 'app/controllers/settings/exports_controller.rb'
+ - 'app/controllers/settings/featured_tags_controller.rb'
+ - 'app/controllers/settings/imports_controller.rb'
+ - 'app/controllers/settings/login_activities_controller.rb'
+ - 'app/controllers/settings/migration/redirects_controller.rb'
+ - 'app/controllers/settings/migrations_controller.rb'
+ - 'app/controllers/settings/pictures_controller.rb'
+ - 'app/controllers/settings/preferences/appearance_controller.rb'
+ - 'app/controllers/settings/preferences/notifications_controller.rb'
+ - 'app/controllers/settings/preferences/other_controller.rb'
+ - 'app/controllers/settings/preferences_controller.rb'
+ - 'app/controllers/settings/profiles_controller.rb'
+ - 'app/controllers/settings/sessions_controller.rb'
+ - 'app/controllers/settings/two_factor_authentication/confirmations_controller.rb'
+ - 'app/controllers/settings/two_factor_authentication/otp_authentication_controller.rb'
+ - 'app/controllers/settings/two_factor_authentication/recovery_codes_controller.rb'
+ - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
+ - 'app/controllers/settings/two_factor_authentication_methods_controller.rb'
+ - 'app/controllers/shares_controller.rb'
+ - 'app/controllers/statuses_cleanup_controller.rb'
+ - 'app/controllers/statuses_controller.rb'
+ - 'app/controllers/tags_controller.rb'
+ - 'app/controllers/well_known/host_meta_controller.rb'
+ - 'app/controllers/well_known/nodeinfo_controller.rb'
+ - 'app/controllers/well_known/webfinger_controller.rb'
+ - 'app/helpers/accounts_helper.rb'
+ - 'app/helpers/admin/account_moderation_notes_helper.rb'
+ - 'app/helpers/admin/action_logs_helper.rb'
+ - 'app/helpers/admin/dashboard_helper.rb'
+ - 'app/helpers/admin/filter_helper.rb'
+ - 'app/helpers/admin/settings_helper.rb'
+ - 'app/helpers/admin/trends/statuses_helper.rb'
+ - 'app/helpers/application_helper.rb'
+ - 'app/helpers/branding_helper.rb'
+ - 'app/helpers/context_helper.rb'
+ - 'app/helpers/domain_control_helper.rb'
+ - 'app/helpers/email_helper.rb'
+ - 'app/helpers/flashes_helper.rb'
+ - 'app/helpers/formatting_helper.rb'
+ - 'app/helpers/home_helper.rb'
+ - 'app/helpers/instance_helper.rb'
+ - 'app/helpers/jsonld_helper.rb'
+ - 'app/helpers/languages_helper.rb'
+ - 'app/helpers/mascot_helper.rb'
+ - 'app/helpers/routing_helper.rb'
+ - 'app/helpers/settings_helper.rb'
+ - 'app/helpers/statuses_helper.rb'
+ - 'app/helpers/webfinger_helper.rb'
+ - 'app/lib/access_token_extension.rb'
+ - 'app/lib/account_reach_finder.rb'
+ - 'app/lib/activity_tracker.rb'
+ - 'app/lib/activitypub/activity.rb'
+ - 'app/lib/activitypub/activity/accept.rb'
+ - 'app/lib/activitypub/activity/add.rb'
+ - 'app/lib/activitypub/activity/announce.rb'
+ - 'app/lib/activitypub/activity/block.rb'
+ - 'app/lib/activitypub/activity/create.rb'
+ - 'app/lib/activitypub/activity/delete.rb'
+ - 'app/lib/activitypub/activity/flag.rb'
+ - 'app/lib/activitypub/activity/follow.rb'
+ - 'app/lib/activitypub/activity/like.rb'
+ - 'app/lib/activitypub/activity/move.rb'
+ - 'app/lib/activitypub/activity/reject.rb'
+ - 'app/lib/activitypub/activity/remove.rb'
+ - 'app/lib/activitypub/activity/undo.rb'
+ - 'app/lib/activitypub/activity/update.rb'
+ - 'app/lib/activitypub/adapter.rb'
+ - 'app/lib/activitypub/case_transform.rb'
+ - 'app/lib/activitypub/dereferencer.rb'
+ - 'app/lib/activitypub/forwarder.rb'
+ - 'app/lib/activitypub/linked_data_signature.rb'
+ - 'app/lib/activitypub/parser/custom_emoji_parser.rb'
+ - 'app/lib/activitypub/parser/media_attachment_parser.rb'
+ - 'app/lib/activitypub/parser/poll_parser.rb'
+ - 'app/lib/activitypub/parser/status_parser.rb'
+ - 'app/lib/activitypub/serializer.rb'
+ - 'app/lib/activitypub/tag_manager.rb'
+ - 'app/lib/admin/metrics/dimension.rb'
+ - 'app/lib/admin/metrics/dimension/base_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/servers_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/sources_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb'
+ - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb'
+ - 'app/lib/admin/metrics/measure.rb'
+ - 'app/lib/admin/metrics/measure/active_users_measure.rb'
+ - 'app/lib/admin/metrics/measure/base_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_followers_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_follows_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb'
+ - 'app/lib/admin/metrics/measure/interactions_measure.rb'
+ - 'app/lib/admin/metrics/measure/new_users_measure.rb'
+ - 'app/lib/admin/metrics/measure/opened_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_servers_measure.rb'
+ - 'app/lib/admin/metrics/measure/tag_uses_measure.rb'
+ - 'app/lib/admin/metrics/retention.rb'
+ - 'app/lib/admin/system_check.rb'
+ - 'app/lib/admin/system_check/base_check.rb'
+ - 'app/lib/admin/system_check/database_schema_check.rb'
+ - 'app/lib/admin/system_check/elasticsearch_check.rb'
+ - 'app/lib/admin/system_check/message.rb'
+ - 'app/lib/admin/system_check/rules_check.rb'
+ - 'app/lib/admin/system_check/sidekiq_process_check.rb'
+ - 'app/lib/application_extension.rb'
+ - 'app/lib/ascii_folding.rb'
+ - 'app/lib/cache_buster.rb'
+ - 'app/lib/connection_pool/shared_connection_pool.rb'
+ - 'app/lib/connection_pool/shared_timed_stack.rb'
+ - 'app/lib/delivery_failure_tracker.rb'
+ - 'app/lib/emoji_formatter.rb'
+ - 'app/lib/entity_cache.rb'
+ - 'app/lib/extractor.rb'
+ - 'app/lib/fast_geometry_parser.rb'
+ - 'app/lib/fast_ip_map.rb'
+ - 'app/lib/feed_manager.rb'
+ - 'app/lib/hash_object.rb'
+ - 'app/lib/hashtag_normalizer.rb'
+ - 'app/lib/html_aware_formatter.rb'
+ - 'app/lib/importer/accounts_index_importer.rb'
+ - 'app/lib/importer/base_importer.rb'
+ - 'app/lib/importer/statuses_index_importer.rb'
+ - 'app/lib/importer/tags_index_importer.rb'
+ - 'app/lib/inline_renderer.rb'
+ - 'app/lib/link_details_extractor.rb'
+ - 'app/lib/nodeinfo/adapter.rb'
+ - 'app/lib/ostatus/tag_manager.rb'
+ - 'app/lib/permalink_redirector.rb'
+ - 'app/lib/plain_text_formatter.rb'
+ - 'app/lib/potential_friendship_tracker.rb'
+ - 'app/lib/rate_limiter.rb'
+ - 'app/lib/redis_configuration.rb'
+ - 'app/lib/request.rb'
+ - 'app/lib/request_pool.rb'
+ - 'app/lib/response_with_limit.rb'
+ - 'app/lib/rss/builder.rb'
+ - 'app/lib/rss/channel.rb'
+ - 'app/lib/rss/element.rb'
+ - 'app/lib/rss/item.rb'
+ - 'app/lib/rss/media_content.rb'
+ - 'app/lib/scope_parser.rb'
+ - 'app/lib/scope_transformer.rb'
+ - 'app/lib/search_query_parser.rb'
+ - 'app/lib/search_query_transformer.rb'
+ - 'app/lib/settings/extend.rb'
+ - 'app/lib/settings/scoped_settings.rb'
+ - 'app/lib/status_cache_hydrator.rb'
+ - 'app/lib/status_filter.rb'
+ - 'app/lib/status_finder.rb'
+ - 'app/lib/status_reach_finder.rb'
+ - 'app/lib/suspicious_sign_in_detector.rb'
+ - 'app/lib/tag_manager.rb'
+ - 'app/lib/text_formatter.rb'
+ - 'app/lib/themes.rb'
+ - 'app/lib/translation_service.rb'
+ - 'app/lib/translation_service/deepl.rb'
+ - 'app/lib/translation_service/libre_translate.rb'
+ - 'app/lib/translation_service/translation.rb'
+ - 'app/lib/user_settings_decorator.rb'
+ - 'app/lib/vacuum.rb'
+ - 'app/lib/vacuum/access_tokens_vacuum.rb'
+ - 'app/lib/vacuum/backups_vacuum.rb'
+ - 'app/lib/vacuum/feeds_vacuum.rb'
+ - 'app/lib/vacuum/media_attachments_vacuum.rb'
+ - 'app/lib/vacuum/preview_cards_vacuum.rb'
+ - 'app/lib/vacuum/statuses_vacuum.rb'
+ - 'app/lib/vacuum/system_keys_vacuum.rb'
+ - 'app/lib/validation_error_formatter.rb'
+ - 'app/lib/video_metadata_extractor.rb'
+ - 'app/lib/webfinger.rb'
+ - 'app/lib/webfinger_resource.rb'
+ - 'app/mailers/admin_mailer.rb'
+ - 'app/mailers/application_mailer.rb'
+ - 'app/mailers/notification_mailer.rb'
+ - 'app/mailers/user_mailer.rb'
+ - 'app/models/account.rb'
+ - 'app/models/account/field.rb'
+ - 'app/models/account_alias.rb'
+ - 'app/models/account_conversation.rb'
+ - 'app/models/account_domain_block.rb'
+ - 'app/models/account_filter.rb'
+ - 'app/models/account_migration.rb'
+ - 'app/models/account_moderation_note.rb'
+ - 'app/models/account_pin.rb'
+ - 'app/models/account_stat.rb'
+ - 'app/models/account_statuses_filter.rb'
+ - 'app/models/account_suggestions.rb'
+ - 'app/models/account_suggestions/global_source.rb'
+ - 'app/models/account_suggestions/past_interactions_source.rb'
+ - 'app/models/account_suggestions/setting_source.rb'
+ - 'app/models/account_suggestions/source.rb'
+ - 'app/models/account_suggestions/suggestion.rb'
+ - 'app/models/account_summary.rb'
+ - 'app/models/account_warning.rb'
+ - 'app/models/account_warning_preset.rb'
+ - 'app/models/admin.rb'
+ - 'app/models/admin/account_action.rb'
+ - 'app/models/admin/action_log.rb'
+ - 'app/models/admin/action_log_filter.rb'
+ - 'app/models/admin/appeal_filter.rb'
+ - 'app/models/admin/status_batch_action.rb'
+ - 'app/models/admin/status_filter.rb'
+ - 'app/models/announcement.rb'
+ - 'app/models/announcement_filter.rb'
+ - 'app/models/announcement_mute.rb'
+ - 'app/models/announcement_reaction.rb'
+ - 'app/models/application_record.rb'
+ - 'app/models/backup.rb'
+ - 'app/models/block.rb'
+ - 'app/models/bookmark.rb'
+ - 'app/models/canonical_email_block.rb'
+ - 'app/models/concerns/account_associations.rb'
+ - 'app/models/concerns/account_avatar.rb'
+ - 'app/models/concerns/account_counters.rb'
+ - 'app/models/concerns/account_finder_concern.rb'
+ - 'app/models/concerns/account_header.rb'
+ - 'app/models/concerns/account_interactions.rb'
+ - 'app/models/concerns/account_merging.rb'
+ - 'app/models/concerns/attachmentable.rb'
+ - 'app/models/concerns/cacheable.rb'
+ - 'app/models/concerns/domain_materializable.rb'
+ - 'app/models/concerns/domain_normalizable.rb'
+ - 'app/models/concerns/expireable.rb'
+ - 'app/models/concerns/follow_limitable.rb'
+ - 'app/models/concerns/ldap_authenticable.rb'
+ - 'app/models/concerns/lockable.rb'
+ - 'app/models/concerns/omniauthable.rb'
+ - 'app/models/concerns/paginable.rb'
+ - 'app/models/concerns/pam_authenticable.rb'
+ - 'app/models/concerns/rate_limitable.rb'
+ - 'app/models/concerns/redisable.rb'
+ - 'app/models/concerns/relationship_cacheable.rb'
+ - 'app/models/concerns/remotable.rb'
+ - 'app/models/concerns/status_snapshot_concern.rb'
+ - 'app/models/concerns/status_threading_concern.rb'
+ - 'app/models/content_retention_policy.rb'
+ - 'app/models/context.rb'
+ - 'app/models/conversation.rb'
+ - 'app/models/conversation_mute.rb'
+ - 'app/models/custom_emoji.rb'
+ - 'app/models/custom_emoji_category.rb'
+ - 'app/models/custom_emoji_filter.rb'
+ - 'app/models/custom_filter.rb'
+ - 'app/models/custom_filter_keyword.rb'
+ - 'app/models/custom_filter_status.rb'
+ - 'app/models/device.rb'
+ - 'app/models/domain_allow.rb'
+ - 'app/models/domain_block.rb'
+ - 'app/models/email_domain_block.rb'
+ - 'app/models/encrypted_message.rb'
+ - 'app/models/export.rb'
+ - 'app/models/extended_description.rb'
+ - 'app/models/favourite.rb'
+ - 'app/models/featured_tag.rb'
+ - 'app/models/feed.rb'
+ - 'app/models/follow.rb'
+ - 'app/models/follow_recommendation.rb'
+ - 'app/models/follow_recommendation_filter.rb'
+ - 'app/models/follow_recommendation_suppression.rb'
+ - 'app/models/follow_request.rb'
+ - 'app/models/form/account_batch.rb'
+ - 'app/models/form/admin_settings.rb'
+ - 'app/models/form/challenge.rb'
+ - 'app/models/form/custom_emoji_batch.rb'
+ - 'app/models/form/delete_confirmation.rb'
+ - 'app/models/form/domain_block_batch.rb'
+ - 'app/models/form/email_domain_block_batch.rb'
+ - 'app/models/form/ip_block_batch.rb'
+ - 'app/models/form/redirect.rb'
+ - 'app/models/form/status_filter_batch_action.rb'
+ - 'app/models/form/two_factor_confirmation.rb'
+ - 'app/models/home_feed.rb'
+ - 'app/models/identity.rb'
+ - 'app/models/import.rb'
+ - 'app/models/instance.rb'
+ - 'app/models/instance_filter.rb'
+ - 'app/models/invite.rb'
+ - 'app/models/invite_filter.rb'
+ - 'app/models/ip_block.rb'
+ - 'app/models/list.rb'
+ - 'app/models/list_account.rb'
+ - 'app/models/list_feed.rb'
+ - 'app/models/login_activity.rb'
+ - 'app/models/marker.rb'
+ - 'app/models/media_attachment.rb'
+ - 'app/models/mention.rb'
+ - 'app/models/message_franking.rb'
+ - 'app/models/mute.rb'
+ - 'app/models/notification.rb'
+ - 'app/models/one_time_key.rb'
+ - 'app/models/poll.rb'
+ - 'app/models/poll_vote.rb'
+ - 'app/models/preview_card.rb'
+ - 'app/models/preview_card_provider.rb'
+ - 'app/models/privacy_policy.rb'
+ - 'app/models/public_feed.rb'
+ - 'app/models/relationship_filter.rb'
+ - 'app/models/relay.rb'
+ - 'app/models/remote_follow.rb'
+ - 'app/models/report.rb'
+ - 'app/models/report_filter.rb'
+ - 'app/models/report_note.rb'
+ - 'app/models/scheduled_status.rb'
+ - 'app/models/search.rb'
+ - 'app/models/session_activation.rb'
+ - 'app/models/setting.rb'
+ - 'app/models/site_upload.rb'
+ - 'app/models/status.rb'
+ - 'app/models/status_edit.rb'
+ - 'app/models/status_pin.rb'
+ - 'app/models/status_stat.rb'
+ - 'app/models/status_trend.rb'
+ - 'app/models/tag.rb'
+ - 'app/models/tag_feed.rb'
+ - 'app/models/tag_follow.rb'
+ - 'app/models/tombstone.rb'
+ - 'app/models/trends.rb'
+ - 'app/models/trends/base.rb'
+ - 'app/models/trends/history.rb'
+ - 'app/models/trends/links.rb'
+ - 'app/models/trends/preview_card_batch.rb'
+ - 'app/models/trends/preview_card_filter.rb'
+ - 'app/models/trends/preview_card_provider_batch.rb'
+ - 'app/models/trends/preview_card_provider_filter.rb'
+ - 'app/models/trends/query.rb'
+ - 'app/models/trends/status_batch.rb'
+ - 'app/models/trends/status_filter.rb'
+ - 'app/models/trends/statuses.rb'
+ - 'app/models/trends/tag_batch.rb'
+ - 'app/models/trends/tag_filter.rb'
+ - 'app/models/trends/tags.rb'
+ - 'app/models/unavailable_domain.rb'
+ - 'app/models/user.rb'
+ - 'app/models/user_invite_request.rb'
+ - 'app/models/user_ip.rb'
+ - 'app/models/user_role.rb'
+ - 'app/models/web.rb'
+ - 'app/models/web/push_subscription.rb'
+ - 'app/models/web/setting.rb'
+ - 'app/models/webauthn_credential.rb'
+ - 'app/models/webhook.rb'
+ - 'app/policies/account_moderation_note_policy.rb'
+ - 'app/policies/account_policy.rb'
+ - 'app/policies/account_warning_policy.rb'
+ - 'app/policies/account_warning_preset_policy.rb'
+ - 'app/policies/admin/status_policy.rb'
+ - 'app/policies/announcement_policy.rb'
+ - 'app/policies/appeal_policy.rb'
+ - 'app/policies/application_policy.rb'
+ - 'app/policies/audit_log_policy.rb'
+ - 'app/policies/backup_policy.rb'
+ - 'app/policies/canonical_email_block_policy.rb'
+ - 'app/policies/custom_emoji_policy.rb'
+ - 'app/policies/dashboard_policy.rb'
+ - 'app/policies/delivery_policy.rb'
+ - 'app/policies/domain_allow_policy.rb'
+ - 'app/policies/domain_block_policy.rb'
+ - 'app/policies/email_domain_block_policy.rb'
+ - 'app/policies/follow_recommendation_policy.rb'
+ - 'app/policies/instance_policy.rb'
+ - 'app/policies/invite_policy.rb'
+ - 'app/policies/ip_block_policy.rb'
+ - 'app/policies/poll_policy.rb'
+ - 'app/policies/preview_card_policy.rb'
+ - 'app/policies/preview_card_provider_policy.rb'
+ - 'app/policies/relay_policy.rb'
+ - 'app/policies/report_note_policy.rb'
+ - 'app/policies/report_policy.rb'
+ - 'app/policies/rule_policy.rb'
+ - 'app/policies/settings_policy.rb'
+ - 'app/policies/status_policy.rb'
+ - 'app/policies/tag_policy.rb'
+ - 'app/policies/user_policy.rb'
+ - 'app/policies/user_role_policy.rb'
+ - 'app/policies/webhook_policy.rb'
+ - 'app/presenters/account_relationships_presenter.rb'
+ - 'app/presenters/activitypub/activity_presenter.rb'
+ - 'app/presenters/activitypub/collection_presenter.rb'
+ - 'app/presenters/familiar_followers_presenter.rb'
+ - 'app/presenters/filter_result_presenter.rb'
+ - 'app/presenters/initial_state_presenter.rb'
+ - 'app/presenters/instance_presenter.rb'
+ - 'app/presenters/status_relationships_presenter.rb'
+ - 'app/presenters/tag_relationships_presenter.rb'
+ - 'app/presenters/webhooks/event_presenter.rb'
+ - 'app/serializers/activitypub/accept_follow_serializer.rb'
+ - 'app/serializers/activitypub/activity_serializer.rb'
+ - 'app/serializers/activitypub/actor_serializer.rb'
+ - 'app/serializers/activitypub/add_serializer.rb'
+ - 'app/serializers/activitypub/block_serializer.rb'
+ - 'app/serializers/activitypub/collection_serializer.rb'
+ - 'app/serializers/activitypub/delete_actor_serializer.rb'
+ - 'app/serializers/activitypub/delete_serializer.rb'
+ - 'app/serializers/activitypub/device_serializer.rb'
+ - 'app/serializers/activitypub/emoji_serializer.rb'
+ - 'app/serializers/activitypub/encrypted_message_serializer.rb'
+ - 'app/serializers/activitypub/flag_serializer.rb'
+ - 'app/serializers/activitypub/follow_serializer.rb'
+ - 'app/serializers/activitypub/hashtag_serializer.rb'
+ - 'app/serializers/activitypub/image_serializer.rb'
+ - 'app/serializers/activitypub/like_serializer.rb'
+ - 'app/serializers/activitypub/move_serializer.rb'
+ - 'app/serializers/activitypub/note_serializer.rb'
+ - 'app/serializers/activitypub/one_time_key_serializer.rb'
+ - 'app/serializers/activitypub/outbox_serializer.rb'
+ - 'app/serializers/activitypub/public_key_serializer.rb'
+ - 'app/serializers/activitypub/reject_follow_serializer.rb'
+ - 'app/serializers/activitypub/remove_serializer.rb'
+ - 'app/serializers/activitypub/undo_announce_serializer.rb'
+ - 'app/serializers/activitypub/undo_block_serializer.rb'
+ - 'app/serializers/activitypub/undo_follow_serializer.rb'
+ - 'app/serializers/activitypub/undo_like_serializer.rb'
+ - 'app/serializers/activitypub/update_poll_serializer.rb'
+ - 'app/serializers/activitypub/update_serializer.rb'
+ - 'app/serializers/activitypub/vote_serializer.rb'
+ - 'app/serializers/initial_state_serializer.rb'
+ - 'app/serializers/manifest_serializer.rb'
+ - 'app/serializers/nodeinfo/discovery_serializer.rb'
+ - 'app/serializers/nodeinfo/serializer.rb'
+ - 'app/serializers/oembed_serializer.rb'
+ - 'app/serializers/rest/account_serializer.rb'
+ - 'app/serializers/rest/admin/account_serializer.rb'
+ - 'app/serializers/rest/admin/canonical_email_block_serializer.rb'
+ - 'app/serializers/rest/admin/cohort_serializer.rb'
+ - 'app/serializers/rest/admin/dimension_serializer.rb'
+ - 'app/serializers/rest/admin/domain_allow_serializer.rb'
+ - 'app/serializers/rest/admin/domain_block_serializer.rb'
+ - 'app/serializers/rest/admin/email_domain_block_serializer.rb'
+ - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb'
+ - 'app/serializers/rest/admin/ip_block_serializer.rb'
+ - 'app/serializers/rest/admin/ip_serializer.rb'
+ - 'app/serializers/rest/admin/measure_serializer.rb'
+ - 'app/serializers/rest/admin/report_serializer.rb'
+ - 'app/serializers/rest/admin/tag_serializer.rb'
+ - 'app/serializers/rest/admin/webhook_event_serializer.rb'
+ - 'app/serializers/rest/announcement_serializer.rb'
+ - 'app/serializers/rest/application_serializer.rb'
+ - 'app/serializers/rest/context_serializer.rb'
+ - 'app/serializers/rest/conversation_serializer.rb'
+ - 'app/serializers/rest/credential_account_serializer.rb'
+ - 'app/serializers/rest/custom_emoji_serializer.rb'
+ - 'app/serializers/rest/domain_block_serializer.rb'
+ - 'app/serializers/rest/encrypted_message_serializer.rb'
+ - 'app/serializers/rest/extended_description_serializer.rb'
+ - 'app/serializers/rest/familiar_followers_serializer.rb'
+ - 'app/serializers/rest/featured_tag_serializer.rb'
+ - 'app/serializers/rest/filter_keyword_serializer.rb'
+ - 'app/serializers/rest/filter_result_serializer.rb'
+ - 'app/serializers/rest/filter_serializer.rb'
+ - 'app/serializers/rest/filter_status_serializer.rb'
+ - 'app/serializers/rest/instance_serializer.rb'
+ - 'app/serializers/rest/keys/claim_result_serializer.rb'
+ - 'app/serializers/rest/keys/device_serializer.rb'
+ - 'app/serializers/rest/keys/query_result_serializer.rb'
+ - 'app/serializers/rest/list_serializer.rb'
+ - 'app/serializers/rest/marker_serializer.rb'
+ - 'app/serializers/rest/media_attachment_serializer.rb'
+ - 'app/serializers/rest/muted_account_serializer.rb'
+ - 'app/serializers/rest/notification_serializer.rb'
+ - 'app/serializers/rest/poll_serializer.rb'
+ - 'app/serializers/rest/preferences_serializer.rb'
+ - 'app/serializers/rest/preview_card_serializer.rb'
+ - 'app/serializers/rest/privacy_policy_serializer.rb'
+ - 'app/serializers/rest/reaction_serializer.rb'
+ - 'app/serializers/rest/relationship_serializer.rb'
+ - 'app/serializers/rest/report_serializer.rb'
+ - 'app/serializers/rest/role_serializer.rb'
+ - 'app/serializers/rest/rule_serializer.rb'
+ - 'app/serializers/rest/scheduled_status_serializer.rb'
+ - 'app/serializers/rest/search_serializer.rb'
+ - 'app/serializers/rest/status_edit_serializer.rb'
+ - 'app/serializers/rest/status_serializer.rb'
+ - 'app/serializers/rest/status_source_serializer.rb'
+ - 'app/serializers/rest/suggestion_serializer.rb'
+ - 'app/serializers/rest/tag_serializer.rb'
+ - 'app/serializers/rest/translation_serializer.rb'
+ - 'app/serializers/rest/trends/link_serializer.rb'
+ - 'app/serializers/rest/v1/filter_serializer.rb'
+ - 'app/serializers/rest/v1/instance_serializer.rb'
+ - 'app/serializers/rest/web_push_subscription_serializer.rb'
+ - 'app/serializers/web/notification_serializer.rb'
+ - 'app/serializers/webfinger_serializer.rb'
+ - 'app/services/account_search_service.rb'
+ - 'app/services/account_statuses_cleanup_service.rb'
+ - 'app/services/activitypub/fetch_featured_collection_service.rb'
+ - 'app/services/activitypub/fetch_featured_tags_collection_service.rb'
+ - 'app/services/activitypub/fetch_remote_account_service.rb'
+ - 'app/services/activitypub/fetch_remote_actor_service.rb'
+ - 'app/services/activitypub/fetch_remote_key_service.rb'
+ - 'app/services/activitypub/fetch_remote_poll_service.rb'
+ - 'app/services/activitypub/fetch_remote_status_service.rb'
+ - 'app/services/activitypub/fetch_replies_service.rb'
+ - 'app/services/activitypub/prepare_followers_synchronization_service.rb'
+ - 'app/services/activitypub/process_account_service.rb'
+ - 'app/services/activitypub/process_collection_service.rb'
+ - 'app/services/activitypub/process_status_update_service.rb'
+ - 'app/services/activitypub/synchronize_followers_service.rb'
+ - 'app/services/after_block_domain_from_account_service.rb'
+ - 'app/services/after_block_service.rb'
+ - 'app/services/after_unallow_domain_service.rb'
+ - 'app/services/app_sign_up_service.rb'
+ - 'app/services/appeal_service.rb'
+ - 'app/services/approve_appeal_service.rb'
+ - 'app/services/authorize_follow_service.rb'
+ - 'app/services/backup_service.rb'
+ - 'app/services/base_service.rb'
+ - 'app/services/batched_remove_status_service.rb'
+ - 'app/services/block_domain_service.rb'
+ - 'app/services/block_service.rb'
+ - 'app/services/bootstrap_timeline_service.rb'
+ - 'app/services/clear_domain_media_service.rb'
+ - 'app/services/concerns/payloadable.rb'
+ - 'app/services/create_featured_tag_service.rb'
+ - 'app/services/delete_account_service.rb'
+ - 'app/services/deliver_to_device_service.rb'
+ - 'app/services/fan_out_on_write_service.rb'
+ - 'app/services/favourite_service.rb'
+ - 'app/services/fetch_link_card_service.rb'
+ - 'app/services/fetch_oembed_service.rb'
+ - 'app/services/fetch_remote_status_service.rb'
+ - 'app/services/fetch_resource_service.rb'
+ - 'app/services/follow_migration_service.rb'
+ - 'app/services/follow_service.rb'
+ - 'app/services/import_service.rb'
+ - 'app/services/keys/claim_service.rb'
+ - 'app/services/keys/query_service.rb'
+ - 'app/services/move_service.rb'
+ - 'app/services/mute_service.rb'
+ - 'app/services/notify_service.rb'
+ - 'app/services/post_status_service.rb'
+ - 'app/services/precompute_feed_service.rb'
+ - 'app/services/process_hashtags_service.rb'
+ - 'app/services/process_mentions_service.rb'
+ - 'app/services/purge_domain_service.rb'
+ - 'app/services/reblog_service.rb'
+ - 'app/services/reject_follow_service.rb'
+ - 'app/services/remove_domains_from_followers_service.rb'
+ - 'app/services/remove_featured_tag_service.rb'
+ - 'app/services/remove_from_followers_service.rb'
+ - 'app/services/remove_status_service.rb'
+ - 'app/services/report_service.rb'
+ - 'app/services/resolve_account_service.rb'
+ - 'app/services/resolve_url_service.rb'
+ - 'app/services/search_service.rb'
+ - 'app/services/suspend_account_service.rb'
+ - 'app/services/tag_search_service.rb'
+ - 'app/services/translate_status_service.rb'
+ - 'app/services/unallow_domain_service.rb'
+ - 'app/services/unblock_domain_service.rb'
+ - 'app/services/unblock_service.rb'
+ - 'app/services/unfavourite_service.rb'
+ - 'app/services/unfollow_service.rb'
+ - 'app/services/unmute_service.rb'
+ - 'app/services/unsuspend_account_service.rb'
+ - 'app/services/update_account_service.rb'
+ - 'app/services/update_status_service.rb'
+ - 'app/services/verify_link_service.rb'
+ - 'app/services/vote_service.rb'
+ - 'app/services/webhook_service.rb'
+ - 'app/validators/blacklisted_email_validator.rb'
+ - 'app/validators/disallowed_hashtags_validator.rb'
+ - 'app/validators/domain_validator.rb'
+ - 'app/validators/ed25519_key_validator.rb'
+ - 'app/validators/ed25519_signature_validator.rb'
+ - 'app/validators/email_mx_validator.rb'
+ - 'app/validators/existing_username_validator.rb'
+ - 'app/validators/follow_limit_validator.rb'
+ - 'app/validators/import_validator.rb'
+ - 'app/validators/language_validator.rb'
+ - 'app/validators/note_length_validator.rb'
+ - 'app/validators/poll_validator.rb'
+ - 'app/validators/reaction_validator.rb'
+ - 'app/validators/registration_form_time_validator.rb'
+ - 'app/validators/status_length_validator.rb'
+ - 'app/validators/status_pin_validator.rb'
+ - 'app/validators/unique_username_validator.rb'
+ - 'app/validators/unreserved_username_validator.rb'
+ - 'app/validators/url_validator.rb'
+ - 'app/validators/vote_validator.rb'
+ - 'app/workers/account_deletion_worker.rb'
+ - 'app/workers/account_merging_worker.rb'
+ - 'app/workers/activitypub/account_raw_distribution_worker.rb'
+ - 'app/workers/activitypub/delivery_worker.rb'
+ - 'app/workers/activitypub/distribute_poll_update_worker.rb'
+ - 'app/workers/activitypub/distribution_worker.rb'
+ - 'app/workers/activitypub/fetch_replies_worker.rb'
+ - 'app/workers/activitypub/followers_synchronization_worker.rb'
+ - 'app/workers/activitypub/low_priority_delivery_worker.rb'
+ - 'app/workers/activitypub/migrated_follow_delivery_worker.rb'
+ - 'app/workers/activitypub/move_distribution_worker.rb'
+ - 'app/workers/activitypub/post_upgrade_worker.rb'
+ - 'app/workers/activitypub/processing_worker.rb'
+ - 'app/workers/activitypub/raw_distribution_worker.rb'
+ - 'app/workers/activitypub/status_update_distribution_worker.rb'
+ - 'app/workers/activitypub/synchronize_featured_collection_worker.rb'
+ - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb'
+ - 'app/workers/activitypub/update_distribution_worker.rb'
+ - 'app/workers/admin/account_deletion_worker.rb'
+ - 'app/workers/admin/domain_purge_worker.rb'
+ - 'app/workers/admin/suspension_worker.rb'
+ - 'app/workers/admin/unsuspension_worker.rb'
+ - 'app/workers/after_account_domain_block_worker.rb'
+ - 'app/workers/after_unallow_domain_worker.rb'
+ - 'app/workers/authorize_follow_worker.rb'
+ - 'app/workers/backup_worker.rb'
+ - 'app/workers/block_worker.rb'
+ - 'app/workers/bootstrap_timeline_worker.rb'
+ - 'app/workers/cache_buster_worker.rb'
+ - 'app/workers/concerns/exponential_backoff.rb'
+ - 'app/workers/delete_mute_worker.rb'
+ - 'app/workers/distribution_worker.rb'
+ - 'app/workers/domain_block_worker.rb'
+ - 'app/workers/domain_clear_media_worker.rb'
+ - 'app/workers/feed_insert_worker.rb'
+ - 'app/workers/fetch_reply_worker.rb'
+ - 'app/workers/import/relationship_worker.rb'
+ - 'app/workers/import_worker.rb'
+ - 'app/workers/link_crawl_worker.rb'
+ - 'app/workers/local_notification_worker.rb'
+ - 'app/workers/merge_worker.rb'
+ - 'app/workers/move_worker.rb'
+ - 'app/workers/mute_worker.rb'
+ - 'app/workers/poll_expiration_notify_worker.rb'
+ - 'app/workers/post_process_media_worker.rb'
+ - 'app/workers/publish_announcement_reaction_worker.rb'
+ - 'app/workers/publish_scheduled_announcement_worker.rb'
+ - 'app/workers/publish_scheduled_status_worker.rb'
+ - 'app/workers/push_conversation_worker.rb'
+ - 'app/workers/push_encrypted_message_worker.rb'
+ - 'app/workers/push_update_worker.rb'
+ - 'app/workers/redownload_avatar_worker.rb'
+ - 'app/workers/redownload_header_worker.rb'
+ - 'app/workers/redownload_media_worker.rb'
+ - 'app/workers/refollow_worker.rb'
+ - 'app/workers/regeneration_worker.rb'
+ - 'app/workers/remote_account_refresh_worker.rb'
+ - 'app/workers/removal_worker.rb'
+ - 'app/workers/remove_featured_tag_worker.rb'
+ - 'app/workers/resolve_account_worker.rb'
+ - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/follow_recommendations_scheduler.rb'
+ - 'app/workers/scheduler/indexing_scheduler.rb'
+ - 'app/workers/scheduler/instance_refresh_scheduler.rb'
+ - 'app/workers/scheduler/ip_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/pghero_scheduler.rb'
+ - 'app/workers/scheduler/scheduled_statuses_scheduler.rb'
+ - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/trends/refresh_scheduler.rb'
+ - 'app/workers/scheduler/trends/review_notifications_scheduler.rb'
+ - 'app/workers/scheduler/user_cleanup_scheduler.rb'
+ - 'app/workers/scheduler/vacuum_scheduler.rb'
+ - 'app/workers/thread_resolve_worker.rb'
+ - 'app/workers/trigger_webhook_worker.rb'
+ - 'app/workers/unfavourite_worker.rb'
+ - 'app/workers/unfollow_follow_worker.rb'
+ - 'app/workers/unmerge_worker.rb'
+ - 'app/workers/unpublish_announcement_worker.rb'
+ - 'app/workers/verify_account_links_worker.rb'
+ - 'app/workers/web/push_notification_worker.rb'
+ - 'app/workers/webhooks/delivery_worker.rb'
+ - 'db/migrate/20160220174730_create_accounts.rb'
+ - 'db/migrate/20160220211917_create_statuses.rb'
+ - 'db/migrate/20160221003140_create_users.rb'
+ - 'db/migrate/20160221003621_create_follows.rb'
+ - 'db/migrate/20160222122600_create_stream_entries.rb'
+ - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb'
+ - 'db/migrate/20160223162837_add_metadata_to_statuses.rb'
+ - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb'
+ - 'db/migrate/20160223165723_add_url_to_statuses.rb'
+ - 'db/migrate/20160223165855_add_url_to_accounts.rb'
+ - 'db/migrate/20160223171800_create_favourites.rb'
+ - 'db/migrate/20160224223247_create_mentions.rb'
+ - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb'
+ - 'db/migrate/20160305115639_add_devise_to_users.rb'
+ - 'db/migrate/20160306172223_create_doorkeeper_tables.rb'
+ - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb'
+ - 'db/migrate/20160314164231_add_owner_to_application.rb'
+ - 'db/migrate/20160316103650_add_missing_indices.rb'
+ - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb'
+ - 'db/migrate/20160325130944_add_admin_to_users.rb'
+ - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb'
+ - 'db/migrate/20160905150353_create_media_attachments.rb'
+ - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb'
+ - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb'
+ - 'db/migrate/20160926213048_remove_owner_from_application.rb'
+ - 'db/migrate/20161003142332_add_confirmable_to_users.rb'
+ - 'db/migrate/20161003145426_create_blocks.rb'
+ - 'db/migrate/20161006213403_rails_settings_migration.rb'
+ - 'db/migrate/20161009120834_create_domain_blocks.rb'
+ - 'db/migrate/20161027172456_add_silenced_to_accounts.rb'
+ - 'db/migrate/20161104173623_create_tags.rb'
+ - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb'
+ - 'db/migrate/20161116162355_add_locale_to_users.rb'
+ - 'db/migrate/20161119211120_create_notifications.rb'
+ - 'db/migrate/20161122163057_remove_unneeded_indexes.rb'
+ - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb'
+ - 'db/migrate/20161128103007_create_subscriptions.rb'
+ - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb'
+ - 'db/migrate/20161130185319_add_visibility_to_statuses.rb'
+ - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb'
+ - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb'
+ - 'db/migrate/20161205214545_add_suspended_to_accounts.rb'
+ - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb'
+ - 'db/migrate/20161222201034_add_locked_to_accounts.rb'
+ - 'db/migrate/20161222204147_create_follow_requests.rb'
+ - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb'
+ - 'db/migrate/20170109120109_create_web_settings.rb'
+ - 'db/migrate/20170112154826_migrate_settings.rb'
+ - 'db/migrate/20170114194937_add_application_to_statuses.rb'
+ - 'db/migrate/20170114203041_add_website_to_oauth_application.rb'
+ - 'db/migrate/20170119214911_create_preview_cards.rb'
+ - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb'
+ - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb'
+ - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb'
+ - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb'
+ - 'db/migrate/20170205175257_remove_devices.rb'
+ - 'db/migrate/20170209184350_add_reply_to_statuses.rb'
+ - 'db/migrate/20170214110202_create_reports.rb'
+ - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb'
+ - 'db/migrate/20170301222600_create_mutes.rb'
+ - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb'
+ - 'db/migrate/20170304202101_add_type_to_media_attachments.rb'
+ - 'db/migrate/20170317193015_add_search_index_to_accounts.rb'
+ - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb'
+ - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb'
+ - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb'
+ - 'db/migrate/20170322162804_add_search_index_to_tags.rb'
+ - 'db/migrate/20170330021336_add_counter_caches.rb'
+ - 'db/migrate/20170330163835_create_imports.rb'
+ - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb'
+ - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb'
+ - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb'
+ - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb'
+ - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb'
+ - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb'
+ - 'db/migrate/20170414132105_add_language_to_statuses.rb'
+ - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb'
+ - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb'
+ - 'db/migrate/20170424003227_create_account_domain_blocks.rb'
+ - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb'
+ - 'db/migrate/20170425131920_add_media_attachment_meta.rb'
+ - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb'
+ - 'db/migrate/20170427011934_re_add_owner_to_application.rb'
+ - 'db/migrate/20170506235850_create_conversations.rb'
+ - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb'
+ - 'db/migrate/20170507141759_optimize_index_subscriptions.rb'
+ - 'db/migrate/20170508230434_create_conversation_mutes.rb'
+ - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb'
+ - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb'
+ - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb'
+ - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb'
+ - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb'
+ - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb'
+ - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb'
+ - 'db/migrate/20170623152212_create_session_activations.rb'
+ - 'db/migrate/20170624134742_add_description_to_session_activations.rb'
+ - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb'
+ - 'db/migrate/20170711225116_fix_null_booleans.rb'
+ - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb'
+ - 'db/migrate/20170713175513_create_web_push_subscriptions.rb'
+ - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb'
+ - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb'
+ - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb'
+ - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb'
+ - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb'
+ - 'db/migrate/20170823162448_create_status_pins.rb'
+ - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb'
+ - 'db/migrate/20170829215220_remove_status_pins_account_index.rb'
+ - 'db/migrate/20170901141119_truncate_preview_cards.rb'
+ - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb'
+ - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb'
+ - 'db/migrate/20170905165803_add_local_to_statuses.rb'
+ - 'db/migrate/20170913000752_create_site_uploads.rb'
+ - 'db/migrate/20170917153509_create_custom_emojis.rb'
+ - 'db/migrate/20170918125918_ids_to_bigints.rb'
+ - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb'
+ - 'db/migrate/20170924022025_ids_to_bigints2.rb'
+ - 'db/migrate/20170927215609_add_description_to_media_attachments.rb'
+ - 'db/migrate/20170928082043_create_email_domain_blocks.rb'
+ - 'db/migrate/20171005102658_create_account_moderation_notes.rb'
+ - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb'
+ - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb'
+ - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb'
+ - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb'
+ - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb'
+ - 'db/migrate/20171028221157_add_reblogs_to_follows.rb'
+ - 'db/migrate/20171107143332_add_memorial_to_accounts.rb'
+ - 'db/migrate/20171107143624_add_disabled_to_users.rb'
+ - 'db/migrate/20171109012327_add_moderator_to_accounts.rb'
+ - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb'
+ - 'db/migrate/20171114231651_create_lists.rb'
+ - 'db/migrate/20171116161857_create_list_accounts.rb'
+ - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb'
+ - 'db/migrate/20171119172437_create_admin_action_logs.rb'
+ - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb'
+ - 'db/migrate/20171125024930_create_invites.rb'
+ - 'db/migrate/20171125031751_add_invite_id_to_users.rb'
+ - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb'
+ - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb'
+ - 'db/migrate/20171129172043_add_index_on_stream_entries.rb'
+ - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb'
+ - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb'
+ - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb'
+ - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb'
+ - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
+ - 'db/migrate/20180109143959_add_remember_token_to_users.rb'
+ - 'db/migrate/20180204034416_create_identities.rb'
+ - 'db/migrate/20180206000000_change_user_id_nonnullable.rb'
+ - 'db/migrate/20180211015820_create_backups.rb'
+ - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb'
+ - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb'
+ - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb'
+ - 'db/migrate/20180402040909_create_report_notes.rb'
+ - 'db/migrate/20180410204633_add_fields_to_accounts.rb'
+ - 'db/migrate/20180416210259_add_uri_to_relationships.rb'
+ - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb'
+ - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb'
+ - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb'
+ - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
+ - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
+ - 'db/migrate/20180528141303_fix_accounts_unique_index.rb'
+ - 'db/migrate/20180608213548_reject_following_blocked_users.rb'
+ - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb'
+ - 'db/migrate/20180615122121_add_autofollow_to_invites.rb'
+ - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb'
+ - 'db/migrate/20180617162849_remove_unused_indexes.rb'
+ - 'db/migrate/20180628181026_create_custom_filters.rb'
+ - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb'
+ - 'db/migrate/20180711152640_create_relays.rb'
+ - 'db/migrate/20180808175627_create_account_pins.rb'
+ - 'db/migrate/20180812123222_change_relays_enabled.rb'
+ - 'db/migrate/20180812162710_create_status_stats.rb'
+ - 'db/migrate/20180812173710_copy_status_stats.rb'
+ - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb'
+ - 'db/migrate/20180820232245_add_foreign_key_indices.rb'
+ - 'db/migrate/20180831171112_create_bookmarks.rb'
+ - 'db/migrate/20180929222014_create_account_conversations.rb'
+ - 'db/migrate/20181007025445_create_pghero_space_stats.rb'
+ - 'db/migrate/20181010141500_add_silent_to_mentions.rb'
+ - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb'
+ - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb'
+ - 'db/migrate/20181024224956_migrate_account_conversations.rb'
+ - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb'
+ - 'db/migrate/20181116165755_create_account_stats.rb'
+ - 'db/migrate/20181116173541_copy_account_stats.rb'
+ - 'db/migrate/20181127130500_identity_id_to_bigint.rb'
+ - 'db/migrate/20181127165847_add_show_replies_to_lists.rb'
+ - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb'
+ - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb'
+ - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb'
+ - 'db/migrate/20181204215309_create_account_tag_stats.rb'
+ - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb'
+ - 'db/migrate/20181213184704_create_account_warnings.rb'
+ - 'db/migrate/20181213185533_create_account_warning_presets.rb'
+ - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb'
+ - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb'
+ - 'db/migrate/20190103124649_create_scheduled_statuses.rb'
+ - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb'
+ - 'db/migrate/20190117114553_create_tombstones.rb'
+ - 'db/migrate/20190201012802_add_overwrite_to_imports.rb'
+ - 'db/migrate/20190203180359_create_featured_tags.rb'
+ - 'db/migrate/20190225031541_create_polls.rb'
+ - 'db/migrate/20190225031625_create_poll_votes.rb'
+ - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb'
+ - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb'
+ - 'db/migrate/20190306145741_add_lock_version_to_polls.rb'
+ - 'db/migrate/20190307234537_add_approved_to_users.rb'
+ - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb'
+ - 'db/migrate/20190316190352_create_account_identity_proofs.rb'
+ - 'db/migrate/20190317135723_add_uri_to_reports.rb'
+ - 'db/migrate/20190403141604_add_comment_to_invites.rb'
+ - 'db/migrate/20190409054914_create_user_invite_requests.rb'
+ - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb'
+ - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb'
+ - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
+ - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
+ - 'db/migrate/20190627222225_create_custom_emoji_categories.rb'
+ - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb'
+ - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb'
+ - 'db/migrate/20190705002136_create_domain_allows.rb'
+ - 'db/migrate/20190715164535_add_instance_actor.rb'
+ - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb'
+ - 'db/migrate/20190729185330_add_score_to_tags.rb'
+ - 'db/migrate/20190805123746_add_capabilities_to_tags.rb'
+ - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb'
+ - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb'
+ - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb'
+ - 'db/migrate/20190820003045_update_statuses_index.rb'
+ - 'db/migrate/20190823221802_add_local_index_to_statuses.rb'
+ - 'db/migrate/20190901035623_add_max_score_to_tags.rb'
+ - 'db/migrate/20190904222339_create_markers.rb'
+ - 'db/migrate/20190914202517_create_account_migrations.rb'
+ - 'db/migrate/20190915194355_create_account_aliases.rb'
+ - 'db/migrate/20190917213523_add_remember_token_index.rb'
+ - 'db/migrate/20190927232842_add_voters_count_to_polls.rb'
+ - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb'
+ - 'db/migrate/20191007013357_update_pt_locales.rb'
+ - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb'
+ - 'db/migrate/20191212003415_increase_backup_size.rb'
+ - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb'
+ - 'db/migrate/20191218153258_create_announcements.rb'
+ - 'db/migrate/20200113125135_create_announcement_mutes.rb'
+ - 'db/migrate/20200114113335_create_announcement_reactions.rb'
+ - 'db/migrate/20200119112504_add_public_index_to_statuses.rb'
+ - 'db/migrate/20200126203551_add_published_at_to_announcements.rb'
+ - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb'
+ - 'db/migrate/20200309150742_add_forwarded_to_reports.rb'
+ - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb'
+ - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb'
+ - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb'
+ - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb'
+ - 'db/migrate/20200407201300_create_unavailable_domains.rb'
+ - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb'
+ - 'db/migrate/20200417125749_add_storage_schema_version.rb'
+ - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb'
+ - 'db/migrate/20200510110808_reset_web_app_secret.rb'
+ - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb'
+ - 'db/migrate/20200516180352_create_devices.rb'
+ - 'db/migrate/20200516183822_create_one_time_keys.rb'
+ - 'db/migrate/20200518083523_create_encrypted_messages.rb'
+ - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb'
+ - 'db/migrate/20200601222558_create_system_keys.rb'
+ - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb'
+ - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb'
+ - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb'
+ - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb'
+ - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb'
+ - 'db/migrate/20200628133322_create_account_notes.rb'
+ - 'db/migrate/20200630190240_create_webauthn_credentials.rb'
+ - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb'
+ - 'db/migrate/20200908193330_create_account_deletion_requests.rb'
+ - 'db/migrate/20200917192924_add_notify_to_follows.rb'
+ - 'db/migrate/20200917193034_add_type_to_notifications.rb'
+ - 'db/migrate/20200917222316_add_index_notifications_on_type.rb'
+ - 'db/migrate/20201008202037_create_ip_blocks.rb'
+ - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb'
+ - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb'
+ - 'db/migrate/20201206004238_create_instances.rb'
+ - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb'
+ - 'db/migrate/20210221045109_create_rules.rb'
+ - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20210322164601_create_account_summaries.rb'
+ - 'db/migrate/20210323114347_create_follow_recommendations.rb'
+ - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb'
+ - 'db/migrate/20210416200740_create_canonical_email_blocks.rb'
+ - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb'
+ - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb'
+ - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb'
+ - 'db/migrate/20210609202149_create_login_activities.rb'
+ - 'db/migrate/20210616214526_create_user_ips.rb'
+ - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb'
+ - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb'
+ - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb'
+ - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb'
+ - 'db/migrate/20210908220918_create_status_edits.rb'
+ - 'db/migrate/20211031031021_create_preview_card_providers.rb'
+ - 'db/migrate/20211112011713_add_language_to_preview_cards.rb'
+ - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb'
+ - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb'
+ - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb'
+ - 'db/migrate/20211231080958_add_category_to_reports.rb'
+ - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb'
+ - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb'
+ - 'db/migrate/20220115125341_fix_account_warning_actions.rb'
+ - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb'
+ - 'db/migrate/20220124141035_create_appeals.rb'
+ - 'db/migrate/20220202200743_add_trendable_to_accounts.rb'
+ - 'db/migrate/20220202200926_add_trendable_to_statuses.rb'
+ - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb'
+ - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb'
+ - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb'
+ - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb'
+ - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
+ - 'db/migrate/20220304195405_migrate_hide_network_preference.rb'
+ - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb'
+ - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb'
+ - 'db/migrate/20220316233212_update_kurdish_locales.rb'
+ - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb'
+ - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb'
+ - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb'
+ - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb'
+ - 'db/migrate/20220606044941_create_webhooks.rb'
+ - 'db/migrate/20220611210335_create_user_roles.rb'
+ - 'db/migrate/20220611212541_add_role_id_to_users.rb'
+ - 'db/migrate/20220613110628_create_custom_filter_keywords.rb'
+ - 'db/migrate/20220613110711_migrate_custom_filters.rb'
+ - 'db/migrate/20220613110834_add_action_to_custom_filters.rb'
+ - 'db/migrate/20220710102457_add_display_name_to_tags.rb'
+ - 'db/migrate/20220714171049_create_tag_follows.rb'
+ - 'db/migrate/20220808101323_create_custom_filter_statuses.rb'
+ - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb'
+ - 'db/migrate/20220824233535_create_status_trends.rb'
+ - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
+ - 'db/migrate/20220829192633_add_languages_to_follows.rb'
+ - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb'
+ - 'db/migrate/20221006061337_create_preview_card_trends.rb'
+ - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb'
+ - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb'
+ - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb'
+ - 'db/migrate/20221104133904_add_name_to_featured_tags.rb'
+ - 'db/post_migrate/20180813113448_copy_status_stats_cleanup.rb'
+ - 'db/post_migrate/20181116184611_copy_account_stats_cleanup.rb'
+ - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb'
+ - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb'
+ - 'db/post_migrate/20190706233204_drop_stream_entries.rb'
+ - 'db/post_migrate/20190715031050_drop_subscriptions.rb'
+ - 'db/post_migrate/20190901040524_remove_score_from_tags.rb'
+ - 'db/post_migrate/20190927124642_remove_invalid_web_push_subscription.rb'
+ - 'db/post_migrate/20200917193528_migrate_notifications_type.rb'
+ - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb'
+ - 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb'
+ - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb'
+ - 'db/post_migrate/20210502233513_drop_account_tag_stats.rb'
+ - 'db/post_migrate/20210507001928_remove_hub_url_from_accounts.rb'
+ - 'db/post_migrate/20210526193025_remove_lock_version_from_account_stats.rb'
+ - 'db/post_migrate/20210616214135_remove_current_sign_in_ip_from_users.rb'
+ - 'db/post_migrate/20210808071221_clear_orphaned_account_notes.rb'
+ - 'db/post_migrate/20211126000907_drop_account_identity_proofs.rb'
+ - 'db/post_migrate/20220109213908_remove_action_taken_from_reports.rb'
+ - 'db/post_migrate/20220118183010_remove_index_users_on_remember_token.rb'
+ - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb'
+ - 'db/post_migrate/20220202201015_remove_trust_level_from_accounts.rb'
+ - 'db/post_migrate/20220303203437_remove_media_attachments_changed_from_status_edits.rb'
+ - 'db/post_migrate/20220307083603_optimize_null_index_conversations_uri.rb'
+ - 'db/post_migrate/20220310060545_optimize_null_index_statuses_in_reply_to_account_id.rb'
+ - 'db/post_migrate/20220310060556_optimize_null_index_statuses_in_reply_to_id.rb'
+ - 'db/post_migrate/20220310060614_optimize_null_index_media_attachments_scheduled_status_id.rb'
+ - 'db/post_migrate/20220310060626_optimize_null_index_media_attachments_shortcode.rb'
+ - 'db/post_migrate/20220310060641_optimize_null_index_users_reset_password_token.rb'
+ - 'db/post_migrate/20220310060653_optimize_null_index_users_created_by_application_id.rb'
+ - 'db/post_migrate/20220310060706_optimize_null_index_statuses_uri.rb'
+ - 'db/post_migrate/20220310060722_optimize_null_index_accounts_moved_to_account_id.rb'
+ - 'db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb'
+ - 'db/post_migrate/20220310060750_optimize_null_index_accounts_url.rb'
+ - 'db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb'
+ - 'db/post_migrate/20220310060833_optimize_null_index_announcement_reactions_custom_emoji_id.rb'
+ - 'db/post_migrate/20220310060854_optimize_null_index_appeals_approved_by_account_id.rb'
+ - 'db/post_migrate/20220310060913_optimize_null_index_account_migrations_target_account_id.rb'
+ - 'db/post_migrate/20220310060926_optimize_null_index_appeals_rejected_by_account_id.rb'
+ - 'db/post_migrate/20220310060939_optimize_null_index_list_accounts_follow_id.rb'
+ - 'db/post_migrate/20220310060959_optimize_null_index_web_push_subscriptions_access_token_id.rb'
+ - 'db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb'
+ - 'db/post_migrate/20220429101850_clear_email_domain_blocks.rb'
+ - 'db/post_migrate/20220527114923_remove_filtered_languages_from_users.rb'
+ - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb'
+ - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb'
+ - 'db/post_migrate/20220617202502_migrate_roles.rb'
+ - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb'
+ - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb'
+ - 'db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb'
+ - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
+ - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
+ - 'lib/active_record/batches.rb'
+ - 'lib/active_record/database_tasks_extensions.rb'
+ - 'lib/chewy/strategy/mastodon.rb'
+ - 'lib/cli.rb'
+ - 'lib/devise/two_factor_ldap_authenticatable.rb'
+ - 'lib/devise/two_factor_pam_authenticatable.rb'
+ - 'lib/exceptions.rb'
+ - 'lib/generators/post_deployment_migration_generator.rb'
+ - 'lib/mastodon/accounts_cli.rb'
+ - 'lib/mastodon/cache_cli.rb'
+ - 'lib/mastodon/canonical_email_blocks_cli.rb'
+ - 'lib/mastodon/cli_helper.rb'
+ - 'lib/mastodon/domains_cli.rb'
+ - 'lib/mastodon/email_domain_blocks_cli.rb'
+ - 'lib/mastodon/emoji_cli.rb'
+ - 'lib/mastodon/feeds_cli.rb'
+ - 'lib/mastodon/ip_blocks_cli.rb'
+ - 'lib/mastodon/maintenance_cli.rb'
+ - 'lib/mastodon/media_cli.rb'
+ - 'lib/mastodon/premailer_webpack_strategy.rb'
+ - 'lib/mastodon/preview_cards_cli.rb'
+ - 'lib/mastodon/rack_middleware.rb'
+ - 'lib/mastodon/search_cli.rb'
+ - 'lib/mastodon/settings_cli.rb'
+ - 'lib/mastodon/sidekiq_middleware.rb'
+ - 'lib/mastodon/snowflake.rb'
+ - 'lib/mastodon/statuses_cli.rb'
+ - 'lib/mastodon/upgrade_cli.rb'
+ - 'lib/mastodon/version.rb'
+ - 'lib/paperclip/attachment_extensions.rb'
+ - 'lib/paperclip/blurhash_transcoder.rb'
+ - 'lib/paperclip/color_extractor.rb'
+ - 'lib/paperclip/gif_transcoder.rb'
+ - 'lib/paperclip/image_extractor.rb'
+ - 'lib/paperclip/lazy_thumbnail.rb'
+ - 'lib/paperclip/response_with_limit_adapter.rb'
+ - 'lib/paperclip/type_corrector.rb'
+ - 'lib/paperclip/url_generator_extensions.rb'
+ - 'lib/public_file_server_middleware.rb'
+ - 'lib/rails/engine_extensions.rb'
+ - 'lib/redis/namespace_extensions.rb'
+ - 'lib/sanitize_ext/sanitize_config.rb'
+ - 'lib/simple_navigation/item_extensions.rb'
+ - 'lib/terrapin/multi_pipe_extensions.rb'
+ - 'lib/webpacker/helper_extensions.rb'
+ - 'lib/webpacker/manifest_extensions.rb'
-# Offense count: 10
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
@@ -1912,7 +3540,6 @@ Style/FetchEnvVar:
- 'lib/tasks/repo.rake'
- 'spec/features/profile_spec.rb'
-# Offense count: 15
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns.
# SupportedStyles: annotated, template, unannotated
@@ -1922,14 +3549,360 @@ Style/FormatStringToken:
- 'lib/mastodon/maintenance_cli.rb'
- 'lib/paperclip/color_extractor.rb'
-# Offense count: 713
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: always, always_true, never
Style/FrozenStringLiteralComment:
- Enabled: false
+ Exclude:
+ - 'app/views/accounts/show.rss.ruby'
+ - 'app/views/tags/show.rss.ruby'
+ - 'app/views/well_known/host_meta/show.xml.ruby'
+ - 'db/migrate/20160220174730_create_accounts.rb'
+ - 'db/migrate/20160220211917_create_statuses.rb'
+ - 'db/migrate/20160221003140_create_users.rb'
+ - 'db/migrate/20160221003621_create_follows.rb'
+ - 'db/migrate/20160222122600_create_stream_entries.rb'
+ - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb'
+ - 'db/migrate/20160223162837_add_metadata_to_statuses.rb'
+ - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb'
+ - 'db/migrate/20160223165723_add_url_to_statuses.rb'
+ - 'db/migrate/20160223165855_add_url_to_accounts.rb'
+ - 'db/migrate/20160223171800_create_favourites.rb'
+ - 'db/migrate/20160224223247_create_mentions.rb'
+ - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb'
+ - 'db/migrate/20160305115639_add_devise_to_users.rb'
+ - 'db/migrate/20160306172223_create_doorkeeper_tables.rb'
+ - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb'
+ - 'db/migrate/20160314164231_add_owner_to_application.rb'
+ - 'db/migrate/20160316103650_add_missing_indices.rb'
+ - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb'
+ - 'db/migrate/20160325130944_add_admin_to_users.rb'
+ - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb'
+ - 'db/migrate/20160905150353_create_media_attachments.rb'
+ - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb'
+ - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb'
+ - 'db/migrate/20160926213048_remove_owner_from_application.rb'
+ - 'db/migrate/20161003142332_add_confirmable_to_users.rb'
+ - 'db/migrate/20161003145426_create_blocks.rb'
+ - 'db/migrate/20161006213403_rails_settings_migration.rb'
+ - 'db/migrate/20161009120834_create_domain_blocks.rb'
+ - 'db/migrate/20161027172456_add_silenced_to_accounts.rb'
+ - 'db/migrate/20161104173623_create_tags.rb'
+ - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb'
+ - 'db/migrate/20161116162355_add_locale_to_users.rb'
+ - 'db/migrate/20161119211120_create_notifications.rb'
+ - 'db/migrate/20161122163057_remove_unneeded_indexes.rb'
+ - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb'
+ - 'db/migrate/20161128103007_create_subscriptions.rb'
+ - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb'
+ - 'db/migrate/20161130185319_add_visibility_to_statuses.rb'
+ - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb'
+ - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb'
+ - 'db/migrate/20161205214545_add_suspended_to_accounts.rb'
+ - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb'
+ - 'db/migrate/20161222201034_add_locked_to_accounts.rb'
+ - 'db/migrate/20161222204147_create_follow_requests.rb'
+ - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb'
+ - 'db/migrate/20170109120109_create_web_settings.rb'
+ - 'db/migrate/20170112154826_migrate_settings.rb'
+ - 'db/migrate/20170114194937_add_application_to_statuses.rb'
+ - 'db/migrate/20170114203041_add_website_to_oauth_application.rb'
+ - 'db/migrate/20170119214911_create_preview_cards.rb'
+ - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb'
+ - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb'
+ - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb'
+ - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb'
+ - 'db/migrate/20170205175257_remove_devices.rb'
+ - 'db/migrate/20170209184350_add_reply_to_statuses.rb'
+ - 'db/migrate/20170214110202_create_reports.rb'
+ - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb'
+ - 'db/migrate/20170301222600_create_mutes.rb'
+ - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb'
+ - 'db/migrate/20170304202101_add_type_to_media_attachments.rb'
+ - 'db/migrate/20170317193015_add_search_index_to_accounts.rb'
+ - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb'
+ - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb'
+ - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb'
+ - 'db/migrate/20170322162804_add_search_index_to_tags.rb'
+ - 'db/migrate/20170330021336_add_counter_caches.rb'
+ - 'db/migrate/20170330163835_create_imports.rb'
+ - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb'
+ - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb'
+ - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb'
+ - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb'
+ - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb'
+ - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb'
+ - 'db/migrate/20170414132105_add_language_to_statuses.rb'
+ - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb'
+ - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb'
+ - 'db/migrate/20170424003227_create_account_domain_blocks.rb'
+ - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb'
+ - 'db/migrate/20170425131920_add_media_attachment_meta.rb'
+ - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb'
+ - 'db/migrate/20170427011934_re_add_owner_to_application.rb'
+ - 'db/migrate/20170506235850_create_conversations.rb'
+ - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb'
+ - 'db/migrate/20170507141759_optimize_index_subscriptions.rb'
+ - 'db/migrate/20170508230434_create_conversation_mutes.rb'
+ - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb'
+ - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb'
+ - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb'
+ - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb'
+ - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb'
+ - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb'
+ - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb'
+ - 'db/migrate/20170623152212_create_session_activations.rb'
+ - 'db/migrate/20170624134742_add_description_to_session_activations.rb'
+ - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb'
+ - 'db/migrate/20170711225116_fix_null_booleans.rb'
+ - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb'
+ - 'db/migrate/20170713175513_create_web_push_subscriptions.rb'
+ - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb'
+ - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb'
+ - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb'
+ - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb'
+ - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb'
+ - 'db/migrate/20170823162448_create_status_pins.rb'
+ - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb'
+ - 'db/migrate/20170829215220_remove_status_pins_account_index.rb'
+ - 'db/migrate/20170901141119_truncate_preview_cards.rb'
+ - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb'
+ - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb'
+ - 'db/migrate/20170905165803_add_local_to_statuses.rb'
+ - 'db/migrate/20170913000752_create_site_uploads.rb'
+ - 'db/migrate/20170917153509_create_custom_emojis.rb'
+ - 'db/migrate/20170918125918_ids_to_bigints.rb'
+ - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb'
+ - 'db/migrate/20170924022025_ids_to_bigints2.rb'
+ - 'db/migrate/20170927215609_add_description_to_media_attachments.rb'
+ - 'db/migrate/20170928082043_create_email_domain_blocks.rb'
+ - 'db/migrate/20171005102658_create_account_moderation_notes.rb'
+ - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb'
+ - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb'
+ - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb'
+ - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb'
+ - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb'
+ - 'db/migrate/20171028221157_add_reblogs_to_follows.rb'
+ - 'db/migrate/20171107143332_add_memorial_to_accounts.rb'
+ - 'db/migrate/20171107143624_add_disabled_to_users.rb'
+ - 'db/migrate/20171109012327_add_moderator_to_accounts.rb'
+ - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb'
+ - 'db/migrate/20171114231651_create_lists.rb'
+ - 'db/migrate/20171116161857_create_list_accounts.rb'
+ - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb'
+ - 'db/migrate/20171119172437_create_admin_action_logs.rb'
+ - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb'
+ - 'db/migrate/20171125024930_create_invites.rb'
+ - 'db/migrate/20171125031751_add_invite_id_to_users.rb'
+ - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb'
+ - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb'
+ - 'db/migrate/20171129172043_add_index_on_stream_entries.rb'
+ - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb'
+ - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb'
+ - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb'
+ - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb'
+ - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
+ - 'db/migrate/20180109143959_add_remember_token_to_users.rb'
+ - 'db/migrate/20180204034416_create_identities.rb'
+ - 'db/migrate/20180206000000_change_user_id_nonnullable.rb'
+ - 'db/migrate/20180211015820_create_backups.rb'
+ - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb'
+ - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb'
+ - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb'
+ - 'db/migrate/20180402040909_create_report_notes.rb'
+ - 'db/migrate/20180410204633_add_fields_to_accounts.rb'
+ - 'db/migrate/20180416210259_add_uri_to_relationships.rb'
+ - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb'
+ - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb'
+ - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb'
+ - 'db/migrate/20180528141303_fix_accounts_unique_index.rb'
+ - 'db/migrate/20180608213548_reject_following_blocked_users.rb'
+ - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb'
+ - 'db/migrate/20180615122121_add_autofollow_to_invites.rb'
+ - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb'
+ - 'db/migrate/20180617162849_remove_unused_indexes.rb'
+ - 'db/migrate/20180628181026_create_custom_filters.rb'
+ - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb'
+ - 'db/migrate/20180711152640_create_relays.rb'
+ - 'db/migrate/20180808175627_create_account_pins.rb'
+ - 'db/migrate/20180812123222_change_relays_enabled.rb'
+ - 'db/migrate/20180812162710_create_status_stats.rb'
+ - 'db/migrate/20180812173710_copy_status_stats.rb'
+ - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb'
+ - 'db/migrate/20180831171112_create_bookmarks.rb'
+ - 'db/migrate/20180929222014_create_account_conversations.rb'
+ - 'db/migrate/20181007025445_create_pghero_space_stats.rb'
+ - 'db/migrate/20181010141500_add_silent_to_mentions.rb'
+ - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb'
+ - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb'
+ - 'db/migrate/20181024224956_migrate_account_conversations.rb'
+ - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb'
+ - 'db/migrate/20181116165755_create_account_stats.rb'
+ - 'db/migrate/20181116173541_copy_account_stats.rb'
+ - 'db/migrate/20181127130500_identity_id_to_bigint.rb'
+ - 'db/migrate/20181127165847_add_show_replies_to_lists.rb'
+ - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb'
+ - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb'
+ - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb'
+ - 'db/migrate/20181204215309_create_account_tag_stats.rb'
+ - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb'
+ - 'db/migrate/20181213184704_create_account_warnings.rb'
+ - 'db/migrate/20181213185533_create_account_warning_presets.rb'
+ - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb'
+ - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb'
+ - 'db/migrate/20190103124649_create_scheduled_statuses.rb'
+ - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb'
+ - 'db/migrate/20190117114553_create_tombstones.rb'
+ - 'db/migrate/20190201012802_add_overwrite_to_imports.rb'
+ - 'db/migrate/20190203180359_create_featured_tags.rb'
+ - 'db/migrate/20190225031541_create_polls.rb'
+ - 'db/migrate/20190225031625_create_poll_votes.rb'
+ - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb'
+ - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb'
+ - 'db/migrate/20190306145741_add_lock_version_to_polls.rb'
+ - 'db/migrate/20190307234537_add_approved_to_users.rb'
+ - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb'
+ - 'db/migrate/20190316190352_create_account_identity_proofs.rb'
+ - 'db/migrate/20190317135723_add_uri_to_reports.rb'
+ - 'db/migrate/20190403141604_add_comment_to_invites.rb'
+ - 'db/migrate/20190409054914_create_user_invite_requests.rb'
+ - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb'
+ - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb'
+ - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
+ - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
+ - 'db/migrate/20190627222225_create_custom_emoji_categories.rb'
+ - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb'
+ - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb'
+ - 'db/migrate/20190705002136_create_domain_allows.rb'
+ - 'db/migrate/20190715164535_add_instance_actor.rb'
+ - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb'
+ - 'db/migrate/20190729185330_add_score_to_tags.rb'
+ - 'db/migrate/20190805123746_add_capabilities_to_tags.rb'
+ - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb'
+ - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb'
+ - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb'
+ - 'db/migrate/20190820003045_update_statuses_index.rb'
+ - 'db/migrate/20190823221802_add_local_index_to_statuses.rb'
+ - 'db/migrate/20190901035623_add_max_score_to_tags.rb'
+ - 'db/migrate/20190904222339_create_markers.rb'
+ - 'db/migrate/20190914202517_create_account_migrations.rb'
+ - 'db/migrate/20190915194355_create_account_aliases.rb'
+ - 'db/migrate/20190927232842_add_voters_count_to_polls.rb'
+ - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb'
+ - 'db/migrate/20191007013357_update_pt_locales.rb'
+ - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb'
+ - 'db/migrate/20191212003415_increase_backup_size.rb'
+ - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb'
+ - 'db/migrate/20191218153258_create_announcements.rb'
+ - 'db/migrate/20200113125135_create_announcement_mutes.rb'
+ - 'db/migrate/20200114113335_create_announcement_reactions.rb'
+ - 'db/migrate/20200119112504_add_public_index_to_statuses.rb'
+ - 'db/migrate/20200126203551_add_published_at_to_announcements.rb'
+ - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb'
+ - 'db/migrate/20200309150742_add_forwarded_to_reports.rb'
+ - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb'
+ - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb'
+ - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb'
+ - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb'
+ - 'db/migrate/20200407201300_create_unavailable_domains.rb'
+ - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb'
+ - 'db/migrate/20200417125749_add_storage_schema_version.rb'
+ - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb'
+ - 'db/migrate/20200510110808_reset_web_app_secret.rb'
+ - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb'
+ - 'db/migrate/20200516180352_create_devices.rb'
+ - 'db/migrate/20200516183822_create_one_time_keys.rb'
+ - 'db/migrate/20200518083523_create_encrypted_messages.rb'
+ - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb'
+ - 'db/migrate/20200601222558_create_system_keys.rb'
+ - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb'
+ - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb'
+ - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb'
+ - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb'
+ - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb'
+ - 'db/migrate/20200628133322_create_account_notes.rb'
+ - 'db/migrate/20200630190240_create_webauthn_credentials.rb'
+ - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb'
+ - 'db/migrate/20200908193330_create_account_deletion_requests.rb'
+ - 'db/migrate/20200917192924_add_notify_to_follows.rb'
+ - 'db/migrate/20200917193034_add_type_to_notifications.rb'
+ - 'db/migrate/20200917222316_add_index_notifications_on_type.rb'
+ - 'db/migrate/20201008202037_create_ip_blocks.rb'
+ - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb'
+ - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb'
+ - 'db/migrate/20201206004238_create_instances.rb'
+ - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb'
+ - 'db/migrate/20210221045109_create_rules.rb'
+ - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb'
+ - 'db/migrate/20210322164601_create_account_summaries.rb'
+ - 'db/migrate/20210323114347_create_follow_recommendations.rb'
+ - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb'
+ - 'db/migrate/20210416200740_create_canonical_email_blocks.rb'
+ - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb'
+ - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb'
+ - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb'
+ - 'db/migrate/20210609202149_create_login_activities.rb'
+ - 'db/migrate/20210616214526_create_user_ips.rb'
+ - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb'
+ - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb'
+ - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb'
+ - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb'
+ - 'db/migrate/20210908220918_create_status_edits.rb'
+ - 'db/migrate/20211031031021_create_preview_card_providers.rb'
+ - 'db/migrate/20211112011713_add_language_to_preview_cards.rb'
+ - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb'
+ - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb'
+ - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb'
+ - 'db/migrate/20211231080958_add_category_to_reports.rb'
+ - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb'
+ - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb'
+ - 'db/migrate/20220115125341_fix_account_warning_actions.rb'
+ - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb'
+ - 'db/migrate/20220124141035_create_appeals.rb'
+ - 'db/migrate/20220202200743_add_trendable_to_accounts.rb'
+ - 'db/migrate/20220202200926_add_trendable_to_statuses.rb'
+ - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb'
+ - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb'
+ - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb'
+ - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb'
+ - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
+ - 'db/migrate/20220304195405_migrate_hide_network_preference.rb'
+ - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb'
+ - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb'
+ - 'db/migrate/20220316233212_update_kurdish_locales.rb'
+ - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb'
+ - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb'
+ - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb'
+ - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb'
+ - 'db/migrate/20220606044941_create_webhooks.rb'
+ - 'db/migrate/20220611210335_create_user_roles.rb'
+ - 'db/migrate/20220611212541_add_role_id_to_users.rb'
+ - 'db/migrate/20220710102457_add_display_name_to_tags.rb'
+ - 'db/migrate/20220714171049_create_tag_follows.rb'
+ - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb'
+ - 'db/migrate/20220824233535_create_status_trends.rb'
+ - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
+ - 'db/migrate/20220829192633_add_languages_to_follows.rb'
+ - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb'
+ - 'db/migrate/20221006061337_create_preview_card_trends.rb'
+ - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb'
+ - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb'
+ - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb'
+ - 'db/migrate/20221104133904_add_name_to_featured_tags.rb'
+ - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb'
+ - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb'
+ - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb'
+ - 'db/seeds/01_web_app.rb'
+ - 'db/seeds/02_instance_actor.rb'
+ - 'db/seeds/03_roles.rb'
+ - 'db/seeds/04_admin.rb'
+ - 'lib/rails/engine_extensions.rb'
+ - 'lib/tasks/branding.rake'
+ - 'spec/fabricators_spec.rb'
-# Offense count: 34
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
Style/GuardClause:
@@ -1966,7 +3939,6 @@ Style/GuardClause:
- 'lib/paperclip/attachment_extensions.rb'
- 'lib/tasks/repo.rake'
-# Offense count: 13
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: braces, no_braces
@@ -1982,7 +3954,6 @@ Style/HashAsLastArrayItem:
- 'app/services/notify_service.rb'
- 'db/migrate/20181024224956_migrate_account_conversations.rb'
-# Offense count: 12
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, EnforcedShorthandSyntax, UseHashRocketsWithSymbolValues, PreferHashRocketsForNonAlnumEndingSymbols.
# SupportedStyles: ruby19, hash_rockets, no_mixed_keys, ruby19_no_mixed_keys
@@ -1996,14 +3967,12 @@ Style/HashSyntax:
- 'spec/controllers/admin/statuses_controller_spec.rb'
- 'spec/controllers/concerns/signature_verification_spec.rb'
-# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/HashTransformValues:
Exclude:
- 'app/serializers/rest/web_push_subscription_serializer.rb'
- 'app/services/import_service.rb'
-# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: InverseMethods, InverseBlocks.
Style/InverseMethods:
@@ -2012,13 +3981,11 @@ Style/InverseMethods:
- 'app/services/update_account_service.rb'
- 'spec/controllers/activitypub/replies_controller_spec.rb'
-# Offense count: 1
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/MapToHash:
Exclude:
- 'app/models/status.rb'
-# Offense count: 17
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: literals, strict
@@ -2035,7 +4002,6 @@ Style/MutableConstant:
- 'lib/mastodon/snowflake.rb'
- 'spec/controllers/api/base_controller_spec.rb'
-# Offense count: 10
# Configuration parameters: AllowedMethods.
# AllowedMethods: respond_to_missing?
Style/OptionalBooleanParameter:
@@ -2050,7 +4016,6 @@ Style/OptionalBooleanParameter:
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
-# Offense count: 16
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantRegexpCharacterClass:
Exclude:
@@ -2062,7 +4027,6 @@ Style/RedundantRegexpCharacterClass:
- 'lib/tasks/emojis.rake'
- 'lib/tasks/mastodon.rake'
-# Offense count: 10
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantRegexpEscape:
Exclude:
@@ -2073,7 +4037,6 @@ Style/RedundantRegexpEscape:
- 'lib/paperclip/color_extractor.rb'
- 'lib/tasks/mastodon.rake'
-# Offense count: 19
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, AllowInnerSlashes.
# SupportedStyles: slashes, percent_r, mixed
@@ -2095,7 +4058,6 @@ Style/RegexpLiteral:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/mastodon.rake'
-# Offense count: 2
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: ConvertCodeThatCanStartToReturnNil, AllowedMethods, MaxChainLength.
# AllowedMethods: present?, blank?, presence, try, try!
@@ -2104,7 +4066,6 @@ Style/SafeNavigation:
- 'app/models/concerns/account_finder_concern.rb'
- 'app/models/status.rb'
-# Offense count: 5
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowAsExpressionSeparator.
Style/Semicolon:
@@ -2113,7 +4074,6 @@ Style/Semicolon:
- 'spec/validators/blacklisted_email_validator_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
-# Offense count: 2
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle.
# SupportedStyles: only_raise, only_fail, semantic
@@ -2122,19 +4082,16 @@ Style/SignalException:
- 'lib/devise/two_factor_ldap_authenticatable.rb'
- 'lib/devise/two_factor_pam_authenticatable.rb'
-# Offense count: 3
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/SingleArgumentDig:
Exclude:
- 'lib/webpacker/manifest_extensions.rb'
-# Offense count: 14
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/SlicingWithRange:
Exclude:
- 'app/lib/emoji_formatter.rb'
- 'app/lib/text_formatter.rb'
- - 'app/lib/toc_generator.rb'
- 'app/models/account_alias.rb'
- 'app/models/domain_block.rb'
- 'app/models/email_domain_block.rb'
@@ -2144,3 +4101,9 @@ Style/SlicingWithRange:
- 'lib/active_record/batches.rb'
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/repo.rake'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
+# URISchemes: http, https
+Layout/LineLength:
+ Max: 701
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index fc70c8785a..b2dfe58d53 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -35,7 +35,6 @@ module Mastodon
follow status. By default, only accounts that are not followed by or
following anyone locally are pruned.
DESC
- # rubocop:disable Metrics/PerceivedComplexity
def remove
if options[:prune_profiles] && options[:remove_headers]
say('--prune-profiles and --remove-headers should not be specified simultaneously', :red, true)
@@ -224,7 +223,6 @@ module Mastodon
say("Removed #{removed} orphans (approx. #{number_to_human_size(reclaimed_bytes)})#{dry_run}", :green, true)
end
- # rubocop:enable Metrics/PerceivedComplexity
option :account, type: :string
option :domain, type: :string
From 630436ab2d84b5ed2334ad510cb9ad6253050ae5 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 04:33:38 +0100
Subject: [PATCH 0277/1254] Refactor monkey-patching of `PrivateAddressCheck`
(#24122)
---
app/lib/request.rb | 4 +++-
config/environments/development.rb | 6 ------
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 85716f9990..4bde6fc911 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -273,7 +273,9 @@ class Request
def check_private_address(address, host)
addr = IPAddr.new(address.to_s)
- return if private_address_exceptions.any? { |range| range.include?(addr) }
+
+ return if Rails.env.development? || private_address_exceptions.any? { |range| range.include?(addr) }
+
raise Mastodon::PrivateNetworkAddressError, host if PrivateAddressCheck.private_address?(addr)
end
diff --git a/config/environments/development.rb b/config/environments/development.rb
index 32c5cce8b9..a633dfce51 100644
--- a/config/environments/development.rb
+++ b/config/environments/development.rb
@@ -77,9 +77,3 @@ Rails.application.configure do
end
Redis.raise_deprecations = true
-
-module PrivateAddressCheck
- def self.private_address?(*)
- false
- end
-end
From bd047acc356671727c112336bb237f979bba517d Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Thu, 16 Mar 2023 11:07:24 +0100
Subject: [PATCH 0278/1254] Replace `Status#translatable?` with language matrix
in separate endpoint (#24037)
---
.rubocop_todo.yml | 1 -
.../translation_languages_controller.rb | 23 ++++++
app/javascript/mastodon/actions/server.js | 27 +++++++
.../mastodon/components/status_content.jsx | 13 ++-
app/javascript/mastodon/features/ui/index.jsx | 3 +-
app/javascript/mastodon/reducers/server.js | 9 +++
app/lib/translation_service.rb | 4 +-
app/lib/translation_service/deepl.rb | 30 ++++---
.../translation_service/libre_translate.rb | 20 ++---
app/models/status.rb | 10 ---
app/serializers/rest/status_serializer.rb | 6 +-
app/services/translate_status_service.rb | 16 +++-
config/routes.rb | 1 +
.../translation_languages_controller_spec.rb | 31 ++++++++
.../statuses/translations_controller_spec.rb | 3 +-
spec/lib/translation_service/deepl_spec.rb | 36 +++------
.../libre_translate_spec.rb | 31 ++------
spec/models/status_spec.rb | 79 -------------------
spec/presenters/instance_presenter_spec.rb | 2 +-
19 files changed, 165 insertions(+), 180 deletions(-)
create mode 100644 app/controllers/api/v1/instances/translation_languages_controller.rb
create mode 100644 spec/controllers/api/v1/instances/translation_languages_controller_spec.rb
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e79f4f8e97..85f078dcf2 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -484,7 +484,6 @@ RSpec/DescribedClass:
- 'spec/models/user_spec.rb'
- 'spec/policies/account_moderation_note_policy_spec.rb'
- 'spec/presenters/account_relationships_presenter_spec.rb'
- - 'spec/presenters/instance_presenter_spec.rb'
- 'spec/presenters/status_relationships_presenter_spec.rb'
- 'spec/serializers/activitypub/note_serializer_spec.rb'
- 'spec/serializers/activitypub/update_poll_serializer_spec.rb'
diff --git a/app/controllers/api/v1/instances/translation_languages_controller.rb b/app/controllers/api/v1/instances/translation_languages_controller.rb
new file mode 100644
index 0000000000..3910a499e8
--- /dev/null
+++ b/app/controllers/api/v1/instances/translation_languages_controller.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class Api::V1::Instances::TranslationLanguagesController < Api::BaseController
+ skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
+
+ before_action :set_languages
+
+ def show
+ expires_in 1.day, public: true
+ render json: @languages
+ end
+
+ private
+
+ def set_languages
+ if TranslationService.configured?
+ @languages = Rails.cache.fetch('translation_service/languages', expires_in: 7.days, race_condition_ttl: 1.hour) { TranslationService.configured.languages }
+ @languages['und'] = @languages.delete(nil) if @languages.key?(nil)
+ else
+ @languages = {}
+ end
+ end
+end
diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js
index 31d4aea100..091af0f0fe 100644
--- a/app/javascript/mastodon/actions/server.js
+++ b/app/javascript/mastodon/actions/server.js
@@ -5,6 +5,10 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS';
export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL';
+
export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST';
export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS';
export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL';
@@ -37,6 +41,29 @@ const fetchServerFail = error => ({
error,
});
+export const fetchServerTranslationLanguages = () => (dispatch, getState) => {
+ dispatch(fetchServerTranslationLanguagesRequest());
+
+ api(getState)
+ .get('/api/v1/instance/translation_languages').then(({ data }) => {
+ dispatch(fetchServerTranslationLanguagesSuccess(data));
+ }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err)));
+};
+
+const fetchServerTranslationLanguagesRequest = () => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+});
+
+const fetchServerTranslationLanguagesSuccess = translationLanguages => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ translationLanguages,
+});
+
+const fetchServerTranslationLanguagesFail = error => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
+ error,
+});
+
export const fetchExtendedDescription = () => (dispatch, getState) => {
dispatch(fetchExtendedDescriptionRequest());
diff --git a/app/javascript/mastodon/components/status_content.jsx b/app/javascript/mastodon/components/status_content.jsx
index f9c9fe0791..67a487b007 100644
--- a/app/javascript/mastodon/components/status_content.jsx
+++ b/app/javascript/mastodon/components/status_content.jsx
@@ -3,6 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { FormattedMessage, injectIntl } from 'react-intl';
import { Link } from 'react-router-dom';
+import { connect } from 'react-redux';
import classnames from 'classnames';
import PollContainer from 'mastodon/containers/poll_container';
import Icon from 'mastodon/components/icon';
@@ -47,7 +48,12 @@ class TranslateButton extends React.PureComponent {
}
-export default @injectIntl
+const mapStateToProps = state => ({
+ languages: state.getIn(['server', 'translationLanguages', 'items']),
+});
+
+export default @connect(mapStateToProps)
+@injectIntl
class StatusContent extends React.PureComponent {
static contextTypes = {
@@ -63,6 +69,7 @@ class StatusContent extends React.PureComponent {
onClick: PropTypes.func,
collapsable: PropTypes.bool,
onCollapsedToggle: PropTypes.func,
+ languages: ImmutablePropTypes.map,
intl: PropTypes.object,
};
@@ -220,7 +227,9 @@ class StatusContent extends React.PureComponent {
const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden;
const renderReadMore = this.props.onClick && status.get('collapsed');
- const renderTranslate = this.props.onTranslate && status.get('translatable');
+ const contentLocale = intl.locale.replace(/[_-].*/, '');
+ const targetLanguages = this.props.languages?.get(status.get('language') || 'und');
+ const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && targetLanguages?.includes(contentLocale);
const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') };
const spoilerContent = { __html: status.get('spoilerHtml') };
diff --git a/app/javascript/mastodon/features/ui/index.jsx b/app/javascript/mastodon/features/ui/index.jsx
index 2dd59f95d4..083707220b 100644
--- a/app/javascript/mastodon/features/ui/index.jsx
+++ b/app/javascript/mastodon/features/ui/index.jsx
@@ -13,7 +13,7 @@ import { debounce } from 'lodash';
import { uploadCompose, resetCompose, changeComposeSpoilerness } from '../../actions/compose';
import { expandHomeTimeline } from '../../actions/timelines';
import { expandNotifications } from '../../actions/notifications';
-import { fetchServer } from '../../actions/server';
+import { fetchServer, fetchServerTranslationLanguages } from '../../actions/server';
import { clearHeight } from '../../actions/height_cache';
import { focusApp, unfocusApp, changeLayout } from 'mastodon/actions/app';
import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'mastodon/actions/markers';
@@ -399,6 +399,7 @@ class UI extends React.PureComponent {
this.props.dispatch(fetchMarkers());
this.props.dispatch(expandHomeTimeline());
this.props.dispatch(expandNotifications());
+ this.props.dispatch(fetchServerTranslationLanguages());
setTimeout(() => this.props.dispatch(fetchServer()), 3000);
}
diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js
index db9f2b5e6b..909ab2a661 100644
--- a/app/javascript/mastodon/reducers/server.js
+++ b/app/javascript/mastodon/reducers/server.js
@@ -2,6 +2,9 @@ import {
SERVER_FETCH_REQUEST,
SERVER_FETCH_SUCCESS,
SERVER_FETCH_FAIL,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
EXTENDED_DESCRIPTION_REQUEST,
EXTENDED_DESCRIPTION_SUCCESS,
EXTENDED_DESCRIPTION_FAIL,
@@ -35,6 +38,12 @@ export default function server(state = initialState, action) {
return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false);
case SERVER_FETCH_FAIL:
return state.setIn(['server', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST:
+ return state.setIn(['translationLanguages', 'isLoading'], true);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS:
+ return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL:
+ return state.setIn(['translationLanguages', 'isLoading'], false);
case EXTENDED_DESCRIPTION_REQUEST:
return state.setIn(['extendedDescription', 'isLoading'], true);
case EXTENDED_DESCRIPTION_SUCCESS:
diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb
index 5ff93674a4..bfe5de44f8 100644
--- a/app/lib/translation_service.rb
+++ b/app/lib/translation_service.rb
@@ -21,8 +21,8 @@ class TranslationService
ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present?
end
- def supported?(_source_language, _target_language)
- false
+ def languages
+ {}
end
def translate(_text, _source_language, _target_language)
diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb
index deff95a1db..afcb7ecb2f 100644
--- a/app/lib/translation_service/deepl.rb
+++ b/app/lib/translation_service/deepl.rb
@@ -17,25 +17,31 @@ class TranslationService::DeepL < TranslationService
end
end
- def supported?(source_language, target_language)
- source_language.in?(languages('source')) && target_language.in?(languages('target'))
+ def languages
+ source_languages = [nil] + fetch_languages('source')
+
+ # In DeepL, EN and PT are deprecated in favor of EN-GB/EN-US and PT-BR/PT-PT, so
+ # they are supported but not returned by the API.
+ target_languages = %w(en pt) + fetch_languages('target')
+
+ source_languages.index_with { |language| target_languages.without(nil, language) }
end
private
- def languages(type)
- Rails.cache.fetch("translation_service/deepl/languages/#{type}", expires_in: 7.days, race_condition_ttl: 1.minute) do
- request(:get, "/v2/languages?type=#{type}") do |res|
- # In DeepL, EN and PT are deprecated in favor of EN-GB/EN-US and PT-BR/PT-PT, so
- # they are supported but not returned by the API.
- extra = type == 'source' ? [nil] : %w(en pt)
- languages = Oj.load(res.body_with_limit).map { |language| language['language'].downcase }
-
- languages + extra
- end
+ def fetch_languages(type)
+ request(:get, "/v2/languages?type=#{type}") do |res|
+ Oj.load(res.body_with_limit).map { |language| normalize_language(language['language']) }
end
end
+ def normalize_language(language)
+ subtags = language.split(/[_-]/)
+ subtags[0].downcase!
+ subtags[1]&.upcase!
+ subtags.join('-')
+ end
+
def request(verb, path, **options)
req = Request.new(verb, "#{base_url}#{path}", **options)
req.add_headers(Authorization: "DeepL-Auth-Key #{@api_key}")
diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb
index 743e4d77f7..8bb194a9c2 100644
--- a/app/lib/translation_service/libre_translate.rb
+++ b/app/lib/translation_service/libre_translate.rb
@@ -15,22 +15,18 @@ class TranslationService::LibreTranslate < TranslationService
end
end
- def supported?(source_language, target_language)
- languages.key?(source_language) && languages[source_language].include?(target_language)
+ def languages
+ request(:get, '/languages') do |res|
+ languages = Oj.load(res.body_with_limit).to_h do |language|
+ [language['code'], language['targets'].without(language['code'])]
+ end
+ languages[nil] = languages.values.flatten.uniq.sort
+ languages
+ end
end
private
- def languages
- Rails.cache.fetch('translation_service/libre_translate/languages', expires_in: 7.days, race_condition_ttl: 1.minute) do
- request(:get, '/languages') do |res|
- languages = Oj.load(res.body_with_limit).to_h { |language| [language['code'], language['targets']] }
- languages[nil] = languages.values.flatten.uniq
- languages
- end
- end
- end
-
def request(verb, path, **options)
req = Request.new(verb, "#{@base_url}#{path}", allow_local: true, **options)
req.add_headers('Content-Type': 'application/json')
diff --git a/app/models/status.rb b/app/models/status.rb
index dd7ac2edb1..e7ea191a80 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -232,16 +232,6 @@ class Status < ApplicationRecord
public_visibility? || unlisted_visibility?
end
- def translatable?
- translate_target_locale = I18n.locale.to_s.split(/[_-]/).first
-
- distributable? &&
- content.present? &&
- language != translate_target_locale &&
- TranslationService.configured? &&
- TranslationService.configured.supported?(language, translate_target_locale)
- end
-
alias sign? distributable?
def with_media?
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index a422f5b258..e0b8f32a68 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -4,7 +4,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
include FormattingHelper
attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id,
- :sensitive, :spoiler_text, :visibility, :language, :translatable,
+ :sensitive, :spoiler_text, :visibility, :language,
:uri, :url, :replies_count, :reblogs_count,
:favourites_count, :edited_at
@@ -50,10 +50,6 @@ class REST::StatusSerializer < ActiveModel::Serializer
object.account.user_shows_application? || (current_user? && current_user.account_id == object.account_id)
end
- def translatable
- current_user? && object.translatable?
- end
-
def visibility
# This visibility is masked behind "private"
# to avoid API changes because there are no
diff --git a/app/services/translate_status_service.rb b/app/services/translate_status_service.rb
index 92d8b62a05..796f13a0dd 100644
--- a/app/services/translate_status_service.rb
+++ b/app/services/translate_status_service.rb
@@ -6,19 +6,29 @@ class TranslateStatusService < BaseService
include FormattingHelper
def call(status, target_language)
- raise Mastodon::NotPermittedError unless status.translatable?
-
@status = status
@content = status_content_format(@status)
@target_language = target_language
+ raise Mastodon::NotPermittedError unless permitted?
+
Rails.cache.fetch("translations/#{@status.language}/#{@target_language}/#{content_hash}", expires_in: CACHE_TTL) { translation_backend.translate(@content, @status.language, @target_language) }
end
private
def translation_backend
- TranslationService.configured
+ @translation_backend ||= TranslationService.configured
+ end
+
+ def permitted?
+ return false unless @status.distributable? && @status.content.present? && TranslationService.configured?
+
+ languages[@status.language]&.include?(@target_language)
+ end
+
+ def languages
+ Rails.cache.fetch('translation_service/languages', expires_in: 7.days, race_condition_ttl: 1.hour) { TranslationService.configured.languages }
end
def content_hash
diff --git a/config/routes.rb b/config/routes.rb
index 530b46a5a5..ea595e1e12 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -546,6 +546,7 @@ Rails.application.routes.draw do
resources :domain_blocks, only: [:index], controller: 'instances/domain_blocks'
resource :privacy_policy, only: [:show], controller: 'instances/privacy_policies'
resource :extended_description, only: [:show], controller: 'instances/extended_descriptions'
+ resource :translation_languages, only: [:show], controller: 'instances/translation_languages'
resource :activity, only: [:show], controller: 'instances/activity'
end
diff --git a/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb b/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb
new file mode 100644
index 0000000000..5b7e4abb6f
--- /dev/null
+++ b/spec/controllers/api/v1/instances/translation_languages_controller_spec.rb
@@ -0,0 +1,31 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe Api::V1::Instances::TranslationLanguagesController do
+ describe 'GET #show' do
+ context 'when no translation service is configured' do
+ it 'returns empty language matrix' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json).to eq({})
+ end
+ end
+
+ context 'when a translation service is configured' do
+ before do
+ service = instance_double(TranslationService::DeepL, languages: { nil => %w(en de), 'en' => ['de'] })
+ allow(TranslationService).to receive(:configured?).and_return(true)
+ allow(TranslationService).to receive(:configured).and_return(service)
+ end
+
+ it 'returns language matrix' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ expect(body_as_json).to eq({ und: %w(en de), en: ['de'] })
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/statuses/translations_controller_spec.rb b/spec/controllers/api/v1/statuses/translations_controller_spec.rb
index 2deea9fc0c..8495779bf3 100644
--- a/spec/controllers/api/v1/statuses/translations_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses/translations_controller_spec.rb
@@ -19,9 +19,10 @@ describe Api::V1::Statuses::TranslationsController do
before do
translation = TranslationService::Translation.new(text: 'Hello')
- service = instance_double(TranslationService::DeepL, translate: translation, supported?: true)
+ service = instance_double(TranslationService::DeepL, translate: translation)
allow(TranslationService).to receive(:configured?).and_return(true)
allow(TranslationService).to receive(:configured).and_return(service)
+ Rails.cache.write('translation_service/languages', { 'es' => ['en'] })
post :create, params: { status_id: status.id }
end
diff --git a/spec/lib/translation_service/deepl_spec.rb b/spec/lib/translation_service/deepl_spec.rb
index aa24731860..2363f8f139 100644
--- a/spec/lib/translation_service/deepl_spec.rb
+++ b/spec/lib/translation_service/deepl_spec.rb
@@ -16,29 +16,6 @@ RSpec.describe TranslationService::DeepL do
)
end
- describe '#supported?' do
- it 'supports included languages as source and target languages' do
- expect(service.supported?('uk', 'en')).to be true
- end
-
- it 'supports auto-detecting source language' do
- expect(service.supported?(nil, 'en')).to be true
- end
-
- it 'supports "en" and "pt" as target languages though not included in language list' do
- expect(service.supported?('uk', 'en')).to be true
- expect(service.supported?('uk', 'pt')).to be true
- end
-
- it 'does not support non-included language as target language' do
- expect(service.supported?('uk', 'nl')).to be false
- end
-
- it 'does not support non-included language as source language' do
- expect(service.supported?('da', 'en')).to be false
- end
- end
-
describe '#translate' do
it 'returns translation with specified source language' do
stub_request(:post, 'https://api.deepl.com/v2/translate')
@@ -63,13 +40,18 @@ RSpec.describe TranslationService::DeepL do
end
end
- describe '#languages?' do
+ describe '#languages' do
it 'returns source languages' do
- expect(service.send(:languages, 'source')).to eq ['en', 'uk', nil]
+ expect(service.languages.keys).to eq [nil, 'en', 'uk']
end
- it 'returns target languages' do
- expect(service.send(:languages, 'target')).to eq %w(en-gb zh en pt)
+ it 'returns target languages for each source language' do
+ expect(service.languages['en']).to eq %w(pt en-GB zh)
+ expect(service.languages['uk']).to eq %w(en pt en-GB zh)
+ end
+
+ it 'returns target languages for auto-detection' do
+ expect(service.languages[nil]).to eq %w(en pt en-GB zh)
end
end
diff --git a/spec/lib/translation_service/libre_translate_spec.rb b/spec/lib/translation_service/libre_translate_spec.rb
index a6cb01884a..fbd726a7ea 100644
--- a/spec/lib/translation_service/libre_translate_spec.rb
+++ b/spec/lib/translation_service/libre_translate_spec.rb
@@ -7,41 +7,24 @@ RSpec.describe TranslationService::LibreTranslate do
before do
stub_request(:get, 'https://libretranslate.example.com/languages').to_return(
- body: '[{"code": "en","name": "English","targets": ["de","es"]},{"code": "da","name": "Danish","targets": ["en","de"]}]'
+ body: '[{"code": "en","name": "English","targets": ["de","en","es"]},{"code": "da","name": "Danish","targets": ["en","pt"]}]'
)
end
- describe '#supported?' do
- it 'supports included language pair' do
- expect(service.supported?('en', 'de')).to be true
- end
-
- it 'does not support reversed language pair' do
- expect(service.supported?('de', 'en')).to be false
- end
-
- it 'supports auto-detecting source language' do
- expect(service.supported?(nil, 'de')).to be true
- end
-
- it 'does not support auto-detecting for unsupported target language' do
- expect(service.supported?(nil, 'pt')).to be false
- end
- end
-
describe '#languages' do
- subject(:languages) { service.send(:languages) }
+ subject(:languages) { service.languages }
- it 'includes supported source languages' do
+ it 'returns source languages' do
expect(languages.keys).to eq ['en', 'da', nil]
end
- it 'includes supported target languages for source language' do
+ it 'returns target languages for each source language' do
expect(languages['en']).to eq %w(de es)
+ expect(languages['da']).to eq %w(en pt)
end
- it 'includes supported target languages for auto-detected language' do
- expect(languages[nil]).to eq %w(de es en)
+ it 'returns target languages for auto-detected language' do
+ expect(languages[nil]).to eq %w(de en es pt)
end
end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index 1f6cfc7967..1e58c6d0d1 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -114,85 +114,6 @@ RSpec.describe Status, type: :model do
end
end
- describe '#translatable?' do
- before do
- allow(TranslationService).to receive(:configured?).and_return(true)
- allow(TranslationService).to receive(:configured).and_return(TranslationService.new)
- allow(TranslationService.configured).to receive(:supported?).with('es', 'en').and_return(true)
-
- subject.language = 'es'
- subject.visibility = :public
- end
-
- context 'all conditions are satisfied' do
- it 'returns true' do
- expect(subject.translatable?).to be true
- end
- end
-
- context 'translation service is not configured' do
- it 'returns false' do
- allow(TranslationService).to receive(:configured?).and_return(false)
- allow(TranslationService).to receive(:configured).and_raise(TranslationService::NotConfiguredError)
- expect(subject.translatable?).to be false
- end
- end
-
- context 'status language is nil' do
- it 'returns true' do
- subject.language = nil
- allow(TranslationService.configured).to receive(:supported?).with(nil, 'en').and_return(true)
- expect(subject.translatable?).to be true
- end
- end
-
- context 'status language is same as default locale' do
- it 'returns false' do
- subject.language = I18n.locale
- expect(subject.translatable?).to be false
- end
- end
-
- context 'status language is unsupported' do
- it 'returns false' do
- subject.language = 'af'
- allow(TranslationService.configured).to receive(:supported?).with('af', 'en').and_return(false)
- expect(subject.translatable?).to be false
- end
- end
-
- context 'default locale is unsupported' do
- it 'returns false' do
- allow(TranslationService.configured).to receive(:supported?).with('es', 'af').and_return(false)
- I18n.with_locale('af') do
- expect(subject.translatable?).to be false
- end
- end
- end
-
- context 'default locale has region' do
- it 'returns true' do
- I18n.with_locale('en-GB') do
- expect(subject.translatable?).to be true
- end
- end
- end
-
- context 'status text is blank' do
- it 'returns false' do
- subject.text = ' '
- expect(subject.translatable?).to be false
- end
- end
-
- context 'status visiblity is hidden' do
- it 'returns false' do
- subject.visibility = 'limited'
- expect(subject.translatable?).to be false
- end
- end
- end
-
describe '#content' do
it 'returns the text of the status if it is not a reblog' do
expect(subject.content).to eql subject.text
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 795abd8b45..2a1d668ceb 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
describe InstancePresenter do
- let(:instance_presenter) { InstancePresenter.new }
+ let(:instance_presenter) { described_class.new }
describe '#description' do
around do |example|
From a08590110891051fb403678b44c9e0982d4a2d83 Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 13:02:00 +0100
Subject: [PATCH 0279/1254] New Crowdin updates (#23904)
Co-authored-by: Yamagishi Kazutoshi
---
app/javascript/mastodon/locales/af.json | 2 +
app/javascript/mastodon/locales/an.json | 2 +
app/javascript/mastodon/locales/ar.json | 2 +
app/javascript/mastodon/locales/ast.json | 22 +-
app/javascript/mastodon/locales/be.json | 8 +-
app/javascript/mastodon/locales/bg.json | 6 +-
app/javascript/mastodon/locales/bn.json | 2 +
app/javascript/mastodon/locales/br.json | 2 +
app/javascript/mastodon/locales/bs.json | 2 +
app/javascript/mastodon/locales/ca.json | 4 +-
app/javascript/mastodon/locales/ckb.json | 72 +-
app/javascript/mastodon/locales/co.json | 2 +
app/javascript/mastodon/locales/cs.json | 2 +
app/javascript/mastodon/locales/csb.json | 2 +
app/javascript/mastodon/locales/cy.json | 2 +
app/javascript/mastodon/locales/da.json | 2 +
app/javascript/mastodon/locales/de.json | 32 +-
.../mastodon/locales/defaultMessages.json | 8 +
app/javascript/mastodon/locales/el.json | 2 +
app/javascript/mastodon/locales/en-GB.json | 2 +
app/javascript/mastodon/locales/eo.json | 36 +-
app/javascript/mastodon/locales/es-AR.json | 2 +
app/javascript/mastodon/locales/es-MX.json | 2 +
app/javascript/mastodon/locales/es.json | 2 +
app/javascript/mastodon/locales/et.json | 8 +-
app/javascript/mastodon/locales/eu.json | 2 +
app/javascript/mastodon/locales/fa.json | 2 +
app/javascript/mastodon/locales/fi.json | 4 +-
app/javascript/mastodon/locales/fo.json | 2 +
app/javascript/mastodon/locales/fr-QC.json | 2 +
app/javascript/mastodon/locales/fr.json | 6 +-
app/javascript/mastodon/locales/fy.json | 2 +
app/javascript/mastodon/locales/ga.json | 2 +
app/javascript/mastodon/locales/gd.json | 2 +
app/javascript/mastodon/locales/gl.json | 2 +
app/javascript/mastodon/locales/he.json | 2 +
app/javascript/mastodon/locales/hi.json | 2 +
app/javascript/mastodon/locales/hr.json | 2 +
app/javascript/mastodon/locales/hu.json | 2 +
app/javascript/mastodon/locales/hy.json | 2 +
app/javascript/mastodon/locales/id.json | 2 +
app/javascript/mastodon/locales/ig.json | 2 +
app/javascript/mastodon/locales/io.json | 2 +
app/javascript/mastodon/locales/is.json | 2 +
app/javascript/mastodon/locales/it.json | 2 +
app/javascript/mastodon/locales/ja.json | 4 +-
app/javascript/mastodon/locales/ka.json | 2 +
app/javascript/mastodon/locales/kab.json | 2 +
app/javascript/mastodon/locales/kk.json | 2 +
app/javascript/mastodon/locales/kn.json | 2 +
app/javascript/mastodon/locales/ko.json | 2 +
app/javascript/mastodon/locales/ku.json | 2 +
app/javascript/mastodon/locales/kw.json | 4 +-
app/javascript/mastodon/locales/la.json | 2 +
app/javascript/mastodon/locales/lt.json | 2 +
app/javascript/mastodon/locales/lv.json | 16 +-
app/javascript/mastodon/locales/mk.json | 2 +
app/javascript/mastodon/locales/ml.json | 2 +
app/javascript/mastodon/locales/mr.json | 2 +
app/javascript/mastodon/locales/ms.json | 2 +
app/javascript/mastodon/locales/my.json | 286 +--
app/javascript/mastodon/locales/nl.json | 4 +-
app/javascript/mastodon/locales/nn.json | 12 +-
app/javascript/mastodon/locales/no.json | 2 +
app/javascript/mastodon/locales/oc.json | 2 +
app/javascript/mastodon/locales/pa.json | 2 +
app/javascript/mastodon/locales/pl.json | 6 +-
app/javascript/mastodon/locales/pt-BR.json | 2 +
app/javascript/mastodon/locales/pt-PT.json | 2 +
app/javascript/mastodon/locales/ro.json | 2 +
app/javascript/mastodon/locales/ru.json | 2 +
app/javascript/mastodon/locales/sa.json | 760 ++++----
app/javascript/mastodon/locales/sc.json | 2 +
app/javascript/mastodon/locales/sco.json | 2 +
app/javascript/mastodon/locales/si.json | 2 +
app/javascript/mastodon/locales/sk.json | 8 +-
app/javascript/mastodon/locales/sl.json | 2 +
app/javascript/mastodon/locales/sq.json | 2 +
app/javascript/mastodon/locales/sr-Latn.json | 124 +-
app/javascript/mastodon/locales/sr.json | 120 +-
app/javascript/mastodon/locales/sv.json | 2 +
app/javascript/mastodon/locales/szl.json | 2 +
app/javascript/mastodon/locales/ta.json | 2 +
app/javascript/mastodon/locales/tai.json | 2 +
app/javascript/mastodon/locales/te.json | 2 +
app/javascript/mastodon/locales/th.json | 10 +-
app/javascript/mastodon/locales/tr.json | 2 +
app/javascript/mastodon/locales/tt.json | 144 +-
app/javascript/mastodon/locales/ug.json | 2 +
app/javascript/mastodon/locales/uk.json | 2 +
app/javascript/mastodon/locales/ur.json | 2 +
app/javascript/mastodon/locales/uz.json | 2 +
app/javascript/mastodon/locales/vi.json | 2 +
app/javascript/mastodon/locales/zgh.json | 2 +
app/javascript/mastodon/locales/zh-CN.json | 2 +
app/javascript/mastodon/locales/zh-HK.json | 2 +
app/javascript/mastodon/locales/zh-TW.json | 4 +-
config/locales/activerecord.ka.yml | 37 +
config/locales/activerecord.tt.yml | 4 +-
config/locales/an.yml | 1 -
config/locales/ar.yml | 6 +-
config/locales/ast.yml | 5 +-
config/locales/be.yml | 5 +-
config/locales/bg.yml | 8 +-
config/locales/br.yml | 1 -
config/locales/ca.yml | 10 +-
config/locales/ckb.yml | 1 -
config/locales/co.yml | 1 -
config/locales/cs.yml | 8 +-
config/locales/cy.yml | 6 +-
config/locales/da.yml | 13 +-
config/locales/de.yml | 208 +--
config/locales/devise.de.yml | 18 +-
config/locales/devise.et.yml | 4 +-
config/locales/devise.my.yml | 2 +-
config/locales/doorkeeper.de.yml | 8 +-
config/locales/doorkeeper.sr-Latn.yml | 17 +-
config/locales/doorkeeper.sr.yml | 5 +
config/locales/el.yml | 194 ++-
config/locales/en-GB.yml | 359 ++++
config/locales/eo.yml | 13 +-
config/locales/es-AR.yml | 6 +-
config/locales/es-MX.yml | 6 +-
config/locales/es.yml | 6 +-
config/locales/et.yml | 16 +-
config/locales/eu.yml | 6 +-
config/locales/fa.yml | 11 +-
config/locales/fi.yml | 10 +-
config/locales/fo.yml | 6 +-
config/locales/fr-QC.yml | 6 +-
config/locales/fr.yml | 6 +-
config/locales/fy.yml | 6 +-
config/locales/ga.yml | 1 -
config/locales/gd.yml | 1 -
config/locales/gl.yml | 6 +-
config/locales/he.yml | 6 +-
config/locales/hi.yml | 9 +
config/locales/hr.yml | 2 -
config/locales/hu.yml | 6 +-
config/locales/hy.yml | 1 -
config/locales/id.yml | 1 -
config/locales/io.yml | 1 -
config/locales/is.yml | 6 +-
config/locales/it.yml | 6 +-
config/locales/ja.yml | 10 +-
config/locales/ka.yml | 1 -
config/locales/kab.yml | 1 -
config/locales/kk.yml | 1 -
config/locales/ko.yml | 12 +-
config/locales/ku.yml | 1 -
config/locales/lt.yml | 2 -
config/locales/lv.yml | 8 +-
config/locales/ms.yml | 1 -
config/locales/my.yml | 345 ++++
config/locales/nl.yml | 6 +-
config/locales/nn.yml | 128 +-
config/locales/no.yml | 1 -
config/locales/oc.yml | 1 -
config/locales/pl.yml | 6 +-
config/locales/pt-BR.yml | 13 +-
config/locales/pt-PT.yml | 6 +-
config/locales/ru.yml | 1 -
config/locales/sc.yml | 1 -
config/locales/sco.yml | 1 -
config/locales/si.yml | 1 -
config/locales/simple_form.ast.yml | 9 +
config/locales/simple_form.bg.yml | 42 +-
config/locales/simple_form.da.yml | 5 +
config/locales/simple_form.de.yml | 22 +-
config/locales/simple_form.et.yml | 8 +-
config/locales/simple_form.fi.yml | 4 +-
config/locales/simple_form.ko.yml | 6 +-
config/locales/simple_form.my.yml | 141 ++
config/locales/simple_form.pt-BR.yml | 1 +
config/locales/simple_form.sr-Latn.yml | 142 +-
config/locales/simple_form.sr.yml | 106 +-
config/locales/simple_form.th.yml | 2 +-
config/locales/simple_form.tt.yml | 4 +-
config/locales/simple_form.zh-TW.yml | 4 +-
config/locales/sk.yml | 4 +-
config/locales/sl.yml | 6 +-
config/locales/sq.yml | 6 +-
config/locales/sr-Latn.yml | 1544 ++++++++++++++++-
config/locales/sr.yml | 1017 ++++++++++-
config/locales/sv.yml | 6 +-
config/locales/th.yml | 10 +-
config/locales/tr.yml | 6 +-
config/locales/tt.yml | 40 +-
config/locales/uk.yml | 6 +-
config/locales/vi.yml | 6 +-
config/locales/zh-CN.yml | 8 +-
config/locales/zh-HK.yml | 1 -
config/locales/zh-TW.yml | 14 +-
193 files changed, 5237 insertions(+), 1397 deletions(-)
diff --git a/app/javascript/mastodon/locales/af.json b/app/javascript/mastodon/locales/af.json
index 7d77246188..c04cae948d 100644
--- a/app/javascript/mastodon/locales/af.json
+++ b/app/javascript/mastodon/locales/af.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Blokkeer die hele domein",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Teken Uit",
"confirmations.logout.message": "Is jy seker jy wil uitteken?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/an.json b/app/javascript/mastodon/locales/an.json
index 389c512fea..9f66c8d131 100644
--- a/app/javascript/mastodon/locales/an.json
+++ b/app/javascript/mastodon/locales/an.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tiens cambios sin alzar en a descripción u vista previa d'o fichero audiovisual, descartar-los de totz modos?",
"confirmations.domain_block.confirm": "Amagar dominio entero",
"confirmations.domain_block.message": "Yes seguro que quiers blocar lo dominio {domain} entero? En cheneral ye prou, y preferible, fer uns quantos bloqueyos y silenciaus concretos. Los tuyos seguidros d'ixe dominio serán eliminaus.",
+ "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.logout.confirm": "Zarrar sesión",
"confirmations.logout.message": "Yes seguro de querer zarrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json
index cf5dfb55bf..d7d3baf4e7 100644
--- a/app/javascript/mastodon/locales/ar.json
+++ b/app/javascript/mastodon/locales/ar.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "لديك تغييرات غير محفوظة لوصف الوسائط أو معاينتها، تجاهلها على أي حال؟",
"confirmations.domain_block.confirm": "حظر اِسم النِّطاق بشكلٍ كامل",
"confirmations.domain_block.message": "متأكد من أنك تود حظر اسم النطاق {domain} بالكامل ؟ في غالب الأحيان يُستَحسَن كتم أو حظر بعض الحسابات بدلا من حظر نطاق بالكامل.\nلن تتمكن مِن رؤية محتوى هذا النطاق لا على خيوطك العمومية و لا في إشعاراتك. سوف يتم كذلك إزالة كافة متابعيك المنتمين إلى هذا النطاق.",
+ "confirmations.edit.confirm": "تعديل",
+ "confirmations.edit.message": "التعديل في الحين سوف يُعيد كتابة الرسالة التي أنت بصدد تحريرها. متأكد من أنك تريد المواصلة؟",
"confirmations.logout.confirm": "خروج",
"confirmations.logout.message": "متأكد من أنك تريد الخروج؟",
"confirmations.mute.confirm": "أكتم",
diff --git a/app/javascript/mastodon/locales/ast.json b/app/javascript/mastodon/locales/ast.json
index 018d950d74..2881911a69 100644
--- a/app/javascript/mastodon/locales/ast.json
+++ b/app/javascript/mastodon/locales/ast.json
@@ -38,7 +38,7 @@
"account.follows.empty": "Esti perfil entá nun sigue a naide.",
"account.follows_you": "Síguete",
"account.go_to_profile": "Go to profile",
- "account.hide_reblogs": "Hide boosts from @{name}",
+ "account.hide_reblogs": "Anubrir los artículos compartíos de @{name}",
"account.joined_short": "Data de xunión",
"account.languages": "Change subscribed languages",
"account.link_verified_on": "Ownership of this link was checked on {date}",
@@ -65,7 +65,7 @@
"account.unfollow": "Dexar de siguir",
"account.unmute": "Activar los avisos de @{name}",
"account.unmute_notifications": "Activar los avisos de @{name}",
- "account.unmute_short": "Unmute",
+ "account.unmute_short": "Activar los avisos",
"account_note.placeholder": "Calca equí p'amestar una nota",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Bloquiar tol dominiu",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "confirmations.edit.confirm": "Edit",
+ "confirmations.edit.message": "La edición va sobrescribir el mensaxe que tas escribiendo. ¿De xuru que quies siguir?",
"confirmations.logout.confirm": "Zarrar la sesión",
"confirmations.logout.message": "¿De xuru que quies zarrar la sesión?",
"confirmations.mute.confirm": "Mute",
@@ -213,7 +215,7 @@
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "Entá nun bloquiesti a nengún perfil.",
"empty_column.bookmarked_statuses": "Entá nun tienes nengún artículu en Marcadores. Cuando amiestes dalgún, apaez equí.",
- "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
+ "empty_column.community": "La llinia de tiempu llocal ta balera. ¡Espubliza daqué públicamente pa comenzar l'alderique!",
"empty_column.direct": "Entá nun tienes nengún mensaxe direutu. Cuando unvies o recibas dalgún, apaez equí.",
"empty_column.domain_blocks": "Entá nun hai nengún dominiu bloquiáu.",
"empty_column.explore_statuses": "Agora nun hai nada en tendencia. ¡Volvi equí dempués!",
@@ -233,7 +235,7 @@
"error.unexpected_crash.explanation": "Pola mor d'un fallu nel códigu o un problema de compatibilidá del restolador, esta páxina nun se pudo amosar correutamente.",
"error.unexpected_crash.explanation_addons": "Esta páxina nun se pudo amosar correutamente. Ye probable que dalgún complementu del restolador o dalguna ferramienta de traducción automática produxere esti error.",
"error.unexpected_crash.next_steps": "Prueba a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
- "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
+ "error.unexpected_crash.next_steps_addons": "Prueba a desactivalos ya a anovar la páxina. Si nun sirve, ye posible que tovía seyas a usar Mastodon pente otru restolador o una aplicación nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
"errors.unexpected_crash.report_issue": "Report issue",
"explore.search_results": "Resultaos de la busca",
@@ -274,7 +276,7 @@
"footer.source_code": "Ver el códigu fonte",
"footer.status": "Estáu",
"generic.saved": "Guardóse",
- "getting_started.heading": "Getting started",
+ "getting_started.heading": "Comienzu",
"hashtag.column_header.tag_mode.all": "y {additional}",
"hashtag.column_header.tag_mode.any": "o {additional}",
"hashtag.column_header.tag_mode.none": "ensin {additional}",
@@ -491,7 +493,7 @@
"report.comment.title": "¿Hai daqué más qu'habríemos saber?",
"report.forward": "Reunviar a {target}",
"report.forward_hint": "La cuenta ye d'otru sirvidor. ¿Quies unviar a esi sirvidor una copia anónima del informe?",
- "report.mute": "Mute",
+ "report.mute": "Desactivar los avisos",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "Siguiente",
"report.placeholder": "Comentarios adicionales",
@@ -508,11 +510,11 @@
"report.statuses.subtitle": "Select all that apply",
"report.statuses.title": "¿Hai dalgún artículu qu'apoye esti informe?",
"report.submit": "Unviar",
- "report.target": "Report {target}",
+ "report.target": "Informe de: {target}",
"report.thanks.take_action": "Equí tienes les opciones pa controlar qué ves en Mastodon:",
- "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
- "report.thanks.title": "Don't want to see this?",
- "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
+ "report.thanks.take_action_actionable": "Mentanto revisamos esti informe, pues tomar midíes contra @{name}:",
+ "report.thanks.title": "¿Nun quies ver esti conteníu?",
+ "report.thanks.title_actionable": "Gracies pol informe, el casu xá ta n'investigación.",
"report.unfollow": "Dexar de siguir a @{name}",
"report.unfollow_explanation": "Sigues a esta cuenta. Pa dexar de ver los sos artículos nel to feed d'aniciu, dexa de siguila.",
"report_notification.attached_statuses": "{count, plural, one {Axuntóse {count} artículu} other {Axuntáronse {count} artículos}}",
diff --git a/app/javascript/mastodon/locales/be.json b/app/javascript/mastodon/locales/be.json
index 08aa5ef3b2..05c328f6af 100644
--- a/app/javascript/mastodon/locales/be.json
+++ b/app/javascript/mastodon/locales/be.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "У вас ёсць незахаваныя змены ў апісанні або прэв'ю, усе роўна скасаваць іх?",
"confirmations.domain_block.confirm": "Заблакіраваць дамен цалкам",
"confirmations.domain_block.message": "Вы абсалютна дакладна ўпэўнены, што хочаце заблакіраваць {domain} зусім? У большасці выпадкаў, дастаткова некалькіх мэтавых блакіровак ці ігнараванняў. Вы перастанеце бачыць змесціва з гэтага дамену ва ўсіх стужках і апавяшчэннях. Вашы падпіскі з гэтага дамену будуць выдаленыя.",
+ "confirmations.edit.confirm": "Рэдагаваць",
+ "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.logout.confirm": "Выйсці",
"confirmations.logout.message": "Вы ўпэўненыя, што хочаце выйсці?",
"confirmations.mute.confirm": "Ігнараваць",
@@ -203,7 +205,7 @@
"emoji_button.not_found": "Адпаведныя эмодзі не знойдзены",
"emoji_button.objects": "Прадметы",
"emoji_button.people": "Людзі",
- "emoji_button.recent": "Карыстаныя найчасцей",
+ "emoji_button.recent": "Чата выкарыстаныя",
"emoji_button.search": "Пошук...",
"emoji_button.search_results": "Вынікі пошуку",
"emoji_button.symbols": "Сімвалы",
@@ -354,10 +356,10 @@
"lists.edit.submit": "Змяніць назву",
"lists.new.create": "Дадаць спіс",
"lists.new.title_placeholder": "Назва новага спіса",
- "lists.replies_policy.followed": "Любы карыстальнік, за якім вы падпісаліся",
+ "lists.replies_policy.followed": "Любы карыстальнік, на якога вы падпісаліся",
"lists.replies_policy.list": "Удзельнікі гэтага спісу",
"lists.replies_policy.none": "Нікога",
- "lists.replies_policy.title": "Паказаць адказы да:",
+ "lists.replies_policy.title": "Паказваць адказы:",
"lists.search": "Шукайце сярод людзей, на якіх Вы падпісаны",
"lists.subheading": "Вашыя спісы",
"load_pending": "{count, plural, one {# новы элемент} few {# новыя элементы} many {# новых элементаў} other {# новых элементаў}}",
diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json
index cd6baafac7..248fd1ccbe 100644
--- a/app/javascript/mastodon/locales/bg.json
+++ b/app/javascript/mastodon/locales/bg.json
@@ -18,7 +18,7 @@
"account.block": "Блокиране на @{name}",
"account.block_domain": "Блокиране на домейн {domain}",
"account.blocked": "Блокирани",
- "account.browse_more_on_origin_server": "Разглеждане на още в първообразния профил",
+ "account.browse_more_on_origin_server": "Разглеждане на още в оригиналния профил",
"account.cancel_follow_request": "Оттегляне на заявката за последване",
"account.direct": "Директно съобщение до @{name}",
"account.disable_notifications": "Сприране на известия при публикуване от @{name}",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Не сте запазили промени на описанието или огледа на мултимедията, отхвърляте ли ги?",
"confirmations.domain_block.confirm": "Блокиране на целия домейн",
"confirmations.domain_block.message": "Наистина ли искате да блокирате целия {domain}? В повечето случаи няколко блокирания или заглушавания са достатъчно и за предпочитане. Няма да виждате съдържание от домейна из публични часови оси или известията си. Вашите последователи от този домейн ще се премахнат.",
+ "confirmations.edit.confirm": "Редактиране",
+ "confirmations.edit.message": "Редактирането сега ще замени съобщението, което в момента съставяте. Сигурни ли сте, че искате да продължите?",
"confirmations.logout.confirm": "Излизане",
"confirmations.logout.message": "Наистина ли искате да излезете?",
"confirmations.mute.confirm": "Заглушаване",
@@ -353,7 +355,7 @@
"lists.edit": "Промяна на списъка",
"lists.edit.submit": "Промяна на заглавие",
"lists.new.create": "Добавяне на списък",
- "lists.new.title_placeholder": "Име на нов списък",
+ "lists.new.title_placeholder": "Ново заглавие на списъка",
"lists.replies_policy.followed": "Някой последван потребител",
"lists.replies_policy.list": "Членуващите в списъка",
"lists.replies_policy.none": "Никого",
diff --git a/app/javascript/mastodon/locales/bn.json b/app/javascript/mastodon/locales/bn.json
index 07609a478d..7da6f78dc6 100644
--- a/app/javascript/mastodon/locales/bn.json
+++ b/app/javascript/mastodon/locales/bn.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "এই ডোমেন থেকে সব লুকান",
"confirmations.domain_block.message": "আপনি কি সত্যিই সত্যই নিশ্চিত যে আপনি পুরো {domain}'টি ব্লক করতে চান? বেশিরভাগ ক্ষেত্রে কয়েকটি লক্ষ্যযুক্ত ব্লক বা নীরবতা যথেষ্ট এবং পছন্দসই। আপনি কোনও পাবলিক টাইমলাইন বা আপনার বিজ্ঞপ্তিগুলিতে সেই ডোমেন থেকে সামগ্রী দেখতে পাবেন না। সেই ডোমেন থেকে আপনার অনুসরণকারীদের সরানো হবে।",
+ "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.logout.confirm": "প্রস্থান",
"confirmations.logout.message": "আপনি লগ আউট করতে চান?",
"confirmations.mute.confirm": "সরিয়ে ফেলুন",
diff --git a/app/javascript/mastodon/locales/br.json b/app/javascript/mastodon/locales/br.json
index bb19a0452d..5cc331af45 100644
--- a/app/javascript/mastodon/locales/br.json
+++ b/app/javascript/mastodon/locales/br.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Bez ez eus kemmoù n'int ket enrollet e deskrivadur ar media pe ar rakwel, nullañ anezho evelato?",
"confirmations.domain_block.confirm": "Berzañ an domani a-bezh",
"confirmations.domain_block.message": "Ha sur oc'h e fell deoc'h berzañ an {domain} a-bezh? Peurvuiañ eo trawalc'h berzañ pe mudañ un nebeud implijer·ezed·ien. Ne welot danvez ebet o tont eus an domani-mañ. Dilamet e vo ar c'houmanantoù war an domani-mañ.",
+ "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.logout.confirm": "Digevreañ",
"confirmations.logout.message": "Ha sur oc'h e fell deoc'h digevreañ ?",
"confirmations.mute.confirm": "Kuzhat",
diff --git a/app/javascript/mastodon/locales/bs.json b/app/javascript/mastodon/locales/bs.json
index bd89ec9fd2..d67f73c003 100644
--- a/app/javascript/mastodon/locales/bs.json
+++ b/app/javascript/mastodon/locales/bs.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json
index 381deaa0c4..ebfafcbd32 100644
--- a/app/javascript/mastodon/locales/ca.json
+++ b/app/javascript/mastodon/locales/ca.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tens canvis no desats en la descripció del contingut o en la previsualització, els vols descartar?",
"confirmations.domain_block.confirm": "Bloca el domini sencer",
"confirmations.domain_block.message": "Segur que vols blocar {domain} del tot? En la majoria dels casos, només amb blocar o silenciar uns pocs comptes n'hi ha prou i és millor. No veuràs el contingut d’aquest domini en cap de les línies de temps ni en les notificacions. S'eliminaran els teus seguidors d’aquest domini.",
+ "confirmations.edit.confirm": "Edita",
+ "confirmations.edit.message": "Editant ara sobreescriuràs el missatge que estàs editant. Segur que vols continuar?",
"confirmations.logout.confirm": "Tanca la sessió",
"confirmations.logout.message": "Segur que vols tancar la sessió?",
"confirmations.mute.confirm": "Silencia",
@@ -437,7 +439,7 @@
"notifications.group": "{count} notificacions",
"notifications.mark_as_read": "Marca cada notificació com a llegida",
"notifications.permission_denied": "Les notificacions d’escriptori no estan disponibles perquè prèviament s’ha denegat el permís al navegador",
- "notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè el permís del navegador ha estat denegat abans",
+ "notifications.permission_denied_alert": "No es poden activar les notificacions de l'escriptori perquè abans s'ha denegat el permís del navegador",
"notifications.permission_required": "Les notificacions d'escriptori no estan disponibles perquè el permís requerit no ha estat concedit.",
"notifications_permission_banner.enable": "Activa les notificacions d’escriptori",
"notifications_permission_banner.how_to_control": "Per a rebre notificacions quan Mastodon no és obert cal activar les notificacions d’escriptori. Pots controlar amb precisió quins tipus d’interaccions generen notificacions d’escriptori després d’activar el botó {icon} de dalt.",
diff --git a/app/javascript/mastodon/locales/ckb.json b/app/javascript/mastodon/locales/ckb.json
index 8349e34bc4..7623b5b993 100644
--- a/app/javascript/mastodon/locales/ckb.json
+++ b/app/javascript/mastodon/locales/ckb.json
@@ -54,7 +54,7 @@
"account.posts_with_replies": "توتس و وەڵامەکان",
"account.report": "گوزارشت @{name}",
"account.requested": "چاوەڕێی ڕەزامەندین. کرتە بکە بۆ هەڵوەشاندنەوەی داواکاری شوێنکەوتن",
- "account.requested_follow": "{name} has requested to follow you",
+ "account.requested_follow": "{name} داوای کردووە شوێنت بکەوێت",
"account.share": "پرۆفایلی @{name} هاوبەش بکە",
"account.show_reblogs": "پیشاندانی بەرزکردنەوەکان لە @{name}",
"account.statuses_counter": "{count, plural, one {{counter} Following} other {{counter} Following}}",
@@ -128,7 +128,7 @@
"compose.language.search": "گەڕان بە زمانەکان...",
"compose_form.direct_message_warning_learn_more": "زیاتر فێربه",
"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.hashtag_warning": "ئەم بڵاوکراوەیە لە ژێر هیچ هاشتاگێکدا دا نانرێت وەک ئەوەیە، کە گشتی نەبێت. تەنها بڵاوکراوە گشتیەکان دەتوانرێ بە هاشتاگ گەڕانی بۆ بکرێت.",
"compose_form.lock_disclaimer": "هەژمێرەکەی لە حاڵەتی {locked}. هەر کەسێک دەتوانێت شوێنت بکەوێت بۆ پیشاندانی بابەتەکانی تەنها دوایخۆی.",
"compose_form.lock_disclaimer.lock": "قفڵ دراوە",
"compose_form.placeholder": "چی لە مێشکتدایە?",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "گۆڕانکاریت لە وەسف یان پێشبینی میدیادا هەڵنەگیراوە، بەهەر حاڵ فڕێیان بدە؟",
"confirmations.domain_block.confirm": "بلۆککردنی هەموو دۆمەینەکە",
"confirmations.domain_block.message": "ئایا بەڕاستی، بەڕاستی تۆ دەتەوێت هەموو {domain} بلۆک بکەیت؟ لە زۆربەی حاڵەتەکاندا چەند بلۆکێکی ئامانجدار یان بێدەنگەکان پێویست و پەسەندن. تۆ ناوەڕۆک ێک نابینیت لە دۆمەینەکە لە هیچ هێڵی کاتی گشتی یان ئاگانامەکانت. شوێنکەوتوانی تۆ لەو دۆمەینەوە لادەبرێن.",
+ "confirmations.edit.confirm": "دەستکاری",
+ "confirmations.edit.message": "دەستکاری کردنی ئێستا: دەبێتە هۆی نووسینەوەی ئەو پەیامەی، کە ئێستا داتدەڕشت. ئایا دڵنیای، کە دەتەوێت بەردەوام بیت؟",
"confirmations.logout.confirm": "چوونە دەرەوە",
"confirmations.logout.message": "ئایا دڵنیایت لەوەی دەتەوێت بچیتە دەرەوە?",
"confirmations.mute.confirm": "بێدەنگ",
@@ -221,7 +223,7 @@
"empty_column.favourites": "کەس ئەم توتەی دڵخواز نەکردووە،کاتێک کەسێک وا بکات، لێرە دەرئەکەون.",
"empty_column.follow_recommendations": "پێدەچێت هیچ پێشنیارێک بۆ تۆ دروست نەکرێت. دەتوانیت هەوڵبدەیت گەڕان بەکاربهێنیت بۆ گەڕان بەدوای ئەو کەسانەی کە ڕەنگە بیانناسیت یان بەدوای هاشتاگە ڕەوتەکاندا بگەڕێیت.",
"empty_column.follow_requests": "تۆ هێشتا هیچ داواکارییەکی بەدواداچووت نیە. کاتێک یەکێکت بۆ هات، لێرە دەرئەکەویت.",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "تۆ هێشتا شوێن هیچ هاشتاگێک نەکەوتوویت. کاتێک کردت، ئەوان لێرە دەردەکەون.",
"empty_column.hashtag": "هێشتا هیچ شتێک لەم هاشتاگەدا نییە.",
"empty_column.home": "تایم لاینی ماڵەوەت بەتاڵە! سەردانی {public} بکە یان گەڕان بەکاربێنە بۆ دەستپێکردن و بینینی بەکارهێنەرانی تر.",
"empty_column.home.suggestions": "چەند پێشنیارێک ببینە",
@@ -237,42 +239,42 @@
"errors.unexpected_crash.copy_stacktrace": "کۆپیکردنی ستێکتراسی بۆ کلیپ بۆرد",
"errors.unexpected_crash.report_issue": "کێشەی گوزارشت",
"explore.search_results": "ئەنجامەکانی گەڕان",
- "explore.suggested_follows": "For you",
+ "explore.suggested_follows": "بۆ تۆ",
"explore.title": "گەڕان",
- "explore.trending_links": "News",
- "explore.trending_statuses": "Posts",
- "explore.trending_tags": "Hashtags",
+ "explore.trending_links": "هەواڵەکان",
+ "explore.trending_statuses": "بڵاوکراوەکان",
+ "explore.trending_tags": "هاشتاگەکان",
"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.review_and_configure": "بۆ پێداچوونەوە و ڕێکخستنی زیاتری ئەم پۆلە فلتەرە، بچۆ بۆ {settings_link}.",
- "filter_modal.added.review_and_configure_title": "Filter settings",
- "filter_modal.added.settings_link": "settings page",
- "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
- "filter_modal.added.title": "Filter added!",
- "filter_modal.select_filter.context_mismatch": "does not apply to this context",
- "filter_modal.select_filter.expired": "expired",
- "filter_modal.select_filter.prompt_new": "New category: {name}",
- "filter_modal.select_filter.search": "Search or create",
- "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",
+ "filter_modal.added.review_and_configure_title": "ڕێکخستنەکانی پاڵاوتن",
+ "filter_modal.added.settings_link": "پەڕەی ڕێکخستن",
+ "filter_modal.added.short_explanation": "بڵاوکراوەکە زیادکرا بۆ ئەو پاڵاوتنانەی خوارەوە: {title}.",
+ "filter_modal.added.title": "پاڵێو زیادکرا!",
+ "filter_modal.select_filter.context_mismatch": "لەم چوارچێوەیەدا کارپێکراو نییە",
+ "filter_modal.select_filter.expired": "بەسەرچووە",
+ "filter_modal.select_filter.prompt_new": "پۆلێنی نوێ: {name}",
+ "filter_modal.select_filter.search": "گەڕان یان دروستکردن",
+ "filter_modal.select_filter.subtitle": "بەکارهێنانی پۆلێنی بەردەست یان دروستکردنی پۆلێنێکی نوێ",
+ "filter_modal.select_filter.title": "ئەم بڵاوکراوەیە بپاڵێوە",
+ "filter_modal.title.status": "بڵاوکراوەیەک بپاڵێوە",
"follow_recommendations.done": "تەواو",
"follow_recommendations.heading": "شوێن ئەو کەسانە بکەون کە دەتەوێت پۆستەکان ببینیت لە! لێرەدا چەند پێشنیارێک هەیە.",
"follow_recommendations.lead": "بابەتەکانی ئەو کەسانەی کە بەدوایدا دەگەڕێیت بە فەرمانی کرۆنۆلۆجی لە خواردنەکانی ماڵەکەت دەردەکەون. مەترسە لە هەڵەکردن، دەتوانیت بە ئاسانی خەڵک هەڵبکەیت هەر کاتێک!",
"follow_request.authorize": "دهسهڵاتپێدراو",
"follow_request.reject": "ڕەتکردنەوە",
"follow_requests.unlocked_explanation": "هەرچەندە هەژمارەکەت داخراو نییە، ستافی {domain} وا بیریان کردەوە کە لەوانەیە بتانەوێت پێداچوونەوە بە داواکاریەکانی ئەم هەژمارەدا بکەن بە دەستی.",
- "followed_tags": "Followed hashtags",
- "footer.about": "About",
- "footer.directory": "Profiles directory",
- "footer.get_app": "Get the app",
- "footer.invite": "Invite people",
- "footer.keyboard_shortcuts": "Keyboard shortcuts",
- "footer.privacy_policy": "Privacy policy",
- "footer.source_code": "View source code",
- "footer.status": "Status",
+ "followed_tags": "هاشتاگە شوێنکەوتووەکان",
+ "footer.about": "دەربارە",
+ "footer.directory": "ڕابەری پەڕەی ناساندن",
+ "footer.get_app": "بەرنامەکە بەدەست بێنە",
+ "footer.invite": "بانگهێشتکردنی خەڵک",
+ "footer.keyboard_shortcuts": "کورتەڕێکانی تەختەکلیک",
+ "footer.privacy_policy": "سیاسەتی تایبەتمەندێتی",
+ "footer.source_code": "پیشاندانی کۆدی سەرچاوە",
+ "footer.status": "دۆخ",
"generic.saved": "پاشکەوتکرا",
"getting_started.heading": "دەست پێکردن",
"hashtag.column_header.tag_mode.all": "و {additional}",
@@ -284,19 +286,19 @@
"hashtag.column_settings.tag_mode.any": "هەر کام لەمانە",
"hashtag.column_settings.tag_mode.none": "هیچ کام لەمانە",
"hashtag.column_settings.tag_toggle": "تاگی زیادە ی ئەم ستوونە لەخۆ بنووسە",
- "hashtag.follow": "Follow hashtag",
- "hashtag.unfollow": "Unfollow hashtag",
+ "hashtag.follow": "شوێنکەوتنی هاشتاگ",
+ "hashtag.unfollow": "شوێن نەکەوتنی هاشتاگ",
"home.column_settings.basic": "بنەڕەتی",
"home.column_settings.show_reblogs": "پیشاندانی بەهێزکردن",
"home.column_settings.show_replies": "وەڵامدانەوەکان پیشان بدە",
"home.hide_announcements": "شاردنەوەی راگەیەنراوەکان",
"home.show_announcements": "پیشاندانی راگەیەنراوەکان",
- "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.",
- "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
- "interaction_modal.on_another_server": "On a different server",
- "interaction_modal.on_this_server": "On this server",
+ "interaction_modal.description.favourite": "بە هەژمارێک لەسەر ماستدۆن، دەتوانیت ئەم بڵاوکراوەیە زیادبکەیت بۆ دڵخوازەکانت. بۆ ئاگادارکردنەوەی بڵاوکەرەوەکە لە پێزانینەکەت و هێشتنەوەی بۆ دواتر.",
+ "interaction_modal.description.follow": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت شوێن {name} بکەویت بۆ ئەوەی بڵاوکراوەکانی بگاتە پەڕەی سەرەکیت.",
+ "interaction_modal.description.reblog": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت ئەم بڵاوکراوەیە بەرزبکەیتەوە تاوەکو بەژداری پێبکەیت لەگەل شوێنکەوتوانت.",
+ "interaction_modal.description.reply": "بە هەژمارێک لەسەر ماستدۆن، ئەتوانیت وەڵامی ئەم بڵاوکراوەیە بدەیتەوە.",
+ "interaction_modal.on_another_server": "لەسەر ڕاژەیەکی جیا",
+ "interaction_modal.on_this_server": "لەسەر ئەم ڕاژەیە",
"interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
"interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
"interaction_modal.title.favourite": "Favourite {name}'s post",
diff --git a/app/javascript/mastodon/locales/co.json b/app/javascript/mastodon/locales/co.json
index 9b75ceeb17..2ede2311ef 100644
--- a/app/javascript/mastodon/locales/co.json
+++ b/app/javascript/mastodon/locales/co.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Piattà tuttu u duminiu",
"confirmations.domain_block.message": "Site veramente sicuru·a che vulete piattà tuttu à {domain}? Saria forse abbastanza di bluccà ò piattà alcuni conti da quallà. Ùn viderete più nunda da quallà indè e linee pubbliche o e nutificazione. I vostri abbunati da stu duminiu saranu tolti.",
+ "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.logout.confirm": "Scunnettassi",
"confirmations.logout.message": "Site sicuru·a che vulete scunnettà vi?",
"confirmations.mute.confirm": "Piattà",
diff --git a/app/javascript/mastodon/locales/cs.json b/app/javascript/mastodon/locales/cs.json
index e07ad6ae11..97bc50c869 100644
--- a/app/javascript/mastodon/locales/cs.json
+++ b/app/javascript/mastodon/locales/cs.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Máte neuložené změny popisku médií nebo náhledu, chcete je přesto zahodit?",
"confirmations.domain_block.confirm": "Blokovat celou doménu",
"confirmations.domain_block.message": "Opravdu chcete blokovat celou doménu {domain}? Ve většině případů stačí blokovat nebo skrýt pár konkrétních uživatelů, což také doporučujeme. Z této domény neuvidíte obsah v žádné veřejné časové ose ani v oznámeních. Vaši sledující z této domény budou odstraněni.",
+ "confirmations.edit.confirm": "Upravit",
+ "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.logout.confirm": "Odhlásit se",
"confirmations.logout.message": "Opravdu se chcete odhlásit?",
"confirmations.mute.confirm": "Skrýt",
diff --git a/app/javascript/mastodon/locales/csb.json b/app/javascript/mastodon/locales/csb.json
index 884020da1d..03c5af685b 100644
--- a/app/javascript/mastodon/locales/csb.json
+++ b/app/javascript/mastodon/locales/csb.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/cy.json b/app/javascript/mastodon/locales/cy.json
index c664046f0c..21c0cd2bef 100644
--- a/app/javascript/mastodon/locales/cy.json
+++ b/app/javascript/mastodon/locales/cy.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Mae gennych newidiadau heb eu cadw i'r disgrifiad cyfryngau neu'r rhagolwg, eu taflu beth bynnag?",
"confirmations.domain_block.confirm": "Blocio parth cyfan",
"confirmations.domain_block.message": "Ydych chi wir, wir eisiau blocio'r holl {domain}? Fel arfer, mae blocio neu dewi pobl penodol yn broses mwy effeithiol. Fyddwch chi ddim yn gweld cynnwys o'r parth hwnnw mewn ffrydiau cyhoeddus neu yn eich hysbysiadau. Bydd eich dilynwyr o'r parth hwnnw yn cael eu ddileu.",
+ "confirmations.edit.confirm": "Golygu",
+ "confirmations.edit.message": "Bydd golygu nawr yn trosysgrifennu'r neges rydych yn ei ysgrifennu ar hyn o bryd. Ydych chi'n siŵr eich bod eisiau gwneud hyn?",
"confirmations.logout.confirm": "Allgofnodi",
"confirmations.logout.message": "Ydych chi'n siŵr eich bod am allgofnodi?",
"confirmations.mute.confirm": "Tewi",
diff --git a/app/javascript/mastodon/locales/da.json b/app/javascript/mastodon/locales/da.json
index 1db8b030d3..6caa763f04 100644
--- a/app/javascript/mastodon/locales/da.json
+++ b/app/javascript/mastodon/locales/da.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Der er ugemte ændringer i mediebeskrivelsen eller forhåndsvisningen, kassér dem alligevel?",
"confirmations.domain_block.confirm": "Blokér hele domænet",
"confirmations.domain_block.message": "Er du fuldstændig sikker på, at du vil blokere hele {domain}-domænet? Oftest vil nogle få målrettede blokeringer eller skjulninger være tilstrækkelige og at foretrække. Du vil ikke se indhold fra dette domæne i nogle offentlige tidslinjer eller i dine notifikationer, og dine følgere herfra fjernes ligeledes.",
+ "confirmations.edit.confirm": "Redigér",
+ "confirmations.edit.message": "Redigeres nu, overskrive den besked, der forfattes pt. Fortsæt alligevel?",
"confirmations.logout.confirm": "Log ud",
"confirmations.logout.message": "Er du sikker på, at du vil logge ud?",
"confirmations.mute.confirm": "Skjul (mute)",
diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json
index b3cdd4fda5..dfc478ae5c 100644
--- a/app/javascript/mastodon/locales/de.json
+++ b/app/javascript/mastodon/locales/de.json
@@ -53,7 +53,7 @@
"account.posts": "Beiträge",
"account.posts_with_replies": "Beiträge und Antworten",
"account.report": "@{name} melden",
- "account.requested": "Warte auf Genehmigung. Klicke hier, um die Anfrage zum Folgen abzubrechen",
+ "account.requested": "Die Genehmigung steht noch aus. Klicke hier, um die Folgeanfrage abzubrechen",
"account.requested_follow": "{name} hat angefragt, dir folgen zu dürfen",
"account.share": "Profil von @{name} teilen",
"account.show_reblogs": "Geteilte Beiträge von @{name} wieder anzeigen",
@@ -106,7 +106,7 @@
"column.directory": "Profile durchsuchen",
"column.domain_blocks": "Gesperrte Domains",
"column.favourites": "Favoriten",
- "column.follow_requests": "Follower-Anfragen",
+ "column.follow_requests": "Folgeanfragen",
"column.home": "Startseite",
"column.lists": "Listen",
"column.mutes": "Stummgeschaltete Profile",
@@ -162,8 +162,10 @@
"confirmations.discard_edit_media.message": "Du hast Änderungen an der Medienbeschreibung oder -vorschau vorgenommen, die noch nicht gespeichert sind. Trotzdem verwerfen?",
"confirmations.domain_block.confirm": "Domain sperren",
"confirmations.domain_block.message": "Bist du dir wirklich sicher, dass du die ganze Domain {domain} sperren willst? In den meisten Fällen reichen ein paar gezielte Sperren oder Stummschaltungen aus. Du wirst den Inhalt von dieser Domain nicht in irgendwelchen öffentlichen Timelines oder den Benachrichtigungen finden. Auch deine Follower von dieser Domain werden entfernt.",
+ "confirmations.edit.confirm": "Bearbeiten",
+ "confirmations.edit.message": "Das Bearbeiten überschreibt die Nachricht, die du gerade verfasst. Bist du dir sicher, dass du fortfahren möchtest?",
"confirmations.logout.confirm": "Abmelden",
- "confirmations.logout.message": "Bist du sicher, dass du dich abmelden möchtest?",
+ "confirmations.logout.message": "Bist du dir sicher, dass du dich abmelden möchtest?",
"confirmations.mute.confirm": "Stummschalten",
"confirmations.mute.explanation": "Dies wird Beiträge von dieser Person und Beiträge, die diese Person erwähnen, ausblenden, aber es wird der Person trotzdem erlauben, deine Beiträge zu sehen und dir zu folgen.",
"confirmations.mute.message": "Bist du dir sicher, dass du {name} stummschalten möchtest?",
@@ -220,7 +222,7 @@
"empty_column.favourited_statuses": "Du hast noch keine Beiträge favorisiert. Sobald du einen favorisierst, wird er hier erscheinen.",
"empty_column.favourites": "Noch niemand hat diesen Beitrag favorisiert. Sobald es jemand tut, wird das hier angezeigt.",
"empty_column.follow_recommendations": "Es sieht so aus, als könnten keine Vorschläge für dich generiert werden. Du kannst versuchen, nach Leuten zu suchen, die du vielleicht kennst, oder du kannst angesagte Hashtags erkunden.",
- "empty_column.follow_requests": "Es liegen derzeit keine Follower-Anfragen vor. Sobald du eine erhältst, wird sie hier angezeigt.",
+ "empty_column.follow_requests": "Es liegen derzeit keine Folgeanfragen vor. Sobald du eine erhältst, wird sie hier angezeigt.",
"empty_column.followed_tags": "Du folgst noch keinen Hashtags. Wenn du dies tust, werden sie hier erscheinen.",
"empty_column.hashtag": "Unter diesem Hashtag gibt es noch nichts.",
"empty_column.home": "Die Timeline deiner Startseite ist leer! Folge mehr Leuten, um sie zu füllen. {suggestions}",
@@ -331,7 +333,7 @@
"keyboard_shortcuts.pinned": "Liste angehefteter Beiträge öffnen",
"keyboard_shortcuts.profile": "Profil öffnen",
"keyboard_shortcuts.reply": "auf Beitrag antworten",
- "keyboard_shortcuts.requests": "Liste der Follower-Anfragen öffnen",
+ "keyboard_shortcuts.requests": "Liste der Folgeanfragen öffnen",
"keyboard_shortcuts.search": "Suchleiste fokussieren",
"keyboard_shortcuts.spoilers": "Inhaltswarnung anzeigen/ausblenden",
"keyboard_shortcuts.start": "„Erste Schritte“-Spalte öffnen",
@@ -381,9 +383,9 @@
"navigation_bar.explore": "Entdecken",
"navigation_bar.favourites": "Favoriten",
"navigation_bar.filters": "Stummgeschaltete Wörter",
- "navigation_bar.follow_requests": "Follower-Anfragen",
+ "navigation_bar.follow_requests": "Folgeanfragen",
"navigation_bar.followed_tags": "Gefolgte Hashtags",
- "navigation_bar.follows_and_followers": "Folge ich und Follower",
+ "navigation_bar.follows_and_followers": "Follower und Folge ich",
"navigation_bar.lists": "Listen",
"navigation_bar.logout": "Abmelden",
"navigation_bar.mutes": "Stummgeschaltete Profile",
@@ -415,7 +417,7 @@
"notifications.column_settings.filter_bar.category": "Filterleiste:",
"notifications.column_settings.filter_bar.show_bar": "Filterleiste anzeigen",
"notifications.column_settings.follow": "Neue Follower:",
- "notifications.column_settings.follow_request": "Neue Follower-Anfragen:",
+ "notifications.column_settings.follow_request": "Neue Folgeanfragen:",
"notifications.column_settings.mention": "Erwähnungen:",
"notifications.column_settings.poll": "Umfrageergebnisse:",
"notifications.column_settings.push": "Push-Benachrichtigungen",
@@ -502,7 +504,7 @@
"report.reasons.spam": "Das ist Spam",
"report.reasons.spam_description": "Bösartige Links, gefälschtes Engagement oder wiederholte Antworten",
"report.reasons.violation": "Er verstößt gegen Serverregeln",
- "report.reasons.violation_description": "Du bist dir bewusst, dass es gegen bestimmte Regeln verstößt",
+ "report.reasons.violation_description": "Du bist dir sicher, dass eine bestimmte Regel gebrochen wurde",
"report.rules.subtitle": "Wähle alle zutreffenden Inhalte aus",
"report.rules.title": "Welche Regeln werden verletzt?",
"report.statuses.subtitle": "Wähle alle zutreffenden Inhalte aus",
@@ -523,10 +525,10 @@
"search.placeholder": "Suche",
"search.search_or_paste": "Suchen oder URL einfügen",
"search_popout.search_format": "Erweiterte Suche",
- "search_popout.tips.full_text": "Einfache Texteingabe gibt Beiträge, die du geschrieben, favorisiert und geteilt hast, zurück; außerdem auch Beiträge, in denen du erwähnt wurdest, aber auch passende Profilnamen, Anzeigenamen oder Hashtags.",
+ "search_popout.tips.full_text": "Die Freitextsuche findet Beiträge, die du geschrieben, favorisiert und geteilt hast – oder in denen du erwähnt worden bist. Außerdem gibt sie übereinstimmende Anzeigenamen, Profilnamen und Hashtags aus.",
"search_popout.tips.hashtag": "Hashtag",
"search_popout.tips.status": "Beitrag",
- "search_popout.tips.text": "Einfache Texteingabe gibt Anzeigenamen, Profilnamen und Hashtags zurück",
+ "search_popout.tips.text": "Die Freitextsuche findet Anzeigenamen, Profilnamen und Hashtags",
"search_popout.tips.user": "Profil",
"search_results.accounts": "Profile",
"search_results.all": "Alles",
@@ -620,14 +622,14 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} Profil} other {{counter} Profile}} {days, plural, one {seit gestern} other {in {days} Tagen}}",
"trends.trending_now": "Aktuelle Trends",
"ui.beforeunload": "Dein Entwurf geht verloren, wenn du Mastodon verlässt.",
- "units.short.billion": "{count} Mrd",
- "units.short.million": "{count} Mio",
- "units.short.thousand": "{count} Tsd",
+ "units.short.billion": "{count} Mrd.",
+ "units.short.million": "{count} Mio.",
+ "units.short.thousand": "{count} Tsd.",
"upload_area.title": "Zum Hochladen hereinziehen",
"upload_button.label": "Bilder, Videos oder Audios hinzufügen",
"upload_error.limit": "Dateiupload-Limit überschritten.",
"upload_error.poll": "Medien-Anhänge sind zusammen mit Umfragen nicht erlaubt.",
- "upload_form.audio_description": "Für Gehörlose und hörbehinderte Menschen beschreiben",
+ "upload_form.audio_description": "Beschreibe für Menschen mit Hörbehinderung",
"upload_form.description": "Beschreibe für Menschen mit Sehbehinderung",
"upload_form.description_missing": "Keine Beschreibung hinzugefügt",
"upload_form.edit": "Bearbeiten",
diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json
index c09411f652..5365669454 100644
--- a/app/javascript/mastodon/locales/defaultMessages.json
+++ b/app/javascript/mastodon/locales/defaultMessages.json
@@ -833,6 +833,14 @@
"defaultMessage": "Replying now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"id": "confirmations.reply.message"
},
+ {
+ "defaultMessage": "Edit",
+ "id": "confirmations.edit.confirm"
+ },
+ {
+ "defaultMessage": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
+ "id": "confirmations.edit.message"
+ },
{
"defaultMessage": "Hide entire domain",
"id": "confirmations.domain_block.confirm"
diff --git a/app/javascript/mastodon/locales/el.json b/app/javascript/mastodon/locales/el.json
index 3d71f3c5c4..0813a98577 100644
--- a/app/javascript/mastodon/locales/el.json
+++ b/app/javascript/mastodon/locales/el.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Έχετε μη αποθηκευμένες αλλαγές στην περιγραφή πολυμέσων ή στην προεπισκόπηση, απορρίψτε τις ούτως ή άλλως;",
"confirmations.domain_block.confirm": "Απόκρυψη ολόκληρου του τομέα",
"confirmations.domain_block.message": "Σίγουρα θες να μπλοκάρεις ολόκληρο το {domain}; Συνήθως μερικά εστιασμένα μπλοκ ή αποσιωπήσεις επαρκούν και προτιμούνται. Δεν θα βλέπεις περιεχόμενο από αυτό τον κόμβο σε καμία δημόσια ροή, ούτε στις ειδοποιήσεις σου. Όσους ακόλουθους έχεις αυτό αυτό τον κόμβο θα αφαιρεθούν.",
+ "confirmations.edit.confirm": "Επεξεργασία",
+ "confirmations.edit.message": "Αν το επεξεργαστείτε τώρα θα αντικατασταθεί το μήνυμα που συνθέτετε. Είστε σίγουροι ότι θέλετε να συνεχίσετε;",
"confirmations.logout.confirm": "Αποσύνδεση",
"confirmations.logout.message": "Σίγουρα θέλεις να αποσυνδεθείς;",
"confirmations.mute.confirm": "Αποσιώπηση",
diff --git a/app/javascript/mastodon/locales/en-GB.json b/app/javascript/mastodon/locales/en-GB.json
index 4ce198b908..974c6dd84a 100644
--- a/app/javascript/mastodon/locales/en-GB.json
+++ b/app/javascript/mastodon/locales/en-GB.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Block entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json
index fde1636282..93b668d358 100644
--- a/app/javascript/mastodon/locales/eo.json
+++ b/app/javascript/mastodon/locales/eo.json
@@ -138,8 +138,8 @@
"compose_form.poll.remove_option": "Forigi ĉi tiu elekteblon",
"compose_form.poll.switch_to_multiple": "Ŝanĝi la balotenketon por permesi multajn elektojn",
"compose_form.poll.switch_to_single": "Ŝanĝi la balotenketon por permesi unu solan elekton",
- "compose_form.publish": "Hup",
- "compose_form.publish_form": "Hup",
+ "compose_form.publish": "Afiŝi",
+ "compose_form.publish_form": "Afiŝi",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Konservi ŝanĝojn",
"compose_form.sensitive.hide": "{count, plural, one {Marki la plurmedio kiel tikla} other {Marki la plurmedioj kiel tiklaj}}",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Vi havas nekonservitajn ŝanĝojn de la priskribo aŭ la antaŭmontro de la plurmedio, ĉu vi forĵetu ilin malgraŭe?",
"confirmations.domain_block.confirm": "Bloki la tutan domajnon",
"confirmations.domain_block.message": "Ĉu vi vere, vere certas, ke vi volas tute bloki {domain}? Plej ofte, trafa blokado kaj silentigado sufiĉas kaj preferindas. Vi ne vidos enhavon de tiu domajno en publika templinio aŭ en viaj sciigoj. Viaj sekvantoj de tiu domajno estos forigitaj.",
+ "confirmations.edit.confirm": "Redakti",
+ "confirmations.edit.message": "Redakti nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.logout.confirm": "Adiaŭi",
"confirmations.logout.message": "Ĉu vi certas ke vi volas adiaŭi?",
"confirmations.mute.confirm": "Silentigi",
@@ -170,7 +172,7 @@
"confirmations.redraft.confirm": "Forigi kaj reskribi",
"confirmations.redraft.message": "Ĉu vi certas ke vi volas forigi tiun afiŝon kaj reskribi ĝin? Ĉiuj diskonigoj kaj stelumoj estos perditaj, kaj respondoj al la originala mesaĝo estos senparentaj.",
"confirmations.reply.confirm": "Respondi",
- "confirmations.reply.message": "Respondi nun anstataŭigos la mesaĝon, kiun vi nun skribas. Ĉu vi certas, ke vi volas daŭrigi?",
+ "confirmations.reply.message": "Respondi nun anstataŭigos la skribatan afiŝon. Ĉu vi certas, ke vi volas daŭrigi?",
"confirmations.unfollow.confirm": "Ne plu sekvi",
"confirmations.unfollow.message": "Ĉu vi certas, ke vi volas ĉesi sekvi {name}?",
"conversation.delete": "Forigi konversacion",
@@ -188,10 +190,10 @@
"dismissable_banner.community_timeline": "Jen la plej novaj publikaj afiŝoj de uzantoj, kies kontojn gastigas {domain}.",
"dismissable_banner.dismiss": "Eksigi",
"dismissable_banner.explore_links": "Tiuj novaĵoj estas aktuale priparolataj de uzantoj en tiu ĉi kaj aliaj serviloj, sur la malcentrigita reto.",
- "dismissable_banner.explore_statuses": "Ĉi tiuj mesaĝoj de ĉi tiu kaj aliaj serviloj en la malcentra reto pli populariĝas en ĉi tiu servilo nun.",
+ "dismissable_banner.explore_statuses": "Ĉi tiuj afiŝoj de ĉi tiu kaj aliaj serviloj en la malcentra reto pli populariĝas en ĉi tiu servilo nun.",
"dismissable_banner.explore_tags": "Ĉi tiuj kradvostoj populariĝas en ĉi tiu kaj aliaj serviloj en la malcentraliza reto nun.",
- "dismissable_banner.public_timeline": "Ĉi tiuj estas plej lastaj publika mesaĝoj de personoj ĉe ĉi tiu kaj aliaj serviloj de la malcentra reto kiun ĉi tiu servilo scias.",
- "embed.instructions": "Enkorpigu ĉi tiun mesaĝon en vian retejon per kopio de la suba kodo.",
+ "dismissable_banner.public_timeline": "Ĉi tiuj estas plej lastaj publikaj afiŝoj de personoj ĉe ĉi tiu kaj aliaj serviloj de la malcentra reto kiun tiu ĉi servilo scias.",
+ "embed.instructions": "Enkorpigu ĉi tiun afiŝon en vian retejon per kopio de la suba kodo.",
"embed.preview": "Ĝi aperos tiel:",
"emoji_button.activity": "Agadoj",
"emoji_button.clear": "Forviŝi",
@@ -209,23 +211,23 @@
"emoji_button.symbols": "Simboloj",
"emoji_button.travel": "Vojaĝoj kaj lokoj",
"empty_column.account_suspended": "Konto suspendita",
- "empty_column.account_timeline": "Neniu mesaĝo ĉi tie!",
+ "empty_column.account_timeline": "Neniu afiŝo ĉi tie!",
"empty_column.account_unavailable": "Profilo ne disponebla",
"empty_column.blocks": "Vi ankoraŭ ne blokis uzanton.",
- "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis mesaĝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.",
+ "empty_column.bookmarked_statuses": "Vi ankoraŭ ne aldonis afiŝon al viaj legosignoj. Kiam vi aldonos iun, tiu aperos ĉi tie.",
"empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!",
- "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
+ "empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, tiu aperos ĉi tie.",
"empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
"empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!",
"empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis afiŝon. Kiam vi stelumos iun, ĝi aperos ĉi tie.",
- "empty_column.favourites": "Ankoraŭ neniu stelumis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.",
+ "empty_column.favourites": "Ankoraŭ neniu stelumis ĉi tiun afiŝon. Kiam iu faros tion, tiu aperos ĉi tie.",
"empty_column.follow_recommendations": "Ŝajnas, ke neniuj sugestoj povis esti generitaj por vi. Vi povas provi uzi serĉon por serĉi homojn, kiujn vi eble konas, aŭ esplori tendencajn kradvortojn.",
"empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.",
"empty_column.followed_tags": "Vi ankoraŭ ne sekvas iujn kradvortojn. Kiam vi faras, ili aperos ĉi tie.",
"empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.",
"empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.",
"empty_column.home.suggestions": "Vidu iujn sugestojn",
- "empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn mesaĝojn, ili aperos ĉi tie.",
+ "empty_column.list": "Ankoraŭ estas nenio en ĉi tiu listo. Kiam membroj de ĉi tiu listo afiŝos novajn afiŝojn, ili aperos ĉi tie.",
"empty_column.lists": "Vi ankoraŭ ne havas liston. Kiam vi kreos iun, ĝi aperos ĉi tie.",
"empty_column.mutes": "Vi ne ankoraŭ silentigis iun uzanton.",
"empty_column.notifications": "Vi ankoraŭ ne havas sciigojn. Interagu kun aliaj por komenci konversacion.",
@@ -242,7 +244,7 @@
"explore.trending_links": "Novaĵoj",
"explore.trending_statuses": "Afiŝoj",
"explore.trending_tags": "Kradvortoj",
- "filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas la kuntekston de ĉi tiu mesaĝo. Vi devas redakti la filtrilon.",
+ "filter_modal.added.context_mismatch_explanation": "Ĉi tiu filtrilkategorio ne kongruas kun la kunteksto en kiu vi akcesis ĉi tiun afiŝon. Se vi volas ke la afiŝo estas ankaŭ filtrita en ĉi tiu kunteksto, vi devus redakti la filtrilon.",
"filter_modal.added.context_mismatch_title": "Ne kongruas la kunteksto!",
"filter_modal.added.expired_explanation": "Ĉi tiu filtrilkategorio eksvalidiĝis, vu bezonos ŝanĝi la eksvaliddaton por ĝi.",
"filter_modal.added.expired_title": "Eksvalida filtrilo!",
@@ -402,8 +404,8 @@
"notification.mention": "{name} menciis vin",
"notification.own_poll": "Via enketo finiĝis",
"notification.poll": "Partoprenita balotenketo finiĝis",
- "notification.reblog": "{name} diskonigis vian mesaĝon",
- "notification.status": "{name} ĵus afiŝita",
+ "notification.reblog": "{name} diskonigis vian afiŝon",
+ "notification.status": "{name} ĵus afiŝis",
"notification.update": "{name} redaktis afiŝon",
"notifications.clear": "Forviŝi sciigojn",
"notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
@@ -523,7 +525,7 @@
"search.placeholder": "Serĉi",
"search.search_or_paste": "Serĉu aŭ algluu URL-on",
"search_popout.search_format": "Detala serĉo",
- "search_popout.tips.full_text": "Simplaj tekstoj montras la mesaĝojn, kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.",
+ "search_popout.tips.full_text": "Simpla teksto retrovas la afiŝojn kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.",
"search_popout.tips.hashtag": "kradvorto",
"search_popout.tips.status": "afiŝoj",
"search_popout.tips.text": "Simpla teksto montras la kongruajn afiŝitajn nomojn, uzantnomojn kaj kradvortojn",
@@ -551,7 +553,7 @@
"status.block": "Bloki @{name}",
"status.bookmark": "Aldoni al la legosignoj",
"status.cancel_reblog_private": "Ne plu diskonigi",
- "status.cannot_reblog": "Ĉi tiu mesaĝo ne diskonigeblas",
+ "status.cannot_reblog": "Ĉi tiun afiŝon ne eblas diskonigi",
"status.copy": "Kopii la ligilon al la mesaĝo",
"status.delete": "Forigi",
"status.detailed_status": "Detala konversacia vido",
@@ -579,7 +581,7 @@
"status.reblog": "Diskonigi",
"status.reblog_private": "Diskonigi kun la sama videbleco",
"status.reblogged_by": "{name} diskonigis",
- "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun mesaĝon. Kiam iu faras tion, ri aperos ĉi tie.",
+ "status.reblogs.empty": "Ankoraŭ neniu diskonigis tiun afiŝon. Kiam iu faras tion, ri aperos ĉi tie.",
"status.redraft": "Forigi kaj reskribi",
"status.remove_bookmark": "Forigi legosignon",
"status.replied_to": "Respondis al {name}",
diff --git a/app/javascript/mastodon/locales/es-AR.json b/app/javascript/mastodon/locales/es-AR.json
index f48187e5da..93238efbc0 100644
--- a/app/javascript/mastodon/locales/es-AR.json
+++ b/app/javascript/mastodon/locales/es-AR.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tenés cambios sin guardar en la descripción de medios o en la vista previa, ¿querés descartarlos de todos modos?",
"confirmations.domain_block.confirm": "Bloquear dominio entero",
"confirmations.domain_block.message": "¿Estás completamente seguro que querés bloquear el {domain} entero? En la mayoría de los casos, unos cuantos bloqueos y silenciados puntuales son suficientes y preferibles. No vas a ver contenido de ese dominio en ninguna de tus líneas temporales o en tus notificaciones. Tus seguidores de ese dominio serán quitados.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Editar ahora sobreescribirá el mensaje que estás redactando actualmente. ¿Estás seguro que querés seguir?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro que querés cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/es-MX.json b/app/javascript/mastodon/locales/es-MX.json
index 0c6b49593a..56e891611b 100644
--- a/app/javascript/mastodon/locales/es-MX.json
+++ b/app/javascript/mastodon/locales/es-MX.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo, ¿deseas descartarlos de cualquier manera?",
"confirmations.domain_block.confirm": "Ocultar dominio entero",
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Editar sobrescribirá el mensaje que estás escribiendo. ¿Estás seguro de que deseas continuar?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json
index 47c6edd829..61e831526c 100644
--- a/app/javascript/mastodon/locales/es.json
+++ b/app/javascript/mastodon/locales/es.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tienes cambios sin guardar en la descripción o vista previa del archivo audiovisual, ¿descartarlos de todos modos?",
"confirmations.domain_block.confirm": "Ocultar dominio entero",
"confirmations.domain_block.message": "¿Seguro de que quieres bloquear al dominio {domain} entero? En general unos cuantos bloqueos y silenciados concretos es suficiente y preferible.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Editar ahora reemplazará el mensaje que está escribiendo. ¿Está seguro que quiere proceder?",
"confirmations.logout.confirm": "Cerrar sesión",
"confirmations.logout.message": "¿Estás seguro de querer cerrar la sesión?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/et.json b/app/javascript/mastodon/locales/et.json
index 0f9f33080c..9b8c83563c 100644
--- a/app/javascript/mastodon/locales/et.json
+++ b/app/javascript/mastodon/locales/et.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Sul on salvestamata muudatusi meediakirjelduses või eelvaates, kas hülgad need?",
"confirmations.domain_block.confirm": "Peida terve domeen",
"confirmations.domain_block.message": "Oled ikka päris-päris kindel, et soovid blokeerida terve {domain}? Enamikel juhtudel piisab mõnest sihitud blokist või vaigistusest, mis on eelistatavam. Sa ei näe selle domeeni sisu ühelgi avalikul ajajoonel või enda teadetes. Su jälgijad sellest domeenist eemaldatakse.",
+ "confirmations.edit.confirm": "Muuda",
+ "confirmations.edit.message": "Muutes praegu kirjutatakse hetkel loodav sõnum üle. Kas oled kindel, et soovid jätkata?",
"confirmations.logout.confirm": "Välju",
"confirmations.logout.message": "Kas oled kindel, et soovid välja logida?",
"confirmations.mute.confirm": "Vaigista",
@@ -398,8 +400,8 @@
"notification.admin.sign_up": "{name} registreerus",
"notification.favourite": "{name} märkis su postituse lemmikuks",
"notification.follow": "{name} alustas su jälgimist",
- "notification.follow_request": "{name} soovib teid jälgida",
- "notification.mention": "{name} mainis teid",
+ "notification.follow_request": "{name} soovib sind jälgida",
+ "notification.mention": "{name} mainis sind",
"notification.own_poll": "Su küsitlus on lõppenud",
"notification.poll": "Küsitlus, milles osalesid, on lõppenud",
"notification.reblog": "{name} jagas edasi postitust",
@@ -603,7 +605,7 @@
"subscribed_languages.save": "Salvesta muudatused",
"subscribed_languages.target": "Muuda tellitud keeli {target} jaoks",
"suggestions.dismiss": "Eira soovitust",
- "suggestions.header": "Teid võib huvitada…",
+ "suggestions.header": "Sind võib huvitada…",
"tabs_bar.federated_timeline": "Föderatiivne",
"tabs_bar.home": "Kodu",
"tabs_bar.local_timeline": "Kohalik",
diff --git a/app/javascript/mastodon/locales/eu.json b/app/javascript/mastodon/locales/eu.json
index 39eaeda023..e5f2116bc7 100644
--- a/app/javascript/mastodon/locales/eu.json
+++ b/app/javascript/mastodon/locales/eu.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Multimediaren deskribapen edo aurrebistan gorde gabeko aldaketak daude, baztertu nahi dituzu?",
"confirmations.domain_block.confirm": "Ezkutatu domeinu osoa",
"confirmations.domain_block.message": "Ziur, erabat ziur, {domain} domeinu osoa blokeatu nahi duzula? Gehienetan gutxi batzuk blokeatu edo mututzearekin nahikoa da. Ez duzu domeinu horretako edukirik ikusiko denbora lerroetan edo jakinarazpenetan. Domeinu horretako zure jarraitzaileak kenduko dira ere.",
+ "confirmations.edit.confirm": "Editatu",
+ "confirmations.edit.message": "Orain editatzen baduzu, idazten zauden mezua gainidatziko da. Ziur al zaude jarraitu nahi duzula?",
"confirmations.logout.confirm": "Amaitu saioa",
"confirmations.logout.message": "Ziur saioa amaitu nahi duzula?",
"confirmations.mute.confirm": "Mututu",
diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json
index 10c1b12fb9..acb7525b2e 100644
--- a/app/javascript/mastodon/locales/fa.json
+++ b/app/javascript/mastodon/locales/fa.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "تغییرات ذخیره نشدهای در توضیحات یا پیشنمایش رسانه دارید. همگی نادیده گرفته شوند؟",
"confirmations.domain_block.confirm": "مسدود کردن تمام دامنه",
"confirmations.domain_block.message": "آیا جدی جدی میخواهید تمام دامنهٔ {domain} را مسدود کنید؟ در بیشتر موارد مسدود کردن یا خموشاندن چند حساب خاص کافی است و توصیه میشود. پس از این کار شما هیچ محتوایی را از این دامنه در خط زمانی عمومی یا آگاهیهایتان نخواهید دید. پیگیرانتان از این دامنه هم برداشته خواهند شد.",
+ "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.logout.confirm": "خروج از حساب",
"confirmations.logout.message": "مطمئنید میخواهید خارج شوید؟",
"confirmations.mute.confirm": "خموش",
diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json
index f41082ed7f..8cff515bde 100644
--- a/app/javascript/mastodon/locales/fi.json
+++ b/app/javascript/mastodon/locales/fi.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Sinulla on tallentamattomia muutoksia median kuvaukseen tai esikatseluun, hylätäänkö ne silti?",
"confirmations.domain_block.confirm": "Estä koko palvelu",
"confirmations.domain_block.message": "Haluatko aivan varmasti estää palvelun {domain} täysin? Useimmiten muutama kohdistettu esto tai mykistys on riittävä ja suositeltava toimenpide. Et näe kyseisen sisältöä kyseiseltä verkkoalueelta missään julkisissa aikajanoissa tai ilmoituksissa. Tälle verkkoalueelle kuuluvat seuraajasi poistetaan.",
+ "confirmations.edit.confirm": "Muokkaa",
+ "confirmations.edit.message": "Tässä tilanteessa muokkaus korvaa tällä hetkellä työstämäsi viestin. Haluatko varmasti jatkaa?",
"confirmations.logout.confirm": "Kirjaudu ulos",
"confirmations.logout.message": "Haluatko varmasti kirjautua ulos?",
"confirmations.mute.confirm": "Mykistä",
@@ -563,7 +565,7 @@
"status.favourite": "Lisää suosikkeihin",
"status.filter": "Suodata tämä viesti",
"status.filtered": "Suodatettu",
- "status.hide": "Piilota viesti",
+ "status.hide": "Piilota julkaisu",
"status.history.created": "{name} luotu {date}",
"status.history.edited": "{name} muokkasi {date}",
"status.load_more": "Lataa lisää",
diff --git a/app/javascript/mastodon/locales/fo.json b/app/javascript/mastodon/locales/fo.json
index 3b67c3d75e..db2247c4b1 100644
--- a/app/javascript/mastodon/locales/fo.json
+++ b/app/javascript/mastodon/locales/fo.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tú hevur broytingar í miðlalýsingini ella undansýningini, sum ikki eru goymdar. Vilt tú kortini vraka?",
"confirmations.domain_block.confirm": "Banna heilum økisnavni",
"confirmations.domain_block.message": "Ert tú púra, púra vís/ur í, at tú vilt banna øllum {domain}? Í flestu førum er nóg mikið og betri, bert at banna ella doyva onkrum ávísum. Tú fert eingi evni at síggja frá økisnavninum á nakrari almennari tíðarrás ella í tínum fráboðanum. Tínir fylgjarar undir økisnavninum verða eisini strikaðir.",
+ "confirmations.edit.confirm": "Rætta",
+ "confirmations.edit.message": "Rættingar, sum verða gjørdar nú, skriva yvir boðini, sum tú ert í holt við. Ert tú vís/ur í, at tú vilt halda fram?",
"confirmations.logout.confirm": "Rita út",
"confirmations.logout.message": "Ert tú vís/ur í, at tú vilt útrita teg?",
"confirmations.mute.confirm": "Doyv",
diff --git a/app/javascript/mastodon/locales/fr-QC.json b/app/javascript/mastodon/locales/fr-QC.json
index 4b72586856..fe7055d57a 100644
--- a/app/javascript/mastodon/locales/fr-QC.json
+++ b/app/javascript/mastodon/locales/fr-QC.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, voulez-vous quand même les supprimer?",
"confirmations.domain_block.confirm": "Bloquer ce domaine entier",
"confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
+ "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.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter?",
"confirmations.mute.confirm": "Masquer",
diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json
index 1dcf41c850..2c38ad4960 100644
--- a/app/javascript/mastodon/locales/fr.json
+++ b/app/javascript/mastodon/locales/fr.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Vous avez des modifications non enregistrées de la description ou de l'aperçu du média, les supprimer quand même ?",
"confirmations.domain_block.confirm": "Bloquer tout le domaine",
"confirmations.domain_block.message": "Voulez-vous vraiment, vraiment bloquer {domain} en entier ? Dans la plupart des cas, quelques blocages ou masquages ciblés sont suffisants et préférables. Vous ne verrez plus de contenu provenant de ce domaine, ni dans vos fils publics, ni dans vos notifications. Vos abonné·e·s utilisant ce domaine seront retiré·e·s.",
+ "confirmations.edit.confirm": "Éditer",
+ "confirmations.edit.message": "Modifier maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
"confirmations.logout.confirm": "Se déconnecter",
"confirmations.logout.message": "Voulez-vous vraiment vous déconnecter ?",
"confirmations.mute.confirm": "Masquer",
@@ -170,7 +172,7 @@
"confirmations.redraft.confirm": "Supprimer et ré-écrire",
"confirmations.redraft.message": "Êtes-vous sûr·e de vouloir effacer ce statut pour le réécrire ? Ses partages ainsi que ses mises en favori seront perdus et ses réponses seront orphelines.",
"confirmations.reply.confirm": "Répondre",
- "confirmations.reply.message": "Répondre maintenant écrasera le message que vous rédigez actuellement. Voulez-vous vraiment continuer ?",
+ "confirmations.reply.message": "Répondre maintenant écrasera votre message en cours de rédaction. Voulez-vous vraiment continuer ?",
"confirmations.unfollow.confirm": "Ne plus suivre",
"confirmations.unfollow.message": "Voulez-vous vraiment vous désabonner de {name} ?",
"conversation.delete": "Supprimer la conversation",
@@ -298,7 +300,7 @@
"interaction_modal.on_another_server": "Sur un autre serveur",
"interaction_modal.on_this_server": "Sur ce serveur",
"interaction_modal.other_server_instructions": "Copiez et collez cette URL dans le champ de recherche de votre application Mastodon préférée ou de l'interface web de votre serveur Mastodon.",
- "interaction_modal.preamble": "Puisque Mastodon est décentralisé, vous pouvez utiliser votre compte existant hébergé par un autre serveur Mastodon ou une plateforme compatible si vous n'avez pas de compte sur celui-ci.",
+ "interaction_modal.preamble": "Mastodon étant décentralisé, vous pouvez utiliser votre compte existant sur un autre serveur Mastodon, ou sur une autre plateforme compatible, si vous n'avez pas de compte ici.",
"interaction_modal.title.favourite": "Ajouter le message de {name} aux favoris",
"interaction_modal.title.follow": "Suivre {name}",
"interaction_modal.title.reblog": "Partager le message de {name}",
diff --git a/app/javascript/mastodon/locales/fy.json b/app/javascript/mastodon/locales/fy.json
index 61273f58f1..4ac165471e 100644
--- a/app/javascript/mastodon/locales/fy.json
+++ b/app/javascript/mastodon/locales/fy.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Jo hawwe net-bewarre wizigingen yn de mediabeskriuwing of foarfertoaning, wolle jo dizze dochs fuortsmite?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Binne jo echt wis dat jo alles fan {domain} negearje wolle? Yn de measte gefallen is it blokkearjen of negearjen fan in pear spesifike persoanen genôch en better. Jo sille gjin berjochten fan dizze server op iepenbiere tiidlinen sjen of yn jo meldingen. Jo folgers fan dizze server wurde fuortsmiten.",
+ "confirmations.edit.confirm": "Bewurkje",
+ "confirmations.edit.message": "Troch no te bewurkjen sil it berjocht dat jo no oan it skriuwen binne oerskreaun wurde. Wolle jo trochgean?",
"confirmations.logout.confirm": "Ofmelde",
"confirmations.logout.message": "Bisto wis datsto ôfmelde wolst?",
"confirmations.mute.confirm": "Negearje",
diff --git a/app/javascript/mastodon/locales/ga.json b/app/javascript/mastodon/locales/ga.json
index 9212d16bd8..12769ba13b 100644
--- a/app/javascript/mastodon/locales/ga.json
+++ b/app/javascript/mastodon/locales/ga.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tá athruithe neamhshlánaithe don tuarascáil gné nó réamhamharc agat, faigh réidh dóibh ar aon nós?",
"confirmations.domain_block.confirm": "Bac fearann go hiomlán",
"confirmations.domain_block.message": "An bhfuil tú iontach cinnte gur mhaith leat bac an t-ainm fearainn {domain} in iomlán? I bhformhór na gcásanna, is leor agus is fearr cúpla baic a cur i bhfeidhm nó cúpla úsáideoirí a balbhú. Ní fheicfidh tú ábhair ón t-ainm fearainn sin in amlíne ar bith, nó i d'fhógraí. Scaoilfear do leantóirí ón ainm fearainn sin.",
+ "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.logout.confirm": "Logáil amach",
"confirmations.logout.message": "An bhfuil tú cinnte gur mhaith leat logáil amach?",
"confirmations.mute.confirm": "Balbhaigh",
diff --git a/app/javascript/mastodon/locales/gd.json b/app/javascript/mastodon/locales/gd.json
index ca3dd0f2f8..f5eb5c1406 100644
--- a/app/javascript/mastodon/locales/gd.json
+++ b/app/javascript/mastodon/locales/gd.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tha atharraichean gun sàbhaladh agad ann an tuairisgeul no ro-shealladh a’ mheadhain, a bheil thu airson an tilgeil air falbh co-dhiù?",
"confirmations.domain_block.confirm": "Bac an àrainn uile gu lèir",
"confirmations.domain_block.message": "A bheil thu cinnteach dha-rìribh gu bheil thu airson an àrainn {domain} a bhacadh uile gu lèir? Mar as trice, foghnaidh gun dèan thu bacadh no mùchadh no dhà gu sònraichte agus bhiodh sin na b’ fheàrr. Chan fhaic thu susbaint on àrainn ud air loidhne-ama phoblach sam bith no am measg nam brathan agad. Thèid an luchd-leantainn agad on àrainn ud a thoirt air falbh.",
+ "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.logout.confirm": "Clàraich a-mach",
"confirmations.logout.message": "A bheil thu cinnteach gu bheil thu airson clàradh a-mach?",
"confirmations.mute.confirm": "Mùch",
diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json
index 1033e6d7dd..dc5bd31d62 100644
--- a/app/javascript/mastodon/locales/gl.json
+++ b/app/javascript/mastodon/locales/gl.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tes cambios sen gardar para a vista previa ou descrición do multimedia, descartamos os cambios?",
"confirmations.domain_block.confirm": "Agochar dominio enteiro",
"confirmations.domain_block.message": "Tes a certeza de querer bloquear todo de {domain}? Na meirande parte dos casos uns bloqueos ou silenciados específicos son suficientes. Non verás máis o contido deste dominio en ningunha cronoloxía pública ou nas túas notificacións. As túas seguidoras deste dominio serán eliminadas.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Ao editar sobrescribirás a mensaxe que estás a compor. Tes a certeza de que queres continuar?",
"confirmations.logout.confirm": "Pechar sesión",
"confirmations.logout.message": "Desexas pechar a sesión?",
"confirmations.mute.confirm": "Acalar",
diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json
index 7e3cee334a..f5e6230b87 100644
--- a/app/javascript/mastodon/locales/he.json
+++ b/app/javascript/mastodon/locales/he.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "יש לך שינויים לא שמורים לתיאור המדיה. להשליך אותם בכל זאת?",
"confirmations.domain_block.confirm": "חסמו לגמרי את שם המתחם (דומיין)",
"confirmations.domain_block.message": "בטוחה שברצונך באמת לחסום את קהילת {domain}? ברב המקרים השתקה וחסימה של מספר משתמשים עשוייה להספיק. לא תראי תוכל מכלל שם המתחם בפידים הציבוריים או בהתראות שלך. העוקבים שלך מהקהילה הזאת יוסרו",
+ "confirmations.edit.confirm": "עריכה",
+ "confirmations.edit.message": "עריכת תגובה קודמת תדרוס את ההודעה שכבר התחלת לכתוב. האם את.ה בטוח.ה שברצונך להמשיך?",
"confirmations.logout.confirm": "התנתקות",
"confirmations.logout.message": "האם אתם בטוחים שאתם רוצים להתנתק?",
"confirmations.mute.confirm": "להשתיק",
diff --git a/app/javascript/mastodon/locales/hi.json b/app/javascript/mastodon/locales/hi.json
index 24745cca59..8b0569860b 100644
--- a/app/javascript/mastodon/locales/hi.json
+++ b/app/javascript/mastodon/locales/hi.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "लिस्ट में जोड़ें",
"confirmations.domain_block.confirm": "संपूर्ण डोमेन छिपाएं",
"confirmations.domain_block.message": "क्या आप वास्तव में, वास्तव में आप पूरे {domain} को ब्लॉक करना चाहते हैं? ज्यादातर मामलों में कुछ लक्षित ब्लॉक या म्यूट पर्याप्त और बेहतर हैं। आप किसी भी सार्वजनिक समय-सीमा या अपनी सूचनाओं में उस डोमेन की सामग्री नहीं देखेंगे। उस डोमेन से आपके फॉलोवर्स को हटा दिया जाएगा।",
+ "confirmations.edit.confirm": "संशोधित करें",
+ "confirmations.edit.message": "अभी संपादन किया तो वो संदेश मिट जायेगा जिसे आप लिख रहे थे। क्या आप जारी रखना चाहते हैं?",
"confirmations.logout.confirm": "लॉग आउट करें",
"confirmations.logout.message": "आप सुनिश्चित हैं कि लॉगआउट करना चाहते हैं?",
"confirmations.mute.confirm": "शांत",
diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json
index 9be500a7e5..2ee74d4606 100644
--- a/app/javascript/mastodon/locales/hr.json
+++ b/app/javascript/mastodon/locales/hr.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Postoje nespremljene promjene u opisu medija ili u pretpregledu, svejedno ih odbaciti?",
"confirmations.domain_block.confirm": "Blokiraj cijelu domenu",
"confirmations.domain_block.message": "Jeste li zaista, zaista sigurni da želite blokirati cijelu domenu {domain}? U većini slučajeva dovoljno je i preferirano nekoliko ciljanih blokiranja ili utišavanja. Nećete vidjeti sadržaj s te domene ni u kojim javnim vremenskim crtama ili Vašim obavijestima. Vaši pratitelji s te domene bit će uklonjeni.",
+ "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.logout.confirm": "Odjavi se",
"confirmations.logout.message": "Jeste li sigurni da se želite odjaviti?",
"confirmations.mute.confirm": "Utišaj",
diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json
index b5ca1ef3bd..4447aa2d19 100644
--- a/app/javascript/mastodon/locales/hu.json
+++ b/app/javascript/mastodon/locales/hu.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Elmentetlen változtatásaid vannak a média leírásában vagy előnézetében. Eldobjuk őket?",
"confirmations.domain_block.confirm": "Teljes domain elrejtése",
"confirmations.domain_block.message": "Biztos, hogy le szeretnéd tiltani a teljes {domain} domaint? A legtöbb esetben néhány célzott tiltás vagy némítás elegendő, és kívánatosabb megoldás. Semmilyen tartalmat nem fogsz látni ebből a domainből se az idővonalakon, se az értesítésekben. Az ebben a domainben lévő követőidet is eltávolítjuk.",
+ "confirmations.edit.confirm": "Szerkesztés",
+ "confirmations.edit.message": "Ha most szerkeszted, ez felülírja a most szerkesztés alatt álló üzenetet. Mégis ezt szeretnéd?",
"confirmations.logout.confirm": "Kijelentkezés",
"confirmations.logout.message": "Biztos, hogy kijelentkezel?",
"confirmations.mute.confirm": "Némítás",
diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json
index cb1dd1bd2d..87ecee6469 100644
--- a/app/javascript/mastodon/locales/hy.json
+++ b/app/javascript/mastodon/locales/hy.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Թաքցնել ամբողջ տիրույթը",
"confirmations.domain_block.message": "Հաստատ֊հաստա՞տ վստահ ես, որ ուզում ես արգելափակել ամբողջ {domain} տիրոյթը։ Սովորաբար մի երկու թիրախաւորուած արգելափակում կամ լռեցում բաւական է ու նախընտրելի։",
+ "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.logout.confirm": "Ելք",
"confirmations.logout.message": "Համոզո՞ւած ես, որ ուզում ես դուրս գալ",
"confirmations.mute.confirm": "Լռեցնել",
diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json
index a6db3207db..1f93219c8f 100644
--- a/app/javascript/mastodon/locales/id.json
+++ b/app/javascript/mastodon/locales/id.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan deskripsi atau pratinjau media, buang saja?",
"confirmations.domain_block.confirm": "Sembunyikan keseluruhan domain",
"confirmations.domain_block.message": "Apakah Anda benar-benar yakin untuk memblokir keseluruhan {domain}? Dalam kasus tertentu beberapa pemblokiran atau penyembunyian lebih baik.",
+ "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.logout.confirm": "Keluar",
"confirmations.logout.message": "Apakah Anda yakin ingin keluar?",
"confirmations.mute.confirm": "Bisukan",
diff --git a/app/javascript/mastodon/locales/ig.json b/app/javascript/mastodon/locales/ig.json
index 69e4ae08a7..3d2cd77726 100644
--- a/app/javascript/mastodon/locales/ig.json
+++ b/app/javascript/mastodon/locales/ig.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json
index fedabed58e..b6f61d23bc 100644
--- a/app/javascript/mastodon/locales/io.json
+++ b/app/javascript/mastodon/locales/io.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Vu havas nesparita chanji di mediodeskript o prevido, vu volas jus efacar?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.",
+ "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.logout.confirm": "Ekirez",
"confirmations.logout.message": "Ka tu certe volas ekirar?",
"confirmations.mute.confirm": "Silencigez",
diff --git a/app/javascript/mastodon/locales/is.json b/app/javascript/mastodon/locales/is.json
index 0d5b08b683..3611b26ed4 100644
--- a/app/javascript/mastodon/locales/is.json
+++ b/app/javascript/mastodon/locales/is.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Þú ert með óvistaðar breytingar á lýsingu myndefnis eða forskoðunar, henda þeim samt?",
"confirmations.domain_block.confirm": "Útiloka allt lénið",
"confirmations.domain_block.message": "Ertu alveg algjörlega viss um að þú viljir loka á allt {domain}? Í flestum tilfellum er vænlegra að nota færri en markvissari útilokanir eða að þagga niður tiltekna aðila. Þú munt ekki sjá efni frá þessu léni í neinum opinberum tímalínum eða í tilkynningunum þínum. Fylgjendur þínir frá þessu léni verða fjarlægðir.",
+ "confirmations.edit.confirm": "Breyta",
+ "confirmations.edit.message": "Ef þú breytir núna verður skrifað yfir skilaboðin sem þú ert að semja núna. Ertu viss um að þú viljir halda áfram?",
"confirmations.logout.confirm": "Skrá út",
"confirmations.logout.message": "Ertu viss um að þú viljir skrá þig út?",
"confirmations.mute.confirm": "Þagga",
diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json
index 7914b54ab1..ce8f45fabc 100644
--- a/app/javascript/mastodon/locales/it.json
+++ b/app/javascript/mastodon/locales/it.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Hai delle modifiche non salvate alla descrizione o anteprima del media, scartarle comunque?",
"confirmations.domain_block.confirm": "Blocca l'intero dominio",
"confirmations.domain_block.message": "Sei davvero sicuro di voler bloccare l'intero {domain}? In gran parte dei casi, è sufficiente e preferibile bloccare o silenziare alcuni profili. Non visualizzerai i contenuti da quel dominio in alcuna cronologia pubblica o tra le tue notifiche. I tuoi seguaci da quel dominio saranno rimossi.",
+ "confirmations.edit.confirm": "Modifica",
+ "confirmations.edit.message": "Modificare ora sovrascriverà il messaggio che stai correntemente componendo. Sei sicuro di voler procedere?",
"confirmations.logout.confirm": "Disconnettiti",
"confirmations.logout.message": "Sei sicuro di volerti disconnettere?",
"confirmations.mute.confirm": "Silenzia",
diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json
index ff50491ca0..92e9da6eeb 100644
--- a/app/javascript/mastodon/locales/ja.json
+++ b/app/javascript/mastodon/locales/ja.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "メディアの説明またはプレビューに保存されていない変更があります。それでも破棄しますか?",
"confirmations.domain_block.confirm": "ドメイン全体をブロック",
"confirmations.domain_block.message": "本当に{domain}全体を非表示にしますか? 多くの場合は個別にブロックやミュートするだけで充分であり、また好ましいです。公開タイムラインにそのドメインのコンテンツが表示されなくなり、通知も届かなくなります。そのドメインのフォロワーはアンフォローされます。",
+ "confirmations.edit.confirm": "編集",
+ "confirmations.edit.message": "今編集すると現在作成中のメッセージが上書きされます。本当に実行しますか?",
"confirmations.logout.confirm": "ログアウト",
"confirmations.logout.message": "本当にログアウトしますか?",
"confirmations.mute.confirm": "ミュート",
@@ -244,7 +246,7 @@
"explore.trending_tags": "ハッシュタグ",
"filter_modal.added.context_mismatch_explanation": "このフィルターカテゴリーはあなたがアクセスした投稿のコンテキストには適用されません。この投稿のコンテキストでもフィルターを適用するにはフィルターを編集する必要があります。",
"filter_modal.added.context_mismatch_title": "コンテキストが一致しません!",
- "filter_modal.added.expired_explanation": "このフィルターカテゴリは有効期限が切れています。適用するには有効期限を更新してください。",
+ "filter_modal.added.expired_explanation": "このフィルターカテゴリーは有効期限が切れています。適用するには有効期限を更新してください。",
"filter_modal.added.expired_title": "フィルターの有効期限が切れています!",
"filter_modal.added.review_and_configure": "このフィルターカテゴリーを確認して設定するには、{settings_link}に移動します。",
"filter_modal.added.review_and_configure_title": "フィルター設定",
diff --git a/app/javascript/mastodon/locales/ka.json b/app/javascript/mastodon/locales/ka.json
index 2158a8e0f3..9ebdfc989f 100644
--- a/app/javascript/mastodon/locales/ka.json
+++ b/app/javascript/mastodon/locales/ka.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "მთელი დომენის დამალვა",
"confirmations.domain_block.message": "ნაღდად, ნაღდად, დარწმუნებული ხართ, გსურთ დაბლოკოთ მთელი {domain}? უმეტეს შემთხვევაში რამდენიმე გამიზნული ბლოკი ან გაჩუმება საკმარისი და უკეთესია. კონტენტს ამ დომენიდან ვერ იხილავთ ვერც ერთ ღია თაიმლაინზე ან თქვენს შეტყობინებებში. ამ დომენიდან არსებული მიმდევრები ამოიშლება.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "გაჩუმება",
diff --git a/app/javascript/mastodon/locales/kab.json b/app/javascript/mastodon/locales/kab.json
index c3eb3d37c5..cf02895c59 100644
--- a/app/javascript/mastodon/locales/kab.json
+++ b/app/javascript/mastodon/locales/kab.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Ffer taɣult meṛṛa",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Ffeɣ",
"confirmations.logout.message": "D tidet tebɣiḍ ad teffɣeḍ?",
"confirmations.mute.confirm": "Sgugem",
diff --git a/app/javascript/mastodon/locales/kk.json b/app/javascript/mastodon/locales/kk.json
index 297885a19e..6a9195c4ba 100644
--- a/app/javascript/mastodon/locales/kk.json
+++ b/app/javascript/mastodon/locales/kk.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Бұл доменді бұғатта",
"confirmations.domain_block.message": "Бұл домендегі {domain} жазбаларды шынымен бұғаттайсыз ба? Кейде үнсіз қылып тастау да жеткілікті.",
+ "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.logout.confirm": "Шығу",
"confirmations.logout.message": "Шығатыныңызға сенімдісіз бе?",
"confirmations.mute.confirm": "Үнсіз қылу",
diff --git a/app/javascript/mastodon/locales/kn.json b/app/javascript/mastodon/locales/kn.json
index 4c7ed9a84f..f81a47fa91 100644
--- a/app/javascript/mastodon/locales/kn.json
+++ b/app/javascript/mastodon/locales/kn.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json
index e5a73258d5..babd3b1ddb 100644
--- a/app/javascript/mastodon/locales/ko.json
+++ b/app/javascript/mastodon/locales/ko.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "미디어 설명이나 미리보기에 대한 저장하지 않은 변경사항이 있습니다. 버리시겠습니까?",
"confirmations.domain_block.confirm": "도메인 전체를 차단",
"confirmations.domain_block.message": "정말로 {domain} 전체를 차단하시겠습니까? 대부분의 경우 개별 차단이나 뮤트로 충분합니다. 모든 공개 타임라인과 알림에서 해당 도메인에서 작성된 콘텐츠를 보지 못합니다. 해당 도메인에 속한 팔로워와의 관계가 사라집니다.",
+ "confirmations.edit.confirm": "수정",
+ "confirmations.edit.message": "지금 수정하면 작성 중인 메시지를 덮어쓰게 됩니다. 정말 진행합니까?",
"confirmations.logout.confirm": "로그아웃",
"confirmations.logout.message": "정말로 로그아웃 하시겠습니까?",
"confirmations.mute.confirm": "뮤트",
diff --git a/app/javascript/mastodon/locales/ku.json b/app/javascript/mastodon/locales/ku.json
index ad53c35771..c927d96584 100644
--- a/app/javascript/mastodon/locales/ku.json
+++ b/app/javascript/mastodon/locales/ku.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Guhertinên neqedandî di danasîna an pêşdîtina medyayê de hene, wan bi her awayî bavêje?",
"confirmations.domain_block.confirm": "Tevahiya navperê asteng bike",
"confirmations.domain_block.message": "Tu pê bawerî ku tu dixwazî tevahiya {domain} asteng bikî? Di gelek rewşan de astengkirin an jî bêdengkirin têrê dike û tê hilbijartin. Tu nikarî naveroka vê navperê di demnameyê an jî agahdariyên xwe de bibînî. Şopînerên te yê di vê navperê wê werin jêbirin.",
+ "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.logout.confirm": "Derkeve",
"confirmations.logout.message": "Ma tu dixwazî ku derkevî?",
"confirmations.mute.confirm": "Bêdeng bike",
diff --git a/app/javascript/mastodon/locales/kw.json b/app/javascript/mastodon/locales/kw.json
index db4f0022e4..9a20c2ebfb 100644
--- a/app/javascript/mastodon/locales/kw.json
+++ b/app/javascript/mastodon/locales/kw.json
@@ -1,5 +1,5 @@
{
- "about.blocks": "Moderated servers",
+ "about.blocks": "Leurennow koswys",
"about.contact": "Contact:",
"about.disclaimer": "Mastodon is free, open-source software, and a trademark of Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Reason not available",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Lettya gorfarth dhien",
"confirmations.domain_block.message": "Owgh hwi wir, wir sur a vynnes lettya'n {domain} dhien? Y'n brassa rann a gasow, boghes lettyansow medrys po tawheansow yw lowr ha gwell. Ny wrewgh hwi gweles dalgh a'n worfarth na yn py amserlin boblek pynag po yn agas gwarnyansow. Agas holyoryon an worfarth na a vydh diles.",
+ "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.logout.confirm": "Digelmi",
"confirmations.logout.message": "Owgh hwi sur a vynnes digelmi?",
"confirmations.mute.confirm": "Tawhe",
diff --git a/app/javascript/mastodon/locales/la.json b/app/javascript/mastodon/locales/la.json
index 2634a6f066..173ca7c612 100644
--- a/app/javascript/mastodon/locales/la.json
+++ b/app/javascript/mastodon/locales/la.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Confutare",
diff --git a/app/javascript/mastodon/locales/lt.json b/app/javascript/mastodon/locales/lt.json
index a2dac91ca1..fd4bbdd95e 100644
--- a/app/javascript/mastodon/locales/lt.json
+++ b/app/javascript/mastodon/locales/lt.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/lv.json b/app/javascript/mastodon/locales/lv.json
index ba14ec5c0c..9a3e3219e6 100644
--- a/app/javascript/mastodon/locales/lv.json
+++ b/app/javascript/mastodon/locales/lv.json
@@ -12,7 +12,7 @@
"about.powered_by": "Decentralizētu sociālo tīklu nodrošina {mastodon}",
"about.rules": "Servera noteikumi",
"account.account_note_header": "Piezīme",
- "account.add_or_remove_from_list": "Pievienot vai noņemt no saraksta",
+ "account.add_or_remove_from_list": "Pievienot vai Noņemt no sarakstiem",
"account.badges.bot": "Robots",
"account.badges.group": "Grupa",
"account.block": "Bloķēt @{name}",
@@ -105,7 +105,7 @@
"column.direct": "Privātie ziņojumi",
"column.directory": "Pārlūkot profilus",
"column.domain_blocks": "Bloķētie domēni",
- "column.favourites": "Izlase",
+ "column.favourites": "Izlases",
"column.follow_requests": "Sekošanas pieprasījumi",
"column.home": "Sākums",
"column.lists": "Saraksti",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tev ir nesaglabātas izmaiņas multivides aprakstā vai priekšskatījumā. Vēlies tās atmest?",
"confirmations.domain_block.confirm": "Bloķēt visu domēnu",
"confirmations.domain_block.message": "Vai tu tiešām vēlies bloķēt visu domēnu {domain}? Parasti pietiek, ja nobloķē vai apklusini kādu. Tu neredzēsi saturu vai paziņojumus no šī domēna nevienā laika līnijā. Tavi sekotāji no šī domēna tiks noņemti.",
+ "confirmations.edit.confirm": "Rediģēt",
+ "confirmations.edit.message": "Rediģējot, tiks pārrakstīts ziņojums, kuru tu šobrīd raksti. Vai tiešām vēlies turpināt?",
"confirmations.logout.confirm": "Iziet",
"confirmations.logout.message": "Vai tiešām vēlies izrakstīties?",
"confirmations.mute.confirm": "Apklusināt",
@@ -217,8 +219,8 @@
"empty_column.direct": "Pašreiz tev nav privātu ziņu. Tiklīdz tādu nosūtīsi vai saņemsi, tās parādīsies šeit.",
"empty_column.domain_blocks": "Vēl nav neviena bloķēta domēna.",
"empty_column.explore_statuses": "Pašlaik nekā aktuāla nav. Pārbaudi vēlāk!",
- "empty_column.favourited_statuses": "Pašreiz tev nav neviena izceltā ieraksta. Kad kādu izcelsi, tas parādīsies šeit.",
- "empty_column.favourites": "Neviens šo ziņojumu vel nav izcēlis. Kad kāds to izdarīs, tas parādīsies šeit.",
+ "empty_column.favourited_statuses": "Tev vēl nav nevienas iecienītākās ziņas. Kad pievienosi kādu izlasei, tas tiks parādīts šeit.",
+ "empty_column.favourites": "Šo ziņu neviens vēl nav pievienojis izlasei. Kad kāds to izdarīs, tas parādīsies šeit.",
"empty_column.follow_recommendations": "Neizdevās ģenerēt tev pielāgotus ieteikumus. Vari mēģināt izmantot meklēšanu, lai meklētu cilvēkus, kurus tu varētu pazīt, vai izpētīt populārākos tēmturus.",
"empty_column.follow_requests": "Šobrīd tev nav sekošanas pieprasījumu. Kad kāds pieteiksies tev sekot, pieprasījums parādīsies šeit.",
"empty_column.followed_tags": "Tu vēl neesi sekojis nevienam tēmturim. Kad to izdarīsi, tie tiks parādīti šeit.",
@@ -324,7 +326,7 @@
"keyboard_shortcuts.legend": "Parādīt šo leģendu",
"keyboard_shortcuts.local": "Atvērt vietējo laika līniju",
"keyboard_shortcuts.mention": "Pieminēt autoru",
- "keyboard_shortcuts.muted": "Atvērt apklusināto lietotāju sarakstu",
+ "keyboard_shortcuts.muted": "Atvērt noklusināto lietotāju sarakstu",
"keyboard_shortcuts.my_profile": "Atvērt savu profilu",
"keyboard_shortcuts.notifications": "Atvērt paziņojumu kolonnu",
"keyboard_shortcuts.open_media": "Atvērt multividi",
@@ -396,7 +398,7 @@
"not_signed_in_indicator.not_signed_in": "Lai piekļūtu šim resursam, tev ir jāpierakstās.",
"notification.admin.report": "{name} sūdzējās par {target}",
"notification.admin.sign_up": "{name} pierakstījās",
- "notification.favourite": "{name} patika tava ziņa",
+ "notification.favourite": "{name} pievienoja tavu ziņu izlasei",
"notification.follow": "{name} uzsāka tev sekot",
"notification.follow_request": "{name} nosūtīja tev sekošanas pieprasījumu",
"notification.mention": "{name} pieminēja tevi",
@@ -523,7 +525,7 @@
"search.placeholder": "Meklēšana",
"search.search_or_paste": "Meklē vai iekopē URL",
"search_popout.search_format": "Paplašināts meklēšanas formāts",
- "search_popout.tips.full_text": "Vienkāršs teksts atgriež ierakstus, kurus rakstīji, atzīmēji kā favorītus, pastiprināji vai pieminēji, kā arī atbilstošus lietotājvārdus, parādāmos vārdus un tēmturus.",
+ "search_popout.tips.full_text": "Vienkāršs teksts atgriež ziņas, kuras esi rakstījis, pievienojis izlasei, izcēlis vai pieminējis, kā arī atbilstošos lietotājvārdus, parādāmos vārdus un atsauces.",
"search_popout.tips.hashtag": "tēmturis",
"search_popout.tips.status": "ieraksts",
"search_popout.tips.text": "Vienkāršs teksts atgriež atbilstošus parādāmos vārdus, lietotājvārdus un tēmturus",
diff --git a/app/javascript/mastodon/locales/mk.json b/app/javascript/mastodon/locales/mk.json
index b9e5cda1e4..a84cc91686 100644
--- a/app/javascript/mastodon/locales/mk.json
+++ b/app/javascript/mastodon/locales/mk.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Сокриј цел домеин",
"confirmations.domain_block.message": "Дали скроз сте сигурни дека ќе блокирате сѐ од {domain}? Во повеќето случаеви неколку таргетирани блокирања или заќутувања се доволни и предложени. Нема да ја видите содржината од тој домеин во никој јавен времеплов или вашите нотификации. Вашите следбеници од тој домеин ќе бидат остранети.",
+ "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.logout.confirm": "Одјави се",
"confirmations.logout.message": "Дали сте сигурни дека сакате да се одјавите?",
"confirmations.mute.confirm": "Заќути",
diff --git a/app/javascript/mastodon/locales/ml.json b/app/javascript/mastodon/locales/ml.json
index 3574ede02d..5d29c55d02 100644
--- a/app/javascript/mastodon/locales/ml.json
+++ b/app/javascript/mastodon/locales/ml.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "മുഴുവൻ ഡൊമെയ്നും തടയുക",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "പുറത്തുകടക്കുക",
"confirmations.logout.message": "നിങ്ങൾക്ക് ലോഗ് ഔട്ട് ചെയ്യണമെന്ന് ഉറപ്പാണോ?",
"confirmations.mute.confirm": "നിശ്ശബ്ദമാക്കുക",
diff --git a/app/javascript/mastodon/locales/mr.json b/app/javascript/mastodon/locales/mr.json
index 1ba6aa9579..680aea770b 100644
--- a/app/javascript/mastodon/locales/mr.json
+++ b/app/javascript/mastodon/locales/mr.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "संपूर्ण डोमेन लपवा",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "तुमची खात्री आहे की तुम्ही लॉग आउट करू इच्छिता?",
"confirmations.mute.confirm": "आवाज बंद करा",
diff --git a/app/javascript/mastodon/locales/ms.json b/app/javascript/mastodon/locales/ms.json
index a003f42f4b..3a374884b2 100644
--- a/app/javascript/mastodon/locales/ms.json
+++ b/app/javascript/mastodon/locales/ms.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Anda belum menyimpan perubahan pada penerangan atau pratonton media. Anda ingin membuangnya?",
"confirmations.domain_block.confirm": "Sekat keseluruhan domain",
"confirmations.domain_block.message": "Adakah anda betul-betul, sungguh-sungguh pasti anda ingin menyekat keseluruhan {domain}? Selalunya, beberapa sekatan atau pembisuan tersasar sudah memadai dan lebih diutamakan. Anda tidak akan nampak kandungan daripada domain tersebut di mana-mana garis masa awam mahupun pemberitahuan anda. Pengikut anda daripada domain tersebut juga akan dibuang.",
+ "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.logout.confirm": "Log keluar",
"confirmations.logout.message": "Adakah anda pasti anda ingin log keluar?",
"confirmations.mute.confirm": "Bisukan",
diff --git a/app/javascript/mastodon/locales/my.json b/app/javascript/mastodon/locales/my.json
index 3c1cec63f2..cf5b3406c3 100644
--- a/app/javascript/mastodon/locales/my.json
+++ b/app/javascript/mastodon/locales/my.json
@@ -62,7 +62,7 @@
"account.unblock_domain": " {domain} ဒိုမိန်းကိုပြန်ဖွင့်မည်",
"account.unblock_short": "ဘလော့ဖြုတ်ရန်",
"account.unendorse": "အကောင့်ပရိုဖိုင်တွင်မဖော်ပြပါ",
- "account.unfollow": "ဖောလိုးဖြုတ်မည်",
+ "account.unfollow": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်",
"account.unmute": "{name} ကို ပြန်ဖွင့်ရန်",
"account.unmute_notifications": "{name}ထံမှသတိပေးချက်ပြန်ဖွင့်မည်",
"account.unmute_short": "ပြန်ဖွင့်ရန်",
@@ -106,7 +106,7 @@
"column.directory": "ပရိုဖိုင်များကို ရှာဖွေမည်\n",
"column.domain_blocks": " ဒိုမိန်းကိုပိတ်မည်",
"column.favourites": "အကြိုက်ဆုံးများ",
- "column.follow_requests": "တောင်းဆိုချက်များကိုလိုက်နာပါ။",
+ "column.follow_requests": "စောင့်ကြည့်ရန် တောင်းဆိုမှုများ",
"column.home": "ပင်မစာမျက်နှာ",
"column.lists": "စာရင်းများ",
"column.mutes": "မပေါ်အောင်ပိတ်ထားသောအသုံးပြုသူများ",
@@ -123,7 +123,7 @@
"column_subheading.settings": "ဆက်တင်များ",
"community.column_settings.local_only": "ပြည်တွင်း၌သာ",
"community.column_settings.media_only": "Media only",
- "community.column_settings.remote_only": "Remote only",
+ "community.column_settings.remote_only": "အဝေးမှသာ",
"compose.language.change": "ဘာသာစကား ပြောင်းမည်",
"compose.language.search": "ဘာသာစကားကိုရှာမည်",
"compose_form.direct_message_warning_learn_more": "ထပ်သိရှိလိုသည်",
@@ -153,15 +153,17 @@
"confirmations.block.confirm": "ဘလော့မည်",
"confirmations.block.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?",
"confirmations.cancel_follow_request.confirm": "ပန်ကြားချက်ကို ပယ်ဖျက်မည်",
- "confirmations.cancel_follow_request.message": "{name} ကိုဖော်လိုပယ်ဖျက်ရန် သေချာပါသလား။",
+ "confirmations.cancel_follow_request.message": "{name} ကို စောင့်ကြည့်ခြင်းအားပယ်ဖျက်ရန် သေချာပါသလား။",
"confirmations.delete.confirm": "ဖျက်မည်",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "ဖျက်မည်",
"confirmations.delete_list.message": "ဖျက်ရန် သေချာပါသလား?",
"confirmations.discard_edit_media.confirm": "ဖယ်ထုတ်ပါ",
- "confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
+ "confirmations.discard_edit_media.message": "သင်သည် မီဒီယာဖော်ပြချက် သို့မဟုတ် အစမ်းကြည့်ရှုခြင်းတွင် မသိမ်းဆည်းရသေးသော အပြောင်းအလဲများရှိသည်။ မည်သို့ပင်ဖြစ်စေ ဖျက်ပစ်မည်လား။",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "{domain} တစ်ခုလုံးကို ဘလော့လုပ်ရန် တကယ် သေချာပါသလား? များသောအားဖြင့် အနည်းစုကို ပစ်မှတ်ထား ဘလော့လုပ်ခြင်းသည် လုံလောက်ပါသည်။ ထို ဒိုမိန်းမှ အကြောင်းအရာ တစ်ခုမှ မြင်ရမည်မဟုတ်သည့်အပြင် ထို ဒိုမိန်းတွင်ရှိသော သင်၏ စောင့်ကြည့်သူများပါ ဖယ်ရှားပစ်မည်ဖြစ်သည်။",
+ "confirmations.edit.confirm": "ပြင်ရန်",
+ "confirmations.edit.message": "ယခုပြင်ဆင်ခြင်းတွင် သင်လက်ရှိမက်ဆေ့ချ်ကို ဖျက်ပစ်ပြီး အသစ်ရေးပါမည်။ ရှေ့ဆက်လိုသည်မှာ သေချာပါသလား။",
"confirmations.logout.confirm": "အကောင့်မှထွက်မည်",
"confirmations.logout.message": "အကောင့်မှ ထွက်ရန် သေချာပါသလား?",
"confirmations.mute.confirm": "ပိတ်ထားရန်",
@@ -171,29 +173,29 @@
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.reply.confirm": "စာပြန်မည်",
"confirmations.reply.message": "စာပြန်လျှင်ယခင်စာများကိုအလိုအလျောက်ပျက်သွားစေမည်။ ဆက်လက်လုပ်ဆောင်မည်လား?",
- "confirmations.unfollow.confirm": "ဖောလိုးဖြုတ်မည်",
- "confirmations.unfollow.message": "{name}ကိုဖောလိုးဖြုတ်မည်",
+ "confirmations.unfollow.confirm": "စောင့်ကြည့်ခြင်းအား ပယ်ဖျက်မည်",
+ "confirmations.unfollow.message": "{name} ကို စောင်ကြည့်ခြင်းအား ပယ်ဖျက်မည်မှာသေချာပါသလား။",
"conversation.delete": "ဤစကားပြောဆိုမှုကို ဖျက်ပစ်မည်",
"conversation.mark_as_read": "ဖတ်ပြီးသားအဖြစ်မှတ်ထားပါ",
"conversation.open": "Conversation ကိုကြည့်မည်",
"conversation.with": "{အမည်များ} ဖြင့်",
"copypaste.copied": "ကူယူပြီးပါပြီ",
"copypaste.copy": "ကူးယူပါ",
- "directory.federated": "From known fediverse",
+ "directory.federated": "သင် သိသော ဖက်ဒီမှ",
"directory.local": "{domain} မှသာလျှင်\n",
"directory.new_arrivals": "အသစ်ရောက်ရှိမှုများ",
"directory.recently_active": "မကြာသေးခင်က ဖွင့်ထားသော",
"disabled_account_banner.account_settings": "အကောင့်ဆက်တင်များ",
"disabled_account_banner.text": "{disabledAccount} သည်လတ်တလောပိတ်ခံထားရသည်",
- "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
+ "dismissable_banner.community_timeline": "အကောင့်များမှ လတ်တလောတင်ထားသည့်အများမြင်ပို့စ်များမှာ {domain} တွင် တင်ထားသောပို့စ်များဖြစ်သည်။",
"dismissable_banner.dismiss": "ပယ်ရန်",
"dismissable_banner.explore_links": "ဤသတင်းများကို ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများမှ လူများက ပြောဆိုနေကြပါသည်။",
"dismissable_banner.explore_statuses": "ဤစာများနှင့် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်ရှိ အခြားဆာဗာများမှ ဤပို့စ်များသည် ယခုဆာဗာပေါ်တွင် ဆွဲဆောင်မှု ရှိလာပါသည်။",
"dismissable_banner.explore_tags": "ဤ hashtag များသည် ယခုအချိန်တွင် ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ကွန်ရက်၏ အခြားဆာဗာများပေါ်ရှိ လူများကြားတွင် ဆွဲဆောင်မှုရှိလာပါသည်",
- "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
+ "dismissable_banner.public_timeline": "ဗဟိုချုပ်ကိုင်မှုလျှော့ချထားသော ဤဆာဗာနှင့် အခြားဆာဗာတို့တွင် တင်ထားသည့် လတ်တလော အများမြင်ပို့စ်များဖြစ်သည်။",
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Here is what it will look like:",
- "emoji_button.activity": "Activity",
+ "emoji_button.activity": "လုပ်ဆောင်ချက်",
"emoji_button.clear": "ရှင်းလင်းမည်",
"emoji_button.custom": "စိတ်ကြိုက်",
"emoji_button.flags": "Flags",
@@ -213,28 +215,28 @@
"empty_column.account_unavailable": "ပရိုဖိုင် မရနိုင်ပါ",
"empty_column.blocks": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ",
"empty_column.bookmarked_statuses": "သင့်တွင် မှတ်သားထားသော ပို့စ်များ မရှိသေးပါ။ တစ်ခုကို အမှတ်အသားပြုလိုက်ပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
- "empty_column.community": "The local timeline is empty. Write something publicly to get the ball rolling!",
+ "empty_column.community": "ဒေသတွင်းစာမျက်နှာမှာ အလွတ်ဖြစ်နေသည်။ အများမြင်နိုင်ရန်အတွက် တစ်ခုခုရေးပါ။",
"empty_column.direct": "သင့်တွင် တိုက်ရိုက်မက်ဆေ့ချ်များ မရှိသေးပါ။ ပေးပို့ထားပါက သို့မဟုတ် လက်ခံထားပါက ၎င်းတို့ကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.domain_blocks": "သင်ပိတ်ထားသော ဒိုမိန်းမရှိသေးပါ",
"empty_column.explore_statuses": "အခုလောလောဆယ်တွင် ရေပန်းစားနေသောပို့စ်များ မရှိသေးပါ။ နောက်မှ ပြန်စစ်ဆေးပါရန်။",
"empty_column.favourited_statuses": "သင့်တွင် အကြိုက်ဆုံးပို့စ်များ မရှိသေးပါ။ တစ်ခုကို သင်နှစ်သက်ထားပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
"empty_column.favourites": "ဤပို့စ်ကို အကြိုက်တွေ့သူ မရှိသေးပါ။ တစ်စုံတစ်ယောက်က ကြိုက်နှစ်သက်ပါက ဤနေရာတွင် ပြထားပါမည်။",
- "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
+ "empty_column.follow_recommendations": "သင့်အတွက် အကြံဉာဏ်များ မရရှိနိုင်ပါ။ သင်သိနိုင်သည့်လူများ သို့မဟုတ် ခေတ်စားနေသည့် hashtags များ ရှာဖွေရန်တို့အတွက် ရှာဖွေမှုကို အသုံးပြုနိုင်သည်။",
"empty_column.follow_requests": "သင့်တွင် စောင့်ကြည့်ရန် တောင်းဆိုမှုများ မရှိသေးပါ။ သင်လက်ခံရရှိပါက ၎င်းကို ဤနေရာတွင် ပြထားပါမည်။",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
- "empty_column.hashtag": "There is nothing in this hashtag yet.",
- "empty_column.home": "Your home timeline is empty! Follow more people to fill it up. {suggestions}",
+ "empty_column.followed_tags": "သင်သည် မည်သည့် hashtag ကိုမျှ စောင့်မကြည့်ရသေးပါ။ စောင့်ကြည့်ပါက ဤနေရာတွင် ပြပေးပါမည်။",
+ "empty_column.hashtag": "ဤ hashtag တွင် မည်သည့်အရာမျှ မရှိသေးပါ။",
+ "empty_column.home": "သင့်ပင်မစာမျက်နှာမှာ အလွတ်ဖြစ်နေပါသည်။ ဖြည့်ရန်အတွက် လူများကို စောင့်ကြည့်ပါ {suggestions}",
"empty_column.home.suggestions": "ဆက်လက်ဖတ်ရှုမည်",
"empty_column.list": "There is nothing in this list yet. When members of this list post new statuses, they will appear here.",
"empty_column.lists": "သင့်တွင် List မရှိသေးပါ။ List အသစ်ဖွင့်လျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်မည်",
"empty_column.mutes": "ပိတ်ထားသောအကောင့်များမရှိသေးပါ",
"empty_column.notifications": "သတိပေးချက်မရှိသေးပါ။ သတိပေးချက်အသစ်ရှိလျှင် ဤနေရာတွင်ကြည့်ရှုနိုင်သည်",
- "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
+ "empty_column.public": "ဤနေရာတွင် မည်သည့်အရာမျှမရှိပါ။ တစ်ခုခုရေးပါ သို့မဟုတ် ဖြည့်စွက်ရန်အတွက် အခြားဆာဗာ အသုံးပြုသူများကို စောင့်ကြည့်ပါ။",
+ "error.unexpected_crash.explanation": " ကျွန်ုပ်တို့၏ကုဒ်တွင် ချွတ်ယွင်းချက်တစ်ခု သို့မဟုတ် ဘရောက်ဆာနှင့် အဆင်မပြေမှုတို့ကြောင့် ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ပါ။",
"error.unexpected_crash.explanation_addons": "ဤစာမျက်နှာကို မှန်ကန်စွာ မပြသနိုင်ခဲ့ပါ။ ဤအမှားသည် Browser add-on ထည့်သွင်းထားမှုများ သို့မဟုတ် အလိုအလျောက် ဘာသာပြန်ကိရိယာများကြောင့် ဖြစ်နိုင်သည်။",
"error.unexpected_crash.next_steps": "စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ ၎င်းမှာ အကူအညီမဖြစ်ပါက သင်သည် အခြား Browser သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်လက်အသုံးပြုနိုင်ပါမည်။",
- "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
+ "error.unexpected_crash.next_steps_addons": "၎င်းတို့ကို ပိတ်ပြီး စာမျက်နှာကို ပြန်လည်စတင်ကြည့်ပါ။ အဆင်မပြေပါက အခြားဘရောက်ဆာ သို့မဟုတ် မူရင်းအက်ပ်မှတစ်ဆင့် Mastodon ကို ဆက်ပြီးအသုံးပြုနိုင်ပါမည်။",
+ "errors.unexpected_crash.copy_stacktrace": "stacktrace ကို ကလစ်ဘုတ်သို့ ကူးယူပါ",
"errors.unexpected_crash.report_issue": "အဆင်မပြေမှုကို တိုင်ကြားရန်",
"explore.search_results": "ရှာဖွေမှုရလဒ်များ",
"explore.suggested_follows": "သင့်အတွက်",
@@ -242,16 +244,16 @@
"explore.trending_links": "သတင်းများ",
"explore.trending_statuses": "ပို့စ်တင်မယ်",
"explore.trending_tags": "ဟက်ရှ်တက်များ",
- "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
- "filter_modal.added.context_mismatch_title": "Context mismatch!",
- "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
- "filter_modal.added.expired_title": "Expired filter!",
- "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
+ "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.review_and_configure": "ဤစစ်ထုတ်မှုအမျိုးအစားကို ပြန်လည်သုံးသပ်ပြီး ထပ်မံပြင်ဆင်သတ်မှတ်ရန်၊ {settings_link} သို့ သွားပါ။",
"filter_modal.added.review_and_configure_title": "စစ်ထုတ်မှု သတ်မှတ်ချက်များ",
- "filter_modal.added.settings_link": "settings page",
+ "filter_modal.added.settings_link": "သတ်မှတ်ချက်များစာမျက်နှာ",
"filter_modal.added.short_explanation": "ဤပို့စ်ကို အောက်ပါ စစ်ထုတ်မှုအမျိုးအစားတွင် ပေါင်းထည့်ထားပါသည် - {title}။",
"filter_modal.added.title": "စစ်ထုတ်မှု ထည့်သွင်းပြီးပါပြီ။",
- "filter_modal.select_filter.context_mismatch": "does not apply to this context",
+ "filter_modal.select_filter.context_mismatch": "ဤအကြောင်းအရာနှင့် မသက်ဆိုင်ပါ",
"filter_modal.select_filter.expired": "သက်တမ်းကုန်သွားပါပြီ",
"filter_modal.select_filter.prompt_new": "အမျိုးအစားအသစ် - {name}",
"filter_modal.select_filter.search": "ရှာရန် သို့မဟုတ် ဖန်တီးရန်",
@@ -260,11 +262,11 @@
"filter_modal.title.status": "ပို့စ်တစ်ခု စစ်ထုတ်ပါ",
"follow_recommendations.done": "ပြီးပါပြီ",
"follow_recommendations.heading": "သင်မြင်လိုသော သူများထံမှ ပို့စ်များကို စောင့်ကြည့်ပါ။ ဤတွင် အကြံပြုချက်အချို့ရှိပါသည်။",
- "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
- "follow_request.authorize": "Authorize",
+ "follow_recommendations.lead": "သင်စောင့်ကြည့်ထားသူများ၏ ပို့စ်များမှာ သင့်ပင်မစာမျက်နှာတွင် အချိန်နှင့်တပြေးညီ ပေါ်လာပါမည်။ မကြောက်ပါနှင့်။ အချိန်မရွေး စောင့်ကြည့်ခြင်းအား ရပ်တန့်နိုင်ပါသည်။",
+ "follow_request.authorize": "လုပ်ပိုင်ခွင့်",
"follow_request.reject": "ဖယ်ရှားပါ",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "Hashtag ကို စောင့်ကြည့်ပါမည်",
"footer.about": "အကြောင်း",
"footer.directory": "ပရိုဖိုင်များလမ်းညွှန်",
"footer.get_app": "အက်ပ်ကို ရယူပါ",
@@ -279,29 +281,29 @@
"hashtag.column_header.tag_mode.any": "သို့မဟုတ် {additional}",
"hashtag.column_header.tag_mode.none": "မပါဘဲ {additional}",
"hashtag.column_settings.select.no_options_message": "အကြံပြုချက်မတွေ့ပါ",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
+ "hashtag.column_settings.select.placeholder": "hashtag သို့ ဝင်ရောက်နေခြင်း...",
+ "hashtag.column_settings.tag_mode.all": "ဤအရာအားလုံး",
+ "hashtag.column_settings.tag_mode.any": "ဤအရာထဲမှ တစ်ခု",
+ "hashtag.column_settings.tag_mode.none": "တစ်ခုမှ မဟုတ်ပါ။",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
"hashtag.follow": "Hashtag ကို စောင့်ကြည့်မယ်",
"hashtag.unfollow": "Hashtag ကို မစောင့်ကြည့်ပါ",
"home.column_settings.basic": "အခြေခံ",
- "home.column_settings.show_reblogs": "Show boosts",
+ "home.column_settings.show_reblogs": "Boost များကို ပြပါ",
"home.column_settings.show_replies": "ပြန်စာများကို ပြပါ",
"home.hide_announcements": "ကြေညာချက်များကို ဖျောက်ပါ",
"home.show_announcements": "ကြေညာချက်များကို ပြပါ",
- "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.",
- "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
- "interaction_modal.on_another_server": "On a different server",
+ "interaction_modal.description.favourite": "Mastodon အကောင့်တစ်ခုဖြင့် ဤပို့စ်ကို နှစ်သက်ကြောင်းနှင့် စာရေးသူအား သင်နှစ်သက်ကြောင်း အသိပေးပြီးနောက် ၎င်းကို နောက်မှ သိမ်းဆည်းနိုင်သည်။",
+ "interaction_modal.description.follow": "Mastodon အကောင့်ဖြင့် သင်၏ ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ ပို့စ်များကို ရရှိရန်အတွက် {name} ကို စောင့်ကြည့်နိုင်ပါသည်။",
+ "interaction_modal.description.reblog": "Mastodon အကောင့်တစ်ခုဖြင့် သင်၏စောင့်ကြည့်သူများကို မျှဝေရန်အတွက် ဤပို့စ်ကို Boost လုပ်ပါ။",
+ "interaction_modal.description.reply": "Mastodon အကောင့်တစ်ခုဖြင့် သင် ဤပို့စ်ကို တုံ့ပြန်နိုင်ပါသည်။",
+ "interaction_modal.on_another_server": "တခြားဆာဗာပေါ်တွင်",
"interaction_modal.on_this_server": "ဤဆာဗာတွင်",
- "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
- "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
+ "interaction_modal.other_server_instructions": "သင်အကြိုက်ဆုံး Mastodon အက်ပ် သို့မဟုတ် သင့် Mastodon ဆာဗာ၏ ဝဘ်ရှိ ရှာဖွေမှုနေရာတွင် ဤ URL ကို ကူးယူပြီး ထည့်ပါ။",
+ "interaction_modal.preamble": "Mastodon မှာ ဗဟိုချုပ်ကိုင်မှု မရှိခြင်းကြောင့် ဤတစ်ခုအတွက် သင့်တွင်အကောင့်မရှိပါက အခြား Mastodon ဆာဗာ သို့မဟုတ် အဆင်ပြေသောပလက်ဖောင်းတွင် ရှိသော သင့်လက်ရှိအကောင့်ဖြင့် အသုံးပြုနိုင်ပါသည်။",
"interaction_modal.title.favourite": "အကြိုက်ဆုံး {name} ၏ ပို့စ်",
"interaction_modal.title.follow": "{name} ကို စောင့်ကြည့်မယ်",
- "interaction_modal.title.reblog": "Boost {name}'s post",
+ "interaction_modal.title.reblog": "{name} ၏ ပို့စ်ကို Boost လုပ်ပါ",
"interaction_modal.title.reply": "{name} ၏ ပို့စ်ကို စာပြန်မယ်",
"intervals.full.days": "{number, plural, one {# day} other {# days}}",
"intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
@@ -341,10 +343,10 @@
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
"lightbox.close": "ပိတ်ပါ",
- "lightbox.compress": "Compress image view box",
+ "lightbox.compress": "ရုပ်ပုံမြင်ကွင်းအကွက်ကို ချုံ့ပါ",
"lightbox.expand": "ပုံကိုဖွင့်ပါ",
"lightbox.next": "ရှေ့သို့",
- "lightbox.previous": "Previous",
+ "lightbox.previous": "ရှေ့သို့",
"limited_account_hint.action": "ဘာပဲဖြစ်ဖြစ် ပရိုဖိုင်ကို ပြပါ",
"limited_account_hint.title": "ဤပရိုဖိုင်ကို {domain} ၏ စိစစ်သူများမှ ဖျောက်ထားသည်။",
"lists.account.add": "စာရင်းထဲသို့ထည့်ပါ",
@@ -354,10 +356,10 @@
"lists.edit.submit": "ခေါင်းစဥ် ပြောင်းလဲရန်",
"lists.new.create": "စာရင်းသွင်းပါ",
"lists.new.title_placeholder": "စာရင်းသစ်ခေါင်းစဥ်",
- "lists.replies_policy.followed": "Any followed user",
+ "lists.replies_policy.followed": "မည်သည့်စောင့်ကြည့်သူမဆို",
"lists.replies_policy.list": "စာရင်းထဲမှ အဖွဲ့ဝင်များ",
"lists.replies_policy.none": "တစ်ယောက်မှမရှိပါ",
- "lists.replies_policy.title": "Show replies to:",
+ "lists.replies_policy.title": "ပြန်စာများကို ပြရန် -",
"lists.search": "မိမိဖောလိုးထားသူများမှရှာဖွေမည်",
"lists.subheading": "သင့်၏စာရင်းများ",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
@@ -373,31 +375,31 @@
"navigation_bar.blocks": "ဘလော့ထားသောအကောင့်များ",
"navigation_bar.bookmarks": "မှတ်ထားသည်များ",
"navigation_bar.community_timeline": "ဒေသစံတော်ချိန်",
- "navigation_bar.compose": "Compose new post",
+ "navigation_bar.compose": "ပို့စ်အသစ်ရေးပါ",
"navigation_bar.direct": "တိုက်ရိုက်မက်ဆေ့ချ်များ",
- "navigation_bar.discover": "Discover",
+ "navigation_bar.discover": "ရှာဖွေပါ",
"navigation_bar.domain_blocks": "Hidden domains",
"navigation_bar.edit_profile": "ကိုယ်ရေးမှတ်တမ်းပြင်ဆင်မည်",
- "navigation_bar.explore": "Explore",
+ "navigation_bar.explore": "စူးစမ်းရန်",
"navigation_bar.favourites": "အကြိုက်ဆုံးများ",
- "navigation_bar.filters": "Muted words",
+ "navigation_bar.filters": "စကားလုံးများ ပိတ်ထားပါ",
"navigation_bar.follow_requests": "တောင်းဆိုချက်များကို စောင့်ကြည့်ပါ",
- "navigation_bar.followed_tags": "Followed hashtags",
+ "navigation_bar.followed_tags": "Hashtag ကို စောင့်ကြည့်မယ်",
"navigation_bar.follows_and_followers": "စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း",
"navigation_bar.lists": "စာရင်းများ",
"navigation_bar.logout": "ထွက်မယ်",
- "navigation_bar.mutes": "Muted users",
+ "navigation_bar.mutes": "အသုံးပြုသူများကို ပိတ်ထားပါ",
"navigation_bar.personal": "ကိုယ်ရေးကိုယ်တာ",
"navigation_bar.pins": "ပင်တွဲထားသောပို့စ်များ",
- "navigation_bar.preferences": "Preferences",
- "navigation_bar.public_timeline": "Federated timeline",
+ "navigation_bar.preferences": "စိတ်ကြိုက်သတ်မှတ်ချက်များ",
+ "navigation_bar.public_timeline": "ဖက်ဒီစာမျက်နှာ",
"navigation_bar.search": "ရှာရန်",
"navigation_bar.security": "လုံခြုံရေး",
"not_signed_in_indicator.not_signed_in": "ဤရင်းမြစ်သို့ ဝင်ရောက်ရန်အတွက် သင်သည် အကောင့်ဝင်ရန် လိုအပ်ပါသည်။",
- "notification.admin.report": "{name} reported {target}",
+ "notification.admin.report": "{name} က {target} ကို တိုင်ကြားခဲ့သည်",
"notification.admin.sign_up": "{name} က အကောင့်ဖွင့်ထားသည်",
"notification.favourite": "{name} favourited your status",
- "notification.follow": "{name} သင့်ကို စောင့်ကြည့်ခဲ့သည်",
+ "notification.follow": "{name} က သင့်ကို စောင့်ကြည့်ခဲ့သည်",
"notification.follow_request": "{name} က သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုထားသည်",
"notification.mention": "{name} က သင့်ကို ဖော်ပြခဲ့သည်",
"notification.own_poll": "စစ်တမ်းကောက်မှု ပြီးဆုံးပါပြီ",
@@ -407,45 +409,45 @@
"notification.update": "{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်",
"notifications.clear": "အသိပေးချက်များအား ရှင်းလင်းပါ",
"notifications.clear_confirmation": "သတိပေးချက်အားလုံးကို အပြီးတိုင်ဖယ်ရှားမည်",
- "notifications.column_settings.admin.report": "New reports:",
- "notifications.column_settings.admin.sign_up": "New sign-ups:",
+ "notifications.column_settings.admin.report": "တိုင်ကြားစာအသစ်များ -",
+ "notifications.column_settings.admin.sign_up": "အကောင့်အသစ်များ -",
"notifications.column_settings.alert": "Desktop သတိပေးချက်များ",
"notifications.column_settings.favourite": "ကြိုက်နှစ်သက်မှုများ",
"notifications.column_settings.filter_bar.advanced": "ခေါင်းစဥ်အားလုံးများကိုဖော်ပြပါ",
"notifications.column_settings.filter_bar.category": "Quick filter bar",
"notifications.column_settings.filter_bar.show_bar": "စစ်ထုတ်မှုဘားကို ပြပါ",
"notifications.column_settings.follow": "စောင့်ကြည့်သူအသစ်များ -",
- "notifications.column_settings.follow_request": "New follow requests:",
- "notifications.column_settings.mention": "Mentions:",
+ "notifications.column_settings.follow_request": "စောင့်ကြည့်ရန် တောင်းဆိုမှုအသစ်များ -",
+ "notifications.column_settings.mention": "ဖော်ပြချက်များ -",
"notifications.column_settings.poll": "စစ်တမ်းရလဒ်",
"notifications.column_settings.push": "အသိပေးချက်များအား ရအောင်ပို့ခြင်း",
- "notifications.column_settings.reblog": "Boosts:",
+ "notifications.column_settings.reblog": "Boosts -",
"notifications.column_settings.show": "ကော်လံတွင်ပြပါ",
"notifications.column_settings.sound": "အသံဖွင့်မည်",
"notifications.column_settings.status": "ပို့စ်အသစ်များ -",
"notifications.column_settings.unread_notifications.category": "မဖတ်ရသေးသောအသိပေးချက်များ -",
- "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
+ "notifications.column_settings.unread_notifications.highlight": "မဖတ်ရသေးသော အသိပေးချက်များကို ဖော်ပြပါ",
"notifications.column_settings.update": "ပြင်ဆင်ထားမှုများ -",
"notifications.filter.all": "အားလုံး",
"notifications.filter.boosts": "အားပေးမည်",
"notifications.filter.favourites": "ကြိုက်နှစ်သက်မှုများ",
- "notifications.filter.follows": "ဖောလိုးမည်",
+ "notifications.filter.follows": "စောင့်ကြည့်မယ်",
"notifications.filter.mentions": " မန်းရှင်းမည်",
"notifications.filter.polls": "စစ်တမ်းရလဒ်",
"notifications.filter.statuses": "သင်စောင့်ကြည့်သူများထံမှ အပ်ဒိတ်များ",
"notifications.grant_permission": "ခွင့်ပြုချက်ပေးမည်",
"notifications.group": "အသိပေးချက်များ {count} ခု",
"notifications.mark_as_read": "အသိပေးချက်တိုင်းကို ဖတ်ပြီးကြောင်း အမှတ်အသားပြုပါ",
- "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_permission_banner.enable": "Enable desktop notifications",
+ "notifications.permission_denied": "ဘရောက်ဆာခွင့်ပြုချက်များ တောင်းဆိုမှုအား ငြင်းခဲ့သောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို မရရှိနိုင်ပါ",
+ "notifications.permission_denied_alert": "ဘရောက်ဆာခွင့်ပြုချက်ကို ငြင်းပယ်ခဲ့သောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်၍မရပါ",
+ "notifications.permission_required": "လိုအပ်သောခွင့်ပြုချက်ကို မပေးထားသောကြောင့် ဒက်စ်တော့ အသိပေးချက်များကို မရရှိနိုင်ပါ။",
+ "notifications_permission_banner.enable": "ဒက်စ်တော့ အသိပေးချက်များကို ဖွင့်ပါ",
"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",
- "picture_in_picture.restore": "Put it back",
+ "notifications_permission_banner.title": "လက်လွတ်မခံပါနှင့်",
+ "picture_in_picture.restore": "ပြန်ထားပါ",
"poll.closed": "ပိတ်သွားပြီ",
"poll.refresh": "ပြန်ဖွင့်မည်",
- "poll.total_people": "{count, plural, one {# person} other {# people}}",
+ "poll.total_people": "{count, plural, one {# person} other {# people}}\n",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
"poll.vote": "မဲပေးမည်",
"poll.voted": "သင်ဤအဖြေကိုမဲပေးခဲ့သည်",
@@ -456,20 +458,20 @@
"privacy.direct.long": "မန်းရှင်းခေါ်သူသီးသန့်",
"privacy.direct.short": "Direct",
"privacy.private.long": "ဖော်လိုးလုပ်သူသီးသန့်",
- "privacy.private.short": "Followers-only",
- "privacy.public.long": "Visible for all",
- "privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
- "privacy.unlisted.short": "Unlisted",
- "privacy_policy.last_updated": "Last updated {date}",
+ "privacy.private.short": "စောင့်ကြည့်သူများသာ",
+ "privacy.public.long": "အားလုံး မြင်နိုင်သည်",
+ "privacy.public.short": "အများကိုပြမည်",
+ "privacy.unlisted.long": "အားလုံးမြင်နိုင်သော်လည်း ရှာဖွေမှုများမှ ဖယ်ထုတ်ထားသည်",
+ "privacy.unlisted.short": "စာရင်းမသွင်းထားပါ",
+ "privacy_policy.last_updated": "နောက်ဆုံး ပြင်ဆင်ခဲ့သည့်ရက်စွဲ {date}",
"privacy_policy.title": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
"refresh": "ပြန်လည်စတင်ပါ",
"regeneration_indicator.label": "လုပ်ဆောင်နေသည်…",
- "regeneration_indicator.sublabel": "Your home feed is being prepared!",
+ "regeneration_indicator.sublabel": "သင့်ပင်မစာမျက်နှာကို ပြင်ဆင်နေပါသည်။",
"relative_time.days": "{number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
- "relative_time.full.just_now": "just now",
+ "relative_time.full.just_now": "အခုလေးတင်",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.hours": "{number}h",
@@ -479,12 +481,12 @@
"relative_time.today": "ယနေ့",
"reply_indicator.cancel": "ပယ်ဖျက်မည်",
"report.block": "ဘလော့မည်",
- "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
+ "report.block_explanation": "၎င်းတို့ရဲ့ ပို့စ်တွေကို မြင်ရမှာမဟုတ်ဘူး။ သင့်ပို့စ်များကို မမြင်နိုင်သလို သင့်ကို စောင့်ကြည့်၍ရမည်လည်းမဟုတ်ပါ။ ၎င်းတို့ကို ပိတ်ပင်ထားပါသည်။",
"report.categories.other": "အခြား",
"report.categories.spam": "ပြင်ပစာများ",
"report.categories.violation": "ဤစာတွင် သတ်မှတ်ထားသောစည်းကမ်းများကို ဖောက်ဖျက်သောအကြောင်းအရာပါဝင်နေသည်",
"report.category.subtitle": "အကိုက်ညီဆုံးကိုရွေးချယ်ပါ",
- "report.category.title": "Tell us what's going on with this {type}",
+ "report.category.title": "ဤ {type} တွင် ဘာဖြစ်နေသည်ကို ပြောပြပါ",
"report.category.title_account": "ကိုယ်ရေးမှတ်တမ်း",
"report.category.title_status": "ပို့စ်",
"report.close": "ပြီးပြီ",
@@ -492,34 +494,34 @@
"report.forward": "{target} သို့တစ်ဆင့်ပို့ပေးမည်",
"report.forward_hint": "ဤအကောင့်မှာတစ်ခြားဆာဗာမှဖြစ်သည်။ အမည်မသိတိုင်းကြားချက်ဖွင့်လိုပါသလား?",
"report.mute": "ပိတ်ထားရန်",
- "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
+ "report.mute_explanation": "၎င်းတို့၏ပို့စ်များကို သင်မြင်ရမည်မဟုတ်ပါ။ ၎င်းတို့မှာ သင့်ကို စောင့်ကြည့်၍ ပို့စ်များကို မြင်နိုင်ဆဲဖြစ်ပြီး ၎င်းတို့ကို အသံပိတ်ထားကြောင်း သိမည်မဟုတ်ပါ။\n",
"report.next": "ရှေ့သို့",
"report.placeholder": "Type or paste additional comments",
"report.reasons.dislike": "မကြိုက်ပါ",
"report.reasons.dislike_description": "ပိုမိုမြင်လိုသည်ရှိပါသလား",
"report.reasons.other": "တစ်ခုခုဖြစ်နေသည်",
- "report.reasons.other_description": "The issue does not fit into other categories",
- "report.reasons.spam": "It's spam",
- "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
- "report.reasons.violation": "It violates server rules",
- "report.reasons.violation_description": "You are aware that it breaks specific rules",
- "report.rules.subtitle": "Select all that apply",
- "report.rules.title": "Which rules are being violated?",
- "report.statuses.subtitle": "Select all that apply",
- "report.statuses.title": "Are there any posts that back up this report?",
+ "report.reasons.other_description": "ဤအချက်မှာ အခြားအမျိုးအစားများနှင့် မကိုက်ညီပါ။",
+ "report.reasons.spam": "၎င်းမှာ Spam ဖြစ်သည်",
+ "report.reasons.spam_description": "အန္တရာယ်ရှိသော လင့်ခ်များ၊ အတုအယောင်များ သို့မဟုတ် ထပ်တလဲလဲ ပြန်ကြားမှုများ",
+ "report.reasons.violation": "၎င်းမှာ ဆာဗာစည်းမျဉ်းများကို ချိုးဖောက်ထားသည်",
+ "report.reasons.violation_description": "သတ်မှတ်ထားသော စည်းကမ်းများကို ချိုးဖောက်ထားကြောင်း သင် သိရှိထားသည်။",
+ "report.rules.subtitle": "သက်ဆိုင်သမျှကို ရွေးပါ",
+ "report.rules.title": "မည်သည့်စည်းကမ်းများကို ချိုးဖောက်ထားပါသလဲ။",
+ "report.statuses.subtitle": "သက်ဆိုင်သမျှကို ရွေးပါ",
+ "report.statuses.title": "ဤတိုင်ကြားစာကို အရန်ကူးထားသည့် ပို့စ်များ ရှိပါသလား။",
"report.submit": "Submit report",
"report.target": "Report {target}",
- "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
- "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
- "report.thanks.title": "Don't want to see this?",
- "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
- "report.unfollow": "Unfollow @{name}",
- "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
+ "report.thanks.take_action": "ဤသည်မှာ Mastodon တွင် သင်မြင်ရသည့်အရာများ ထိန်းချုပ်ရန်အတွက် ရွေးချယ်ရမည့်နေရာဖြစ်သည် -",
+ "report.thanks.take_action_actionable": "၎င်းကို ကျွန်ုပ်တို့ သုံးသပ်နေချိန်တွင် သင်သည် @{name} ကို အရေးယူနိုင်သည် -",
+ "report.thanks.title": "ဒါကို မမြင်ချင်ဘူးလား။",
+ "report.thanks.title_actionable": "တိုင်ကြားခြင်းအတွက် ကျေးဇူးတင်ပါသည်၊ ဤအရာကို ကျွန်ုပ်တို့ စစ်ဆေးပါမည်။",
+ "report.unfollow": "@{name} ကို မစောင့်ကြည့်တော့ပါ",
+ "report.unfollow_explanation": "သင် ဤအကောင့်ကို စောင့်ကြည့်နေသည်။ သင့်ပင်မစာမျက်နှာတွင် ၎င်းတို့၏ပို့စ်များကို ထပ်ပြီးမတွေ့ချင်တော့ပါက စောင့်ကြည့်ခြင်းကို ရပ်တန့်နိုင်ပါသည်။",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
"report_notification.categories.other": "အခြား",
"report_notification.categories.spam": "Spam",
- "report_notification.categories.violation": "Rule violation",
- "report_notification.open": "Open report",
+ "report_notification.categories.violation": "စည်းကမ်းဖောက်ဖျက်ခြင်း",
+ "report_notification.open": "အစီရင်ခံစာကိုဖွင့်ပါ",
"search.placeholder": "ရှာဖွေရန်",
"search.search_or_paste": "URL ရိုက်ထည့်ပါ သို့မဟုတ် ရှာဖွေပါ",
"search_popout.search_format": "အဆင့်မြင့်ရှာဖွေမှုပုံစံ",
@@ -533,59 +535,59 @@
"search_results.hashtags": "ဟက်ရှ်တက်များ",
"search_results.nothing_found": "ရှာဖွေလိုသောအရာမရှိပါ",
"search_results.statuses": "ပို့စ်တင်မယ်",
- "search_results.statuses_fts_disabled": "Searching posts by their content is not enabled on this Mastodon server.",
+ "search_results.statuses_fts_disabled": "ဤ Mastodon ဆာဗာတွင် ၎င်းတို့၏ အကြောင်းအရာအလိုက် ပို့စ်များရှာဖွေခြင်းကို ဖွင့်မထားပါ။",
"search_results.title": "{q} ကို ရှာပါ",
"search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
+ "server_banner.about_active_users": "ပြီးခဲ့သည့် ရက်ပေါင်း ၃၀ အတွင်း ဤဆာဗာကို အသုံးပြုသူများ (လအလိုက် လက်ရှိအသုံးပြုသူများ)",
"server_banner.active_users": "လက်ရှိအသုံးပြုသူများ",
- "server_banner.administered_by": "Administered by:",
- "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
+ "server_banner.administered_by": "မှ စီမံခန့်ခွဲသည် -",
+ "server_banner.introduction": "{domain} သည် {mastodon} မှ ပံ့ပိုးပေးထားသော ဗဟိုချုပ်ကိုင်မှုမရှိသည့် လူမှုကွန်ရက်တစ်ခုဖြစ်သည်။",
"server_banner.learn_more": "ပိုမိုသိရှိရန်",
- "server_banner.server_stats": "Server stats:",
+ "server_banner.server_stats": "ဆာဗာအား လက်ရှိအသုံးပြုသူများ -",
"sign_in_banner.create_account": "အကောင့်ဖန်တီးမည်",
"sign_in_banner.sign_in": "အကောင့်ဝင်မည်",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_domain": "Open moderation interface for {domain}",
+ "sign_in_banner.text": "ပရိုဖိုင်များ သို့မဟုတ် hashtags များ၊ အကြိုက်ဆုံး၊ မျှဝေပြီး ပို့စ်များနှင့် ပို့စ် ပြန်ကြားစာများ ကြည့်ရှုရန်အတွက် အကောင့်ဝင်ရောက်ပါ။ အခြားဆာဗာတစ်ခုပေါ်ရှိ သင့်အကောင့်မှလည်း အပြန်အလှန် ဖလှယ်နိုင်ပါသည်။",
+ "status.admin_account": "@{name} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ",
+ "status.admin_domain": "{domain} အတွက် စိစစ်ခြင်းကြားခံနယ်ကို ဖွင့်ပါ",
"status.admin_status": "Open this status in the moderation interface",
"status.block": "@{name} ကိုဘလော့မည်",
"status.bookmark": "မှတ်ထားသည်များ",
"status.cancel_reblog_private": "Unboost",
- "status.cannot_reblog": "This post cannot be boosted",
+ "status.cannot_reblog": "ဤပို့စ်ကို Boost ၍ မရပါ",
"status.copy": "Copy link to status",
"status.delete": "ဖျက်ရန်",
- "status.detailed_status": "Detailed conversation view",
+ "status.detailed_status": "အသေးစိတ်စကားပြောဆိုမှုမြင်ကွင်း",
"status.direct": "@{name} ကို တိုက်ရိုက်စာပို့မည်",
"status.edit": "ပြင်ဆင်ရန်",
- "status.edited": "Edited {date}",
- "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
+ "status.edited": "{date} ကို ပြင်ဆင်ပြီးပါပြီ",
+ "status.edited_x_times": "{count, plural, one {{count} time} other {{count} times}} ပြင်ဆင်ခဲ့သည်",
"status.embed": "Embed",
"status.favourite": "ကြိုက်နှစ်သက်မှုများ",
- "status.filter": "Filter this post",
- "status.filtered": "Filtered",
+ "status.filter": "ဤပို့စ်ကို စစ်ထုတ်ပါ",
+ "status.filtered": "စစ်ထုတ်ထားသည်",
"status.hide": "ပို့စ်ကိုပိတ်ထားမည်",
- "status.history.created": "{name} created {date}",
- "status.history.edited": "{name} edited {date}",
- "status.load_more": "Load more",
- "status.media_hidden": "Media hidden",
- "status.mention": "Mention @{name}",
- "status.more": "More",
- "status.mute": "Mute @{name}",
- "status.mute_conversation": "Mute conversation",
+ "status.history.created": "{name} က {date} က ဖန်တီးခဲ့သည်",
+ "status.history.edited": "{name} က {date} က ပြင်ဆင်ခဲ့သည်",
+ "status.load_more": "ပို၍ဆောင်ရွက်ပါ",
+ "status.media_hidden": "မီဒီယာကို ဖျောက်ထားပါ",
+ "status.mention": "@{name} ကို ဖော်ပြထားသည်",
+ "status.more": "နောက်ထပ်",
+ "status.mute": "@{name} ကို ပိတ်ထားရန်",
+ "status.mute_conversation": "စကားဝိုင်းကို ပိတ်ထားရန်",
"status.open": "ပို့စ်ကိုချဲ့ထွင်မည်",
- "status.pin": "Pin on profile",
+ "status.pin": "ပရိုဖိုင်တွင် ပင်ထားပါ",
"status.pinned": "ပင်တွဲထားသောပို့စ်",
"status.read_more": "ပိုမိုဖတ်ရှုရန်",
"status.reblog": "Boost",
- "status.reblog_private": "Boost with original visibility",
- "status.reblogged_by": "{name} boosted",
- "status.reblogs.empty": "No one has boosted this post yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
+ "status.reblog_private": "မူရင်းပုံစံဖြင့် Boost လုပ်ပါ",
+ "status.reblogged_by": "{name} က Boost လုပ်ထားသည်",
+ "status.reblogs.empty": "ဤပို့စ်ကို မည်သူမှ Boost လုပ်ထားခြင်းမရှိသေးပါ။ တစ်ယောက်ယောက်မှ Boost လုပ်ပါက ဤနေရာတွင်ပေါ်လာပါမည်။",
+ "status.redraft": "ဖျက်ပြီး ပြန်ရေးပါ",
"status.remove_bookmark": "မှတ်ထားသည်များကို ဖယ်ရှားပါ",
"status.replied_to": "{name} ကို စာပြန်ခဲ့သည်",
"status.reply": "စာပြန်ရန်",
- "status.replyAll": "Reply to thread",
- "status.report": "Report @{name}",
+ "status.replyAll": "thread သို့ စာပြန်ပါ",
+ "status.report": "@{name} ကို တိုင်ကြားရန်",
"status.sensitive_warning": "သတိထားရသော အကြောင်းအရာ",
"status.share": "မျှဝေ",
"status.show_filter_reason": "မည်သို့ပင်ဖြစ်စေ ပြပါ",
@@ -597,13 +599,13 @@
"status.translate": "ဘာသာပြန်ပါ",
"status.translated_from_with": "{provider} ကို အသုံးပြု၍ {lang} မှ ဘာသာပြန်ထားသည်",
"status.uncached_media_warning": "မရနိုင်ပါ",
- "status.unmute_conversation": "Unmute conversation",
- "status.unpin": "Unpin from profile",
- "subscribed_languages.lead": "Only posts in selected languages will appear on your home and list timelines after the change. Select none to receive posts in all languages.",
+ "status.unmute_conversation": "စကားဝိုင်းကို ပိတ်ထားရန်",
+ "status.unpin": "ပရိုဖိုင်မှ ပင်ဖြုတ်ပါ။",
+ "subscribed_languages.lead": "ပြောင်းလဲပြီးနောက် ရွေးချယ်ထားသော ဘာသာစကားများ၏ ပို့စ်များကိုသာ သင့် ပင်မစာမျက်နှာနှင့် စာရင်းစာမျက်နှာတွင်သာ ပေါ်လာမည်ဖြစ်ပါသည်။ ဘာသာစကားအားလုံး၏ ပို့စ်များအား ကြည့်ရှုလိုပါက အပြောင်းအလဲမပြုလုပ်ပါနှင့်။",
"subscribed_languages.save": "ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ",
"subscribed_languages.target": "{target} အတွက် စာရင်းသွင်းထားသော ဘာသာစကားများကို ပြောင်းပါ",
- "suggestions.dismiss": "Dismiss suggestion",
- "suggestions.header": "You might be interested in…",
+ "suggestions.dismiss": "အကြံပြုချက်ကို ဖယ်လိုက်ပါ",
+ "suggestions.header": "စိတ်ဝင်စားနိုင်သည်...",
"tabs_bar.federated_timeline": "ဖက်ဒီ",
"tabs_bar.home": "ပင်မစာမျက်နှာ",
"tabs_bar.local_timeline": "ပြည်တွင်း",
@@ -611,7 +613,7 @@
"time_remaining.days": "{number, plural, one {# day} other {# days}} left",
"time_remaining.hours": "{number, plural, one {# hour} other {# hours}} left",
"time_remaining.minutes": "{number, plural, one {# minute} other {# minutes}} left",
- "time_remaining.moments": "Moments remaining",
+ "time_remaining.moments": "အခိုက်အတန့်များ ကျန်ရှိနေသေးသည်",
"time_remaining.seconds": "{number, plural, one {# second} other {# seconds}} left",
"timeline_hint.remote_resource_not_displayed": "အခြားဆာဗာများမှ {resource} ကို ပြသမည်မဟုတ်ပါ။",
"timeline_hint.resources.followers": "စောင့်ကြည့်သူများ",
@@ -619,11 +621,11 @@
"timeline_hint.resources.statuses": "ပို့စ်အဟောင်းများ",
"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": "လက်ရှိခေတ်စားနေသော ပို့စ်များ",
- "ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
+ "ui.beforeunload": "Mastodon မှ ထွက်ခွာပါက သင့်မူကြမ်း ဆုံးရှုံးသွားပါမည်။",
"units.short.billion": "{count}B",
"units.short.million": "{count}M",
"units.short.thousand": "{count}K",
- "upload_area.title": "Drag & drop to upload",
+ "upload_area.title": "ပို့စ်တင်ရန် ဆွဲချလိုက်ပါ",
"upload_button.label": "ပုံများ၊ ဗီဒီယို သို့မဟုတ် အသံဖိုင်တစ်ခု ထည့်ပါ",
"upload_error.limit": "ဖိုင်အများဆုံးတင်နိုင်မည့်ကန့်သတ်ချက်ကို ကျော်သွားပါပြီ။",
"upload_error.poll": "စစ်တမ်းနှင့်အတူဖိုင်များတင်ခွင့်မပြုပါ",
@@ -631,19 +633,19 @@
"upload_form.description": "အမြင်အာရုံချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
"upload_form.description_missing": "ဖော်ပြချက် မထည့်ပါ",
"upload_form.edit": "ပြင်ရန်",
- "upload_form.thumbnail": "Change thumbnail",
+ "upload_form.thumbnail": "ပုံသေးကို ပြောင်းပါ",
"upload_form.undo": "ဖျက်ရန်",
"upload_form.video_description": "အမြင်အာရုံနှင့်အကြားအာရုံ ချို့ယွင်းသော ခက်ခဲသောသူများအတွက် ဖော်ပြထားသည်",
- "upload_modal.analyzing_picture": "Analyzing picture…",
- "upload_modal.apply": "Apply",
- "upload_modal.applying": "Applying…",
+ "upload_modal.analyzing_picture": "ပုံအား ပိုင်းခြားစိတ်ဖြာနေသည်...",
+ "upload_modal.apply": "သုံးပါ",
+ "upload_modal.applying": "အသုံးချနေသည်...",
"upload_modal.choose_image": "ပုံရွေးပါ",
"upload_modal.description_placeholder": "သီဟိုဠ်မှ ဉာဏ်ကြီးရှင်သည် အာယုဝဍ္ဎနဆေးညွှန်းစာကို ဇလွန်ဈေးဘေး ဗာဒံပင်ထက် အဓိဋ္ဌာန်လျက် ဂဃနဏဖတ်ခဲ့သည်",
- "upload_modal.detect_text": "Detect text from picture",
+ "upload_modal.detect_text": "ပုံမှစာသားကို ရှာဖွေပါ",
"upload_modal.edit_media": "မီဒီယာကို ပြင်ဆင်ရန်",
"upload_modal.hint": "Click or drag the circle on the preview to choose the focal point which will always be in view on all thumbnails.",
"upload_modal.preparing_ocr": "OCR ပြင်ဆင်နေသည်…",
- "upload_modal.preview_label": "Preview ({ratio})",
+ "upload_modal.preview_label": "({ratio}) အစမ်းကြည့်ရှုရန်",
"upload_progress.label": "တင်နေသည်...",
"upload_progress.processing": "လုပ်ဆောင်နေသည်…",
"video.close": "ဗီဒီယိုကို ပိတ်ပါ",
diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json
index 91ca4ebf24..c2679ddefe 100644
--- a/app/javascript/mastodon/locales/nl.json
+++ b/app/javascript/mastodon/locales/nl.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Je hebt niet-opgeslagen wijzigingen in de mediabeschrijving of voorvertonning, wil je deze toch weggooien?",
"confirmations.domain_block.confirm": "Blokkeer alles van deze server",
"confirmations.domain_block.message": "Weet je het echt heel erg zeker dat je alles van {domain} wilt blokkeren? In de meeste gevallen is het blokkeren of negeren van een paar specifieke personen voldoende en beter. Je zult geen berichten van deze server op openbare tijdlijnen zien of in jouw meldingen. Jouw volgers van deze server worden verwijderd.",
+ "confirmations.edit.confirm": "Bewerken",
+ "confirmations.edit.message": "Door nu te reageren overschrijf je het bericht dat je op dit moment aan het schrijven bent. Weet je zeker dat je verder wil gaan?",
"confirmations.logout.confirm": "Uitloggen",
"confirmations.logout.message": "Weet je zeker dat je wilt uitloggen?",
"confirmations.mute.confirm": "Negeren",
@@ -559,7 +561,7 @@
"status.edit": "Bewerken",
"status.edited": "Bewerkt op {date}",
"status.edited_x_times": "{count, plural, one {{count} keer} other {{count} keer}} bewerkt",
- "status.embed": "Insluiten",
+ "status.embed": "Embedden",
"status.favourite": "Favoriet",
"status.filter": "Dit bericht filteren",
"status.filtered": "Gefilterd",
diff --git a/app/javascript/mastodon/locales/nn.json b/app/javascript/mastodon/locales/nn.json
index 33026253a1..76b1ebf2a5 100644
--- a/app/javascript/mastodon/locales/nn.json
+++ b/app/javascript/mastodon/locales/nn.json
@@ -47,7 +47,7 @@
"account.mention": "Nemn @{name}",
"account.moved_to": "{name} seier at deira nye konto no er:",
"account.mute": "Målbind @{name}",
- "account.mute_notifications": "Målbind varsel frå @{name}",
+ "account.mute_notifications": "Demp varsel frå @{name}",
"account.muted": "Målbunden",
"account.open_original_page": "Opne originalsida",
"account.posts": "Tut",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Du har ulagra endringar i mediaskildringa eller førehandsvisinga. Vil du forkaste dei likevel?",
"confirmations.domain_block.confirm": "Skjul alt frå domenet",
"confirmations.domain_block.message": "Er du heilt, heilt sikker på at du vil skjula heile {domain}? I dei fleste tilfelle er det godt nok og føretrekt med nokre få målretta blokkeringar eller målbindingar. Du kjem ikkje til å sjå innhald frå domenet i fødererte tidsliner eller i varsla dine. Fylgjarane dine frå domenet vert fjerna.",
+ "confirmations.edit.confirm": "Rediger",
+ "confirmations.edit.message": "Å redigera no vil overskriva den meldinga du er i ferd med å skriva. Er du sikker på at du vil halda fram?",
"confirmations.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logga ut?",
"confirmations.mute.confirm": "Målbind",
@@ -221,7 +223,7 @@
"empty_column.favourites": "Ingen har merkt dette tutet som favoritt enno. Når nokon gjer det, så dukkar det opp her.",
"empty_column.follow_recommendations": "Det ser ikkje ut til at noko forslag kunne genererast til deg. Prøv søkjefunksjonen for å finna folk du kjenner, eller utforsk populære emneknaggar.",
"empty_column.follow_requests": "Du har ingen følgjeførespurnadar ennå. Når du får ein, så vil den dukke opp her.",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "Du fylgjer ingen emneknaggar enno. Når du gjer det, vil dei syna her.",
"empty_column.hashtag": "Det er ingenting i denne emneknaggen enno.",
"empty_column.home": "Heime-tidslina di er tom! Følg fleire folk for å fylle ho med innhald. {suggestions}",
"empty_column.home.suggestions": "Sjå nokre forslag",
@@ -264,7 +266,7 @@
"follow_request.authorize": "Autoriser",
"follow_request.reject": "Avvis",
"follow_requests.unlocked_explanation": "Sjølv om kontoen din ikkje er låst tenkte dei som driv {domain} at du kanskje ville gå gjennom førespurnadar frå desse kontoane manuelt.",
- "followed_tags": "Followed hashtags",
+ "followed_tags": "Fylgde emneknaggar",
"footer.about": "Om",
"footer.directory": "Profilmappe",
"footer.get_app": "Få appen",
@@ -382,7 +384,7 @@
"navigation_bar.favourites": "Favorittar",
"navigation_bar.filters": "Målbundne ord",
"navigation_bar.follow_requests": "Fylgjeførespurnader",
- "navigation_bar.followed_tags": "Fulgte emneknagger",
+ "navigation_bar.followed_tags": "Fylgde emneknaggar",
"navigation_bar.follows_and_followers": "Fylgje og fylgjarar",
"navigation_bar.lists": "Lister",
"navigation_bar.logout": "Logg ut",
@@ -544,7 +546,7 @@
"server_banner.server_stats": "Tenarstatistikk:",
"sign_in_banner.create_account": "Opprett konto",
"sign_in_banner.sign_in": "Logg inn",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
+ "sign_in_banner.text": "Logg inn for å fylgja profilar eller emneknaggar, og for å lika, dela og svara på innlegg. Du kan òg samhandla med aktivitet på denne tenaren frå kontoar på andre tenarar.",
"status.admin_account": "Opne moderasjonsgrensesnitt for @{name}",
"status.admin_domain": "Opna moderatorgrensesnittet for {domain}",
"status.admin_status": "Opne denne statusen i moderasjonsgrensesnittet",
diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json
index 0cc3f121b4..372902e8b3 100644
--- a/app/javascript/mastodon/locales/no.json
+++ b/app/javascript/mastodon/locales/no.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Du har ulagrede endringer i mediebeskrivelsen eller i forhåndsvisning, forkast dem likevel?",
"confirmations.domain_block.confirm": "Skjul alt fra domenet",
"confirmations.domain_block.message": "Er du sikker på at du vil skjule hele domenet {domain}? I de fleste tilfeller er det bedre med målrettet blokkering eller demping.",
+ "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.logout.confirm": "Logg ut",
"confirmations.logout.message": "Er du sikker på at du vil logge ut?",
"confirmations.mute.confirm": "Demp",
diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json
index 4bce24d073..cde922c051 100644
--- a/app/javascript/mastodon/locales/oc.json
+++ b/app/javascript/mastodon/locales/oc.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Amagar tot lo domeni",
"confirmations.domain_block.message": "Volètz vertadièrament blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.\nVeiretz pas cap de contengut d’aquel domeni dins cap de flux public o dins vòstras notificacions. Vòstres seguidors d’aquel domeni seràn levats.",
+ "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.logout.confirm": "Desconnexion",
"confirmations.logout.message": "Volètz vertadièrament vos desconnectar ?",
"confirmations.mute.confirm": "Rescondre",
diff --git a/app/javascript/mastodon/locales/pa.json b/app/javascript/mastodon/locales/pa.json
index e22ab1f22f..b81bb13564 100644
--- a/app/javascript/mastodon/locales/pa.json
+++ b/app/javascript/mastodon/locales/pa.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json
index 2ad1e0961d..3e979dbb2e 100644
--- a/app/javascript/mastodon/locales/pl.json
+++ b/app/javascript/mastodon/locales/pl.json
@@ -17,7 +17,7 @@
"account.badges.group": "Grupa",
"account.block": "Blokuj @{name}",
"account.block_domain": "Blokuj wszystko z {domain}",
- "account.blocked": "Zablokowany(-a)",
+ "account.blocked": "Zablokowano",
"account.browse_more_on_origin_server": "Zobacz więcej na oryginalnym profilu",
"account.cancel_follow_request": "Wycofaj żądanie obserwowania",
"account.direct": "Wyślij wiadomość bezpośrednią do @{name}",
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Masz niezapisane zmiany w opisie lub podglądzie, odrzucić je mimo to?",
"confirmations.domain_block.confirm": "Ukryj wszystko z domeny",
"confirmations.domain_block.message": "Czy na pewno chcesz zablokować całą domenę {domain}? Zwykle lepszym rozwiązaniem jest blokada lub wyciszenie kilku użytkowników.",
+ "confirmations.edit.confirm": "Edytuj",
+ "confirmations.edit.message": "Edytowanie wpisu nadpisze wiadomość, którą obecnie piszesz. Czy na pewno chcesz to zrobić?",
"confirmations.logout.confirm": "Wyloguj",
"confirmations.logout.message": "Czy na pewno chcesz się wylogować?",
"confirmations.mute.confirm": "Wycisz",
@@ -402,7 +404,7 @@
"notification.mention": "Wspomniało o Tobie przez {name}",
"notification.own_poll": "Twoje głosowanie zakończyło się",
"notification.poll": "Głosowanie w którym brałeś(-aś) udział zakończyło się",
- "notification.reblog": "Podbito Twój post przez {name}",
+ "notification.reblog": "Twój post został podbity przez {name}",
"notification.status": "Właśnie umieszczono wpis przez {name}",
"notification.update": "{name} edytował post",
"notifications.clear": "Wyczyść powiadomienia",
diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json
index f2e4a365e3..2497874380 100644
--- a/app/javascript/mastodon/locales/pt-BR.json
+++ b/app/javascript/mastodon/locales/pt-BR.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Há mudanças não salvas na descrição ou pré-visualização da mídia. Descartar assim mesmo?",
"confirmations.domain_block.confirm": "Bloquear instância",
"confirmations.domain_block.message": "Você tem certeza de que deseja bloquear tudo de {domain}? Você não verá mais o conteúdo desta instância em nenhuma linha do tempo pública ou nas suas notificações. Seus seguidores desta instância serão removidos.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Editar agora irá substituir a mensagem que está sendo criando. Tem certeza de que deseja continuar?",
"confirmations.logout.confirm": "Sair",
"confirmations.logout.message": "Você tem certeza de que deseja sair?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/pt-PT.json b/app/javascript/mastodon/locales/pt-PT.json
index ae0a2df318..d72c5c7002 100644
--- a/app/javascript/mastodon/locales/pt-PT.json
+++ b/app/javascript/mastodon/locales/pt-PT.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Tem alterações por guardar na descrição ou pré-visualização do conteúdo. Descartar mesmo assim?",
"confirmations.domain_block.confirm": "Esconder tudo deste domínio",
"confirmations.domain_block.message": "De certeza que queres bloquear completamente o domínio {domain}? Na maioria dos casos, silenciar ou bloquear alguns utilizadores é suficiente e é o recomendado. Não irás ver conteúdo daquele domínio em cronologia alguma nem nas tuas notificações. Os teus seguidores daquele domínio serão removidos.",
+ "confirmations.edit.confirm": "Editar",
+ "confirmations.edit.message": "Editar agora irá sobrescrever a mensagem que está a compor. Tem a certeza de que deseja continuar?",
"confirmations.logout.confirm": "Terminar sessão",
"confirmations.logout.message": "Tem a certeza de que quer terminar a sessão?",
"confirmations.mute.confirm": "Silenciar",
diff --git a/app/javascript/mastodon/locales/ro.json b/app/javascript/mastodon/locales/ro.json
index 787727d56d..c50a6a12ba 100644
--- a/app/javascript/mastodon/locales/ro.json
+++ b/app/javascript/mastodon/locales/ro.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Ai modificări nesalvate în descrierea sau previzualizarea media, renunți oricum?",
"confirmations.domain_block.confirm": "Blochează întregul domeniu",
"confirmations.domain_block.message": "Ești absolut sigur că vrei să blochezi tot domeniul {domain}? În cele mai multe cazuri, raportarea sau blocarea anumitor lucruri este suficientă și de preferat. Nu vei mai vedea niciun conținut din acest domeniu în vreun flux public sau în vreo notificare. Abonații tăi din acest domeniu vor fi eliminați.",
+ "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.logout.confirm": "Deconectare",
"confirmations.logout.message": "Ești sigur că vrei să te deconectezi?",
"confirmations.mute.confirm": "Ignoră",
diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json
index 32845ab64f..93a39c3802 100644
--- a/app/javascript/mastodon/locales/ru.json
+++ b/app/javascript/mastodon/locales/ru.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "У вас есть несохранённые изменения описания мультимедиа или предпросмотра, отменить их?",
"confirmations.domain_block.confirm": "Да, заблокировать узел",
"confirmations.domain_block.message": "Вы точно уверены, что хотите заблокировать {domain} полностью? В большинстве случаев нескольких блокировок и игнорирований вполне достаточно. Вы перестанете видеть публичную ленту и уведомления оттуда. Ваши подписчики из этого домена будут удалены.",
+ "confirmations.edit.confirm": "Редактировать",
+ "confirmations.edit.message": "Editing now will overwrite the message you are currently composing. Are you sure you want to proceed?",
"confirmations.logout.confirm": "Выйти",
"confirmations.logout.message": "Вы уверены, что хотите выйти?",
"confirmations.mute.confirm": "Игнорировать",
diff --git a/app/javascript/mastodon/locales/sa.json b/app/javascript/mastodon/locales/sa.json
index e9deab43dc..13e5cbb571 100644
--- a/app/javascript/mastodon/locales/sa.json
+++ b/app/javascript/mastodon/locales/sa.json
@@ -27,7 +27,7 @@
"account.enable_notifications": "यदा @{name} स्थापयति तदा मां ज्ञापय",
"account.endorse": "व्यक्तिगतविवरणे वैशिष्ट्यम्",
"account.featured_tags.last_status_at": "{date} दिने गतस्थापनम्",
- "account.featured_tags.last_status_never": "न स्थापनम्",
+ "account.featured_tags.last_status_never": "न पत्रम्",
"account.featured_tags.title": "{name} इत्यस्य विशेषहैस्टैगः",
"account.follow": "अनुस्रियताम्",
"account.followers": "अनुसर्तारः",
@@ -50,14 +50,14 @@
"account.mute_notifications": "@{name} सूचनाः निष्क्रियन्ताम्",
"account.muted": "निःशब्दम्",
"account.open_original_page": "मूलपृष्ठमुट्घाटय",
- "account.posts": "दौत्यानि",
- "account.posts_with_replies": "दौत्यानि प्रत्युत्तराणि च",
+ "account.posts": "पत्राणि",
+ "account.posts_with_replies": "पत्राणि प्रत्युत्तराणि च",
"account.report": "आविद्यताम् @{name}",
"account.requested": "स्वीकृतिः प्रतीक्ष्यते । नश्यतामित्यस्मिन्नुद्यतां निराकर्तुम् ।",
- "account.requested_follow": "{name} has requested to follow you",
+ "account.requested_follow": "{name} त्वामनुसर्तुमयाचीत्",
"account.share": "@{name} मित्रस्य विवरणं विभाज्यताम्",
"account.show_reblogs": "@{name} मित्रस्य प्रकाशनानि दृश्यन्ताम्",
- "account.statuses_counter": "{count, plural, one {{counter} दौत्यम्} two {{counter} दौत्ये} other {{counter} दौत्यानि}}",
+ "account.statuses_counter": "{count, plural, one {{counter} पत्रम्} two{{counter} पत्रे} other {{counter} पत्राणि}}",
"account.unblock": "निषेधता नश्यताम् @{name}",
"account.unblock_domain": "प्रदेशनिषेधता नश्यताम् {domain}",
"account.unblock_short": "अनवरुन्धि",
@@ -93,16 +93,16 @@
"bundle_modal_error.close": "पिधीयताम्",
"bundle_modal_error.message": "आरोपणे कश्चन दोषो जातः",
"bundle_modal_error.retry": "पुनः यतताम्",
- "closed_registrations.other_server_instructions": "Since Mastodon is decentralized, you can create an account on another server and still interact with this one.",
- "closed_registrations_modal.description": "Creating an account on {domain} is currently not possible, but please keep in mind that you do not need an account specifically on {domain} to use Mastodon.",
- "closed_registrations_modal.find_another_server": "Find another server",
- "closed_registrations_modal.preamble": "Mastodon is decentralized, so no matter where you create your account, you will be able to follow and interact with anyone on this server. You can even self-host it!",
- "closed_registrations_modal.title": "Signing up on Mastodon",
- "column.about": "About",
+ "closed_registrations.other_server_instructions": "यतोहि मस्टोडोनक्रेन्द्रीयकृतमस्ति, अन्यास्मिन्सर्वरि एकौण्टं स्रष्टुं शक्नोषि एवञ्च एतेन संयोक्तुं शक्नोषि।",
+ "closed_registrations_modal.description": "{domain} मध्ये एकौण्टं करणमधुना न सम्भवति, किन्तु कृपया अवधीयतां यन्मास्टोडोनमुपयोक्तुं {domain} मध्ये एकौण्टं करणं नावश्यकम्।",
+ "closed_registrations_modal.find_another_server": "अन्य सर्वरमन्विच्छ",
+ "closed_registrations_modal.preamble": "मास्टोडोनस्ति अक्रेन्द्रीयकृतमतः कुहापि एकौण्टं स्रष्टुमर्हसि, अस्मिन्सर्वरि सदस्यैश्च संयोक्तुं शक्नोषि। स्वस्य सर्वरं स्रष्टुमपि शक्नोषि।",
+ "closed_registrations_modal.title": "मास्टोडोनि पञ्जीकरणम्",
+ "column.about": "विषये",
"column.blocks": "निषिद्धभोक्तारः",
"column.bookmarks": "पुटचिह्नानि",
"column.community": "स्थानीयसमयतालिका",
- "column.direct": "Direct messages",
+ "column.direct": "प्रत्यक्षसन्देशाः",
"column.directory": "व्यक्तित्वानि दृश्यन्ताम्",
"column.domain_blocks": "निषिद्धप्रदेशाः",
"column.favourites": "प्रियाः",
@@ -111,7 +111,7 @@
"column.lists": "सूचयः",
"column.mutes": "निःशब्दाः भोक्तारः",
"column.notifications": "सूचनाः",
- "column.pins": "कीलितदौत्यानि",
+ "column.pins": "कीलितपत्राणि",
"column.public": "सङ्घीयसमयतालिका",
"column_back_button.label": "पूर्वम्",
"column_header.hide_settings": "विन्यासाः छाद्यन्ताम्",
@@ -124,12 +124,12 @@
"community.column_settings.local_only": "केवलं स्थानीयम्",
"community.column_settings.media_only": "सामग्री केवलम्",
"community.column_settings.remote_only": "दर्गमः केवलम्",
- "compose.language.change": "Change language",
- "compose.language.search": "Search languages...",
+ "compose.language.change": "भाषां परिवर्तय",
+ "compose.language.search": "भाषाः अन्विच्छ",
"compose_form.direct_message_warning_learn_more": "अधिकं ज्ञायताम्",
- "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": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि दौत्यानि द्रष्टुं शक्नोति ।",
+ "compose_form.encryption_warning": "मस्टोडोनि पत्राणि न अन्ततोऽन्तं सङ्कूटितानि। मास्टोडिनि संवेदनशीलसूचनां मा प्रेषय।",
+ "compose_form.hashtag_warning": "पत्रमिदमसार्वजनिकान्न कस्मिन्नपि प्रचलितवस्तुषु सूचितमिदं प्रेषणम्। केवलं सार्वजनिकप्रेषराणि प्रचलितवस्तुचिह्नेन अन्वेषयितुं शक्यते।",
+ "compose_form.lock_disclaimer": "तव लेखा न प्रवेष्टुमशक्या {locked} । कोऽप्यनुसर्ता ते केवलमनुसर्तृृणां कृते स्थितानि पत्राणि द्रष्टुं शक्नोति ।",
"compose_form.lock_disclaimer.lock": "अवरुद्धः",
"compose_form.placeholder": "मनसि ते किमस्ति?",
"compose_form.poll.add_option": "मतमपरं युज्यताम्",
@@ -138,10 +138,10 @@
"compose_form.poll.remove_option": "मतमेतन्नश्यताम्",
"compose_form.poll.switch_to_multiple": "मतदानं परिवर्तयित्वा बहुवैकल्पिकमतदानं क्रियताम्",
"compose_form.poll.switch_to_single": "मतदानं परिवर्तयित्वा निर्विकल्पमतदानं क्रियताम्",
- "compose_form.publish": "Publish",
- "compose_form.publish_form": "Publish",
+ "compose_form.publish": "प्रकाशीकुरु",
+ "compose_form.publish_form": "प्रकाशीकुरु",
"compose_form.publish_loud": "{publish}!",
- "compose_form.save_changes": "Save changes",
+ "compose_form.save_changes": "परिवर्तनानि रक्ष",
"compose_form.sensitive.hide": "संवेदनशीलसामग्रीत्यङ्यताम्",
"compose_form.sensitive.marked": "संवेदनशीलसामग्रीत्यङ्कितम्",
"compose_form.sensitive.unmarked": "संवेदनशीलसामग्रीति नाङ्कितम्",
@@ -152,49 +152,51 @@
"confirmations.block.block_and_report": "अवरुध्य आविद्यताम्",
"confirmations.block.confirm": "निषेधः",
"confirmations.block.message": "निश्चयेनाऽवरोधो विधेयः {name}?",
- "confirmations.cancel_follow_request.confirm": "Withdraw request",
- "confirmations.cancel_follow_request.message": "Are you sure you want to withdraw your request to follow {name}?",
- "confirmations.delete.confirm": "नश्यताम्",
- "confirmations.delete.message": "निश्चयेन दौत्यमिदं नश्यताम्?",
- "confirmations.delete_list.confirm": "नश्यताम्",
- "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च नश्यताम् वा?",
- "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.cancel_follow_request.confirm": "अनुरोधनमपनय",
+ "confirmations.cancel_follow_request.message": "{name} अनुसरणस्यानुरोधमपनेतुं दृढीकृतं वा?",
+ "confirmations.delete.confirm": "मार्जय",
+ "confirmations.delete.message": "निश्चयेन पत्रमिदं मार्जितुमिच्छसि?",
+ "confirmations.delete_list.confirm": "मार्जय",
+ "confirmations.delete_list.message": "सूचिरियं निश्चयेन स्थायित्वेन च मार्जितुमिच्छसि वा?",
+ "confirmations.discard_edit_media.confirm": "अपास्य",
+ "confirmations.discard_edit_media.message": "माध्यमवर्णनां प्रदर्शनञ्च अरक्षितानि परिवर्तनानि सन्ति, तानि अपासितुमिच्छसि वा?",
"confirmations.domain_block.confirm": "निषिद्धः प्रदेशः क्रियताम्",
"confirmations.domain_block.message": "नूनं निश्चयेनैव विनष्टुमिच्छति पूर्णप्रदेशमेव {domain} ? अधिकांशसन्दर्भेऽस्थायित्वेन निषेधता निःशब्दत्वञ्च पर्याप्तं चयनीयञ्च । न तस्मात् प्रदेशात्सर्वे विषया द्रष्टुमशक्याः किस्यांश्चिदपि सर्वजनिकसमयतालिकायां वा स्वीयसूचनापटले । सर्वेऽनुसर्तारस्ते प्रदेशात् ये सन्ति ते नश्यन्ते ।",
+ "confirmations.edit.confirm": "सम्पादय",
+ "confirmations.edit.message": "सम्पादनमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते। निश्चयेनैवं कर्तव्यम्?",
"confirmations.logout.confirm": "बहिर्गम्यताम्",
"confirmations.logout.message": "निश्चयेनैव बहिर्गमनं वाञ्छितम्?",
"confirmations.mute.confirm": "निःशब्दम्",
- "confirmations.mute.explanation": "एतेन तेषां प्रकटनानि तथा च यत्र ते उल्लिखिताः तानि छाद्यन्ते, किन्त्वेवं सत्यपि ते त्वामनुसर्तुं ततश्च प्रकटनानि द्रष्टुं शक्नुवन्ति ।",
+ "confirmations.mute.explanation": "एतेन तेषां पत्राणि तथा च यत्र ते उल्लिखिताः तानि छाद्यन्ते, किन्त्वेवं सत्यपि ते त्वामनुसर्तुं ततश्च पत्राणि द्रष्टुं शक्नुवन्ति ।",
"confirmations.mute.message": "किं निश्चयेन निःशब्दं भवेत् {name} मित्रमेतत् ?",
- "confirmations.redraft.confirm": "विनश्य पुनः लिख्यताम्",
- "confirmations.redraft.message": "किं वा निश्चयेन नष्टुमिच्छसि दौत्यमेतत्तथा च पुनः लेखितुं? प्रकाशनानि प्रीतयश्च विनष्टा भविष्यन्ति, प्रत्युत्तराण्यपि नश्यन्ते ।",
+ "confirmations.redraft.confirm": "मार्जय पुनश्च लिख्यताम्",
+ "confirmations.redraft.message": "किं वा निश्चयेन नष्टुमिच्छसि पत्रमेतत्तथा च पुनः लेखितुं? प्रकाशनानि प्रीतयश्च विनष्टा भविष्यन्ति, प्रत्युत्तराण्यपि नश्यन्ते ।",
"confirmations.reply.confirm": "उत्तरम्",
"confirmations.reply.message": "प्रत्युत्तरमिदानीं लिख्यते तर्हि पूर्वलिखितसन्देशं विनश्य पुनः लिख्यते । निश्चयेनैवं कर्तव्यम् ?",
"confirmations.unfollow.confirm": "अनुसरणं नश्यताम्",
"confirmations.unfollow.message": "निश्चयेनैवाऽनुसरणं नश्यतां {name} मित्रस्य?",
- "conversation.delete": "वार्तालापो नश्यताम्",
+ "conversation.delete": "वार्तालापं मार्जय",
"conversation.mark_as_read": "पठितमित्यङ्क्यताम्",
"conversation.open": "वार्तालापो दृश्यताम्",
"conversation.with": "{names} जनैः साकम्",
- "copypaste.copied": "Copied",
- "copypaste.copy": "Copy",
+ "copypaste.copied": "प्रतिलिपिंकृतम्",
+ "copypaste.copy": "प्रतिलिपिः",
"directory.federated": "सुपरिचितं Fediverse इति स्थानात्",
"directory.local": "{domain} प्रदेशात्केवलम्",
"directory.new_arrivals": "नवामगमाः",
"directory.recently_active": "नातिपूर्वं सक्रियः",
- "disabled_account_banner.account_settings": "Account settings",
- "disabled_account_banner.text": "Your account {disabledAccount} is currently disabled.",
- "dismissable_banner.community_timeline": "These are the most recent public posts from people whose accounts are hosted by {domain}.",
- "dismissable_banner.dismiss": "Dismiss",
- "dismissable_banner.explore_links": "These news stories are being talked about by people on this and other servers of the decentralized network right now.",
- "dismissable_banner.explore_statuses": "These posts from this and other servers in the decentralized network are gaining traction on this server right now.",
- "dismissable_banner.explore_tags": "These hashtags are gaining traction among people on this and other servers of the decentralized network right now.",
- "dismissable_banner.public_timeline": "These are the most recent public posts from people on this and other servers of the decentralized network that this server knows about.",
- "embed.instructions": "दौत्यमेतत् स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्",
+ "disabled_account_banner.account_settings": "एकौण्टः सेटिङ्ग्स्",
+ "disabled_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतमस्ति।",
+ "dismissable_banner.community_timeline": "तानि तेषां जनानां नूतनतमानि सार्वजनिकानि पत्राणि सन्ति येषामेकौण्टः {domain} द्वारा होस्त् भवन्ति।",
+ "dismissable_banner.dismiss": "अपास्य",
+ "dismissable_banner.explore_links": "एतासां वार्तानां विषये अधुना अकेन्द्रीकृतजालस्य अस्मिनन्येषु च सर्वर्षु जनैश्चर्चा क्रियते।",
+ "dismissable_banner.explore_statuses": "अकेन्द्रीकृतजालस्य अस्मदन्येभ्यश्च सर्वर्भ्यः एतानि पत्राणि इदानीमस्मिन्सर्वरि कर्षणं प्राप्नुवन्ति।",
+ "dismissable_banner.explore_tags": "अकेन्द्रीकृतजालस्य अस्मदन्येभ्यश्च सर्वर्भ्यः एतानि प्रचलितवस्तूनि इदानीमस्मिन्सर्वरि कर्षणं प्राप्नुवन्ति।",
+ "dismissable_banner.public_timeline": "एतानि अकेन्द्रीकृतजालस्य अस्मिनन्येषु च सर्वर्षु जनेभ्योऽद्यतनतमानि सार्वजनिकपत्राणि सन्ति येषां विषये सर्वरयं वेत्ति।",
+ "embed.instructions": "पत्रमेतत्स्वीयजालस्थाने स्थापयितुमधो लिखितो विध्यादेशो युज्यताम्",
"embed.preview": "अत्रैवं दृश्यते तत्:",
"emoji_button.activity": "आचरणम्",
- "emoji_button.clear": "Clear",
+ "emoji_button.clear": "मार्जय",
"emoji_button.custom": "स्वीयानुकूलम्",
"emoji_button.flags": "ध्वजाः",
"emoji_button.food": "भोजनं पेयञ्च",
@@ -208,119 +210,119 @@
"emoji_button.search_results": "अन्वेषणपरिणामाः",
"emoji_button.symbols": "चिह्नानि",
"emoji_button.travel": "यात्रा च स्थानानि",
- "empty_column.account_suspended": "Account suspended",
- "empty_column.account_timeline": "न दौत्यान्यत्र",
+ "empty_column.account_suspended": "एकौण्ट् निलम्बितः",
+ "empty_column.account_timeline": "न पत्रमिह!",
"empty_column.account_unavailable": "व्यक्तित्वं न प्राप्यते",
"empty_column.blocks": "नैकोऽप्युपभोक्ता निषिद्धो वर्तते",
- "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तदौत्यानि सन्ति । यदा भविष्यति तदत्र दृश्यते ।",
+ "empty_column.bookmarked_statuses": "नैकमपि पुटचिह्नयुक्तपत्राणि सन्ति । यदा भविष्यति तदत्र दृश्यते ।",
"empty_column.community": "स्थानीयसमयतालिका रिक्ता । सार्वजनिकत्वेनाऽत्र किमपि लिख्यताम् ।",
- "empty_column.direct": "You don't have any direct messages yet. When you send or receive one, it will show up here.",
+ "empty_column.direct": "नैकोऽपि प्रत्यक्षसन्देशो वर्तते। यदा प्रेष्यते वा प्राप्यतेऽत्र दृश्यते।",
"empty_column.domain_blocks": "न निषिद्धप्रदेशाः सन्ति ।",
- "empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
- "empty_column.favourited_statuses": "न प्रियदौत्यानि सन्ति । यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते ।",
- "empty_column.favourites": "नैतद्दौत्यं प्रियमस्ति कस्मै अपि । यदा कस्मै प्रियं भवति तदाऽत्र दृश्यते ।",
- "empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
+ "empty_column.explore_statuses": "अधुना किमपि न प्रचलति। परे पुनः पश्य!",
+ "empty_column.favourited_statuses": "न तव अधुना पर्यन्तं प्रियपत्राणि सन्ति। यदा प्रीतिरित्यङ्क्यतेऽत्र दृश्यते।",
+ "empty_column.favourites": "नैतत्पत्रं प्रियमस्ति कस्मै अपि। यदा कस्मै प्रियं भवति तदाऽत्र दृश्यते।",
+ "empty_column.follow_recommendations": "तुभ्यं कोऽपि प्रबोधो न जनयितुं न शक्यतेऽति प्रतीयते। अन्वेष्यप्रणालिं प्रयोक्तुं जनानवलोकयितुं शक्नोषि उत प्रचलितवस्तूनि अन्वेषितुं शक्नोषि।",
"empty_column.follow_requests": "नाऽनुसरणानुरोधस्ते वर्तते । यदैको प्राप्यतेऽत्र दृश्यते ।",
- "empty_column.followed_tags": "You have not followed any hashtags yet. When you do, they will show up here.",
+ "empty_column.followed_tags": "कान्यपि प्रचलितवस्तूनीदानीमपि नान्वसार्षीः। यदा अनुसरसि तदा तानि इह दृश्यन्ते।",
"empty_column.hashtag": "नाऽस्मिन् प्रचलितवस्तुचिह्ने किमपि ।",
"empty_column.home": "गृहसमयतालिका रिक्ताऽस्ति । गम्यतां {public} वाऽन्वेषणैः प्रारभ्यतां मेलनं क्रियताञ्च ।",
- "empty_column.home.suggestions": "See some suggestions",
- "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवदौत्यानि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।",
- "empty_column.lists": "You don't have any lists yet. When you create one, it will show up here.",
- "empty_column.mutes": "You haven't muted any users yet.",
- "empty_column.notifications": "You don't have any notifications yet. When other people interact with you, you will see it here.",
- "empty_column.public": "There is nothing here! Write something publicly, or manually follow users from other servers to fill it up",
- "error.unexpected_crash.explanation": "Due to a bug in our code or a browser compatibility issue, this page could not be displayed correctly.",
- "error.unexpected_crash.explanation_addons": "This page could not be displayed correctly. This error is likely caused by a browser add-on or automatic translation tools.",
- "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
- "errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
- "explore.search_results": "Search results",
- "explore.suggested_follows": "For you",
- "explore.title": "Explore",
- "explore.trending_links": "News",
- "explore.trending_statuses": "Posts",
- "explore.trending_tags": "Hashtags",
- "filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
- "filter_modal.added.context_mismatch_title": "Context mismatch!",
- "filter_modal.added.expired_explanation": "This filter category has expired, you will need to change the expiration date for it to apply.",
- "filter_modal.added.expired_title": "Expired filter!",
- "filter_modal.added.review_and_configure": "To review and further configure this filter category, go to the {settings_link}.",
- "filter_modal.added.review_and_configure_title": "Filter settings",
- "filter_modal.added.settings_link": "settings page",
- "filter_modal.added.short_explanation": "This post has been added to the following filter category: {title}.",
- "filter_modal.added.title": "Filter added!",
- "filter_modal.select_filter.context_mismatch": "does not apply to this context",
- "filter_modal.select_filter.expired": "expired",
- "filter_modal.select_filter.prompt_new": "New category: {name}",
- "filter_modal.select_filter.search": "Search or create",
- "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",
- "follow_recommendations.done": "Done",
- "follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
- "follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
- "follow_request.authorize": "Authorize",
- "follow_request.reject": "Reject",
- "follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
- "followed_tags": "Followed hashtags",
- "footer.about": "About",
- "footer.directory": "Profiles directory",
- "footer.get_app": "Get the app",
- "footer.invite": "Invite people",
- "footer.keyboard_shortcuts": "Keyboard shortcuts",
- "footer.privacy_policy": "Privacy policy",
- "footer.source_code": "View source code",
- "footer.status": "Status",
- "generic.saved": "Saved",
- "getting_started.heading": "Getting started",
- "hashtag.column_header.tag_mode.all": "and {additional}",
- "hashtag.column_header.tag_mode.any": "or {additional}",
- "hashtag.column_header.tag_mode.none": "without {additional}",
- "hashtag.column_settings.select.no_options_message": "No suggestions found",
- "hashtag.column_settings.select.placeholder": "Enter hashtags…",
- "hashtag.column_settings.tag_mode.all": "All of these",
- "hashtag.column_settings.tag_mode.any": "Any of these",
- "hashtag.column_settings.tag_mode.none": "None of these",
+ "empty_column.home.suggestions": "काञ्चित्प्रबोधान्पश्य",
+ "empty_column.list": "न किमपि वर्तते सूच्यामस्याम् । यदा सूच्याः सदस्या नवपत्राणि प्रकटीकुर्वन्ति तदाऽत्राऽऽयान्ति ।",
+ "empty_column.lists": "तव पार्श्वे न कापि सूचिर्वर्तते। यदैकां सृजसि तदा अत्र दृश्यते।",
+ "empty_column.mutes": "त्वया अद्यापि नैकोऽप्युपभोक्ता मूकीकृतो वर्तते।",
+ "empty_column.notifications": "तव पार्श्वे न अधुना पर्यन्तं किमपि विज्ञापनं वर्तते। यदा अन्या जना त्वया संयोजयन्ति तदा इह पश्यसि।",
+ "empty_column.public": "न इह किमपि वर्तते! किञ्चिल्लिख सार्वजनिकरूपेण, उत स्वयमन्यसर्वर्तः उपभोक्तॄननुसर एतत्पूरयितुम्",
+ "error.unexpected_crash.explanation": "अस्माकं विद्यादेशे दोषादुत ब्रौसर्सङ्गतिसमस्यायाः पृष्ठमिदं सम्यग्रूपेण न दृश्यते।",
+ "error.unexpected_crash.explanation_addons": "पृष्ठमिदं सम्यग्रूपेण न दृश्यते। दोषोऽयं सम्भवतो ब्रौसरेडनुत स्वचलितानुवादोपकरणानां कारणात्।",
+ "error.unexpected_crash.next_steps": "पृष्ठं पुनः रेफ्रेशं कर्तुं यतस्व। यदि तत्परेऽपि कार्यं नाकार्षीत्तर्ह्यप्यन्यब्रौसरा उत नेटिवेपा मास्टोडोनुपयोक्तुं शक्नोषि।",
+ "error.unexpected_crash.next_steps_addons": "तानि निष्क्रियं कृत्वा पृष्ठं रिफ्रेशं कर्तुं यतस्व। यदि तत्परेऽपि कार्यं नाकार्षीत्तर्ह्यप्यन्यब्रौसरा उत नेटिवेपा मास्टोडोनुपयोक्तुं शक्नोषि।",
+ "errors.unexpected_crash.copy_stacktrace": "स्तेक्त्रेसमनुलिपिं कुरु क्लिप्फलकं",
+ "errors.unexpected_crash.report_issue": "दोषमावेदय",
+ "explore.search_results": "परिणामानविच्छ",
+ "explore.suggested_follows": "तुभ्यम्",
+ "explore.title": "अन्विच्छ",
+ "explore.trending_links": "वार्ताः",
+ "explore.trending_statuses": "पत्राणि",
+ "explore.trending_tags": "प्रचलितवस्तूनि",
+ "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.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.select_filter.context_mismatch": "अस्मिन्सन्दर्भे न प्रवर्तते",
+ "filter_modal.select_filter.expired": "समाप्तम्",
+ "filter_modal.select_filter.prompt_new": "नूतनवर्गः: {name}",
+ "filter_modal.select_filter.search": "अन्विच्छ उत सृज",
+ "filter_modal.select_filter.subtitle": "वर्तमानवर्गं प्रयोजय उत नूतनं सृज",
+ "filter_modal.select_filter.title": "पत्रमिदं फिल्तरं कुरु",
+ "filter_modal.title.status": "पत्रं फिल्तरं कुरु",
+ "follow_recommendations.done": "कृतम्",
+ "follow_recommendations.heading": "जनमनुसर यस्मात्पत्राणि द्रष्टुमिच्छसि! सन्ति इह काश्चित्सूचनाः।",
+ "follow_recommendations.lead": "जनेभ्यः पत्राणि याननुसरसि कालिकक्रमेण दर्शिष्यन्ते तव गृहनिरासे। दोषान्मा बिभीहि, कदापि सरलरूपेण ते जनाननुसरणं वारयितुं शक्नोषि!",
+ "follow_request.authorize": "प्रमाणीकुरु",
+ "follow_request.reject": "प्रत्याख्याहि",
+ "follow_requests.unlocked_explanation": "यद्यपि ते एकौण्ट् तालयन्त्रेण न बन्धितं, {domain} अधिकारिगणोऽचिचिन्तद्यदेतेभ्य एकौण्ट्भ्योऽनुसरणानुरोधानां समीक्षां स्वहस्तेन चिकीर्षसीति।",
+ "followed_tags": "अनुसरितानि प्रचलितवस्तूनि",
+ "footer.about": "विषये",
+ "footer.directory": "मुखपार्श्वविभागः",
+ "footer.get_app": "एप् लभस्व",
+ "footer.invite": "जनं निमन्त्रय",
+ "footer.keyboard_shortcuts": "कीफलकहर्स्वमार्गाः",
+ "footer.privacy_policy": "गोपनीयतानीतिः",
+ "footer.source_code": "स्रोतविद्यादेशं दर्शय",
+ "footer.status": "स्थितिः",
+ "generic.saved": "रक्षितम्",
+ "getting_started.heading": "आरम्भकरणम्",
+ "hashtag.column_header.tag_mode.all": "{additional} च",
+ "hashtag.column_header.tag_mode.any": "वा {additional}",
+ "hashtag.column_header.tag_mode.none": "{additional} विहाय",
+ "hashtag.column_settings.select.no_options_message": "न का अपि सूचनाः प्राप्ताः",
+ "hashtag.column_settings.select.placeholder": "प्रचलितवस्तूनि प्रविश",
+ "hashtag.column_settings.tag_mode.all": "एतानि सर्वाणि",
+ "hashtag.column_settings.tag_mode.any": "किञ्चिदेतेषु",
+ "hashtag.column_settings.tag_mode.none": "न किमप्येतेषु",
"hashtag.column_settings.tag_toggle": "Include additional tags in this column",
- "hashtag.follow": "Follow hashtag",
- "hashtag.unfollow": "Unfollow hashtag",
- "home.column_settings.basic": "Basic",
- "home.column_settings.show_reblogs": "Show boosts",
- "home.column_settings.show_replies": "Show replies",
- "home.hide_announcements": "Hide announcements",
- "home.show_announcements": "Show announcements",
- "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.",
- "interaction_modal.description.reply": "With an account on Mastodon, you can respond to this post.",
- "interaction_modal.on_another_server": "On a different server",
- "interaction_modal.on_this_server": "On this server",
- "interaction_modal.other_server_instructions": "Copy and paste this URL into the search field of your favourite Mastodon app or the web interface of your Mastodon server.",
- "interaction_modal.preamble": "Since Mastodon is decentralized, you can use your existing account hosted by another Mastodon server or compatible platform if you don't have an account on this one.",
- "interaction_modal.title.favourite": "Favourite {name}'s post",
- "interaction_modal.title.follow": "Follow {name}",
- "interaction_modal.title.reblog": "Boost {name}'s post",
- "interaction_modal.title.reply": "Reply to {name}'s post",
- "intervals.full.days": "{number, plural, one {# day} other {# days}}",
- "intervals.full.hours": "{number, plural, one {# hour} other {# hours}}",
- "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}",
+ "hashtag.follow": "प्रचलितवस्तु अनुसर",
+ "hashtag.unfollow": "प्रचलितवस्तु अनुसरणं वारय",
+ "home.column_settings.basic": "मूलभूतम्",
+ "home.column_settings.show_reblogs": "बुस्त् दर्शय",
+ "home.column_settings.show_replies": "उत्तराणि दर्शय",
+ "home.hide_announcements": "विज्ञापनानि प्रच्छादय",
+ "home.show_announcements": "विज्ञापनानि दर्शय",
+ "interaction_modal.description.favourite": "मास्टोडोनि एकौण्टा, पत्रमिदं प्रियं कर्तुं शक्नोषि तस्य लेखकं प्रशंसां करोषीति ज्ञापयितुमिदं पश्चाद्रक्षितुञ्च।",
+ "interaction_modal.description.follow": "मास्टोडोनि एकौण्टा {name} नाम्ना उपभोक्तारमनुसर्तुं शक्नोषि तस्य पत्राणि लब्धुं ते गृहनिरासे।",
+ "interaction_modal.description.reblog": "मास्टोडिनि एकौण्टा पत्रमिदं बुस्तिति कर्तुं शक्नोषि ते स्वानुसारिणो भागं कर्तुम्।",
+ "interaction_modal.description.reply": "मास्टोडोनि एकौण्टा पत्रमिदं प्रतिवादयितुं शक्नोषि।",
+ "interaction_modal.on_another_server": "अन्यस्मिन्सर्वरि",
+ "interaction_modal.on_this_server": "अस्मिन्सर्वरि",
+ "interaction_modal.other_server_instructions": "एतत् URL प्रतिलिपिं कृत्वा स्वस्य प्रियस्य मास्टोडोन ऐपोऽन्वेषणक्षेत्रे उत स्वस्य मास्तोडोन्सर्वरो जालमध्यस्थे चिनु।",
+ "interaction_modal.preamble": "यतो मास्टोडोन्विकेन्द्रीयकृतोऽस्ति, अन्येन मास्टोडोन्सर्वरा उत सुसङ्गतेन आश्रयेण ते वर्तमानौकौण्टं प्रयोक्तुं शक्नोषि यदि अस्मिन्कोऽपि ते एकौण्ट् नास्ति।",
+ "interaction_modal.title.favourite": "प्रियस्य {name} नाम्ना उपभोक्तुः पत्रम्।",
+ "interaction_modal.title.follow": "{name} अनुसर",
+ "interaction_modal.title.reblog": "{name} नाम्ना उपभोक्तुः पत्रं बुस्त्कुरु",
+ "interaction_modal.title.reply": "{name} नाम्ना उपभोक्तुःपत्रं प्रतिवादय",
+ "intervals.full.days": "{number, plural, one {# दिनम्} other {# दिनानि}}",
+ "intervals.full.hours": "{number, plural, one {# होरा} other {# होराः}}",
+ "intervals.full.minutes": "{number, plural, one {# क्षणम्} other {# क्षणानि}}",
"keyboard_shortcuts.back": "to navigate back",
"keyboard_shortcuts.blocked": "to open blocked users list",
- "keyboard_shortcuts.boost": "to boost",
+ "keyboard_shortcuts.boost": "पत्रं बुस्तं कुरु",
"keyboard_shortcuts.column": "to focus a status in one of the columns",
"keyboard_shortcuts.compose": "to focus the compose textarea",
- "keyboard_shortcuts.description": "Description",
- "keyboard_shortcuts.direct": "to open direct messages column",
+ "keyboard_shortcuts.description": "वर्णनम्",
+ "keyboard_shortcuts.direct": "अवक्रसंदेशस्तम्भमुद्धाटयितुम्",
"keyboard_shortcuts.down": "to move down in the list",
- "keyboard_shortcuts.enter": "to open status",
- "keyboard_shortcuts.favourite": "to favourite",
+ "keyboard_shortcuts.enter": "पत्रं उद्घाटय",
+ "keyboard_shortcuts.favourite": "पत्रं प्रियं कुरु",
"keyboard_shortcuts.favourites": "to open favourites list",
"keyboard_shortcuts.federated": "to open federated timeline",
"keyboard_shortcuts.heading": "Keyboard Shortcuts",
"keyboard_shortcuts.home": "to open home timeline",
- "keyboard_shortcuts.hotkey": "Hotkey",
+ "keyboard_shortcuts.hotkey": "होत्की",
"keyboard_shortcuts.legend": "to display this legend",
"keyboard_shortcuts.local": "to open local timeline",
"keyboard_shortcuts.mention": "to mention author",
@@ -328,259 +330,259 @@
"keyboard_shortcuts.my_profile": "to open your profile",
"keyboard_shortcuts.notifications": "to open notifications column",
"keyboard_shortcuts.open_media": "to open media",
- "keyboard_shortcuts.pinned": "to open pinned toots list",
+ "keyboard_shortcuts.pinned": "कीलितपत्राणां सूचिमुद्घाटय",
"keyboard_shortcuts.profile": "to open author's profile",
- "keyboard_shortcuts.reply": "to reply",
+ "keyboard_shortcuts.reply": "पत्राय प्रतिवादय",
"keyboard_shortcuts.requests": "to open follow requests list",
"keyboard_shortcuts.search": "to focus search",
"keyboard_shortcuts.spoilers": "to show/hide CW field",
"keyboard_shortcuts.start": "to open \"get started\" column",
"keyboard_shortcuts.toggle_hidden": "to show/hide text behind CW",
"keyboard_shortcuts.toggle_sensitivity": "to show/hide media",
- "keyboard_shortcuts.toot": "to start a brand new toot",
+ "keyboard_shortcuts.toot": "नूतनपत्रमारभस्व",
"keyboard_shortcuts.unfocus": "to un-focus compose textarea/search",
"keyboard_shortcuts.up": "to move up in the list",
- "lightbox.close": "Close",
- "lightbox.compress": "Compress image view box",
- "lightbox.expand": "Expand image view box",
- "lightbox.next": "Next",
- "lightbox.previous": "Previous",
- "limited_account_hint.action": "Show profile anyway",
- "limited_account_hint.title": "This profile has been hidden by the moderators of {domain}.",
- "lists.account.add": "Add to list",
- "lists.account.remove": "Remove from list",
- "lists.delete": "Delete list",
- "lists.edit": "Edit list",
- "lists.edit.submit": "Change title",
- "lists.new.create": "Add list",
- "lists.new.title_placeholder": "New list title",
- "lists.replies_policy.followed": "Any followed user",
- "lists.replies_policy.list": "Members of the list",
- "lists.replies_policy.none": "No one",
- "lists.replies_policy.title": "Show replies to:",
- "lists.search": "Search among people you follow",
- "lists.subheading": "Your lists",
- "load_pending": "{count, plural, one {# new item} other {# new items}}",
- "loading_indicator.label": "Loading...",
- "media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
- "missing_indicator.label": "Not found",
- "missing_indicator.sublabel": "This resource could not be found",
- "moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
- "mute_modal.duration": "Duration",
- "mute_modal.hide_notifications": "Hide notifications from this user?",
- "mute_modal.indefinite": "Indefinite",
- "navigation_bar.about": "About",
- "navigation_bar.blocks": "Blocked users",
- "navigation_bar.bookmarks": "Bookmarks",
- "navigation_bar.community_timeline": "Local timeline",
- "navigation_bar.compose": "Compose new toot",
- "navigation_bar.direct": "Direct messages",
- "navigation_bar.discover": "Discover",
+ "lightbox.close": "पिधीयताम्",
+ "lightbox.compress": "सङ्कुच चित्रप्रदर्शनपेटकम्",
+ "lightbox.expand": "चित्रप्रदर्शनपेटकं विस्तारय",
+ "lightbox.next": "परः",
+ "lightbox.previous": "पूर्वः",
+ "limited_account_hint.action": "प्रोफैलं दर्शय कथञ्चित्",
+ "limited_account_hint.title": "{domain} इत्यस्य प्रशासकैरयं प्रोफैल्प्रच्छन्नः।",
+ "lists.account.add": "सूचेर्मध्ये योजय",
+ "lists.account.remove": "सूचेर्मार्जय",
+ "lists.delete": "सूचिं मार्जय",
+ "lists.edit": "सूचिं सम्पादय",
+ "lists.edit.submit": "उपाधिं परिवर्तय",
+ "lists.new.create": "सूचिं योजय",
+ "lists.new.title_placeholder": "नूतनसूच्युपाधिः",
+ "lists.replies_policy.followed": "कोऽप्यनुसारितोपभोक्ता",
+ "lists.replies_policy.list": "सूचेस्सदस्याः",
+ "lists.replies_policy.none": "न कोऽपि",
+ "lists.replies_policy.title": "एतमुत्तराणि दर्शय :",
+ "lists.search": "त्वया अनुसारितजनेषु अन्विष्य",
+ "lists.subheading": "तव सूचयः",
+ "load_pending": "{count, plural, one {# नूतनवस्तु} other {# नूतनवस्तूनि}}",
+ "loading_indicator.label": "आरोपयति...",
+ "media_gallery.toggle_visible": "{number, plural, one {चित्रं प्रच्छादय} other {चित्राणि प्रच्छादय}}",
+ "missing_indicator.label": "नोपलब्धम्",
+ "missing_indicator.sublabel": "उपायोऽयं नोपलब्धुं शक्यते",
+ "moved_to_account_banner.text": "तव एकौण्ट् {disabledAccount} अधुना निष्कृतो यतोहि {movedToAccount} अस्मिन्त्वमसार्षीः।",
+ "mute_modal.duration": "परिमाणम्",
+ "mute_modal.hide_notifications": "अस्मादुपभोक्तुर्विज्ञापनानि प्रच्छादयितुमिच्छसि वा?",
+ "mute_modal.indefinite": "अ॑परिमितम्",
+ "navigation_bar.about": "विषये",
+ "navigation_bar.blocks": "निषिद्धभोक्तारः",
+ "navigation_bar.bookmarks": "पुटचिह्नानि",
+ "navigation_bar.community_timeline": "स्थानीयसमयतालिका",
+ "navigation_bar.compose": "नूतनपत्रं रचय",
+ "navigation_bar.direct": "प्रत्यक्षसन्देशाः",
+ "navigation_bar.discover": "आविष्कुरु",
"navigation_bar.domain_blocks": "Hidden domains",
- "navigation_bar.edit_profile": "Edit profile",
- "navigation_bar.explore": "Explore",
- "navigation_bar.favourites": "Favourites",
- "navigation_bar.filters": "Muted words",
- "navigation_bar.follow_requests": "Follow requests",
- "navigation_bar.followed_tags": "Followed hashtags",
- "navigation_bar.follows_and_followers": "Follows and followers",
- "navigation_bar.lists": "Lists",
- "navigation_bar.logout": "Logout",
- "navigation_bar.mutes": "Muted users",
- "navigation_bar.personal": "Personal",
- "navigation_bar.pins": "Pinned toots",
- "navigation_bar.preferences": "Preferences",
- "navigation_bar.public_timeline": "Federated timeline",
- "navigation_bar.search": "Search",
- "navigation_bar.security": "Security",
- "not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
- "notification.admin.report": "{name} reported {target}",
- "notification.admin.sign_up": "{name} signed up",
- "notification.favourite": "{name} favourited your status",
- "notification.follow": "{name} followed you",
- "notification.follow_request": "{name} has requested to follow you",
- "notification.mention": "{name} mentioned you",
- "notification.own_poll": "Your poll has ended",
- "notification.poll": "A poll you have voted in has ended",
- "notification.reblog": "{name} boosted your status",
- "notification.status": "{name} just posted",
- "notification.update": "{name} edited a post",
- "notifications.clear": "Clear notifications",
- "notifications.clear_confirmation": "Are you sure you want to permanently clear all your notifications?",
- "notifications.column_settings.admin.report": "New reports:",
- "notifications.column_settings.admin.sign_up": "New sign-ups:",
- "notifications.column_settings.alert": "Desktop notifications",
- "notifications.column_settings.favourite": "Favourites:",
- "notifications.column_settings.filter_bar.advanced": "Display all categories",
- "notifications.column_settings.filter_bar.category": "Quick filter bar",
- "notifications.column_settings.filter_bar.show_bar": "Show filter bar",
- "notifications.column_settings.follow": "New followers:",
- "notifications.column_settings.follow_request": "New follow requests:",
- "notifications.column_settings.mention": "Mentions:",
- "notifications.column_settings.poll": "Poll results:",
- "notifications.column_settings.push": "Push notifications",
- "notifications.column_settings.reblog": "Boosts:",
- "notifications.column_settings.show": "Show in column",
- "notifications.column_settings.sound": "Play sound",
- "notifications.column_settings.status": "New toots:",
- "notifications.column_settings.unread_notifications.category": "Unread notifications",
- "notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
- "notifications.column_settings.update": "Edits:",
- "notifications.filter.all": "All",
- "notifications.filter.boosts": "Boosts",
- "notifications.filter.favourites": "Favourites",
- "notifications.filter.follows": "Follows",
- "notifications.filter.mentions": "Mentions",
- "notifications.filter.polls": "Poll results",
- "notifications.filter.statuses": "Updates from people you follow",
- "notifications.grant_permission": "Grant permission.",
- "notifications.group": "{count} notifications",
- "notifications.mark_as_read": "Mark every notification as read",
- "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_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",
- "picture_in_picture.restore": "Put it back",
- "poll.closed": "Closed",
- "poll.refresh": "Refresh",
- "poll.total_people": "{count, plural, one {# person} other {# people}}",
- "poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
- "poll.vote": "Vote",
- "poll.voted": "You voted for this answer",
- "poll.votes": "{votes, plural, one {# vote} other {# votes}}",
- "poll_button.add_poll": "Add a poll",
- "poll_button.remove_poll": "Remove poll",
- "privacy.change": "Adjust status privacy",
- "privacy.direct.long": "Visible for mentioned users only",
+ "navigation_bar.edit_profile": "प्रोफैलं सम्पाद्यताम्",
+ "navigation_bar.explore": "अन्विच्छ",
+ "navigation_bar.favourites": "प्रियाः",
+ "navigation_bar.filters": "मूकीकृतानि पदानि",
+ "navigation_bar.follow_requests": "अनुसरणानुरोधाः",
+ "navigation_bar.followed_tags": "अनुसरितानि प्रचलितवस्तूनि",
+ "navigation_bar.follows_and_followers": "याननुसरति अनुसारिणश्च",
+ "navigation_bar.lists": "सूचयः",
+ "navigation_bar.logout": "निष्क्रमणं कुरु",
+ "navigation_bar.mutes": "निःशब्दा भोक्तारः",
+ "navigation_bar.personal": "व्यक्तिगतम्",
+ "navigation_bar.pins": "कीलितपत्राणि",
+ "navigation_bar.preferences": "अधिकरुचयः",
+ "navigation_bar.public_timeline": "सङ्घीयसमयतालिका",
+ "navigation_bar.search": "अन्विच्छ",
+ "navigation_bar.security": "सुरक्षा",
+ "not_signed_in_indicator.not_signed_in": "उपायमिमं लब्धुं सम्प्रवेश आवश्यकः।",
+ "notification.admin.report": "{name} {target} प्रतिवेदयञ्चकार",
+ "notification.admin.sign_up": "{name} संविवेश",
+ "notification.favourite": "{name} तव पत्रं प्रियमकार्षीत्",
+ "notification.follow": "{name} त्वामनुससार",
+ "notification.follow_request": "{name} त्वामनुसर्तुमयाचीत्",
+ "notification.mention": "{name} त्वामुल्लिलेख",
+ "notification.own_poll": "तव निर्वाचनं समाप्तम्",
+ "notification.poll": "यस्मिन्निर्वाचने मतमदास्तन्निर्वाचनं समाप्तम्",
+ "notification.reblog": "{name} तव पत्रं बुस्तिमिति अकार्षीत्",
+ "notification.status": "{name} अधुना अस्थापयिष्ट",
+ "notification.update": "{name} पत्रमेकं समपादयिष्ट",
+ "notifications.clear": "विज्ञापनानि मार्जय",
+ "notifications.clear_confirmation": "तव सर्वाणि विज्ञापनानि सर्वकालाय मार्जयितुमिच्छसि वा?",
+ "notifications.column_settings.admin.report": "नूतनावेदनानि",
+ "notifications.column_settings.admin.sign_up": "नूतनपञ्जीकरणम्:",
+ "notifications.column_settings.alert": "देस्क्टप्विज्ञापनानि",
+ "notifications.column_settings.favourite": "प्रियाः",
+ "notifications.column_settings.filter_bar.advanced": "सर्वाणि वर्गाणि प्रदर्शय",
+ "notifications.column_settings.filter_bar.category": "द्रुतशोधकशलाका",
+ "notifications.column_settings.filter_bar.show_bar": "शोधकशालकां दर्शय",
+ "notifications.column_settings.follow": "नूतनानुसारिणः:",
+ "notifications.column_settings.follow_request": "नूतनानुसरणानुरोधाः:",
+ "notifications.column_settings.mention": "उल्लिखितानि :",
+ "notifications.column_settings.poll": "मतदानस्य परिणामः :",
+ "notifications.column_settings.push": "आघातविज्ञापनानि",
+ "notifications.column_settings.reblog": "बुस्तः :",
+ "notifications.column_settings.show": "स्तम्भे दर्शय",
+ "notifications.column_settings.sound": "ध्वनिं वादय",
+ "notifications.column_settings.status": "नूतनपत्राणि:",
+ "notifications.column_settings.unread_notifications.category": "अपठितविज्ञापनानि",
+ "notifications.column_settings.unread_notifications.highlight": "अपठितविज्ञापनानि उद्वर्णय",
+ "notifications.column_settings.update": "सम्पादनानि :",
+ "notifications.filter.all": "सर्वम्",
+ "notifications.filter.boosts": "बुस्तः",
+ "notifications.filter.favourites": "प्रियाः",
+ "notifications.filter.follows": "अनुसरति",
+ "notifications.filter.mentions": "उल्लिखितानि",
+ "notifications.filter.polls": "मतदानस्य परिणामः",
+ "notifications.filter.statuses": "त्वयानुसरितजनेभ्यः परिवर्तनानि",
+ "notifications.grant_permission": "अनुमतिं देहि।",
+ "notifications.group": "{count} विज्ञापनानि",
+ "notifications.mark_as_read": "सर्वाणि विज्ञापनानि पठितरूपेण चिह्नीकुरु",
+ "notifications.permission_denied": "पूर्वस्यास्वीकृतब्रौसरनुमत्यनुरोधस्य कारणाद्देस्क्तप्विज्ञापनानि न उपलब्धानि",
+ "notifications.permission_denied_alert": "देस्क्तप्विज्ञापनानि सकर्तुं न शक्यते यतो ब्रौसरनुमतिं पूर्वेऽस्वीकृतम्",
+ "notifications.permission_required": "देस्क्तप्विज्ञापनानि नोपलब्धानि यतोहि आवश्यकानुमतिं न स्वीकृतम्।",
+ "notifications_permission_banner.enable": "देस्क्टप्विज्ञापनानि सशक्तं कुरु",
+ "notifications_permission_banner.how_to_control": "यदा माटोडोन्नोद्घाटितस्तदा विज्ञापनानि प्राप्तुं देस्क्तप्विज्ञापनानि सशक्तं कुरु। यदा तानि सशक्तानि तदा {icon} गण्डस्य माध्यमेन केऽपि प्रकारास्संवादा देस्क्तप्विज्ञापनानि जनयन्तीति नियामकं कर्तुं शक्नोषि।",
+ "notifications_permission_banner.title": "मा कदापि वस्तु त्यज",
+ "picture_in_picture.restore": "तत्प्रतिस्थापय",
+ "poll.closed": "बद्धम्",
+ "poll.refresh": "नवीकुरु",
+ "poll.total_people": "{count, plural, one {# जनः} other {# जनाः}}",
+ "poll.total_votes": "{count, plural, one {# मतम्} other {# मतानि}}",
+ "poll.vote": "मतम्",
+ "poll.voted": "एतदुत्तरं मतमदाः",
+ "poll.votes": "{votes, plural, one {# मतम्} other {# मतानि}}",
+ "poll_button.add_poll": "निर्वाचनं योजय",
+ "poll_button.remove_poll": "निर्वाचनं मार्जय",
+ "privacy.change": "पत्रस्य गोपनीयतां परिवर्तय",
+ "privacy.direct.long": "केवलमुल्लिखितोभोक्तृभ्यो दृश्यते",
"privacy.direct.short": "Direct",
- "privacy.private.long": "Visible for followers only",
+ "privacy.private.long": "केवलं येऽनुसरन्ति त्वां तेभ्यो दृश्यते",
"privacy.private.short": "Followers-only",
- "privacy.public.long": "Visible for all",
- "privacy.public.short": "Public",
- "privacy.unlisted.long": "Visible for all, but opted-out of discovery features",
- "privacy.unlisted.short": "Unlisted",
- "privacy_policy.last_updated": "Last updated {date}",
- "privacy_policy.title": "Privacy Policy",
- "refresh": "Refresh",
- "regeneration_indicator.label": "Loading…",
- "regeneration_indicator.sublabel": "Your home feed is being prepared!",
- "relative_time.days": "{number}d",
- "relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
- "relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
- "relative_time.full.just_now": "just now",
- "relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
- "relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
- "relative_time.hours": "{number}h",
- "relative_time.just_now": "now",
- "relative_time.minutes": "{number}m",
- "relative_time.seconds": "{number}s",
- "relative_time.today": "today",
- "reply_indicator.cancel": "Cancel",
- "report.block": "Block",
- "report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
- "report.categories.other": "Other",
- "report.categories.spam": "Spam",
- "report.categories.violation": "Content violates one or more server rules",
- "report.category.subtitle": "Choose the best match",
- "report.category.title": "Tell us what's going on with this {type}",
- "report.category.title_account": "profile",
- "report.category.title_status": "post",
- "report.close": "Done",
- "report.comment.title": "Is there anything else you think we should know?",
- "report.forward": "Forward to {target}",
- "report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
- "report.mute": "Mute",
- "report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
- "report.next": "Next",
+ "privacy.public.long": "सर्वेभ्यो दृश्यते",
+ "privacy.public.short": "सार्वजनिकम्",
+ "privacy.unlisted.long": "सर्वेभ्यो दृश्यते किन्तु आविष्कारविशेषताभ्योऽन्तरभूतं नास्ति",
+ "privacy.unlisted.short": "असूचीकृतम्",
+ "privacy_policy.last_updated": "अन्तिमवारं परिवर्तितम् {date}",
+ "privacy_policy.title": "गोपनीयतानीतिः",
+ "refresh": "नवीकुरु",
+ "regeneration_indicator.label": "आरोपयति…",
+ "regeneration_indicator.sublabel": "तव गृहनिरासः सज्जीकृतोऽस्ति!",
+ "relative_time.days": "{number}दि",
+ "relative_time.full.days": "{number, plural, one {# दिनं} other {# दिनानि}} पूर्वम्",
+ "relative_time.full.hours": "{number, plural, one {# होरा} other {# होराः}} पूर्वम्",
+ "relative_time.full.just_now": "अधुनैव",
+ "relative_time.full.minutes": "{number, plural, one {# क्षणं} other {# क्षणानि}} पूर्वम्",
+ "relative_time.full.seconds": "{number, plural, one {# पलं} other {# पलानि}} पूर्वम्",
+ "relative_time.hours": "{number}हो",
+ "relative_time.just_now": "अधुना",
+ "relative_time.minutes": "{number}क्ष",
+ "relative_time.seconds": "{number}प",
+ "relative_time.today": "अद्य",
+ "reply_indicator.cancel": "नश्यताम्",
+ "report.block": "निषेधः",
+ "report.block_explanation": "तेषां पत्राणि न द्रक्ष्यसि। ते तव पत्राणि द्रष्टुमुत त्वामनुसर्तुं न शक्नुवन्ति। ते अवरुद्धाः इति ते वक्तुं शक्नुवन्ति।",
+ "report.categories.other": "अन्य",
+ "report.categories.spam": "फल्गुसन्देशाः",
+ "report.categories.violation": "पूरकः एकं वा एकाधिकान्सर्वरो नियमानुल्लङ्घयति",
+ "report.category.subtitle": "उत्तमं मेलनं चिनु",
+ "report.category.title": "अनेन {type} इत्यनेन किम्भवतीति ब्रूहि नः",
+ "report.category.title_account": "प्रोफैल्",
+ "report.category.title_status": "पत्रम्",
+ "report.close": "कृतम्",
+ "report.comment.title": "अन्य किमपि नो ज्ञापयितुमिच्छसि वा?",
+ "report.forward": "{target} प्रत्यग्रे प्रेषय",
+ "report.forward_hint": "एकौण्टयमन्यसर्वर्तः। अनामिकप्रतिलिमावेदनस्य तत्रापि प्रेषयितुमिच्छसि वा?",
+ "report.mute": "मूकीकुरु",
+ "report.mute_explanation": "तेषां पत्राणि न द्रक्ष्यसि। तेऽधुनापि त्वामनुसृत्य तव पत्राणि द्रष्टुं शक्नुवन्ति किन्तु ते त्वया मूकीकृता इति ते न वेदिष्यन्ति।",
+ "report.next": "परम्",
"report.placeholder": "Type or paste additional comments",
- "report.reasons.dislike": "I don't like it",
- "report.reasons.dislike_description": "It is not something you want to see",
- "report.reasons.other": "It's something else",
- "report.reasons.other_description": "The issue does not fit into other categories",
- "report.reasons.spam": "It's spam",
- "report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
- "report.reasons.violation": "It violates server rules",
- "report.reasons.violation_description": "You are aware that it breaks specific rules",
- "report.rules.subtitle": "Select all that apply",
- "report.rules.title": "Which rules are being violated?",
- "report.statuses.subtitle": "Select all that apply",
- "report.statuses.title": "Are there any posts that back up this report?",
+ "report.reasons.dislike": "एतन्न मे रोचते",
+ "report.reasons.dislike_description": "एतन्न किञ्चित्त्वं द्रष्टुमिच्छसि",
+ "report.reasons.other": "एतत्किञ्चिदन्य एव",
+ "report.reasons.other_description": "समस्या अन्यवर्गेषु नोपज्यते",
+ "report.reasons.spam": "फल्गुसन्देशोऽयम्",
+ "report.reasons.spam_description": "हिंसापरायणास्सन्धयः, असत्याभ्युपगमो वा पुनरावर्तनीयानि उत्तराणि",
+ "report.reasons.violation": "एतत्सर्वरो नियमानुलङ्घयति",
+ "report.reasons.violation_description": "एतद्विशेषनियमामुलङ्घयतीति वेत्सि",
+ "report.rules.subtitle": "यानि प्रयोजयन्ति तानि चिनु",
+ "report.rules.title": "केषां नियमानामुल्लङ्घनं क्रियते?",
+ "report.statuses.subtitle": "यानि प्रयोजयन्ति तानि चिनु",
+ "report.statuses.title": "कानि पत्राणि सन्ति वा यानि आवेदनमिदं समर्थयन्ति?",
"report.submit": "Submit report",
"report.target": "Report {target}",
- "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
- "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
- "report.thanks.title": "Don't want to see this?",
- "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
- "report.unfollow": "Unfollow @{name}",
- "report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
- "report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
- "report_notification.categories.other": "Other",
- "report_notification.categories.spam": "Spam",
- "report_notification.categories.violation": "Rule violation",
- "report_notification.open": "Open report",
- "search.placeholder": "Search",
- "search.search_or_paste": "Search or paste URL",
- "search_popout.search_format": "Advanced search format",
- "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
- "search_popout.tips.hashtag": "hashtag",
- "search_popout.tips.status": "status",
- "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
- "search_popout.tips.user": "user",
- "search_results.accounts": "People",
- "search_results.all": "All",
- "search_results.hashtags": "Hashtags",
- "search_results.nothing_found": "Could not find anything for these search terms",
- "search_results.statuses": "Toots",
- "search_results.statuses_fts_disabled": "Searching toots by their content is not enabled on this Mastodon server.",
- "search_results.title": "Search for {q}",
- "search_results.total": "{count, number} {count, plural, one {result} other {results}}",
- "server_banner.about_active_users": "People using this server during the last 30 days (Monthly Active Users)",
- "server_banner.active_users": "active users",
- "server_banner.administered_by": "Administered by:",
- "server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
- "server_banner.learn_more": "Learn more",
- "server_banner.server_stats": "Server stats:",
- "sign_in_banner.create_account": "Create account",
- "sign_in_banner.sign_in": "Sign in",
- "sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
- "status.admin_account": "Open moderation interface for @{name}",
- "status.admin_domain": "Open moderation interface for {domain}",
- "status.admin_status": "Open this status in the moderation interface",
- "status.block": "Block @{name}",
- "status.bookmark": "Bookmark",
- "status.cancel_reblog_private": "Unboost",
- "status.cannot_reblog": "This post cannot be boosted",
- "status.copy": "Copy link to status",
- "status.delete": "Delete",
- "status.detailed_status": "Detailed conversation view",
- "status.direct": "Direct message @{name}",
- "status.edit": "Edit",
- "status.edited": "Edited {date}",
- "status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
- "status.embed": "Embed",
- "status.favourite": "Favourite",
- "status.filter": "Filter this post",
- "status.filtered": "Filtered",
- "status.hide": "Hide post",
- "status.history.created": "{name} created {date}",
- "status.history.edited": "{name} edited {date}",
- "status.load_more": "Load more",
- "status.media_hidden": "Media hidden",
- "status.mention": "Mention @{name}",
- "status.more": "More",
- "status.mute": "Mute @{name}",
- "status.mute_conversation": "Mute conversation",
- "status.open": "Expand this status",
- "status.pin": "Pin on profile",
- "status.pinned": "Pinned toot",
- "status.read_more": "Read more",
- "status.reblog": "Boost",
+ "report.thanks.take_action": "इमे इह तव विकल्पास्सन्ति मास्टोडोनि यत्पश्यसि तद्यन्त्रयितुम् :",
+ "report.thanks.take_action_actionable": "एतस्य अस्माभिरवलोकनस्य समये @{name} इत्यस्योपरि अभियोगयितुं शक्नोषि :",
+ "report.thanks.title": "इदं द्रष्टुं नेच्छसि वा?",
+ "report.thanks.title_actionable": "अवेदनाय धन्यवादः, वयं एतदवलोकयिष्यामि।",
+ "report.unfollow": "@{name} विसर",
+ "report.unfollow_explanation": "समयोऽयमनुसरसि। तव गृहनिरासे तस्य पत्राणि न द्रष्टुं तं विसर।",
+ "report_notification.attached_statuses": "{count, plural, one {{count} पत्रं} other {{count} पत्राणि}} संयुज्यते/संयुज्यन्ते",
+ "report_notification.categories.other": "अन्य",
+ "report_notification.categories.spam": "फल्गुसन्देशाः",
+ "report_notification.categories.violation": "नियमोल्लङ्घनम्",
+ "report_notification.open": "आवेदनमुद्धाटय",
+ "search.placeholder": "अन्विच्छ",
+ "search.search_or_paste": "URL अन्विच्छ वा लेपनं कुरु",
+ "search_popout.search_format": "आनीतान्वेषणप्रारूपम्",
+ "search_popout.tips.full_text": "सरललेखो यानि पत्राणि त्वया लिखितानि, प्रियाणि, बूस्तं कृतानि, उत येषु उल्लिखितानि, एवञ्च समीकृतानिपयोक्तृनामानि, प्रदर्शननामानि, प्रचलितवस्तूनि च प्रतिददाति।",
+ "search_popout.tips.hashtag": "प्रचलितवस्तु",
+ "search_popout.tips.status": "पत्रम्",
+ "search_popout.tips.text": "सरललेखो मेलनप्रदर्शननामानि, उपभोक्तृनामानि प्रचलितवस्तूनि च प्रतिददाति",
+ "search_popout.tips.user": "उपभोक्ता",
+ "search_results.accounts": "जनाः",
+ "search_results.all": "सर्वम्",
+ "search_results.hashtags": "प्रचलितवस्तूनि",
+ "search_results.nothing_found": "एतेभ्योऽन्वेषणपदेभ्यः किमपि न प्राप्तम्",
+ "search_results.statuses": "पत्राणि",
+ "search_results.statuses_fts_disabled": "तेषां पूरकेन पत्रान्वेषणमस्मिन्मास्टोडोन्सर्वरि सक्रीयं नास्ति।",
+ "search_results.title": "{q} कृते अन्विष्य",
+ "search_results.total": "{count, number} {count, plural, one {परिणामः} other {परिणामाः}}",
+ "server_banner.about_active_users": "विगतेषु ३० दिनेषु सर्वरमिममुपयुज्यमाणा जनाः (मासिकसक्रियोपभोक्तारः)",
+ "server_banner.active_users": "सक्रियोपभोक्तारः",
+ "server_banner.administered_by": "इत्यनेन अधिकृतः : ",
+ "server_banner.introduction": "{domain} {mastodon} इत्यनेन सामर्थितो विकेन्द्रीयसामाजिकजालकर्मणोंऽशोऽस्ति।",
+ "server_banner.learn_more": "अधिकं ज्ञायताम्",
+ "server_banner.server_stats": "सर्वरः स्थितिविषयकानि :",
+ "sign_in_banner.create_account": "समयं संसृज",
+ "sign_in_banner.sign_in": "सम्प्रवेशं कुरु",
+ "sign_in_banner.text": "प्रोफैल्युत प्रचलितवस्तूनि अनुसर्तुं, प्रियं, भागः, पत्राणि प्रतिवादयितुञ्च सम्प्रवेशः कर्तव्यः। अन्यसर्वर्यपि तव समयात्संवादयितुं शक्नोषि।",
+ "status.admin_account": "@{name} कृते अनतिक्रममध्यस्थमुद्धाटय",
+ "status.admin_domain": "{domain} कृते अनतिक्रममध्यस्थमुद्धाटय",
+ "status.admin_status": "पत्रमिदमुद्घाटय अनतिक्रममध्यस्थे",
+ "status.block": "अवरुध्यताम् @{name}",
+ "status.bookmark": "पुटचिह्नीकुरु",
+ "status.cancel_reblog_private": "विबुस्तं कुरु",
+ "status.cannot_reblog": "पत्रमिदं बुस्तं कर्तुं न शक्यते",
+ "status.copy": "सञ्चयं पत्रे प्रतिलिपिं कुरु",
+ "status.delete": "मार्जय",
+ "status.detailed_status": "विस्तृतसंभाषणदृश्यम्",
+ "status.direct": "प्रत्यक्षसन्देशः @{name}",
+ "status.edit": "सम्पादय",
+ "status.edited": "सम्पादितं {date}",
+ "status.edited_x_times": "Edited {count, plural, one {{count} वारम्} other {{count} वारम्}}",
+ "status.embed": "निहितम्",
+ "status.favourite": "प्रियम्",
+ "status.filter": "पत्रमिदं फिल्तरं कुरु",
+ "status.filtered": "फिल्तर्कृतम्",
+ "status.hide": "प्रेषरणं प्रच्छादय",
+ "status.history.created": "{name} असृजत् {date}",
+ "status.history.edited": "{name} समपादयत् {date}",
+ "status.load_more": "अधिकं स्थापय",
+ "status.media_hidden": "प्रसारमाध्यमानि प्रच्छादितानि",
+ "status.mention": "उल्लिख्यताम् @{name}",
+ "status.more": "अधिकम्",
+ "status.mute": "निःशब्दम् @{name}",
+ "status.mute_conversation": "वार्तालापं मूकीकुरु",
+ "status.open": "पत्रमिदं विस्तारय",
+ "status.pin": "प्रोफैलि कीलीकुरु",
+ "status.pinned": "कीलितपत्रम्",
+ "status.read_more": "अधिकं पठ्यताम्",
+ "status.reblog": "बुस्त्",
"status.reblog_private": "Boost with original visibility",
"status.reblogged_by": "{name} boosted",
- "status.reblogs.empty": "No one has boosted this toot yet. When someone does, they will show up here.",
- "status.redraft": "Delete & re-draft",
+ "status.reblogs.empty": "न केनापि पत्रमिदं बुस्त्कृतम्। यदा कोऽपि करोति, तानि इह दृश्यन्ते।",
+ "status.redraft": "मार्जय पुनश्च लिख्यताम्",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
"status.reply": "Reply",
@@ -616,7 +618,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.statuses": "Older toots",
+ "timeline_hint.resources.statuses": "पूरातनपत्राणि",
"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",
"ui.beforeunload": "Your draft will be lost if you leave Mastodon.",
@@ -632,7 +634,7 @@
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
- "upload_form.undo": "Delete",
+ "upload_form.undo": "मार्जय",
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Apply",
diff --git a/app/javascript/mastodon/locales/sc.json b/app/javascript/mastodon/locales/sc.json
index 100f8ecbd3..38aa39f3fc 100644
--- a/app/javascript/mastodon/locales/sc.json
+++ b/app/javascript/mastodon/locales/sc.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Bloca totu su domìniu",
"confirmations.domain_block.message": "Boles de seguru, ma a beru a beru, blocare {domain}? In sa parte manna de is casos, pagos blocos o silentziamentos de persones sunt sufitzientes e preferìbiles. No as a bìdere cuntenutos dae custu domìniu in peruna lìnia de tempus pùblica o in is notìficas tuas. Sa gente chi ti sighit dae cussu domìniu at a èssere bogada.",
+ "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.logout.confirm": "Essi·nche",
"confirmations.logout.message": "Seguru chi boles essire?",
"confirmations.mute.confirm": "A sa muda",
diff --git a/app/javascript/mastodon/locales/sco.json b/app/javascript/mastodon/locales/sco.json
index c428d66835..1abcac47e5 100644
--- a/app/javascript/mastodon/locales/sco.json
+++ b/app/javascript/mastodon/locales/sco.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Ye'v chynges tae the media description or preview thit ye'v no saved, fling them awa onie weys?",
"confirmations.domain_block.confirm": "Dingie the hail domain",
"confirmations.domain_block.message": "Ye a hunner percent shair thit ye'r wantin tae dingie the hail {domain}? In maist cases a haunfae tairgtit dingies an wheeshts are eneuch an preferit. Ye wullnae see content fae that domain in onie public timelines or in yer notes. Yer follaers fae that domain wull be taen awa.",
+ "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.logout.confirm": "Log oot",
"confirmations.logout.message": "Ye shair thit ye'r wantin tae log oot?",
"confirmations.mute.confirm": "Wheesht",
diff --git a/app/javascript/mastodon/locales/si.json b/app/javascript/mastodon/locales/si.json
index a5ffbc615b..f13aca561c 100644
--- a/app/javascript/mastodon/locales/si.json
+++ b/app/javascript/mastodon/locales/si.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "ඔබට මාධ්ය විස්තරයට හෝ පෙරදසුනට නොසුරකින ලද වෙනස්කම් තිබේ, කෙසේ වෙතත් ඒවා ඉවත දමන්නද?",
"confirmations.domain_block.confirm": "සම්පූර්ණ වසම අවහිර කරන්න",
"confirmations.domain_block.message": "ඔබට සම්පූර්ණ {domain}අවහිර කිරීමට අවශ්ය බව ඔබට සැබවින්ම විශ්වාසද? බොහෝ අවස්ථාවලදී ඉලක්කගත බ්ලොක් හෝ නිශ්ශබ්ද කිරීම් කිහිපයක් ප්රමාණවත් වන අතර වඩාත් යෝග්ය වේ. ඔබ කිසිදු පොදු කාලරාමුවක හෝ ඔබගේ දැනුම්දීම් වල එම වසමේ අන්තර්ගතය නොදකිනු ඇත. එම වසමෙන් ඔබගේ අනුගාමිකයින් ඉවත් කරනු ලැබේ.",
+ "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.logout.confirm": "නික්මෙන්න",
"confirmations.logout.message": "ඔබට නික්මෙන්න අවශ්ය බව විශ්වාසද?",
"confirmations.mute.confirm": "නිශ්ශබ්ද",
diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json
index 03c237a649..a2c35fae9d 100644
--- a/app/javascript/mastodon/locales/sk.json
+++ b/app/javascript/mastodon/locales/sk.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Máte neuložené zmeny v popise alebo náhľade média, zahodiť ich aj tak?",
"confirmations.domain_block.confirm": "Skry celú doménu",
"confirmations.domain_block.message": "Si si naozaj istý/á, že chceš blokovať celú doménu {domain}? Vo väčšine prípadov stačí blokovať alebo ignorovať pár konkrétnych užívateľov, čo sa doporučuje. Neuvidíš obsah z tejto domény v žiadnej verejnej časovej osi, ani v oznámeniach. Tvoji následovníci pochádzajúci z tejto domény budú odstránení.",
+ "confirmations.edit.confirm": "Uprav",
+ "confirmations.edit.message": "Úpravou teraz prepíšeš správu, ktorú práve zostavuješ. Si si istý/á, že chceš pokračovať?",
"confirmations.logout.confirm": "Odhlás sa",
"confirmations.logout.message": "Si si istý/á, že sa chceš odhlásiť?",
"confirmations.mute.confirm": "Nevšímaj si",
@@ -509,10 +511,10 @@
"report.statuses.title": "Sú k dispozícii príspevky podporujúce toto hlásenie?",
"report.submit": "Odošli",
"report.target": "Nahlás {target}",
- "report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
- "report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
+ "report.thanks.take_action": "Tu sú tvoje možnosti kontrolovať, čo vidíš na Mastodone:",
+ "report.thanks.take_action_actionable": "Kým to vyhodnotíme, môžeš podniknúť kroky voči @{name}:",
"report.thanks.title": "Nechceš to vidieť?",
- "report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
+ "report.thanks.title_actionable": "Vďaka za nahlásenie, pozrieme sa na to.",
"report.unfollow": "Nesleduj @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report_notification.attached_statuses": "{count, plural, one {{count} post} other {{count} posts}} attached",
diff --git a/app/javascript/mastodon/locales/sl.json b/app/javascript/mastodon/locales/sl.json
index d706eac777..331d9aa20a 100644
--- a/app/javascript/mastodon/locales/sl.json
+++ b/app/javascript/mastodon/locales/sl.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Imate ne shranjene spremembe za medijski opis ali predogled; jih želite kljub temu opustiti?",
"confirmations.domain_block.confirm": "Blokiraj celotno domeno",
"confirmations.domain_block.message": "Ali ste res, res prepričani, da želite blokirati celotno {domain}? V večini primerov je nekaj ciljnih blokiranj ali utišanj dovolj in boljše. Vsebino iz te domene ne boste videli v javnih časovnicah ali obvestilih. Vaši sledilci iz te domene bodo odstranjeni.",
+ "confirmations.edit.confirm": "Uredi",
+ "confirmations.edit.message": "Urejanje bo prepisalo sporočilo, ki ga trenutno sestavljate. Ali ste prepričani, da želite nadaljevati?",
"confirmations.logout.confirm": "Odjava",
"confirmations.logout.message": "Ali ste prepričani, da se želite odjaviti?",
"confirmations.mute.confirm": "Utišanje",
diff --git a/app/javascript/mastodon/locales/sq.json b/app/javascript/mastodon/locales/sq.json
index 927cf7659e..2c4c8cd89f 100644
--- a/app/javascript/mastodon/locales/sq.json
+++ b/app/javascript/mastodon/locales/sq.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Keni ndryshime të paruajtura te përshkrimi ose paraparja e medias, të hidhen tej, sido qoftë?",
"confirmations.domain_block.confirm": "Bllokoje krejt përkatësinë",
"confirmations.domain_block.message": "Jeni i sigurt, shumë i sigurt se doni të bllokohet krejt {domain}? Në shumicën e rasteve, ndoca bllokime ose heshtime me synim të caktuar janë të mjaftueshme dhe të parapëlqyera. S’keni për të parë lëndë nga kjo përkatësi në ndonjë rrjedhë kohore publike, apo te njoftimet tuaja. Ndjekësit tuaj prej asaj përkatësie do të hiqen.",
+ "confirmations.edit.confirm": "Përpunojeni",
+ "confirmations.edit.message": "Përpunimi tani do të sjellë mbishkrim të mesazhit që po hartoni aktualisht. Jeni i sigurt se doni të vazhdohet?",
"confirmations.logout.confirm": "Dilni",
"confirmations.logout.message": "Jeni i sigurt se doni të dilet?",
"confirmations.mute.confirm": "Heshtoje",
diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json
index a3ffb413ce..66dd80b901 100644
--- a/app/javascript/mastodon/locales/sr-Latn.json
+++ b/app/javascript/mastodon/locales/sr-Latn.json
@@ -4,12 +4,12 @@
"about.disclaimer": "Mastodon je besplatan softver otvorenog koda i zaštićeni znak kompanije Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Razlog nije naveden",
"about.domain_blocks.preamble": "Mastodon vam generalno omogućava da vidite sadržaj i komunicirate sa korisnicima sa bilo kog drugog servera u fediverzumu. Ovo su izuzeci koji su napravljeni na ovom serveru.",
- "about.domain_blocks.silenced.explanation": "U načelu nećete videti profile i sadržaj sa ovog servera, osim ako ga eksplicitno ne potražite ili se uključite tako što ćete ga pratiti.",
+ "about.domain_blocks.silenced.explanation": "Nećete videti profile i sadržaj sa ovog servera osim ako ih eksplicitno ne potražite ili ne zapratite neki profil sa servera.",
"about.domain_blocks.silenced.title": "Ograničen",
- "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati ili razmenjivati, što onemogućava bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.",
+ "about.domain_blocks.suspended.explanation": "Podaci sa ovog servera neće se obrađivati, čuvati niti razmenjivati, što će onemogućiti bilo kakvu interakciju ili komunikaciju sa korisnicima sa ovog servera.",
"about.domain_blocks.suspended.title": "Suspendovan",
"about.not_available": "Ove informacije nisu dostupne na ovom serveru.",
- "about.powered_by": "Decentralizovana društvena medija koju pokreće {mastodon}",
+ "about.powered_by": "Decentralizovana društvena mreža koju pokreće {mastodon}",
"about.rules": "Pravila servera",
"account.account_note_header": "Napomena",
"account.add_or_remove_from_list": "Dodaj ili ukloni sa lista",
@@ -38,11 +38,11 @@
"account.follows.empty": "Ovaj korisnik još uvek nikog ne prati.",
"account.follows_you": "Prati vas",
"account.go_to_profile": "Idi na profil",
- "account.hide_reblogs": "Sakrij podržavanja od @{name}",
- "account.joined_short": "Pridružio se",
+ "account.hide_reblogs": "Sakrij podržavanja @{name}",
+ "account.joined_short": "Datum pridruživanja",
"account.languages": "Promeni pretplaćene jezike",
"account.link_verified_on": "Vlasništvo nad ovom vezom je provereno {date}",
- "account.locked_info": "Status privatnosti ovog naloga je podešen na zaključano. Vlasnik ručno pregleda ko ga može pratiti.",
+ "account.locked_info": "Status privatnosti ovog naloga je podešen na „zaključano”. Vlasnik ručno pregleda ko ga može pratiti.",
"account.media": "Multimedija",
"account.mention": "Pomeni korisnika @{name}",
"account.moved_to": "Korisnik {name} je naznačio da je njegov novi nalog sada:",
@@ -91,7 +91,7 @@
"bundle_column_error.routing.body": "Nije moguće pronaći traženu stranicu. Da li ste sigurni da je URL u adresnom polju ispravan?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Zatvori",
- "bundle_modal_error.message": "Nešto nije bilo u redu pri učitavanju ove komponente.",
+ "bundle_modal_error.message": "Nešto je pošlo naopako tokom učitavanja ove komponente.",
"bundle_modal_error.retry": "Pokušajte ponovo",
"closed_registrations.other_server_instructions": "Pošto je Mastodon decentralizovan, možete napraviti nalog na drugom serveru ali i dalje komunicirati sa ovim.",
"closed_registrations_modal.description": "Kreiranje naloga na {domain} trenutno nije moguće, ali imajte u vidu da vam ne treba nalog zasebno na {domain} da biste koristili Mastodon.",
@@ -162,8 +162,10 @@
"confirmations.discard_edit_media.message": "Imate nesačuvane promene u opisu ili pregledu medija, da li ipak hoćete da ih odbacite?",
"confirmations.domain_block.confirm": "Blokiraj ceo domen",
"confirmations.domain_block.message": "Da li ste zaista sigurni da želite da blokirate ceo domen {domain}? U većini slučajeva, dovoljno je i poželjno nekoliko ciljanih blokiranja ili ignorisanja. Nećete videti sadržaj sa tog domena ni u jednoj javnoj vremenskoj liniji ili u vašim obaveštenjima. Vaši pratioci sa tog domena će biti uklonjeni.",
- "confirmations.logout.confirm": "Odjavi se",
- "confirmations.logout.message": "Da li se sigurni da želite da se odjavite?",
+ "confirmations.edit.confirm": "Uredi",
+ "confirmations.edit.message": "Uređivanjem će se obrisati poruka koju trenutno sastavljate. Da li ste sigurni da želite da nastavite?",
+ "confirmations.logout.confirm": "Odjava",
+ "confirmations.logout.message": "Da li ste sigurni da želite da se odjavite?",
"confirmations.mute.confirm": "Ignoriši",
"confirmations.mute.explanation": "Ovo će sakriti objave od korisnika i objave koje ga pominju, ali će mu i dalje biti dozvoljeno da vidi vaše objave i da vas prati.",
"confirmations.mute.message": "Da li stvarno želite da ignorišete korisnika {name}?",
@@ -187,13 +189,13 @@
"disabled_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen.",
"dismissable_banner.community_timeline": "Ovo su najnovije javne objave ljudi čije naloge hostuje {domain}.",
"dismissable_banner.dismiss": "Odbaci",
- "dismissable_banner.explore_links": "O ovim vestima upravo sada razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.",
+ "dismissable_banner.explore_links": "O ovim vestima trenutno razgovaraju ljudi na ovom i drugim serverima decentralizovane mreže.",
"dismissable_banner.explore_statuses": "Ove objave sa ovog i drugih servera u decentralizovanoj mreži postaju sve popularnije na ovom serveru.",
"dismissable_banner.explore_tags": "Ove heš oznake postaju sve popularnije među ljudima na ovom i drugim serverima decentralizovane mreže.",
"dismissable_banner.public_timeline": "Ovo su najnovije javne objave ljudi na ovom i drugim serverima decentralizovane mreže za koje ovaj server zna.",
"embed.instructions": "Ugradite ovu objavu na svoj veb sajt kopiranjem koda ispod.",
"embed.preview": "Evo kako će to izgledati:",
- "emoji_button.activity": "Aktivnost",
+ "emoji_button.activity": "Aktivnosti",
"emoji_button.clear": "Obriši",
"emoji_button.custom": "Prilagođeno",
"emoji_button.flags": "Zastavice",
@@ -220,24 +222,24 @@
"empty_column.favourited_statuses": "Još uvek nemate objava označenih kao omiljene. Kada označite neku, pojaviće se ovde.",
"empty_column.favourites": "Niko još nije označio ovu objavu kao omiljenu. Kada neko to uradi, pojaviće se ovde.",
"empty_column.follow_recommendations": "Izgleda da ne mogu da se generišu bilo kakvi predlozi za vas. Možete pokušati da koristite pretragu kako biste potražili ljude koje možda poznajete ili istražili popularne heš oznake.",
- "empty_column.follow_requests": "Još uvek nemate zahteva za praćenje. Kada primite zahtev, pojaviće se ovde.",
- "empty_column.followed_tags": "Još uvek niste zapratili nijednu heš oznaku. Kada to uradite, one će se pojaviti ovde.",
+ "empty_column.follow_requests": "Još uvek nemate nijedan zahtev za praćenje. Kada primite zahtev, on će se pojaviti ovde.",
+ "empty_column.followed_tags": "Još uvek niste zapratili nijednu heš oznaku. Kada to uradite, one će se pojaviti ovde.",
"empty_column.hashtag": "Još uvek nema ničega u ovoj heš oznaci.",
"empty_column.home": "Vaša početna vremenska linija je prazna! Pratite više ljudi da biste je popunili. {suggestions}",
"empty_column.home.suggestions": "Pogledajte neke predloge",
"empty_column.list": "U ovoj listi još nema ničega. Kada članovi ove liste objave nešto novo, pojaviće se ovde.",
- "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, pojaviće se ovde.",
+ "empty_column.lists": "Još uvek nemate nijednu listu. Kada napravite jednu, ona će se pojaviti ovde.",
"empty_column.mutes": "Još uvek ne ignorišete nijednog korisnika.",
"empty_column.notifications": "Još uvek nemate nikakva obaveštenja. Kada drugi ljudi budu u interakciji sa vama, videćete to ovde.",
"empty_column.public": "Ovde nema ničega! Napišite nešto javno ili ručno pratite korisnike sa drugih servera da biste ovo popunili",
"error.unexpected_crash.explanation": "Zbog greške u našem kodu ili problema sa kompatibilnošću pregledača, ova stranica se nije mogla pravilno prikazati.",
"error.unexpected_crash.explanation_addons": "Ova stranica se nije mogla pravilno prikazati. Ovu grešku verovatno uzrokuju dodaci pregledača ili alati za automatsko prevođenje.",
"error.unexpected_crash.next_steps": "Pokušajte da osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon putem drugog pregledača ili matične aplikacije.",
- "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možda ćete i dalje moći da koristite Mastodon preko drugog pregledača ili matične aplikacije.",
+ "error.unexpected_crash.next_steps_addons": "Pokušajte da ih onemogućite i osvežite stranicu. Ako to ne pomogne, možete da nastavite da koristite Mastodon korišćenjem drugog pregledača ili matične aplikacije.",
"errors.unexpected_crash.copy_stacktrace": "Kopiraj „stacktrace” u klipbord",
"errors.unexpected_crash.report_issue": "Prijavi problem",
"explore.search_results": "Rezultati pretrage",
- "explore.suggested_follows": "Za tebe",
+ "explore.suggested_follows": "Za Vas",
"explore.title": "Istraži",
"explore.trending_links": "Vesti",
"explore.trending_statuses": "Objave",
@@ -249,7 +251,7 @@
"filter_modal.added.review_and_configure": "Za pregled i dalju konfiguraciju ove kategorije filtera, idite na {settings_link}.",
"filter_modal.added.review_and_configure_title": "Podešavanja filtera",
"filter_modal.added.settings_link": "stranica podešavanja",
- "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću kategoriju filtera: {title}.",
+ "filter_modal.added.short_explanation": "Ova objava je dodata u sledeću filter kategoriju: {title}.",
"filter_modal.added.title": "Filter je dodat!",
"filter_modal.select_filter.context_mismatch": "ne odnosi se na ovaj kontekst",
"filter_modal.select_filter.expired": "isteklo",
@@ -264,7 +266,7 @@
"follow_request.authorize": "Odobri",
"follow_request.reject": "Odbij",
"follow_requests.unlocked_explanation": "Iako vaš nalog nije zaključan, osoblje {domain} smatra da biste možda želeli da ručno pregledate zahteve za praćenje sa ovih naloga.",
- "followed_tags": "Praćene heš oznake",
+ "followed_tags": "Praćene heš oznake",
"footer.about": "Osnovni podaci",
"footer.directory": "Direktorijum profila",
"footer.get_app": "Preuzmite aplikaciju",
@@ -280,13 +282,13 @@
"hashtag.column_header.tag_mode.none": "bez {additional}",
"hashtag.column_settings.select.no_options_message": "Nisu pronađeni predlozi",
"hashtag.column_settings.select.placeholder": "Unesite heš oznake…",
- "hashtag.column_settings.tag_mode.all": "Sve ove",
+ "hashtag.column_settings.tag_mode.all": "Sve",
"hashtag.column_settings.tag_mode.any": "Bilo koje od ovih",
"hashtag.column_settings.tag_mode.none": "Nijedan od ovih",
"hashtag.column_settings.tag_toggle": "Uključi dodatne oznake za ovu kolonu",
- "hashtag.follow": "Prati heš oznaku",
+ "hashtag.follow": "Zaprati heš oznaku",
"hashtag.unfollow": "Otprati heš oznaku",
- "home.column_settings.basic": "Osnovno",
+ "home.column_settings.basic": "Osnovna",
"home.column_settings.show_reblogs": "Prikaži podržavanja",
"home.column_settings.show_replies": "Prikaži odgovore",
"home.hide_announcements": "Sakrij najave",
@@ -300,7 +302,7 @@
"interaction_modal.other_server_instructions": "Kopirajte i nalepite ovu URL adresu u polje pretrage svoje omiljene Mastodon aplikacije ili veb okruženje svog Mastodon servera.",
"interaction_modal.preamble": "Pošto je Mastodon decentralizovan, možete koristiti svoj postojeći nalog koji hostuje drugi Mastodon server ili kompatibilna platforma ako nemate nalog na ovom.",
"interaction_modal.title.favourite": "Označi objavu korisnika {name} kao omiljenu",
- "interaction_modal.title.follow": "Prati {name}",
+ "interaction_modal.title.follow": "Zaprati {name}",
"interaction_modal.title.reblog": "Podrži objavu korisnika {name}",
"interaction_modal.title.reply": "Odgovori na objavu korisnika {name}",
"intervals.full.days": "{number, plural, one {# dan} few {# dana} other {# dana}}",
@@ -354,10 +356,10 @@
"lists.edit.submit": "Promeni naslov",
"lists.new.create": "Dodaj listu",
"lists.new.title_placeholder": "Naslov nove liste",
- "lists.replies_policy.followed": "Svaki praćeni korisnik",
- "lists.replies_policy.list": "Članovi liste",
- "lists.replies_policy.none": "Niko",
- "lists.replies_policy.title": "Prikaži odgovore na:",
+ "lists.replies_policy.followed": "Svakom praćenom korisniku",
+ "lists.replies_policy.list": "Članovima liste",
+ "lists.replies_policy.none": "Nikome",
+ "lists.replies_policy.title": "Prikaži odgovore:",
"lists.search": "Pretraži među ljudima koje pratite",
"lists.subheading": "Vaše liste",
"load_pending": "{count, plural, one {# nova stavka} few {# nove stavke} other {# novih stavki}}",
@@ -368,7 +370,7 @@
"moved_to_account_banner.text": "Vaš nalog {disabledAccount} je trenutno onemogućen jer ste prešli na {movedToAccount}.",
"mute_modal.duration": "Trajanje",
"mute_modal.hide_notifications": "Sakriti obaveštenja od ovog korisnika?",
- "mute_modal.indefinite": "Neodređen",
+ "mute_modal.indefinite": "Neodređeno",
"navigation_bar.about": "Osnovni podaci",
"navigation_bar.blocks": "Blokirani korisnici",
"navigation_bar.bookmarks": "Obeleživači",
@@ -382,7 +384,7 @@
"navigation_bar.favourites": "Omiljeno",
"navigation_bar.filters": "Ignorisane reči",
"navigation_bar.follow_requests": "Zahtevi za praćenje",
- "navigation_bar.followed_tags": "Praćene heš oznake",
+ "navigation_bar.followed_tags": "Praćene heš oznake",
"navigation_bar.follows_and_followers": "Praćenja i pratioci",
"navigation_bar.lists": "Liste",
"navigation_bar.logout": "Odjava",
@@ -393,9 +395,9 @@
"navigation_bar.public_timeline": "Združena vremenska linija",
"navigation_bar.search": "Pretraga",
"navigation_bar.security": "Bezbednost",
- "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da pristupite ovom resursu.",
- "notification.admin.report": "{name} je prijavio {target}",
- "notification.admin.sign_up": "{name} se registrovao",
+ "not_signed_in_indicator.not_signed_in": "Morate da se prijavite da biste pristupili ovom resursu.",
+ "notification.admin.report": "{name} je prijavio/-la {target}",
+ "notification.admin.sign_up": "{name} se registrovao/-la",
"notification.favourite": "{name} je označio vašu objavu kao omiljenu",
"notification.follow": "{name} vas je zapratio",
"notification.follow_request": "{name} je zatražio da vas prati",
@@ -412,7 +414,7 @@
"notifications.column_settings.alert": "Obaveštenja na radnoj površini",
"notifications.column_settings.favourite": "Omiljeni:",
"notifications.column_settings.filter_bar.advanced": "Prikaži sve kategorije",
- "notifications.column_settings.filter_bar.category": "Traka za brzi filter",
+ "notifications.column_settings.filter_bar.category": "Traka za brzo filtriranje",
"notifications.column_settings.filter_bar.show_bar": "Prikaži traku sa filterima",
"notifications.column_settings.follow": "Novi pratioci:",
"notifications.column_settings.follow_request": "Novi zahtevi za praćenje:",
@@ -436,13 +438,13 @@
"notifications.grant_permission": "Odobri dozvolu.",
"notifications.group": "{count} obaveštenja",
"notifications.mark_as_read": "Označi svako obaveštenje kao pročitano",
- "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolom pregledača",
+ "notifications.permission_denied": "Obaveštenja na radnoj površini nisu dostupna zbog prethodno odbijenog zahteva za dozvolu pregledača",
"notifications.permission_denied_alert": "Obaveštenja na radnoj površini ne mogu biti omogućena, jer je dozvola pregledača ranije bila odbijena",
"notifications.permission_required": "Obaveštenja na radnoj površini nisu dostupna jer potrebna dozvola nije dodeljena.",
"notifications_permission_banner.enable": "Omogućiti obaveštenja na radnoj površini",
"notifications_permission_banner.how_to_control": "Da biste primali obaveštenja kada Mastodon nije otvoren, omogućite obaveštenja na radnoj površini. Kada su obaveštenja na radnoj površini omogućena vrste interakcija koje ona generišu mogu se podešavati pomoću dugmeta {icon}.",
"notifications_permission_banner.title": "Nikada ništa ne propustite",
- "picture_in_picture.restore": "Vrati to nazad",
+ "picture_in_picture.restore": "Vrati nazad",
"poll.closed": "Zatvoreno",
"poll.refresh": "Osveži",
"poll.total_people": "{count, plural, one {# osoba} few {# osobe} other {# osoba}}",
@@ -453,13 +455,13 @@
"poll_button.add_poll": "Dodaj anketu",
"poll_button.remove_poll": "Ukloni anketu",
"privacy.change": "Promeni privatnost objave",
- "privacy.direct.long": "Vidljivo samo za pomenute korisnike",
+ "privacy.direct.long": "Vidljivo samo pomenutim korisnicima",
"privacy.direct.short": "Samo pomenute osobe",
- "privacy.private.long": "Vidljivo samo za pratioce",
- "privacy.private.short": "Samo pratioci",
+ "privacy.private.long": "Vidljivo samo pratiocima",
+ "privacy.private.short": "Samo pratiocima",
"privacy.public.long": "Vidljivo za sve",
"privacy.public.short": "Javno",
- "privacy.unlisted.long": "Vidljivo za sve, ali isključeno iz funkcije otkrivanja",
+ "privacy.unlisted.long": "Vidljivo svima, ali isključeno iz funkcija otkrivanja",
"privacy.unlisted.short": "Neizlistano",
"privacy_policy.last_updated": "Poslednje ažuriranje {date}",
"privacy_policy.title": "Politika privatnosti",
@@ -479,34 +481,34 @@
"relative_time.today": "danas",
"reply_indicator.cancel": "Otkaži",
"report.block": "Blokiraj",
- "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti vaše objave niti će moći da vas prati. Takođe može da zna da je blokiran.",
+ "report.block_explanation": "Nećete videti objave korisnika. Ni on neće videti Vaše objave niti će moći da Vas prati. Takođe će moći da sazna da je blokiran.",
"report.categories.other": "Ostalo",
"report.categories.spam": "Spam",
"report.categories.violation": "Sadržaj krši jedno ili više pravila servera",
"report.category.subtitle": "Odaberite najpribližnije",
- "report.category.title": "Recite nam šta je problem sa ovim {type}",
- "report.category.title_account": "profilom",
+ "report.category.title": "Recite nam šta je problem sa {type}",
+ "report.category.title_account": "ovim profilom",
"report.category.title_status": "objavom",
"report.close": "Gotovo",
- "report.comment.title": "Da li ima nešto dodatno što treba da znamo?",
+ "report.comment.title": "Da li ima još nešto što biste hteli da nam date do znanja?",
"report.forward": "Proslediti {target}",
"report.forward_hint": "Nalog je sa drugog servera. Poslati anonimnu kopiju prijave i tamo?",
"report.mute": "Ignoriši",
- "report.mute_explanation": "Nećete videti objave korisnika. On i i dalje može da vas prati i vidi vaše objave i neće znati da je ignorisan.",
+ "report.mute_explanation": "Nećete videti objave korisnika. On će i dalje moći da Vas prati i vidi Vaše objave i neće znati da je ignorisan.",
"report.next": "Sledeće",
"report.placeholder": "Dodatni komentari",
"report.reasons.dislike": "Ne sviđa mi se",
- "report.reasons.dislike_description": "Ovo nije nešto što želiš da vidite",
+ "report.reasons.dislike_description": "Ovo nije nešto što želite da vidite",
"report.reasons.other": "Nešto drugo",
"report.reasons.other_description": "Problem se ne uklapa u druge kategorije",
"report.reasons.spam": "Ovo je spam",
"report.reasons.spam_description": "Zlonamerne veze, lažno angažovanje ili odgovori koji se ponavljaju",
"report.reasons.violation": "Krši pravila servera",
- "report.reasons.violation_description": "Svesni ste da krši neka određena pravila",
- "report.rules.subtitle": "Izaberi sve što važi",
+ "report.reasons.violation_description": "Svesni ste da krši određena pravila",
+ "report.rules.subtitle": "Izaberite sva pravila koja su prekršena",
"report.rules.title": "Koja pravila su prekršena?",
- "report.statuses.subtitle": "Izaberi sve što važi",
- "report.statuses.title": "Da li postoje bilo kakve objave koje podržavaju ovu prijavu?",
+ "report.statuses.subtitle": "Izaberite sve što važi",
+ "report.statuses.title": "Ima li bilo kakvih objava koje potkrepljuju ovu prijavu?",
"report.submit": "Pošalji",
"report.target": "Prijavljujem {target}",
"report.thanks.take_action": "Ovo su Vaše opcije da kontrolišete šta vidite na Mastodon-u:",
@@ -534,7 +536,7 @@
"search_results.nothing_found": "Nije moguće pronaći ništa za ove termine za pretragu",
"search_results.statuses": "Objave",
"search_results.statuses_fts_disabled": "Pretraga objava po sadržaju nije omogućena na ovom Mastodon serveru.",
- "search_results.title": "Pretraži {q}",
+ "search_results.title": "Traži {q}",
"search_results.total": "{count, number} {count, plural, one {rezultat} few {rezultata} other {rezultata}}",
"server_banner.about_active_users": "Ljudi koji su koristili ovaj server u prethodnih 30 dana (mesečno aktivnih korisnika)",
"server_banner.active_users": "aktivnih korisnika",
@@ -542,8 +544,8 @@
"server_banner.introduction": "{domain} je deo decentralizovane društvene mreže koju pokreće {mastodon}.",
"server_banner.learn_more": "Saznajte više",
"server_banner.server_stats": "Statistike servera:",
- "sign_in_banner.create_account": "Napravi nalog",
- "sign_in_banner.sign_in": "Prijavi se",
+ "sign_in_banner.create_account": "Napravite nalog",
+ "sign_in_banner.sign_in": "Prijavite se",
"sign_in_banner.text": "Prijavite se da biste pratili profile ili heš oznake, označili objave kao omiljene, delili i odgovarali na njih. Takođe možete komunicirati sa svog naloga na drugom serveru.",
"status.admin_account": "Otvori moderatorsko okruženje za @{name}",
"status.admin_domain": "Otvori moderatorsko okruženje za {domain}",
@@ -555,7 +557,7 @@
"status.copy": "Kopiraj vezu u objavu",
"status.delete": "Izbriši",
"status.detailed_status": "Detaljan prikaz razgovora",
- "status.direct": "Direktna poruka @{name}",
+ "status.direct": "Pošalji poruku @{name}",
"status.edit": "Uredi",
"status.edited": "Uređeno {date}",
"status.edited_x_times": "Uređeno {count, plural, one {{count} put} other {{count} puta}}",
@@ -584,7 +586,7 @@
"status.remove_bookmark": "Ukloni obeleživač",
"status.replied_to": "Odgovor za {name}",
"status.reply": "Odgovori",
- "status.replyAll": "Odgovori na diskusiju",
+ "status.replyAll": "Odgovori na niz",
"status.report": "Prijavi @{name}",
"status.sensitive_warning": "Osetljiv sadržaj",
"status.share": "Podeli",
@@ -599,7 +601,7 @@
"status.uncached_media_warning": "Nije dostupno",
"status.unmute_conversation": "Ne ignoriši razgovor",
"status.unpin": "Otkači sa profila",
- "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Odaberite ništa da primate objave na svim jezicima.",
+ "subscribed_languages.lead": "Samo objave na označenim jezicima će se pojavljivati na početnoj liniji i na listama posle ove izmene. Kada nijedan jezik nije izabran, primaćete objave na svim jezicima.",
"subscribed_languages.save": "Sačuvaj izmene",
"subscribed_languages.target": "Promeni jezike na koje je {target} prijavljen",
"suggestions.dismiss": "Odbaci predlog",
@@ -615,9 +617,9 @@
"time_remaining.seconds": "Ostalo {number, plural, one {# sekund} few {# sekunde} other {# sekundi}}",
"timeline_hint.remote_resource_not_displayed": "{resource} sa drugih servera se ne prikazuju.",
"timeline_hint.resources.followers": "Pratioci",
- "timeline_hint.resources.follows": "Praćeni",
+ "timeline_hint.resources.follows": "Praćenja",
"timeline_hint.resources.statuses": "Starije objave",
- "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} few {{days} dana} other {{days} dana}}",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} osoba} few {{counter} osobe} other {{counter} osoba}} u proteklih {days, plural, one {dan} other {{days} dana}}",
"trends.trending_now": "U trendu sada",
"ui.beforeunload": "Vaš nacrt će biti izgubljen ako napustite Mastodon.",
"units.short.billion": "{count} mlrd.",
@@ -626,9 +628,9 @@
"upload_area.title": "Prevucite i otpustite za otpremanje",
"upload_button.label": "Dodaj slike, video ili audio datoteku",
"upload_error.limit": "Dostignuto je ograničenje za otpremanje datoteka.",
- "upload_error.poll": "Otpremanje datoteka nije dozvoljeno sa anketama.",
- "upload_form.audio_description": "Opišite za osobe sa oštećenim sluhom",
- "upload_form.description": "Opišite za osobe sa oštećenim vidom",
+ "upload_error.poll": "Otpremanje datoteka nije dozvoljeno kod anketa.",
+ "upload_form.audio_description": "Dodajte opis za osobe sa oštećenim sluhom",
+ "upload_form.description": "Dodajte opis za osobe sa oštećenim vidom",
"upload_form.description_missing": "Nema dodatog opisa",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Promeni sličicu",
@@ -639,8 +641,8 @@
"upload_modal.applying": "Primena…",
"upload_modal.choose_image": "Odaberite sliku",
"upload_modal.description_placeholder": "Ljubazni fenjerdžija čađavog lica hoće da mi pokaže štos",
- "upload_modal.detect_text": "Otkrij tekst sa slike",
- "upload_modal.edit_media": "Uredi miltimediju",
+ "upload_modal.detect_text": "Pronađi tekst sa slike",
+ "upload_modal.edit_media": "Uredi multimediju",
"upload_modal.hint": "Kliknite ili prevucite kružić na pregledu za izbor tačke fokusa koja će uvek biti vidljiva na svim sličicama.",
"upload_modal.preparing_ocr": "Priprema OCR-a…",
"upload_modal.preview_label": "Pregled ({ratio})",
diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json
index ea39d230a2..28d6126bba 100644
--- a/app/javascript/mastodon/locales/sr.json
+++ b/app/javascript/mastodon/locales/sr.json
@@ -4,12 +4,12 @@
"about.disclaimer": "Mastodon је бесплатан софтвер отвореног кода и заштићени знак компаније Mastodon gGmbH.",
"about.domain_blocks.no_reason_available": "Разлог није наведен",
"about.domain_blocks.preamble": "Мастодон вам генерално омогућава да видите садржај и комуницирате са корисницима са било ког другог сервера у федиверзуму. Ово су изузеци који су направљени на овом серверу.",
- "about.domain_blocks.silenced.explanation": "У начелу нећете видети профиле и садржај са овог сервера, осим ако га експлицитно не потражите или се укључите тако што ћете га пратити.",
+ "about.domain_blocks.silenced.explanation": "Нећете видети профиле и садржај са овог сервера осим ако их експлицитно не потражите или не запратите неки профил са сервера.",
"about.domain_blocks.silenced.title": "Ограничен",
- "about.domain_blocks.suspended.explanation": "Подаци са овог сервера неће се обрађивати, чувати или размењивати, што онемогућава било какву интеракцију или комуникацију са корисницима са овог сервера.",
+ "about.domain_blocks.suspended.explanation": "Подаци са овог сервера неће се обрађивати, чувати нити размењивати, што ће онемогућити било какву интеракцију или комуникацију са корисницима са овог сервера.",
"about.domain_blocks.suspended.title": "Суспендован",
"about.not_available": "Ове информације нису доступне на овом серверу.",
- "about.powered_by": "Децентрализована друштвена медија коју покреће {mastodon}",
+ "about.powered_by": "Децентрализована друштвена мрежа коју покреће {mastodon}",
"about.rules": "Правила сервера",
"account.account_note_header": "Напомена",
"account.add_or_remove_from_list": "Додај или уклони са листа",
@@ -38,11 +38,11 @@
"account.follows.empty": "Овај корисник још увек никог не прати.",
"account.follows_you": "Прати вас",
"account.go_to_profile": "Иди на профил",
- "account.hide_reblogs": "Сакриј подржавања од @{name}",
- "account.joined_short": "Придружио се",
+ "account.hide_reblogs": "Сакриј подржавања @{name}",
+ "account.joined_short": "Датум придруживања",
"account.languages": "Промени претплаћене језике",
"account.link_verified_on": "Власништво над овом везом је проверено {date}",
- "account.locked_info": "Статус приватности овог налога је подешен на закључано. Власник ручно прегледа ко га може пратити.",
+ "account.locked_info": "Статус приватности овог налога је подешен на „закључано”. Власник ручно прегледа ко га може пратити.",
"account.media": "Мултимедија",
"account.mention": "Помени корисника @{name}",
"account.moved_to": "Корисник {name} је назначио да је његов нови налог сада:",
@@ -91,7 +91,7 @@
"bundle_column_error.routing.body": "Није могуће пронаћи тражену страницу. Да ли сте сигурни да је URL у адресном пољу исправан?",
"bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Затвори",
- "bundle_modal_error.message": "Нешто није било у реду при учитавању ове компоненте.",
+ "bundle_modal_error.message": "Нешто је пошло наопако током учитавања ове компоненте.",
"bundle_modal_error.retry": "Покушајте поново",
"closed_registrations.other_server_instructions": "Пошто је Mastodon децентрализован, можете направити налог на другом серверу али и даље комуницирати са овим.",
"closed_registrations_modal.description": "Креирање налога на {domain} тренутно није могуће, али имајте у виду да вам не треба налог засебно на {domain} да бисте користили Mastodon.",
@@ -129,7 +129,7 @@
"compose_form.direct_message_warning_learn_more": "Сазнајте више",
"compose_form.encryption_warning": "Објаве на Mastodon-у нису потпуно шифроване. Немојте делити никакве осетљиве информације преко Mastodon-а.",
"compose_form.hashtag_warning": "Ова објава неће бити наведена ни под једном хеш ознаком јер није јавна. Само јавне објаве се могу претраживати по хеш ознакама.",
- "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да вас прати и да види ваше објаве намењене само за ваше пратиоце.",
+ "compose_form.lock_disclaimer": "Ваш налог није {locked}. Свако може да Вас запрати и да види објаве намењене само Вашим пратиоцима.",
"compose_form.lock_disclaimer.lock": "закључан",
"compose_form.placeholder": "О чему размишљате?",
"compose_form.poll.add_option": "Додајте избор",
@@ -162,8 +162,10 @@
"confirmations.discard_edit_media.message": "Имате несачуване промене у опису или прегледу медија, да ли ипак хоћете да их одбаците?",
"confirmations.domain_block.confirm": "Блокирај цео домен",
"confirmations.domain_block.message": "Да ли сте заиста сигурни да желите да блокирате цео домен {domain}? У већини случајева, довољно је и пожељно неколико циљаних блокирања или игнорисања. Нећете видети садржај са тог домена ни у једној јавној временској линији или у вашим обавештењима. Ваши пратиоци са тог домена ће бити уклоњени.",
- "confirmations.logout.confirm": "Одјави се",
- "confirmations.logout.message": "Да ли се сигурни да желите да се одјавите?",
+ "confirmations.edit.confirm": "Уреди",
+ "confirmations.edit.message": "Уређивањем ће се обрисати порука коју тренутно састављате. Да ли сте сигурни да желите да наставите?",
+ "confirmations.logout.confirm": "Одјава",
+ "confirmations.logout.message": "Да ли сте сигурни да желите да се одјавите?",
"confirmations.mute.confirm": "Игнориши",
"confirmations.mute.explanation": "Ово ће сакрити објаве од корисника и објаве које га помињу, али ће му и даље бити дозвољено да види ваше објаве и да вас прати.",
"confirmations.mute.message": "Да ли стварно желите да игноришете корисника {name}?",
@@ -187,13 +189,13 @@
"disabled_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен.",
"dismissable_banner.community_timeline": "Ово су најновије јавне објаве људи чије налоге хостује {domain}.",
"dismissable_banner.dismiss": "Одбаци",
- "dismissable_banner.explore_links": "О овим вестима управо сада разговарају људи на овом и другим серверима децентрализоване мреже.",
+ "dismissable_banner.explore_links": "О овим вестима тренутно разговарају људи на овом и другим серверима децентрализоване мреже.",
"dismissable_banner.explore_statuses": "Ове објаве са овог и других сервера у децентрализованој мрежи постају све популарније на овом серверу.",
"dismissable_banner.explore_tags": "Ове хеш ознаке постају све популарније међу људима на овом и другим серверима децентрализоване мреже.",
"dismissable_banner.public_timeline": "Ово су најновије јавне објаве људи на овом и другим серверима децентрализоване мреже за које овај сервер зна.",
"embed.instructions": "Уградите ову објаву на свој веб сајт копирањем кода испод.",
"embed.preview": "Ево како ће то изгледати:",
- "emoji_button.activity": "Активност",
+ "emoji_button.activity": "Активности",
"emoji_button.clear": "Обриши",
"emoji_button.custom": "Прилагођено",
"emoji_button.flags": "Заставице",
@@ -220,24 +222,24 @@
"empty_column.favourited_statuses": "Још увек немате објава означених као омиљене. Када означите неку, појавиће се овде.",
"empty_column.favourites": "Нико још није означио ову објаву као омиљену. Када неко то уради, појавиће се овде.",
"empty_column.follow_recommendations": "Изгледа да не могу да се генеришу било какви предлози за вас. Можете покушати да користите претрагу како бисте потражили људе које можда познајете или истражили популарне хеш ознаке.",
- "empty_column.follow_requests": "Још увек немате захтева за праћење. Када примите захтев, појавиће се овде.",
+ "empty_column.follow_requests": "Још увек немате ниједан захтев за праћење. Када примите захтев, он ће се појавити овде.",
"empty_column.followed_tags": "Још увек нисте запратили ниједну хеш ознаку. Када то урадите, оне ће се појавити овде.",
"empty_column.hashtag": "Још увек нема ничега у овој хеш ознаци.",
"empty_column.home": "Ваша почетна временска линија је празна! Пратите више људи да бисте је попунили. {suggestions}",
"empty_column.home.suggestions": "Погледајте неке предлоге",
"empty_column.list": "У овој листи још нема ничега. Када чланови ове листе објаве нешто ново, појавиће се овде.",
- "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, појавиће се овде.",
+ "empty_column.lists": "Још увек немате ниједну листу. Када направите једну, она ће се појавити овде.",
"empty_column.mutes": "Још увек не игноришете ниједног корисника.",
"empty_column.notifications": "Још увек немате никаква обавештења. Када други људи буду у интеракцији са вама, видећете то овде.",
"empty_column.public": "Овде нема ничега! Напишите нешто јавно или ручно пратите кориснике са других сервера да бисте ово попунили",
"error.unexpected_crash.explanation": "Због грешке у нашем коду или проблема са компатибилношћу прегледача, ова страница се није могла правилно приказати.",
"error.unexpected_crash.explanation_addons": "Ова страница се није могла правилно приказати. Ову грешку вероватно узрокују додаци прегледача или алати за аутоматско превођење.",
"error.unexpected_crash.next_steps": "Покушајте да освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon путем другог прегледача или матичне апликације.",
- "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можда ћете и даље моћи да користите Mastodon преко другог прегледача или матичне апликације.",
+ "error.unexpected_crash.next_steps_addons": "Покушајте да их онемогућите и освежите страницу. Ако то не помогне, можете да наставите да користите Mastodon коришћењем другог прегледача или матичне апликације.",
"errors.unexpected_crash.copy_stacktrace": "Копирај „stacktrace” у клипборд",
"errors.unexpected_crash.report_issue": "Пријави проблем",
"explore.search_results": "Резултати претраге",
- "explore.suggested_follows": "За тебе",
+ "explore.suggested_follows": "За Вас",
"explore.title": "Истражи",
"explore.trending_links": "Вести",
"explore.trending_statuses": "Објаве",
@@ -249,7 +251,7 @@
"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.short_explanation": "Ова објава је додата у следећу филтер категорију: {title}.",
"filter_modal.added.title": "Филтер је додат!",
"filter_modal.select_filter.context_mismatch": "не односи се на овај контекст",
"filter_modal.select_filter.expired": "истекло",
@@ -280,13 +282,13 @@
"hashtag.column_header.tag_mode.none": "без {additional}",
"hashtag.column_settings.select.no_options_message": "Нису пронађени предлози",
"hashtag.column_settings.select.placeholder": "Унесите хеш ознаке…",
- "hashtag.column_settings.tag_mode.all": "Све оve",
+ "hashtag.column_settings.tag_mode.all": "Све",
"hashtag.column_settings.tag_mode.any": "Било које од ових",
"hashtag.column_settings.tag_mode.none": "Ниједан од ових",
"hashtag.column_settings.tag_toggle": "Укључи додатне ознаке за ову колону",
- "hashtag.follow": "Прати хеш ознаку",
+ "hashtag.follow": "Запрати хеш ознаку",
"hashtag.unfollow": "Отпрати хеш ознаку",
- "home.column_settings.basic": "Основно",
+ "home.column_settings.basic": "Основна",
"home.column_settings.show_reblogs": "Прикажи подржавања",
"home.column_settings.show_replies": "Прикажи одговоре",
"home.hide_announcements": "Сакриј најаве",
@@ -300,7 +302,7 @@
"interaction_modal.other_server_instructions": "Копирајте и налепите ову URL адресу у поље претраге своје омиљене Mastodon апликације или веб окружење свог Mastodon сервера.",
"interaction_modal.preamble": "Пошто је Mastodon децентрализован, можете користити свој постојећи налог који хостује други Mastodon сервер или компатибилна платформа ако немате налог на овом.",
"interaction_modal.title.favourite": "Означи објаву корисника {name} као омиљену",
- "interaction_modal.title.follow": "Прати {name}",
+ "interaction_modal.title.follow": "Запрати {name}",
"interaction_modal.title.reblog": "Подржи објаву корисника {name}",
"interaction_modal.title.reply": "Одговори на објаву корисника {name}",
"intervals.full.days": "{number, plural, one {# дан} few {# дана} other {# дана}}",
@@ -354,10 +356,10 @@
"lists.edit.submit": "Промени наслов",
"lists.new.create": "Додај листу",
"lists.new.title_placeholder": "Наслов нове листе",
- "lists.replies_policy.followed": "Сваки праћени корисник",
- "lists.replies_policy.list": "Чланови листе",
- "lists.replies_policy.none": "Нико",
- "lists.replies_policy.title": "Прикажи одговоре на:",
+ "lists.replies_policy.followed": "Сваком праћеном кориснику",
+ "lists.replies_policy.list": "Члановима листе",
+ "lists.replies_policy.none": "Никоме",
+ "lists.replies_policy.title": "Прикажи одговоре:",
"lists.search": "Претражи међу људима које пратите",
"lists.subheading": "Ваше листе",
"load_pending": "{count, plural, one {# нова ставка} few {# нове ставке} other {# нових ставки}}",
@@ -368,7 +370,7 @@
"moved_to_account_banner.text": "Ваш налог {disabledAccount} је тренутно онемогућен јер сте прешли на {movedToAccount}.",
"mute_modal.duration": "Трајање",
"mute_modal.hide_notifications": "Сакрити обавештења од овог корисника?",
- "mute_modal.indefinite": "Неодређен",
+ "mute_modal.indefinite": "Неодређено",
"navigation_bar.about": "Основни подаци",
"navigation_bar.blocks": "Блокирани корисници",
"navigation_bar.bookmarks": "Обележивачи",
@@ -393,9 +395,9 @@
"navigation_bar.public_timeline": "Здружена временска линија",
"navigation_bar.search": "Претрага",
"navigation_bar.security": "Безбедност",
- "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да приступите овом ресурсу.",
- "notification.admin.report": "{name} је пријавио {target}",
- "notification.admin.sign_up": "{name} се регистровао",
+ "not_signed_in_indicator.not_signed_in": "Морате да се пријавите да бисте приступили овом ресурсу.",
+ "notification.admin.report": "{name} је пријавио/-ла {target}",
+ "notification.admin.sign_up": "{name} се регистровао/-ла",
"notification.favourite": "{name} је означио вашу објаву као омиљену",
"notification.follow": "{name} вас је запратио",
"notification.follow_request": "{name} је затражио да вас прати",
@@ -412,7 +414,7 @@
"notifications.column_settings.alert": "Обавештења на радној површини",
"notifications.column_settings.favourite": "Омиљени:",
"notifications.column_settings.filter_bar.advanced": "Прикажи све категорије",
- "notifications.column_settings.filter_bar.category": "Трака за брзи филтер",
+ "notifications.column_settings.filter_bar.category": "Трака за брзо филтрирање",
"notifications.column_settings.filter_bar.show_bar": "Прикажи траку са филтерима",
"notifications.column_settings.follow": "Нови пратиоци:",
"notifications.column_settings.follow_request": "Нови захтеви за праћење:",
@@ -436,13 +438,13 @@
"notifications.grant_permission": "Одобри дозволу.",
"notifications.group": "{count} обавештења",
"notifications.mark_as_read": "Означи свако обавештење као прочитано",
- "notifications.permission_denied": "Обавештења на радној површини нису доступна због претходно одбијеног захтева за дозволом прегледача",
+ "notifications.permission_denied": "Обавештења на радној површини нису доступна због претходно одбијеног захтева за дозволу прегледача",
"notifications.permission_denied_alert": "Обавештења на радној површини не могу бити омогућена, јер је дозвола прегледача раније била одбијена",
"notifications.permission_required": "Обавештења на радној површини нису доступна јер потребна дозвола није додељена.",
"notifications_permission_banner.enable": "Омогућити обавештења на радној површини",
"notifications_permission_banner.how_to_control": "Да бисте примали обавештења када Mastodon није отворен, омогућите обавештења на радној површини. Kада су обавештења на радној површини омогућена врсте интеракција које она генеришу могу се подешавати помоћу дугмета {icon}.",
"notifications_permission_banner.title": "Никада ништа не пропустите",
- "picture_in_picture.restore": "Врати то назад",
+ "picture_in_picture.restore": "Врати назад",
"poll.closed": "Затворено",
"poll.refresh": "Освежи",
"poll.total_people": "{count, plural, one {# особа} few {# особе} other {# особа}}",
@@ -453,13 +455,13 @@
"poll_button.add_poll": "Додај анкету",
"poll_button.remove_poll": "Уклони анкету",
"privacy.change": "Промени приватност објаве",
- "privacy.direct.long": "Видљиво само за поменуте кориснике",
+ "privacy.direct.long": "Видљиво само поменутим корисницима",
"privacy.direct.short": "Само поменуте особе",
- "privacy.private.long": "Видљиво само за пратиоце",
- "privacy.private.short": "Само пратиоци",
+ "privacy.private.long": "Видљиво само пратиоцима",
+ "privacy.private.short": "Само пратиоцима",
"privacy.public.long": "Видљиво за све",
"privacy.public.short": "Јавно",
- "privacy.unlisted.long": "Видљиво за све, али искључено из функције откривања",
+ "privacy.unlisted.long": "Видљиво свима, али искључено из функција откривања",
"privacy.unlisted.short": "Неизлистано",
"privacy_policy.last_updated": "Последње ажурирање {date}",
"privacy_policy.title": "Политика приватности",
@@ -479,34 +481,34 @@
"relative_time.today": "данас",
"reply_indicator.cancel": "Откажи",
"report.block": "Блокирај",
- "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети ваше објаве нити ће моћи да вас прати. Такође може да зна да је блокиран.",
+ "report.block_explanation": "Нећете видети објаве корисника. Ни он неће видети Ваше објаве нити ће моћи да Вас прати. Такође ће моћи да сазна да је блокиран.",
"report.categories.other": "Остало",
"report.categories.spam": "Спам",
"report.categories.violation": "Садржај крши једно или више правила сервера",
"report.category.subtitle": "Одаберите најприближније",
- "report.category.title": "Реците нам шта је проблем са овим {type}",
- "report.category.title_account": "профилом",
+ "report.category.title": "Реците нам шта је проблем са {type}",
+ "report.category.title_account": "овим профилом",
"report.category.title_status": "објавом",
"report.close": "Готово",
- "report.comment.title": "Да ли има нешто додатно што треба да знамо?",
+ "report.comment.title": "Да ли има још нешто што бисте хтели да нам дате до знања?",
"report.forward": "Проследити {target}",
"report.forward_hint": "Налог је са другог сервера. Послати анонимну копију пријаве и тамо?",
"report.mute": "Игнориши",
- "report.mute_explanation": "Нећете видети објаве корисника. Он и и даље може да вас прати и види ваше објаве и неће знати да је игнорисан.",
+ "report.mute_explanation": "Нећете видети објаве корисника. Он ће и даље моћи да Вас прати и види Ваше објаве и неће знати да је игнорисан.",
"report.next": "Следеће",
"report.placeholder": "Додатни коментари",
"report.reasons.dislike": "Не свиђа ми се",
- "report.reasons.dislike_description": "Ово није нешто што желиш да видите",
+ "report.reasons.dislike_description": "Ово није нешто што желите да видите",
"report.reasons.other": "Нешто друго",
"report.reasons.other_description": "Проблем се не уклапа у друге категорије",
"report.reasons.spam": "Ово је спам",
"report.reasons.spam_description": "Злонамерне везе, лажно ангажовање или одговори који се понављају",
"report.reasons.violation": "Крши правила сервера",
- "report.reasons.violation_description": "Свесни сте да крши нека одређена правила",
- "report.rules.subtitle": "Изабери све што важи",
+ "report.reasons.violation_description": "Свесни сте да крши одређена правила",
+ "report.rules.subtitle": "Изаберите сва правила која су прекршена",
"report.rules.title": "Која правила су прекршена?",
- "report.statuses.subtitle": "Изабери све што важи",
- "report.statuses.title": "Да ли постоје било какве објаве које подржавају ову пријаву?",
+ "report.statuses.subtitle": "Изаберите све што важи",
+ "report.statuses.title": "Има ли било каквих објава које поткрепљују ову пријаву?",
"report.submit": "Пошаљи",
"report.target": "Пријављујем {target}",
"report.thanks.take_action": "Ово су Ваше опције да контролишете шта видите на Mastodon-у:",
@@ -534,7 +536,7 @@
"search_results.nothing_found": "Није могуће пронаћи ништа за ове термине за претрагу",
"search_results.statuses": "Објаве",
"search_results.statuses_fts_disabled": "Претрага објава по садржају није омогућена на овом Mastodon серверу.",
- "search_results.title": "Претражи {q}",
+ "search_results.title": "Тражи {q}",
"search_results.total": "{count, number} {count, plural, one {резултат} few {резултата} other {резултата}}",
"server_banner.about_active_users": "Људи који су користили овај сервер у претходних 30 дана (месечно активних корисника)",
"server_banner.active_users": "активних корисника",
@@ -542,8 +544,8 @@
"server_banner.introduction": "{domain} је део децентрализоване друштвене мреже коју покреће {mastodon}.",
"server_banner.learn_more": "Сазнајте више",
"server_banner.server_stats": "Статистике сервера:",
- "sign_in_banner.create_account": "Направи налог",
- "sign_in_banner.sign_in": "Пријави се",
+ "sign_in_banner.create_account": "Направите налог",
+ "sign_in_banner.sign_in": "Пријавите се",
"sign_in_banner.text": "Пријавите се да бисте пратили профиле или хеш ознаке, означили објаве као омиљене, делили и одговарали на њих. Такође можете комуницирати са свог налога на другом серверу.",
"status.admin_account": "Отвори модераторско окружење за @{name}",
"status.admin_domain": "Отвори модераторско окружење за {domain}",
@@ -555,7 +557,7 @@
"status.copy": "Копирај везу у објаву",
"status.delete": "Избриши",
"status.detailed_status": "Детаљан приказ разговора",
- "status.direct": "Директна порука @{name}",
+ "status.direct": "Пошаљи поруку @{name}",
"status.edit": "Уреди",
"status.edited": "Уређено {date}",
"status.edited_x_times": "Уређено {count, plural, one {{count} пут} other {{count} пута}}",
@@ -584,7 +586,7 @@
"status.remove_bookmark": "Уклони обележивач",
"status.replied_to": "Одговор за {name}",
"status.reply": "Одговори",
- "status.replyAll": "Одговори на дискусију",
+ "status.replyAll": "Одговори на низ",
"status.report": "Пријави @{name}",
"status.sensitive_warning": "Осетљив садржај",
"status.share": "Подели",
@@ -599,7 +601,7 @@
"status.uncached_media_warning": "Није доступно",
"status.unmute_conversation": "Не игнориши разговор",
"status.unpin": "Откачи са профила",
- "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Одаберите ништа да примате објаве на свим језицима.",
+ "subscribed_languages.lead": "Само објаве на означеним језицима ће се појављивати на почетној линији и на листама после ове измене. Када ниједан језик није изабран, примаћете објаве на свим језицима.",
"subscribed_languages.save": "Сачувај измене",
"subscribed_languages.target": "Промени језике на које је {target} пријављен",
"suggestions.dismiss": "Одбаци предлог",
@@ -615,9 +617,9 @@
"time_remaining.seconds": "Остало {number, plural, one {# секунд} few {# секунде} other {# секунди}}",
"timeline_hint.remote_resource_not_displayed": "{resource} са других сервера се не приказују.",
"timeline_hint.resources.followers": "Пратиоци",
- "timeline_hint.resources.follows": "Праћени",
+ "timeline_hint.resources.follows": "Праћења",
"timeline_hint.resources.statuses": "Старије објаве",
- "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} few {{days} дана} other {{days} дана}}",
+ "trends.counter_by_accounts": "{count, plural, one {{counter} особа} few {{counter} особе} other {{counter} особа}} у протеклих {days, plural, one {дан} other {{days} дана}}",
"trends.trending_now": "У тренду сада",
"ui.beforeunload": "Ваш нацрт ће бити изгубљен ако напустите Mastodon.",
"units.short.billion": "{count} млрд.",
@@ -626,9 +628,9 @@
"upload_area.title": "Превуците и отпустите за отпремање",
"upload_button.label": "Додај слике, видео или аудио датотеку",
"upload_error.limit": "Достигнуто је ограничење за отпремање датотека.",
- "upload_error.poll": "Отпремање датотека није дозвољено са анкетама.",
- "upload_form.audio_description": "Опишите за особе са оштећеним слухом",
- "upload_form.description": "Опишите за особе са оштећеним видом",
+ "upload_error.poll": "Отпремање датотека није дозвољено код анкета.",
+ "upload_form.audio_description": "Додајте опис за особе са оштећеним слухом",
+ "upload_form.description": "Додајте опис за особе са оштећеним видом",
"upload_form.description_missing": "Нема додатог описа",
"upload_form.edit": "Уреди",
"upload_form.thumbnail": "Промени сличицу",
@@ -639,8 +641,8 @@
"upload_modal.applying": "Примена…",
"upload_modal.choose_image": "Одаберите слику",
"upload_modal.description_placeholder": "Љубазни фењерџија чађавог лица хоће да ми покаже штос",
- "upload_modal.detect_text": "Откриј текст са слике",
- "upload_modal.edit_media": "Уреди милтимедију",
+ "upload_modal.detect_text": "Пронађи текст са слике",
+ "upload_modal.edit_media": "Уреди мултимедију",
"upload_modal.hint": "Кликните или превуците кружић на прегледу за избор тачке фокуса која ће увек бити видљива на свим сличицама.",
"upload_modal.preparing_ocr": "Припрема OCR-а…",
"upload_modal.preview_label": "Преглед ({ratio})",
diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json
index 47efca424b..fe573949d7 100644
--- a/app/javascript/mastodon/locales/sv.json
+++ b/app/javascript/mastodon/locales/sv.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Du har o-sparade ändringar till mediabeskrivningen eller förhandsgranskningen, kasta bort dem ändå?",
"confirmations.domain_block.confirm": "Dölj hela domänen",
"confirmations.domain_block.message": "Är du verkligen, verkligen säker på att du vill blockera hela {domain}? I de flesta fall är några riktade blockeringar eller nedtystade konton tillräckligt och att föredra. Du kommer inte se innehåll från den domänen i den allmänna tidslinjen eller i dina aviseringar. Dina följare från den domänen komer att tas bort.",
+ "confirmations.edit.confirm": "Redigera",
+ "confirmations.edit.message": "Om du svarar nu kommer det att ersätta meddelandet du håller på att skapa. Är du säker på att du vill fortsätta?",
"confirmations.logout.confirm": "Logga ut",
"confirmations.logout.message": "Är du säker på att du vill logga ut?",
"confirmations.mute.confirm": "Tysta",
diff --git a/app/javascript/mastodon/locales/szl.json b/app/javascript/mastodon/locales/szl.json
index 9d23c3dd0e..587cae5b80 100644
--- a/app/javascript/mastodon/locales/szl.json
+++ b/app/javascript/mastodon/locales/szl.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/ta.json b/app/javascript/mastodon/locales/ta.json
index 0cd309ed80..fa2ad1b1ce 100644
--- a/app/javascript/mastodon/locales/ta.json
+++ b/app/javascript/mastodon/locales/ta.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "சேமிக்கப்படாத மாற்றங்கள் ஊடக விளக்கம் அல்லது முன்னோட்டத்தில் உள்ளது. அவற்றை நிராகரிக்கவா?",
"confirmations.domain_block.confirm": "முழு களத்தையும் மறை",
"confirmations.domain_block.message": "நீங்கள் முழு {domain} களத்தையும் நிச்சயமாக, நிச்சயமாகத் தடுக்க விரும்புகிறீர்களா? பெரும்பாலும் சில குறிப்பிட்ட பயனர்களைத் தடுப்பதே போதுமானது. முழு களத்தையும் தடுத்தால், அதிலிருந்து வரும் எந்தப் பதிவையும் உங்களால் காண முடியாது, மேலும் அப்பதிவுகள் குறித்த அறிவிப்புகளும் உங்களுக்கு வராது. அந்தக் களத்தில் இருக்கும் பின்தொடர்பவர்கள் உங்கள் பக்கத்திலிருந்து நீக்கப்படுவார்கள்.",
+ "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.logout.confirm": "வெளியேறு",
"confirmations.logout.message": "நிச்சயமாக நீங்கள் வெளியேற விரும்புகிறீர்களா?",
"confirmations.mute.confirm": "அமைதியாக்கு",
diff --git a/app/javascript/mastodon/locales/tai.json b/app/javascript/mastodon/locales/tai.json
index 875a8c9445..37f8add8fa 100644
--- a/app/javascript/mastodon/locales/tai.json
+++ b/app/javascript/mastodon/locales/tai.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/te.json b/app/javascript/mastodon/locales/te.json
index f4e3b7ff25..190db00a0e 100644
--- a/app/javascript/mastodon/locales/te.json
+++ b/app/javascript/mastodon/locales/te.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "మొత్తం డొమైన్ను దాచు",
"confirmations.domain_block.message": "మీరు నిజంగా నిజంగా మొత్తం {domain} ని బ్లాక్ చేయాలనుకుంటున్నారా? చాలా సందర్భాలలో కొన్ని లక్ష్యంగా ఉన్న బ్లాక్స్ లేదా మ్యూట్స్ సరిపోతాయి మరియు ఉత్తమమైనవి. మీరు ఆ డొమైన్ నుండి కంటెంట్ను ఏ ప్రజా కాలక్రమాలలో లేదా మీ నోటిఫికేషన్లలో చూడలేరు. ఆ డొమైన్ నుండి మీ అనుచరులు తీసివేయబడతారు.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "మ్యూట్ చేయి",
diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json
index e2db4627ec..bd4b2fc41e 100644
--- a/app/javascript/mastodon/locales/th.json
+++ b/app/javascript/mastodon/locales/th.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "คุณมีการเปลี่ยนแปลงคำอธิบายหรือตัวอย่างสื่อที่ยังไม่ได้บันทึก ละทิ้งการเปลี่ยนแปลงต่อไป?",
"confirmations.domain_block.confirm": "ปิดกั้นทั้งโดเมน",
"confirmations.domain_block.message": "คุณแน่ใจจริง ๆ หรือไม่ว่าต้องการปิดกั้นทั้ง {domain}? ในกรณีส่วนใหญ่ การปิดกั้นหรือการซ่อนแบบกำหนดเป้าหมายไม่กี่รายการนั้นเพียงพอและเป็นที่นิยม คุณจะไม่เห็นเนื้อหาจากโดเมนนั้นในเส้นเวลาสาธารณะใด ๆ หรือการแจ้งเตือนของคุณ จะเอาผู้ติดตามของคุณจากโดเมนนั้นออก",
+ "confirmations.edit.confirm": "แก้ไข",
+ "confirmations.edit.message": "การแก้ไขในตอนนี้จะเขียนทับข้อความที่คุณกำลังเขียนในปัจจุบัน คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
"confirmations.logout.confirm": "ออกจากระบบ",
"confirmations.logout.message": "คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบ?",
"confirmations.mute.confirm": "ซ่อน",
@@ -291,10 +293,10 @@
"home.column_settings.show_replies": "แสดงการตอบกลับ",
"home.hide_announcements": "ซ่อนประกาศ",
"home.show_announcements": "แสดงประกาศ",
- "interaction_modal.description.favourite": "เมื่อมีบัญชีใน Mastodon คุณสามารถชื่นชอบโพสต์นี้เพื่อให้ผู้สร้างทราบว่าคุณชื่นชมโพสต์และบันทึกโพสต์ไว้สำหรับภายหลัง",
- "interaction_modal.description.follow": "เมื่อมีบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ",
- "interaction_modal.description.reblog": "เมื่อมีบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง",
- "interaction_modal.description.reply": "เมื่อมีบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้",
+ "interaction_modal.description.favourite": "ด้วยบัญชีใน Mastodon คุณสามารถชื่นชอบโพสต์นี้เพื่อให้ผู้สร้างทราบว่าคุณชื่นชมโพสต์และบันทึกโพสต์ไว้สำหรับภายหลัง",
+ "interaction_modal.description.follow": "ด้วยบัญชีใน Mastodon คุณสามารถติดตาม {name} เพื่อรับโพสต์ของเขาในฟีดหน้าแรกของคุณ",
+ "interaction_modal.description.reblog": "ด้วยบัญชีใน Mastodon คุณสามารถดันโพสต์นี้เพื่อแบ่งปันโพสต์กับผู้ติดตามของคุณเอง",
+ "interaction_modal.description.reply": "ด้วยบัญชีใน Mastodon คุณสามารถตอบกลับโพสต์นี้",
"interaction_modal.on_another_server": "ในเซิร์ฟเวอร์อื่น",
"interaction_modal.on_this_server": "ในเซิร์ฟเวอร์นี้",
"interaction_modal.other_server_instructions": "คัดลอกแล้ววาง URL นี้ลงในช่องค้นหาของแอป Mastodon โปรดของคุณหรือส่วนติดต่อเว็บของเซิร์ฟเวอร์ Mastodon ของคุณ",
diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json
index 5d085495bb..fd7546e1d4 100644
--- a/app/javascript/mastodon/locales/tr.json
+++ b/app/javascript/mastodon/locales/tr.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Medya açıklaması veya ön izlemede kaydedilmemiş değişiklikleriniz var, yine de vazgeçmek istiyor musunuz?",
"confirmations.domain_block.confirm": "Alanın tamamını engelle",
"confirmations.domain_block.message": "{domain} alanının tamamını engellemek istediğinden gerçekten emin misin? Genellikle hedeflenen birkaç engelleme veya sessize alma yeterlidir ve tercih edilir. Bu alan adından gelen içeriği herhangi bir genel zaman çizelgesinde veya bildirimlerinde görmezsin. Bu alan adındaki takipçilerin kaldırılır.",
+ "confirmations.edit.confirm": "Düzenle",
+ "confirmations.edit.message": "Şimdi düzenlersen şu an oluşturduğun iletinin üzerine yazılır. Devam etmek istediğine emin misin?",
"confirmations.logout.confirm": "Oturumu kapat",
"confirmations.logout.message": "Oturumu kapatmak istediğinden emin misin?",
"confirmations.mute.confirm": "Sessize al",
diff --git a/app/javascript/mastodon/locales/tt.json b/app/javascript/mastodon/locales/tt.json
index 41098618ce..beffae95c7 100644
--- a/app/javascript/mastodon/locales/tt.json
+++ b/app/javascript/mastodon/locales/tt.json
@@ -9,32 +9,32 @@
"about.domain_blocks.suspended.explanation": "Бу серверның бернинди мәгълүматлары да эшкәртелмәячәк, сакланмаячак яки алмаштырылмаячак, бу сервердан кулланучылар белән үзара бәйләнешне яки аралашуны мөмкин итми.",
"about.domain_blocks.suspended.title": "Блокланган",
"about.not_available": "Бу серверда бу мәгълүмат юк иде.",
- "about.powered_by": "Децентрализованные социаль челтәрләр нигезендә {mastodon}",
+ "about.powered_by": "{mastodon} нигезендә үзәкчелеге бетерелгән социаль челтәр нигезендә",
"about.rules": "Сервер кагыйдәләре",
"account.account_note_header": "Язма",
- "account.add_or_remove_from_list": "Исемлеккә кертү я бетерү",
+ "account.add_or_remove_from_list": "Исемлеккә кушу яки бетерү",
"account.badges.bot": "Бот",
"account.badges.group": "Төркем",
- "account.block": "@{name} блоклау",
+ "account.block": "@{name} кулланучыны блоклау",
"account.block_domain": "{domain} доменын блоклау",
"account.blocked": "Блокланган",
- "account.browse_more_on_origin_server": "Тулырак оригинал профилендә карап була",
+ "account.browse_more_on_origin_server": "Оригиналь профилендә күбрәк карау",
"account.cancel_follow_request": "Киләсе сорау",
- "account.direct": "@{name} өчен яңа хат",
+ "account.direct": "@{name} кулланучыга язу",
"account.disable_notifications": "@{name} язулары өчен белдерүләр сүндерү",
"account.domain_blocked": "Домен блокланган",
- "account.edit_profile": "Профильны үзгәртү",
+ "account.edit_profile": "Профильне үзгәртү",
"account.enable_notifications": "@{name} язулары өчен белдерүләр яндыру",
- "account.endorse": "Профильдә рекомендацияләү",
+ "account.endorse": "Профильдә тәкъдим итү",
"account.featured_tags.last_status_at": "Соңгы хәбәр {date}",
"account.featured_tags.last_status_never": "Хәбәрләр юк",
"account.featured_tags.title": "{name} тәкъдим ителгән хэштеглар",
- "account.follow": "Языл",
- "account.followers": "Язылучылар",
+ "account.follow": "Язылу",
+ "account.followers": "Язылучы",
"account.followers.empty": "Әле беркем дә язылмаган.",
- "account.followers_counter": "{count, plural,one {{counter} Язылучы} other {{counter} Язылучы}}",
- "account.following": "Язылган",
- "account.following_counter": "{count, plural, one {{counter} Язылган} other {{counter} Язылган}}",
+ "account.followers_counter": "{count, plural,one {{counter} язылучы} other {{counter} язылучы}}",
+ "account.following": "Язылулар",
+ "account.following_counter": "{count, plural, one {{counter} язылу} other {{counter} язылу}}",
"account.follows.empty": "Беркемгә дә язылмаган әле.",
"account.follows_you": "Сезгә язылган",
"account.go_to_profile": "Профильгә күчү",
@@ -50,19 +50,19 @@
"account.mute_notifications": "@{name} кулланучыдан хәбәрләргә әһәмият бирмәү",
"account.muted": "Әһәмият бирмәнгән",
"account.open_original_page": "Чыганак битен ачу",
- "account.posts": "Пост",
- "account.posts_with_replies": "Пост һәм җавап",
+ "account.posts": "Язма",
+ "account.posts_with_replies": "Язма һәм җавап",
"account.report": "@{name} кулланучыга шикаять итү",
"account.requested": "Awaiting approval",
"account.requested_follow": "{name} Сезгә язылу соравын җиберде",
- "account.share": "Уртаклашу @{name} профиль",
+ "account.share": "@{name} профиле белән уртаклашу",
"account.show_reblogs": "Күрсәтергә көчәйтү нче @{name}",
- "account.statuses_counter": "{count, plural, one {{counter} Toot} other {{counter} Toots}}",
- "account.unblock": "Ачу @{name}",
- "account.unblock_domain": "Доменны ачу {domain}",
- "account.unblock_short": "Ачу",
- "account.unendorse": "Профильдә күрсәтмәгез",
- "account.unfollow": "Язылынмау",
+ "account.statuses_counter": "{count, plural, one {{counter} язма} other {{counter} язма}}",
+ "account.unblock": "@{name} бикләвен чыгу",
+ "account.unblock_domain": "{domain} бикләвен чыгу",
+ "account.unblock_short": "Бикләүне чыгу",
+ "account.unendorse": "Профильдә тәкъдим итмәү",
+ "account.unfollow": "Язылуны туктату",
"account.unmute": "Kабызыгыз @{name}",
"account.unmute_notifications": "Кертергә хәбәрләр нче @{name}",
"account.unmute_short": "Kабызыгыз",
@@ -71,11 +71,11 @@
"admin.dashboard.monthly_retention": "Теркәлгәннән соң ай саен кулланучыларны тоту күрсәткече",
"admin.dashboard.retention.average": "Урта",
"admin.dashboard.retention.cohort": "Теркәлү айлыгы",
- "admin.dashboard.retention.cohort_size": "Яңа кулланучылар",
- "alert.rate_limited.message": "Зинһар, аннан соң кабатлап карагыз {retry_time, time, medium}.",
+ "admin.dashboard.retention.cohort_size": "Яңа кулланучы",
+ "alert.rate_limited.message": "Зинһар, {retry_time, time, medium} соң кабатлап карагыз.",
"alert.rate_limited.title": "Тариф чикләнгән",
"alert.unexpected.message": "Көтелмәгән хата булды.",
- "alert.unexpected.title": "Ой!",
+ "alert.unexpected.title": "Абау!",
"announcement.announcement": "Игълан",
"attachments_list.unprocessed": "(чимал)",
"audio.hide": "Аудионы яшерү",
@@ -85,11 +85,11 @@
"bundle_column_error.error.body": "Соралган бит күрсәтелә алмый. Бу безнең кодтагы хата яки браузерга туры килү проблемасы аркасында булырга мөмкин.",
"bundle_column_error.error.title": "Әй, юк!",
"bundle_column_error.network.body": "Бу битне йөкләргә тырышканда хата булды. Бу сезнең Интернетка тоташу яки бу сервер белән вакытлыча проблема аркасында булырга мөмкин.",
- "bundle_column_error.network.title": "Челтәр хата",
+ "bundle_column_error.network.title": "Челтәр хатасы",
"bundle_column_error.retry": "Тагын сынап кара",
"bundle_column_error.return": "Өйгә кайтыгыз",
"bundle_column_error.routing.body": "Сорау бите табылмады. URL адресы дөрес күрсәтелгәненә ышанасызмы?",
- "bundle_column_error.routing.title": "404\n",
+ "bundle_column_error.routing.title": "404",
"bundle_modal_error.close": "Ябу",
"bundle_modal_error.message": "Бу компонентны Йөкләгәндә нәрсәдер дөрес булмаган.",
"bundle_modal_error.retry": "Тагын сынап кара",
@@ -98,23 +98,23 @@
"closed_registrations_modal.find_another_server": "Башка серверны табыгыз",
"closed_registrations_modal.preamble": "Mastodon үзәкләштерелмәгән, шуңа күрә сез счетыгызны кайда гына ясасагыз да, сез бу серверда теләсә кемгә иярә аласыз һәм аның белән аралаша аласыз. Сез аны хәтта үзегез урнаштыра аласыз!",
"closed_registrations_modal.title": "Mastodon өчен теркәлү",
- "column.about": "Турында",
+ "column.about": "Проект турында",
"column.blocks": "Блокланган кулланучылар",
"column.bookmarks": "Кыстыргычлар",
- "column.community": "Localирле вакыт сызыгы",
- "column.direct": "Туры хәбәрләр",
+ "column.community": "Локаль вакыт сызыгы",
+ "column.direct": "Шәхси хәбәрләр",
"column.directory": "Профильләрне карау",
"column.domain_blocks": "Блокланган доменнар",
"column.favourites": "Сайланма",
- "column.follow_requests": "Сорауларны үтәгез",
+ "column.follow_requests": "Язылу сораулары",
"column.home": "Баш бит",
"column.lists": "Исемлек",
"column.mutes": "Инвалид кулланучылар",
"column.notifications": "Хәбәрләр",
"column.pins": "Pinned toot",
- "column.public": "Берләшкән вакыт масштабы",
- "column_back_button.label": "Кире",
- "column_header.hide_settings": "Көйләүләрне яшерегез",
+ "column.public": "Глобаль вакыт сызыгы",
+ "column_back_button.label": "Артка",
+ "column_header.hide_settings": "Көйләүләрне яшерү",
"column_header.moveLeft_settings": "Багананы сулга күчерегез",
"column_header.moveRight_settings": "Багананы уңга күчерегез",
"column_header.pin": "Пин",
@@ -125,8 +125,8 @@
"community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Дистанцион гына идарә итү",
"compose.language.change": "Телне үзгәртү",
- "compose.language.search": "Эзләү телләре...",
- "compose_form.direct_message_warning_learn_more": "Күбрәк укыгыз",
+ "compose.language.search": "Телләр эзләве...",
+ "compose_form.direct_message_warning_learn_more": "Күбрәк белү",
"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": "Бу язма бернинди хэштег астында да күрсәтелмәячәк, чөнки ул ачык түгел. Хэштег эзләү җәмәгать басмалары аша гына мөмкин.",
"compose_form.lock_disclaimer": "Сезнең хисап түгел {locked}. Апуәрбер теләгән кеше сезнең язма өчен иярә ала.",
@@ -149,21 +149,23 @@
"compose_form.spoiler.unmarked": "Text is not hidden",
"compose_form.spoiler_placeholder": "Кисәтүегезне монда языгыз",
"confirmation_modal.cancel": "Баш тарту",
- "confirmations.block.block_and_report": "Блоклау һәм хәбәр итү",
+ "confirmations.block.block_and_report": "Блоклау һәм шикаять итү",
"confirmations.block.confirm": "Блоклау",
- "confirmations.block.message": "Сез блокларга телисез {name}?",
- "confirmations.cancel_follow_request.confirm": "Чыгару сорау",
+ "confirmations.block.message": "Сез {name} кулланучыны блокларга телисезме?",
+ "confirmations.cancel_follow_request.confirm": "Сорауны баш тарту",
"confirmations.cancel_follow_request.message": "Сез абонемент соравыгызны кире кайтарырга телисез {name}?",
"confirmations.delete.confirm": "Бетерү",
"confirmations.delete.message": "Are you sure you want to delete this status?",
"confirmations.delete_list.confirm": "Бетерү",
"confirmations.delete_list.message": "Сез бу исемлекне мәңгегә бетерергә телисезме?",
- "confirmations.discard_edit_media.confirm": "Ташлау",
+ "confirmations.discard_edit_media.confirm": "Баш тарту",
"confirmations.discard_edit_media.message": "Сезнең медиа тасвирламасында яки алдан карау өчен сакланмаган үзгәрешләр бармы? ",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Сез чыннан да барысын да блокларга телисез {domain}? Күпчелек очракта берничә максатлы блоклар яки тавышсызлар җитәрлек һәм өстенлекле. Сез бу доменнан эчтәлекне җәмәгать срокларында яки хәбәрләрегездә күрмәячәксез. Бу доменнан сезнең шәкертләр бетереләчәк.",
+ "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.logout.confirm": "Чыгу",
- "confirmations.logout.message": "Сез системадан чыгарга телисезме?",
+ "confirmations.logout.message": "Сез чыгарга телисезме?",
"confirmations.mute.confirm": "Тавышсыз",
"confirmations.mute.explanation": "Бу алардан ураза тотуны һәм алар турында искә алуны яшерәчәк, ләкин бу аларга уразаларыгызны күрергә һәм язылырга мөмкинлек бирәчәк.",
"confirmations.mute.message": "Сез тавышны сүндерергә телисез {name}?",
@@ -171,14 +173,14 @@
"confirmations.redraft.message": "Are you sure you want to delete this status and re-draft it? Favourites and boosts will be lost, and replies to the original post will be orphaned.",
"confirmations.reply.confirm": "Җавап бирү",
"confirmations.reply.message": "Тһеавап хәзер сез ясаган хәбәрне яңадан язуга китерәчәк. Сез дәвам итәсегез киләме?",
- "confirmations.unfollow.confirm": "Язылынмау",
+ "confirmations.unfollow.confirm": "Язылуны туктату",
"confirmations.unfollow.message": "Сез язылудан баш тартырга телисез {name}?",
"conversation.delete": "Сөйләшүне бетерегез",
"conversation.mark_as_read": "Укылганны Ничек билгеләргә",
"conversation.open": "Сөйләшүне карау",
- "conversation.with": "Белән {names}",
- "copypaste.copied": "Күчерелгән",
- "copypaste.copy": "Күчерү",
+ "conversation.with": "{names} белән",
+ "copypaste.copied": "Күчереп алынган",
+ "copypaste.copy": "Күчереп алу",
"directory.federated": "Билгеле галәмнән",
"directory.local": "Кемнән {domain} гына",
"directory.new_arrivals": "Яңа килүчеләр",
@@ -186,7 +188,7 @@
"disabled_account_banner.account_settings": "Хисап көйләүләре",
"disabled_account_banner.text": "Сезнең хисап {disabledAccount} хәзерге вакытта инвалид.",
"dismissable_banner.community_timeline": "Бу счетлары урнаштырылган кешеләрдән иң соңгы җәмәгать хәбәрләре {domain}.",
- "dismissable_banner.dismiss": "Чыгару",
+ "dismissable_banner.dismiss": "Ябу",
"dismissable_banner.explore_links": "Бу яңалыклар турында хәзерге вакытта кешеләр һәм башка үзәкләштерелмәгән челтәр серверларында сөйләшәләр.",
"dismissable_banner.explore_statuses": "Бу һәм бүтән серверларның үзәкләштерелмәгән челтәрдәге бу язмалары хәзерге вакытта бу серверда тартыла.",
"dismissable_banner.explore_tags": "Бу хэштеглар хәзерге вакытта үзәкләштерелмәгән челтәрнең бүтән серверларында кешеләр арасында кызыксыну уята.",
@@ -194,7 +196,7 @@
"embed.instructions": "Embed this status on your website by copying the code below.",
"embed.preview": "Менә ул нинди булыр:",
"emoji_button.activity": "Активлык",
- "emoji_button.clear": "Ачык",
+ "emoji_button.clear": "Чистарту",
"emoji_button.custom": "Куелган",
"emoji_button.flags": "Байраклар",
"emoji_button.food": "Ашау һәм эчү",
@@ -208,7 +210,7 @@
"emoji_button.search_results": "Эзләү нәтиҗәләре",
"emoji_button.symbols": "Символлар",
"emoji_button.travel": "Сәяхәт һәм урыннар",
- "empty_column.account_suspended": "Хисап блокланган",
+ "empty_column.account_suspended": "Аккаунт блокланган",
"empty_column.account_timeline": "No toots here!",
"empty_column.account_unavailable": "Profile unavailable",
"empty_column.blocks": "You haven't blocked any users yet.",
@@ -235,11 +237,11 @@
"error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"error.unexpected_crash.next_steps_addons": "Try disabling them and refreshing the page. If that does not help, you may still be able to use Mastodon through a different browser or native app.",
"errors.unexpected_crash.copy_stacktrace": "Copy stacktrace to clipboard",
- "errors.unexpected_crash.report_issue": "Report issue",
+ "errors.unexpected_crash.report_issue": "Хата турында белдерү",
"explore.search_results": "Search results",
- "explore.suggested_follows": "For you",
+ "explore.suggested_follows": "Сез өчен",
"explore.title": "Explore",
- "explore.trending_links": "News",
+ "explore.trending_links": "Яңалыклар",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"filter_modal.added.context_mismatch_explanation": "This filter category does not apply to the context in which you have accessed this post. If you want the post to be filtered in this context too, you will have to edit the filter.",
@@ -258,14 +260,14 @@
"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",
- "follow_recommendations.done": "Done",
+ "follow_recommendations.done": "Булды",
"follow_recommendations.heading": "Follow people you'd like to see posts from! Here are some suggestions.",
"follow_recommendations.lead": "Posts from people you follow will show up in chronological order on your home feed. Don't be afraid to make mistakes, you can unfollow people just as easily any time!",
"follow_request.authorize": "Authorize",
"follow_request.reject": "Reject",
"follow_requests.unlocked_explanation": "Even though your account is not locked, the {domain} staff thought you might want to review follow requests from these accounts manually.",
"followed_tags": "Имзаланган хэштеглар",
- "footer.about": "Турында",
+ "footer.about": "Проект турында",
"footer.directory": "Профильләр каталогы",
"footer.get_app": "Кушымта алыгыз",
"footer.invite": "Кешеләрне чакырыгыз",
@@ -361,18 +363,18 @@
"lists.search": "Search among people you follow",
"lists.subheading": "Your lists",
"load_pending": "{count, plural, one {# new item} other {# new items}}",
- "loading_indicator.label": "Loading...",
+ "loading_indicator.label": "Йөкләү...",
"media_gallery.toggle_visible": "{number, plural, one {Hide image} other {Hide images}}",
- "missing_indicator.label": "Not found",
+ "missing_indicator.label": "Табылмады",
"missing_indicator.sublabel": "This resource could not be found",
"moved_to_account_banner.text": "Your account {disabledAccount} is currently disabled because you moved to {movedToAccount}.",
"mute_modal.duration": "Дәвамлык",
"mute_modal.hide_notifications": "Hide notifications from this user?",
"mute_modal.indefinite": "Indefinite",
- "navigation_bar.about": "About",
- "navigation_bar.blocks": "Blocked users",
+ "navigation_bar.about": "Проект турында",
+ "navigation_bar.blocks": "Блокланган кулланучылар",
"navigation_bar.bookmarks": "Кыстыргычлар",
- "navigation_bar.community_timeline": "Local timeline",
+ "navigation_bar.community_timeline": "Локаль вакыт сызыгы",
"navigation_bar.compose": "Compose new toot",
"navigation_bar.direct": "Direct messages",
"navigation_bar.discover": "Discover",
@@ -384,14 +386,14 @@
"navigation_bar.follow_requests": "Follow requests",
"navigation_bar.followed_tags": "Followed hashtags",
"navigation_bar.follows_and_followers": "Follows and followers",
- "navigation_bar.lists": "Lists",
- "navigation_bar.logout": "Logout",
+ "navigation_bar.lists": "Исемлекләр",
+ "navigation_bar.logout": "Чыгу",
"navigation_bar.mutes": "Muted users",
"navigation_bar.personal": "Personal",
"navigation_bar.pins": "Pinned toots",
"navigation_bar.preferences": "Caylaw",
"navigation_bar.public_timeline": "Federated timeline",
- "navigation_bar.search": "Search",
+ "navigation_bar.search": "Эзләү",
"navigation_bar.security": "Хәвефсезлек",
"not_signed_in_indicator.not_signed_in": "You need to sign in to access this resource.",
"notification.admin.report": "{name} reported {target}",
@@ -447,7 +449,7 @@
"poll.refresh": "Яңарту",
"poll.total_people": "{count, plural, one {# person} other {# people}}",
"poll.total_votes": "{count, plural, one {# vote} other {# votes}}",
- "poll.vote": "Vote",
+ "poll.vote": "Тавыш бирү",
"poll.voted": "You voted for this answer",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll_button.add_poll": "Add a poll",
@@ -478,7 +480,7 @@
"relative_time.seconds": "{number}сек",
"relative_time.today": "бүген",
"reply_indicator.cancel": "Баш тарту",
- "report.block": "Block",
+ "report.block": "Блоклау",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.spam": "Spam",
@@ -487,7 +489,7 @@
"report.category.title": "Tell us what's going on with this {type}",
"report.category.title_account": "профиль",
"report.category.title_status": "post",
- "report.close": "Done",
+ "report.close": "Булды",
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Forward to {target}",
"report.forward_hint": "The account is from another server. Send an anonymized copy of the report there as well?",
@@ -495,7 +497,7 @@
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "Next",
"report.placeholder": "Type or paste additional comments",
- "report.reasons.dislike": "I don't like it",
+ "report.reasons.dislike": "Миңа бу ошамый",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
@@ -540,10 +542,10 @@
"server_banner.active_users": "active users",
"server_banner.administered_by": "Administered by:",
"server_banner.introduction": "{domain} is part of the decentralized social network powered by {mastodon}.",
- "server_banner.learn_more": "Learn more",
+ "server_banner.learn_more": "Күбрәк белү",
"server_banner.server_stats": "Server stats:",
- "sign_in_banner.create_account": "Create account",
- "sign_in_banner.sign_in": "Sign in",
+ "sign_in_banner.create_account": "Аккаунтны ясау",
+ "sign_in_banner.sign_in": "Керү",
"sign_in_banner.text": "Sign in to follow profiles or hashtags, favourite, share and reply to posts. You can also interact from your account on a different server.",
"status.admin_account": "Open moderation interface for @{name}",
"status.admin_domain": "Open moderation interface for {domain}",
@@ -556,7 +558,7 @@
"status.delete": "Бетерү",
"status.detailed_status": "Detailed conversation view",
"status.direct": "Direct message @{name}",
- "status.edit": "Edit",
+ "status.edit": "Үзгәртү",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Embed",
@@ -583,7 +585,7 @@
"status.redraft": "Delete & re-draft",
"status.remove_bookmark": "Remove bookmark",
"status.replied_to": "Replied to {name}",
- "status.reply": "Reply",
+ "status.reply": "Җавап бирү",
"status.replyAll": "Reply to thread",
"status.report": "Report @{name}",
"status.sensitive_warning": "Sensitive content",
@@ -594,7 +596,7 @@
"status.show_more": "Күбрәк күрсәтү",
"status.show_more_all": "Show more for all",
"status.show_original": "Show original",
- "status.translate": "Translate",
+ "status.translate": "Тәрҗемә итү",
"status.translated_from_with": "Translated from {lang} using {provider}",
"status.uncached_media_warning": "Not available",
"status.unmute_conversation": "Unmute conversation",
@@ -636,7 +638,7 @@
"upload_form.video_description": "Describe for people with hearing loss or visual impairment",
"upload_modal.analyzing_picture": "Analyzing picture…",
"upload_modal.apply": "Куллан",
- "upload_modal.applying": "Applying…",
+ "upload_modal.applying": "Куллану…",
"upload_modal.choose_image": "Choose image",
"upload_modal.description_placeholder": "A quick brown fox jumps over the lazy dog",
"upload_modal.detect_text": "Detect text from picture",
diff --git a/app/javascript/mastodon/locales/ug.json b/app/javascript/mastodon/locales/ug.json
index e22ab1f22f..b81bb13564 100644
--- a/app/javascript/mastodon/locales/ug.json
+++ b/app/javascript/mastodon/locales/ug.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "Log out",
"confirmations.logout.message": "Are you sure you want to log out?",
"confirmations.mute.confirm": "Mute",
diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json
index 7f509d039c..cbdfef527a 100644
--- a/app/javascript/mastodon/locales/uk.json
+++ b/app/javascript/mastodon/locales/uk.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "У вас є незбережені зміни в описі медіа або попереднього перегляду, все одно відкинути їх?",
"confirmations.domain_block.confirm": "Заблокувати весь домен",
"confirmations.domain_block.message": "Ви точно, точно впевнені, що хочете заблокувати весь домен {domain}? У більшості випадків для нормальної роботи краще заблокувати або приховати лише деяких користувачів. Ви не зможете бачити контент з цього домену у будь-яких стрічках або ваших сповіщеннях. Ваші підписники з цього домену будуть відписані від вас.",
+ "confirmations.edit.confirm": "Змінити",
+ "confirmations.edit.message": "Редагування перезапише повідомлення, яке ви зараз пишете. Ви впевнені, що хочете продовжити?",
"confirmations.logout.confirm": "Вийти",
"confirmations.logout.message": "Ви впевнені, що хочете вийти?",
"confirmations.mute.confirm": "Приховати",
diff --git a/app/javascript/mastodon/locales/ur.json b/app/javascript/mastodon/locales/ur.json
index 8980ca5318..bbe7fbd239 100644
--- a/app/javascript/mastodon/locales/ur.json
+++ b/app/javascript/mastodon/locales/ur.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "کیا آپ واقعی، واقعی یقین رکھتے ہیں کہ آپ پورے {domain} کو بلاک کرنا چاہتے ہیں؟ زیادہ تر معاملات میں چند ٹارگٹیڈ بلاکس یا خاموش کرنا کافی اور افضل ہیں۔ آپ اس ڈومین کا مواد کسی بھی عوامی ٹائم لائنز یا اپنی اطلاعات میں نہیں دیکھیں گے۔ اس ڈومین سے آپ کے پیروکاروں کو ہٹا دیا جائے گا۔",
+ "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.logout.confirm": "لاگ آؤٹ",
"confirmations.logout.message": "کیا واقعی آپ لاگ آؤٹ ہونا چاہتے ہیں؟",
"confirmations.mute.confirm": "خاموش",
diff --git a/app/javascript/mastodon/locales/uz.json b/app/javascript/mastodon/locales/uz.json
index 0f450b32af..6dcc0e3d8b 100644
--- a/app/javascript/mastodon/locales/uz.json
+++ b/app/javascript/mastodon/locales/uz.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Sizda media tavsifi yoki oldindan ko‘rishda saqlanmagan o‘zgarishlar bor, ular baribir bekor qilinsinmi?",
"confirmations.domain_block.confirm": "Butun domenni bloklash",
"confirmations.domain_block.message": "Haqiqatan ham, {domain} ni butunlay bloklamoqchimisiz? Ko'pgina hollarda bir nechta maqsadli bloklar yoki ovozni o'chirish etarli va afzaldir. Siz oʻsha domendagi kontentni hech qanday umumiy vaqt jadvallarida yoki bildirishnomalaringizda koʻrmaysiz. Bu domendagi obunachilaringiz olib tashlanadi.",
+ "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.logout.confirm": "Chiqish",
"confirmations.logout.message": "Chiqishingizga aminmisiz?",
"confirmations.mute.confirm": "Ovozsiz",
diff --git a/app/javascript/mastodon/locales/vi.json b/app/javascript/mastodon/locales/vi.json
index 4ee65e72a0..a108a6619a 100644
--- a/app/javascript/mastodon/locales/vi.json
+++ b/app/javascript/mastodon/locales/vi.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "Bạn chưa lưu thay đổi đối với phần mô tả hoặc bản xem trước của media, vẫn bỏ luôn?",
"confirmations.domain_block.confirm": "Ẩn toàn bộ máy chủ",
"confirmations.domain_block.message": "Bạn thật sự muốn ẩn toàn bộ nội dung từ {domain}? Sẽ hợp lý hơn nếu bạn chỉ chặn hoặc ẩn một vài tài khoản cụ thể. Ẩn toàn bộ nội dung từ máy chủ sẽ khiến bạn không còn thấy nội dung từ máy chủ đó ở bất kỳ nơi nào, kể cả thông báo. Người quan tâm bạn từ máy chủ đó cũng sẽ bị xóa luôn.",
+ "confirmations.edit.confirm": "Sửa",
+ "confirmations.edit.message": "Nội dung tút cũ sẽ bị ghi đè, bạn có tiếp tục?",
"confirmations.logout.confirm": "Đăng xuất",
"confirmations.logout.message": "Bạn có thật sự muốn thoát?",
"confirmations.mute.confirm": "Ẩn",
diff --git a/app/javascript/mastodon/locales/zgh.json b/app/javascript/mastodon/locales/zgh.json
index 4f190a4bc3..f5ca66b3a4 100644
--- a/app/javascript/mastodon/locales/zgh.json
+++ b/app/javascript/mastodon/locales/zgh.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "You have unsaved changes to the media description or preview, discard them anyway?",
"confirmations.domain_block.confirm": "Hide entire domain",
"confirmations.domain_block.message": "Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable. You will not see content from that domain in any public timelines or your notifications. Your followers from that domain will be removed.",
+ "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.logout.confirm": "ⴼⴼⵖ",
"confirmations.logout.message": "ⵉⵙ ⵏⵉⵜ ⵜⵅⵙⴷ ⴰⴷ ⵜⴼⴼⵖⴷ?",
"confirmations.mute.confirm": "ⵥⵥⵉⵥⵏ",
diff --git a/app/javascript/mastodon/locales/zh-CN.json b/app/javascript/mastodon/locales/zh-CN.json
index 2cfed5224a..3d0290e5d9 100644
--- a/app/javascript/mastodon/locales/zh-CN.json
+++ b/app/javascript/mastodon/locales/zh-CN.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "您还有未保存的媒体描述或预览修改,仍然丢弃它们吗?",
"confirmations.domain_block.confirm": "屏蔽整个域名",
"confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。",
+ "confirmations.edit.confirm": "编辑",
+ "confirmations.edit.message": "编辑此消息将会覆盖当前正在撰写的信息。仍要继续吗?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "你确定要登出吗?",
"confirmations.mute.confirm": "隐藏",
diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json
index 5c6f539aa7..86c14b1802 100644
--- a/app/javascript/mastodon/locales/zh-HK.json
+++ b/app/javascript/mastodon/locales/zh-HK.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "您在媒體描述或預覽有尚未儲存的變更。確定要捨棄它們嗎?",
"confirmations.domain_block.confirm": "封鎖整個網站",
"confirmations.domain_block.message": "你真的真的確定要封鎖整個 {domain} ?多數情況下,封鎖或靜音幾個特定目標就已經有效,也是比較建議的做法。若然封鎖全站,你將不會再在這裏看到該站的內容和通知。來自該站的關注者亦會被移除。",
+ "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.logout.confirm": "登出",
"confirmations.logout.message": "確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json
index 4e5cfb876c..6c68716992 100644
--- a/app/javascript/mastodon/locales/zh-TW.json
+++ b/app/javascript/mastodon/locales/zh-TW.json
@@ -162,6 +162,8 @@
"confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
"confirmations.domain_block.confirm": "封鎖整個網域",
"confirmations.domain_block.message": "您真的非常確定要封鎖整個 {domain} 網域嗎?大部分情況下,封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
+ "confirmations.edit.confirm": "編輯",
+ "confirmations.edit.message": "編輯嘟文將覆蓋掉您目前正在撰寫的訊息。是否仍要繼續?",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "您確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
@@ -170,7 +172,7 @@
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "您確定要刪除這則嘟文並重新編輯嗎?您將失去這則嘟文的轉嘟及最愛,且對原始嘟文的回覆都會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
- "confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
+ "confirmations.reply.message": "回覆嘟文將覆蓋掉您目前正在撰寫的訊息。是否仍要繼續?",
"confirmations.unfollow.confirm": "取消跟隨",
"confirmations.unfollow.message": "您確定要取消跟隨 {name} 嗎?",
"conversation.delete": "刪除對話",
diff --git a/config/locales/activerecord.ka.yml b/config/locales/activerecord.ka.yml
index cdd4f9c4c6..cb8a03702d 100644
--- a/config/locales/activerecord.ka.yml
+++ b/config/locales/activerecord.ka.yml
@@ -1,13 +1,50 @@
---
ka:
activerecord:
+ attributes:
+ poll:
+ expires_at: ბოლო ვადა
+ options: არჩევანი
+ user:
+ agreement: მომსახურების ხელშეკრულება
+ email: ელ-ფოსტის მისამართი
+ locale: ლოკალი
+ password: პაროლი
+ user/account:
+ username: მომხმარებლის სახელი
+ user/invite_request:
+ text: მიზეზი
errors:
models:
account:
attributes:
username:
invalid: მხოლოდ ასოები, ციფრები და "ქვედა-ტირე"
+ reserved: რეზერვირებულია
+ admin/webhook:
+ attributes:
+ url:
+ invalid: არასწორი URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: არასწორი URL
+ import:
+ attributes:
+ data:
+ malformed: არასწორად არის ფორმირებული
status:
attributes:
reblog:
taken: სტატუსის უკვე არსებობს
+ user:
+ attributes:
+ email:
+ blocked: იყენებს აკრძალულ ელ-ფოსტის პროვაიდერს
+ unreachable: როგორც ჩანს, არ არსებობს
+ role_id:
+ elevated: არ შეიძლება იყოს თქვენს ამჟამინდელ როლზე მაღალი
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: მოიცავს ნებართვებს, რომლებიც არ არის უსაფრთხო საბაზისო როლისთვის
diff --git a/config/locales/activerecord.tt.yml b/config/locales/activerecord.tt.yml
index 5f28508d63..0526634be0 100644
--- a/config/locales/activerecord.tt.yml
+++ b/config/locales/activerecord.tt.yml
@@ -5,8 +5,8 @@ tt:
user:
email: Почта адресы
locale: Тел
- password: Парол
+ password: Серсүз
user/account:
username: Кулланучы исеме
user/invite_request:
- text: Сәбаб
+ text: Сәбәп
diff --git a/config/locales/an.yml b/config/locales/an.yml
index 2e1a7e36ff..0bbed84629 100644
--- a/config/locales/an.yml
+++ b/config/locales/an.yml
@@ -1427,7 +1427,6 @@ an:
ios: iOS
linux: Linux
mac: Mac
- other: plataforma desconoixida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index d72a11130b..481f086426 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1422,6 +1422,7 @@ ar:
confirm_remove_selected_followers: هل أنت متأكد من أنك تريد إزالة المتابِعين المحددين؟
confirm_remove_selected_follows: هل أنت متيقِّن من أنك تريد إزالة الاشتراكات المحدَّدة؟
dormant: في سبات
+ follow_failure: تعذرت متابعة بعض الحسابات المختارة.
follow_selected_followers: متابَعة المتابِعين المحددين
followers: المتابِعون
following: يُتابِع
@@ -1461,6 +1462,7 @@ ar:
electron: إلكترون
firefox: فايرفكس
generic: متصفح مجهول
+ huawei_browser: متصفح هواواي
ie: إنترنت إكسبلورر
micro_messenger: مايكرو ميسنجر
nokia: متصفح Nokia S40 Ovi
@@ -1470,6 +1472,7 @@ ar:
qq: متصفح كيوكيو
safari: سفاري
uc_browser: متصفح UC Browser
+ unknown_browser: متصفح غير معروف
weibo: وايبو
current_session: الجلسة الحالية
description: "%{browser} على %{platform}"
@@ -1482,9 +1485,10 @@ ar:
chrome_os: نظام كروم أواس
firefox_os: نظام فايرفكس أواس
ios: نظام آي أواس
+ kai_os: KaiOS
linux: لينكس
mac: ماك
- other: نظام مجهول
+ unknown_platform: منصة غير معروفة
windows: ويندوز
windows_mobile: ويندوز موبايل
windows_phone: ويندوز فون
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index b59ebba455..8e6935c093 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -750,6 +750,7 @@ ast:
electron: Electron
firefox: Firefox
generic: Restolador desconocíu
+ huawei_browser: Restolador de Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Restolador Ovi pa S40 de Nokia
@@ -759,6 +760,7 @@ ast:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Restolador desconocíu
weibo: Weibo
current_session: Sesión actual
ip: IP
@@ -769,9 +771,10 @@ ast:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: GNU/Linux
mac: macOS
- other: plataforma desconocida
+ unknown_platform: Plataforma desconocida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/be.yml b/config/locales/be.yml
index 05c7b7bffe..8001703c43 100644
--- a/config/locales/be.yml
+++ b/config/locales/be.yml
@@ -1496,6 +1496,7 @@ be:
electron: Electron
firefox: Firefox
generic: Невядомы браўзер
+ huawei_browser: Браўзер Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1505,6 +1506,7 @@ be:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Невядомы браўзер
weibo: Weibo
current_session: Бягучая сесія
description: "%{browser} на %{platform}"
@@ -1517,9 +1519,10 @@ be:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: невядомай платформе
+ unknown_platform: Невядомая платформа
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index 34f0542759..6cce2b2942 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -935,7 +935,7 @@ bg:
new_trending_tags:
no_approved_tags: Сега няма одобрени налагащи се хаштагове.
requirements: 'Всеки от тези кандидати може да надмине #%{rank} одобрен актуален хаштаг, който в момента е #%{lowest_tag_name} с резултат %{lowest_tag_score}.'
- title: Нашумели хаштагове
+ title: Налагащи се хаштагове
subject: Нови нашумели, готови за преглед в %{instance}
aliases:
add_new: Създаване на псевдоним
@@ -1405,6 +1405,7 @@ bg:
confirm_remove_selected_followers: Наистина ли искате да премахнете избраните последователи?
confirm_remove_selected_follows: Наистина ли искате да премахнете избраните последвания?
dormant: Неактивен
+ follow_failure: Не може да се последват някои от избраните акаунти.
follow_selected_followers: Последване на избраните последователи
followers: Последователи
following: Последвани
@@ -1444,6 +1445,7 @@ bg:
electron: Electron
firefox: Firefox
generic: Неизвестен браузър
+ huawei_browser: Браузър Хуауей
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Браузър Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ bg:
qq: Браузър QQ
safari: Safari
uc_browser: Браузър UC
+ unknown_browser: Неизвестен браузър
weibo: Weibo
current_session: Текуща сесия
description: "%{browser} на %{platform}"
@@ -1465,9 +1468,10 @@ bg:
chrome_os: ChromeOS
firefox_os: Оп. сист. Firefox
ios: iOS
+ kai_os: KaiOS
linux: Линукс
mac: macOS
- other: неизвестна платформа
+ unknown_platform: Неизвестна платформа
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/br.yml b/config/locales/br.yml
index 6be93d2924..91a09c0029 100644
--- a/config/locales/br.yml
+++ b/config/locales/br.yml
@@ -469,7 +469,6 @@ br:
ios: iOS
linux: Linux
mac: macOS
- other: savenn dianav
windows: Windows
revoke: Dizober
settings:
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index 2a459dbde6..f722a25159 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1405,6 +1405,7 @@ ca:
confirm_remove_selected_followers: Segur que vols esborrar els seguidors seleccionats?
confirm_remove_selected_follows: Segur que vols esborrar els seguits seleccionats?
dormant: Inactiu
+ follow_failure: No es poden seguir alguns dels comptes seleccionats.
follow_selected_followers: Segueix als seguidors seleccionats
followers: Seguidors
following: Seguint
@@ -1444,15 +1445,17 @@ ca:
electron: Electron
firefox: Firefox
generic: Navegador desconegut
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
- nokia: Nokia S40 Ovi Browser
+ nokia: Navegador Nokia S40 Ovi
opera: Opera
otter: Otter
phantom_js: PhantomJS
- qq: QQ Browser
+ qq: Navegador QQ
safari: Safari
uc_browser: Navegador UC
+ unknown_browser: Navegador Desconegut
weibo: Weibo
current_session: Sessió actual
description: "%{browser} de %{platform}"
@@ -1465,9 +1468,10 @@ ca:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: plataforma desconeguda
+ unknown_platform: Plataforma desconeguda
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 0f481c8ce2..b156f5b496 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -941,7 +941,6 @@ ckb:
firefox_os: سیستەمی کارگێڕی فایەرفۆکس
linux: لینۆکس
mac: ماک
- other: سیستەمیکارگێڕی نەناسراو
windows: ویندۆز
windows_mobile: ویندۆزموبایل
windows_phone: ویندۆزفۆن
diff --git a/config/locales/co.yml b/config/locales/co.yml
index 94f2101c20..4d214f5c4f 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -928,7 +928,6 @@ co:
ios: iOS
linux: Linux
mac: macOS
- other: piattaforma scunnisciuta
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 8c44bba8c5..b5f3b0f15d 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -635,6 +635,7 @@ cs:
placeholder: Popište, jaké akce byly vykonány, nebo jakékoliv jiné související aktuality…
title: Poznámky
notes_description_html: Zobrazit a zanechat poznámky pro ostatní moderátory i sebe v budoucnu
+ processed_msg: Nahlášení č.%{id} bylo úspěšně zpracováno
quick_actions_description_html: 'Proveďte rychlou akci nebo skrolujte dolů pro nahlášený obsah:'
remote_user_placeholder: vzdálený uživatel z %{instance}
reopen: Znovu otevřít hlášení
@@ -647,6 +648,8 @@ cs:
status: Stav
statuses: Nahlášený obsah
statuses_description_html: Obsah porušující pravidla bude uveden v komunikaci s nahlášeným účtem
+ summary:
+ close_report: Označit nahlášení č.%{id} za vyřešené
target_origin: Původ nahlášeného účtu
title: Hlášení
unassign: Odebrat
@@ -805,6 +808,7 @@ cs:
suspend: Uživatel %{name} pozastavil účet %{target}
appeal_approved: Podáno odvolání
appeal_pending: Čekající odvolání
+ appeal_rejected: Odvolání zamítnuto
system_checks:
database_schema_check:
message_html: Na spuštění čekají databázové migrace. Nechte je prosím proběhnout pro zajištění očekávaného chování aplikace
@@ -1480,6 +1484,7 @@ cs:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Neznámý prohlížeč
weibo: Weibo
current_session: Aktuální relace
description: "%{browser} na systému %{platform}"
@@ -1492,9 +1497,10 @@ cs:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: neznámá platforma
+ unknown_platform: Neznámá platforma
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index f887329885..a50f8f32f8 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1509,6 +1509,7 @@ cy:
confirm_remove_selected_followers: Ydych chi'n siŵr eich bod am ddileu'r dilynwyr a ddewiswyd?
confirm_remove_selected_follows: Ydych chi'n siŵr eich bod am ddileu'r canlynol?
dormant: Segur
+ follow_failure: Methu dilyn rhai o'r cyfrifon a ddewiswyd.
follow_selected_followers: Dilynwch y dilynwyr a ddewiswyd
followers: Dilynwyr
following: Yn dilyn
@@ -1548,6 +1549,7 @@ cy:
electron: Electron
firefox: Firefox
generic: Porwr anhysbys
+ huawei_browser: Porwr Huawei
ie: Nid yw'r rhaglen hon yn gydnaws ag Internet Explorer
micro_messenger: MicroMessenger
nokia: Porwr Nokia S40 Ovi
@@ -1557,6 +1559,7 @@ cy:
qq: Porwr QQ
safari: Agor yn Safari
uc_browser: UC Browser
+ unknown_browser: Porwr Anhysbys
weibo: Weibo
current_session: Sesiwn gyfredol
description: "%{browser} ar %{platform}"
@@ -1569,9 +1572,10 @@ cy:
chrome_os: ChromeOS
firefox_os: OS Firefox
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: platfform anhysbys
+ unknown_platform: Platfform Anhysbys
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Ffôn Windows
diff --git a/config/locales/da.yml b/config/locales/da.yml
index a75364a792..6110e6eab7 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -580,7 +580,10 @@ da:
mark_as_sensitive_description_html: Medierne i det anmeldte indlæg markeres som sensitive, og en advarsel (strike) registreres mhp. eskalering ved evt. fremtidige overtrædelser fra samme konto.
other_description_html: Se flere muligheder relateret til at adfærdshåndtering for, samt tilpasning af kommunikation til, den anmeldte konto.
resolve_description_html: Ingen foranstaltninger træffes mod den anmeldte konto, ingen advarsel (strike) registreres og anmeldelsen lukkes.
+ silence_description_html: Kontoen vil kun være synlig for følgerene eller dem, som manuelt slå den op, hvilket markant begrænser dens udbredelse. Kan altid omgøres. Lukker alle indrapporteringer af kontoen.
+ suspend_description_html: Kontoen inkl. alt indhold utilgængeliggøres og interaktion umuliggøres, og den slettes på et tidspunkt. Kan omgøres inden for 30 dage. Lukker alle indrapporteringer af kontoen.
actions_description_html: Afgør, hvilke foranstaltning, der skal træffes for at løse denne anmeldelse. Træffes en straffende foranstaltning mod den anmeldte konto, fremsendes en e-mailnotifikation, undtagen når kategorien Spam er valgt.
+ actions_description_remote_html: Fastslå en nødvendig handling mhp. at løse denne anmeldelse. Dette vil kun påvirke din servers kommunikation med, og indholdshåndtering for, fjernkontoen.
add_to_report: Føj mere til anmeldelse
are_you_sure: Sikker?
assign_to_self: Tildel til mig
@@ -739,6 +742,7 @@ da:
preamble: At vise interessant indhold er vitalt ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren.
profile_directory: Profiloversigt
public_timelines: Offentlige tidslinjer
+ publish_discovered_servers: Udgiv fundne servere
publish_statistics: Udgiv statistik
title: Opdagelse
trends: Trends
@@ -971,7 +975,7 @@ da:
apply_for_account: Anmod om en konto
change_password: Adgangskode
confirmations:
- wrong_email_hint: Er denne e-mail-adresse ikke korrekt, kan den ændres i kontoindstillinger.
+ wrong_email_hint: Er denne e-mailadresse ikke korrekt, kan den ændres i kontoindstillinger.
delete_account: Slet konto
delete_account_html: Ønsker du at slette din konto, kan du gøre dette hér. Du vil blive bedt om bekræftelse.
description:
@@ -1399,7 +1403,9 @@ da:
activity: Kontoaktivitet
confirm_follow_selected_followers: Sikker på, at de valgte følgere skal følges?
confirm_remove_selected_followers: Sikker på, at de valgte følgere skal fjernes?
+ confirm_remove_selected_follows: Sikker på, at de valgte følgere skal fjernes?
dormant: I dvale
+ follow_failure: Kunne ikke følge alle af de valgte konti.
follow_selected_followers: Følg valgte følgere
followers: Følgere
following: Følger
@@ -1439,6 +1445,7 @@ da:
electron: Electron
firefox: Firefox
generic: Ukendt browser
+ huawei_browser: Huawei Browser
ie: IE
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1448,6 +1455,7 @@ da:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Ukendt browser
weibo: Weibo
current_session: Aktuelle session
description: "%{browser} på %{platform}"
@@ -1460,9 +1468,10 @@ da:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: ukendt platform
+ unknown_platform: Ukendt platform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/de.yml b/config/locales/de.yml
index 3f2666bdbf..82bfc221e8 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -12,12 +12,12 @@ de:
one: Follower
other: Folgende
following: Folge ich
- instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert und nicht ein einzelner Benutzer. Es wird für Föderationszwecke verwendet und sollte nicht gesperrt werden.
+ instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert, und kein persönliches Profil. Es wird für Föderationszwecke verwendet und sollte daher nicht gesperrt werden.
last_active: zuletzt aktiv
link_verified_on: Das Profil mit dieser E-Mail-Adresse wurde bereits am %{date} bestätigt
nothing_here: Keine Treffer mit dieser Auswahl
pin_errors:
- following: Du musst dieser Person bereits folgen, um sie empfehlen zu können
+ following: Du musst dieser Person folgen, um sie empfehlen zu können
posts:
one: Beitrag
other: Beiträge
@@ -29,7 +29,7 @@ de:
account_moderation_notes:
create: Notiz abspeichern
created_msg: Moderationshinweis erfolgreich abgespeichert!
- destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
+ destroyed_msg: Moderationsnotiz erfolgreich entfernt!
accounts:
add_email_domain_block: E-Mail-Domain sperren
approve: Genehmigen
@@ -58,7 +58,7 @@ de:
demote: Zurückstufen
destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht
disable: Einfrieren
- disable_sign_in_token_auth: Deaktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail
+ disable_sign_in_token_auth: E-Mail-Token-Authentisierung deaktivieren
disable_two_factor_authentication: Zwei-Faktor-Authentisierung (2FA) deaktivieren
disabled: Eingefroren
display_name: Angezeigter Name
@@ -67,7 +67,7 @@ de:
email: E-Mail-Adresse
email_status: Status der E-Mail-Adresse
enable: Freischalten
- enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentisierung (2FA) per E-Mail
+ enable_sign_in_token_auth: E-Mail-Token-Authentisierung aktivieren
enabled: Freigegeben
enabled_msg: Konto von %{username} erfolgreich freigegeben
followers: Follower
@@ -105,10 +105,10 @@ de:
not_subscribed: Nicht abonniert
pending: Überprüfung ausstehend
perform_full_suspension: Sperren
- previous_strikes: Vorherige Verstöße
+ previous_strikes: Vorherige Maßnahmen
previous_strikes_description_html:
- one: Dieses Konto hat einen Verstoß.
- other: Dieses Konto hat %{count} Verstöße.
+ one: Gegen dieses Konto wurde eine Maßnahme verhängt.
+ other: Gegen dieses Konto wurden %{count} Maßnahmen verhängt.
promote: Berechtigungen erweitern
protocol: Protokoll
public: Öffentlich
@@ -259,7 +259,7 @@ de:
destroy_user_role_html: "%{name} löschte die Rolle %{target}"
disable_2fa_user_html: "%{name} hat die Zwei-Faktor-Authentisierung für %{target} deaktiviert"
disable_custom_emoji_html: "%{name} deaktivierte das Emoji %{target}"
- disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} deaktiviert"
+ disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentisierung für %{target} deaktiviert"
disable_user_html: "%{name} hat den Zugang für %{target} deaktiviert"
enable_custom_emoji_html: "%{name} aktivierte das Emoji %{target}"
enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert"
@@ -441,7 +441,7 @@ de:
import:
description_html: Du bist dabei, eine Liste von Domains zu importieren, die auf diesem Server gesperrt oder anderweitig eingeschränkt werden. Bitte überprüfe diese Liste sehr sorgfältig, insbesondere dann, wenn du sie nicht selbst erstellt hast.
existing_relationships_warning: Bestehende Folgebeziehungen
- private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, kannst du diesem Eintrag eine private Notiz hinzufügen: %{comment}'
+ private_comment_description_html: 'Damit du später nachvollziehen kannst, woher die importierten Sperren stammen, werden sie mit diesem privaten Kommentar erstellt: %{comment}'
private_comment_template: Importiert von %{source} am %{date}
title: Domains importieren
invalid_domain_block: 'Ein oder mehrere Domainsperren wurden wegen folgenden Fehler(n) übersprungen: %{error}'
@@ -452,19 +452,19 @@ de:
description_html: "Folgeempfehlungen helfen neuen Nutzer*innen, interessante Inhalte schnell zu finden. Wenn ein*e Nutzer*in noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erhalten, werden stattdessen diese Profile verwendet. Sie werden täglich, basierend auf einer Mischung aus am meisten interagierenden Konten und jenen mit den meisten Followern für eine bestimmte Sprache, neu berechnet."
language: Für Sprache
status: Status
- suppress: Folgeempfehlungen unterdrücken
+ suppress: Folgeempfehlung unterbinden
suppressed: Unterdrückt
title: Folgeempfehlungen
- unsuppress: Nicht mehr unterdrücken
+ unsuppress: Folgeempfehlung nicht mehr unterbinden
instances:
availability:
description_html:
- one: Wenn die Zustellung an die Domain seit %{count} Tag erfolglos bleibt, werden keine weiteren Auslieferungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
- other: Wenn die Zustellung an die Domain seit %{count} Tagen erfolglos bleibt, werden keine weiteren Zustellungsversuche unternommen, es sei denn, eine Zustellung von dieser Domain wird empfangen.
+ one: Wenn die Zustellung an die Domain %{count} Tag lang erfolglos bleibt, werden keine weiteren Zustellversuche unternommen, bis eine Zustellung von der Domain empfangen wird.
+ other: Wenn die Zustellung an die Domain an %{count} unterschiedlichen Tagen erfolglos bleibt, werden keine weiteren Zustellversuche unternommen, bis eine Zustellung von der Domain empfangen wird.
failure_threshold_reached: Fehlschlag-Schwelle am %{date} erreicht.
failures_recorded:
- one: Fehlgeschlagener Versuch am %{count}. Tag.
- other: Fehlgeschlagener Versuch am %{count}. Tag.
+ one: Fehlgeschlagener Versuch an %{count} Tag.
+ other: Fehlgeschlagene Versuche an %{count} unterschiedlichen Tagen.
no_failures_recorded: Keine Fehler bei der Aufzeichnung.
title: Verfügbarkeit
warning: Der letzte Versuch, sich mit diesem Server zu verbinden, war nicht erfolgreich
@@ -472,7 +472,7 @@ de:
back_to_limited: Stummgeschaltet
back_to_warning: Warnung
by_domain: Domain
- confirm_purge: Bist du dir sicher, dass du die Daten für diese Domain für immer löschen möchtest?
+ confirm_purge: Bist du dir sicher, dass du die Daten von dieser Domain dauerhaft löschen möchtest?
content_policies:
comment: Interne Notiz
description_html: Du kannst Inhaltsrichtlinien definieren, die auf alle Konten dieser Domain und einer ihrer Subdomains angewendet werden.
@@ -503,7 +503,7 @@ de:
unavailable: Nicht verfügbar
delivery_available: Zustellung funktioniert
delivery_error_days: Tage der fehlerhaften Zustellung
- delivery_error_hint: Wenn eine Auslieferung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert.
+ delivery_error_hint: Wenn eine Zustellung %{count} Tage lang nicht möglich ist, wird sie automatisch als unzustellbar markiert.
destroyed_msg: Daten von %{domain} sind nun in der Warteschlange für die bevorstehende Löschung.
empty: Keine Domains gefunden.
known_accounts:
@@ -556,7 +556,7 @@ de:
disable: Ausschalten
disabled: Ausgeschaltet
enable: Einschalten
- enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden.
+ enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relais abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden.
enabled: Eingeschaltet
inbox_url: Relay-URL
pending: Warte auf Zustimmung des Relays
@@ -566,8 +566,8 @@ de:
status: Status
title: Relais
report_notes:
- created_msg: Meldungs-Kommentar erfolgreich erstellt!
- destroyed_msg: Meldungs-Kommentar erfolgreich gelöscht!
+ created_msg: Notiz zur Meldung erfolgreich erstellt!
+ destroyed_msg: Notiz zur Meldung erfolgreich entfernt!
reports:
account:
notes:
@@ -576,27 +576,27 @@ de:
action_log: Protokoll
action_taken_by: Maßnahme ergriffen von
actions:
- delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen.
+ delete_description_html: Der gemeldete Beitrag wird gelöscht und die ergriffene Maßnahme wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Kontos zu helfen.
mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden mit einer Inhaltswarnung versehen und ein Verstoß wird vermerkt, um bei zukünftigen Verstößen desselben Kontos besser reagieren zu können.
other_description_html: Weitere Optionen zur Steuerung des Kontoverhaltens und zur Anpassung der Kommunikation mit dem gemeldeten Konto.
- resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen.
+ resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen und der Vorgang wird nicht aufgezeichnet – die Meldung wird hiermit geschlossen.
silence_description_html: Das Konto wird nur für diejenigen sichtbar sein, die dem Konto bereits folgen oder es manuell suchen, was die Reichweite stark einschränkt. Kann jederzeit rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen.
suspend_description_html: Das Konto und alle Inhalte werden unzugänglich und ggf. gelöscht. Eine Interaktion mit dem Konto wird unmöglich. Dies kann innerhalb von 30 Tagen rückgängig gemacht werden. Alle Meldungen zu diesem Konto werden geschlossen.
actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam-Kategorie ausgewählt ist.
actions_description_remote_html: Entscheide, welche Maßnahmen du zur Lösung dieser Meldungen ergreifen möchtest. Dies wirkt sich lediglich darauf aus, wie dein Server mit diesem externen Konto kommuniziert und dessen Inhalt handhabt.
- add_to_report: Mehr zur Meldung hinzufügen
+ add_to_report: Meldung ergänzen
are_you_sure: Bist du dir sicher?
assign_to_self: Mir zuweisen
assigned: Zugewiesene*r Moderator*in
by_target_domain: Domain des gemeldeten Kontos
cancel: Abbrechen
category: Kategorie
- category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert
+ category_description_html: Der Grund, weshalb dieses Konto und/oder der Inhalt gemeldet worden ist, wird in der Kommunikation mit dem gemeldeten Konto erwähnt
comment:
none: Kein
- comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:'
+ comment_description_html: "%{name} ergänzte die Meldung um folgende Hinweis:"
confirm: Bestätigen
- confirm_action: Moderationsaktion gegen @%{acct} bestätigen
+ confirm_action: Maßnahme gegen @%{acct} bestätigen
created_at: Gemeldet
delete_and_resolve: Beiträge löschen
forwarded: Weitergeleitet
@@ -617,12 +617,12 @@ de:
quick_actions_description_html: 'Eine schnelle Aktion ausführen oder nach unten rolle, um gemeldete Inhalte zu sehen:'
remote_user_placeholder: das externe Profil von %{instance}
reopen: Meldung wieder eröffnen
- report: 'Meldung #%{id}'
+ report: "%{id}. Meldung"
reported_account: Gemeldetes Konto
reported_by: Gemeldet von
resolved: Gelöst
- resolved_msg: Meldung erfolgreich gelöst!
- skip_to_actions: Zu Aktionen springen
+ resolved_msg: Meldung erfolgreich geklärt!
+ skip_to_actions: Zur Maßnahme springen
status: Status
statuses: Gemeldeter Inhalt
statuses_description_html: Störende Inhalte werden in der Kommunikation mit dem gemeldeten Konto zitiert
@@ -646,7 +646,7 @@ de:
warning_placeholder: Optional zusätzliche Begründung für die Moderationsmaßnahme.
target_origin: Domain des gemeldeten Kontos
title: Meldungen
- unassign: Zuweisung entfernen
+ unassign: Zuweisung aufheben
unknown_action_msg: 'Unbekannte Aktion: %{action}'
unresolved: Ungelöst
updated_at: Aktualisiert
@@ -742,7 +742,7 @@ de:
preamble: Das Auffinden interessanter Inhalte ist wichtig, um neue Nutzer einzubinden, die Mastodon noch nicht kennen. Bestimme, wie verschiedene Suchfunktionen auf deinem Server funktionieren.
profile_directory: Profilverzeichnis
public_timelines: Öffentliche Timeline
- publish_discovered_servers: Veröffentliche bekannte Server
+ publish_discovered_servers: Entdeckte Server offenlegen
publish_statistics: Statistiken veröffentlichen
title: Entdecken
trends: Trends
@@ -789,11 +789,11 @@ de:
with_media: Mit Medien
strikes:
actions:
- delete_statuses: "%{name} hat die Beiträge von %{target} entfernt"
+ delete_statuses: "%{name} entfernte die Beiträge von %{target}"
disable: "%{name} fror das Konto von %{target} ein"
mark_statuses_as_sensitive: "%{name} hat die Beiträge von %{target} mit einer Inhaltswarnung versehen"
- none: "%{name} hat eine Warnung an %{target} gesendet"
- sensitive: "%{name} hat das Profil von %{target} mit einer Inhaltswarnung versehen"
+ none: "%{name} schickte eine Warnung an %{target}"
+ sensitive: "%{name} versah das Konto von %{target} mit einer Inhaltswarnung"
silence: "%{name} schaltete das Konto von %{target} stumm"
suspend: "%{name} sperrte das Konto von %{target}"
appeal_approved: Einspruch angenommen
@@ -939,7 +939,7 @@ de:
subject: Neue Trends zur Überprüfung auf %{instance}
aliases:
add_new: Alias erstellen
- created_msg: Ein neuer Alias wurde erfolgreich erstellt. Du kannst nun den Wechsel vom alten Konto starten.
+ created_msg: Neuer Alias erfolgreich erstellt. Du kannst nun den Umzug vom alten zum neuen Konto starten.
deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich.
empty: Du hast keine Aliase.
hint_html: Wenn du von einem Konto zu einem anderen Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird, bevor du deine Follower vom alten Account zu diesen migrierst. Die Aktion allein ist harmlos und widerruflich. Die Kontenmigration wird vom alten Konto aus eingeleitet.
@@ -975,7 +975,7 @@ de:
apply_for_account: Konto beantragen
change_password: Passwort
confirmations:
- wrong_email_hint: Wenn diese E-Mail-Adresse nicht korrekt ist, kann sie in den Kontoeinstellungen geändert werden.
+ wrong_email_hint: Sollte diese E-Mail-Adresse nicht korrekt sein, kannst du sie in den Kontoeinstellungen ändern.
delete_account: Konto löschen
delete_account_html: Falls du dein Konto endgültig löschen möchtest, kannst du das hier vornehmen. Du musst dies zusätzlich bestätigen.
description:
@@ -983,10 +983,10 @@ de:
prefix_sign_up: Registriere dich noch heute bei Mastodon!
suffix: Mit einem Konto kannst du Profilen folgen, neue Beiträge veröffentlichen, Nachrichten mit Personen von jedem Mastodon-Server austauschen und vieles mehr!
didnt_get_confirmation: Keine Bestätigungsanweisungen erhalten?
- dont_have_your_security_key: Hast du keinen Sicherheitsschlüssel?
+ dont_have_your_security_key: Du hast keinen Sicherheitsschlüssel?
forgot_password: Passwort vergessen?
invalid_reset_password_token: Das Token zum Zurücksetzen des Passworts ist ungültig oder abgelaufen. Bitte fordere ein neues an.
- link_to_otp: Gib einen Zwei-Faktor-Code von deinem Handy oder einen Wiederherstellungscode ein
+ link_to_otp: Gib einen Zwei-Faktor-Code von deinem Smartphone oder einen Wiederherstellungscode ein
link_to_webauth: Verwende dein Sicherheitsschlüsselgerät
log_in_with: Anmelden mit
login: Anmelden
@@ -1017,7 +1017,7 @@ de:
preamble_html: Melde dich mit deinen Zugangsdaten für %{domain} an. Solltest du dein Konto auf einem anderen Server registriert haben, ist eine Anmeldung hier nicht möglich.
title: Bei %{domain} anmelden
sign_up:
- preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird.
+ preamble: Mit einem Konto auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet ist.
title: Okay, lass uns mit %{domain} anfangen.
status:
account_status: Kontostatus
@@ -1030,7 +1030,7 @@ de:
use_security_key: Sicherheitsschlüssel verwenden
authorize_follow:
already_following: Du folgst diesem Konto bereits
- already_requested: Du hast bereits eine Anfrage zum Folgen diesen Accounts gestellt
+ already_requested: Du hast bereits eine Folgeanfrage an dieses Konto gestellt
error: Bedauerlicherweise konnte das externe Konto nicht geladen werden
follow: Folgen
follow_request: 'Du hast eine Folgeanfrage gestellt an:'
@@ -1038,7 +1038,7 @@ de:
post_follow:
close: Oder du schließt einfach dieses Fenster.
return: Benutzerprofil anzeigen
- web: In der Benutzeroberfläche öffnen
+ web: Im Webinterface öffnen
title: "%{acct} folgen"
challenge:
confirm: Fortfahren
@@ -1052,21 +1052,21 @@ de:
date:
formats:
default: "%d. %b %Y"
- with_month_name: "%B %d, %Y"
+ with_month_name: "%d. %B %Y"
datetime:
distance_in_words:
- about_x_hours: "%{count} h"
+ about_x_hours: "%{count} Std."
about_x_months: "%{count} Mon."
- about_x_years: "%{count} J"
- almost_x_years: "%{count} J"
+ about_x_years: "%{count} J."
+ almost_x_years: "%{count} J."
half_a_minute: Gerade eben
- less_than_x_minutes: "%{count} Min"
+ less_than_x_minutes: "%{count} Min."
less_than_x_seconds: Gerade eben
- over_x_years: "%{count}J"
- x_days: "%{count}T"
- x_minutes: "%{count}m"
- x_months: "%{count}mo"
- x_seconds: "%{count}s"
+ over_x_years: "%{count} J."
+ x_days: "%{count} T."
+ x_minutes: "%{count} Min."
+ x_months: "%{count} Mon."
+ x_seconds: "%{count} Sek."
deletes:
challenge_not_passed: Die eingegebenen Informationen waren nicht korrekt
confirm_password: Gib dein derzeitiges Passwort ein, um deine Identität zu bestätigen
@@ -1075,18 +1075,18 @@ de:
success_msg: Dein Konto wurde erfolgreich gelöscht
warning:
before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:'
- caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen
+ caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können fortbestehen
data_removal: Deine Beiträge und alle anderen Daten werden für immer entfernt
email_change_html: Du kannst deine E-Mail-Adresse ändern, ohne dein Konto zu löschen
- email_contact_html: Wenn die Bestätigungs-E-Mail immer noch nicht ankam, kannst du eine E-Mail an %{email} senden, um weitere Hilfe zu erhalten
+ email_contact_html: Sollte sie noch immer nicht angekommen sein, kannst du eine E-Mail an %{email} schicken, um weitere Hilfe zu erhalten
email_reconfirmation_html: Wenn du die Bestätigungs-E-Mail nicht erhalten hast, kannst du sie erneut anfordern
- irreversible: Du kannst dein Konto nicht mehr wiederherstellen oder reaktivieren
+ irreversible: Du wirst dein Konto nicht mehr wiederherstellen oder reaktivieren können
more_details_html: Weitere Details findest du in der Datenschutzerklärung.
username_available: Dein Profilname wird wieder verfügbar sein
username_unavailable: Dein Profilname wird auch nach dem Löschen für andere nicht zugänglich sein
disputes:
strikes:
- action_taken: Maßnahme ergriffen
+ action_taken: Maßnahme
appeal: Einspruch
appeal_approved: Dieser Verstoß wurde erfolgreich angefochten und ist nicht mehr gültig
appeal_rejected: Der Einspruch wurde abgelehnt
@@ -1097,28 +1097,28 @@ de:
approve_appeal: Einspruch annehmen
associated_report: Zugehöriger Bericht
created_at: Datum
- description_html: Dies sind Aktionen gegen dein Konto und Warnungen, die von den Mitarbeitern von %{instance} an dich gesendet wurden.
+ description_html: Dies sind Maßnahmen, die gegen dein Konto ergriffen worden sind, und Warnungen, die dir die Mitarbeiter*innen von %{instance} geschickt haben.
recipient: Adressiert an
reject_appeal: Einspruch ablehnen
- status: 'Beitrag #%{id}'
+ status: "%{id}. Beitrag"
status_removed: Beitrag bereits vom System entfernt
title: "%{action} vom %{date}"
title_actions:
delete_statuses: Beitragsentfernung
- disable: Einfrieren des Kontos
+ disable: Konto einfrieren
mark_statuses_as_sensitive: Beiträge mit einer Inhaltswarnung versehen
- none: Warnung
+ none: Verwarnung
sensitive: Profil mit einer Inhaltswarnung versehen
silence: Kontobeschränkung
suspend: Kontosperre
your_appeal_approved: Dein Einspruch wurde angenommen
- your_appeal_pending: Du hast Einspruch eingelegt
+ your_appeal_pending: Du hast Einspruch erhoben
your_appeal_rejected: Dein Einspruch wurde abgelehnt
domain_validator:
- invalid_domain: ist kein gültiger Domain-Name
+ invalid_domain: ist keine gültige Domain
errors:
- '400': Die Anfrage, die du gesendet hast, war ungültig oder fehlerhaft.
- '403': Dir fehlt die Befugnis, diese Seite sehen zu können.
+ '400': Die Anfrage, die du gestellt hast, war ungültig oder fehlerhaft.
+ '403': Dir fehlt die Berechtigung, diese Seite aufzurufen.
'404': Die Seite, nach der du gesucht hast, wurde nicht gefunden.
'406': Diese Seite ist im gewünschten Format nicht verfügbar.
'410': Die Seite, nach der du gesucht hast, existiert hier nicht mehr.
@@ -1163,12 +1163,12 @@ de:
thread: Unterhaltungen
edit:
add_keyword: Schlagwort hinzufügen
- keywords: Schlagworte
+ keywords: Schlagwörter
statuses: Individuelle Beiträge
- statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen..
+ statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten aufgeführten Schlagwörtern übereinstimmen. Beiträge überprüfen oder aus dem Filter entfernen.
title: Filter bearbeiten
errors:
- deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie auf mehr als ein Filterschlüsselwort angewendet werden. Verwende eine neuere Anwendung oder das Webinterface.
+ deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie für mehr als ein Filterschlagwort gelten. Verwende eine aktuellere Anwendung oder das Webinterface.
invalid_context: Ungültiger oder fehlender Kontext übergeben
index:
contexts: Filter in %{contexts}
@@ -1177,8 +1177,8 @@ de:
expires_in: Läuft ab in %{distance}
expires_on: Läuft am %{date} ab
keywords:
- one: "%{count} Schlagworte"
- other: "%{count} Stichwörter"
+ one: "%{count} Schlagwort"
+ other: "%{count} Schlagwörter"
statuses:
one: "%{count} Beitrag"
other: "%{count} Beiträge"
@@ -1268,7 +1268,7 @@ de:
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.
- empty: Kein Authentifizierungsverlauf verfügbar
+ empty: Kein Authentisierungsverlauf verfügbar
failed_sign_in_html: Fehler beim Anmeldeversuch mit %{method} von %{ip} (%{browser})
successful_sign_in_html: Erfolgreiche Anmeldung mit %{method} von %{ip} (%{browser})
title: Authentifizierungsverlauf
@@ -1294,20 +1294,20 @@ de:
moved_msg: Dein altes Profil wird jetzt zum neuen Account %{acct} weitergeleitet und deine Follower werden übertragen.
not_redirecting: Dein Konto wird derzeit nicht auf ein anderes Konto weitergeleitet.
on_cooldown: Du hast dein Konto vor kurzem migriert. Diese Funktion wird in %{count} Tagen wieder verfügbar sein.
- past_migrations: Vorherige Migrationen
+ past_migrations: Vorherige Umzüge
proceed_with_move: Follower übertragen
redirected_msg: Dein Konto wird nun zu %{acct} weitergeleitet.
redirecting_to: Dein Konto wird zu %{acct} weitergeleitet.
set_redirect: Umleitung einrichten
warning:
- backreference_required: Das neue Konto muss zuerst so konfiguriert werden, dass es auf das alte Konto referenziert
+ backreference_required: Das neue Konto muss zuerst auf das alte Konto verweisen
before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:'
- cooldown: Nach dem Migrieren wird es eine Abklingzeit geben, in der du das Konto nicht noch einmal migrieren kannst
- disabled_account: Dein aktuelles Konto wird nachher nicht vollständig nutzbar sein. Du hast jedoch Zugriff auf den Datenexport sowie die Reaktivierung.
- followers: Alle Follower werden vom aktuellen zum neuen Konto übertragen
- only_redirect_html: Alternativ kannst du nur eine Weiterleitung auf dein Profil erstellen.
- other_data: Keine anderen Daten werden automatisch verschoben
- redirect: Das Profil deines aktuellen Kontos wird mit einer Weiterleitungsnachricht versehen und von Suchanfragen ausgeschlossen
+ cooldown: Nach dem Umzug wird es eine Weile dauern, bis du erneut umziehen darfst
+ disabled_account: Dein altes Konto ist nur noch eingeschränkt nutzbar. Du kannst jedoch deine Daten exportieren und das Konto wieder reaktivieren.
+ followers: Alle Follower werden vom alten zum neuen Konto übertragen
+ only_redirect_html: Alternativ kannst du auch nur eine Weiterleitung zu deinem neuen Profil einrichten, ohne die Follower zu übertragen.
+ other_data: Keine anderen Daten werden automatisch zum neuen Konto übertragen
+ redirect: Dein altes Konto wird einen Hinweis erhalten, dass Du umgezogen bist. Außerdem wird das Profil von Suchanfragen ausgeschlossen
moderation:
title: Moderation
move_handler:
@@ -1331,7 +1331,7 @@ de:
subject: "%{name} folgt dir jetzt"
title: Neuer Follower
follow_request:
- action: Verwalte Folge-Anfragen
+ action: Folgeanfragen verwalten
body: "%{name} möchte dir folgen"
subject: 'Ausstehende Folgeanfragen: %{name}'
title: Neue Folgeanfrage
@@ -1362,13 +1362,13 @@ de:
billion: Mrd
million: Mio
quadrillion: Q
- thousand: Tsd
+ thousand: Tsd.
trillion: T
otp_authentication:
code_hint: Gib den Code ein, den deine 2FA- bzw. TOTP-App generiert hat, um den Vorgang zu bestätigen
description_html: Wenn du die Zwei-Faktor-Authentisierung (2FA) mit einer Authentifizierungs-App deines Smartphones aktivierst, benötigst du neben dem regulären Passwort zusätzlich auch den zeitbasierten Code der 2FA-App, um dich anmelden zu können.
enable: Aktivieren
- instructions_html: "Scanne diesen QR-Code mit einer TOTP-App (wie dem Google Authenticator). Die 2FA-App generiert dann zeitbasierte Codes, die du beim Login zusätzlich zum regulären Passwort eingeben musst."
+ instructions_html: "Scanne diesen QR-Code mit einer beliebigen Authentisierungs-App (TOTP). Diese App generiert dann zeitbasierte Codes, die du beim Anmelden zusätzlich zum regulären Passwort eingeben musst."
manual_instructions: Wenn du den QR-Code nicht einscannen kannst, sondern die Zahlenfolge manuell eingeben musst, ist hier der geheime Token für deine 2FA-App.
setup: Einrichten
wrong_code: Der eingegebene Code ist ungültig! Laufen Serverzeit und Gerätezeit synchron?
@@ -1405,33 +1405,34 @@ de:
confirm_remove_selected_followers: Bist du sicher, dass du den ausgewählten Konten entfolgen möchtest?
confirm_remove_selected_follows: Bist du sicher, dass du den ausgewählten Konten entfolgen möchtest?
dormant: Inaktiv
+ follow_failure: Einigen der ausgewählten Konten konnte nicht gefolgt werden.
follow_selected_followers: Ausgewählten Followern folgen
followers: Follower
following: Folge ich
invited: Eingeladen
last_active: Zuletzt aktiv
- most_recent: Neuste
+ most_recent: Neueste
moved: Umgezogen
mutual: Gegenseitig
primary: Primär
relationship: Beziehung
- remove_selected_domains: Entferne alle Follower von den ausgewählten Domains
- remove_selected_followers: Entferne ausgewählte Follower
- remove_selected_follows: Ausgewählten Benutzer*innen entfolgen
+ remove_selected_domains: Alle Follower von den ausgewählten Domains entfernen
+ remove_selected_followers: Ausgewählten Followern entfolgen
+ remove_selected_follows: Ausgewählten Profilen entfolgen
status: Kontostatus
remote_follow:
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
reports:
errors:
- invalid_rules: verweist nicht auf gültige Regeln
+ invalid_rules: verweist nicht auf gültige Serverregeln
rss:
content_warning: 'Inhaltswarnung:'
descriptions:
account: Öffentliche Beiträge von @%{acct}
tag: 'Öffentliche Beiträge mit dem Hashtag #%{hashtag}'
scheduled_statuses:
- over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht
- over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht
+ over_daily_limit: Du hast das heutige Limit für geplante Beiträge, das %{limit} beträgt, erreicht
+ over_total_limit: Du hast das Limit für geplante Beiträge, das %{limit} beträgt, erreicht
too_soon: Das geplante Datum muss in der Zukunft liegen
sessions:
activity: Letzte Aktivität
@@ -1444,6 +1445,7 @@ de:
electron: Electron
firefox: Firefox
generic: Unbekannter Browser
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ de:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Unbekannter Browser
weibo: Weibo
current_session: Aktuelle Sitzung
description: "%{browser} auf %{platform}"
@@ -1465,9 +1468,10 @@ de:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: unbekanntes Betriebssystem
+ unknown_platform: Unbekannte Plattform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
@@ -1493,9 +1497,9 @@ de:
notifications: Benachrichtigungen
preferences: Einstellungen
profile: Profil
- relationships: Folge ich und Follower
+ relationships: Follower und Folge ich
statuses_cleanup: Automatische Löschung
- strikes: Moderieren von Verstößen
+ strikes: Maßnahmen
two_factor_authentication: Zwei-Faktor-Authentisierung (2FA)
webauthn_authentication: Sicherheitsschlüssel
statuses:
@@ -1519,8 +1523,8 @@ de:
edited_at_html: 'Bearbeitet: %{date}'
errors:
in_reply_not_found: Der Beitrag, auf den du antworten möchtest, scheint nicht zu existieren.
- open_in_web: Im Web öffnen
- over_character_limit: Zeichenlimit von %{max} überschritten
+ open_in_web: Im Webinterface öffnen
+ over_character_limit: Begrenzung von %{max} Zeichen überschritten
pin_errors:
direct: Beiträge, die nur für erwähnte Profile sichtbar sind, können nicht angeheftet werden
limit: Du hast bereits die maximale Anzahl an Beiträgen angeheftet
@@ -1580,7 +1584,7 @@ de:
'7889238': 3 Monate
min_age_label: Altersgrenze
min_favs: Behalte Beiträge, die häufiger favorisiert wurden als …
- min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge, unabhängig der Anzahl an Favorisierungen zu löschen
+ min_favs_hint: Löscht keine Beiträge, die mindestens so oft favorisiert worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an Favoriten – zu löschen
min_reblogs: Behalte Beiträge, die öfter geteilt wurden als
min_reblogs_hint: Löscht keine Beiträge, die mindestens so oft geteilt worden sind. Lass das Feld leer, um alle Beiträge – unabhängig der Anzahl an geteilten Beiträgen – zu löschen
stream_entries:
@@ -1609,12 +1613,12 @@ de:
enabled: Zwei-Faktor-Authentisierung (2FA) ist aktiviert
enabled_success: Zwei-Faktor-Authentisierung (2FA) erfolgreich aktiviert
generate_recovery_codes: Wiederherstellungscodes erstellen
- lost_recovery_codes: Wiederherstellungscodes erlauben 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.
+ lost_recovery_codes: Wiederherstellungscodes ermöglichen es dir, wieder Zugang zu deinem Konto zu erlangen, falls du keinen Zugriff mehr auf dein Smartphone oder zum Sicherheitsschlüssel hast. Solltest du deine Wiederherstellungscodes verloren haben, kannst du sie hier neu generieren. Die alten Wiederherstellungscodes werden dann ungültig.
methods: Methoden der Zwei-Faktor-Authentisierung (2FA)
otp: Authentifizierungs-App
recovery_codes: Wiederherstellungscodes sichern
recovery_codes_regenerated: Wiederherstellungscodes erfolgreich neu erstellt
- recovery_instructions_html: Wenn du den Zugang zu deinem Telefon verlieren solltest, kannst du einen untenstehenden Wiederherstellungscode benutzen, um wieder auf dein Konto zugreifen zu können. Bewahre die Wiederherstellungscodes gut auf. Du könntest sie beispielsweise ausdrucken und bei deinen restlichen wichtigen Dokumenten aufbewahren.
+ recovery_instructions_html: Falls du jemals den Zugang zu deinem Smartphone verlierst, kannst du einen der unten aufgeführten Wiederherstellungscodes verwenden, um wieder Zugang zu deinem Konto zu erhalten. Bewahre die Wiederherstellungscodes sicher auf. Du kannst sie zum Beispiel ausdrucken und zusammen mit anderen wichtigen Dokumenten aufbewahren.
webauthn: Sicherheitsschlüssel
user_mailer:
appeal_approved:
@@ -1642,7 +1646,7 @@ de:
appeal_description: Wenn du glaubst, dass es sich um einen Fehler handelt, kannst du einen Einspruch an die Administration von %{instance} senden.
categories:
spam: Spam
- violation: Inhalt verstößt gegen die folgenden Gemeinschaftsrichtlinien
+ violation: Inhalt verstößt gegen die folgenden Serverregeln
explanation:
delete_statuses: Einige deiner Beiträge wurden als Verstoß gegen eine oder mehrere Gemeinschaftsrichtlinien erkannt und von den Moderator*innen von %{instance} entfernt.
disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und andere Daten bleiben unversehrt. Du kannst eine Sicherung deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen.
@@ -1692,12 +1696,12 @@ de:
create:
error: Beim Hinzufügen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut.
success: Dein Sicherheitsschlüssel wurde erfolgreich hinzugefügt.
- delete: Löschen
- delete_confirmation: Bist du dir sicher, dass du diesen Sicherheitsschlüssel löschen möchtest?
- description_html: Wenn du die Authentifizierung mit Sicherheitsschlüssel aktivierst, musst du einen deiner Sicherheitsschlüssel verwenden, um dich anmelden zu können.
+ delete: Entfernen
+ delete_confirmation: Möchtest du diesen Sicherheitsschlüssel wirklich entfernen?
+ description_html: Wenn du die Authentisierung mit Sicherheitsschlüssel aktivierst, musst du dich mit einem deiner Sicherheitsschlüssel anmelden.
destroy:
- error: Es gab ein Problem beim Löschen deines Sicherheitsschlüssels. Bitte versuche es erneut.
- success: Dein Sicherheitsschlüssel wurde erfolgreich gelöscht.
+ error: Beim Entfernen des Sicherheitsschlüssels ist ein Fehler aufgetreten. Bitte versuche es erneut.
+ success: Dein Sicherheitsschlüssel wurde erfolgreich entfernt.
invalid_credential: Ungültiger Sicherheitsschlüssel
nickname_hint: Gib den Spitznamen deines neuen Sicherheitsschlüssels ein
not_enabled: Du hast WebAuthn noch nicht aktiviert
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index c4d41aa620..0c25f21b6c 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -21,7 +21,7 @@ de:
action: E-Mail-Adresse verifizieren
action_with_app: Bestätigen – und dann zur App %{app} zurückkehren
explanation: Du hast mit dieser E-Mail-Adresse ein Konto auf %{host} erstellt. Du bist nur noch einen Klick von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
- explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
+ explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mail-Adresse beworben. Sobald du deine E-Mail-Adresse bestätigt hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt – von dir ist keine weitere Handlung notwendig. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte beachte auch die Serverregeln und unsere Datenschutzerklärung.
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
title: E-Mail-Adresse verifizieren
@@ -67,15 +67,15 @@ de:
title: Ein neuer Sicherheitsschlüssel wurde hinzugefügt
deleted:
explanation: Der folgende Sicherheitsschlüssel wurde aus deinem Konto gelöscht
- subject: 'Mastodon: Sicherheitsschlüssel gelöscht'
- title: Einer deiner Sicherheitsschlüssel wurde gelöscht
+ subject: 'Mastodon: Sicherheitsschlüssel entfernt'
+ title: Einer deiner Sicherheitsschlüssel wurde entfernt
webauthn_disabled:
- explanation: Die Authentifizierung mit Sicherheitsschlüssel wurde für dein Konto deaktiviert. Der Login ist nun nur mit dem Token möglich, der von der eingerichteten TOTP-App generiert wird.
- subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel deaktiviert'
+ explanation: Die Authentisierung mit Sicherheitsschlüsseln wurde für dein Konto deaktiviert. Die Anmeldung ist jetzt nur noch mit dem Token möglich, der von der eingerichteten TOTP-App generiert wird.
+ subject: 'Mastodon: Authentisierung mit Sicherheitsschlüsseln deaktiviert'
title: Sicherheitsschlüssel deaktiviert
webauthn_enabled:
- explanation: Die Authentifizierung mit einem Sicherheitsschlüssel wurde für dein Konto aktiviert. Dein Sicherheitsschlüssel kann nun für die Anmeldung verwendet werden.
- subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel aktiviert'
+ explanation: Die Authentisierung mit Sicherheitsschlüssel wurde für dein Konto aktiviert. Dein Sicherheitsschlüssel kann nun für die Anmeldung verwendet werden.
+ subject: 'Mastodon: Authentisierung mit Sicherheitsschlüssel aktiviert'
title: Sicherheitsschlüssel aktiviert
omniauth_callbacks:
failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil „%{reason}“.
@@ -111,5 +111,5 @@ de:
not_found: nicht gefunden
not_locked: ist nicht gesperrt
not_saved:
- one: '1 Fehler hat verhindert, dass %{resource} gespeichert wurde:'
- other: "%{count} Fehler haben verhindert, dass %{resource} gespeichert wurde:"
+ one: '1 Fehler verhinderte, dass %{resource} gespeichert wurde:'
+ other: "%{count} Fehler verhinderten, dass %{resource} gespeichert wurde:"
diff --git a/config/locales/devise.et.yml b/config/locales/devise.et.yml
index c15801f4cc..da1cc989d2 100644
--- a/config/locales/devise.et.yml
+++ b/config/locales/devise.et.yml
@@ -78,7 +78,7 @@ et:
subject: 'Mastodon: turvavõtme autentimine sisse lülitatud'
title: Turvavõtmed on sisse lülitatud
omniauth_callbacks:
- failure: Ei saanud teid tuvastada %{kind} kaudu, kuna "%{reason}".
+ failure: Ei saanud sind tuvastada %{kind} kaudu, kuna "%{reason}".
success: Tuvastamine %{kind} konto järgi õnnestus.
passwords:
no_token: Sellele leheküljele ei pääse tulemata salasõna lähtestamise e-kirjast. Kui tuled salasõna lähtestamise e-kirjast, palun veendu, et kasutasid tervet saadetud URLi.
@@ -87,7 +87,7 @@ et:
updated: Salasõna muutmine õnnestus. Oled nüüd sisse logitud.
updated_not_active: Sinu salasõna muutmine õnnestus.
registrations:
- destroyed: Nägemist! sinu konto sulgemine õnnestus. Me loodame sind varsti taas näha.
+ destroyed: Nägemist! Sinu konto sulgemine õnnestus. Me loodame sind varsti taas näha.
signed_up: Tere tulemast! Sinu konto loomine õnnestus.
signed_up_but_inactive: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto pole veel aktiveeritud.
signed_up_but_locked: Sinu konto loodi edukalt, kuid me ei saanud sind sisse logida, kuna konto on lukustatud.
diff --git a/config/locales/devise.my.yml b/config/locales/devise.my.yml
index 4a5500aed4..fd000223a9 100644
--- a/config/locales/devise.my.yml
+++ b/config/locales/devise.my.yml
@@ -7,7 +7,7 @@ my:
send_paranoid_instructions: အကယ်၍ သင့်အီးမေးလ်လိပ်စာသည် ကျွန်ုပ်တို့၏ဒေတာဘေ့စ်တွင် ရှိနေပါက မိနစ်အနည်းငယ်အတွင်း သင့်အီးမေးလ်လိပ်စာကို အတည်ပြုရန်အတွက် ညွှန်ကြားချက်များပါရှိသည့် အီးမေးလ်တစ်စောင်ကို သင်ရရှိမည်ဖြစ်ပါသည်။ ဤအီးမေးလ်ကို လက်ခံမရရှိပါက သင်၏ Spam ဖိုင်ကို စစ်ဆေးပါ။
failure:
already_authenticated: သင်ဝင်ရောက်ပြီးဖြစ်သည်။
- inactive: သင့်အကောင့်မှာ အတည်မဖြစ်သေးပါ။
+ inactive: သင်၏အကောင့်သည်အသက်မဝင်သေးပါ
invalid: မှားယွင်းသော %{authentication_keys} သို့မဟုတ် စကားဝှက် ဖြစ်ပါသည်။
last_attempt: သင့်အကောင့်ကို လော့ခ်မချမီ နောက်ထပ်ကြိုးစားမှုတစ်ခု ရှိသေးသည်။
locked: သင့်အကောင့်ကို လော့ခ်ချထားသည်။
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index 00c4ad678e..3b69cb0556 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -3,7 +3,7 @@ de:
activerecord:
attributes:
doorkeeper/application:
- name: Name der Anwendung
+ name: Anwendungsname
redirect_uri: Weiterleitungs-URI
scopes: Befugnisse
website: Website der Anwendung
@@ -60,7 +60,7 @@ de:
error:
title: Ein Fehler ist aufgetreten
new:
- prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es ist eine Anwendung von Drittanbietern. Wenn du ihr nicht vertraust, dann solltest du sie nicht autorisieren."
+ prompt_html: "%{client_name} möchte auf dein Konto zugreifen. Es handelt sich um eine Drittanbieter-Software. Wenn du der Anwendung nicht vertraust, solltest du ihr keinen Zugriff auf dein Konto geben."
review_permissions: Berechtigungen überprüfen
title: Autorisierung erforderlich
show:
@@ -82,7 +82,7 @@ de:
messages:
access_denied: Die Anfrage wurde durch Benutzer_in oder Autorisierungs-Server verweigert.
credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist.
- invalid_client: 'Client-Authentifizierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.'
+ invalid_client: 'Client-Authentisierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.'
invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein.
invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig.
invalid_request:
@@ -119,7 +119,7 @@ de:
write: Nur Schreibzugriff
title:
accounts: Konten
- admin/accounts: Verwaltung der Konten
+ admin/accounts: Kontenverwaltung
admin/all: Alle administrativen Funktionen
admin/reports: Verwaltung der Berichte
all: Voller Zugriff auf dein Mastodon-Konto
diff --git a/config/locales/doorkeeper.sr-Latn.yml b/config/locales/doorkeeper.sr-Latn.yml
index 5e46d01240..3dca04d0a4 100644
--- a/config/locales/doorkeeper.sr-Latn.yml
+++ b/config/locales/doorkeeper.sr-Latn.yml
@@ -122,16 +122,18 @@ sr-Latn:
admin/accounts: Administracija naloga
admin/all: Sve funkcije administracije
admin/reports: Administracija prijava
+ all: Potpuni pristup vašem Mastodon nalogu
blocks: Blokirani
bookmarks: Obeleživači
conversations: Razgovori
crypto: End-to-end enkripcija
favourites: Omiljeni
filters: Filteri
+ follow: Praćenja, ignorisanja i blokiranja
follows: Praćeni
lists: Liste
media: Multimedijalni prilozi
- mutes: Utišani
+ mutes: Ignorisani
notifications: Obaveštenja
push: Prosleđena obaveštenja
reports: Prijave
@@ -147,17 +149,22 @@ sr-Latn:
scopes:
admin:read: čitanje svih podataka na serveru
admin:read:accounts: čitanje osetljivih podataka za sve naloge
+ admin:read:canonical_email_blocks: pročitaj osetljive informacije i kanonske imejl blokove
admin:read:domain_allows: pročitaj osetljive informacije za sve dozvole domena
admin:read:domain_blocks: pročitaj osetljive informacije za sve blokove domena
+ admin:read:email_domain_blocks: pročitaj osetljive informacije svih blokova imejl domena
admin:read:ip_blocks: pročitaj osetljive informacije za sve IP blokove
admin:read:reports: čitanje osetljivih podataka svih izveštaja i prijavljenih naloga
admin:write: menjanje svih podataka na serveru
admin:write:accounts: vršenje moderatorskih aktivnosti nad nalozima
+ admin:write:canonical_email_blocks: izvrši moderacijske radnje nad kanonskim imejl blokovima
+ admin:write:domain_allows: izvrši moderacijske radnje nad dozvolama domena
admin:write:domain_blocks: izvrši moderatorske aktivnosti na blokovima domena
+ admin:write:email_domain_blocks: izvrši moderacijske radnje nad blokovima imejl domena
admin:write:ip_blocks: izvrši moderatorske aktivnosti na IP blokovima
admin:write:reports: vršenje moderatorskih aktivnosti nad izveštajima
crypto: korišćenje end-to-end enkripcije
- follow: prati, blokira, odblokira i otprati naloge
+ follow: menja odnose naloga
push: primanje prosleđenih obaveštenja
read: čita podatke Vašeg naloga
read:accounts: pogledaj informacije o nalozima
@@ -167,7 +174,7 @@ sr-Latn:
read:filters: pogledaj svoje filtere
read:follows: pogledaj koga pratiš
read:lists: pogledaj svoje liste
- read:mutes: pogledaj svoje utišane
+ read:mutes: pogledaj ignorisanja
read:notifications: pogledaj svoja obaveštenja
read:reports: pogledaj svoje prijave
read:search: pretraži u svoje ime
@@ -176,13 +183,13 @@ sr-Latn:
write:accounts: izmeni svoj profil
write:blocks: blokiraj naloge i domene
write:bookmarks: obeleži objave
- write:conversations: utišaj i obriši razgovore
+ write:conversations: ignoriši i izbriši razgovore
write:favourites: omiljene objave
write:filters: kreiraj filtere
write:follows: prati korisnike
write:lists: kreiraj liste
write:media: otpremi medijske datoteke
- write:mutes: utišaj korinsike i razgovore
+ write:mutes: ignoriši korisnike i razgovore
write:notifications: obriši svoja obaveštenja
write:reports: prijavi druge korisnike
write:statuses: objavi objave
diff --git a/config/locales/doorkeeper.sr.yml b/config/locales/doorkeeper.sr.yml
index db399b05f6..00287543f3 100644
--- a/config/locales/doorkeeper.sr.yml
+++ b/config/locales/doorkeeper.sr.yml
@@ -149,13 +149,18 @@ sr:
scopes:
admin:read: читање свих података на серверу
admin:read:accounts: читање осетљивих података за све налоге
+ admin:read:canonical_email_blocks: прочитај осетљиве информације и канонске имејл блокове
admin:read:domain_allows: прочитај осетљиве информације за све дозволе домена
admin:read:domain_blocks: прочитај осетљиве информације за све блокове домена
+ admin:read:email_domain_blocks: прочитај осетљиве информације свих блокова имејл домена
admin:read:ip_blocks: прочитај осетљиве информације за све IP блокове
admin:read:reports: читање осетљивих података свих извештаја и пријављених налога
admin:write: мењање свих података на серверу
admin:write:accounts: вршење модераторских активности над налозима
+ admin:write:canonical_email_blocks: изврши модерацијске радње над канонским имејл блоковима
+ admin:write:domain_allows: изврши модерацијске радње над дозволама домена
admin:write:domain_blocks: изврши модераторске активности на блоковима домена
+ admin:write:email_domain_blocks: изврши модерацијске радње над блоковима имејл домена
admin:write:ip_blocks: изврши модераторске активности на IP блоковима
admin:write:reports: вршење модераторских активности над извештајима
crypto: коришћење end-to-end енкрипције
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 3ed8ca4054..c185459b7a 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -25,11 +25,11 @@ el:
admin:
account_actions:
action: Εκτέλεση ενέργειας
- title: Εκτέλεση ενέργειας διαχείρισης στο %{acct}
+ title: Εκτέλεση ενέργειας συντονισμού στον %{acct}
account_moderation_notes:
create: Άφησε σημείωση
- created_msg: Επιτυχής δημιουργία σημειώματος μεσολάβησης!
- destroyed_msg: Επιτυχής καταστροφή σημειώματος μεσολάβησης!
+ created_msg: Επιτυχής δημιουργία σημειώματος συντονισμού!
+ destroyed_msg: Η σημείωση συντονισμού καταστράφηκε επιτυχώς!
accounts:
add_email_domain_block: Εγγραφή τομέα email σε μαύρη λίστα
approve: Έγκριση
@@ -95,8 +95,8 @@ el:
pending: Εκκρεμούν
silenced: Περιορισμένοι
suspended: Σε αναστολή
- title: Μεσολάβηση
- moderation_notes: Σημειώσεις μεσολάβησης
+ title: Συντονισμός
+ moderation_notes: Σημειώσεις συντονισμού
most_recent_activity: Πιο πρόσφατη δραστηριότητα
most_recent_ip: Πιο πρόσφατη IP
no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος
@@ -229,7 +229,7 @@ el:
update_status: Ενημέρωση Κατάστασης
update_user_role: Ενημέρωση ρόλου
actions:
- approve_appeal_html: Ο/Η %{name} ενέκρινε την ένσταση της απόφασης των διαχειριστών από %{target}
+ approve_appeal_html: Ο/Η %{name} ενέκρινε την ένσταση της απόφασης των συντονιστών από %{target}
approve_user_html: "%{name} εγκρίθηκε εγγραφή από %{target}"
assigned_to_self_report_html: Ο/Η %{name} ανάθεσε την καταγγελία %{target} στον εαυτό του/της
change_email_user_html: Ο/Η %{name} άλλαξε τη διεύθυνση email του χρήστη %{target}
@@ -266,7 +266,7 @@ el:
enable_user_html: Ο/Η %{name} ενεργοποίησε τη σύνδεση για τον χρήστη %{target}
memorialize_account_html: O/H %{name} μετέτρεψε τον λογαριασμό του %{target} σε σελίδα μνήμης
promote_user_html: Ο/Η %{name} προβίβασε το χρήστη %{target}
- reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των διαχειριστών από %{target}
+ reject_appeal_html: Ο/Η %{name} απέρριψε την ένσταση της απόφασης των συντονιστών από %{target}
reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}"
remove_avatar_user_html: Ο/Η %{name} αφαίρεσε το αβατάρ του/της %{target}
reopen_report_html: Ο/Η %{name} ξανάνοιξε την αναφορά %{target}
@@ -389,7 +389,7 @@ el:
import: Εισαγωγή
new:
create: Δημιουργία αποκλεισμού
- hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές μεσολάβησης σε αυτούς τους λογαριασμούς.
+ hint: Ο αποκλεισμός τομέα δεν θα αποτρέψει νέες καταχωρίσεις λογαριασμών στην βάση δεδομένων, αλλά θα εφαρμόσει αναδρομικά και αυτόματα συγκεκριμένες πολιτικές συντονισμού σε αυτούς τους λογαριασμούς.
severity:
desc_html: Ο περιορισμός θα κάνει αόρατες τις δημοσιεύσεις ενός λογαριασμού σε όσους δεν τον ακολουθούν. Η αναστολή θα αφαιρέσει όλο το περιεχόμενο, τα πολυμέσα και τα στοιχεία προφίλ ενός λογαριασμού. Χρησιμοποίησε το κανένα αν θέλεις απλά να απορρίψεις τα αρχεία πολυμέσων.
noop: Κανένα
@@ -398,8 +398,10 @@ el:
title: Αποκλεισμός νέου τομέα
no_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας
not_permitted: Δεν επιτρπέπεται να εκτελέσετε αυτήν την ενέργεια
+ obfuscate: Θόλωμα ονόματος τομέα
+ obfuscate_hint: Μερικό θόλωμα του ονόματος τομέα στη λίστα, εάν η ανακοίνωση της λίστας των περιορισμών τομέα είναι ενεργή
private_comment: Ιδιωτικό σχόλιο
- private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους διαχειριστές.
+ private_comment_hint: Σχόλιο για τον περιορισμό αυτού του τομέα για εσωτερική χρήση από τους συντονιστές.
public_comment: Δημόσιο σχόλιο
public_comment_hint: Σχόλιο σχετικά με τον περιορισμό αυτού του τομέα προς το κοινό, αν η λειτουργία δημοσιοποίησης των περιορισμένων τομέων είναι ενεργοποιημένη.
reject_media: Απόρριψη πολυμέσων
@@ -421,39 +423,104 @@ el:
domain: Τομέας
new:
create: Πρόσθεση τομέα
+ resolve: Επίλυση τομέα
title: Νέα εγγραφή email στη μαύρη λίστα
+ no_email_domain_block_selected: Δεν άλλαξαν οι αποκλεισμοί τομέα καθώς δεν επιλέχθηκε κανένας
not_permitted: Δεν επιτρέπεται
+ resolved_dns_records_hint_html: Το όνομα τομέα επιλύεται στους ακόλουθους τομείς MX, οι οποίοι είναι τελικά υπεύθυνοι για την αποδοχή των e-mail. Αποκλείοντας έναν τομέα MX θα μπλοκάρει τις εγγραφές από οποιαδήποτε διεύθυνση email που χρησιμοποιεί τον ίδιο τομέα MX, ακόμη και αν το ορατό όνομα τομέα είναι διαφορετικό. Προσέξτε να μην αποκλείσετε τους μεγάλους παρόχους ηλεκτρονικού ταχυδρομείου.
+ resolved_through_html: Επιλύθηκε μέσω %{domain}
title: Μαύρη λίστα email
export_domain_allows:
+ new:
+ title: Εισαγωγή επιτρεπόμενων τομέων
no_file: Δεν επιλέχθηκε αρχείο
export_domain_blocks:
+ import:
+ description_html: Πρόκειται να εισαγάγετε μια λίστα με αποκλεισμένους τομείς. Παρακαλώ ελέγξτε τη λίστα πολύ προσεκτικά, ειδικά αν δεν έχετε συντάξει τη λίστα μόνοι σας.
+ existing_relationships_warning: Υπάρχουσες σχέσεις ακολούθησης
+ private_comment_description_html: 'Για να σας βοηθήσουμε να παρακολουθείτε από πού προέρχονται οι εισαγόμενοι αποκλεισμοί, οι εισαγόμενοι αποκλεισμοί θα δημιουργηθούν με το ακόλουθο ιδιωτικό σχόλιο: %{comment}'
+ private_comment_template: Εισήχθη από %{source} στις %{date}
+ title: Εισαγωγή αποκλεισμένων τομέων
+ invalid_domain_block: 'Ένας ή περισσότεροι αποκλεισμοί τομέα παραλείφθηκαν λόγω των ακόλουθων σφαλμάτων: %{error}'
+ new:
+ title: Εισαγωγή αποκλεισμένων τομέων
no_file: Δεν επιλέχθηκε αρχείο
follow_recommendations:
+ description_html: "Ακολουθώντας συστάσεις βοηθάει τους νέους χρήστες να βρουν γρήγορα ενδιαφέρον περιεχόμενο. Όταν ένας χρήστης δεν έχει αλληλεπιδράσει με άλλους αρκετά για να διαμορφώσει εξατομικευμένες συστάσεις, συνιστώνται αυτοί οι λογαριασμοί. Υπολογίζονται εκ νέου σε καθημερινή βάση από ένα σύνολο λογαριασμών με τις υψηλότερες πρόσφατες αλληλεπιδράσεις και μεγαλύτερο αριθμό τοπικών ακόλουθων για μια δεδομένη γλώσσα."
language: Για τη γλώσσα
status: Κατάσταση
+ suppress: Καταστολή της πρότασης ακολούθησης
+ suppressed: Κατασταλμένο
+ title: Ακολουθήστε τις προτάσεις
+ unsuppress: Επαναφορά των συστάσεων ακολούθησης
instances:
+ availability:
+ description_html:
+ one: Εάν η παράδοση στον τομέα αποτύχει για %{count} ημέρα, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί.
+ other: Εάν η παράδοση στον τομέα αποτύχει για %{count} διαφορετικές ημέρες, δεν θα γίνουν περαιτέρω προσπάθειες παράδοσης εκτός αν μια παράδοση από τον τομέα παραληφθεί.
+ failure_threshold_reached: Το όριο αποτυχίας έφτασε στο %{date}.
+ failures_recorded:
+ one: Αποτυχία προσπάθειας την %{count} ημέρα.
+ other: Αποτυχημένες προσπάθειες σε %{count} διαφορετικές ημέρες.
+ no_failures_recorded: Καμία καταγεγραμμένη αποτυχία.
+ title: Διαθεσιμότητα
+ warning: Η τελευταία προσπάθεια σύνδεσης σε αυτόν τον διακομιστή απέτυχε
+ back_to_all: Όλα
+ back_to_limited: Περιορισμένα
+ back_to_warning: Προσοχή
by_domain: Τομέας
confirm_purge: Είστε βέβαιοι ότι θέλετε να διαγράψετε μόνιμα τα δεδομένα από αυτόν τον τομέα;
+ content_policies:
+ comment: Εσωτερική σημείωση
+ description_html: Μπορείτε να ορίσετε τις πολιτικές περιεχομένου που θα εφαρμόζονται σε όλους τους λογαριασμούς από αυτόν τον τομέα και οποιονδήποτε από τους υποτομείς του.
+ limited_federation_mode_description_html: Μπορείτε να επιλέξετε αν θα επιτρέψετε την ομοσπονδία με αυτόν τον τομέα.
+ policies:
+ reject_media: Απόρριψη πολυμέσων
+ reject_reports: Απόρριψη αναφορών
+ silence: Περιορισμός
+ suspend: Αναστολή
+ policy: Πολιτική
+ reason: Δημόσιος λόγος
+ title: Πολιτικές περιεχομένου
dashboard:
+ instance_accounts_dimension: Λογαριασμοί με τους περισσότερους ακόλουθους
+ instance_accounts_measure: αποθηκευμένοι λογαριασμοί
+ instance_followers_measure: οι ακόλουθοί μας εκεί
+ instance_follows_measure: οι ακόλουθοί τους εδώ
instance_languages_dimension: Κορυφαίες γλώσσες
+ instance_media_attachments_measure: αποθηκευμένα συνημμένα πολυμέσων
+ instance_reports_measure: αναφορές γι' αυτές
+ instance_statuses_measure: αποθηκευμένες δημοσιεύσεις
delivery:
+ all: Όλες
+ clear: Εκκαθάριση σφαλμάτων παράδοσης
failing: Αποτυγχάνει
+ restart: Επανεκκίνηση παράδοσης
+ stop: Διακοπή παράδοσης
+ unavailable: Μη διαθέσιμο
delivery_available: Διαθέσιμη παράδοση
+ delivery_error_days: Ημέρες σφάλματος παράδοσης
+ delivery_error_hint: Εάν η παράδοση δεν είναι δυνατή για %{count} ημέρες, θα επισημανθεί αυτόματα ως μη παραδόσιμη.
destroyed_msg: Τα δεδομένα από το %{domain} βρίσκονται σε αναμονή για επικείμενη διαγραφή.
empty: Δεν βρέθηκαν τομείς.
+ known_accounts:
+ one: "%{count} γνωστός λογαριασμός"
+ other: "%{count} γνωστοί λογαριασμοί"
moderation:
all: Όλα
limited: Περιορισμένα
- title: Διαμεσολάβηση
+ title: Συντονισμός
private_comment: Ιδιωτικό σχόλιο
public_comment: Δημόσιο σχόλιο
purge: Εκκαθάριση
+ purge_description_html: Εάν πιστεύετε ότι αυτός ο τομέας είναι εκτός σύνδεσης για πάντα, μπορείτε να διαγράψετε όλες τις καταχωρήσεις λογαριασμών και τα σχετικά δεδομένα από αυτόν τον τομέα από τον αποθηκευτικό σας χώρο. Αυτό μπορεί να διαρκέσει λίγη ώρα.
title: Γνωστοί κόμβοι
total_blocked_by_us: Μπλοκάρονται από εμάς
total_followed_by_them: Ακολουθούνται από εκείνους
total_followed_by_us: Ακολουθούνται από εμάς
total_reported: Καταγγελίες προς εκείνους
total_storage: Συνημμένα πολυμέσα
+ totals_time_period_hint_html: Τα σύνολα που εμφανίζονται παρακάτω περιλαμβάνουν στοιχεία από την αρχή.
invites:
deactivate_all: Απενεργοποίηση όλων
filter:
@@ -475,6 +542,7 @@ el:
'94670856': 3 χρόνια
new:
title: Δημιουργία νέου κανόνα IP
+ no_ip_block_selected: Δεν άλλαξαν οι κανόνες IP καθώς κανένας δεν επιλέχθηκε
title: Κανόνες IP
relationships:
title: Σχέσεις %{acct}
@@ -505,7 +573,14 @@ el:
action_log: Αρχείο ελέγχου
action_taken_by: Ενέργεια από τον/την
actions:
+ delete_description_html: Οι δημοσιεύσεις με αναφορά θα διαγραφούν και θα καταγραφεί μια ποινή που θα σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβάσεις από τον ίδιο λογαριασμό.
+ mark_as_sensitive_description_html: Τα πολυμέσα με αναφορά θα επισημανθούν ως ευαίσθητα και θα καταγραφεί μια ποινή που θα σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβάσεις από τον ίδιο λογαριασμό.
other_description_html: Δείτε περισσότερες επιλογές για τον έλεγχο της συμπεριφοράς του λογαριασμού και προσαρμόσετε την επικοινωνία στον αναφερόμενο λογαριασμό.
+ resolve_description_html: Δεν θα ληφθούν μέτρα κατά του αναφερόμενου λογαριασμού, δεν θα καταγραφεί καμία ποινή, και η αναφορά θα κλείσει.
+ silence_description_html: Ο λογαριασμός θα είναι ορατός μόνο σε εκείνους που ήδη τον ακολουθούν ή τον αναζητούν χειροκίνητα, περιορίζοντας κατά πολύ την εμβέλειά του. Η ενέργεια αυτή είναι αναστρέψιμη. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
+ suspend_description_html: Ο λογαριασμός και όλο το περιεχόμενό του θα είναι απρόσιτα και τελικά θα διαγραφούν και η αλληλεπίδραση με αυτόν θα είναι αδύνατη. Αναστρέψιμη εντός 30 ημερών. Κλείνει όλες τις αναφορές εναντίον αυτού του λογαριασμού.
+ actions_description_html: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Εάν προβείτε σε τιμωρητική ενέργεια κατά του αναφερόμενου λογαριασμού, θα αποσταλεί ειδοποίηση μέσω ηλεκτρονικού ταχυδρομείου σε αυτούς, εκτός όταν η κατηγορία Σπαμ είναι επιλεγμένη.
+ actions_description_remote_html: Αποφασίστε ποια μέτρα θα ληφθούν για την επίλυση αυτής της αναφοράς. Αυτό θα επηρεάσει μόνο το πώς ο δικός σας διακομιστής επικοινωνεί με αυτόν τον απομακρυσμένο λογαριασμό και χειρίζεται το περιεχόμενό του.
add_to_report: Προσθέστε περισσότερα στην αναφορά
are_you_sure: Σίγουρα;
assign_to_self: Ανάθεση σε μένα
@@ -513,9 +588,12 @@ el:
by_target_domain: Κόμβος του λογαριασμού υπό καταγγελία
cancel: Άκυρο
category: Κατηγορία
+ category_description_html: Ο λόγος για τον οποίο αναφέρθηκε αυτός ο λογαριασμός και/ή το περιεχόμενο θα εσωκλείεται σε επικοινωνία με τον αναφερόμενο λογαριασμό
comment:
none: Κανένα
+ comment_description_html: 'Για να δώσει περισσότερες πληροφορίες, ο/η %{name} έγραψε:'
confirm: Επιβεβαίωση
+ confirm_action: Επιβεβαίωση ενέργειαςδιαχείρισης ενάντια στον λογαριασμό @%{acct}
created_at: Καταγγέλθηκε
delete_and_resolve: Διαγραφή δημοσιεύσεων
forwarded: Προωθημένα
@@ -531,6 +609,8 @@ el:
delete: Διαγραφή
placeholder: Περιέγραψε τις ενέργειες που έγιναν, ή οποιαδήποτε άλλη ενημέρωση...
title: Σημειώσεις
+ notes_description_html: Δείτε και αφήστε σημειώσεις σε άλλους διαχειριστές και τον μελλοντικό εαυτό σας
+ processed_msg: 'Η αναφορά #%{id} διεκπεραιώθηκε με επιτυχία'
quick_actions_description_html: 'Κάντε μια γρήγορη ενέργεια ή μετακινηθείτε προς τα κάτω για να δείτε το αναφερόμενο περιεχόμενο:'
remote_user_placeholder: ο απομακρυσμένος χρήστης από %{instance}
reopen: Ξανάνοιξε την καταγγελία
@@ -542,8 +622,29 @@ el:
skip_to_actions: Μετάβαση στις ενέργειες
status: Κατάσταση
statuses: Αναφερόμενο περιεχόμενο
+ statuses_description_html: Το προσβλητικό θα εσωκλείεται στην επικοινωνία με τον αναφερόμενο λογαριασμό
+ summary:
+ action_preambles:
+ delete_html: 'Πρόκειται να αφαιρέσετε μερικές από τις δημοσιεύσεις του @%{acct}. Αυτό θα:'
+ mark_as_sensitive_html: 'Πρόκειται να επισημάνετε μερικές από τις δημοσιεύσεις του @%{acct} ως ευαίσθητες. Αυτό θα:'
+ silence_html: 'Πρόκειται να περιορίσετε τον λογαριασμό @%{acct}. Αυτό θα:'
+ suspend_html: 'Πρόκειται να αναστείλετε τον λογαριασμό @%{acct}. Αυτό θα:'
+ actions:
+ delete_html: Αφαιρέστε τις προσβλητικές δημοσιεύσεις
+ mark_as_sensitive_html: Σημειώστε τα πολυμέσα των προσβλητικών αναρτήσεων ως ευαίσθητα
+ silence_html: Περιορίστε σοβαρά την εμβέλεια του @%{acct} κάνοντας το προφίλ και το περιεχόμενό του ορατά μόνο σε άτομα που ήδη τον ακολουθούν ή που αναζητούν χειροκίνητα το προφίλ του
+ suspend_html: Αναστολή του @%{acct}, καθιστώντας το προφίλ και το περιεχόμενό του μη προσβάσιμα και αδύνατο να αλληλεπιδράσει κανείς με αυτά
+ close_report: 'Επισήμανση αναφοράς #%{id} ως επιλυμένη'
+ close_reports_html: Επισημάνετε όλες τις αναφορές ενάντια στον λογαριασμό @%{acct} ως επιλυμένες
+ delete_data_html: Διαγράψτε το προφίλ και το περιεχόμενο του @%{acct} σε 30 ημέρες από τώρα εκτός και αν ανακληθεί η αναστολή εν τω μεταξύ
+ preview_preamble_html: 'Ο @%{acct} θα λάβει μια προειδοποίηση με τα ακόλουθο περιεχόμενο:'
+ record_strike_html: Καταγράψτε μια ποινή εναντίον του @%{acct} για να σας βοηθήσει να αποφασίσετε σε μελλοντικές παραβιάσεις από αυτόν τον λογαριασμό
+ send_email_html: Στείλτε στον @%{acct} ένα προειδοποιητικό e-mail
+ warning_placeholder: Προαιρετικές επιπλέον εξηγήσεις για αυτή την ενέργεια από τη διαχείριση.
+ target_origin: Προέλευση του αναφερόμενου λογαριασμού
title: Αναφορές
unassign: Αποσύνδεση
+ unknown_action_msg: 'Άγνωστη ενέργεια: %{action}'
unresolved: Άλυτη
updated_at: Ενημερωμένη
view_profile: Προβολή προφίλ
@@ -556,20 +657,57 @@ el:
administration: Διαχείριση
devops: Devops
invites: Προσκλήσεις
+ moderation: Συντονισμός
+ special: Ειδικός
delete: Διαγραφή
+ description_html: Με τους ρόλους χρηστών, μπορείτε να προσαρμόσετε σε ποιες λειτουργίες και περιοχές του Mastodon, οι χρήστες σας μπορούν να έχουν πρόσβαση.
edit: Επεξεργασία ρόλου '%{name}'
everyone: Προεπιλεγμένα δικαιώματα
+ everyone_full_description_html: Αυτός είναι ο βασικός ρόλος που επηρεάζει όλους τους χρήστες, ακόμη και εκείνους που δεν έχουν κάποιον ρόλο. Όλοι οι άλλοι ρόλοι κληρονομούν δικαιώματα από αυτόν.
permissions_count:
one: "%{count} δικαίωμα"
other: "%{count} δικαιώματα"
privileges:
administrator: Διαχειριστής
+ administrator_description: Οι χρήστες με αυτό το δικαίωμα θα παρακάμπτουν κάθε δικαίωμα
+ delete_user_data: Διαγραφή Δεδομένων Χρήστη
+ delete_user_data_description: Επιτρέπει στους χρήστες να διαγράφουν τα δεδομένα άλλων χρηστών χωρίς καθυστέρηση
invite_users: Πρόσκληση χρηστών
+ invite_users_description: Επιτρέπει στους χρήστες να προσκαλούν νέα άτομα στον διακομιστή
manage_announcements: Διαχείριση ανακοινώσεων
+ manage_announcements_description: Επιτρέπει στους χρήστες να διαχειρίζονται ανακοινώσεις στον διακομιστή
+ manage_appeals: Διαχείριση Εφέσεων
+ manage_appeals_description: Επιτρέπει στους χρήστες να εξετάζουν τις εφέσεις κατά των ενεργειών της συντονισμού
+ manage_blocks: Διαχείριση Αποκλεισμών
+ manage_blocks_description: Επιτρέπει στους χρήστες να αποκλείουν παρόχους e-mail και διευθύνσεις IP
+ manage_custom_emojis: Διαχείριση Προσαρμοσμένων Emojis
+ manage_custom_emojis_description: Επιτρέπει στους χρήστες να διαχειρίζονται προσαρμοσμένα emojis στον διακομιστή
+ manage_federation: Διαχείριση Ομοσπονδίας
+ manage_federation_description: Επιτρέπει στους χρήστες να αποκλείουν ή να επιτρέπουν την ομοσπονδία με άλλους τομείς και να ελέγχουν την παράδοση
+ manage_invites: Διαχείριση Προσκλήσεων
+ manage_invites_description: Επιτρέπει στους χρήστες να περιηγούνται και να απενεργοποιούν τους συνδέσμους πρόσκλησης
+ manage_reports: Διαχείριση Αναφορών
+ manage_reports_description: Επιτρέπει στους χρήστες να εξετάζουν τις αναφορές και να εκτελούν ενέργειες συντονισμού εναντίον τους
manage_roles: Διαχείριση ρόλων
+ manage_roles_description: Επιτρέπει στους χρήστες να διαχειρίζονται και να αναθέτουν ρόλους κατώτερων των δικών τους
+ manage_rules: Διαχείριση Κανόνων
+ manage_rules_description: Επιτρέπει στους χρήστες να αλλάξουν τους κανόνες του διακομιστή
manage_settings: Διαχείριση ρυθμίσεων
+ manage_settings_description: Επιτρέπει στους χρήστες να αλλάξουν τις ρυθμίσεις του ιστοτόπου
+ manage_taxonomies: Διαχείριση Ταξινομιών
+ manage_taxonomies_description: Επιτρέπει στους χρήστες να εξετάζουν το δημοφιλές περιεχόμενο και να ενημερώνουν τις ρυθμίσεις ετικέτας
+ manage_user_access: Διαχείριση Πρόσβασης Χρήστη
+ manage_user_access_description: Επιτρέπει στους χρήστες να απενεργοποιούν την ταυτοποίηση δύο παραγόντων άλλων χρηστών, να αλλάξουν τη διεύθυνση ηλεκτρονικού ταχυδρομείου τους και να επαναφέρουν τον κωδικό πρόσβασής τους
manage_users: Διαχείριση χρηστών
+ manage_users_description: Επιτρέπει στους χρήστες να βλέπουν τις λεπτομέρειες άλλων χρηστών και να εκτελούν ενέργειες συντονισμού εναντίον τους
+ manage_webhooks: Διαχείριση Webhooks
+ manage_webhooks_description: Επιτρέπει στους χρήστες να ορίζουν webhooks για συμβάντα διαχείρισης
+ view_audit_log: Προβολή Καταλόγου Καταγραφών
+ view_audit_log_description: Επιτρέπει στους χρήστες να βλέπουν ένα ιστορικό ενεργειών διαχείρισης στον διακομιστή
+ view_dashboard: Προβολή Ταμπλό πληροφοριών
+ view_dashboard_description: Επιτρέπει στους χρήστες να έχουν πρόσβαση στον ταμπλό πληροφοριών και σε διάφορες μετρήσεις
view_devops: DevOps
+ view_devops_description: Επιτρέπει στους χρήστες να έχουν πρόσβαση στα ταμπλό πληροφοριών Sidekiq και pgHero
title: Ρόλοι
rules:
add_new: Προσθήκη κανόνα
@@ -581,23 +719,36 @@ el:
settings:
about:
manage_rules: Διαχείριση κανόνων διακομιστή
+ preamble: Παρέχετε αναλυτικές πληροφορίες σχετικά με τη λειτουργία του διακομιστή, τον συντονισμό και τη χρηματοδότηση.
+ rules_hint: Υπάρχει μια ειδική περιοχή για τους κανόνες που αναμένεται να τηρούν οι χρήστες σας.
title: Σχετικά με
appearance:
+ preamble: Προσαρμόστε τη διεπαφή ιστού του Mastodon.
title: Εμφάνιση
+ branding:
+ preamble: Η ταυτότητα του διακομιστή σας, τον διαφοροποιεί από άλλους διακομιστές του δικτύου. Αυτές οι πληροφορίες μπορεί να εμφανίζονται σε διάφορα περιβάλλοντα, όπως η διαδικτυακή διεπαφή του Mastodon, εγγενείς εφαρμογές, σε προεπισκοπήσεις συνδέσμου σε άλλους ιστότοπους και εντός εφαρμογών μηνυμάτων και ούτω καθεξής. Γι' αυτό, είναι καλύτερο να διατηρούνται αυτές οι πληροφορίες σαφείς, σύντομες και συνοπτικές.
+ title: Ταυτότητα
content_retention:
+ preamble: Ελέγξτε πώς αποθηκεύεται το περιεχόμενο που δημιουργείται από τους χρήστες στο Mastodon.
title: Διατήρηση περιεχομένου
default_noindex:
desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση οι ίδιοι
title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης
discovery:
+ follow_recommendations: Ακολουθήστε τις προτάσεις
+ preamble: Δημοσιεύοντας ενδιαφέρον περιεχόμενο είναι καθοριστικό για την ενσωμάτωση νέων χρηστών που μπορεί να μη γνωρίζουν κανέναν στο Mastodon. Ελέγξτε πώς λειτουργούν διάφορες δυνατότητες ανακάλυψης στον διακομιστή σας.
profile_directory: Κατάλογος προφίλ
public_timelines: Δημόσιες ροές
+ publish_discovered_servers: Δημοσίευση διακομιστών που έχουν ανακαλυφθεί
+ publish_statistics: Δημοσίευση στατιστικών
+ title: Ανακάλυψη
trends: Τάσεις
domain_blocks:
all: Για όλους
disabled: Για κανέναν
users: Προς συνδεδεμένους τοπικούς χρήστες
registrations:
+ preamble: Ελέγξτε ποιος μπορεί να δημιουργήσει ένα λογαριασμό στον διακομιστή σας.
title: Εγγραφές
registrations_mode:
modes:
@@ -612,6 +763,7 @@ el:
account: Συντάκτης
application: Εφαρμογή
back_to_account: Επιστροφή στη σελίδα λογαριασμού
+ back_to_report: Πίσω στη σελίδα αναφοράς
batch:
remove_from_report: Αφαίρεση από την αναφορά
report: Αναφορά
@@ -625,6 +777,7 @@ el:
metadata: Μεταδεδομένα
no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη
open: Άνοιγμα δημοσίευσης
+ original_status: Αρχική δημοσίευση
reblogs: Αναδημοσιεύσεις
status_changed: Η ανάρτηση άλλαξε
title: Καταστάσεις λογαριασμού
@@ -632,10 +785,25 @@ el:
visibility: Ορατότητα
with_media: Με πολυμέσα
strikes:
+ actions:
+ delete_statuses: Ο/Η %{name} διέγραψε τις δημοσιεύσεις του/της %{target}
+ disable: Ο/Η %{name} πάγωσε τον λογαριασμό του/της %{target}
+ mark_statuses_as_sensitive: Ο/Η %{name} επισήμανε τα πολυμέσα του/της %{target} ως ευαίσθητα
+ none: Ο/Η %{name} έστειλε προειδοποίηση προς τον/την %{target}
+ sensitive: Ο/Η %{name} επισήμανε τα πολυμέσα του λογαριασμού %{target} ως ευαίσθητα
+ silence: Ο/Η %{name} περιόρισε τον λογαριασμό %{target}
+ suspend: ο/η %{name} ανέστειλε τον λογαριασμό %{target}
+ appeal_approved: Έγινε έφεση
+ appeal_pending: Έφεση σε εκκρεμότητα
appeal_rejected: Η αίτηση απορρίφθηκε
system_checks:
database_schema_check:
message_html: Υπάρχουν μετακινήσεις βάσης δεδομένων που εκκρεμούν. Παρακαλώ εκτελέστε τις για να βεβαιωθείτε ότι η εφαρμογή συμπεριφέρεται όπως αναμένεται
+ elasticsearch_running_check:
+ message_html: Δεν ήταν δυνατή η σύνδεση στο Elasticsearch. Παρακαλώ ελέγξτε ότι εκτελείται ή απενεργοποιήστε την αναζήτηση πλήρους κειμένου
+ elasticsearch_version_check:
+ message_html: 'Μη συμβατή έκδοση Elasticsearch: %{value}'
+ version_comparison: Η έκδοση Elasticsearch %{running_version} εκτελείται ενώ η %{required_version} απαιτείται
rules_check:
action: Διαχείριση κανόνων διακομιστή
message_html: Δεν έχετε ορίσει κανέναν κανόνα διακομιστή.
@@ -1050,6 +1218,7 @@ el:
relationships:
activity: Δραστηριότητα λογαριασμού
dormant: Αδρανείς
+ follow_failure: Δεν ήταν δυνατή η παρακολούθηση ορισμένων από τους επιλεγμένους λογαριασμούς.
followers: Σε ακολουθούν
following: Ακολουθείς
invited: Προσκεκλημένοι
@@ -1083,6 +1252,7 @@ el:
edge: Microsoft Edge
firefox: Firefox
generic: Άγνωστος φυλλομετρητής
+ huawei_browser: Huawei Browser
ie: Internet Explorer
opera: Opera
otter: Otter
@@ -1090,6 +1260,7 @@ el:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Άγνωστος φυλλομετρητής
current_session: Τρέχουσα σύνδεση
description: "%{browser} σε %{platform}"
explanation: Αυτοί είναι οι φυλλομετρητές (browsers) που είναι συνδεδεμένοι στον λογαριασμό σου στο Mastodon αυτή τη στιγμή.
@@ -1099,9 +1270,10 @@ el:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: άγνωστη πλατφόρμα
+ unknown_platform: Άγνωστη Πλατφόρμα
revoke: Ανακάλεσε
revoke_success: Η σύνδεση ανακλήθηκε επιτυχώς
title: Σύνδεση
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 9b4f28c5d6..8e2e453506 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -366,6 +366,115 @@ en-GB:
sources: Sign-up sources
space: Space usage
title: Dashboard
+ top_languages: Top active languages
+ top_servers: Top active servers
+ website: Website
+ disputes:
+ appeals:
+ empty: No appeals found.
+ title: Appeals
+ domain_allows:
+ add_new: Allow federation with domain
+ created_msg: Domain has been successfully allowed for federation
+ destroyed_msg: Domain has been disallowed from federation
+ export: Export
+ import: Import
+ undo: Disallow federation with domain
+ domain_blocks:
+ add_new: Add new domain block
+ created_msg: Domain block is now being processed
+ destroyed_msg: Domain block has been undone
+ domain: Domain
+ edit: Edit domain block
+ existing_domain_block: You have already imposed stricter limits on %{name}.
+ existing_domain_block_html: You have already imposed stricter limits on %{name}, you need to unblock it first.
+ export: Export
+ import: Import
+ new:
+ create: Create block
+ hint: The domain block will not prevent creation of account entries in the database, but will retroactively and automatically apply specific moderation methods on those accounts.
+ severity:
+ desc_html: "Limit will make posts from accounts at this domain invisible to anyone who isn't following them. Suspend will remove all content, media, and profile data for this domain's accounts from your server. Use None if you just want to reject media files."
+ noop: None
+ silence: Limit
+ suspend: Suspend
+ title: New domain block
+ no_domain_block_selected: No domain blocks were changed as none were selected
+ not_permitted: You are not permitted to perform this action
+ obfuscate: Obfuscate domain name
+ obfuscate_hint: Partially obfuscate the domain name in the list if advertising the list of domain limitations is enabled
+ private_comment: Private comment
+ private_comment_hint: Comment about this domain limitation for internal use by the moderators.
+ public_comment: Public comment
+ public_comment_hint: Comment about this domain limitation for the general public, if advertising the list of domain limitations is enabled.
+ reject_media: Reject media files
+ reject_media_hint: Removes locally stored media files and refuses to download any in the future. Irrelevant for suspensions
+ reject_reports: Reject reports
+ reject_reports_hint: Ignore all reports coming from this domain. Irrelevant for suspensions
+ undo: Undo domain block
+ view: View domain block
+ email_domain_blocks:
+ add_new: Add new
+ attempts_over_week:
+ one: "%{count} attempt over the last week"
+ other: "%{count} sign-up attempts over the last week"
+ created_msg: Successfully blocked e-mail domain
+ delete: Delete
+ dns:
+ types:
+ mx: MX record
+ domain: Domain
+ new:
+ create: Add domain
+ resolve: Resolve domain
+ title: Block new e-mail domain
+ no_email_domain_block_selected: No e-mail domain blocks were changed as none were selected
+ not_permitted: Not permitted
+ resolved_dns_records_hint_html: The domain name resolves to the following MX domains, which are ultimately responsible for accepting e-mail. Blocking an MX domain will block sign-ups from any e-mail address which uses the same MX domain, even if the visible domain name is different. Be careful not to block major e-mail providers.
+ resolved_through_html: Resolved through %{domain}
+ title: Blocked e-mail domains
+ export_domain_allows:
+ new:
+ title: Import domain allows
+ no_file: No file selected
+ export_domain_blocks:
+ import:
+ description_html: You are about to import a list of domain blocks. Please review this list very carefully, especially if you have not authored this list yourself.
+ existing_relationships_warning: Existing follow relationships
+ private_comment_description_html: 'To help you track where imported blocks come from, imported blocks will be created with the following private comment: %{comment}'
+ private_comment_template: Imported from %{source} on %{date}
+ title: Import domain blocks
+ invalid_domain_block: 'One or more domain blocks were skipped because of the following error(s): %{error}'
+ new:
+ title: Import domain blocks
+ no_file: No file selected
+ follow_recommendations:
+ description_html: "Follow recommendations help new users quickly find interesting content. When a user has not interacted with others enough to form personalised follow recommendations, these accounts are recommended instead. They are re-calculated on a daily basis from a mix of accounts with the highest recent engagements and highest local follower counts for a given language."
+ language: For language
+ status: Status
+ suppress: Suppress follow recommendation
+ suppressed: Suppressed
+ title: Follow recommendations
+ unsuppress: Restore follow recommendation
+ instances:
+ availability:
+ description_html:
+ one: If delivering to the domain fails %{count} day without succeeding, no further delivery attempts will be made unless a delivery from the domain is received.
+ other: If delivering to the domain fails on %{count} different days without succeeding, no further delivery attempts will be made unless a delivery from the domain is received.
+ failure_threshold_reached: Failure threshold reached on %{date}.
+ failures_recorded:
+ one: Failed attempt on %{count} day.
+ other: Failed attempts on %{count} different days.
+ no_failures_recorded: No failures on record.
+ title: Availability
+ warning: The last attempt to connect to this server has been unsuccessful
+ back_to_all: All
+ back_to_limited: Limited
+ back_to_warning: Warning
+ by_domain: Domain
+ confirm_purge: Are you sure you want to permanently delete data from this domain?
+ content_policies:
+ comment: Internal note
roles:
categories:
devops: DevOps
@@ -379,14 +488,253 @@ en-GB:
'410': The page you were looking for doesn't exist here anymore.
'429': Too many requests
'503': The page could not be served due to a temporary server failure.
+ generic:
+ copy: Copy
+ delete: Delete
+ deselect: Deselect all
+ none: None
+ order_by: Order by
+ save_changes: Save changes
+ select_all_matching_items:
+ one: Select %{count} item matching your search.
+ other: Select all %{count} items matching your search.
+ today: today
+ validation_errors:
+ one: Something isn't quite right yet! Please review the error below
+ other: Something isn't quite right yet! Please review %{count} errors below
+ imports:
+ errors:
+ invalid_csv_file: 'Invalid CSV file. Error: %{error}'
+ over_rows_processing_limit: contains more than %{count} rows
+ modes:
+ merge: Merge
+ merge_long: Keep existing records and add new ones
+ overwrite: Overwrite
+ overwrite_long: Replace current records with the new ones
+ preface: You can import data that you have exported from another server, such as a list of the people you are following or blocking.
+ success: Your data was successfully uploaded and will be processed in due time
+ types:
+ blocking: Blocking list
+ bookmarks: Bookmarks
+ domain_blocking: Domain blocking list
+ following: Following list
+ muting: Muting list
+ upload: Upload
+ invites:
+ delete: Deactivate
+ expired: Expired
+ notification_mailer:
+ admin:
+ sign_up:
+ subject: "%{name} signed up"
+ favourite:
+ body: 'Your post was favourited by %{name}:'
+ subject: "%{name} favourited your post"
+ title: New favourite
+ follow:
+ body: "%{name} is now following you!"
+ subject: "%{name} is now following you"
+ title: New follower
+ follow_request:
+ action: Manage follow requests
+ body: "%{name} has requested to follow you"
+ subject: 'Pending follower: %{name}'
+ polls:
+ errors:
+ too_many_options: can't contain more than %{max} items
+ preferences:
+ other: Other
+ posting_defaults: Posting defaults
+ public_timelines: Public timelines
+ privacy_policy:
+ title: Privacy Policy
+ reactions:
+ errors:
+ limit_reached: Limit of different reactions reached
+ unrecognized_emoji: is not a recognised emoji
+ relationships:
+ activity: Account activity
+ confirm_follow_selected_followers: Are you sure you want to follow selected followers?
+ confirm_remove_selected_followers: Are you sure you want to remove selected followers?
+ confirm_remove_selected_follows: Are you sure you want to remove selected follows?
+ dormant: Dormant
+ follow_failure: Could not follow some of the selected accounts.
+ follow_selected_followers: Follow selected followers
+ followers: Followers
+ following: Following
+ invited: Invited
+ last_active: Last active
+ most_recent: Most recent
+ moved: Moved
+ mutual: Mutual
+ primary: Primary
+ relationship: Relationship
+ remove_selected_domains: Remove all followers from the selected domains
+ remove_selected_followers: Remove selected followers
+ remove_selected_follows: Unfollow selected users
+ status: Account status
+ remote_follow:
+ missing_resource: Could not find the required redirect URL for your account
+ reports:
+ errors:
+ invalid_rules: does not reference valid rules
+ rss:
+ content_warning: 'Content warning:'
+ descriptions:
+ account: Public posts from @%{acct}
+ tag: 'Public posts tagged #%{hashtag}'
+ scheduled_statuses:
+ over_daily_limit: You have exceeded the limit of %{limit} scheduled posts for today
+ over_total_limit: You have exceeded the limit of %{limit} scheduled posts
+ too_soon: The scheduled date must be in the future
sessions:
+ activity: Last activity
+ browser: Browser
browsers:
+ alipay: Alipay
blackberry: BlackBerry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: Electron
+ firefox: Firefox
+ generic: Unknown browser
+ huawei_browser: Huawei Browser
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
uc_browser: UC Browser
+ unknown_browser: Unknown Browser
+ weibo: Weibo
+ current_session: Current session
+ description: "%{browser} on %{platform}"
+ explanation: These are the web browsers currently logged in to your Mastodon account.
+ ip: IP
platforms:
+ adobe_air: Adobe Air
+ android: Android
blackberry: BlackBerry
chrome_os: ChromeOS
+ firefox_os: Firefox OS
+ ios: iOS
+ kai_os: KaiOS
+ linux: Linux
+ mac: macOS
+ unknown_platform: Unknown Platform
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
+ revoke: Revoke
+ revoke_success: Session successfully revoked
+ title: Sessions
+ view_authentication_history: View authentication history of your account
+ settings:
+ account: Account
+ account_settings: Account settings
+ aliases: Account aliases
+ appearance: Appearance
+ authorized_apps: Authorised apps
+ back: Back to Mastodon
+ delete: Account deletion
+ development: Development
+ edit_profile: Edit profile
+ export: Data export
+ featured_tags: Featured hashtags
+ import: Import
+ import_and_export: Import and export
+ migrate: Account migration
+ notifications: Notifications
+ preferences: Preferences
+ profile: Profile
+ relationships: Follows and followers
+ statuses_cleanup: Automated post deletion
+ strikes: Moderation strikes
+ two_factor_authentication: Two-factor Auth
+ webauthn_authentication: Security keys
+ statuses:
+ attached:
+ audio:
+ one: "%{count} audio"
+ other: "%{count} audio"
+ description: 'Attached: %{attached}'
+ image:
+ one: "%{count} image"
+ other: "%{count} images"
+ video:
+ one: "%{count} video"
+ other: "%{count} videos"
+ boosted_from_html: Boosted from %{acct_link}
+ content_warning: 'Content warning: %{warning}'
+ default_language: Same as interface language
+ disallowed_hashtags:
+ one: 'contained a disallowed hashtag: %{tags}'
+ other: 'contained the disallowed hashtags: %{tags}'
+ edited_at_html: Edited %{date}
+ errors:
+ in_reply_not_found: The post you are trying to reply to does not appear to exist.
+ open_in_web: Open in web
+ over_character_limit: character limit of %{max} exceeded
+ pin_errors:
+ direct: Posts that are only visible to mentioned users cannot be pinned
+ limit: You have already pinned the maximum number of posts
+ ownership: Someone else's post cannot be pinned
+ reblog: A boost cannot be pinned
+ poll:
+ total_people:
+ one: "%{count} person"
+ other: "%{count} people"
+ total_votes:
+ one: "%{count} vote"
+ other: "%{count} votes"
+ vote: Vote
+ show_more: Show more
+ show_newer: Show newer
+ show_older: Show older
+ show_thread: Show thread
+ sign_in_to_participate: Sign in to participate in the conversation
+ title: '%{name}: "%{quote}"'
+ visibilities:
+ direct: Direct
+ private: Followers-only
+ private_long: Only show to followers
+ public: Public
+ public_long: Everyone can see
+ unlisted: Unlisted
+ unlisted_long: Everyone can see, but not listed on public timelines
statuses_cleanup:
+ enabled: Automatically delete old posts
+ enabled_hint: Automatically deletes your posts once they reach a specified age threshold, unless they match one of the exceptions below
+ exceptions: Exceptions
+ explanation: Because deleting posts is an expensive operation, this is done slowly over time when the server is not otherwise busy. For this reason, your posts may be deleted a while after they reach the age threshold.
+ ignore_favs: Ignore favourites
+ ignore_reblogs: Ignore boosts
+ interaction_exceptions: Exceptions based on interactions
+ interaction_exceptions_explanation: Note that there is no guarantee for posts to be deleted if they go below the favourite or boost threshold after having once gone over them.
+ keep_direct: Keep direct messages
+ keep_direct_hint: Doesn't delete any of your direct messages
+ keep_media: Keep posts with media attachments
+ keep_media_hint: Doesn't delete any of your posts that have media attachments
+ keep_pinned: Keep pinned posts
+ keep_pinned_hint: Doesn't delete any of your pinned posts
+ keep_polls: Keep polls
+ keep_polls_hint: Doesn't delete any of your polls
+ keep_self_bookmark: Keep posts you bookmarked
+ keep_self_bookmark_hint: Doesn't delete your own posts if you have bookmarked them
+ keep_self_fav: Keep posts you favourited
+ keep_self_fav_hint: Doesn't delete your own posts if you have favourited them
+ min_age:
+ '1209600': 2 weeks
+ '15778476': 6 months
+ '2629746': 1 month
+ '31556952': 1 year
+ '5259492': 2 months
+ '604800': 1 week
+ '63113904': 2 years
+ '7889238': 3 months
min_age_label: Age threshold
min_favs: Keep posts favourited at least
min_favs_hint: Doesn't delete any of your posts that has received at least this number of favourites. Leave blank to delete posts regardless of their number of favourites
@@ -399,7 +747,11 @@ en-GB:
strikes:
errors:
too_late: It is too late to appeal this strike
+ tags:
+ does_not_match_previous_name: does not match the previous name
themes:
+ contrast: Mastodon (High contrast)
+ default: Mastodon (Dark)
mastodon-light: Mastodon (Light)
time:
formats:
@@ -433,7 +785,14 @@ en-GB:
title: Appeal rejected
backup_ready:
explanation: You requested a full backup of your Mastodon account. It's now ready for download!
+ subject: Your archive is ready for download
+ title: Archive takeout
suspicious_sign_in:
+ change_password: change your password
+ details: 'Here are details of the sign-in:'
+ explanation: We've detected a sign-in to your account from a new IP address.
+ further_actions_html: If this wasn't you, we recommend that you %{action} immediately and enable two-factor authentication to keep your account secure.
+ subject: Your account has been accessed from a new IP address
title: A new sign-in
warning:
appeal: Submit an appeal
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index a8279b6a6f..b381805a10 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -834,6 +834,7 @@ eo:
other: Diskonita de %{count} personoj ekde lasta semajno
title: Tendencantaj ligiloj
usage_comparison: Diskonita %{today}-foje hodiau, sed estas %{yesterday} hierau
+ not_allowed_to_trend: Ne rajtas fariĝi furoraĵo
only_allowed: Nur permesitas
pending_review: Atendante revizion
preview_card_providers:
@@ -1324,8 +1325,8 @@ eo:
sign_up:
subject: "%{name} registriĝis"
favourite:
- body: "%{name} stelumis vian mesaĝon:"
- subject: "%{name} stelumis vian mesaĝon"
+ body: "%{name} stelumis vian afiŝon:"
+ subject: "%{name} stelumis vian afiŝon"
title: Nova stelumo
follow:
body: "%{name} nun sekvas vin!"
@@ -1345,7 +1346,7 @@ eo:
subject: Enketo de %{name} finitas
reblog:
body: 'Via mesaĝo estis diskonigita de %{name}:'
- subject: "%{name} diskonigis vian mesaĝon"
+ subject: "%{name} diskonigis vian afiŝon"
title: Nova diskonigo
status:
subject: "%{name} ĵus afiŝis"
@@ -1406,6 +1407,7 @@ eo:
confirm_remove_selected_followers: Ĉu vi certas, ke vi volas forigi la elektitajn sekvantojn?
confirm_remove_selected_follows: Ĉu vi certas, ke vi volas forigi la elektitajn sekvatojn?
dormant: Dormanta
+ follow_failure: Ne eblis sekvi iom da la elektitaj kontoj.
follow_selected_followers: Sekvi selektitajn sekvantojn
followers: Sekvantoj
following: Sekvatoj
@@ -1445,6 +1447,7 @@ eo:
electron: Electron
firefox: Firefox
generic: Nekonata retumilo
+ huawei_browser: Retumilo Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1454,6 +1457,7 @@ eo:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Nekonata retumilo
weibo: Weibo
current_session: Nuna seanco
description: "%{browser} en %{platform}"
@@ -1466,9 +1470,10 @@ eo:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: nekonata substrato
+ unknown_platform: Nekonata platformo
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index bef481b35d..2a395c80fe 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1405,6 +1405,7 @@ es-AR:
confirm_remove_selected_followers: "¿Estás seguro que querés quitar a los seguidores seleccionados?"
confirm_remove_selected_follows: "¿Estás seguro que querés quitar a las cuentas seguidas seleccionadas?"
dormant: Inactivas
+ follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas.
follow_selected_followers: Seguir a los seguidores seleccionados
followers: Seguidores
following: Siguiendo
@@ -1444,6 +1445,7 @@ es-AR:
electron: Electron
firefox: Mozilla Firefox
generic: "[Navegador web desconocido]"
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador web de Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ es-AR:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: "[Navegador web desconocido]"
weibo: Weibo
current_session: Sesión actual
description: "%{browser} en %{platform}"
@@ -1465,9 +1468,10 @@ es-AR:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: GNU/Linux
mac: macOS
- other: "[Plataforma desconocida]"
+ unknown_platform: "[Plataforma desconocida]"
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 978cd0c3ce..3919b4064c 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1405,6 +1405,7 @@ es-MX:
confirm_remove_selected_followers: "¿Estás seguro de que quieres eliminar a los seguidores seleccionados?"
confirm_remove_selected_follows: "¿Estás seguro de que quieres eliminar los seguidos seleccionados?"
dormant: Inactivo
+ follow_failure: No se pudo seguir algunas de las cuentas seleccionadas.
follow_selected_followers: Seguir a los seguidores seleccionados
followers: Seguidores
following: Siguiendo
@@ -1444,6 +1445,7 @@ es-MX:
electron: Electron
firefox: Firefox
generic: Desconocido
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador de Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ es-MX:
qq: Navegador QQ
safari: Safari
uc_browser: Navegador UC
+ unknown_browser: Navegador desconocido
weibo: Weibo
current_session: Sesión actual
description: "%{browser} en %{platform}"
@@ -1465,9 +1468,10 @@ es-MX:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: GNU Linux
mac: Mac
- other: Desconocido
+ unknown_platform: Plataforma desconocida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 29c4e84e73..04f9b23465 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1405,6 +1405,7 @@ es:
confirm_remove_selected_followers: "¿Estás seguro de que quieres eliminar los seguidores seleccionados?"
confirm_remove_selected_follows: "¿Estás seguro de que quieres eliminar los seguidos seleccionados?"
dormant: Inactivo
+ follow_failure: No se pudieron seguir algunas de las cuentas seleccionadas.
follow_selected_followers: Seguir a los seguidores seleccionados
followers: Seguidores
following: Siguiendo
@@ -1444,6 +1445,7 @@ es:
electron: Electron
firefox: Firefox
generic: Desconocido
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador de Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ es:
qq: Navegador QQ
safari: Safari
uc_browser: Navegador UC
+ unknown_browser: Navegador Desconocido
weibo: Weibo
current_session: Sesión actual
description: "%{browser} en %{platform}"
@@ -1465,9 +1468,10 @@ es:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: GNU Linux
mac: Mac
- other: Desconocido
+ unknown_platform: Plataforma Desconocida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 55cb810116..3da5784028 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -979,7 +979,7 @@ et:
delete_account: Konto kustutamine
delete_account_html: Kui soovid oma konto kustutada, siis jätka siit. Pead kustutamise eraldi kinnitama.
description:
- prefix_invited_by_user: "@%{name} kutsub Teid liituma selle Mastodoni serveriga!"
+ prefix_invited_by_user: "@%{name} kutsub sind liituma selle Mastodoni serveriga!"
prefix_sign_up: Loo Mastodoni konto juba täna!
suffix: Kasutajakontoga saad jälgida inimesi, postitada uudiseid ning pidada kirjavahetust ükskõik millise Mastodoni serveri kasutajatega ja muudki!
didnt_get_confirmation: Ei saanud kinnituse juhendeid?
@@ -1248,7 +1248,7 @@ et:
'86400': 1 päev
expires_in_prompt: Mitte kunagi
generate: Loo
- invited_by: 'Teid kutsus:'
+ invited_by: 'Sind kutsus:'
max_uses:
one: 1 kasutus
other: "%{count} kasutust"
@@ -1332,13 +1332,13 @@ et:
title: Uus jälgija
follow_request:
action: Halda jälgimistaotlusi
- body: "%{name} soovib Teid jälgida"
+ body: "%{name} soovib sind jälgida"
subject: 'Ootav jälgija: %{name}'
title: Uus jälgimistaotlus
mention:
action: Vasta
- body: "%{name} mainis Teid:"
- subject: "%{name} mainis Teid"
+ body: "%{name} mainis sind:"
+ subject: "%{name} mainis sind"
title: Uus mainimine
poll:
subject: "%{name} küsitlus lõppes"
@@ -1405,6 +1405,7 @@ et:
confirm_remove_selected_followers: Oled kindel, et soovid eemaldada valitud jälgijad?
confirm_remove_selected_follows: Oled kindel, et soovid eemaldada valitud jälgitavad?
dormant: Seisev
+ follow_failure: Mõne valitud konto jälgimine polnud võimalik.
follow_selected_followers: Valitud jälgijate jälgimine
followers: Jälgijad
following: Jälgib
@@ -1444,6 +1445,7 @@ et:
electron: Electron
firefox: Firefox
generic: Tundmatu veebilehitseja
+ huawei_browser: Huawei veebilehitseja
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ et:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Tundmatu veebilehitseja
weibo: Weibo
current_session: Praegune seanss
description: "%{browser} platvormil %{platform}"
@@ -1465,9 +1468,10 @@ et:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: tundmatu platvorm
+ unknown_platform: Tundmatu platvorm
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 0b2ab33d4d..39e0b26070 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1407,6 +1407,7 @@ eu:
confirm_remove_selected_followers: Ziur al zaude hautatutako jarraitzaileak ezabatu nahi dituzula?
confirm_remove_selected_follows: Ziur al zaude hautatutako jarraipenak ezabatu nahi dituzula?
dormant: Ez aktiboa
+ follow_failure: Ezin izan dira aukeratutako kontu batzuk jarraitu.
follow_selected_followers: Jarraitu hautatutako jarraitzaileak
followers: Jarraitzaileak
following: Jarraitzen
@@ -1446,6 +1447,7 @@ eu:
electron: Electron
firefox: Firefox
generic: Nabigatzaile ezezaguna
+ huawei_browser: Huawei nabigatzailea
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi nabigatzailea
@@ -1455,6 +1457,7 @@ eu:
qq: QQ nabigatzailea
safari: Safari
uc_browser: UC nabigatzailea
+ unknown_browser: Nabigatzaile ezezaguna
weibo: Weibo
current_session: Uneko saioa
description: "%{browser} - %{platform}"
@@ -1467,9 +1470,10 @@ eu:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: plataforma ezezaguna
+ unknown_platform: Plataforma ezezaguna
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index a418dc3776..0127d0e616 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -1,7 +1,7 @@
---
fa:
about:
- about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکتها، طراحی اخلاقمدار، و معماری غیرمتمرکز! با ماستودون صاحب دادههای خودتان باشید!'
+ about_mastodon_html: 'شبکهی اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکتها، طراحی اخلاقمدار، و معماری غیرمتمرکز! با ماستودون صاحب دادههای خودتان باشید!'
contact_missing: تنظیم نشده
contact_unavailable: موجود نیست
hosted_on: ماستودون، میزبانیشده روی %{domain}
@@ -91,6 +91,7 @@ fa:
moderation:
active: فعّال
all: همه
+ disabled: غیرفعال
pending: منتظر
silenced: محدود
suspended: تعلیق شده
@@ -128,6 +129,7 @@ fa:
search: جستجو
search_same_email_domain: دیگر کاربران با دامنهٔ رایانامهٔ یکسان
search_same_ip: دیگر کاربران با IP یکسان
+ security: امنیت
security_measures:
only_password: فقط گذرواژه
password_and_2fa: گذرواژه و ۲عاملی
@@ -201,6 +203,7 @@ fa:
reject_user: رد کاربر
remove_avatar_user: برداشتن تصویر نمایه
reopen_report: بازگشایی گزارش
+ resend_user: ارسال مجدد رایانامه تایید
reset_password_user: بازنشانی گذرواژه
resolve_report: رفع گزارش
sensitive_account: علامتگذاری رسانه در حسابتان به عنوان حساس
@@ -215,6 +218,7 @@ fa:
update_custom_emoji: بهروز رسانی اموجی سفارشی
update_domain_block: بهروزرسانی مسدودسازی دامنه
update_status: بهروز رسانی وضعیت
+ update_user_role: به روزرسانی نقش
actions:
approve_appeal_html: "%{name} درخواست تجدیدنظر تصمیم مدیر را از %{target} پذیرفت"
approve_user_html: "%{name} ثبت نام %{target} را تایید کرد"
@@ -425,6 +429,7 @@ fa:
title: سیاستهای محتوا
dashboard:
instance_accounts_dimension: حسابهای پیشتر پیگیری شده
+ instance_accounts_measure: حسابهای ذخیره شده
instance_followers_measure: پیگیرندگانمان در آنجا
instance_follows_measure: پیگیرندگانشان در اینجا
instance_languages_dimension: زبانهای برتر
@@ -511,9 +516,11 @@ fa:
assign_to_self: به عهدهٔ من بگذار
assigned: مدیر عهدهدار
by_target_domain: دامنهٔ حساب گزارششده
+ cancel: لغو
category: دسته
comment:
none: هیچ
+ confirm: تأیید
created_at: گزارششده
delete_and_resolve: حذف فرستهها
forwarded: هدایت شده
@@ -549,6 +556,7 @@ fa:
add_new: افزودن نقش
categories:
administration: مدیریت
+ devops: DevOps
invites: دعوتها
moderation: نظارت
special: ویژه
@@ -1124,7 +1132,6 @@ fa:
ios: آیاواس
linux: لینوکس
mac: مک
- other: سیستم ناشناخته
windows: ویندوز
windows_mobile: ویندوز همراه
windows_phone: تلفن ویندوزی
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 30d5f11791..a9554d0961 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -954,7 +954,7 @@ fi:
body: Mastodonin ovat kääntäneet vapaaehtoiset.
guide_link: https://crowdin.com/project/mastodon
guide_link_text: Kaikki voivat osallistua.
- sensitive_content: Arkaluontoista sisältöä
+ sensitive_content: Arkaluonteinen sisältö
toot_layout: Viestin asettelu
application_mailer:
notification_preferences: Muuta sähköpostiasetuksia
@@ -1022,7 +1022,7 @@ fi:
status:
account_status: Tilin tila
confirming: Odotetaan sähköpostivahvistuksen valmistumista.
- functional: Tilisi on täysin toimiva.
+ functional: Tilisi on täysin toiminnassa.
pending: Hakemuksesi odottaa henkilökuntamme tarkastusta. Tämä voi kestää jonkin aikaa. Saat sähköpostiviestin, jos hakemuksesi on hyväksytty.
redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}.
view_strikes: Näytä tiliäsi koskevia aiempia varoituksia
@@ -1405,6 +1405,7 @@ fi:
confirm_remove_selected_followers: Haluatko varmasti poistaa valitut seuraajat?
confirm_remove_selected_follows: Haluatko varmasti poistaa valitut seuraamiset?
dormant: Horroksessa
+ follow_failure: Joitain valittuja tilejä ei voitu seurata.
follow_selected_followers: Seuraa valittuja seuraajia
followers: Seuraajat
following: Seuratut
@@ -1444,6 +1445,7 @@ fi:
electron: Electron
firefox: Firefox
generic: Tuntematon selain
+ huawei_browser: Huawei-selain
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi -selain
@@ -1453,6 +1455,7 @@ fi:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Tuntematon selain
weibo: Weibo
current_session: Nykyinen istunto
description: "%{browser} alustalla %{platform}"
@@ -1465,9 +1468,10 @@ fi:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: tuntematon alusta
+ unknown_platform: Tuntematon alusta
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/fo.yml b/config/locales/fo.yml
index baebaae2f3..3199690c9a 100644
--- a/config/locales/fo.yml
+++ b/config/locales/fo.yml
@@ -1405,6 +1405,7 @@ fo:
confirm_remove_selected_followers: Vil tú veruliga strika valdu fylgjararnar?
confirm_remove_selected_follows: Vil tú veruliga strika valdu fylgingarnar?
dormant: Í dvala
+ follow_failure: Tað bar ikki til at fylgja øllum valdu kontunum.
follow_selected_followers: Fylg valdu fylgjarum
followers: Fylgjarar
following: Fylgi
@@ -1444,6 +1445,7 @@ fo:
electron: Electron
firefox: Firefox
generic: Ókendur kagi
+ huawei_browser: Huawei kagi
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ fo:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Ókendur kagi
weibo: Weibo
current_session: Verandi seta
description: "%{browser} á %{platform}"
@@ -1465,9 +1468,10 @@ fo:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: ókendur pallur
+ unknown_platform: Ókendur pallur
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/fr-QC.yml b/config/locales/fr-QC.yml
index 922cea0dca..400ed4b11e 100644
--- a/config/locales/fr-QC.yml
+++ b/config/locales/fr-QC.yml
@@ -1405,6 +1405,7 @@ fr-QC:
confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ?
confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ?
dormant: Dormant
+ follow_failure: Impossibilité de suivre certains des comptes sélectionnés.
follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s
followers: Abonné·e
following: Abonnement
@@ -1444,6 +1445,7 @@ fr-QC:
electron: Electron
firefox: Firefox
generic: Navigateur inconnu
+ huawei_browser: Navigateur Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ fr-QC:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Navigateur inconnu
weibo: Weibo
current_session: Session courante
description: "%{browser} sur %{platform}"
@@ -1465,9 +1468,10 @@ fr-QC:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: système inconnu
+ unknown_platform: Plateforme inconnue
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index c0d48df88f..048cbd5270 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1405,6 +1405,7 @@ fr:
confirm_remove_selected_followers: Voulez-vous vraiment supprimer les abonné⋅e⋅s sélectionné⋅e⋅s ?
confirm_remove_selected_follows: Voulez-vous vraiment supprimer les abonnements sélectionnés ?
dormant: Dormant
+ follow_failure: Impossibilité de suivre certains des comptes sélectionnés.
follow_selected_followers: Suivre les abonné·e·s sélectionné·e·s
followers: Abonné·e
following: Abonnement
@@ -1444,6 +1445,7 @@ fr:
electron: Electron
firefox: Firefox
generic: Navigateur inconnu
+ huawei_browser: Navigateur Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ fr:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Navigateur inconnu
weibo: Weibo
current_session: Session courante
description: "%{browser} sur %{platform}"
@@ -1465,9 +1468,10 @@ fr:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: système inconnu
+ unknown_platform: Plateforme inconnue
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index 2c1c8657ff..15f4bd88b7 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1405,6 +1405,7 @@ fy:
confirm_remove_selected_followers: Binne jo wis dat jo de selektearre folgers net mear folgje wolle?
confirm_remove_selected_follows: Binne jo wis dat jo de selektearre folge accounts net mear folgje wolle?
dormant: Slommerjend
+ follow_failure: Kin guon fan de selektearre accounts net folgje.
follow_selected_followers: Selektearre folgers folgje
followers: Folgers
following: Folgjend
@@ -1444,6 +1445,7 @@ fy:
electron: Electron
firefox: Firefox
generic: Unbekende browser
+ huawei_browser: Huawei-browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ fy:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Unbekende browser
weibo: Weibo
current_session: Aktuele sesje
description: "%{browser} op %{platform}"
@@ -1465,9 +1468,10 @@ fy:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: ûnbekend platfoarm
+ unknown_platform: Unbekend platfoarm
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 4aa2ae98b9..f430379871 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -461,7 +461,6 @@ ga:
ios: iOS
linux: Linux
mac: macOS
- other: ardán anaithnid
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index b5347d91b4..fb3b8f8eea 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1503,7 +1503,6 @@ gd:
ios: iOS
linux: Linux
mac: macOS
- other: ùrlar nach aithne dhuinn
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 2c3af8f889..0eccaa9511 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1405,6 +1405,7 @@ gl:
confirm_remove_selected_followers: Tes a certeza de querer deixar de seguir as seguidoras seleccionadas?
confirm_remove_selected_follows: Tes a certeza de querer eliminar os seguimentos seleccionados?
dormant: En repouso
+ follow_failure: Non puido seguir algunha das contas seleccionadas.
follow_selected_followers: Seguir seguidoras seleccionadas
followers: Seguidoras
following: A Seguir
@@ -1444,6 +1445,7 @@ gl:
electron: Electron
firefox: Firefox
generic: Navegador descoñecido
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ gl:
qq: Navegador QQ
safari: Safari
uc_browser: Navegador QQ
+ unknown_browser: Navegador descoñecido
weibo: Weibo
current_session: Sesión actual
description: "%{browser} en %{platform}"
@@ -1465,9 +1468,10 @@ gl:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: plataforma descoñecida
+ unknown_platform: Plataforma descoñecida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/he.yml b/config/locales/he.yml
index a4af50b533..aff0e7c6ac 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1457,6 +1457,7 @@ he:
confirm_remove_selected_followers: האם את/ה בטוח/ה שברצונך להסיר את העוקבים שסומנו?
confirm_remove_selected_follows: האם את/ה בטוח/ה שברצונך להסיר את הנעקבים שסומנו?
dormant: רדומים
+ follow_failure: נכשלה העקיבה אחרי חלק מהחשבונות שבחרת.
follow_selected_followers: עקוב אחר הנעקבים שנבחרו
followers: עוקבים
following: נעקבים
@@ -1496,6 +1497,7 @@ he:
electron: אלקטרון
firefox: פיירפוקס
generic: דפדפן לא ידוע
+ huawei_browser: דפדפן וואווי
ie: אינטרנט אקספלורר
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1505,6 +1507,7 @@ he:
qq: דפדפן QQ
safari: ספארי
uc_browser: דפדפן UC
+ unknown_browser: דפדפן לא מזוהה
weibo: Weibo
current_session: חיבור נוכחי
description: "%{browser} על %{platform}"
@@ -1517,9 +1520,10 @@ he:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: מערכת הפעלה KaiOS
linux: לינוקס
mac: macOS
- other: סביבה לא ידועה
+ unknown_platform: פלטפורמה לא מזוהה
windows: חלונות
windows_mobile: חלונות מובייל
windows_phone: טלפון חלונות
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
index 50fae82bd8..228bd16593 100644
--- a/config/locales/hi.yml
+++ b/config/locales/hi.yml
@@ -8,3 +8,12 @@ hi:
'410': The page you were looking for doesn't exist here anymore.
'429': Too many requests
'503': The page could not be served due to a temporary server failure.
+ relationships:
+ follow_failure: चुने हुए अकाउंट्स में से कुछ को फ़ॉलो नहीं किया जा सकता
+ sessions:
+ browsers:
+ huawei_browser: हुआवे ब्राउज़र
+ unknown_browser: अनजान ब्राउज़र
+ platforms:
+ kai_os: काइ ओएस
+ unknown_platform: अनजान प्लेटफॉर्म
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index e9d414ef59..94cfb82aec 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -165,8 +165,6 @@ hr:
remote_follow:
missing_resource: Nije moguće pronaći traženi URL preusmjeravanja za Vaš račun
sessions:
- platforms:
- other: nepoznata platforma
revoke: Opozovi
revoke_success: Sesija je uspješno opozvana
title: Sesije
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index 2887b4a69a..6c9d869e17 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1405,6 +1405,7 @@ hu:
confirm_remove_selected_followers: Biztos, hogy el szeretnéd távolítani a kiválasztott követőket?
confirm_remove_selected_follows: Biztos, hogy el szeretnéd távolítani a kiválasztott követéseket?
dormant: Elhagyott
+ follow_failure: Nem sikerült bekövetni néhányat a kiválasztott fiókok közül.
follow_selected_followers: Kiválasztott követők bekövetése
followers: Követők
following: Követve
@@ -1444,6 +1445,7 @@ hu:
electron: Electron
firefox: Firefox
generic: Ismeretlen böngésző
+ huawei_browser: Huawei Böngésző
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Böngésző
@@ -1453,6 +1455,7 @@ hu:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Ismeretlen böngésző
weibo: Weibo
current_session: Jelenlegi munkamenet
description: "%{browser} az alábbi platformon: %{platform}"
@@ -1465,9 +1468,10 @@ hu:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: ismeretlen platform
+ unknown_platform: Ismeretlen platform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index 158402ce81..7a1b33c709 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -756,7 +756,6 @@ hy:
ios: iOS
linux: Լինուքս
mac: macOS
- other: անհայտ հարթակ
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/id.yml b/config/locales/id.yml
index 0342c7bd90..d6672e96da 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1393,7 +1393,6 @@ id:
ios: iOS
linux: Linux
mac: Mac
- other: platform yang tidak diketahui
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/io.yml b/config/locales/io.yml
index b557788297..ab37c13c2a 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1376,7 +1376,6 @@ io:
ios: iOS
linux: Linux
mac: macOS
- other: nesavata platformo
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 2ba3d3108c..75fff84417 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1405,6 +1405,7 @@ is:
confirm_remove_selected_followers: Ertu viss um að þú viljir fjarlægja valda fylgjendur?
confirm_remove_selected_follows: Ertu viss um að þú viljir fjarlægja valið sem fylgst er með?
dormant: Sofandi
+ follow_failure: Gat ekki fylgst með sumum af völdu aðgöngunum.
follow_selected_followers: Fylgjast með völdum fylgjendum
followers: Fylgjendur
following: Fylgist með
@@ -1444,6 +1445,7 @@ is:
electron: Electron
firefox: Firefox
generic: Óþekktur vafri
+ huawei_browser: Huawei-vafri
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi vafri
@@ -1453,6 +1455,7 @@ is:
qq: QQ vafri
safari: Safari
uc_browser: UC-vafrinn
+ unknown_browser: Óþekktur vafri
weibo: Weibo
current_session: Núverandi seta
description: "%{browser} á %{platform}"
@@ -1465,9 +1468,10 @@ is:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: óþekktu stýrikerfi
+ unknown_platform: Óþekkt stýrikerfi
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/it.yml b/config/locales/it.yml
index ce3fd34b7e..694f4e8061 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1407,6 +1407,7 @@ it:
confirm_remove_selected_followers: Sei sicuro di voler rimuovere i follower selezionati?
confirm_remove_selected_follows: Sei sicuro di voler rimuovere i follow selezionati?
dormant: Dormiente
+ follow_failure: Impossibile seguire alcuni degli account selezionati.
follow_selected_followers: Segui i seguaci selezionati
followers: Seguaci
following: Seguiti
@@ -1446,6 +1447,7 @@ it:
electron: Electron
firefox: Firefox
generic: Browser sconosciuto
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1455,6 +1457,7 @@ it:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Browser sconosciuto
weibo: Weibo
current_session: Sessione corrente
description: "%{browser} su %{platform}"
@@ -1467,9 +1470,10 @@ it:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: piattaforma sconosciuta
+ unknown_platform: Piattaforma sconosciuta
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index 6743d83883..5d0b274111 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -569,7 +569,7 @@ ja:
other_description_html: アカウントの動作を制御するためのオプションや、報告されたアカウントへの通信をカスタマイズするためのオプションを確認してください。
resolve_description_html: 報告されたアカウントに対していかなる措置も取られず、ストライクも記録されず、報告は終了します。
silence_description_html: このアカウントは、すでにフォローしている人、または手動で検索した人にしか見えないため、リーチが極端に制限されます。いつでも元に戻すことができます。このアカウントに対するすべての通報をクローズします。
- suspend_description_html: アカウントとそのすべての内容にアクセスできなくなり、最終的に削除され、それとやり取りは不可能になります。 30日以内にリバーシブル。このアカウントに対するすべての通報をクローズします。
+ suspend_description_html: アカウントとそのすべての内容にアクセスできなくなり、最終的に削除され、やり取りは不可能になります。 30日以内であれば元に戻すことができます。このアカウントに対するすべての通報をクローズします。
actions_description_html: このレポートを解決するために取るアクションを決定します。 報告されたアカウントに対して懲罰的な措置を取った場合、メール通知が送信されますがスパムカテゴリが選択されている場合を除きます。
actions_description_remote_html: この通報を解決するためのアクションを選択してください。これはあなたのサーバーがこのリモートアカウントと通信し、そのコンテンツを処理する時のみ影響します。
add_to_report: 通報にさらに追加
@@ -1139,7 +1139,7 @@ ja:
filters:
contexts:
account: プロフィール
- home: ホームタイムライン
+ home: ホームおよびリスト
notifications: 通知
public: 公開タイムライン
thread: 会話
@@ -1379,6 +1379,7 @@ ja:
confirm_remove_selected_followers: 選択したフォロワーを削除してもよろしいですか?
confirm_remove_selected_follows: 選択したフォローを削除してもよろしいですか?
dormant: 非アクティブ
+ follow_failure: 選択したアカウントの一部をフォローできませんでした。
follow_selected_followers: 選択したフォロワーをフォロー
followers: フォロワー
following: フォロー中
@@ -1418,6 +1419,7 @@ ja:
electron: Electron
firefox: Firefox
generic: 不明なブラウザ
+ huawei_browser: Huaweiブラウザ
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1427,6 +1429,7 @@ ja:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: 不明なブラウザ
weibo: Weibo
current_session: 現在のセッション
description: "%{platform}上の%{browser}"
@@ -1439,9 +1442,10 @@ ja:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: 不明なプラットフォーム
+ unknown_platform: 不明なプラットフォーム
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index dcc7e6580e..80dc2b9f57 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -421,7 +421,6 @@ ka:
ios: აი-ოსი
linux: ლინუქსი
mac: მაკი
- other: ამოუცნობი პლატფორმა
windows: ვინდოუსი
windows_mobile: ვინდოუს მობაილი
windows_phone: ვინდოუს ფოუნი
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 085a8958a9..ffd79e76f8 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -667,7 +667,6 @@ kab:
ios: iOS
linux: Linux
mac: macOS
- other: anagraw arussin
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Tiliγri Windows Phone
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index c7bdae1772..d250a30a89 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -644,7 +644,6 @@ kk:
ios: iОS
linux: Lіnux
mac: Mаc
- other: белгісіз платформа
windows: Windоws
windows_mobile: Windows Mоbile
windows_phone: Windоws Phone
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 057e57068f..96d73af86c 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1065,7 +1065,7 @@ ko:
email_contact_html: 아직 도착하지 않았다면, %{email}에 메일을 보내 도움을 요청할 수 있습니다
email_reconfirmation_html: 아직 확인 메일이 도착하지 않은 경우, 다시 요청할 수 있습니다
irreversible: 계정을 복구하거나 다시 사용할 수 없게 됩니다
- more_details_html: 더 자세한 정보는, 개인정보 정책을 참고하세요.
+ more_details_html: 더 자세한 정보는, 개인정보처리방침을 참고하세요.
username_available: 이 사용자명을 다시 쓸 수 있게 됩니다.
username_unavailable: 이 사용자명은 앞으로도 쓸 수 없는 채로 남게 됩니다.
disputes:
@@ -1137,7 +1137,7 @@ ko:
add_new: 추가
errors:
limit: 추천 해시태그 최대 개수를 초과합니다
- hint_html: "추천 해시태그가 무엇이죠? 당신의 공개 프로필 페이지에 눈에 띄게 표현 되며 사람들이 그 해시태그를 포함한 당신의 글을 찾아 볼 수 있도록 합니다. 창작활동이나 긴 기간을 가지는 프로젝트를 쭉 따라가기에 좋은 도구입니다."
+ hint_html: "추천 해시태그가 무엇일까요? 해시태그는 공개 프로필에 눈에 잘 띄게 표시되며, 사람들은 해당 해시태그로 내 공개 글을 검색할 수 있습니다. 창작물이나 장기 프로젝트를 추적하는 데 유용한 도구입니다."
filters:
contexts:
account: 프로필
@@ -1370,7 +1370,7 @@ ko:
posting_defaults: 게시물 기본설정
public_timelines: 공개 타임라인
privacy_policy:
- title: 개인정보 정책
+ title: 개인정보처리방침
reactions:
errors:
limit_reached: 리액션 갯수 제한에 도달했습니다
@@ -1381,6 +1381,7 @@ ko:
confirm_remove_selected_followers: 정말로 선택된 팔로워들을 삭제하시겠습니까?
confirm_remove_selected_follows: 정말로 선택된 팔로우를 끊으시겠습니까?
dormant: 휴면
+ follow_failure: 선택한 계정 중 몇몇은 팔로우 할 수 없었습니다.
follow_selected_followers: 선택한 팔로워들을 팔로우
followers: 팔로워
following: 팔로잉
@@ -1420,6 +1421,7 @@ ko:
electron: 일렉트론
firefox: 파이어폭스
generic: 알 수 없는 브라우저
+ huawei_browser: 화웨이 브라우저
ie: 인터넷 익스플로러
micro_messenger: 마이크로메신저
nokia: Nokia S40 Ovi 브라우저
@@ -1429,6 +1431,7 @@ ko:
qq: QQ 브라우저
safari: 사파리
uc_browser: UC 브라우저
+ unknown_browser: 알 수 없는 브라우저
weibo: 웨이보
current_session: 현재 세션
description: "%{platform}의 %{browser}"
@@ -1441,9 +1444,10 @@ ko:
chrome_os: 크롬OS
firefox_os: 파이어폭스OS
ios: iOS
+ kai_os: KaiOS
linux: 리눅스
mac: macOS
- other: 알 수 없는 플랫폼
+ unknown_platform: 알 수 없는 플랫폼
windows: 윈도우
windows_mobile: 윈도우 모바일
windows_phone: 윈도우 폰
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index fa291b5c7f..534eacdd66 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1421,7 +1421,6 @@ ku:
ios: iOS
linux: Linux
mac: macOS
- other: platforma nenas
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index b6dd360dbe..5139c7c480 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -433,8 +433,6 @@ lt:
current_session: Dabartinė sesija
description: "%{browser} ant %{platform}"
explanation: Čia rodomos web naršyklės prijungtos prie Jūsų Mastodon paskyros.
- platforms:
- other: nežinoma platforma
revoke: Atšaukti
revoke_success: Sesija sėkmingai atšaukta
title: Sesijos
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index 1c5eb356d4..fbe0ccc727 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1351,7 +1351,7 @@ lv:
favourite:
body: 'Tavu ziņu izlasei pievienoja %{name}:'
subject: "%{name} pievienoja tavu ziņu izlasei"
- title: Jauns izcēlums
+ title: Jauna izlase
follow:
body: "%{name} tagad tev seko!"
subject: "%{name} tagad tev seko"
@@ -1431,6 +1431,7 @@ lv:
confirm_remove_selected_followers: Vai tiešām vēlies noņemt atlasītos sekotājus?
confirm_remove_selected_follows: Vai tiešām vēlies noņemt atlasītos sekojumus?
dormant: Snaudošie
+ follow_failure: Nevarēja sekot dažiem atlasītajiem kontiem.
follow_selected_followers: Sekot atlasītajiem sekotājiem
followers: Sekotāji
following: Seko
@@ -1470,6 +1471,7 @@ lv:
electron: Electron
firefox: Firefox
generic: Nezināms pārlūks
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1479,6 +1481,7 @@ lv:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Nezināms Pārlūks
weibo: Weibo
current_session: Pašreizējā sesija
description: "%{browser} uz %{platform}"
@@ -1491,9 +1494,10 @@ lv:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: nezināma platforma
+ unknown_platform: Nezināma Platforma
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 2bee9fee14..60db149e06 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -921,7 +921,6 @@ ms:
android: Android
ios: iOS
linux: Linux
- other: platform tidak dikenali
title: Sesi
settings:
account: Akaun
diff --git a/config/locales/my.yml b/config/locales/my.yml
index a2aaeece03..ae3b941e02 100644
--- a/config/locales/my.yml
+++ b/config/locales/my.yml
@@ -2,6 +2,7 @@
my:
about:
about_mastodon_html: အနာဂတ်အတွက်လူမှုကွန်ရက် - ကြော်ငြာများမရှိခြင်း၊ အဖွဲ့သားများအား စောင့်ကြည့်မှုမရှိခြင်း၊ ကျင့်ဝတ်ပိုင်းဆိုင်ရာစိတ်ချရခြင်းနှင့် ဗဟိုချုပ်ကိုင်မှုမရှိခြင်း၊ သင့်အချက်အလက်များကို Mastodon နှင့်သာ မျှဝေအသုံးပြုလိုက်ပါ။
+ contact_unavailable: မရှိ
hosted_on: "%{domain} မှ လက်ခံဆောင်ရွက်ထားသော Mastodon"
title: အကြောင်း
accounts:
@@ -17,8 +18,12 @@ my:
other: ပို့စ်တင်မယ်
posts_tab_heading: ပို့စ်များ
admin:
+ account_actions:
+ title: "%{acct} စိစစ်မှုလုပ်ဆောင်ရန်"
account_moderation_notes:
create: မှတ်စုမှထွက်ရန်
+ created_msg: စိစစ်ခြင်းမှတ်စုကို ဖန်တီးပြီးပါပြီ။
+ destroyed_msg: စိစစ်ခြင်းမှတ်စုကို ဖျက်ပစ်လိုက်ပါပြီ။
accounts:
add_email_domain_block: ဒိုမိန်းကိုပိတ်မည်
approve: အတည်ပြုပါ
@@ -44,6 +49,8 @@ my:
custom: စိတ်ကြိုက်
delete: အချက်အလက်များဖျက်ပါ
deleted: ဖျက်ပြီးပါပြီ
+ disable: ရပ်တန့်
+ disable_sign_in_token_auth: အီးမေးတိုကင် အထောက်အထားပြခြင်းကို ပိတ်ပါ
disable_two_factor_authentication: 2FA ကို ပိတ်ပါ
display_name: ဖော်ပြမည့်အမည်
domain: ဒိုမိန်း
@@ -55,6 +62,8 @@ my:
followers: စောင့်ကြည့်သူများ
follows: စောင့်ကြည့်မယ်
header: မျက်နှာဖုံးပုံ
+ inbox_url: Inbox URL
+ invite_request_text: ပါဝင်ရခြင်း အကြောင်းအရင်း
invited_by: ဖိတ်ခေါ်ထားသည်
ip: IP
joined: စတင်ဝင်ရောက်သည့်နေ့
@@ -66,6 +75,7 @@ my:
login_status: အကောင့်ဝင်ရောက်မှုအခြေအနေ
media_attachments: မီဒီယာ ပူးတွဲချက်များ
memorialize: အမှတ်တရအဖြစ် ပြောင်းပါ
+ memorialized_msg: "%{username} ကို အမှတ်တရအကောင့်အဖြစ် ပြောင်းလဲခဲ့သည်"
moderation:
active: လက်ရှိအသုံးပြုလျက်ရှိခြင်း
all: အားလုံး
@@ -78,6 +88,7 @@ my:
most_recent_activity: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန်
most_recent_ip: အသုံးပြုလေ့ရှိသည့် IP လိပ်စာ
no_account_selected: မည်သည့်အကောင့်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
+ no_role_assigned: တာဝန်ပေးအပ်ထားခြင်း မရှိပါ
not_subscribed: စာရင်းသွင်းထားခြင်းမရှိပါ
perform_full_suspension: ရပ်ဆိုင်းရန်
promote: အထောက်အကူ
@@ -86,6 +97,8 @@ my:
redownload: ပရိုဖိုင်ကို ပြန်လည်စတင်ရန်
redownloaded_msg: မူလမှစ၍ %{username} ၏ ပရိုဖိုင်ကို ပြန်လည်စတင်ပြီးပါပြီ
reject: ဖယ်ရှားပါ
+ rejected_msg: "%{username} ၏ အကောင့်ဖွင့်အက်ပလီကေးရှင်းကို ဖယ်ရှားလိုက်ပါပြီ"
+ remote_suspension_irreversible: ဤအကောင့်၏အချက်အလက်ကို လုံးဝ ဖျက်လိုက်ပါပြီ။
remove_avatar: ကိုယ်စားပြုရုပ်ပုံကို ဖယ်ရှားပါ
remove_header: မျက်နှာဖုံးပုံ ဖယ်ရှားရန်
removed_avatar_msg: "%{username} ၏ ကိုယ်စားပြုရုပ်ပုံအား ဖယ်ရှားပြီးပါပြီ"
@@ -98,11 +111,14 @@ my:
resubscribe: ပြန်လည်စာရင်းသွင်းပါ
role: အခန်းကဏ္ဍ
search: ရှာရန်
+ search_same_email_domain: အီးမေးလ်ဒိုမိန်းတူညီသည့် အခြားအသုံးပြုသူများ
search_same_ip: IP တူတူ အသုံးပြုသော အခြားသူများ
security: လုံခြုံရေး
security_measures:
only_password: စကားဝှက်ဖြင့်သာ
password_and_2fa: စကားဝှက်နှင့် 2FA
+ sensitized: သတိထားရသည်ဟု အမှတ်အသားပြုထားပါ
+ shared_inbox_url: inbox URL ကို မျှဝေခဲ့သည်
show:
created_reports: ဆောင်ရွက်ခဲ့ပြီးသောအစီရင်ခံစာများ
targeted_reports: အခြားသူများမှဆောင်ရွက်ခဲ့သော အစီရင်ခံစာများ
@@ -115,10 +131,12 @@ my:
title: အကောင့်များ
unblock_email: အီးမေးလ်ကိုပြန်ဖွင့်မည်
unblocked_email_msg: " %{username} အီးမေးလ်ကိုပြန်ဖွင့်လိုက်ပါပြီ"
+ unconfirmed_email: အတည်မပြုရသေးသော အီးမေးလ်
unsubscribe: စာရင်းမှထွက်ရန်
unsuspended_msg: "%{username} ၏ အကောင့်ကို ရပ်ဆိုင်းလိုက်ပါပြီ"
username: အသုံးပြုသူအမည်
view_domain: ဒိုမိန်းအတွက် အကျဉ်းချုပ်ကို ကြည့်ပါ
+ warn: သတိပေးရန်
web: ဝဘ်
whitelisted: ဖက်ဒီကို ခွင့်ပြုခဲ့သည်
action_logs:
@@ -144,9 +162,11 @@ my:
destroy_domain_allow: ဒိုမိန်းခွင့်ပြုခြင်းကို ဖျက်ရန်
destroy_domain_block: ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
destroy_email_domain_block: အီးမေးလ်ဒိုမိန်းပိတ်ပင်ခြင်းအား ဖျက်ရန်
+ destroy_instance: ဒိုမိန်းကို ဖယ်ရှားပါ
destroy_ip_block: IP စည်းမျဉ်းကို ဖျက်ပါ
destroy_status: Post ကို ဖျက်ပါ
destroy_unavailable_domain: အသုံးမပြုနိုင်သောဒိုမိန်းကို ဖျက်ပါ
+ destroy_user_role: အခန်းကဏ္ဍကို ဖျက်ပါ
disable_2fa_user: 2FA ကို ပိတ်ပါ
disable_custom_emoji: စိတ်ကြိုက်အီမိုဂျီကို ပိတ်ပါ
disable_sign_in_token_auth_user: အသုံးပြုသူအတွက် အီးမေးလ်တိုကင် အထောက်အထားပြခြင်းကို ပိတ်ထားသည်
@@ -174,6 +194,7 @@ my:
update_status: ပို့စ်ပြင်ဆင်ရန်
update_user_role: အခန်းကဏ္ဍပြင်ဆင်ရန်
actions:
+ approve_appeal_html: "%{name} က %{target} မှ စိစစ်ဆုံးဖြတ်ချက်အယူခံဝင်ခြင်းကို အတည်ပြုခဲ့သည်"
approve_user_html: " %{name} က %{target} မှ အကောင့်ဖွင့်ခြင်းကို အတည်ပြုထားသည်"
assigned_to_self_report_html: "%{name} က အစီရင်ခံစာ %{target} များကို ၎င်းတို့ထံ ပေးအပ်ခဲ့သည်"
change_email_user_html: "%{name} က အသုံးပြုသူ %{target} ၏ အီးမေးလ်လိပ်စာကို ပြောင်းခဲ့သည်"
@@ -187,6 +208,7 @@ my:
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} ကို ဖျက်လိုက်သည်"
@@ -198,6 +220,7 @@ my:
destroy_instance_html: "%{name} က ဒိုမိန်း %{target} ကို ဖယ်ရှားခဲ့သည်"
destroy_ip_block_html: "%{name} က IP %{target} အတွက် စည်းမျဉ်းကို ဖျက်ထားသည်"
destroy_status_html: "%{name} က %{target} မှ တင်ထားသောပို့စ်ကို ဖယ်ရှားခဲ့သည်"
+ destroy_unavailable_domain_html: "%{name} က ဒိုမိန်း %{target} သို့ ပေးပို့မှုကို ပြန်လည်စတင်ခဲ့သည်"
destroy_user_role_html: "%{name} ဖျက်ထားသော အခန်းကဏ္ဍ %{target} "
disable_2fa_user_html: "%{name} က အသုံးပြုသူ %{target} အတွက် နှစ်ဆင့်ခံလုံခြုံရေးလိုအပ်ချက်ကို ပိတ်ထားသည်"
disable_custom_emoji_html: "%{name} ပိတ်ထားသောအီမိုဂျီ %{target}"
@@ -242,6 +265,8 @@ my:
create: ကြေညာချက်ဖန်တီးပါ
title: ကြေညာချက်အသစ်
publish: ပို့စ်တင်မည်
+ published_msg: ကြေညာချက်တင်ပြီးပါပြီ။
+ scheduled_for: "%{time} အတွက် စီစဉ်ထားသည်"
title: ကြေညာချက်များ
unpublish: ပြန်ဖြုတ်ပါ
unpublished_msg: ကြေညာချက်ကို ဖြုတ်ပြီးပါပြီ
@@ -282,6 +307,10 @@ my:
new_users: အသုံးပြုသူအသစ်များ
pending_appeals_html:
other: "%{count} အယူခံဝင်မှုကို ဆိုင်းငံ့ထားခြင်း"
+ pending_reports_html:
+ other: "%{count} မှတ်တမ်းဆောင်ရွက်ဆဲ"
+ pending_tags_html:
+ other: "%{count} hashtag ဆောင်ရွက်ဆဲ"
pending_users_html:
other: "%{count} ဆိုင်းငံ့အသုံးပြုသူ"
software: ဆော့ဖ်ဝဲလ်
@@ -298,6 +327,7 @@ my:
domain_allows:
add_new: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်ပြုရန်
created_msg: ဒိုမိန်းကို ဖက်ဒီအတွက် ခွင့်ပြုပြီးပါပြီ
+ destroyed_msg: ဒိုမိန်းအား ဖက်ဒီမှ ခွင့်မပြုပါ
export: ထုတ်ယူခြင်း
import: ထည့်သွင်းခြင်း
undo: ဒိုမိန်းဖြင့် ဖက်ဒီကို ခွင့်မပြုပါ
@@ -319,11 +349,17 @@ my:
private_comment: သီးသန့်မှတ်ချက်
private_comment_hint: စိစစ်သူများ၏အတွင်းပိုင်းအသုံးပြုမှုအတွက် ဤဒိုမိန်းကန့်သတ်ချက်ဆိုင်ရာမှတ်ချက်။
public_comment: အများမြင်မှတ်ချက်
+ public_comment_hint: ဒိုမိန်းကန့်သတ်ချက်များစာရင်းကို ကြော်ငြာထားပါက အများသူငှာအတွက် ဤဒိုမိန်းကန့်သတ်ချက်နှင့်ပတ်သက်၍ ရေးသားပေးထားရန်။
reject_media: မီဒီယာဖိုင်များကို ဖယ်ရှားပါ
+ reject_media_hint: စက်တွင်းသိမ်းဆည်းထားသည့် မီဒီယာဖိုင်များကို ဖယ်ရှားပြီး ဒေါင်းလုဒ်လုပ်ခွင့် မရှိပါ။ ဆိုင်းငံ့ခြင်းများအတွက် မသက်ဆိုင်ပါ။
+ reject_reports: မှတ်တမ်းများ ဖယ်ရှားရန်
+ reject_reports_hint: ဤဒိုမိန်းမှလာသော မှတ်တမ်းအားလုံးကို လျစ်လျူရှုပါ။ ဆိုင်းငံ့ခြင်းများအတွက် မသက်ဆိုင်ပါ။
undo: ဒိုမိန်းပိတ်ပင်ခြင်းကို ပြန်ဖျက်ရန်
view: ဒိုမိန်းပိတ်ပင်ခြင်းကို ကြည့်ရန်
email_domain_blocks:
add_new: အသစ် ထည့်ပါ
+ attempts_over_week:
+ other: ပြီးခဲ့သည့် ရက်သတ္တပတ်အတွင်း %{count} ကြိုးပမ်းမှု
created_msg: အီးမေးလ်ဒိုမိန်းကို ပိတ်ပင်နိုင်ခဲ့ပါသည်
delete: ဖျက်ပါ
dns:
@@ -351,7 +387,13 @@ my:
follow_recommendations:
language: ဘာသာစကားအတွက်
status: အခြေအနေ
+ title: အကြံပြုချက်များကို စောင့်ကြည့်ပါ
+ unsuppress: အကြံပြုချက်စောင့်ကြည့်ခြင်းအား ပြန်လည်ရယူပါ
instances:
+ availability:
+ failures_recorded:
+ other: "%{count} ရက်နေ့တွင် ကြိုးစားမှု မအောင်မြင်ပါ။"
+ title: ရရှိနိုင်မှု
back_to_all: အားလုံး
back_to_limited: ကန့်သတ်ထားသည်
back_to_warning: သတိပေးချက်
@@ -365,6 +407,7 @@ my:
silence: ကန့်သတ်
suspend: ရပ်ဆိုင်းပါ
policy: မူဝါဒ
+ title: အကြောင်းအရာမူဝါဒများ
dashboard:
instance_accounts_dimension: အများဆုံးစောင့်ကြည့်ထားသည့်အကောင့်များ
instance_accounts_measure: သိမ်းဆည်းထားသော အကောင့်များ
@@ -372,10 +415,14 @@ my:
instance_follows_measure: သူတို့၏စောင့်ကြည့်သူများ ဒီနေရာမှာပါ
instance_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
instance_media_attachments_measure: သိမ်းဆည်းထားသော မီဒီယာပူးတွဲဖိုင်များ
+ instance_reports_measure: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ"
instance_statuses_measure: သိမ်းဆည်းထားသောပို့စ်များ
delivery:
all: အားလုံး
+ restart: ပေးပို့မှုကို ပြန်လည်စတင်ရန်
+ stop: ပေးပို့မှုကို ရပ်ရန်
unavailable: မရရှိနိုင်ပါ
+ empty: ဒိုမိန်းများ မတွေ့ပါ။
moderation:
all: အားလုံး
limited: ကန့်သတ်ထားသော
@@ -389,10 +436,13 @@ my:
total_reported: "၎င်းတို့နှင့်ဆိုင်သော အစီရင်ခံစာများ"
total_storage: မီဒီယာ ပူးတွဲချက်များ
invites:
+ deactivate_all: အားလုံးပယ်ဖျက်ရန်
filter:
all: အားလုံး
available: ရရှိနိုင်သော
+ expired: သက်တမ်းကုန်သွားပါပြီ
title: စစ်ထုတ်ခြင်း
+ title: ဖိတ်ခေါ်ခြင်း
ip_blocks:
add_new: စည်းမျဉ်းဖန်တီးပါ
created_msg: IP စည်းမျဉ်းအသစ် ထည့်သွင်းပြီးပါပြီ
@@ -411,21 +461,32 @@ my:
relationships:
title: "%{acct} နှင့် ပတ်သက်မှု"
relays:
+ add_new: relay အသစ်ထည့်ပါ
delete: ဖျက်ပါ
disable: ပိတ်ပါ
disabled: ပိတ်ထားသည်
enable: ဖွင့်ပါ
enabled: ဖွင့်ထားသည်
+ inbox_url: ထပ်ဆင့်ပေးပို့မည့် URL
+ pending: ထပ်ဆင့်အတည်ပြုချက်ကို စောင့်ဆိုင်းနေခြင်း
save_and_enable: သိမ်းပြီး ဖွင့်ရန်
+ setup: ထပ်ဆင့်ချိတ်ဆက်မှုစနစ် ထည့်သွင်းပါ
+ signatures_not_enabled: လုံခြုံရေးမုဒ် သို့မဟုတ် ကန့်သတ်ဖက်ဒီမုဒ်ကို ဖွင့်ထားစဉ် ထပ်ဆင့်ပို့ထားမှုများမှာ မှန်ကန်စွာ အလုပ်မလုပ်နိုင်တော့ပါ
status: အခြေအနေ
+ title: ထပ်ဆင့်ပေးပို့ခြင်းများ
+ report_notes:
+ created_msg: မှတ်တမ်းမှတ်စုကို ဖန်တီးပြီးပါပြီ။
+ destroyed_msg: မှတ်တမ်းမှတ်စုကို ဖျက်ပြီးပါပြီ။
reports:
account:
notes:
other: "%{count} မှတ်စု"
action_log: မှတ်တမ်းများစစ်ဆေးခြင်း
+ action_taken_by: ဆောင်ရွက်ခဲ့ပါသည်
are_you_sure: သေချာပါသလား။
assign_to_self: ကျွန်ုပ်ကို တာဝန်ပေးရန်
assigned: စိစစ်သူကို တာဝန်ပေးရန်
+ by_target_domain: တိုင်ကြားထားသော အကောင့်၏ ဒိုမိန်း
cancel: ပယ်ဖျက်မည်
category: အမျိုးအစား
comment_description_html: "%{name} က နောက်ထပ်အချက်အလက်များ ပံ့ပိုးပေးနိုင်ရန်အတွက် ရေးသားခဲ့သည် -"
@@ -435,6 +496,7 @@ my:
forwarded: ထပ်ဆင့်ပို့ပြီးပါပြီ
forwarded_to: "%{domain} သို့ ထပ်ဆင့်ပို့ထားသည်"
mark_as_resolved: ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ
+ mark_as_sensitive: သတိထားရသည်ဟု အမှတ်အသားပြုပါ
mark_as_unresolved: မဖြေရှင်းရသေးကြောင်း အမှတ်အသားပြုပါ
no_one_assigned: တစ်ယောက်မျှမရှိပါ
notes:
@@ -447,6 +509,7 @@ my:
reopen: အစီရင်ခံစာပြန်ဖွင့်ရန်
report: "#%{id} အစီရင်ခံရန်"
resolved: ဖြေရှင်းပြီးပါပြီ
+ resolved_msg: မှတ်တမ်းကို ဖြေရှင်းပြီးပါပြီ။
skip_to_actions: လုပ်ဆောင်ချက်များသို့ ကျော်သွားရန်
status: အခြေအနေ
summary:
@@ -457,7 +520,10 @@ my:
suspend_html: သင်သည် @%{acct} ၏ အကောင့်ကို ဆိုင်းငံ့ တော့မည်ဖြစ်သည်။ ၎င်းမှာ -
actions:
suspend_html: "@%{acct} ကို ဆိုင်းငံ့ထားသောကြောင့် ပရိုဖိုင်နှင့် အကြောင်းအရာများအား ဝင်ရောက်ခွင့်မရှိတော့သဖြင့် အပြန်အလှန် တုံ့ပြန်၍ မရတော့ခြင်း"
+ close_report: 'တိုင်ကြားစာ #%{id} ကို ဖြေရှင်းပြီးကြောင်း အမှတ်အသားပြုပါ'
delete_data_html: "@%{acct} ၏ ပရိုဖိုင်နှင့် အကြောင်းအရာများကို ဆိုင်းငံ့ထားခြင်းမရှိပါက ယခုမှ ရက်ပေါင်း ၃၀ အတွင်း ဖျက်ရန်"
+ preview_preamble_html: "@%{acct} သည် အောက်ပါအကြောင်းအရာများကြောင့် သတိပေးချက်ကို လက်ခံရရှိပါမည် -"
+ title: မှတ်တမ်းများ
unassign: တာဝန်မှဖြုတ်ရန်
unknown_action_msg: အမည်မသိလုပ်ဆောင်ချက်- %{action}
unresolved: မဖြေရှင်းရသေးပါ
@@ -480,7 +546,9 @@ my:
other: "%{count} ခွင့်ပြုချက်"
privileges:
administrator: စီမံသူ
+ administrator_description: ဤခွင့်ပြုချက် အသုံးပြုသူများအနေဖြင့် ခွင့်ပြုချက်တိုင်းကို ကျော်သွားနိုင်ပါမည်
delete_user_data: အသုံးပြုသူ၏အချက်အလက်ကို ဖျက်ပါ
+ delete_user_data_description: အခြားအသုံးပြုသူများ၏ အချက်အလက်များကို နှောင့်နှေးခြင်းမရှိဘဲ အသုံးပြုသူများအား ဖျက်ခွင့်ပြုသည်
invite_users: အသုံးပြုသူများကို ဖိတ်ခေါ်ရန်
invite_users_description: ဆာဗာသို့ လူသစ်များဖိတ်ခေါ်ရန်အတွက် အသုံးပြုသူအား ခွင့်ပြုရန်
manage_announcements: ကြေညာချက်များကို စီမံပါ
@@ -488,63 +556,103 @@ my:
manage_appeals: အယူခံဝင်ထားခြင်းများကို စီမံပါ
manage_appeals_description: စိစစ်အရေးယူမှုများအပေါ် အယူခံဝင်မှုများ ပြန်လည်သုံးသပ်ရန်အတွက် အသုံးပြုသူများအား ခွင့်ပြုရန်
manage_blocks: ပိတ်ပင်ထားမှုများကို စီမံပါ
+ manage_blocks_description: အသုံးပြုသူများအား အီးမေးလ်ဝန်ဆောင်မှုပေးသူများနှင့် IP လိပ်စာများကို ပိတ်ဆို့ရန် ခွင့်ပြုသည်
manage_custom_emojis: စိတ်ကြိုက်အီမိုဂျီများကို ပြင်ဆင်ရန်
manage_custom_emojis_description: အသုံးပြုသူများအား ဆာဗာပေါ်တွင် စိတ်ကြိုက်အီမိုဂျီများကို စီမံခန့်ခွဲရန် ခွင့်ပြုသည်။
manage_federation: ဖက်ဒီကို စီမံပါ
manage_federation_description: အသုံးပြုသူများအား အခြားဒိုမိန်းများနှင့် ပိတ်ပင်ခြင်း၊ ဖက်ဒီခွင့်ပြုခြင်းနှင့် ပေးပို့နိုင်မှုကို ထိန်းချုပ်ခြင်းတို့ကို ခွင့်ပြုသည်။
manage_invites: ဖိတ်ခေါ်ခြင်းကို စီမံရန်
+ manage_invites_description: အသုံးပြုသူများအား ဖိတ်ခေါ်ထားသည့်လင့်များကို ရှာဖွေကြည့်ရှုပြီး ပိတ်ရန် ခွင့်ပြုသည်
manage_reports: အစီရင်ခံစာများကို စီမံပါ
manage_roles: အခန်းကဏ္ဍများကို စီမံပါ
+ manage_roles_description: အသုံးပြုသူများအား ၎င်းတို့၏အောက်တွင်ရှိသော အခန်းကဏ္ဍများကို စီမံခန့်ခွဲရန်နှင့် သတ်မှတ်ရန် ခွင့်ပြုထားသည်
manage_rules: စည်းမျဉ်းများကို စီမံပါ
+ manage_rules_description: အသုံးပြုသူများအား ဆာဗာစည်းမျဉ်းများကို ပြောင်းလဲခွင့် ပြုထားသည်
manage_settings: သတ်မှတ်ချက်များကို စီမံပါ
manage_settings_description: အသုံးပြုသူများကို ဆိုက်သတ်မှတ်ချက်များ ပြောင်းလဲခွင့် ပြုရန်
+ manage_taxonomies_description: ခေတ်စားနေသော အကြောင်းအရာများကို ပြန်လည်သုံးသပ်ရန်နှင့် hashtag သတ်မှတ်ချက်များကို ပြင်ဆင်ရန်အတွက် အသုံးပြုသူများကို ခွင့်ပြုသည်
manage_user_access: အသုံးပြုသူဝင်ရောက်မှုကို စီမံပါ
+ manage_user_access_description: အသုံးပြုသူများကို အခြားအသုံးပြုသူများ၏ နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ပိတ်ရန်၊ ၎င်းတို့၏ အီးမေးလ်လိပ်စာကို ပြောင်းလဲရန်နှင့် စကားဝှက်ကို ပြန်လည်သတ်မှတ်ရန် ခွင့်ပြုသည်
manage_users: အသုံးပြုသူများကို စီမံပါ
+ manage_webhooks: Webhooks ကို စီမံပါ
+ manage_webhooks_description: စီမံခန့်ခွဲရေးဆိုင်ရာ ဖြစ်ရပ်များအတွက် အသုံးပြုသူများအား webhook စနစ်ထည့်သွင်းရန် ခွင့်ပြုထားသည်
+ view_audit_log_description: အသုံးပြုသူများကို ဆာဗာပေါ်တွင် စီမံခန့်ခွဲရေးဆိုင်ရာ လုပ်ဆောင်ချက်မှတ်တမ်းကို ကြည့်ရှုခွင့်ပြုသည်။
view_dashboard: ဒက်ရှ်ဘုတ်မြင်ကွင်းကို ကြည့်ရန်
view_dashboard_description: အသုံးပြုသူများကို ဒက်ရှ်ဘုတ်မြင်ကွင်းနှင့် အမျိုးမျိုးသော ဆိုဒ်နှင့်ဆိုင်သောဂဏန်းများအား ဝင်ရောက်ကြည့်ရှုခွင့်ပြုသည်
view_devops: DevOps
+ view_devops_description: အသုံးပြုသူများကို Sidekiq နှင့် pgHero ဒက်ရှ်ဘုတ်မြင်ကွင်းများသို့ ဝင်ရောက်ခွင့်ပြုသည်
title: အခန်းကဏ္ဍများ
rules:
+ add_new: စည်းမျဉ်းထည့်ပါ
delete: ဖျက်ပါ
+ edit: စည်းမျဉ်းကို ပြင်ဆင်မည်
title: ဆာဗာစည်းမျဉ်းများ
settings:
about:
manage_rules: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
title: အကြောင်း
appearance:
+ preamble: Mastodon ၏ ဝဘ်ပုံစံကို စိတ်ကြိုက်ပြင်ဆင်ပါ။
title: ပုံပန်းသဏ္ဌာန်
+ default_noindex:
+ desc_html: ဤသတ်မှတ်ချက်ကို ကိုယ်တိုင်မပြောင်းရသေးသော အသုံးပြုသူအားလုံးအပေါ် သက်ရောက်မှုရှိသည်
discovery:
+ follow_recommendations: အကြံပြုချက်များကို စောင့်ကြည့်ပါ
profile_directory: ပရိုဖိုင်လမ်းညွှန်
+ public_timelines: အများမြင်စာမျက်နှာ
+ title: ရှာဖွေတွေ့ရှိမှု
+ trends: လက်ရှိခေတ်စားမှုများ
domain_blocks:
all: လူတိုင်း
disabled: မည်သူ့ကိုမျှ
users: အကောင့်ဝင်ထားသော ပြည်တွင်းအသုံးပြုသူများအတွက်
+ registrations:
+ title: စာရင်းသွင်းထားခြင်းများ
registrations_mode:
modes:
+ approved: အကောင့်ဖွင့်ရန်အတွက် အတည်ပြုချက် လိုအပ်ပါသည်
+ none: မည်သူမျှ အကောင့်ဖွင့်၍မရပါ
open: မည်သူမဆို အကောင့်ဖွင့်နိုင်ပါသည်
title: ဆာဗာသတ်မှတ်ချက်များ
site_uploads:
delete: တင်ထားသောဖိုင်ဖျက်ရန်
+ destroyed_msg: ဆိုက်အပ်လုဒ်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ။
statuses:
account: ရေးသားသူ
application: အက်ပလီကေးရှင်း
back_to_account: အကောင့်စာမျက်နှာသို့ ပြန်သွားရန်
+ batch:
+ remove_from_report: တိုင်ကြားစာမှ ဖယ်ရှားပါ
+ report: တိုင်ကြားစာ
deleted: ဖျက်ပြီးပါပြီ
favourites: အကြိုက်ဆုံးများ
+ history: ဗားရှင်းမှတ်တမ်း
+ in_reply_to: ထံ အကြောင်းပြန်ကြားခြင်း
language: ဘာသာစကား
media:
title: မီဒီယာ
+ metadata: Metadata
+ no_status_selected: မည်သည့်ပို့စ်ကိုမျှ ရွေးချယ်ထားခြင်းမရှိသောကြောင့် ပြောင်းလဲခြင်းမရှိပါ
open: ပို့စ်ဖွင့်ရန်
original_status: မူရင်းပို့စ်
+ reblogs: Reblog များ
+ status_changed: ပို့စ်ပြောင်းပြီးပါပြီ
title: အကောင့်ပို့စ်များ
+ trending: လက်ရှိခေတ်စားနေခြင်း
with_media: မီဒီယာနှင့်အတူ
strikes:
actions:
delete_statuses: "%{name} မှ %{target} ၏ ပို့စ်များကို ဖျက်ခဲ့သည်"
+ mark_statuses_as_sensitive: "%{name} က %{target} ၏ ပို့စ်များကို သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုထားသည်"
none: "%{name} မှ %{target} သို့ သတိပေးချက်တစ်ခု ပေးပို့ခဲ့သည်"
+ sensitive: "%{name} က %{target} ၏ အကောင့်ကို သတိထားရသောအကောင့်အဖြစ် အမှတ်အသားပြုထားသည်"
+ silence: "%{name} က %{target} ၏ အကောင့်ကို ကန့်သတ်ထားသည်"
+ suspend: "%{name} က %{target} ၏ အကောင့်ကို ဆိုင်းငံ့ထားသည်"
system_checks:
rules_check:
action: ဆာဗာစည်းမျဉ်းများကို စီမံရန်
+ message_html: သင်သည် မည်သည့်ဆာဗာစည်းမျဉ်းများကိုမျှ မသတ်မှတ်ထားပါ။
+ title: စီမံခန့်ခွဲခြင်း
trends:
allow: ခွင့်ပြု
approved: အတည်ပြုပြီးပါပြီ
@@ -552,52 +660,113 @@ my:
links:
allow: လင့်ခ်ကို ခွင့်ပြုရန်
disallow: လင့်ခ်ကို ခွင့်မပြုရန်
+ title: လက်ရှိခေတ်စားနေသော လင့်များ
+ only_allowed: သာခွင့်ပြုသည်
rejected: ဖယ်ရှားပြီးပါပြီ
statuses:
allow: ပို့စ်တင်ခွင့်ပြုရန်
disallow: ပို့စ်ကို တင်ခွင့်မပြုရန်
title: လက်ရှိခေတ်စားနေသော ပို့စ်များ
tags:
+ current_score: "%{score} လက်ရှိရမှတ်"
dashboard:
tag_languages_dimension: အသုံးများသည့်ဘာသာစကားများ
tag_servers_dimension: အသုံးများသည့်ဆာဗာများ
tag_servers_measure: မတူညီသောဆာဗာများ
tag_uses_measure: စုစုပေါင်းအသုံးပြုမှု
listable: အကြံပြုနိုင်ပါသည်
+ not_listable: အကြံပြုမည်မဟုတ်ပါ
+ not_trendable: လက်ရှိခေတ်စားနေသာပို့စ်များအောက်တွင် ပေါ်လာမည်မဟုတ်ပါ
not_usable: အသုံးမပြုနိုင်ပါ
+ title: လက်ရှိခေတ်စားနေသော hashtag များ
+ trending_rank: "#%{rank} ခေတ်စားနေခြင်း"
usable: အသုံးပြုနိုင်သည်
+ usage_comparison: မနေ့က %{yesterday} နှင့် နှိုင်းယှဉ်လျှင် ယနေ့ %{today} ကြိမ် အသုံးပြုခဲ့သည်
+ used_by_over_week:
+ other: ပြီးခဲ့သည့် ရက်သတ္တပတ်အတွင်း လူ %{count} ဦး အသုံးပြုခဲ့သည်။
title: လက်ရှိခေတ်စားမှုများ
trending: လက်ရှိခေတ်စားနေခြင်း
warning_presets:
add_new: အသစ်ထည့်ပါ
delete: ဖျက်ပါ
+ edit_preset: ကြိုသတိပေးချက်ကို ပြင်ဆင်ပါ
+ empty: ကြိုသတိပေးချက်များကို မသတ်မှတ်ရသေးပါ။
+ title: ကြိုသတိပေးချက်များကို စီမံပါ
webhooks:
+ add_new: ဆုံးမှတ် ထည့်ပါ
delete: ဖျက်ပါ
disable: ပိတ်ပါ
disabled: ပိတ်ထားသည်
+ edit: ဆုံးမှတ် ပြင်ဆင်ပါ
enable: ဖွင့်ပါ
enabled: လက်ရှိ
events: ပွဲအစီအစဉ်များ
+ new: webhook အသစ်
status: အခြေအနေ
+ title: Webhook များ
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
+ delete_statuses: "၎င်းတို့၏ ပို့စ်များကို ဖျက်ရန်"
+ disable: "၎င်းတို့အကောင့်များအား ရပ်ထားရန်"
+ mark_statuses_as_sensitive: "၎င်းတို့၏ ပို့စ်များကို သတိထားရသော ပို့စ်များအဖြစ် အမှတ်အသားပြုရန်"
none: သတိပေးချက်
+ sensitive: "၎င်းတို့၏ အကောင့်များကို သတိထားရသော အကောင့်များအဖြစ် အမှတ်အသားပြုရန်"
+ silence: "၎င်းတို့၏ ပို့စ်များကို ကန့်သတ်ရန်"
+ suspend: "၎င်းတို့၏ အကောင့်ကို ရပ်ဆိုင်းရန်"
+ new_pending_account:
+ body: အကောင့်သစ်၏အသေးစိတ်ကို အောက်တွင်ဖော်ပြထားသည်။ ၎င်းကို အတည်ပြုနိုင်သည် သို့မဟုတ် ငြင်းပယ်နိုင်သည်။
+ subject: " (%{username}) %{instance} ပေါ်ရှိ ပြန်လည်သုံးသပ်ရမည့် အကောင့်သစ်"
+ new_report:
+ body: "%{reporter} က %{target} ကို တိုင်ကြားခဲ့သည်"
+ body_remote: "%{domain} မှ တစ်စုံတစ်ယောက်က %{target} ကို တိုင်ကြားခဲ့သည်"
+ new_trends:
+ body: အောက်ပါအရာများကို အများကိုမပြမီ ပြန်လည်သုံးသပ်ရန် လိုအပ်သည် -
+ new_trending_links:
+ title: လက်ရှိခေတ်စားနေသော လင့်များ
+ new_trending_statuses:
+ title: လက်ရှိခေတ်စားနေသော ပို့စ်များ
+ new_trending_tags:
+ no_approved_tags: လက်ရှိတွင် အတည်ပြုထားသော ခေတ်စားနေသည့် hashtag များမရှိပါ။
+ title: လက်ရှိခေတ်စားနေသော hashtag များ
+ subject: "%{instance} တွင် ပြန်လည်သုံးသပ်ရမည့် ခေတ်စားနေသောပို့စ်အသစ်များ"
+ aliases:
+ add_new: နာမည်တူတစ်ခု ဖန်တီးမည်
+ created_msg: နာမည်တူတစ်ခုကို ဖန်တီးပြီးပါပြီ။ အကောင့်ဟောင်းမှ စတင်ရွှေ့နိုင်ပါပြီ။
+ deleted_msg: နာမည်တူကို ဖယ်ရှားထားပြီးပါပြီ။ ထိုအကောင့်မှ ဤအကောင့်သို့ပြောင်းရန် မဖြစ်နိုင်တော့ပါ။
+ empty: သင့်တွင် နာမည်တူများ မရှိပါ။
appearance:
+ advanced_web_interface: အဆင့်မြင့်ဝဘ်ပုံစံ
+ discovery: ရှာဖွေတွေ့ရှိမှု
localization:
+ body: Mastodon ကို စေတနာ့ဝန်ထမ်းများမှ ဘာသာပြန်ထားပါသည်။
+ guide_link: https://crowdin.com/project/mastodon
guide_link_text: လူတိုင်းပါဝင်ကူညီနိုင်ပါတယ်။
+ sensitive_content: သတိထားရသော အကြောင်းအရာ
+ toot_layout: ပို့စ်အပြင်အဆင်
application_mailer:
+ notification_preferences: အီးမေးလ် သတ်မှတ်ချက်များကို ပြောင်းပါ
salutation: "%{name}"
+ settings: အီးမေးလ် သတ်မှတ်ချက်များကို ပြောင်းပါ - %{link}
view: ကြည့်ရှုရန် -
view_profile: ပရိုဖိုင်ကိုကြည့်ရန်
view_status: ပို့စ်ကိုကြည့်ရန်
applications:
created: အက်ပလီကေးရှင်းကို ဖန်တီးပြီးပါပြီ
+ destroyed: အက်ပလီကေးရှင်းကို ဖျက်ပြီးပါပြီ
+ logout: ထွက်မယ်
+ warning: ဤအချက်အလက်ကို သတိထားပါ။ မည်သူ့ကိုမျှ မမျှဝေပါနှင့်။
auth:
+ apply_for_account: အကောင့်တစ်ခုတောင်းဆိုပါ
change_password: စကားဝှက်
+ confirmations:
+ wrong_email_hint: ထိုအီးမေးလ်လိပ်စာ မမှန်ပါက အကောင့်သတ်မှတ်ချက်များတွင် ပြောင်းလဲနိုင်သည်။
delete_account: အကောင့်ဖျက်ပါ
description:
+ prefix_invited_by_user: "@%{name} က Mastodon ၏ ဆာဗာတွင် ပါဝင်ရန် သင့်ကို ဖိတ်ခေါ်ထားသည်။"
prefix_sign_up: ယနေ့တွင် Mastodon ၌ စာရင်းသွင်းလိုက်ပါ။
+ dont_have_your_security_key: သင့်တွင် လုံခြုံရေးကီး မရှိဘူးလား။
forgot_password: သင့်စကားဝှက် မေ့နေပါသလား။
log_in_with: ဖြင့် ဝင်ရောက်ပါ
login: အကောင့်ဝင်ရန်
@@ -608,13 +777,19 @@ my:
saml: SAML
register: အကောင့်ဖွင့်ရန်
registration_closed: "%{instance} သည် အဖွဲ့ဝင်အသစ်များကို လက်ခံထားခြင်းမရှိပါ"
+ rules:
+ accept: လက်ခံပါ
+ back: နောက်သို့
security: လုံခြုံရေး
set_new_password: စကားဝှက်အသစ် သတ်မှတ်ပါ။
sign_in:
title: "%{domain} သို့ အကောင့်ဝင်ရန်"
status:
account_status: အကောင့်အခြေအနေ
+ use_security_key: လုံခြုံရေးကီးကို သုံးပါ
authorize_follow:
+ already_following: သင်သည် ဤအကောင့်ကို စောင့်ကြည့်နေပြီဖြစ်ပါသည်
+ already_requested: သင်သည် ထိုအကောင့်စောင့်ကြည့်ရန် တောင်းဆိုမှုတစ်ခု ပေးပို့ခဲ့ပြီးပါပြီ
follow: စောင့်ကြည့်မယ်
follow_request: သင်သည် စောင့်ကြည့်မည် တောင်းဆိုချက်တစ်ခု ပေးပို့ထားသည်-
post_follow:
@@ -645,15 +820,21 @@ my:
x_months: "%{count}mo"
x_seconds: "%{count}s"
deletes:
+ confirm_password: အထောက်အထားကိုအတည်ပြုရန်အတွက် သင့်လက်ရှိစကားဝှက်ကို ထည့်ပါ
+ confirm_username: လုပ်ငန်းစဉ်ကို အတည်ပြုရန်အတွက် သင့်အသုံးပြုသူအမည်ကို ထည့်သွင်းပါ
proceed: အကောင့်ဖျက်ပါ
success_msg: သင့်အကောင့်ကို အောင်မြင်စွာ ဖျက်လိုက်ပါပြီ
+ warning:
+ data_removal: သင့်ပို့စ်များနှင့် အခြားအချက်အလက်များကို အပြီးတိုင် ဖယ်ရှားပါမည်
disputes:
strikes:
appeals:
submit: အယူခံဝင်ခွင့်ပြုရန်
+ recipient: လိပ်မူထားသည်
status: "#%{id} ပို့စ်"
title: "%{date} မှ %{action}"
title_actions:
+ delete_statuses: ပို့စ်ဖယ်ရှားခြင်း
none: သတိပေးချက်
errors:
'400': The request you submitted was invalid or malformed.
@@ -671,8 +852,10 @@ my:
archive_takeout:
date: ရက်စွဲ
download: သင်၏မှတ်တမ်းကို ဒေါင်းလုဒ်လုပ်ပါ
+ request: မှတ်တမ်း တောင်းဆိုရန်
size: အရွယ်အစား
blocks: သင်ပိတ်ပင်ထားသည့်လူများစာရင်း
+ bookmarks: မှတ်ထားသည်များ
csv: CSV
domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများ
lists: စာရင်းများ
@@ -684,14 +867,21 @@ my:
account: ပရိုဖိုင်များ
home: ပင်မနှင့် စာရင်းများ
notifications: အကြောင်းကြားချက်များ
+ public: အများမြင်စာမျက်နှာ
thread: စကားဝိုင်းများ
edit:
+ add_keyword: အဓိကစကားလုံး ထည့်ပါ
+ keywords: အဓိကစကားလုံးများ
statuses: တစ်ဦးချင်းတင်ထားသောပို့စ်များ
title: စစ်ထုတ်ခြင်းကို ပြင်ဆင်ရန်
index:
contexts: "%{contexts} ရှိ စစ်ထုတ်ထားမှုများ"
delete: ဖျက်ပါ
empty: သင့်တွင် စစ်ထုတ်ထားခြင်းများ မရှိပါ။
+ expires_in: "%{distance} တွင် သက်တမ်းကုန်မည်"
+ expires_on: "%{date} ရက်နေ့တွင် သက်တမ်းကုန်မည်"
+ keywords:
+ other: "%{count} အဓိကစကားလုံး"
statuses:
other: "%{count} ပို့စ်"
title: စစ်ထုတ်ခြင်းများ
@@ -699,18 +889,26 @@ my:
save: စစ်ထုတ်မှုအသစ် သိမ်းပါ
title: စစ်ထုတ်မှုအသစ် ထည့်ပါ
statuses:
+ back_to_filter: စစ်ထုတ်ခြင်းသို့ ပြန်သွားရန်
+ batch:
+ remove: စစ်ထုတ်ခြင်းမှ ဖယ်ရှားရန်
index:
title: စစ်ထုတ်ထားသော ပို့စ်များ
generic:
all: အားလုံး
copy: ကူးယူပါ
delete: ဖျက်ပါ
+ save_changes: ပြောင်းလဲမှုများကို သိမ်းဆည်းပါ
today: ယနေ့
imports:
+ modes:
+ merge: ပေါင်း
preface: သင်စောင့်ကြည့်နေသည့်လူများစာရင်း သို့မဟုတ် ပိတ်ပင်ထားသည့်စာရင်းကဲ့သို့သော အခြားဆာဗာတစ်ခုမှ သင်ထုတ်ယူထားသည့်အချက်အလက်များကို ပြန်လည်ထည့်သွင်းနိုင်သည်။
types:
blocking: ပိတ်ပင်ထားသည့်စာရင်း
+ bookmarks: Bookmarks
domain_blocking: ဒိုမိန်းပိတ်ပင်ထားသည့်စာရင်း
+ following: စောင့်ကြည့်စာရင်း
upload: တင္ရန်
invites:
expires_in:
@@ -721,22 +919,38 @@ my:
'604800': ၁ ပတ်
'86400': ၁ ရက်
max_uses_prompt: အကန့်အသတ်မဲ့
+ title: ဖိတ်ခေါ်ရန်
login_activities:
authentication_methods:
otp: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်အက်ပ်
password: စကားဝှက်
+ sign_in_token: အီးမေးလ်လုံခြုံရေးကုဒ်
+ webauthn: လုံခြုံရေးကီးများ
media_attachments:
validations:
images_and_video: ရုပ်ပုံပါရှိပြီးသားပို့စ်တွင် ဗီဒီယို ပူးတွဲ၍မရပါ
migrations:
acct: သို့ ပြောင်းရွှေ့ရန်
+ cancel: ပြန်ညွှန်းခြင်းကို ပယ်ဖျက်ရန်
errors:
+ missing_also_known_as: ဤအကောင့်၏ အမည်တူမဟုတ်ပါ
+ move_to_self: လက်ရှိအကောင့်မဖြစ်နိုင်ပါ
not_found: ရှာမတွေ့ပါ
+ incoming_migrations_html: အခြားအကောင့်မှ ဤအကောင့်သို့ ရွှေ့ရန် ဦးစွာ သင်သည် အကောင့်အမည်တူတစ်ခု ဖန်တီးရန် လိုအပ်ပါသည်။
proceed_with_move: စောင့်ကြည့်သူများကို ရွှေ့ရန်
warning:
only_redirect_html: တနည်းအားဖြင့် သင်သည် သင့်ပရိုဖိုင်ပေါ်တွင် ပြန်ညွှန်းခြင်းကိုသာ ပြုလုပ်နိုင်သည်။
redirect: သင့်လက်ရှိအကောင့်၏ပရိုဖိုင်ကို ပြန်လည်ညွှန်းပေးသည့်အသိပေးချက်ဖြင့် ပြင်ဆင်ပေးမည်ဖြစ်ပြီး ရှာဖွေမှုများမှ ဖယ်ထုတ်ပေးမည်ဖြစ်သည်
+ moderation:
+ title: စိစစ်ခြင်း
notification_mailer:
+ admin:
+ sign_up:
+ subject: "%{name} က အကောင့်ဖွင့်ထားသည်"
+ favourite:
+ body: "%{name} က နှစ်သက်ခဲ့သော သင့်ပို့စ် -"
+ subject: "%{name} က သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်"
+ title: နှစ်သက်မှုအသစ်တစ်ခု
follow:
body: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
subject: "%{name} မှ ယခု သင့်နောက်သို့ စောင့်ကည့်နေပါသည်။"
@@ -748,8 +962,12 @@ my:
action: စာပြန်ရန်
body: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်-
subject: သင့်ကို %{name} မှ ဖော်ပြခဲ့သည်
+ reblog:
+ title: Boost အသစ်
status:
subject: "%{name} က အခုလေးတင် ပို့စ်တင်လိုက်ပါပြီ"
+ update:
+ subject: "%{name} က ပို့စ်တစ်ခုကို ပြင်ဆင်ခဲ့သည်"
number:
human:
decimal_units:
@@ -763,6 +981,10 @@ my:
otp_authentication:
enable: ဖွင့်ပါ
pagination:
+ newer: ပိုသစ်သော
+ next: ရှေ့သို့
+ older: ပိုဟောင်းသော
+ prev: ရှေ့သို့
truncate: "…"
polls:
errors:
@@ -775,41 +997,118 @@ my:
over_character_limit: သတ်မှတ်ထားသောစာလုံးအရေအတွက် %{max} ထက်ပိုနေသည်
too_few_options: တစ်ခုထက်ပိုနေသည်
too_many_options: သတ်မှတ်ထားသောအရေအတွက် %{max} ကိုကျော်လွန်နေသည်
+ preferences:
+ other: အခြား
+ public_timelines: အများမြင်စာမျက်နှာ
privacy_policy:
title: ကိုယ်ရေးအချက်အလက်မူဝါဒ
relationships:
+ activity: အကောင့်လုပ်ဆောင်ချက်
+ confirm_follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်လိုသည်မှာ သေချာပါသလား။
+ confirm_remove_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။
+ confirm_remove_selected_follows: ရွေးချယ်စောင့်ကြည့်သူများကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။
+ follow_failure: ရွေးချယ်ထားသော အကောင့်အချို့ကို စောင့်ကြည့်၍ရမည်မဟုတ်ပါ။
+ follow_selected_followers: ရွေးချယ်စောင့်ကြည့်သူများကို စောင့်ကြည့်ပါ
followers: စောင့်ကြည့်သူများ
following: စောင့်ကြည့်နေသည်
+ invited: ဖိတ်ခေါ်ထားပြီး
+ last_active: နောက်ဆုံးအသုံးပြုခဲ့သည့်အချိန်
+ most_recent: မကြာသေးမီက
moved: ရွှေ့ပြီးပါပြီ
mutual: အပြန်အလှန်စောင့်ကြည့်ထားခြင်း
+ primary: ဦးစားပေး
+ relationship: တော်စပ်ပုံ
+ remove_selected_domains: ရွေးချယ်ထားသော ဒိုမိန်းများမှ စောင့်ကြည့်သူအားလုံးကို ဖယ်ရှားပါ
+ remove_selected_followers: ရွေးချယ်ထားသော စောင့်ကြည့်သူများကို ဖယ်ရှားပါ
+ remove_selected_follows: ရွေးချယ်ထားသော အသုံးပြုသူများကို စောင့်ကြည့်ခြင်းမှ ဖြုတ်ပါ
status: အကောင့်အခြေအနေ
+ remote_follow:
+ missing_resource: သင့်အကောင့်အတွက် လိုအပ်သော ပြန်ညွှန်းမည့် URL ကို ရှာမတွေ့ပါ
+ rss:
+ content_warning: 'အကြောင်းအရာသတိပေးချက် - '
+ descriptions:
+ account: "@%{acct} မှ အများမြင်ပို့စ်များ"
+ tag: "#%{hashtag} ကို တဂ်ထားသော အများမြင်ပို့စ်များ"
sessions:
+ activity: နောက်ဆုံးလုပ်ဆောင်ချက်
+ browser: ဘရောက်ဇာ
+ browsers:
+ alipay: Alipay
+ blackberry: BlackBerry
+ chrome: Chrome
+ edge: Microsoft Edge
+ electron: အီလက်ထရွန်
+ firefox: Firefox
+ generic: အမည်မသိဘရောက်ဆာ
+ huawei_browser: Huawei Browser
+ ie: Internet Explorer
+ micro_messenger: MicroMessenger
+ nokia: Nokia S40 Ovi Browser
+ opera: Opera
+ otter: Otter
+ phantom_js: PhantomJS
+ qq: QQ Browser
+ safari: Safari
+ uc_browser: UC Browser
+ unknown_browser: အမည်မသိဘရောက်ဆာ
+ weibo: Weibo
+ current_session: လက်ရှိဆက်ရှင်
description: "%{platform} ပေါ်ရှိ %{browser}"
+ ip: IP
platforms:
+ adobe_air: Adobe Air
+ android: Android
+ blackberry: BlackBerry
+ chrome_os: ChromeOS
+ firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
+ unknown_platform: အမည်မသိ Platform
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: ပြန်ရုပ်သိမ်းရန်
+ revoke_success: ဆက်ရှင်ကို ရုပ်သိမ်းလိုက်ပါပြီ
+ title: ဆက်ရှင်များ
+ view_authentication_history: သင့်အကောင့်၏ စစ်မှန်ကြောင်းအထောက်အထားပြမှုကို ကြည့်ပါ
settings:
account: အကောင့်
account_settings: အကောင့်သတ်မှတ်ချက်များ
+ aliases: အကောင့်အမည်တူများ
appearance: ပုံပန်းသဏ္ဌာန်
+ authorized_apps: ခွင့်ပြုထားသောအက်ပ်များ
+ back: Mastodon သို့ ပြန်သွားရန်
delete: အကောင့်ဖျက်သိမ်းခြင်း
edit_profile: ပရိုဖိုင်ပြင်ဆင်ရန်
+ export: အချက်အလက်ထုတ်ယူခြင်း
+ import: ထည့်သွင်းခြင်း
notifications: အသိပေးချက်များ
+ preferences: သတ်မှတ်ချက်များ
profile: ပရိုဖိုင်
relationships: စောင့်ကြည့်သူများနှင့် စောင့်ကြည့်စာရင်း
statuses_cleanup: အလိုအလျောက်ပို့စ်ဖျက်ခြင်း
two_factor_authentication: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်
+ webauthn_authentication: လုံခြုံရေးကီးများ
statuses:
attached:
+ audio:
+ other: "%{count} အသံ"
description: ပူးတွဲပါ- %{attached}
image:
other: "%{count} ပုံ"
video:
other: "%{count} ဗီဒီယို"
+ boosted_from_html: "%{acct_link} မှ Boost လုပ်ခဲ့သည်"
+ content_warning: အကြောင်းအရာသတိပေးချက် - %{warning}
+ default_language: လက်ရှိသုံးနေသောဘာသာစကားအတိုင်း ပြပေးပါမည်
+ disallowed_hashtags:
+ other: ခွင့်မပြုထားသော hashtags များပါရှိသည် - %{tags}
edited_at_html: "%{date} ကို ပြင်ဆင်ပြီးပါပြီ"
open_in_web: ဝဘ်တွင် ဖွင့်ပါ
+ pin_errors:
+ reblog: Boost လုပ်ထားသောပို့စ်ကို ပင်ထား၍မရပါ
poll:
total_people:
other: "%{count} ယောက်"
@@ -819,6 +1118,8 @@ my:
show_more: ပိုမိုပြရန်
show_newer: ပို့စ်အသစ်များပြရန်
show_older: ပို့စ်အဟောင်းများပြရန်
+ show_thread: Thread ကို ပြပါ
+ sign_in_to_participate: စကားဝိုင်းတွင် ပါဝင်ရန် အကောင့်ဝင်ပါ
title: '%{name}: "%{quote}"'
visibilities:
direct: တိုက်ရိုက်
@@ -826,9 +1127,20 @@ my:
private_long: စောင့်ကြည့်သူများကိုသာ ပြရန်
public: အများမြင်
public_long: လူတိုင်းမြင်နိုင်ပါသည်
+ unlisted: စာရင်းမသွင်းထားပါ
+ unlisted_long: လူတိုင်းမြင်နိုင်သော်လည်း အများမြင်မည့်စာမျက်နှာများတွင် စာရင်းမသွင်းထားပါ။
statuses_cleanup:
+ enabled: ပို့စ်အဟောင်းများကို အလိုအလျောက် ဖျက်ပါ
+ ignore_favs: နှစ်သက်မှုများကို လျစ်လျူရှုပါ
+ ignore_reblogs: Boost များကို လျစ်လျူရှုပါ
+ keep_direct: တိုက်ရိုက်မက်ဆေ့ချ်များကို သိမ်းထားပါ
+ keep_direct_hint: တိုက်ရိုက်စကားပြောထားသည်များကို မဖျက်ပါနှင့်
+ keep_media: မီဒီယာဖိုင်များပါသောပို့စ်များကို သိမ်းဆည်းပါ
+ keep_media_hint: မီဒီယာဖိုင်များပါသောပို့စ်များကို မဖျက်ပါနှင့်
+ keep_pinned: ပင်ထိုးထားသော ပို့စ်များကို သိမ်းထားပါ
keep_polls: စစ်တမ်းကိုဆက်လက်ထားမည်
keep_polls_hint: သင့်မှတ်တမ်းတစ်ခုမှ မပျက်ပါ
+ keep_self_fav: သင်နှစ်သက်ခဲ့သောပို့စ်များကို သိမ်းထားပါ
min_age:
'1209600': ၂ ပတ်
'15778476': ၆ လ
@@ -840,8 +1152,11 @@ my:
'7889238': ၃ လ
stream_entries:
pinned: ပင်တွဲထားသောပို့စ်
+ reblogged: Boost လုပ်ခဲ့သည်
+ sensitive_content: သတိထားရသော အကြောင်းအရာ
themes:
default: Mastodon (အနက်)
+ mastodon-light: Mastodon (အလင်းနောက်ခံ)
time:
formats:
default: "%b %d, %Y, %H:%M"
@@ -855,6 +1170,9 @@ my:
enabled: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ထားသည်
enabled_success: နှစ်ဆင့်ခံလုံခြုံရေးစနစ်ကို ဖွင့်ပြီးပါပြီ
methods: နှစ်ဆင့်ခံလုံခြုံရေးနည်းလမ်းများ
+ otp: Authenticator အက်ပ်
+ recovery_codes: အရန်ပြန်လည်ရယူရေးကုဒ်များ
+ webauthn: လုံခြုံရေးကီးများ
user_mailer:
appeal_approved:
action: သင့်အကောင့်သို့ သွားပါ
@@ -862,19 +1180,29 @@ my:
title: အယူခံကို ပယ်ချခဲ့သည်
suspicious_sign_in:
change_password: သင်၏ စကားဝှက်ပြောင်းလဲပါ
+ details: ဤသည်မှာ အကောင့်ဝင်ရောက်ခြင်းအတွက် အသေးစိတ်အချက်များဖြစ်သည် -
+ explanation: IP လိပ်စာအသစ်တစ်ခုမှနေ၍ သင့်အကောင့်ဝင်ရောက်သည်ကို တွေ့ရှိခဲ့ပါသည်။
+ title: အကောင့်ဝင်ရောက်မှုအသစ်
warning:
appeal: အယူခံတင်သွင်းပါ
+ categories:
+ spam: Spam
explanation:
disable: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သော်လည်း သင့်ပရိုဖိုင်နှင့် အခြားအချက်အလက်များမှာ ကျန်ရှိနေမည်ဖြစ်သည်။ သင့်အချက်အလက်ကို မိတ္တူကူးရန်၊ အကောင့်သတ်မှတ်ချက်များကို ပြောင်းလဲရန် သို့မဟုတ် သင့်အကောင့်ဖျက်သိမ်းရန်တို့အတွက် အရန်သိမ်းဆည်းမှုအား သင် တောင်းဆိုနိုင်သည်။
suspend: သင့်အကောင့်ကို အသုံးမပြုနိုင်တော့သည့်အပြင် ပရိုဖိုင်နှင့် အခြားအချက်အလက်များကိုလည်း အသုံးပြု၍မရတော့ပါ။ သင့်အချက်အလက်ကို ရက်ပေါင်း ၃၀ ခန့်အတွင်း အပြည့်အဝ မဖယ်ရှားမချင်း အချက်အလက်များ အရန်ကူးယူရန်အတွက် အကောင့်သို့ ဝင်ရောက်နိုင်ပါသေးသည်။ သို့သော် အကောင့်ရပ်ဆိုင်းထားမှုရှောင်လွှဲခြင်းမှ ကာကွယ်ရန်အတွက် အခြေခံအချက်အလက်အချို့ကို ကျွန်ုပ်တို့ ထိန်းသိမ်းထားရပါမည်။
reason: အကြောင်းပြချက် -
subject:
delete_statuses: "%{acct} ရှိ သင့်ပို့စ်များကို ဖယ်ရှားလိုက်ပါပြီ"
+ mark_statuses_as_sensitive: "%{acct} ရှိ သင့်ပို့စ်များကို သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုထားသည်"
none: "%{acct} အတွက် သတိပေးချက်"
silence: သင့်အကောင့် %{acct} ကို ကန့်သတ်ထားသည်
title:
delete_statuses: ပို့စ်များကို ဖယ်ရှားခဲ့သည်
+ disable: အကောင့်ပိတ်သွားပါပြီ။
+ mark_statuses_as_sensitive: သတိထားရသောပို့စ်များအဖြစ် အမှတ်အသားပြုပါ
none: သတိပေးချက်
+ sensitive: သတိထားရသောအကောင့်အဖြစ် အမှတ်အသားပြုပါ
+ silence: အကောင့်ကန့်သတ်ထားသည်
suspend: အကောင့်ရပ်ဆိုင်းထားသည်
welcome:
edit_profile_action: ပရိုဖိုင်ထည့်သွင်းရန်
@@ -885,6 +1213,23 @@ my:
users:
follow_limit_reached: လူ %{limit} ထက် ပိုပြီး စောင့်ကြည့်၍မရပါ
invalid_otp_token: မမှန်ကန်သော နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
+ signed_in_as: အဖြစ် အကောင့်ဝင်ခဲ့သည် -
+ verification:
+ verification: စိစစ်ခြင်း
webauthn_credentials:
+ add: လုံခြုံရေးကီးအသစ်ထည့်ပါ
+ create:
+ error: သင့်လုံခြုံရေးကီးထည့်ရာတွင် ပြဿနာရှိနေသည်။ ထပ်စမ်းကြည့်ပါ။
+ success: လုံခြုံရေးကီး ထည့်ပြီးပါပြီ။
delete: ဖျက်ရန်
+ delete_confirmation: လုံခြုံရေးကီးဖျက်ရန် သေချာပါသလား။
+ description_html: "လုံခြုံရေးကီးအထောက်အထားစိစစ်ခြင်းကို ဖွင့်ထားပါက လုံခြုံရေးကီးများထဲမှ တစ်ခုကို အကောင့်ဝင်ရောက်ရန်အတွက် အသုံးပြုရန်လိုအပ်ပါသည်"
+ destroy:
+ error: သင့်လုံခြုံရေးကီးကို ဖျက်ရာတွင် ပြဿနာရှိနေသည်။ ထပ်စမ်းကြည့်ပါ။
+ success: လုံခြုံရေးကီး ဖျက်ပြီးပါပြီ။
+ invalid_credential: လုံခြုံရေးကီးမမှန်ကန်ပါ
+ nickname_hint: သင့်လုံခြုံရေးကီးအသစ်၏ အမည်ပြောင်ကို ထည့်ပါ။
+ not_enabled: WebAuthn ကို သင် မဖွင့်ရသေးပါ
+ not_supported: ဤဘရောက်ဆာသည် လုံခြုံရေးကီးများကို မပံ့ပိုးပါ
+ otp_required: လုံခြုံရေးကီးများကို အသုံးပြုရန်အတွက် နှစ်ဆင့်ခံလုံခြုံရေးစနစ်စိစစ်ခြင်းကို ဦးစွာဖွင့်ပါ။
registered_on: "%{date} တွင် စာရင်းသွင်းထားသည်"
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 7732a64421..93e7c55024 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1405,6 +1405,7 @@ nl:
confirm_remove_selected_followers: Weet je zeker dat je de geselecteerde volgers wilt verwijderen?
confirm_remove_selected_follows: Weet je zeker dat je de geselecteerde gevolgde accounts wilt verwijderen?
dormant: Sluimerend
+ follow_failure: Kan sommige van de geselecteerde accounts niet volgen.
follow_selected_followers: Geselecteerde volgers volgen
followers: Volgers
following: Volgend
@@ -1444,6 +1445,7 @@ nl:
electron: Electron
firefox: Firefox
generic: Onbekende webbrowser
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ nl:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Onbekende browser
weibo: Weibo
current_session: Huidige sessie
description: "%{browser} op %{platform}"
@@ -1465,9 +1468,10 @@ nl:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: Onbekend platform
+ unknown_platform: Onbekend platform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index 7b860b54b2..ee496f2727 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -91,7 +91,7 @@ nn:
moderation:
active: Aktiv
all: Alle
- disabled: Deaktivert
+ disabled: Skrudd av
pending: Ventar på svar
silenced: Avgrensa
suspended: Utvist
@@ -134,7 +134,7 @@ nn:
search: Søk
search_same_email_domain: Andre brukarar med same e-postdomene
search_same_ip: Andre brukarar med same IP
- security: Sikkerhet
+ security: Tryggleik
security_measures:
only_password: Kun passord
password_and_2fa: Passord og 2FA
@@ -423,7 +423,7 @@ nn:
resolve: Løs domene
title: Ny blokkeringsoppføring av e-postdomene
no_email_domain_block_selected: Blokkering av e-post-domener vart ikkje endra sidan ingen var valde
- not_permitted: Ikke tillatt
+ not_permitted: Ikkje tillate
resolved_dns_records_hint_html: Domenenamnet gjer oppslag til desse MX-domenene som til sist er ansvarlige for å motta e-post. Blokkering av eit MX-domene vil blokkere registreringar frå alle e-postadresser som bruker same MX-domene, sjølv om det synlige domenenavnet skulle vera noko anna. Pass på så du ikkje blokkerer dei store e-postleverandørane.
resolved_through_html: Løyst gjennom %{domain}
title: Blokkerte e-postadresser
@@ -438,7 +438,7 @@ nn:
private_comment_description_html: 'For å hjelpa deg med å halda oversikt over kvar importerte blokkeringar kjem frå, vil dei bli oppretta med fylgjande private kommentar: %{comment}'
private_comment_template: Importert frå %{source} den %{date}
title: Importer domeneblokkeringar
- invalid_domain_block: 'En eller flere domeneblokker ble hoppet over på grunn av følgende feil(er): %{error}'
+ invalid_domain_block: 'Hoppa over ei eller fleire domeneblokker på grunn av fylgjande feil: %{error}'
new:
title: Importer domeneblokkeringar
no_file: Inga fil vald
@@ -470,6 +470,7 @@ nn:
content_policies:
comment: Internt notat
description_html: Du kan definere innholdsregler som vil bli brukt på alle kontoer fra dette domenet og hvilket som helst av underdomenene.
+ limited_federation_mode_description_html: Du kan velja om du vil tillata føderering med dette domenet.
policies:
reject_media: Avvis media
reject_reports: Avvis rapporter
@@ -573,10 +574,10 @@ nn:
mark_as_sensitive_description_html: Mediene i dei rapporterte innlegga vil verte markerte som ømtolege, og ein merknad vil verte lagra for å hjelpe deg å eskalera ved framtidige regelbrot frå same konto.
other_description_html: Sjå fleire alternativ når det gjeld kontroll av kontoåtferd og tilpassing av kommunikasjonen til den rapporterte kontoen.
resolve_description_html: Ingen handling utføres mot den rapporterte kontoen, ingen advarsel gis, og rapporten lukkes.
- silence_description_html: Profilen vil kun være synlig for dem som allerede følger den eller manuelt slår den opp, noe som sterkt begrenser dens rekkevidde. Kan alltid tilbakestilles. Lukker alle rapporter mot denne kontoen.
- suspend_description_html: Kontoen og alt dens innhold vil være utilgjengelig og til slutt slettet, og det vil ikke være mulig å bruke den. Reversibel innen 30 dager. Lukker alle rapporter mot denne kontoen.
+ silence_description_html: Profilen vil berre vera synleg for dei som allereie fylgjer han eller søkjer han opp manuelt, noko som gjev profilen mykje mindre rekkjevidd. Du kan oppheva stenginga seinare. Dette avsluttar alle rapportar om brukarkontoen.
+ suspend_description_html: Brukarkontoen og alt innhaldet vil bli utilgjengeleg og til slutt sletta, og det vil vera uråd å samhandla med brukaren. Du kan angra dette innan 30 dagar. Dette avsluttar alle rapportar om kontoen.
actions_description_html: Avgjer kva som skal gjerast med denne rapporteringa. Dersom du utfører straffetiltak mot den rapporterte kontoen, vil dei motta ein e-post – så sant du ikkje har valt kategorien Spam.
- actions_description_remote_html: Velg hvilke tiltak som skal treffes for å løse denne rapporten. Dette påvirker bare hvordan din server kommuniserer med denne eksterne kontoen og håndterer innholdet.
+ actions_description_remote_html: Avgjer kva du vil gjera for å løysa denne rapporten. Dette påverkar berre korleis tenaren din kommuniserer med kontoen på ein annan tenar, og korleis tenaren din handterer innhald derifrå.
add_to_report: Legg til i rapporten
are_you_sure: Er du sikker?
assign_to_self: Tilegn til meg
@@ -588,8 +589,8 @@ nn:
comment:
none: Ingen
comment_description_html: 'For å gje meir informasjon, skreiv %{name}:'
- confirm: Bekreft
- confirm_action: Bekreft moderasjonshandling mot @%{acct}
+ confirm: Stadfest
+ confirm_action: Stadfest at du vil moderera brukarkontoen @%{acct}
created_at: Rapportert
delete_and_resolve: Slett innlegg
forwarded: Videresendt
@@ -606,7 +607,7 @@ nn:
placeholder: Beskriv hvilke handlinger som har blitt tatt, eller andre relaterte oppdateringer...
title: Merknad
notes_description_html: Sjå og skriv merknadar til andre moderatorar og ditt framtidige sjølv
- processed_msg: 'Rapport #%{id} er behandlet'
+ processed_msg: 'Du har handsama rapport #%{id}'
quick_actions_description_html: 'Utfør ei handling eller bla ned for å sjå det rapporterte innhaldet:'
remote_user_placeholder: den eksterne brukaren frå %{instance}
reopen: Opn rapport igjen
@@ -621,13 +622,26 @@ nn:
statuses_description_html: Støytande innhald vil bli inkludert i kommunikasjonen med den rapporterte kontoen
summary:
action_preambles:
- delete_html: 'Du er i ferd med å fjerne noe av @%{acct} sine innlegg. Dette vil:'
- mark_as_sensitive_html: 'Du er i ferd med å markere noen av @%{acct} sine innlegg som sensitivt. Dette vil:'
- silence_html: 'Du er i ferd med å avgrense@%{acct} sin konto. Dette vil:'
- suspend_html: 'Du er i ferd med å stoppe@%{acct} sin konto. Dette vil:'
+ delete_html: 'Du er i ferd med å fjerna nokre av innlegga til @%{acct}. Det vil:'
+ mark_as_sensitive_html: 'Du er i ferd med å markera nokre av innlegga til @%{acct} som sensitive. Dette vil:'
+ silence_html: 'Du er i ferd med å avgrensa kontoen til @%{acct}. Dette vil:'
+ suspend_html: 'Du er i ferd med å stenga kontoen til @%{acct}. Dette vil:'
+ actions:
+ delete_html: Fjerna dei påtala innlegga
+ mark_as_sensitive_html: Markera dei påtala mediefilene som sensitive
+ silence_html: Sterkt avgrensa korleis @%{acct} kan samhandla ved å gjera brukarprofilen og innhaldet synleg berre for folk som allereie fylgjer brukarkontoen eller søkjer han opp manuelt
+ suspend_html: Stengja brukarkontoen til @%{acct}, slik at brukarprofilen og innhaldet blir utilgjengeleg og umogleg å samhandla med
+ close_report: Marker rapport nr. %{id} som løyst
+ close_reports_html: Marker alle rapportane om @%{acct} som løyste
+ delete_data_html: Slett brukarprofilen og innhaldet til@%{acct} om 30 dagar frå no med mindre brukarkontoen blir opna att
+ preview_preamble_html: "@%{acct} vil få ei åtvaring med dette innhaldet:"
+ record_strike_html: Noter at ei handling er gjort mot @%{acct} for å hjelpa deg å handtera framtidige overtramp frå denne brukarkontoen
+ send_email_html: Send ein åtvaringsepost til @%{acct}
+ warning_placeholder: Eventuelle fleire grunnar for å modereringshandlinga.
target_origin: Opprinnelse for innrapportert konto
title: Rapportar
unassign: Avset
+ unknown_action_msg: 'Ukjend handling: %{action}'
unresolved: Uløyst
updated_at: Oppdatert
view_profile: Vis profil
@@ -722,6 +736,8 @@ nn:
preamble: Å framheva interessant innhald er vitalt i mottakinga av nye brukarar som ikkje nødvendigvis kjenner nokon på Mastodon. Kontroller korleis oppdagingsfunksjonane på tenaren din fungerar.
profile_directory: Profilkatalog
public_timelines: Offentlege tidsliner
+ publish_discovered_servers: Publiser oppdaga tenarar
+ publish_statistics: Publiser statistikk
title: Oppdaging
trends: Trender
domain_blocks:
@@ -776,6 +792,7 @@ nn:
suspend: "%{name} utviste %{target} sin konto"
appeal_approved: Klage tatt til følge
appeal_pending: Klage behandles
+ appeal_rejected: Anken er avvist
system_checks:
database_schema_check:
message_html: Det venter på databaseoverføringer. Vennligst kjør disse for å sikre at applikasjonen oppfører seg som forventet
@@ -811,6 +828,7 @@ nn:
other: Delt av %{count} personer i løpet av den siste uken
title: Populære lenkjer
usage_comparison: Delt %{today} ganger i dag, sammenlignet med %{yesterday} i går
+ not_allowed_to_trend: Har ikkje lov å trenda
only_allowed: Kun tillatne
pending_review: Avventer gjennomgang
preview_card_providers:
@@ -837,12 +855,13 @@ nn:
tag_accounts_measure: unike bruksområder
tag_languages_dimension: Mest brukte språk
tag_servers_dimension: Mest brukte servere
- tag_servers_measure: forskjellige servere
- tag_uses_measure: samlet bruk
+ tag_servers_measure: ulike tenarar
+ tag_uses_measure: brukarar totalt
description_html: Dette er emneknagger som for øyeblikket vises i mange innlegg som serveren din ser. Det kan hjelpe dine brukere med å finne ut hva folk snakker mest om i øyeblikket. Ingen emneknagger vises offentlig før du godkjenner dem.
listable: Kan bli foreslått
+ no_tag_selected: Ingen merkelappar vart endra fordi ingen var valde
not_listable: Vil ikke bli foreslått
- not_trendable: Kunne ikke vises under trender
+ not_trendable: Kjem ikkje til å syna under trendar
not_usable: Kan ikke brukes
peaked_on_and_decaying: Nådde toppen %{date}, nå på vei ned
title: Populære emneknagger
@@ -891,6 +910,9 @@ nn:
sensitive: å merke kontoen sin som følsom
silence: for å begrense deres konto
suspend: for å suspendere kontoen deres
+ body: "%{target} ankar på ei modereringsavgjerd av %{action_taken_by} den %{date}, som var %{type}. Dei skreiv:"
+ next_steps: Du kan godkjenna anken for å endra modereringsavgjerda, eller du kan oversjå anken.
+ subject: "%{username} ankar ei modereringsavgjer på %{instance}"
new_pending_account:
body: Detaljer om den nye kontoen er nedenfor. Du kan godkjenne eller avvise denne søknaden.
subject: Ny konto opp til vurdering på %{instance} (%{username})
@@ -899,13 +921,16 @@ nn:
body_remote: Nokon frå %{domain} har meldt %{target}
subject: Ny rapport for %{instance} (#%{id})
new_trends:
+ body: 'Du må sjå gjennom desse elementa før dei kan visast offentleg:'
new_trending_links:
title: Populære lenker
new_trending_statuses:
title: Populære innlegg
new_trending_tags:
- title: Populære emneknagger
- subject: Ny trender for gjennomsyn av %{instance}
+ no_approved_tags: Det er ingen godkjende populære emneknaggar no.
+ requirements: 'Alle desse kandidatane kan stiga høgare enn den godkjende populære emneknaggen #%{rank}, som er #%{lowest_tag_name} med ei plassering på %{lowest_tag_score}.'
+ title: Populære emneknaggar
+ subject: Nye trendar å sjå gjennom på %{instance}
aliases:
add_new: Lag psevdonym
created_msg: Laga eit nytt kallenamn. No kan du setja i gang med flyttinga frå den gamle kontoen.
@@ -927,7 +952,7 @@ nn:
toot_layout: Tutoppsett
application_mailer:
notification_preferences: Endr e-post-innstillingane
- salutation: "%{name},"
+ salutation: Hei %{name},
settings: 'Endr e-post-innstillingar: %{link}'
view: 'Sjå:'
view_profile: Sjå profil
@@ -935,6 +960,7 @@ nn:
applications:
created: Søknad laga
destroyed: Søknad sletta
+ logout: Logg ut
regenerate_token: Lag tilgangsnykel på nytt
token_regenerated: Tilgangsnykel laga på nytt
warning: Ver varsam med dette datumet. Aldri del det med nokon!
@@ -942,6 +968,8 @@ nn:
auth:
apply_for_account: Søk om ein konto
change_password: Passord
+ confirmations:
+ wrong_email_hint: Viss epostadressa er feil, kan du endra ho i kontoinnstillingane.
delete_account: Slett konto
delete_account_html: Om du vil sletta kontoen din, kan du gå hit. Du vert spurd etter stadfesting.
description:
@@ -969,6 +997,8 @@ nn:
resend_confirmation: Send stadfestingsinstruksjonar på nytt
reset_password: Attstill passord
rules:
+ accept: Godkjenn
+ back: Attende
preamble: Disse angis og håndheves av %{domain}-moderatorene.
title: Noen grunnregler.
security: Tryggleik
@@ -1115,6 +1145,8 @@ nn:
storage: Medielagring
featured_tags:
add_new: Legg til ny
+ errors:
+ limit: Du har allereie framheva så mange emneknaggar som det går an å gjera
hint_html: "Hva er utvalgte emneknagger? De vises frem tydelig på din offentlige profil, og lar folk bla i dine offentlige innlegg som spesifikt har de emneknaggene. De er et bra verktøy for å holde styr på kreative verk eller langtidsprosjekter."
filters:
contexts:
@@ -1125,55 +1157,39 @@ nn:
thread: Samtalar
edit:
add_keyword: Legg til stikkord
- keywords: Nøkkelord
+ keywords: Stikkord
statuses: Individuelle innlegg
+ statuses_hint_html: Dette filteret gjeld for utvalde, individuelle innlegg, uansett om dei passar til stikkorda under. Sjå gjennom eller fjern innlegg frå filteret.
title: Endr filter
errors:
+ deprecated_api_multiple_keywords: Du kan ikkje endra desse parametrane frå dette programmet fordi dei gjeld for meir enn eitt filterord. Bruk eit nyare program, eller nettsida.
invalid_context: Ingen eller ugild kontekst gjeve
index:
- contexts: Filtre i %{contexts}
+ contexts: Filter i %{contexts}
delete: Slett
empty: Du har ingen filtre.
- expires_in: Utløper om %{distance}
- expires_on: Utløper den %{date}
- keywords:
- one: "%{count} nøkkelord"
- other: "%{count} nøkkelorder"
- statuses:
- one: "%{count} innlegg"
- other: "%{count} innlegger"
- statuses_long:
- one: "%{count} enkeltinnlegg skjult"
- other: "%{count} individuelle innlegger skjult"
+ expires_in: Går ut om %{distance}
+ expires_on: Går ut %{date}
title: Filter
new:
save: Lagre nytt filter
title: Legg til nytt filter
statuses:
- back_to_filter: Tilbake til filter
+ back_to_filter: Tilbake til filteret
batch:
- remove: Fjern fra filter
+ remove: Fjern frå filteret
index:
- hint: Dette filteret gjelder for å velge individuelle innlegg uavhengig av andre kriterier. Du kan legge til flere innlegg til dette filteret fra webgrensesnittet.
+ hint: Dette filteret gjeld for utvalde, individuelle innlegg, uavhengig av andre kriterium. Du kan leggja til fleire innlegg til dette filteret frå nettsida.
title: Filtrerte innlegg
generic:
all: Alle
- all_items_on_page_selected_html:
- one: "%{count} element på denne siden er valgt."
- other: Alle %{count} elementer på denne siden er valgt.
- all_matching_items_selected_html:
- one: "%{count} element som matcher søket ditt er valgt."
- other: Alle %{count} elementer som matcher søket velges.
changes_saved_msg: Alle endringane vart lagra!
copy: Kopier
delete: Slett
- deselect: Fjern all merking
+ deselect: Vel ingen
none: Ingen
order_by: Sorter etter
save_changes: Lagr endringar
- select_all_matching_items:
- one: Velg %{count} element som samsvarer med søket ditt.
- other: Velg alle %{count} elementer som samsvarer med søket ditt.
today: i dag
validation_errors:
one: Noe er ikke helt riktig ennå. Vennligst se etter en gang til
@@ -1186,7 +1202,7 @@ nn:
merge: Set saman
merge_long: Hald på eksisterande data og legg til nye
overwrite: Skriv over
- overwrite_long: Erstatt gjeldende med de nye
+ overwrite_long: Byt ut dei noverande oppføringane med dei nye
preface: Du kan henta inn data som du har eksportert frå ein annan tenar, som t.d. ei liste over folka du fylgjer eller blokkerer.
success: Dataa dine vart lasta opp og vert no handsama så fort som mogeleg
types:
@@ -1218,11 +1234,14 @@ nn:
expires_at: Vert ugyldig
uses: Bruk
title: By folk inn
+ lists:
+ errors:
+ limit: Du har nådd grensa for kor mange lister du kan ha
login_activities:
authentication_methods:
otp: to-faktor autentiseringsapp
password: passord
- sign_in_token: e-post sikkerhetskode
+ sign_in_token: tryggingskode på epost
webauthn: sikkerhetsnøkler
description_html: Hvis du ser aktivitet som du ikke gjenkjenner, bør du vurdere å endre passordet ditt og aktivere to-trinnsinnlogging.
empty: Ingen innloggingshistorikk er tilgjengelig
@@ -1272,7 +1291,7 @@ nn:
carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet.
copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:'
navigation:
- toggle_menu: Vis/Skjul meny
+ toggle_menu: Vis/gøym menyen
notification_mailer:
admin:
report:
@@ -1298,7 +1317,7 @@ nn:
subject: Du vart nemnd av %{name}
title: Ny nemning
poll:
- subject: En avstemming av %{name} er avsluttet
+ subject: Meiningsmålinga frå %{name} er avslutta
reblog:
body: 'Statusen din vart framheva av %{name}:'
subject: "%{name} framheva statusen din"
@@ -1362,6 +1381,7 @@ nn:
confirm_remove_selected_followers: Er du sikker på at du ynskjer å fjerna dei valde fylgjarane?
confirm_remove_selected_follows: Er du sikker på at du ynskjer å fjerna det valde følgjet?
dormant: I dvale
+ follow_failure: Greidde ikkje fylgja alle kontoane du valde.
follow_selected_followers: Følg valgte tilhengere
followers: Følgere
following: Følginger
@@ -1382,7 +1402,7 @@ nn:
errors:
invalid_rules: refererer ikke til gyldige regler
rss:
- content_warning: 'Innholdsadvarsel:'
+ content_warning: 'Innhaldsvarsel:'
descriptions:
account: Offentlige innlegg fra @%{acct}
tag: 'Offentlige innlegg merket med #%{hashtag}'
@@ -1401,6 +1421,7 @@ nn:
electron: Electron
firefox: Firefox
generic: Ukjend lesar
+ huawei_browser: Huawei-nettlesaren
ie: Internet Explorer
micro_messenger: Micromessenger
nokia: Nokia S40 Ovi-lesar
@@ -1410,6 +1431,7 @@ nn:
qq: QQ-lesar
safari: Safari
uc_browser: QQ-lesar
+ unknown_browser: Ukjend nettlesar
weibo: Weibo
current_session: Noverande økt
description: "%{browser} på %{platform}"
@@ -1422,9 +1444,10 @@ nn:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: IOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: ukjend plattform
+ unknown_platform: Ukjend plattform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
@@ -1531,6 +1554,7 @@ nn:
'7889238': 3 månader
min_age_label: Aldersterskel
min_favs: Behold innlegg som er favorittmarkert av minst
+ min_favs_hint: Slettar ingen av innlegga dine som har fått minst så mange favorittar. La det stå tomt for å sletta innlegga uansett kor mange favorittar dei har fått
min_reblogs: Behold innlegg fremhevet av minst
min_reblogs_hint: Sletter ikke noen av dine innlegg som har blitt fremhevet minst dette antall ganger. La stå tom for å slette innlegg uavhengig av antall fremhevinger
stream_entries:
diff --git a/config/locales/no.yml b/config/locales/no.yml
index ebad60b73c..9f22a1bdbd 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1396,7 +1396,6 @@
ios: iOS
linux: Linux
mac: macOS
- other: ukjent plattform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index e1406ec614..fa23f0522b 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -830,7 +830,6 @@ oc:
ios: iOS
linux: Linux
mac: Mac
- other: plataforma desconeguda
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index d086161910..66f01ccaac 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1457,6 +1457,7 @@ pl:
confirm_remove_selected_followers: Czy na pewno chcesz usunąć wybranych obserwujących?
confirm_remove_selected_follows: Czy na pewno chcesz usunąć zaznaczone obserwacje?
dormant: Uśpione
+ follow_failure: Nie można obserwować niektórych wybranych kont.
follow_selected_followers: Zacznij obserwować wybranych obserwujących
followers: Obserwujący
following: Obserwowani
@@ -1496,6 +1497,7 @@ pl:
electron: Electron
firefox: Firefox
generic: nieznana przeglądarka
+ huawei_browser: Przeglądarka Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Przeglądarka Nokia S40 Ovi
@@ -1505,6 +1507,7 @@ pl:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Nieznana Przeglądarka
weibo: Weibo
current_session: Obecna sesja
description: "%{browser} na %{platform}"
@@ -1517,9 +1520,10 @@ pl:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: nieznana platforma
+ unknown_platform: Nieznana platforma
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index 5192a83d22..931c0009e0 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -394,6 +394,7 @@ pt-BR:
create: Criar bloqueio
hint: O bloqueio de domínio não vai prevenir a criação de entradas de contas na base de dados, mas vai retroativamente e automaticamente aplicar métodos específicos de moderação nessas contas.
severity:
+ desc_html: "Silenciar vai tornar as publicações da conta invisíveis para qualquer um que não estiver lhe seguindo. Suspender vai remover todo o conteúdo, mídia e dados de perfil da conta. Use Nenhum se você só quer rejeitar arquivos de mídia."
noop: Nenhum
silence: Limitar
suspend: Banir
@@ -590,6 +591,7 @@ pt-BR:
none: Nenhum
comment_description_html: 'Para fornecer mais informações, %{name} escreveu:'
confirm: Confirmar
+ confirm_action: Confirmar a moderação de @%{acct}
created_at: Denunciado
delete_and_resolve: Excluir publicações
forwarded: Encaminhados
@@ -627,6 +629,7 @@ pt-BR:
suspend_html: 'Você está prestes a suspendera conta de @%{acct}. Isso irá:'
actions:
delete_html: Remover as publicações ofensivas
+ suspend_html: Suspender @%{acct}, tornando seu perfil e conteúdo inacessíveis, impossibilitando a interação
close_report: 'Marcar denúncia #%{id} como resolvida'
close_reports_html: Marcar todas as denúncias contra @%{acct} como resolvidas
delete_data_html: Exclua o perfil e o conteúdo de @%{acct} daqui a 30 dias, a menos que a suspensão seja desfeita nesse meio tempo
@@ -786,6 +789,7 @@ pt-BR:
suspend: "%{name} suspendeu a conta de %{target}"
appeal_approved: Revisado
appeal_pending: Revisão pendente
+ appeal_rejected: Revisão rejeitada
system_checks:
database_schema_check:
message_html: Existem migrações de banco de dados pendentes. Execute-as para garantir que o aplicativo se comporte como esperado
@@ -952,6 +956,7 @@ pt-BR:
applications:
created: Aplicativo criado com sucesso
destroyed: Aplicativo excluído com sucesso
+ logout: Sair
regenerate_token: Gerar código de acesso
token_regenerated: Código de acesso gerado
warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém!
@@ -1136,6 +1141,8 @@ pt-BR:
storage: Armazenamento de mídia
featured_tags:
add_new: Adicionar hashtag
+ errors:
+ limit: Você já destacou o número máximo de hashtags
hint_html: "O que são hashtags em destaque? Elas são exibidas no seu perfil público e permitem que as pessoas acessem suas publicações públicos que contenham especificamente essas hashtags. São uma excelente ferramenta para acompanhar os trabalhos criativos ou os projetos de longo prazo."
filters:
contexts:
@@ -1388,6 +1395,7 @@ pt-BR:
confirm_remove_selected_followers: Tem certeza que deseja remover os seguidores selecionados?
confirm_remove_selected_follows: Tem certeza que deseja remover os grupos seguidos selecionados?
dormant: Inativo
+ follow_failure: Não foi possível seguir algumas das contas selecionadas.
follow_selected_followers: Seguir os seguidores selecionados
followers: Seguidores
following: Seguindo
@@ -1427,6 +1435,7 @@ pt-BR:
electron: Electron
firefox: Firefox
generic: Navegador desconhecido
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador Nokia S40 Ovi
@@ -1436,6 +1445,7 @@ pt-BR:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Navegador desconhecido
weibo: Weibo
current_session: Sessão atual
description: "%{browser} em %{platform}"
@@ -1448,9 +1458,10 @@ pt-BR:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: MacOS
- other: Plataforma desconhecida
+ unknown_platform: Plataforma desconhecida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 2718a7fb46..082de57e33 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1405,6 +1405,7 @@ pt-PT:
confirm_remove_selected_followers: Tem a certeza que deseja seguir os seguidores selecionados?
confirm_remove_selected_follows: Tem certeza que deseja remover os seguidores selecionados?
dormant: Inativo
+ follow_failure: Não foi possível seguir algumas das contas selecionadas.
follow_selected_followers: Seguir seguidores selecionados
followers: Seguidores
following: A seguir
@@ -1444,6 +1445,7 @@ pt-PT:
electron: Electron
firefox: Firefox
generic: Navegador desconhecido
+ huawei_browser: Navegador Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Navegador Nokia S40 Ovi
@@ -1453,6 +1455,7 @@ pt-PT:
qq: QQ Browser
safari: Safari
uc_browser: Navegador UC
+ unknown_browser: Navegador Desconhecido
weibo: Weibo
current_session: Sessão atual
description: "%{browser} em %{platform}"
@@ -1465,9 +1468,10 @@ pt-PT:
chrome_os: ChromeOS
firefox_os: SO Firefox
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: plataforma desconhecida
+ unknown_platform: Plataforma Desconhecida
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index bfb3f5779c..050ea2c25e 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1504,7 +1504,6 @@ ru:
ios: iOS
linux: Linux
mac: Mac
- other: неизвестной платформе
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 113786f77a..7a46fe38a8 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -876,7 +876,6 @@ sc:
ios: iOS
linux: Linux
mac: macOS
- other: prataforma disconnota
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/sco.yml b/config/locales/sco.yml
index 719a8918fc..04c3f192c3 100644
--- a/config/locales/sco.yml
+++ b/config/locales/sco.yml
@@ -1411,7 +1411,6 @@ sco:
ios: iOS
linux: Linux
mac: macOS
- other: unkent platform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/si.yml b/config/locales/si.yml
index 87eaee5b6b..4a53215243 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -1204,7 +1204,6 @@ si:
ios: අයිඕඑස්
linux: ලිනක්ස්
mac: මැක්ඕඑස්
- other: නොදන්නා වේදිකාව
windows: වින්ඩෝස්
windows_mobile: වින්ඩෝස් මොබයිල්
windows_phone: වින්ඩෝස් පෝන්
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index 32364cf7e4..9e97d51f24 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -59,6 +59,10 @@ ast:
ip_block:
comment: Opcional. Un recordatoriu de por qué amestesti esta norma.
expires_in: Les direiciones IP son un recursu finitu, suelen compartise ya cambiar de manes. Por esti motivu, nun s'aconseyen los bloqueos indefiníos de direiciones IP.
+ severities:
+ no_access: Bloquia l'accesu a tolos recursos
+ sign_up_block: Fai que nun se puedan rexistrar cuentes nueves
+ sign_up_requires_approval: Fai que se tengan de revisar les cuentes rexistraes nueves
user:
chosen_languages: Namás los artículos de les llingües que marques son los que van apaecer nes llinies de tiempu públiques
labels:
@@ -161,7 +165,12 @@ ast:
invite_request:
text: "¿Por qué quies xunite?"
ip_block:
+ comment: Comentariu
ip: IP
+ severities:
+ no_access: Bloquiar l'accesu
+ sign_up_block: Bloquiar el rexistru de cuentes nueves
+ sign_up_requires_approval: Llendar les cuentes rexistraes nueves
notification_emails:
favourite: Daquién marcó como favoritu'l to artículu
follow: Daquién te sigue
diff --git a/config/locales/simple_form.bg.yml b/config/locales/simple_form.bg.yml
index 213e519ce3..e84edc50da 100644
--- a/config/locales/simple_form.bg.yml
+++ b/config/locales/simple_form.bg.yml
@@ -15,8 +15,8 @@ bg:
text_html: По избор. Можете да използвате синтаксисът на публикация. Можете да добавите предварително настроени предупреждения, за да спестите време
type_html: Изберете какво ще правите с %{acct}
types:
- disable: Забранете на потребител да достъпва акаунта си, без да изтривате или скривате съдържанието на този акаунт.
- none: Служи за изпращане на предупреждение до потребител, без да се активира друго действие.
+ disable: Предотвратяване на потребител да употребява акаунта си, но без да се изтрива или скрива съдържанието му.
+ none: Използвайте това за изпращане на предупреждение до потребител, без задействане на друго действие.
sensitive: Принудително отбелязване на прикачената от потребителя мултимедия като чувствителна.
silence: Предотвратяване на потребителя да може да публикува с обществена видимост, скриване на публикациите му и известията от хората, които не го следват. Затваря всички доклади срещу този акаунт.
suspend: Предотвратяване на всякакво взаимодействие от или към този акаунт и изтриване на съдържанието му. Обратимо в рамките на 30 дни. Затваря всички доклади срещу този акаунт.
@@ -28,7 +28,7 @@ bg:
starts_at: По избор. В случай, че обявлението е ограничено до определен времеви диапазон
text: Може да употребявате синтаксиса на публикации. Имайте предвид, че оповестяването ще заема известно място от екрана на потребителя
appeal:
- text: Можете да възразите срещу провинение само веднъж
+ text: Може да възразите срещу провинение само веднъж
defaults:
autofollow: Хората, които се регистрират чрез поканата, автоматично ще ви последват
avatar: PNG, GIF или JPG. До най-много %{size}. Ще се смали до %{dimensions} пиксела
@@ -52,17 +52,17 @@ bg:
setting_always_send_emails: Обикновено известията по имейл няма да са изпратени при дейна употреба на Mastodon
setting_default_sensitive: Деликатната мултимедия е скрита по подразбиране и може да се разкрие с едно щракване
setting_display_media_default: Скриване на мултимедия отбелязана като деликатна
- setting_display_media_hide_all: Винаги да се скрива мултимедията
- setting_display_media_show_all: Винаги да се показва мултимедията
+ setting_display_media_hide_all: Винаги скриване на мултимедията
+ setting_display_media_show_all: Винаги показване на мултимедията
setting_hide_network: В профила ви ще бъде скрито кой може да последвате и кой може да ви последва
setting_noindex: Засяга вашите публикации и публичен профил
setting_show_application: Приложението, което ползвате за публикуване, ще се показва в подробностите на публикацията ви
setting_use_blurhash: Преливането е въз основа на цветовете на скритите визуализации, но се замъгляват подробностите
setting_use_pending_items: Да се показват обновявания на часовата ос само след щракване вместо автоматично превъртане на инфоканала
- username: Вашето потребителско име ще е неповторим в %{domain}
+ username: Вашето потребителско име ще е неповторимо в %{domain}
whole_word: Ако ключовата дума или фраза е само буквеноцифрена, то ще се приложи само, ако съвпадне с цялата дума
domain_allow:
- domain: Този домейн ще може да извлече данни от този сървър и входящите данни от него ще бъдат обработени и запазени
+ domain: Домейнът ще може да извлича данни от този сървър и входящите данни от него ще се обработят и съхранят
email_domain_block:
domain: Това може да е името на домейна, който се съдържа в имейл адреса или MX записа, който той използва. Ще бъдат проверени при регистрация.
with_dns_records: Ще има опит за преобразуване на DNS записите за дадения домейн и резултатите също ще бъдат блокирани
@@ -74,14 +74,14 @@ bg:
hide: Напълно скриване на филтрираното съдържание, сякаш не съществува
warn: Скриване на филтрираното съдържание зад предупреждение, споменавайки заглавието на филтъра
form_admin_settings:
- activity_api_enabled: Брой публикувани постове, активни потребители и нови регистрации за седмицата
+ activity_api_enabled: Броят на местните публикувани публикации, дейни потребители и нови регистрации в седмични кофи
backups_retention_period: Задържане на породените потребителски архиви за определения брой дни.
bootstrap_timeline_accounts: Тези акаунти ще се закачат в горния край на препоръките за следване на нови потребители.
closed_registrations_message: Показва се, когато е затворено за регистрации
content_cache_retention_period: Публикации от други сървъри ще се изтрият след определен брой дни при положително число. Действието може да е необратимо.
- custom_css: Може да прилагате собствени стилове в уеб версията на Mastodon.
+ custom_css: Може да прилагате собствени стилове в уебверсията на Mastodon.
mascot: Замества илюстрацията в разширения уеб интерфейс.
- media_cache_retention_period: Свалените мултимедийни файлове ще бъдат изтрити след посочения брой дни, когато броят е положително число, и ще бъдат свалени отново при поискване.
+ media_cache_retention_period: Изтеглените мултимедийни файлове ще се изтрият след посочения брой дни, задавайки положително число, и ще се изтеглят пак при поискване.
peers_api_enabled: Списък от имена на домейни, с които сървърът се е свързал във федивселената. Тук не се включват данни за това дали федерирате с даден сървър, а само за това дали сървърът ви знае за него. Това се ползва от услуги, събиращи статистика за федерацията в общия смисъл.
profile_directory: Указателят на профили вписва всички потребители, избрали да бъдат откриваеми.
require_invite_text: Когато регистрацията изисква ръчно одобрение, текстовото поле за това "Защо желаете да се присъедините?" ще бъде задължително, вместо по желание
@@ -95,7 +95,7 @@ bg:
theme: Темата, която излизащи от системата посетители и нови потребители виждат.
thumbnail: Образ в съотношение около 2:1, показвано до информацията за сървъра ви.
timeline_preview: Излизащите от системата посетители ще може да разглеждат най-новите публични публикации, налични на сървъра.
- trendable_by_default: Прескачане на ръчния преглед на нашумяло съдържание. Отделни елементи могат да бъдат премахвани от нашумели в последствие.
+ trendable_by_default: Прескачане на ръчния преглед на изгряващо съдържание. Отделни елементи още могат да се премахват от изгряващи постфактум.
trends: В раздел „Налагащо се“ се показват публикации, хаштагове и новини, набрали популярност на сървъра ви.
trends_as_landing_page: Показване на налагащото се съдържание за излизащите потребители и посетители вместо на описа на този сървър. Изисква налагащото се да бъде включено.
form_challenge:
@@ -142,7 +142,7 @@ bg:
account_migration:
acct: Потребителско име на новия акаунт
account_warning_preset:
- text: Предварително настроен текст
+ text: Зададен текст
title: Заглавие
admin_account_action:
include_statuses: Включване на докладваните публикации в имейла
@@ -155,7 +155,7 @@ bg:
sensitive: Деликатно
silence: Ограничение
suspend: Спиране
- warning_preset_id: Употреба на преднастройка за предупреждение
+ warning_preset_id: Употреба на зададено предупреждение
announcement:
all_day: Целодневно събитие
ends_at: Край на събитието
@@ -171,7 +171,7 @@ bg:
chosen_languages: Филтриране на езиците
confirm_new_password: Потвърждаване на новата парола
confirm_password: Потвърдете паролата
- context: Филтриране на контекста
+ context: Прецеждане на контекста
current_password: Текуща парола
data: Данни
discoverable: Предложете акаунта на други
@@ -185,7 +185,7 @@ bg:
irreversible: Премахване, вместо скриване
locale: Език на интерфейса
locked: Направи акаунта поверителен
- max_uses: Максимален брой използвания
+ max_uses: Макс брой употреби
new_password: Нова парола
note: Биогр.
otp_attempt: Двуфакторен код
@@ -207,7 +207,7 @@ bg:
setting_display_media_hide_all: Скриване на всичко
setting_display_media_show_all: Показване на всичко
setting_expand_spoilers: Винаги разширяване на публикации, отбелязани с предупреждения за съдържание
- setting_hide_network: Скриване на социалното ви графосвързване
+ setting_hide_network: Скриване на социалния ви свързан граф
setting_noindex: Отказване от индексирането от търсачки
setting_reduce_motion: Обездвижване на анимациите
setting_show_application: Разкриване на приложението, изпращащо публикации
@@ -236,7 +236,7 @@ bg:
activity_api_enabled: Публикуване на агрегирани статиски относно потребителската дейност в API
backups_retention_period: Период за съхранение на потребителския архив
bootstrap_timeline_accounts: Винаги да се препоръчват следните акаунти на нови потребители
- closed_registrations_message: Съобщение, показвано, когато записвания не са възможни
+ closed_registrations_message: Съобщение при неналична регистрация
content_cache_retention_period: Период на съхранение на кеша за съдържание
custom_css: Персонализиран CSS
mascot: Талисман по избор (остаряла настройка)
@@ -283,7 +283,7 @@ bg:
follow: Някой ви последва
follow_request: Някой пожела да ви последва
mention: Някой ви спомена
- pending_account: Новите акаунти трябва да се прегледат
+ pending_account: Новите акаунти се нуждаят от преглед
reblog: Някой подсили ваша публикация
report: Новият доклад е подаден
trending_tag: Изискване на преглед за новонашумели
@@ -306,11 +306,11 @@ bg:
events: Включване на събития
url: URL адрес на крайната точка
'no': Не
- not_recommended: Не се препоръчва
- recommended: Препоръчано
+ not_recommended: Непрепоръчително
+ recommended: Препоръчва се
required:
mark: "*"
- text: задължително
+ text: изисквано
title:
sessions:
webauthn: Употребете един от ключовете си за сигурност, за да влезете
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 3116f02d81..af29427420 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -18,6 +18,8 @@ da:
disable: Forhindre brugeren i at bruge sin konto, men slet eller skjul ikke vedkommendes indhold.
none: Brug dette til at sende en advarsel til brugeren uden at udløse nogen anden handling.
sensitive: Gennemtving sensitivmarkering af alle denne brugers medievedhæftninger.
+ silence: Forhindr brugeren i at udgive offentligt synlige indlæg, skjul vedkommendes indlæg samt notifikationer fra ikke-følgere. Lukker alle indrapporteringer af kontoen.
+ suspend: Forhindr alle interaktion fra/til kontoen og slet dens indhold. Kan omgøres inden for 30 dage. Lukker alle indrapporteringer af kontoen.
warning_preset_id: Valgfri. Du kan stadig tilføje tilpasset tekst til slutningen af forvalgene
announcement:
all_day: Hvis markeret, vil kun datoerne for tidsintervallet blive vist
@@ -80,6 +82,7 @@ da:
custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen.
mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade.
media_cache_retention_period: Downloadede mediefiler slettes efter det angivne antal dage, når sat til en positiv værdi, og gendownloades på forlangende.
+ peers_api_enabled: En liste med domænenavne, som denne server har stødt på i fediverset. Ingen data inkluderes her om, hvorvidt der fødereres med en given server, blot at din server kender til det. Dette bruges af tjenester, som indsamler generelle føderationsstatistikker.
profile_directory: Profilmappen oplister alle brugere, som har valgt at kunne opdages.
require_invite_text: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit
site_contact_email: Hvordan folk kan opnå kontakt ifm. juridiske eller supportforespørgsler.
@@ -238,6 +241,7 @@ da:
custom_css: Tilpasset CSS
mascot: Tilpasset maskot (ældre funktion)
media_cache_retention_period: Media-cache opbevaringsperiode
+ peers_api_enabled: Udgiv liste over fundne server i API'en
profile_directory: Aktivér profiloversigt
registrations_mode: Hvem, der kan tilmelde sig
require_invite_text: Kræv tilmeldingsbegrundelse
@@ -255,6 +259,7 @@ da:
timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer
trendable_by_default: Tillad ikke-reviderede tendenser
trends: Aktivér trends
+ trends_as_landing_page: Brug tendenser som destinationssiden
interactions:
must_be_follower: Blokér notifikationer fra ikke-følgere
must_be_following: Blokér notifikationer fra folk, som ikke følges
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index 0090c2f96d..4a13cea7c4 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -50,7 +50,7 @@ de:
scopes: Welche Schnittstellen der Applikation erlaubt sind. Wenn du einen Top-Level-Scope auswählst, dann musst du nicht jeden einzelnen darunter auswählen.
setting_aggregate_reblogs: Zeige denselben Beitrag nicht nochmal an, wenn er erneut geteilt wurde (dies betrifft nur neulich erhaltene erneut geteilte Beiträge)
setting_always_send_emails: Normalerweise werden Benachrichtigungen nicht per E-Mail verschickt, wenn du gerade auf Mastodon aktiv bist
- setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen worden sind, werden erst nach einem zusätzlichen Klick angezeigt
+ setting_default_sensitive: Medien, die mit einer Inhaltswarnung versehen wurden, werden erst nach einem zusätzlichen Klick angezeigt
setting_display_media_default: Medien mit Inhaltswarnung ausblenden
setting_display_media_hide_all: Medien immer ausblenden
setting_display_media_show_all: Medien mit Inhaltswarnung immer anzeigen
@@ -74,9 +74,9 @@ de:
hide: Den gefilterten Beitrag vollständig ausblenden, als hätte er nie existiert
warn: Den gefilterten Beitrag hinter einer Warnung, die den Filtertitel beinhaltet, ausblenden
form_admin_settings:
- activity_api_enabled: Anzahl der lokal veröffentlichten Beiträge, der aktiven Benutzer*innen und neuen Registrierungen in wöchentlichen Abständen
+ activity_api_enabled: Anzahl der wöchentlichen Beiträge, aktiven Profile und Registrierungen auf diesem Server
backups_retention_period: Behalte die Archive, die von den Benutzer*innen erstellt worden sind, für die angegebene Anzahl an Tagen.
- bootstrap_timeline_accounts: Diese Profile werden bei den Follower-Empfehlungen für neu registrierte Nutzer*innen oben angeheftet.
+ bootstrap_timeline_accounts: Diese Konten werden bei den Follower-Empfehlungen für neu registrierte Nutzer*innen oben angeheftet.
closed_registrations_message: Wird angezeigt, wenn Registrierungen deaktiviert sind
content_cache_retention_period: Beiträge von anderen Servern werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht. Dies kann eventuell nicht rückgängig gemacht werden.
custom_css: Du kannst benutzerdefinierte Stile auf die Web-Version von Mastodon anwenden.
@@ -91,7 +91,7 @@ de:
site_short_description: Eine kurze Beschreibung zur eindeutigen Identifizierung des Servers. Wer betreibt ihn, für wen ist er bestimmt?
site_terms: Verwende eine eigene Datenschutzerklärung oder lasse das Feld leer, um die allgemeine Vorlage zu verwenden. Kann mit der Markdown-Syntax formatiert werden.
site_title: Wie Personen neben dem Domainnamen auf deinen Server verweisen können.
- status_page_url: URL einer Seite, auf der der Status des Servers während eines Ausfalls angezeigt werden kann
+ status_page_url: URL einer Seite, auf der der Serverstatus während eines Ausfalls angezeigt wird
theme: Das Design, das abgemeldete Besucher und neue Benutzer sehen.
thumbnail: Ein Bild ungefähr im 2:1-Format, das neben den Server-Informationen angezeigt wird.
timeline_preview: Besucher*innen und ausgeloggte Benutzer*innen können die neuesten öffentlichen Beiträge dieses Servers aufrufen.
@@ -116,7 +116,7 @@ de:
rule:
text: Führe eine Regel oder Bedingung für Benutzer*innen auf diesem Server ein. Bleib dabei kurz und knapp
sessions:
- otp: 'Gib den Zwei-Faktor-Code von deinem Telefon ein oder benutze einen deiner Wiederherstellungscodes:'
+ otp: 'Gib den Zwei-Faktor-Code von deinem Smartphone ein oder benutze einen deiner Wiederherstellungscodes:'
webauthn: Wenn es sich um einen USB-Schlüssel handelt, vergewissere dich, dass du ihn einsteckst und – falls erforderlich – antippst.
tag:
name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen
@@ -131,21 +131,21 @@ de:
position: Höhere Rollen entscheiden über Konfliktlösungen zu gewissen Situationen. Bestimmte Aktionen können nur mit geringfügigeren Rollen durchgeführt werden
webhook:
events: Zu sendende Ereignisse auswählen
- url: Wo Ereignisse hingesendet werden
+ url: Wohin Ereignisse geschickt werden
labels:
account:
fields:
name: Beschriftung
value: Inhalt
account_alias:
- acct: Adresse des alten Kontos
+ acct: Profilname des alten Kontos
account_migration:
acct: Adresse des neuen Kontos
account_warning_preset:
text: Vorlagentext
title: Titel
admin_account_action:
- include_statuses: Beitragsmeldungen in die E-Mail mit anfügen
+ include_statuses: Gemeldete Beiträge der E-Mail beifügen
send_email_notification: Benachrichtigung per E-Mail
text: Benutzerdefinierte Verwarnung
type: Aktion
@@ -171,7 +171,7 @@ de:
chosen_languages: Sprachen einschränken
confirm_new_password: Neues Passwort bestätigen
confirm_password: Passwort bestätigen
- context: Filter nach Bereichen
+ context: Nach Bereichen filtern
current_password: Derzeitiges Passwort
data: Daten
discoverable: Dieses Konto anderen empfehlen
@@ -233,7 +233,7 @@ de:
hide: Vollständig ausblenden
warn: Mit einer Inhaltswarnung ausblenden
form_admin_settings:
- activity_api_enabled: Veröffentlichung von Gesamtstatistiken über Nutzeraktivitäten in der API
+ activity_api_enabled: Aggregierte Nutzungsdaten über die API veröffentlichen
backups_retention_period: Aufbewahrungsfrist für Archive
bootstrap_timeline_accounts: Neuen Nutzern immer diese Konten empfehlen
closed_registrations_message: Nachricht, falls Registrierungen deaktiviert sind
@@ -241,7 +241,7 @@ de:
custom_css: Eigenes CSS
mascot: Benutzerdefiniertes Maskottchen (Legacy)
media_cache_retention_period: Aufbewahrungsfrist für den Medien-Cache
- peers_api_enabled: Veröffentliche Liste bekannter Server in der API
+ peers_api_enabled: Über die API die bekanntgewordenen Fediverse-Server veröffentlichen
profile_directory: Profilverzeichnis aktivieren
registrations_mode: Wer darf ein neues Konto registrieren?
require_invite_text: Begründung für Beitritt verlangen
diff --git a/config/locales/simple_form.et.yml b/config/locales/simple_form.et.yml
index 8b7dace23c..83aa4159d8 100644
--- a/config/locales/simple_form.et.yml
+++ b/config/locales/simple_form.et.yml
@@ -30,7 +30,7 @@ et:
appeal:
text: Otsust on võimalik vaidlustada vaid 1 kord
defaults:
- autofollow: Inimesed, kes loovad konto selle kutse läbi, automaatselt jälgivad Teid
+ autofollow: Inimesed, kes loovad konto selle kutse läbi, automaatselt jälgivad sind
avatar: PNG, GIF või JPG. Kõige rohkem %{size}. Vähendatakse %{dimensions} pikslini
bot: Teavita teisi, et see konto teeb enamjaolt automatiseeritud tegevusi ja ei pruugi olla järelvalve all
context: Üks või mitu konteksti, mille vastu see filter peaks rakenduma
@@ -54,7 +54,7 @@ et:
setting_display_media_default: Peida tundlikuks märgitud meedia
setting_display_media_hide_all: Alati peida kõik meedia
setting_display_media_show_all: Alati näita tundlikuks märgistatud meedia
- setting_hide_network: Profiilil ei kuvata Keda sa jälgid ja kes jälgib sind
+ setting_hide_network: Profiilil ei kuvata, keda sa jälgid ja kes sind jälgib
setting_noindex: Mõjutab avalikku profiili ja postituste lehekülgi
setting_show_application: Postitamiseks kasutatud rakenduse infot kuvatakse postituse üksikasjavaates
setting_use_blurhash: Värvid põhinevad peidetud visuaalidel, kuid hägustavad igasuguseid detaile
@@ -281,8 +281,8 @@ et:
digest: Saada ülevaatlike e-kirju
favourite: Saada e-kiri, kui keegi lisab su postituse lemmikuks
follow: Saada e-kiri, kui keegi alustab jälgimist
- follow_request: Saada e-kiri, kui keegi soovib Teid jälgida
- mention: Saada e-kiri, kui keegi mainib Teid
+ follow_request: Saada e-kiri, kui keegi soovib sind jälgida
+ mention: Saada e-kiri, kui keegi mainib sind
pending_account: Saada e-kiri, kui uus konto vajab ülevaatlust
reblog: Keegi jagas postitust
report: Esitatud on uus raport
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index f22ba7a981..ac5e0a8ce4 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -8,7 +8,7 @@ fi:
acct: Määrittele käyttäjän käyttäjänimi@verkkotunnus, johon haluat siirtyä
account_warning_preset:
text: Voit käyttää julkaisun syntaksia, kuten URL-osoitteita, aihetunnisteita ja mainintoja
- title: Vapaaehtoinen. Ei näytetä vastaanottajalle
+ title: Valinnainen. Ei näy vastaanottajalle
admin_account_action:
include_statuses: Käyttäjä näkee mitkä viestit johtivat toimenpiteeseen tai varoitukseen
send_email_notification: Käyttäjä saa selityksen mitä tapahtui hänen tililleen
@@ -67,7 +67,7 @@ fi:
domain: Tämä voi olla se verkkotunnus, joka näkyy sähköpostiosoitteessa tai MX tietueessa jota se käyttää. Ne tarkistetaan rekisteröitymisen yhteydessä.
with_dns_records: Annetun verkkotunnuksen DNS-tietueet yritetään ratkaista ja tulokset myös estetään
featured_tag:
- name: 'Tässä muutamia aihetunnisteita, joita käytit viime aikoina:'
+ name: 'Tässä muutamia hiljattain käyttämiäsi aihetunnisteita:'
filters:
action: Valitse, mikä toiminto suoritetaan, kun viesti vastaa suodatinta
actions:
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 294fc548bb..1d63fb631c 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -167,7 +167,7 @@ ko:
defaults:
autofollow: 초대를 통한 팔로우
avatar: 아바타
- bot: 이것은 봇 계정입니다
+ bot: 이것은 자동화된 계정입니다
chosen_languages: 언어 필터링
confirm_new_password: 암호 다시 입력
confirm_password: 암호 다시 입력
@@ -187,7 +187,7 @@ ko:
locked: 팔로우 요청 필요
max_uses: 사용 횟수 제한
new_password: 새로운 암호 입력
- note: 자기소개
+ note: 소개
otp_attempt: 이중 인증 코드
password: 암호
phrase: 키워드 또는 문장
@@ -214,7 +214,7 @@ ko:
setting_system_font_ui: 시스템의 기본 글꼴을 사용
setting_theme: 사이트 테마
setting_trends: 오늘의 유행 보이기
- setting_unfollow_modal: 언팔로우 전 언팔로우 확인 표시
+ setting_unfollow_modal: 누군가를 언팔로우 할 때 확인란 표시하기
setting_use_blurhash: 숨겨진 미디어에 대해 그라디언트 표시
setting_use_pending_items: 느린 모드
severity: 심각도
diff --git a/config/locales/simple_form.my.yml b/config/locales/simple_form.my.yml
index 8a1cefc94b..44a40e4868 100644
--- a/config/locales/simple_form.my.yml
+++ b/config/locales/simple_form.my.yml
@@ -2,40 +2,125 @@
my:
simple_form:
hints:
+ account_alias:
+ acct: သင်ပြောင်းရွှေ့လိုသောအကောင့်၏ username@domain ကိုသတ်မှတ်ပါ
+ account_warning_preset:
+ text: URLs၊ hashtags နှင့် mentions များကဲ့သို့ ပို့စ်ကို သုံးနိုင်သည်
+ admin_account_action:
+ include_statuses: အသုံးပြုသူသည် မည်သည့်ပို့စ်များမှာ စိစစ်ထားခြင်း သို့မဟုတ် သတိပေးထားခြင်းဖြစ်စေသည်ကို တွေ့မြင်နိုင်ပါသည်
+ send_email_notification: အသုံးပြုသူသည် ၎င်းတို့၏အကောင့်နှင့် ဖြစ်ပျက်ခဲ့သော ရှင်းလင်းချက်ကို လက်ခံရရှိမည်ဖြစ်သည်
+ type_html: "%{acct} နှင့် ဘာလုပ်ရမည်ကို ရွေးပါ။"
+ announcement:
+ scheduled_at: ကြေညာချက်ချက်ချင်းထုတ်ပြန်ရန်အတွက် နေရာလွတ်ချန်ထားပါ
defaults:
+ autofollow: ဖိတ်ကြားချက်မှတစ်ဆင့် အကောင့်ဖွင့်သူများမှာ သင့်ကို အလိုအလျောက်စောင့်ကြည့်မည်ဖြစ်ပါသည်
+ avatar: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည်။
+ bot: အကောင့်သည် အဓိကအားဖြင့် အလိုအလျောက် လုပ်ဆောင်ချက်များ ဆောင်ရွက်နိုင်ပြီး စောင့်ကြည့်ခြင်းမပြုနိုင်ကြောင်း အခြားသူများအား အသိပေးပါ
+ context: စစ်ထုတ်သင့်သည့် အကြောင်းအရာ တစ်ခု သို့မဟုတ် များစွာ
+ current_password: လုံခြုံရေးအတွက် ကျေးဇူးပြုပြီး လက်ရှိအကောင့်၏ စကားဝှက်ကို ထည့်ပါ
+ current_username: အတည်ပြုရန်အတွက် လက်ရှိအကောင့်၏ အသုံးပြုသူအမည်ကို ရိုက်ထည့်ပါ
+ digest: အချိန်အတော်ကြာ အသုံးမပြုသည့်သည့်နောက်တွင်သာ ပေးပို့ပြီး အသုံးမပြုသည့်ကာလအတွင်း ကိုယ်ရေးကိုယ်တာစာများသာ လက်ခံရန်
+ discoverable: အကြံပြုချက်များ၊ လက်ရှိခေတ်စားနေသောပို့စ်များနှင့် အခြားအကြောင်းအရာများမှတစ်ဆင့် သင့်အကောင့်ကို တခြားသူများက တွေ့ရှိနိုင်စေရန် ခွင့်ပြုပါ။
+ email: သင့်ထံ အတည်ပြုချက်အီးမေးလ်တစ်စောင် ပေးပို့ပါမည်
+ fields: သင့်ပရိုဖိုင်တွင် ၄ ခုအထိ ပြသထားနိုင်သည်
+ header: PNG၊ GIF သို့မဟုတ် JPG။ အများဆုံး %{size}။ %{dimensions}px သို့ လျှော့ချပါမည်
+ inbox_url: သင်အသုံးပြုလိုသော relay ၏ ရှေ့စာမျက်နှာမှ URL ကို ကူးယူပါ
+ locale: အသုံးပြုသူမှ လက်ရှိသုံးနေသည့်ဘာသာစကား၊ အီးမေးလ်များနှင့် ရရှိစေရန်ပေးပို့သည့် အသိပေးချက်များ
+ locked: စောင့်ကြည့်ရန်အတွက် တောင်းဆိုမှုများကို အတည်ပြုခြင်းဖြင့် စောင့်ကြည့်သူများကို ထိန်းချုပ်နိုင်သည်
password: အနည်းဆုံး စာလုံး ၈ လုံး အသုံးပြုပါ။
+ setting_aggregate_reblogs: မကြာသေးခင်က Boost လုပ်ထားသောပို့စ်များအတွက် Boost အသစ်များကို မပြပါနှင့် (အသစ်ရရှိထားသော Boost များကိုသာ ပြသပါရန်)
+ setting_always_send_emails: Mastodon ကို လက်ရှိအသုံးပြုနေချိန်တွင် ပုံမှန်အားဖြင့် အီးမေးလ်အသိပေးချက်များကို ပေးပို့မည်မဟုတ်ပါ
+ setting_default_sensitive: သတိထားရသောမီဒီယာကို မူလအားဖြင့် ဖျောက်ထားနိုင်ပြီး ကလစ်တစ်ချက်နှိပ်ရုံဖြင့် ပြန်လည်ဖော်ပြနိုင်သည်
+ setting_display_media_default: သတိထားရသောမီဒီယာအဖြစ် သတ်မှတ်ထားမှုအား ဖျောက်ပါ
setting_display_media_hide_all: မီဒီယာကို အမြဲတမ်းဖျောက်ထားပါ
setting_display_media_show_all: မီဒီယာကို အမြဲတမ်းပြပါ
setting_hide_network: သင်စောင့်ကြည့်မည့်သူများနှင့် သင့်ကိုစောင့်ကြည့်မည့်သူများကို သင့်ပရိုဖိုင်တွင် ဖျောက်ထားနိုင်ပါသည်
setting_noindex: သင်၏ အများမြင်သည့်ပရိုဖိုင်နှင့် ပို့စ်စာမျက်နှာများကို အကျိုးသက်ရောက်သည်
setting_show_application: ပို့စ်တင်ရန်အတွက် သင်အသုံးပြုသည့် အက်ပလီကေးရှင်းကို သင့်ပို့စ်များ၏ အသေးစိတ်ကြည့်ရှုမှုတွင် ပြသမည်ဖြစ်သည်
+ username: "%{domain} ရှိ သင့်အသုံးပြုသူအမည်မှာ တူညီ၍မရပါ"
+ email_domain_block:
+ domain: "၎င်းမှာ အီးမေးလ်လိပ်စာ သို့မဟုတ် အသုံးပြုသည့် MX မှတ်တမ်းတွင် ပေါ်လာသည့် ဒိုမိန်းအမည် ဖြစ်နိုင်သည်။ အကောင့်ဖွင့်ပြီးပါက စစ်ဆေးနိုင်မည်ဖြစ်သည်။"
+ featured_tag:
+ name: ဤသည်မှာ သင်မကြာသေးမီက အသုံးပြုခဲ့သော hashtag အချို့ဖြစ်သည် -
+ filters:
+ action: ပို့စ်တစ်ခုသည် စစ်ထုတ်မှုနှင့် ကိုက်ညီချိန်တွင် မည်သည့်လုပ်ဆောင်ချက် ဆောင်ရွက်မည်ကို ရွေးချယ်ပါ
+ actions:
+ warn: စစ်ထုတ်မှုခေါင်းစဉ်ကိုဖော်ပြသည့်သတိပေးချက်နောက်တွင် စစ်ထုတ်ထားသောအကြောင်းအရာကို ဖျောက်ထားပါ
+ form_admin_settings:
+ activity_api_enabled: အပတ်စဉ် စာရင်းများတွင် ဒေသတွင်းတင်ထားသောပို့စ်များ၊ လက်ရှိအသုံးပြုသူများနှင့် စာရင်းသွင်းမှုအသစ်များ
+ backups_retention_period: သတ်မှတ်ထားသော ရက်အရေအတွက်အလိုက် အသုံးပြုသူမှတ်တမ်းများကို သိမ်းဆည်းပါ။
+ bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များ၏ စောင့်ကြည့်မှု အကြံပြုချက်များ၏ထိပ်ဆုံးတွင် ပင်ချိတ်ထားပါမည်။
+ closed_registrations_message: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ထားသည့်အခါတွင် ပြသထားသည်
+ custom_css: Mastodon ဝဘ်ဗားရှင်းတွင် စိတ်ကြိုက်စတိုင်များကို အသုံးပြုနိုင်ပါသည်။
+ site_contact_username: Mastodon တွင် အခြားသူများက သင့်ကို မည်သို့သိရှိနိုင်မည်နည်း။
+ site_extended_description: ဝင်ရောက်ကြည့်ရှုသူများနှင့် အသုံးပြုသူများအတွက် အသုံးဝင်မည့် နောက်ထပ်အချက်အလက်များကို Markdown စာကြောင်းများဖြင့် ရေးသားနိုင်သည်။
+ site_terms: သင့်ကိုယ်ပိုင် ကိုယ်ရေးအချက်အလက်မူဝါဒကို အသုံးပြုပါ သို့မဟုတ် မူလသတ်မှတ်ချက်ကို အသုံးပြုရန်အတွက် ကွက်လပ်ထားပါ။ Markdown စာများဖြင့် ရေးသားနိုင်သည်။
+ status_page_url: ပြတ်တောက်နေစဉ်အတွင်း လူများက ဤဆာဗာအခြေအနေကို မြင်နိုင်မည့် စာမျက်နှာ URL
+ theme: အကောင့်မှထွက်ပြီး အသုံးပြုသူအသစ်များနှင့် ဝင်ကြည့်မည့်သူများအတွက် မြင်ရမည့်ပုံစံ။
+ timeline_preview: အကောင့်မှထွက်ထားသူများသည် ဆာဗာပေါ်ရှိ လတ်တလော အများမြင်ပို့စ်များကို ရှာဖွေကြည့်ရှုနိုင်မည်ဖြစ်သည်။
+ trends: လက်ရှိခေတ်စားနေသာပို့စ်များ၊ hashtag များနှင့် သတင်းဇာတ်လမ်းများကို သင့်ဆာဗာပေါ်တွင် တွေ့မြင်နိုင်ပါမည်။
+ trends_as_landing_page: ဤဆာဗာဖော်ပြချက်အစား အကောင့်မှ ထွက်ထားသူများနှင့် ဝင်ရောက်ကြည့်ရှုသူများအတွက် ခေတ်စားနေသော အကြောင်းအရာများကို ပြသပါ။ ခေတ်စားနေသောပို့စ်များကို ဖွင့်ထားရန် လိုအပ်သည်။
+ form_challenge:
+ current_password: သင်သည် လုံခြုံသောနေရာသို့ ဝင်ရောက်နေပါသည်
imports:
data: အခြား Mastodon ဆာဗာမှ CSV ဖိုင်ကို ပို့ထားသည်
invite_request:
text: "၎င်းသည် သင့်အက်ပလီကေးရှင်းကို ပြန်လည်သုံးသပ်ရန်အတွက် ကူညီပေးနိုင်ပါသည်"
ip_block:
+ comment: ရွေးချယ်ခွင့်ရှိသည်။ ဤစည်းမျဉ်းကို ဘာကြောင့်ထည့်ခဲ့တာလဲဆိုတာ သတိရပါ။
severities:
+ no_access: အရင်းအမြစ်များအားလုံးသို့ ဝင်ရောက်ခွင့်ကို ပိတ်ပါ
+ sign_up_block: အကောင့်အသစ်များ မဖွင့်နိုင်တော့ပါ
sign_up_requires_approval: အကောင့်အသစ်များသည် သင့်ခွင့်ပြုချက်လိုအပ်ပါသည်
+ severity: ဤ IP မှ တောင်းဆိုမှုများဖြင့် ဖြစ်ပေါ်လာမည့်အရာ ရွေးချယ်ပါ
+ rule:
+ text: ဤဆာဗာအသုံးပြုသူများအတွက် စည်းမျဉ်း သို့မဟုတ် လိုအပ်ချက် ဖော်ပြပါ။ လိုရင်းတိုရှင်းဖြစ်ပါစေ။
sessions:
otp: သင့်ဖုန်းအက်ပ်မှထုတ်ပေးသောနှစ်ဆင့်ခံလုံခြုံရေးကုဒ်ကို ထည့်ပါ သို့မဟုတ် ပြန်လည်ရယူရေးကုဒ်များထဲမှ တစ်ခုကို အသုံးပြုပါ -
+ webauthn: USB ကီးဖြစ်ပါက ထည့်သွင်းပါ။ လိုအပ်ပါက နှိပ်ပါ။
+ tag:
+ name: ဥပမာအားဖြင့် စာလုံးများကို ပိုမိုဖတ်ရှုနိုင်စေရန်မှာ သင်သာ ပြောင်းလဲနိုင်သည်။
+ user:
+ chosen_languages: အမှန်ခြစ် ရွေးချယ်ထားသော ဘာသာစကားများဖြင့်သာ ပို့စ်များကို အများမြင်စာမျက်နှာတွင် ပြသပါမည်
+ role: အသုံးပြုသူ၏ ခွင့်ပြုချက်ကဏ္ဍကို ထိန်းချုပ်ထားသည်
+ user_role:
+ color: hex ပုံစံ RGB အဖြစ် UI တစ်လျှောက်လုံး အခန်းကဏ္ဍအတွက် အသုံးပြုရမည့်အရောင်
+ highlighted: ယင်းက အခန်းကဏ္ဍကို အများမြင်အောင် ဖွင့်ပေးထားသည်။
+ name: အကယ်၍ အခန်းကဏ္ဍကို သင်္ကေတတစ်ခုအဖြစ်ပြသရန် သတ်မှတ်ထားပါက အခန်းကဏ္ဍကို အများမြင်မည့်အမည်
+ permissions_as_keys: ဤအခန်းကဏ္ဍဖြင့် အသုံးပြုသူများသာ အသုံးပြုခွင့်ရှိပါမည်...
+ webhook:
+ events: ပို့မည့်အကြောင်းအရာများကို ရွေးချယ်ပါ
+ url: အကြောင်းအရာများကို ဘယ်ကို ပို့မလဲ။
labels:
account:
fields:
+ name: အညွှန်း
value: အကြောင်းအရာ
account_alias:
acct: အကောင့်ဟောင်းကို ကိုင်တွယ်ပါ။
account_migration:
acct: အကောင့်သစ်ကို ကိုင်တွယ်ပါ။
account_warning_preset:
+ text: ကြိုရေးထားသောစာ
title: ခေါင်းစဥ်
admin_account_action:
+ include_statuses: အီးမေးလ်တွင် တိုင်ကြားထားသောပို့စ်များကို ထည့်သွင်းပါ
+ send_email_notification: အသုံးပြုသူတစ်ယောက်တွင် အီးမေးလ်တစ်ခုသာ အသုံးပြုရပါမည်
+ text: စိတ်ကြိုက်သတိပေးချက်
type: လုပ်ဆောင်ချက်
types:
none: သတိပေးချက်ပေးပို့ပါ
+ sensitive: သတိထားရသော
silence: ကန့်သတ်
+ suspend: ရပ်ဆိုင်းရန်
+ warning_preset_id: ကြိုတင်သတိပေးချက်ကို အသုံးပြုပါ
announcement:
+ all_day: တစ်နေ့တာလုပ်ငန်းစဉ်
+ ends_at: အကြောင်းအရာ၏အဆုံး
+ starts_at: အကြောင်းအရာ၏အစ
text: ကြေညာချက်
defaults:
+ autofollow: သင့်အကောင့်စောင့်ကြည့်ရန် ဖိတ်ခေါ်ပါ
avatar: ကိုယ်စားပြုရုပ်ပုံ
bot: ဤသည်မှာ ဘော့တ်အကောင့်တစ်ခုဖြစ်သည်။
chosen_languages: ဘာသာစကားများကို စစ်ထုတ်ထားခြင်း
@@ -44,42 +129,82 @@ my:
context: အကြောင်းအရာများကို စစ်ထုတ်ပါ။
current_password: လက်ရှိစကားဝှက်
data: အချက်အလက်
+ discoverable: အကောင့်ကို အခြားသူများအား အကြံပြုပါ
display_name: ဖော်ပြမည့်အမည်
email: အီးမေးလ်လိပ်စာ
+ expires_in: သက်တမ်းကုန်ဆုံးမည့်ရက်
header: မျက်နှာဖုံးပုံ
honeypot: "%{label} (မဖြည့်ပါနှင့်)"
+ locale: ဘာသာစကား
+ locked: စောင့်ကြည့်တောင်းဆိုမှုများ လိုအပ်သည်
+ max_uses: အများဆုံးအသုံးပြုမှုအရေအတွက်
new_password: စကားဝှက်အသစ်
note: ကိုယ်ရေးအကျဉ်း
otp_attempt: နှစ်ဆင့်ခံလုံခြုံရေးကုဒ်
password: စကားဝှက်
phrase: အဓိကစကားလုံး သို့မဟုတ် စကားစု
+ setting_advanced_layout: အဆင့်မြှင့်ထားသည့်ဝဘ်ကို ဖွင့်ပါ
+ setting_aggregate_reblogs: စာမျက်နှာများရှိ အဖွဲ့လိုက် Boost များ
setting_always_send_emails: အီးမေးလ်သတိပေးချက်များကို အမြဲပို့ပါ
setting_auto_play_gif: ကာတွန်း GIF များကို အလိုအလျောက်ဖွင့်ပါ
+ setting_boost_modal: Boost မလုပ်မီ အတည်ပြုချက်ပြပါ
+ setting_default_language: ပို့စ်တင်မည့်ဘာသာစကား
+ setting_default_privacy: ပို့စ်ကို ဘယ်သူမြင်နိုင်မလဲ
+ setting_default_sensitive: သတိထားရသောမီဒီယာအဖြစ် အမြဲအမှတ်အသားပြုပါ
+ setting_delete_modal: ပို့စ်တစ်ခုမဖျက်မီ အတည်ပြုချက်ပြပါ။
setting_display_media: မီဒီယာဖော်ပြမှု
+ setting_display_media_default: မူလသတ်မှတ်ချက်
setting_display_media_hide_all: အားလုံးကို ဖျောက်ပါ
setting_display_media_show_all: အားလုံးပြရန်
+ setting_expand_spoilers: အကြောင်းအရာသတိပေးချက်များဖြင့် အမှတ်အသားပြုထားသော ပို့စ်များကို အမြဲချဲ့ပါ
+ setting_hide_network: သင့် Social Graph ကို ဖျောက်ထားပါ
+ setting_noindex: ရှာဖွေရေးအညွှန်းမှ ဖယ်ထုတ်ပါ
+ setting_show_application: ပို့စ်များ ပေးပို့ရာတွင် အသုံးပြုသည့် အက်ပလီကေးရှင်း
setting_system_font_ui: စနစ်ရှိ နဂိုမူလ စာလုံးပုံစံကို အသုံးပြုပါ
+ setting_theme: ဆိုက်အပြင်အဆင်
setting_trends: ယနေ့ ရေပန်းစားသည်များကို ပြပါ
setting_unfollow_modal: တစ်စုံတစ်ဦးကို မစောင့်ကြည့်မီ အတည်ပြုချက် ဒိုင်ယာလော့ခ်ကို ပြပါ
+ setting_use_pending_items: အနှေးပြကွက်
sign_in_token_attempt: လုံခြုံရေးကုဒ်
title: ခေါင်းစဥ်
+ type: ထည့်သွင်းမှုအမျိုးအစား
username: အသုံးပြုသူအမည်
username_or_email: အသုံးပြုသူအမည် သို့မဟုတ် အီးမေးလ်
+ whole_word: စကားလုံးဖြင့်သာ
+ email_domain_block:
+ with_dns_records: ဒိုမိန်း၏ MX မှတ်တမ်းများနှင့် IP များ ထည့်သွင်းပါ
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: လုံးဝဖျောက်ထားပါ
+ warn: သတိပေးချက်ဖြင့် ဖျောက်ပါ
form_admin_settings:
+ backups_retention_period: အသုံးပြုသူ၏ မှတ်တမ်းကာလ
+ bootstrap_timeline_accounts: ဤအကောင့်များကို အသုံးပြုသူအသစ်များအတွက် အကြံပြုပေးပါ
+ closed_registrations_message: အကောင့်ဖွင့်ခြင်းများ မရတော့သောအခါ စိတ်ကြိုက်မက်ဆေ့ချ်ပို့ခြင်း
+ content_cache_retention_period: အကြောင်းအရာ ကက်ရှ်ထိန်းသိမ်းသည့်ကာလ
custom_css: စိတ်ကြိုက်ပြုလုပ်ထားသော CSS
mascot: စိတ်ကြိုက်ပြုလုပ်ထားသော mascot (legacy)
+ media_cache_retention_period: မီဒီယာကက်ရှ် ထိန်းသိမ်းသည့်ကာလ
+ peers_api_enabled: API တွင် ရှာဖွေတွေ့ရှိထားသော ဆာဗာများစာရင်းကို ထုတ်ပြန်ပါ
+ profile_directory: ပရိုဖိုင်လမ်းညွှန်ကို ဖွင့်ပါ
registrations_mode: ဘယ်သူတွေ အကောင့်ဖွင့်နိုင်မလဲ
require_invite_text: ပါဝင်ရန် အကြောင်းပြချက်တစ်ခု လိုအပ်ပါသည်
show_domain_blocks: ဒိုမိန်းပိတ်ပင်ထားမှုများကိုပြရန်
show_domain_blocks_rationale: ဒိုမိန်းများကို ဘာကြောင့် ပိတ်ဆို့ထားရကြောင်း ပြရန်
site_contact_email: ဆက်သွယ်ရမည့် အီးမေးလ်
site_contact_username: ဆက်သွယ်ရမည့် အသုံးပြုသူအမည်
+ site_extended_description: တိုးချဲ့ဖော်ပြချက်
site_short_description: ဆာဗာဖော်ပြချက်
site_terms: ကိုယ်ရေးအချက်အလက်မူဝါဒ
site_title: ဆာဗာအမည်
+ status_page_url: အခြေအနေပြစာမျက်နှာ URL
+ theme: မူလသတ်မှတ်ထားသည့် အပြင်အဆင်
thumbnail: ဆာဗာ ပုံသေး
+ timeline_preview: အများမြင်စာမျက်နှာများသို့ အထောက်အထားမရှိဘဲ ဝင်ရောက်ခွင့်ပြုပါ
+ trendable_by_default: ကြိုမသုံးသပ်ဘဲ ခေတ်စားနေသောအကြောင်းအရာများကို ခွင့်ပြုပါ
+ trends: လက်ရှိခေတ်စားနေမှုများကိုပြပါ
interactions:
must_be_follower: စောင့်ကြည့်မနေသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
must_be_following: သင် စောင့်ကြည့်မထားသူများထံမှ အသိပေးချက်များကို ပိတ်ပါ
@@ -92,26 +217,42 @@ my:
comment: မှတ်ချက်
ip: IP
severities:
+ no_access: ဝင်ရောက်ခွင့်ကို ပိတ်ပါ
sign_up_block: အကောင့်ဖွင့်ခြင်းများကို ပိတ်ပါ
sign_up_requires_approval: အကောင့်ဖွင့်ခြင်းများကို ကန့်သတ်ပါ
severity: စည်းမျဉ်း
notification_emails:
+ appeal: တစ်စုံတစ်ယောက်က စိစစ်ဆုံးဖြတ်ခြင်းကို တောင်းခံနေသည်
+ digest: အီးမေးလ်အကျဉ်းချုပ်များပို့ရန်
favourite: တစ်စုံတစ်ဦးက သင့်ပို့စ်ကို နှစ်သက်ခဲ့သည်။
follow: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ခဲ့သည်
follow_request: တစ်စုံတစ်ဦးက သင့်ကို စောင့်ကြည့်ရန် တောင်းဆိုခဲ့သည်
mention: တစ်စုံတစ်ဦးက သင့်ကို ဖော်ပြခဲ့သည်
pending_account: အကောင့်အသစ်ကို ပြန်လည်သုံးသပ်ရန် လိုအပ်သည်
+ reblog: တစ်ယောက်က သင့်ပို့စ်ကို Boost လုပ်ခဲ့သည်
+ report: အစီရင်ခံစာအသစ် တင်သွင်းထားသည်
+ trending_tag: လက်ရှိခေတ်စားနေသောပို့စ်များကို ပြန်လည်သုံးသပ်ရန် လိုသည်
rule:
text: စည်းမျဉ်း
tag:
+ listable: ရှာဖွေမှုများနှင့် အကြံပြုချက်များတွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ
name: Hashtag
+ trendable: ခေတ်စားနေသောအကြောင်းအရာများအောက်တွင် ဤ hashtag ပေါ်လာစေရန် ခွင့်ပြုပါ
+ usable: ပို့စ်များကို ဤ hashtag သုံးခွင့်ပြုပါ
user:
role: အခန်းကဏ္ဍ
user_role:
+ color: သင်္ကေတအရောင်
+ highlighted: အသုံးပြုသူပရိုဖိုင်များတွင် သင်္ကေတအဖြစ် အခန်းကဏ္ဍကို ပြသပါ
name: အမည်
permissions_as_keys: ခွင့်ပြုချက်များ
position: ဦးစားပေး
+ webhook:
+ events: အကြောင်းအရာများကဏ္ဍကို ဖွင့်ထားသည်
+ url: URL ဆုံးမှတ်
'no': မလုပ်ပါ
+ not_recommended: ထောက်ခံထားမှုမရှိ
+ recommended: ထောက်ခံထားပြီး
required:
mark: "*"
text: လိုအပ်သော
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index 92578cfd73..ddc1a0d21b 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -257,6 +257,7 @@ pt-BR:
timeline_preview: Permitir acesso não autenticado às linhas do tempo públicas
trendable_by_default: Permitir tendências sem revisão prévia
trends: Habilitar tendências
+ trends_as_landing_page: Usar tendências como página inicial
interactions:
must_be_follower: Bloquear notificações de não-seguidores
must_be_following: Bloquear notificações de não-seguidos
diff --git a/config/locales/simple_form.sr-Latn.yml b/config/locales/simple_form.sr-Latn.yml
index 2f45b63576..e987145c13 100644
--- a/config/locales/simple_form.sr-Latn.yml
+++ b/config/locales/simple_form.sr-Latn.yml
@@ -3,122 +3,128 @@ sr-Latn:
simple_form:
hints:
account_alias:
- acct: Navedi korisničko_ime@domen naloga sa kojeg želiš da pređeš
+ acct: Navedite korisničko_ime@domen naloga sa kojeg želite da se preselite
account_migration:
- acct: Navedi korisničko_ime@domen naloga na koji želiš da pređeš
+ acct: Navedite korisničko_ime@domen naloga na koji želite da se preselite
account_warning_preset:
- text: Možete koristiti sintaksu truba, kao što su npr. URL-ova, tarabe i pominjanja
+ text: Možete koristiti sintaksu objava, kao što su URL adrese, heš oznake i pominjanja
title: Opciono. Nije vidljivo primaocu
admin_account_action:
- include_statuses: Korisnik će videti koje su objave prouzrokovale moderiranje ili upozorenje
- send_email_notification: Korisnik će dobiti objašnjenje toga šta mu se desilo sa naloga
- text_html: Opcionalno. Možete koristiti sintaksu truba. Možete dodati upozoravajuća prepodešavanje da sačuvate vreme
+ include_statuses: Korisnik će videti koje su objave prouzrokovale moderacijsku radnju ili upozorenje
+ send_email_notification: Korisnik će dobiti objašnjenje toga šta mu se desilo sa nalogom
+ text_html: Opcionalno. Možete koristiti sintaksu objava. Možete dodati unapred određene postavke upozorenja za uštedu vremena
type_html: Izaberite šta da radite sa %{acct}
types:
- disable: Spreči korisnika da koristi svoj nalog, ali nemoj brisati ili sakrivati njegov sadržaj.
- none: Koristi ovo da pošalješ upozorenje korisniku, bez pokretanja bilo koje druge akcije.
+ disable: Sprečava korisnika da koristi svoj nalog, ali ne briše niti sakriva njegove sadržaje.
+ none: Koristite ovo da pošaljete upozorenje korisniku bez pokretanja bilo koje druge radnje.
sensitive: Učini da svi medijski prilozi ovog korisnika prisilno budu označeni kao osetljivi.
+ silence: Sprečava korisnika da pravi javne objave, sakriva njegove objave i obaveštenja od ljudi koji ga ne prate. Zatvara sve prijave podnete protiv ovog naloga.
+ suspend: Sprečava svu interakciju od ovog naloga i ka ovom nalogu i briše njegov sadržaj. Opozivo u roku od 30 dana. Zatvara sve prijave podnete protiv ovog naloga.
warning_preset_id: Opcionalno. Možete i dalje dodati prilagođeni tekst na kraj preseta
announcement:
- all_day: Biće prikazani samo datumi vremenskog opsega koji su označeni
+ all_day: Kada je ova opcija označena, samo datumi iz vremenskog opsega će biti prikazani
ends_at: Opciono. Objava će biti automatski opozvana u ovom trenutku
- scheduled_at: Ostavi prazno da bi najava bila odmah objavljena
+ scheduled_at: Ostavite prazno da biste odmah objavili obaveštenje
starts_at: Opciono. U slučaju da je najava vezana za određeni vremenski raspon
- text: Možeš koristiti post sintaksu. Vodi računa o prostoru koji će objava zauzimati na ekranu korisnika
+ text: Možete koristiti sintaksu objava. Molimo Vas vodite računa o prostoru koji će objava zauzimati na ekranu korisnika
appeal:
- text: Na brisanje se možeš žaliti samo jednom
+ text: Možete podneti samo jednu žalbu na upisan prestup
defaults:
autofollow: Osobe koje se prijave kroz pozivnice će vas automatski zapratiti
- avatar: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px
- bot: Ovaj nalog uglavnom vrši automatizovane radnje i možda se ne nadgleda
+ avatar: PNG, GIF ili JPG. Najviše %{size}. Biće smanjeno na %{dimensions}px
+ bot: Daje drugima do znanja da ovaj nalog uglavnom vrši automatizovane radnje i možda se ne nadgleda
context: Jedan ili više konteksta u kojima treba da se primeni filter
- current_password: Unesi lozinku tekućeg naloga iz bezbednosnih razloga
- current_username: Unesi korisničko ime tekućeg naloga za potvrdu
- digest: Poslato posle dužeg perioda neaktivnosti sa pregledom svih bitnih stvari koje ste dobili dok ste bili odsutni
- discoverable: Dozvoli nepoznatim korisnicima da otkriju tvoj nalog putem preporuka, trendova i drugih funkcija
- email: Biće vam poslata e-pošta sa potvrdom
- fields: Možete imati do 4 stavke prikazane kao tabela na vašem nalogu
- header: PNG, GIF ili JPG. Najviše %{size}. Biće smanjena na %{dimensions}px
+ current_password: Iz bezbednosnih razloga molimo Vas unesite lozinku trenutnog naloga
+ current_username: Da biste potvrdili, Molimo Vas unesite korisničko ime trenutno aktivnog naloga
+ digest: Šalje se samo posle dužeg perioda neaktivnosti i samo u slučaju da ste primili jednu ili više ličnih poruka tokom Vašeg odsustva
+ discoverable: Dozvolite nepoznatim korisnicima da otkriju Vaš nalog putem preporuka, trendova i drugih funkcija
+ email: Biće Vam poslat mejl sa potvrdom
+ fields: Možete imati do 4 stavke prikazane kao tabela na svom profilu
+ header: PNG, GIF ili JPG. Najviše %{size}. Biće smanjeno na %{dimensions}px
inbox_url: Kopirajte URL sa naslovne strane releja koji želite koristiti
- irreversible: Filtrirane trube će nestati nepovratno, čak i ako je filter kasnije uklonjen
- locale: Jezik korisničkog interfejsa, e-pošte i mobilnih obaveštenja
- locked: Zahteva da pojedinačno odobrite pratioce
+ irreversible: Filtrirane obajve će nestati nepovratno, čak i ako je filter kasnije uklonjen
+ locale: Jezik korisničkog okruženja, e-pošte i mobilnih obaveštenja
+ locked: Kontrolišite ko može da Vas prati tako što ćete pojedinačno odobravati zahteve za praćenje
password: Koristite najmanje 8 znakova
- phrase: Biće uparena bez obzira na veliko ili malo slovo u tekstu ili upozorenja o sadržaju trube
- scopes: Kojim API-jima će aplikacija dozvoliti pristup. Ako izaberete opseg najvišeg nivoa, ne morate odabrati pojedinačne.
- setting_aggregate_reblogs: Ne pokazuj nova deljenja za trube koje su nedavno podeljene (utiče samo na nedavno primljena deljenja)
- setting_always_send_emails: Obaveštenja e-poštom se po pravilu neće slati kada aktivno koristiš Mastodon
+ phrase: Biće uparena bez obzira na veliko ili malo slovo u tekstu ili upozorenja o sadržaju objave
+ scopes: Kojim API-jima će aplikacija imati pristup. Ako izaberete opseg najvišeg nivoa, ne morate odabrati pojedinačne.
+ setting_aggregate_reblogs: Ne prikazuj nova podržavanja za objave koje su nedavno podržane (utiče samo na nedavno primljena podržavanja)
+ setting_always_send_emails: Obaveštenja e-poštom se po pravilu neće slati kada aktivno koristite Mastodon
setting_default_sensitive: Osetljivi mediji su podrazumevano skriveni i mogu se otkriti klikom
setting_display_media_default: Sakrij medije označene kao osetljive
setting_display_media_hide_all: Uvek sakrij sve medije
setting_display_media_show_all: Uvek prikaži medije označene kao osetljive
- setting_hide_network: Koga pratite i ko vas prati neće biti prikazano na vašem nalogu
- setting_noindex: Utiče na Vaš javni nalog i statusne strane
- setting_show_application: Aplikacija koju koristiš za objavljivanje biće prikazana u detaljnom prikazu tvojih objava
- setting_use_blurhash: Gradijent se zasniva na bojama skrivenih vizuelnih prikaza, ali prikriva sve detalje
- setting_use_pending_items: Sakrij ažuriranja vremenske ose iza klika umesto automatskog pomeranja izvora objava
+ setting_hide_network: Koga pratite i ko Vas prati neće biti prikazano na Vašem profilu
+ setting_noindex: Utiče na Vaš javni profil i stranice sa objavama
+ setting_show_application: Aplikacija koju koristite za objavljivanje će biti prikazana u detaljnom prikazu vaših objava
+ setting_use_blurhash: Gradijenti se formiraju na osnovu bojâ skrivenih slika i zamućuju prikaz, prikrivajući detalje
+ setting_use_pending_items: Sakriva ažuriranja vremenske linije iza klika umesto automatskog ažuriranja i pomeranja vremenske linije
username: Vaš nadimak će biti jedinstven na %{domain}
- whole_word: Kada je ključna reč ili fraza isključivo alfanumerička, biće primenjena samo ako se podudara sa celom reči
+ whole_word: Kada je ključna reč ili fraza isključivo alfanumerička, biće primenjena samo ako se podudara sa celom rečju
domain_allow:
domain: Ovaj domen će moći da preuzima podatke sa ovog servera i dolazni podaci sa njega će se obrađivati i čuvati
email_domain_block:
domain: Ovo može biti ime domena koje se pojavljuje u adresi e-pošte ili MX zapisa koji koristi. Oni će biti provereni prilikom registracije.
with_dns_records: Biće učinjen pokušaj da se razreše DNS zapisi datog domena i rezultati će takođe biti blokirani
featured_tag:
- name: 'Evo nekih od heš oznaka koje ste nedavno koristili:'
+ name: 'Evo nekih od heš oznaka koje ste u prethodnom periodu često koristili:'
filters:
- action: Izaberi koju radnju treba izvršiti kada objava odgovara filteru
+ action: Izaberite koju radnju izvršiti kada objava odgovara filteru
actions:
hide: Potpuno sakrij filtrirani sadržaj, ponašajući se kao da ne postoji
warn: Sakrij filtrirani sadržaj iza upozorenja u kome se navodi naziv filtera
form_admin_settings:
+ activity_api_enabled: Brojevi lokalno postavljenih objava, aktivnih korisnika i novih registracija na nedeljnoj bazi
backups_retention_period: Čuvaj generisane korisničke arhive navedeni broj dana.
bootstrap_timeline_accounts: Ovi nalozi će biti zakačeni na vrh preporuka za praćenje novih korisnika.
- closed_registrations_message: Prikazuje se kada su prijave zatvorene
+ closed_registrations_message: Prikazuje se kada su registracije zatvorene
content_cache_retention_period: Kada se postavi na pozitivnu vrednost, objave sa drugih servera će biti izbrisane nakon navedenog broja dana. Ovo može biti nepovratno.
- custom_css: Možeš da primeniš prilagođene stilove na veb verziji Mastodona.
- mascot: Zamenjuje ilustraciju u naprednom veb interfejsu.
+ custom_css: Možete da primenite prilagođene stilove na veb verziji Mastodona.
+ mascot: Zamenjuje ilustraciju u naprednom veb okruženju.
media_cache_retention_period: Kada se postavi na pozitivnu vrednost, preuzete medijske datoteke će biti izbrisane nakon navedenog broja dana, i ponovo preuzete na zahtev.
+ peers_api_enabled: Lista domena sa kojima se ovaj server susreo u fediverzumu. Ovde nisu sadržani podaci o tome da li se Vaš server federiše sa drugim serverima, već samo da Vaš server zna za njih. Ove informacije koriste servisi koji prikupljaju podatke i vode statistiku o federaciji u širem smislu.
profile_directory: Direktorijum profila navodi sve korisnike koji su se opredelili da budu vidljivi.
- require_invite_text: Kada registracije zahtevaju ručno odobrenje, postavi da unos teksta „Zašto želiš da se pridružiš?“ bude obavezan, a ne opcioni
- site_contact_email: Kako korisnici mogu da te kontaktiraju za pravna pitanja ili pitanja u vezi podrške.
- site_contact_username: Kako korisnici mogu da te kontaktiraju na Mastodonu.
- site_extended_description: Bilo koja dodatna informacija koja može biti korisne posetiocima i tvojim korisnicima. Može se strukturirati pomoću Markdown sintakse.
- site_short_description: Kratak opis pomoću koga se na jedinstven način identifikuje tvoj server. Ko ga održava, kome je namenjen?
- site_terms: Koristi sopstvenu politiku privatnosti ili ostavi prazno da bi se koristila podrazumevana. Može se strukturirati pomoću Markdown sintakse.
- site_title: Način na moji može da se pozove na tvoj server osim naziva njegovog domena.
+ require_invite_text: Kada registracije zahtevaju ručno odobrenje, postavite da odgovor na „Zašto želite da se pridružite?“ bude obavezan, a ne opcionalan
+ site_contact_email: Kako korisnici mogu da kontaktiraju sa Vama za pravna pitanja ili pitanja u vezi podrške.
+ site_contact_username: Kako korisnici mogu da kontaktiraju sa Vama na Mastodonu.
+ site_extended_description: Bilo kakve dodatne informacije koje mogu biti korisne posetiocima i Vašim korisnicima. Mogu se strukturirati pomoću Markdown sintakse.
+ site_short_description: Kratak opis pomoću koga se na jedinstven način identifikuje Vaš server. Ko ga održava, kome je namenjen?
+ site_terms: Koristite sopstvenu politiku privatnosti ili ostavite prazno da bi se koristila podrazumevana. Može se strukturirati pomoću Markdown sintakse.
+ site_title: Način na koji ljudi mogu da referišu na Vaš server osim naziva njegovog domena.
+ status_page_url: URL stranice gde ljudi mogu da vide status servera dok je server oboren
theme: Tema koju vide posetioci koji nisu prijavljeni i novi korisnici.
- thumbnail: Slika koja se približno 2:1 prikazuje pored informacija o tvom serveru.
+ thumbnail: Slika u razmeri od približno 2:1 koja se prikazuje pored informacija o Vašem serveru.
timeline_preview: Posetioci koji nisu prijavljeni će moći da pregledaju najnovije javne objave dostupne na serveru.
trendable_by_default: Preskoči ručni pregled sadržaja koji je u trendu. Pojedinačne stavke se nakon toga i dalje mogu ukloniti iz trendova.
- trends: Trendovi pokazuju koje objave, heš oznake i vesti postaju sve popularniji na tvom serveru.
+ trends: Trendovi pokazuju koje objave, heš oznake i vesti postaju sve popularnije na Vašem serveru.
+ trends_as_landing_page: Prikaži sadržaj u trendu odjavljenim korisnicima i posetiocima umesto opisa ovog servera. Zahteva da trendovi budu omogućeni.
form_challenge:
- current_password: Ulaziš u bezbedno područje
+ current_password: Ulazite u bezbedno područje
imports:
data: CSV fajl izvezen sa druge Mastodont instance
invite_request:
- text: Ovo će nam pomoći da pregledamo tvoju prijavu
+ text: Ovo će nam pomoći da pregledamo Vašu prijavu
ip_block:
- comment: Opciono. Zapamti zašto si dodao ovo pravilo.
+ comment: Opciono. Zapamtite zašto ste dodali ovo pravilo.
expires_in: IP adrese su ograničeni resurs, ponekad se dele i često menjaju korisnika. Zbog toga se IP blokovi na neograničeno vreme ne preporučuju.
- ip: Unesi IPv4 ili IPv6 adresu. Možeš blokirati čitave opsege koristeći CIDR sintaksu. Vodi računa da sebe ne zaključaš!
+ ip: Unesite IPv4 ili IPv6 adresu. Možete blokirati čitave opsege koristeći CIDR sintaksu. Vodite računa da se ne zaključate!
severities:
no_access: Blokiraj pristup svim resursima
- sign_up_block: Nove prijave neće biti moguće
- sign_up_requires_approval: Nove prijave će zahtevati tvoje odobrenje
- severity: Izaberi šta će se desiti sa zahtevima sa ove IP adrese
+ sign_up_block: Nove registracije neće biti moguće
+ sign_up_requires_approval: Nove registracije će zahtevati Vaše odobrenje
+ severity: Izaberite šta će se desiti sa zahtevima sa ove IP adrese
rule:
- text: Opiši pravilo ili zahtev za korisnike na ovom serveru. Potrudi se da opis bude kratak i jednostavan
+ text: Opišite pravilo ili uslov za korisnike na ovom serveru. Potrudite se da opis bude kratak i jednostavan
sessions:
otp: 'Unesite dvofaktorski kod sa Vašeg telefona ili koristite jedan od kodova za oporavak:'
- webauthn: Ako je to USB ključ, obavezno ga ubaci i, ako je potrebno, pritisni ga.
+ webauthn: Ako je u pitanju USB ključ, obavezno ga ubacite i, ako je potrebno, pritisnite ga.
tag:
- name: Mogu se samo promeniti mala slova u velika, na primer, da bi bilo čitljivije
+ name: Mogu se samo promeniti mala slova u velika ili obrnuto, na primer, da bi bilo čitljivije
user:
- chosen_languages: Kada označite, trube u izabranim jezicima će se prikazati na javnoj vremenskoj liniji
+ chosen_languages: Kada je označeno, objave u izabranim jezicima će biti prikazane na javnoj vremenskoj liniji
role: Uloga kontroliše koje dozvole korisnik ima
user_role:
- color: Boja koja će se koristiti za ulogu u celom korisničkom interfejsu, kao RGB, u heksadecimalnom formatu
+ color: Boja koja će se koristiti za ulogu u celom korisničkom okruženju, kao RGB u heksadecimalnom formatu
highlighted: Ovo čini ulogu javno vidljivom
name: Javni naziv uloge, ako je uloga podešena da se prikazuje kao značka
permissions_as_keys: Korisnici sa ovom ulogom će imati pristup...
@@ -185,24 +191,24 @@ sr-Latn:
otp_attempt: Dvofaktorski kod
password: Lozinka
phrase: Ključna reč ili fraza
- setting_advanced_layout: Omogući napredni veb interfejs
+ setting_advanced_layout: Omogući napredno veb okruženje
setting_aggregate_reblogs: Grupiši deljenja u vremenskim linijama
setting_always_send_emails: Uvek šalji obaveštenja e-poštom
- setting_auto_play_gif: Automatski puštaj animirane GIF-ove
+ setting_auto_play_gif: Automatski reprodukuj animirane GIF-ove
setting_boost_modal: Prikaži dijalog za potvrdu pre davanja podrške
setting_crop_images: Izreži slike u neproširenim objavama na 16x9
setting_default_language: Jezik objavljivanja
setting_default_privacy: Privatnost objava
setting_default_sensitive: Uvek označi multimediju kao osetljivu
- setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja tuta
+ setting_delete_modal: Prikaži dijalog za potvrdu pre brisanja objave
setting_disable_swiping: Onemogući pokrete prevlačenja
setting_display_media: Prikaz medija
setting_display_media_default: Podrazumevano
setting_display_media_hide_all: Sakrij sve
setting_display_media_show_all: Prikaži sve
- setting_expand_spoilers: Uvek prošiti trube koje su označene upozorenjem sadržaja
+ setting_expand_spoilers: Uvek proširi objave koje su označene upozorenjem sadržaja
setting_hide_network: Sakrij svoju mrežu
- setting_noindex: Odjavi se od indeksiranja search engine-a
+ setting_noindex: Onemogući indeksiranje pretraživača
setting_reduce_motion: Smanji pokrete u animacijama
setting_show_application: Otkrij aplikaciju koja se koristi za slanje postova
setting_system_font_ui: Koristi sistemski font
@@ -227,6 +233,7 @@ sr-Latn:
hide: Sakrij u potpunosti
warn: Sakrij uz upozorenje
form_admin_settings:
+ activity_api_enabled: Objavi prikupljenu statistiku o korisničkoj aktivnosti u API
backups_retention_period: Period čuvanja korisničke arhive
bootstrap_timeline_accounts: Uvek preporuči ove naloge novim korisnicima
closed_registrations_message: Prilagođena poruka kada prijave nisu moguće
@@ -234,6 +241,7 @@ sr-Latn:
custom_css: Prilagođeni CSS
mascot: Prilagođena maskota (nasleđe)
media_cache_retention_period: Period čuvanja keša medija
+ peers_api_enabled: Objavite listu otkrivenih servera u API
profile_directory: Omogući direktorijum profila
registrations_mode: Ko može da se prijavi
require_invite_text: Zatraži razlog za pristupanje
@@ -245,11 +253,13 @@ sr-Latn:
site_short_description: Opis servera
site_terms: Politika privatnosti
site_title: Ime servera
+ status_page_url: URL statusne stranice
theme: Podrazumevana tema
thumbnail: Sličica servera
timeline_preview: Dozvoli neautorizovan pristup javnim vremenskim osama
trendable_by_default: Dozvoli trendove bez prethodnog pregleda
trends: Omogući trendove
+ trends_as_landing_page: Koristite trendove kao stranicu dočeka
interactions:
must_be_follower: Blokiraj obaveštenja od korisnika koji me ne prate
must_be_following: Blokiraj obaveštenja od ljudi koje ne pratim
@@ -260,7 +270,7 @@ sr-Latn:
text: Zašto želiš da se pridružiš?
ip_block:
comment: Komentar
- ip: Avatar
+ ip: IP
severities:
no_access: Blokiraj pristup
sign_up_block: Blokiraj prijave
diff --git a/config/locales/simple_form.sr.yml b/config/locales/simple_form.sr.yml
index cb11250ad1..8ee5863770 100644
--- a/config/locales/simple_form.sr.yml
+++ b/config/locales/simple_form.sr.yml
@@ -3,117 +3,123 @@ sr:
simple_form:
hints:
account_alias:
- acct: Наведи корисничко_име@домен налога са којег желиш да пређеш
+ acct: Наведите корисничко_име@домен налога са којег желите да се преселите
account_migration:
- acct: Наведи корисничко_име@домен налога на који желиш да пређеш
+ acct: Наведите корисничко_име@домен налога на који желите да се преселите
account_warning_preset:
text: Можете користити синтаксу објава, као што су URL адресе, хеш ознаке и помињања
title: Опционо. Није видљиво примаоцу
admin_account_action:
- include_statuses: Корисник ће видети које су објаве проузроковале модерирање или упозорење
- send_email_notification: Корисник ће добити објашњење тога шта му се десило са налога
+ include_statuses: Корисник ће видети које су објаве проузроковале модерацијску радњу или упозорење
+ send_email_notification: Корисник ће добити објашњење тога шта му се десило са налогом
text_html: Опционално. Можете користити синтаксу објава. Можете додати унапред одређене поставке упозорења за уштеду времена
type_html: Изаберите шта да радите са %{acct}
types:
- disable: Спречи корисника да користи свој налог, али немој брисати или сакривати његов садржај.
- none: Користи ово да пошаљеш упозорење кориснику, без покретања било које друге акције.
+ disable: Спречава корисника да користи свој налог, али не брише нити сакрива његове садржаје.
+ none: Користите ово да пошаљете упозорење кориснику без покретања било које друге радње.
sensitive: Учини да сви медијски прилози овог корисника присилно буду означени као осетљиви.
+ silence: Спречава корисника да прави јавне објаве, сакрива његове објаве и обавештења од људи који га не прате. Затвара све пријаве поднете против овог налога.
+ suspend: Спречава сву интеракцију од овог налога и ка овом налогу и брише његов садржај. Опозиво у року од 30 дана. Затвара све пријаве поднете против овог налога.
warning_preset_id: Опционално. Можете и даље додати прилагођени текст на крај пресета
announcement:
- all_day: Биће приказани само датуми временског опсега који су означени
+ all_day: Када је ова опција означена, само датуми из временског опсега ће бити приказани
ends_at: Опционо. Објава ће бити аутоматски опозвана у овом тренутку
- scheduled_at: Остави празно да би најава била одмах објављена
+ scheduled_at: Оставите празно да бисте одмах објавили обавештење
starts_at: Опционо. У случају да је најава везана за одређени временски распон
- text: Можеш користити пост синтаксу. Води рачуна о простору који ће објава заузимати на екрану корисника
+ text: Можете користити синтаксу објава. Молимо Вас водите рачуна о простору који ће објава заузимати на екрану корисника
appeal:
- text: На брисање се можеш жалити само једном
+ text: Можете поднети само једну жалбу на уписан преступ
defaults:
autofollow: Особе које се пријаве кроз позивнице ће вас аутоматски запратити
avatar: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
- bot: Овај налог углавном врши аутоматизоване радње и можда се не надгледа
+ bot: Даје другима до знања да овај налог углавном врши аутоматизоване радње и можда се не надгледа
context: Један или више контекста у којима треба да се примени филтер
- current_password: Унеси лозинку текућег налога из безбедносних разлога
- current_username: Унеси корисничко име текућег налога за потврду
- digest: Послато после дужег периода неактивности са прегледом свих битних ствари које сте добили док сте били одсутни
- discoverable: Дозволи непознатим корисницима да открију твој налог путем препорука, трендова и других функција
- email: Биће вам послата е-пошта са потврдом
- fields: Можете имати до 4 ставке приказане као табела на вашем налогу
+ current_password: Из безбедносних разлога молимо Вас унесите лозинку тренутног налога
+ current_username: Да бисте потврдили, Молимо Вас унесите корисничко име тренутно активног налога
+ digest: Шаље се само после дужег периода неактивности и само у случају да сте примили једну или више личних порука током Вашег одсуства
+ discoverable: Дозволите непознатим корисницима да открију Ваш налог путем препорука, трендова и других функција
+ email: Биће Вам послат мејл са потврдом
+ fields: Можете имати до 4 ставке приказане као табела на свом профилу
header: PNG, GIF или JPG. Највише %{size}. Биће смањено на %{dimensions}px
inbox_url: Копирајте URL са насловне стране релеја који желите користити
irreversible: Филтриранe обајве ће нестати неповратно, чак и ако је филтер касније уклоњен
locale: Језик корисничког окружења, е-поште и мобилних обавештења
- locked: Захтева да појединачно одобрите пратиоце
+ locked: Контролишите ко може да Вас прати тако што ћете појединачно одобравати захтеве за праћење
password: Користите најмање 8 знакова
phrase: Биће упарена без обзира на велико или мало слово у тексту или упозорења о садржају објаве
- scopes: Којим API-јима ће апликација дозволити приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
+ scopes: Којим API-јима ће апликација имати приступ. Ако изаберете опсег највишег нивоа, не морате одабрати појединачне.
setting_aggregate_reblogs: Не приказуј нова подржавања за објаве које су недавно подржане (утиче само на недавно примљена подржавања)
- setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користиш Мастодон
+ setting_always_send_emails: Обавештења е-поштом се по правилу неће слати када активно користите Мастодон
setting_default_sensitive: Осетљиви медији су подразумевано скривени и могу се открити кликом
setting_display_media_default: Сакриј медије означене као осетљиве
setting_display_media_hide_all: Увек сакриј све медије
setting_display_media_show_all: Увек прикажи медије означене као осетљиве
- setting_hide_network: Кога пратите и ко вас прати неће бити приказано на вашем налогу
- setting_noindex: Утиче на Ваш јавни налог и статусне стране
+ setting_hide_network: Кога пратите и ко Вас прати неће бити приказано на Вашем профилу
+ setting_noindex: Утиче на Ваш јавни профил и странице са објавама
setting_show_application: Апликација коју користите за објављивање ће бити приказана у детаљном приказу ваших објава
- setting_use_blurhash: Градијент се заснива на бојама скривених визуелних приказа, али прикрива све детаље
- setting_use_pending_items: Сакриј ажурирања временске осе иза клика уместо аутоматског померања извора објава
+ setting_use_blurhash: Градијенти се формирају на основу бојâ скривених слика и замућују приказ, прикривајући детаље
+ setting_use_pending_items: Сакрива ажурирања временске линије иза клика уместо аутоматског ажурирања и померања временске линије
username: Ваш надимак ће бити јединствен на %{domain}
- whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речи
+ whole_word: Када је кључна реч или фраза искључиво алфанумеричка, биће примењена само ако се подудара са целом речjу
domain_allow:
domain: Овај домен ће моћи да преузима податке са овог сервера и долазни подаци са њега ће се обрађивати и чувати
email_domain_block:
domain: Ово може бити име домена које се појављује у адреси е-поште или MX записа који користи. Они ће бити проверени приликом регистрације.
with_dns_records: Биће учињен покушај да се разреше DNS записи датог домена и резултати ће такође бити блокирани
featured_tag:
- name: 'Ево неких од хеш ознака које сте недавно користили:'
+ name: 'Ево неких од хеш ознака које сте у претходном периоду често користили:'
filters:
- action: Изабери коју радњу треба извршити када објава одговара филтеру
+ action: Изаберите коју радњу извршити када објава одговара филтеру
actions:
hide: Потпуно сакриј филтрирани садржај, понашајући се као да не постоји
warn: Сакриј филтрирани садржај иза упозорења у коме се наводи назив филтера
form_admin_settings:
+ activity_api_enabled: Бројеви локално постављених објава, активних корисника и нових регистрација на недељној бази
backups_retention_period: Чувај генерисане корисничке архиве наведени број дана.
bootstrap_timeline_accounts: Ови налози ће бити закачени на врх препорука за праћење нових корисника.
- closed_registrations_message: Приказује се када су пријаве затворене
+ closed_registrations_message: Приказује се када су регистрације затворене
content_cache_retention_period: Када се постави на позитивну вредност, објаве са других сервера ће бити избрисане након наведеног броја дана. Ово може бити неповратно.
- custom_css: Можеш да примениш прилагођене стилове на веб верзији Мастодона.
+ custom_css: Можете да примените прилагођене стилове на веб верзији Мастодона.
mascot: Замењује илустрацију у напредном веб окружењу.
media_cache_retention_period: Када се постави на позитивну вредност, преузете медијске датотеке ће бити избрисане након наведеног броја дана, и поново преузете на захтев.
+ peers_api_enabled: Листа домена са којима се овај сервер сусрео у федиверзуму. Овде нису садржани подаци о томе да ли се Ваш сервер федерише са другим серверима, већ само да Ваш сервер зна за њих. Ове информације користе сервиси који прикупљају податке и воде статистику о федерацији у ширем смислу.
profile_directory: Директоријум профила наводи све кориснике који су се определили да буду видљиви.
- require_invite_text: Када регистрације захтевају ручно одобрење, постави да унос текста „Зашто желиш да се придружиш?“ буде обавезан, а не опциони
- site_contact_email: Како корисници могу да те контактирају за правна питања или питања у вези подршке.
- site_contact_username: Како корисници могу да те контактирају на Мастодону.
- site_extended_description: Било која додатна информација која може бити корисне посетиоцима и твојим корисницима. Може се структурирати помоћу Markdown синтаксе.
- site_short_description: Кратак опис помоћу кога се на јединствен начин идентификује твој сервер. Ко га одржава, коме је намењен?
- site_terms: Користи сопствену политику приватности или остави празно да би се користила подразумевана. Може се структурирати помоћу Markdown синтаксе.
- site_title: Начин на моји може да се позове на твој сервер осим назива његовог домена.
+ require_invite_text: Када регистрације захтевају ручно одобрење, поставите да одговор на „Зашто желите да се придружите?“ буде обавезан, а не опционалан
+ site_contact_email: Како корисници могу да контактирају са Вама за правна питања или питања у вези подршке.
+ site_contact_username: Како корисници могу да контактирају са Вама на Мастодону.
+ site_extended_description: Било какве додатне информације које могу бити корисне посетиоцима и Вашим корисницима. Могу се структурирати помоћу Markdown синтаксе.
+ site_short_description: Кратак опис помоћу кога се на јединствен начин идентификује Ваш сервер. Ко га одржава, коме је намењен?
+ site_terms: Користите сопствену политику приватности или оставите празно да би се користила подразумевана. Може се структурирати помоћу Markdown синтаксе.
+ site_title: Начин на који људи могу да реферишу на Ваш сервер осим назива његовог домена.
+ status_page_url: URL странице где људи могу да виде статус сервера док је сервер оборен
theme: Тема коју виде посетиоци који нису пријављени и нови корисници.
- thumbnail: Слика која се приближно 2:1 приказује поред информација о твом серверу.
+ thumbnail: Слика у размери од приближно 2:1 која се приказује поред информација о Вашем серверу.
timeline_preview: Посетиоци који нису пријављени ће моћи да прегледају најновије јавне објаве доступне на серверу.
trendable_by_default: Прескочи ручни преглед садржаја који је у тренду. Појединачне ставке се након тога и даље могу уклонити из трендова.
- trends: Трендови показују које објаве, хеш ознаке и вести постају све популарнији на твом серверу.
+ trends: Трендови показују које објаве, хеш ознаке и вести постају све популарније на Вашем серверу.
+ trends_as_landing_page: Прикажи садржај у тренду одјављеним корисницима и посетиоцима уместо описа овог сервера. Захтева да трендови буду омогућени.
form_challenge:
- current_password: Улазиш у безбедно подручје
+ current_password: Улазите у безбедно подручје
imports:
data: CSV фајл извезен са друге Мастодонт инстанце
invite_request:
- text: Ово ће нам помоћи да прегледамо твоју пријаву
+ text: Ово ће нам помоћи да прегледамо Вашу пријаву
ip_block:
- comment: Опционо. Запамти зашто си додао ово правило.
+ comment: Опционо. Запамтите зашто сте додали ово правило.
expires_in: IP адресе су ограничени ресурс, понекад се деле и често мењају корисника. Због тога се IP блокови на неограничено време не препоручују.
- ip: Унеси IPv4 или IPv6 адресу. Можеш блокирати читаве опсеге користећи CIDR синтаксу. Води рачуна да себе не закључаш!
+ ip: Унесите IPv4 или IPv6 адресу. Можете блокирати читаве опсеге користећи CIDR синтаксу. Водите рачуна да се не закључате!
severities:
no_access: Блокирај приступ свим ресурсима
- sign_up_block: Нове пријаве неће бити могуће
- sign_up_requires_approval: Нове пријаве ће захтевати твоје одобрење
- severity: Изабери шта ће се десити са захтевима са ове IP адресе
+ sign_up_block: Нове регистрације неће бити могуће
+ sign_up_requires_approval: Нове регистрације ће захтевати Ваше одобрење
+ severity: Изаберите шта ће се десити са захтевима са ове IP адресе
rule:
- text: Опиши правило или захтев за кориснике на овом серверу. Потруди се да опис буде кратак и једноставан
+ text: Опишите правило или услов за кориснике на овом серверу. Потрудите се да опис буде кратак и једноставан
sessions:
otp: 'Унесите двофакторски код са Вашег телефона или користите један од кодова за опоравак:'
- webauthn: Ако је то USB кључ, обавезно га убаци и, ако је потребно, притисни га.
+ webauthn: Ако је у питању USB кључ, обавезно га убаците и, ако је потребно, притисните га.
tag:
- name: Могу се само променити мала слова у велика, на пример, да би било читљивије
+ name: Могу се само променити мала слова у велика или обрнуто, на пример, да би било читљивије
user:
chosen_languages: Када је означено, објаве у изабраним језицима ће бити приказане на јавној временској линији
role: Улога контролише које дозволе корисник има
@@ -227,6 +233,7 @@ sr:
hide: Сакриј у потпуности
warn: Сакриј уз упозорење
form_admin_settings:
+ activity_api_enabled: Објави прикупљену статистику о корисничкој активности у API
backups_retention_period: Период чувања корисничке архиве
bootstrap_timeline_accounts: Увек препоручи ове налоге новим корисницима
closed_registrations_message: Прилагођена порука када пријаве нису могуће
@@ -234,6 +241,7 @@ sr:
custom_css: Прилагођени CSS
mascot: Прилагођена маскота (наслеђе)
media_cache_retention_period: Период чувања кеша медија
+ peers_api_enabled: Објавите листу откривених сервера у API
profile_directory: Омогући директоријум профила
registrations_mode: Ко може да се пријави
require_invite_text: Затражи разлог за приступање
@@ -245,11 +253,13 @@ sr:
site_short_description: Опис сервера
site_terms: Политика приватности
site_title: Име сервера
+ status_page_url: URL статусне странице
theme: Подразумевана тема
thumbnail: Сличица сервера
timeline_preview: Дозволи неауторизован приступ јавним временским осама
trendable_by_default: Дозволи трендове без претходног прегледа
trends: Омогући трендове
+ trends_as_landing_page: Користите трендове као страницу дочека
interactions:
must_be_follower: Блокирај обавештења од корисника који ме не прате
must_be_following: Блокирај обавештења од људи које не пратим
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index ed111ecc90..1e99fefa35 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -174,7 +174,7 @@ th:
context: บริบทตัวกรอง
current_password: รหัสผ่านปัจจุบัน
data: ข้อมูล
- discoverable: แนะนำบัญชีให้ผู้อื่น
+ discoverable: เสนอแนะบัญชีให้ผู้อื่น
display_name: ชื่อที่แสดง
email: ที่อยู่อีเมล
expires_in: หมดอายุหลังจาก
diff --git a/config/locales/simple_form.tt.yml b/config/locales/simple_form.tt.yml
index d4e44c0db2..db2bd025c2 100644
--- a/config/locales/simple_form.tt.yml
+++ b/config/locales/simple_form.tt.yml
@@ -5,7 +5,7 @@ tt:
account_warning_preset:
title: Исем
admin_account_action:
- type: Ğämäl
+ type: Гамәл
types:
sensitive: Sizmäle
suspend: Искә алмау
@@ -14,7 +14,7 @@ tt:
data: Мәгълүмат
email: Почта адресы
header: Башлам
- password: Парол
+ password: Серсүз
setting_display_media_default: Töpcay
username: Кулланучы исеме
featured_tag:
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 8a2bcc0a1f..1976df4d91 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -33,7 +33,7 @@ zh-TW:
autofollow: 通過邀請網址註冊的使用者將自動跟隨您
avatar: 支援 PNG、GIF 或 JPG 圖片格式,檔案最大為 %{size},會等比例縮減至 %{dimensions} 像素
bot: 此帳號主要執行自動化操作且可能未受人為監控
- context: 應該套用過濾器的一項或多項內容
+ context: 此過濾器應套用於以下一項或多項情境
current_password: 因安全因素,請輸入目前帳號的密碼
current_username: 請輸入目前帳號的使用者名稱以確認
digest: 僅在您長時間未登入且在未登入期間收到私訊時傳送
@@ -53,7 +53,7 @@ zh-TW:
setting_default_sensitive: 敏感內容媒體預設隱藏,且按一下即可重新顯示
setting_display_media_default: 隱藏標為敏感內容的媒體
setting_display_media_hide_all: 總是隱藏所有媒體
- setting_display_media_show_all: 總是顯示標為敏感的媒體
+ setting_display_media_show_all: 總是顯示標為敏感內容的媒體
setting_hide_network: 您跟隨的人與跟隨您的人將不會在您的個人檔案頁面上顯示
setting_noindex: 會影響您的公開個人檔案與嘟文頁面
setting_show_application: 您用來發嘟文的應用程式將會在您嘟文的詳細檢視顯示
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index f1b021127b..53ef48fe59 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -229,6 +229,7 @@ sk:
destroy_domain_block_html: "%{name} odblokoval/i doménu %{target}"
destroy_ip_block_html: "%{name} vymazal/a pravidlo pre IP %{target}"
destroy_status_html: "%{name} zmazal/a príspevok od %{target}"
+ memorialize_account_html: "%{name} zmenil/a účet %{target} na pamätnú stránku"
reject_appeal_html: "%{name} zamietol/la námietku moderovacieho rozhodnutia od %{target}"
deleted_account: zmazaný účet
empty: Žiadne záznamy nenájdené.
@@ -1012,6 +1013,7 @@ sk:
otter: Prehliadač Otter
qq: QQ Prehliadač
safari: Apple Safari
+ unknown_browser: Neznámy prehliadač
weibo: Sina/Tencent Weibo
current_session: Aktuálna sezóna
description: "%{browser} na %{platform}"
@@ -1021,7 +1023,7 @@ sk:
ios: Apple iOS
linux: GNU/Linux
mac: MacOSX
- other: neznáma platforma
+ unknown_platform: Neznáma platforma
windows: Microsoft Windows
revoke: Zamietni
revoke_success: Sezóna úspešne zamietnutá
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 303f9ea559..eb3085cd6f 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1457,6 +1457,7 @@ sl:
confirm_remove_selected_followers: Ali ste prepričani, da želite odstraniti izbrane sledilce?
confirm_remove_selected_follows: Ali ste prepričani, da želite odstraniti izbrana sledenja?
dormant: Skrit
+ follow_failure: Nekaterim od izbranih računov ni bilo mogoče slediti.
follow_selected_followers: Sledi izbranim sledilcem
followers: Sledilci
following: Sledi
@@ -1496,6 +1497,7 @@ sl:
electron: Electron
firefox: Firefox
generic: Neznan brskalnik
+ huawei_browser: Brskalnik Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Brskalnik Nokia S40 Ovi
@@ -1505,6 +1507,7 @@ sl:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Neznan brskalnik
weibo: Weibo
current_session: Trenutna seja
description: "%{browser} na %{platform}"
@@ -1517,9 +1520,10 @@ sl:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: neznana platforma
+ unknown_platform: Neznana platforma
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index ea94dfb6a3..38afb2996c 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1399,6 +1399,7 @@ sq:
confirm_remove_selected_followers: Jeni i sigurt se doni të hiqen ndjekësit e përzgjedhur?
confirm_remove_selected_follows: Jeni i sigurt se doni të hiqen ndjekjet e përzgjedhura?
dormant: Në gjumë
+ follow_failure: S’u ndoqën dot disa nga llogaritë e përzgjedhura.
follow_selected_followers: Ndiq ndjekësit e përzgjedhur
followers: Ndjekës
following: Ndjek
@@ -1438,6 +1439,7 @@ sq:
electron: Electron
firefox: Firefox
generic: Shfletues i panjohur
+ huawei_browser: Shfletues Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Shfletues Nokia S40 Ovi
@@ -1447,6 +1449,7 @@ sq:
qq: QQ Browser
safari: Safari
uc_browser: Shfletues UC
+ unknown_browser: Shfletues i Panjohur
weibo: Weibo
current_session: Sesioni i tanishëm
description: "%{browser} në %{platform}"
@@ -1459,9 +1462,10 @@ sq:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: platformë e panjohur
+ unknown_platform: Platformë e Panjohur
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index fdb5d21859..b6e17677d3 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -1,236 +1,1263 @@
---
sr-Latn:
about:
- about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta.
+ about_mastodon_html: 'Društvena mreža budućnosti: bez reklama, bez korporativnog praćenja, etički dizajn, i decentralizacija! Posedujte svoje podatke sa Mastodonom!'
contact_missing: Nije postavljeno
- hosted_on: Mastodont hostovan na %{domain}
+ contact_unavailable: Nije dostupno
+ hosted_on: Mastodon hostovan na %{domain}
+ title: O instanci
accounts:
- nothing_here: Ovde nema ništa!
+ follow: Zaprati
+ followers:
+ few: Pratioca
+ one: Pratilac
+ other: Pratilaca
+ following: Pratim
+ instance_actor_flash: Ovaj nalog je virtuelni akter koji ne predstavlja nijednog korisnika lično, već sâm server. Koristi se u svrhu federacije i ne treba ga suspendovati.
+ last_active: najskorija aktivnost
+ link_verified_on: Vlasništvo nad ovom vezom je provereno %{date}
+ nothing_here: Ovde nema ničega!
+ pin_errors:
+ following: Morate pratiti osobu koju želite da preporučite
+ posts:
+ few: Objave
+ one: Objava
+ other: Objava
+ posts_tab_heading: Objave
admin:
+ account_actions:
+ action: Izvršite radnju
+ title: Izvršite moderatorske radnje na %{acct}
account_moderation_notes:
- create: Napravi
+ create: Ostavite belešku
created_msg: Moderatorska beleška uspešno napravljena!
destroyed_msg: Moderatorska beleška uspešno obrisana!
accounts:
+ add_email_domain_block: Blokiraj domen e-pošte
+ approve: Odobri
+ approved_msg: Zahtev za registraciju korisnika %{username} je uspešno odobren
are_you_sure: Da li ste sigurni?
+ avatar: Avatar
by_domain: Domen
+ change_email:
+ changed_msg: E-pošta naloga uspešno promenjena!
+ current_email: Trenutna adresa e-pošte
+ label: Promenite adresu e-pošte
+ new_email: Nova adresa e-pošte
+ submit: Promenite adresu e-pošte
+ title: Promenite adresu e-pošte za %{username}
+ change_role:
+ changed_msg: Uloga uspešno promenjena!
+ label: Promeni ulogu
+ no_role: Nema ulogu
+ title: Promeni ulogu za %{username}
confirm: Potvrdi
confirmed: Potvrđeno
- confirming: Potvrđujući
+ confirming: Potvrđivanje
+ custom: Proizvoljno
+ delete: Obriši podatke
+ deleted: Izbrisano
demote: Ražaluj
- disable: Isključi
+ destroyed_msg: Podaci korisnika %{username} su nepovratno stavljeni u red za brisanje
+ disable: Zamrzni
+ disable_sign_in_token_auth: Onemogući imejl autentifikaciju
disable_two_factor_authentication: Isključi 2FA
- disabled: Isključena
- display_name: Prikazano ime
+ disabled: Zamrznut
+ display_name: Ime za prikaz
domain: Domen
edit: Izmeni
email: E-pošta
email_status: Status e-pošte
- enable: Uključi
- enabled: Uključeno
+ enable: Omogući
+ enable_sign_in_token_auth: Omogući imejl autentifikaciju
+ enabled: Omogućen
+ enabled_msg: Uspešno odleđen nalog korisnika %{username}
followers: Pratioci
follows: Praćeni
+ header: Zaglavlje
inbox_url: Adresa sandučeta
+ invite_request_text: Razlozi za pridruživanje
+ invited_by: Pozvan od strane
+ ip: IP
+ joined: Pridružio/-la se
location:
all: Sve
- local: Lokalne
- remote: Udaljene
+ local: Lokalni
+ remote: Udaljeni
title: Lokacija
login_status: Status prijave
media_attachments: Multimedijalni prilozi
memorialize: Prebaci u in memoriam
+ memorialized: Podignut spomenik
+ memorialized_msg: "%{username} je uspešno pretvoren u memorijalni nalog"
moderation:
+ active: Aktivan
all: Svi
+ disabled: Isključen
+ pending: Na čekanju
+ silenced: Ograničeno
suspended: Suspendovani
title: Moderacija
moderation_notes: Moderatorske beleške
most_recent_activity: Najskorija aktivnost
most_recent_ip: Najskorija IP adresa
+ no_account_selected: Nijedan nalog nije promenjen jer nijedan nije izabran
+ no_limits_imposed: Nema ograničenja
+ no_role_assigned: Nijedna uloga nije dodeljena
not_subscribed: Nije pretplaćen
- perform_full_suspension: Izvrši kompletno isključenje
+ pending: Čeka na pregled
+ perform_full_suspension: Suspenduj
+ previous_strikes: Prethodni prekršaji
+ previous_strikes_description_html:
+ few: Ovaj nalog ima %{count} prekršaja.
+ one: Ovaj nalog ima jedan prekršaj.
+ other: Ovaj nalog ima %{count} prekršaja.
promote: Unapredi
protocol: Protokol
public: Javno
- redownload: Osveži avatar
- remote_suspension_reversible_hint_html: Налог је суспендован на њиховом серверу, а подаци ће бити у потпуности уклоњени %{date}. До тада, удаљени сервер може вратити овај налог без икаквих негативних ефеката. Ако желите одмах да уклоните све податке налога, то можете учинити у наставку.
+ push_subscription_expires: PuSH pretplata ističe
+ redownload: Osveži profil
+ redownloaded_msg: Uspešno osvežen profil korisnika %{username} iz izvora
+ reject: Odbij
+ rejected_msg: Zahtev za registraciju korisnika %{username} je uspešno odbijen
+ remote_suspension_irreversible: Podaci ovog naloga su nepovratno izbrisani.
+ remote_suspension_reversible_hint_html: Nalog je suspendovan sa svog servera i njegovi podaci će biti izbrisani datuma %{date}. Do tada, udaljeni server može da vrati ovaj nalog bez ikakvih promena. Ukoliko želite da odmah obrišete sve podatke naloga, možete to učiniti ispod.
+ remove_avatar: Ukloni avatar
+ remove_header: Odstrani zaglavlje
+ removed_avatar_msg: Slika avatara korisnika %{username} je uspešno uklonjena
+ removed_header_msg: Uspešno obrisana slika zaglavlja korisnika %{username}
resend_confirmation:
already_confirmed: Ovaj korisnik je već potvrđen
- send: Ponovo pošaljite e-poruku za potvrdu
- success: E-mail potvrde je uspešno poslat!
+ send: Ponovo pošalji imejl potvrdu
+ success: Imejl za potvrdu je uspešno poslat!
reset: Resetuj
reset_password: Resetuj lozinku
resubscribe: Ponovo se pretplati
+ role: Uloga
search: Pretraga
+ search_same_email_domain: Ostali korisnici sa istim domenom e-pošte
+ search_same_ip: Ostali korisnici sa istom IP adresom
+ security: Bezbednost
+ security_measures:
+ only_password: Samo lozinka
+ password_and_2fa: Lozinka i dvofaktorska autentifikacija
+ sensitive: Označi kao osetljiv
+ sensitized: Označeno kao osetljivo
shared_inbox_url: Adresa deljenog sandučeta
show:
- created_reports: Prijave koje je napravio ovaj nalog
- targeted_reports: Prijave napravljene o ovom nalogu
+ created_reports: Podnete prijave
+ targeted_reports: Prijave od strane drugih
silence: Ućutkaj
- statuses: Statusi
+ silenced: Ućutkan
+ statuses: Objave
+ strikes: Prethodni prestupi
subscribe: Pretplati se
+ suspend: Suspenduj
+ suspended: Suspendovani
+ suspension_irreversible: Podaci ovog naloga su nepovratno izbrisani. Možete odsuspendovati ovaj nalog čime će on postati upotrebljiv, ali se podaci prethodno sadržani na nalogu neće vratiti.
+ suspension_reversible_hint_html: Nalog je suspendovan i njegovi podaci će biti izbrisani datuma %{date}. Do tada, ovaj nalog može biti vraćen bez ikakvih promena. Ukoliko želite da odmah obrišete sve podatke naloga, možete to učiniti ispod.
title: Nalozi
+ unblock_email: Odblokiraj adresu e-pošte
+ unblocked_email_msg: Uspešno odblokirana imejl adresa korisnika %{username}
+ unconfirmed_email: Nepotvrđena adresa e-pošte
+ undo_sensitized: Ukloni oznaku „osetljiv”
undo_silenced: Ukini ćutanje
undo_suspension: Ukini suspenziju
+ unsilenced_msg: Uspešno poništeno ograničenje naloga %{username}
unsubscribe: Ukini pretplatu
+ unsuspended_msg: Uspešno poništena suspenzija naloga %{username}
username: Korisničko ime
+ view_domain: Pročitaj opis domena
+ warn: Upozori
web: Veb
+ whitelisted: Dozvoljena federacija
action_logs:
+ action_types:
+ approve_appeal: Uvaži žalbu
+ approve_user: Odobri korisnika
+ assigned_to_self_report: Dodeli prijavu
+ change_email_user: Promeni e-adresu korisnika
+ change_role_user: Promeni ulogu korisnika
+ confirm_user: Potvrdi korisnika
+ create_account_warning: Kreiraj upozorenje
+ create_announcement: Kreiraj najavu
+ create_canonical_email_block: Kreiraj blok e-pošte
+ create_custom_emoji: Napravi prilagođeni emodži
+ create_domain_allow: Dodaj dozvoljeni domen
+ create_domain_block: Dodaj blokirani domen
+ create_email_domain_block: Blokiraj imejl domen
+ create_ip_block: Napravi IP uslov
+ create_unavailable_domain: Dodaj domen kao nedostupan
+ create_user_role: Kreiraj ulogu
+ demote_user: Smanji ovlašćenja korisnika
+ destroy_announcement: Izbriši najavu
+ destroy_canonical_email_block: Izbriši blok e-pošte
+ destroy_custom_emoji: Obriši prilagođeni emodži
+ destroy_domain_allow: Obriši dozvoljeni domen
+ destroy_domain_block: Obriši blokirani domen
+ destroy_email_domain_block: Izbriši blok e-pošte
+ destroy_instance: Očisti domen
+ destroy_ip_block: Obriši IP uslov
+ destroy_status: Izbriši post
+ destroy_unavailable_domain: Obriši nedostupan domen
+ destroy_user_role: Uništi poziciju
+ disable_2fa_user: Onemogući dvofaktorsku autentifikaciju
+ disable_custom_emoji: Onemogući prilagođene emodžije
+ disable_sign_in_token_auth_user: Onemogući imejl autentifikaciju za korisnika
+ disable_user: Onemogući korisnika
+ enable_custom_emoji: Omogući prilagođene emodžije
+ enable_sign_in_token_auth_user: Omogući imejl autentifikaciju za korisnika
+ enable_user: Omogući korisnika
+ memorialize_account: Pretvori u memorijalni nalog
+ promote_user: Unapredi korisnika
+ reject_appeal: Odbij žalbu
+ reject_user: Odbaci korisnika
+ remove_avatar_user: Ukloni avatar
+ reopen_report: Ponovo otvori prijavu
+ resend_user: Ponovo pošalji mejl za potvrdu
+ reset_password_user: Resetuj lozinku
+ resolve_report: Zatvori prijavu
+ sensitive_account: Označi nalog kao osetljiv
+ silence_account: Ograniči nalog
+ suspend_account: Obustavi nalog
+ unassigned_report: Povuci prijavu
+ unblock_email_account: Odblokiraj imejl adresu
+ unsensitive_account: Ukloni dodeljenu oznaku „osetljiv”
+ unsilence_account: Povuci ograničenje naloga
+ unsuspend_account: Povuci suspenziju naloga
+ update_announcement: Saopštenje o ažuriranju
+ update_custom_emoji: Ažuriraj prilagođene emodžije
+ update_domain_block: Ažuriraj domen blok
+ update_ip_block: Ažuriraj IP uslov
+ update_status: Uredi objavu
+ update_user_role: Uredi ulogu
+ actions:
+ approve_appeal_html: "%{name} je uvažio žalbu korisnika %{target} na odluku moderatora"
+ approve_user_html: "%{name} je odobrio/-la registraciju korisnika %{target}"
+ assigned_to_self_report_html: "%{name} je sebi dodelio/-la prijavu %{target}"
+ change_email_user_html: "%{name} je promenio/-la imejl adresu korisnika %{target}"
+ change_role_user_html: "%{name} je promenio/-la ovlašćenja korisnika %{target}"
+ confirm_user_html: "%{name} je potvrdio/-la imejl adresu korisnika %{target}"
+ create_account_warning_html: "%{name} je poslao/-la upozorenje korisniku %{target}"
+ create_announcement_html: "%{name} je napravio/-la novo saopštenje %{target}"
+ create_canonical_email_block_html: "%{name} je blokirao/-la imejl adresu sa hešom %{target}"
+ create_custom_emoji_html: "%{name} je otpremio/-la nove emodžije %{target}"
+ create_domain_allow_html: "%{name} je dozvolio/-la federaciju sa domenom %{target}"
+ create_domain_block_html: "%{name} je blokirao/-la domen %{target}"
+ create_email_domain_block_html: "%{name} je blokirao/-la imejl domen %{target}"
+ create_ip_block_html: "%{name} je napravio/-la uslov za IP adrese %{target}"
+ create_unavailable_domain_html: "%{name} je obustavio/-la isporučivanje domenu %{target}"
+ create_user_role_html: "%{name} je napravio/-la %{target} poziciju"
+ demote_user_html: "%{name} je smanjio ovlašćenja korisnika %{target}"
+ destroy_announcement_html: "%{name} je obrisao/-la saopštenje %{target}"
+ destroy_canonical_email_block_html: "%{name} je odblokirao/-la imejl adresu sa hešom %{target}"
+ destroy_custom_emoji_html: "%{name} je obrisao/-la emodži %{target}"
+ destroy_domain_allow_html: "%{name} je zabranio/-la federaciju sa domenom %{target}"
+ destroy_domain_block_html: "%{name} je odblokirao/-la domen %{target}"
+ destroy_email_domain_block_html: "%{name} je odblokirao/-la imejl domen %{target}"
+ destroy_instance_html: "%{name} je očistio/-la domen %{target}"
+ destroy_ip_block_html: "%{name} je obrisao/-la uslov za IP adrese %{target}"
+ destroy_status_html: "%{name} je izbrisao/-la objavu korisnika %{target}"
+ destroy_unavailable_domain_html: "%{name} je ponovo uspostavio/-la isporučivanje domenu %{target}"
+ destroy_user_role_html: "%{name} je izbrisao/-la %{target} poziciju"
+ disable_2fa_user_html: "%{name} je onemogućio/-la dvofaktorsku autentifikaciju za korisnika %{target}"
+ disable_custom_emoji_html: "%{name} je onemogućio/-la emodži %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} je onemogućio/-la imejl autentifikaciju za korisnika %{target}"
+ disable_user_html: "%{name} je onemogućio/-la prijavljivanje za korisnika %{target}"
+ enable_custom_emoji_html: "%{name} je omogućio/-la emodži %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} je omogućio/-la imejl autentifikaciju za %{target}"
+ enable_user_html: "%{name} je omogućio/-la prijavljivanje korisniku %{target}"
+ memorialize_account_html: "%{name} je pretvorio/-la nalog korisnika %{target} u memorijalnu stranicu"
+ promote_user_html: "%{name} je unapredio/-la korisnika %{target}"
+ reject_appeal_html: "%{name} je odbio/-la žalbu na moderacijsku odluku koju je priložio korisnik %{target}"
+ reject_user_html: "%{name} je odbio/-la registraciju korisnika %{target}"
+ remove_avatar_user_html: "%{name} je uklonio avatar korisnika %{target}"
+ reopen_report_html: "%{name} je ponovo otvorio/-la prijavu %{target}"
+ resend_user_html: "%{name} je ponovo poslao/-la imejl za potvrdu korisniku %{target}"
+ reset_password_user_html: "%{name} je resetovao/-la lozinku korisnika %{target}"
+ resolve_report_html: "%{name} je rešio/-la prijavu %{target}"
+ sensitive_account_html: "%{name} je označio/-la medije naloga %{target} kao osetljive"
+ silence_account_html: "%{name} je ograničio/-la nalog %{target}"
+ suspend_account_html: "%{name} je suspendovao/-la nalog %{target}"
+ unassigned_report_html: "%{name} je povukao/-la dodelu prijave %{target}"
+ unblock_email_account_html: "%{name} je odblokirao/-la imejl adresu korisnika %{target}"
+ unsensitive_account_html: "%{name} je uklonio/-la oznaku „osetljivo” sa medija naloga %{target}"
+ unsilence_account_html: "%{name} je povukao/-la ograničenje naloga %{target}"
+ unsuspend_account_html: "%{name} je povukao/-la suspenziju naloga %{target}"
+ update_announcement_html: "%{name} je ažurirao/-la saopštenje %{target}"
+ update_custom_emoji_html: "%{name} je ažurirao/-la emodži %{target}"
+ update_domain_block_html: "%{name} je ažurirao/-la blok domena %{target}"
+ update_ip_block_html: "%{name} je promenio/-la IP uslov za %{target}"
+ update_status_html: "%{name} je ažurirao/-la objavu korisnika %{target}"
+ update_user_role_html: "%{name} je promenio/-la poziciju %{target}"
+ deleted_account: obrisan nalog
+ empty: Nije pronađen nijedan log.
+ filter_by_action: Filtriraj po aktivnosti
+ filter_by_user: Filtriraj po korisniku
title: Zapisnik
+ announcements:
+ destroyed_msg: Saopštenje je uspešno obrisano!
+ edit:
+ title: Uredi najavu
+ empty: Nijedna najava nije pronađena.
+ live: Uživo
+ new:
+ create: Kreiraj najavu
+ title: Nova najava
+ publish: Objavi
+ published_msg: Najava uspešno objavljena!
+ scheduled_for: Zakazano za %{time}
+ scheduled_msg: Saopštenje je zakazano za objavljivanje!
+ title: Najave
+ unpublish: Povuci objavu
+ unpublished_msg: Objava saopštenja je uspešno povučena!
+ updated_msg: Saopštenje je uspešno ažurirano!
custom_emojis:
+ assign_category: Dodeli kategoriju
by_domain: Domen
- copied_msg: Uspešno napravljena lokalna kopija emotikona
+ copied_msg: Uspešno napravljena lokalna kopija emodžija
copy: Kopiraj
- copy_failed_msg: Ne mogu da napravim lokalnu kopiju tog emotikona
- created_msg: Emotikon uspešno napravljen!
+ copy_failed_msg: Ne mogu da napravim lokalnu kopiju tog emotidžija
+ create_new_category: Kreiraj novu kategoriju
+ created_msg: Emodži uspešno napravljen!
delete: Obriši
- destroyed_msg: Emotikon uspešno obrisan!
+ destroyed_msg: Emodži uspešno obrisan!
disable: Onemogući
- disabled_msg: Emotikon uspešno onemogućen
- emoji: Emotikon
+ disabled: Onemogućeno
+ disabled_msg: Emodži uspešno onemogućen
+ emoji: Emodži
enable: Omogući
- enabled_msg: Emotikon uspešno omogućen
+ enabled: Omogućeno
+ enabled_msg: Emodži uspešno omogućen
+ image_hint: PNG ili GIF fajl veličine do %{size}
+ list: Lista
listed: Izlistan
new:
- title: Dodaj novi proizvoljni emotikon
+ title: Dodaj novi proizvoljni emodži
+ no_emoji_selected: Nijedan emodži nije promenjen jer nijedan nije izabran
+ not_permitted: Niste ovlašćeni da obavljate ovu radnju
overwrite: Prepiši
shortcode: Prečica
shortcode_hint: Najmanje 2 karaktera, dozvoljeni su samo slova, brojevi i donje crte
- title: Proizvoljni emotikoni
+ title: Proizvoljni emotidžiji
+ uncategorized: Nekategorizovano
+ unlist: Neizlistan
unlisted: Neizlistan
- update_failed_msg: Ne mogu da ažuriram ovaj emotikon
- updated_msg: emotikon uspešno ažuriran!
+ update_failed_msg: Ne mogu da ažuriram ovaj emodži
+ updated_msg: Emodži uspešno ažuriran!
upload: Otpremi
+ dashboard:
+ active_users: aktivni korisnici
+ interactions: interakcije
+ media_storage: Multimedijalno skladište
+ new_users: novi korisnici
+ opened_reports: otvorene prijave
+ pending_appeals_html:
+ few: "%{count} žalbe na čekanju"
+ one: "%{count} žalba na čekanju"
+ other: "%{count} žalbi na čekanju"
+ pending_reports_html:
+ few: "%{count} prijave na čekanju"
+ one: "%{count} prijava na čekanju"
+ other: "%{count} prijava na čekanju"
+ pending_tags_html:
+ few: "%{count} heš oznake na čekanju"
+ one: "%{count} heš oznaka na čekanju"
+ other: "%{count} heš oznaka na čekanju"
+ pending_users_html:
+ few: "%{count} korisnika na čekanju"
+ one: "%{count} korisnik na čekanju"
+ other: "%{count} korisnika na čekanju"
+ resolved_reports: rešene prijave
+ software: Softver
+ sources: Izvori registracija
+ space: Korišćenje prostora
+ title: Komandna tabla
+ top_languages: Najzastupljeniji jezici
+ top_servers: Najaktivniji serveri
+ website: Vebsajt
+ disputes:
+ appeals:
+ empty: Nijedna žalba nije pronađena.
+ title: Žalbe
+ domain_allows:
+ add_new: Dozvoli federaciju sa domenom
+ created_msg: Domen je uspešno odobren za federaciju
+ destroyed_msg: Domen je odbijen za federaciju
+ export: Izvoz
+ import: Uvoz
+ undo: Zabrani federaciju sa domenom
domain_blocks:
- add_new: Dodaj novi
+ add_new: Dodaj novi blok domena
created_msg: Blokiranje domena se obrađuje
destroyed_msg: Blokiranje domena je opozvano
domain: Domen
+ edit: Izmeni blok domena
+ existing_domain_block: Već ste uspostavili stroža ograničenja prema korisniku %{name}.
+ existing_domain_block_html: Već ste uspostavili stroža ograničenja prema %{name}, potrebno je da ga prvo odblokirate.
+ export: Izvoz
+ import: Uvoz
new:
create: Napravi blokadu
hint: Blokiranje domena neće sprečiti pravljenje naloga u bazi, ali će retroaktivno i automatski primeniti određene moderatorske metode nad tim nalozima.
severity:
+ desc_html: "Ograničenje će sakriti objave naloga sa ovog domena od svakog ko ih ne prati. Suspenzija će obrisati sav sadržaj, medije i podatke profila sa naloga ovog domena sa Vašeg servera. Koristite Ništa ukoliko samo želite da odbijete medijske fajlove."
noop: Ništa
+ silence: Ograniči
suspend: Suspenzija
title: Novo blokiranje domena
+ no_domain_block_selected: Nijedan blok domena nije promenjen jer nijedan nije izabran
+ not_permitted: Niste ovlašćeni da obavljate ovu radnju
+ obfuscate: Sakrij ime domena
+ obfuscate_hint: Delimično sakrij ime domena na listi ako je reklamiranje liste ograničenih domena omogućeno
+ private_comment: Privatni komentar
+ private_comment_hint: Komentar o ograničenju ovog domena za internu upotrebu od strane moderatora.
+ public_comment: Javni komentar
+ public_comment_hint: Komentar o ograničenju ovog domena za javnost, ukoliko je reklamiranje liste ograničenih domena omogućeno.
reject_media: Odbaci multimediju
- reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida na dalje. Nebitno je za suspenziju
- undo: Poništi
+ reject_media_hint: Uklanja lokalno uskladištene multimedijske fajlove i odbija da ih skida ubuduće. Nebitno je za suspenziju
+ reject_reports: Odbaci izveštaj
+ reject_reports_hint: Ignoriši sve izveštaje koji dolaze sa ovog domena. Nebitno je za suspenzije
+ undo: Poništi blok domena
+ view: Pročitaj blok domena
email_domain_blocks:
- add_new: Dodaj novuAdd new
- created_msg: Uspešno dodao domen e-pošte na crnu listu
- delete: Ukloni
+ add_new: Dodaj novi
+ attempts_over_week:
+ few: "%{count} pokušaja tokom prethodne nedelje"
+ one: "%{count} pokušaj tokom prethodne nedelje"
+ other: "%{count} pokušaja registracije tokom prethodne nedelje"
+ created_msg: Uspešno dodao domen E-pošte na crnu listu
+ delete: Obriši
+ dns:
+ types:
+ mx: MX izveštaj
domain: Domen
new:
create: Dodaj domen
- title: Nova stavka u crnoj listi e-pošti
- title: Crna lista adresa e-pošte
+ resolve: Pretvori domen
+ title: Nova stavka e-pošte u crnoj listi
+ no_email_domain_block_selected: Nijedan blok imejl domena nije promenjen jer nijedan nije izabran
+ not_permitted: Nije dozvoljeno
+ resolved_dns_records_hint_html: Ime domena se pretvara u sledeće MX domene, koji su naposletku odgovorni za prihvatanje elektronske pošte. Blokiranje MX domena će blokirati registracije sa svake imejl adrese koja koristi taj MX domen, čak i u slučaju kada se vidljivo ime domena razlikuje. Vodite računa o tome da ne blokirate velike imejl provajdere.
+ resolved_through_html: Preusmereno kroz %{domain}
+ title: Crna lista E-pošte
+ export_domain_allows:
+ new:
+ title: Uvezi dozvoljene domene
+ no_file: Nijedan fajl nije odabran
+ export_domain_blocks:
+ import:
+ description_html: Upravo ćete uvesti listu blokiranih domena. Molimo Vas, vrlo pažljivo pregledajte ovu listu, posebno ukoliko je niste sami napravili.
+ existing_relationships_warning: Postojeći odnosi u obliku praćenja
+ private_comment_description_html: 'Da bi Vam pomogli da pratite odakle su blokovi uvezeni, uvezeni blokovi će biti napravljeni sa sledećim privatnim komentarom: %{comment}'
+ private_comment_template: Uvezeno sa izvora %{source} na datum %{date}
+ title: Uvezi blokirane domene
+ invalid_domain_block: 'Jedan ili više blokova domena je preskočen zbog sledeće greške tj. grešaka: %{error}'
+ new:
+ title: Uvezi blokirane domene
+ no_file: Nijedan fajl nije odabran
+ follow_recommendations:
+ description_html: "Predlozi za praćenje pomažu novim korisnicima da brzo pronađu zanimljiv sadržaj. Kada korisnik nije dovoljno interagovao sa ostalima da bi se za njega formirali personalizovani predlozi za praćenje, ovi nalozi će biti preporučeni umesto toga. Oni se generišu na dnevnoj bazi iz skupa naloga sa najviše nedavnih angažovanja i najviše lokalnih pratilaca za jedan jezik."
+ language: Za jezik
+ status: Status
+ suppress: Potisni preporuke za praćenje
+ suppressed: Potisnuto
+ title: Preporuke za praćenje
+ unsuppress: Vrati preporuku za praćenje
instances:
- title: Poznate instance
+ availability:
+ description_html:
+ few: Ukoliko isporuka domenu ne uspe nijednom tokom %{count} različitih dana, dalji pokušaji isporuke neće biti inicirani osim ukoliko se ne primi isporuka sa domena.
+ one: Ako isporuka domenu ne uspe nijednom u vremenskom periodu od %{count} dana, dalji pokušaji isporuke se neće inicirati osim ukoliko se ne primi isporuka sa domena.
+ other: Ukoliko isporuka domenu ne uspe nijednom tokom %{count} različitih dana, dalji pokušaji isporuke se neće inicirati osim ukoliko se ne primi isporuka sa domena.
+ failure_threshold_reached: Prag neuspeha dostignut datuma %{date}.
+ failures_recorded:
+ few: Neuspeli pokušaji tokom %{count} različita dana.
+ one: Neuspeli pokušaj tokom %{count} dana.
+ other: Neuspeli pokušaji tokom %{count} različitih dana.
+ no_failures_recorded: Bez zabeleženih neuspeha.
+ title: Dostupnost
+ warning: Poslednji pokušaj povezivanja sa ovim serverom je bio neuspešan
+ back_to_all: Sve
+ back_to_limited: Ograničeno
+ back_to_warning: Upozorenje
+ by_domain: Domen
+ confirm_purge: Da li ste sigurni da želite da trajno uklonite podatke sa ovog domena?
+ content_policies:
+ comment: Interna beleška
+ description_html: Možete da definišete politiku sadržaja koja će važiti za sve naloge na ovom domenu i svakom od njegovih poddomena.
+ limited_federation_mode_description_html: Možete da odlučite da li da dopustite federaciju sa ovim domenom.
+ policies:
+ reject_media: Odbij multimediju
+ reject_reports: Odbij prijave
+ silence: Ograniči
+ suspend: Suspenduj
+ policy: Politika
+ reason: Javni razlog
+ title: Politika sadržaja
+ dashboard:
+ instance_accounts_dimension: Najpraćeniji nalozi
+ instance_accounts_measure: uskladišteni nalozi
+ instance_followers_measure: naši pratioci ovde
+ instance_follows_measure: njihovi pratioci ovde
+ instance_languages_dimension: Najzastupljeniji jezici
+ instance_media_attachments_measure: uskladišteni multimedijalni prilozi
+ instance_reports_measure: prijave protiv njih
+ instance_statuses_measure: uskladištene objave
+ delivery:
+ all: Sve
+ clear: Očisti greške prilikom isporuke
+ failing: Bez uspeha
+ restart: Započni isporuku ponovo
+ stop: Obustavi isporuku
+ unavailable: Nedostupno
+ delivery_available: Dostava je dostupna
+ delivery_error_days: Dani neuspešnih isporuka
+ delivery_error_hint: Ukoliko isporuka nije moguća %{count} dana, automatski će biti obeležena kao neisporučiva.
+ destroyed_msg: Podaci sa %{domain} su sada u redu za čekanje za izvesno brisanje.
+ empty: Nijedan domen nije pronađen.
+ known_accounts:
+ few: "%{count} poznata naloga"
+ one: "%{count} poznat nalog"
+ other: "%{count} poznatih naloga"
+ moderation:
+ all: Sve
+ limited: Ograničeno
+ title: Moderacija
+ private_comment: Privatni komentar
+ public_comment: Javni komentar
+ purge: Čistka
+ purge_description_html: Ukoliko verujete da je ovaj domen trajno ugašen, možete da obrišete sve zapise naloga i srodne podatke ovog domena sa svog skladišta. Ovo može da potraje.
+ title: Federacija
+ total_blocked_by_us: Blokirano od strane nas
+ total_followed_by_them: Praćeni od strane njih
+ total_followed_by_us: Praćeni od strane nas
+ total_reported: Prijave vezane za njih
+ total_storage: Multimedijalni prilozi
+ totals_time_period_hint_html: Ukupne vrednosti prikazane ispod uključuju podatke za sva vremena.
invites:
+ deactivate_all: Deaktiviraj sve
filter:
all: Sve
- available: Aktivne
- expired: Istekle
+ available: Dostupni
+ expired: Istekli
+ title: Filter
title: Pozivnice
+ ip_blocks:
+ add_new: Napravi pravilo
+ created_msg: Uspešno je dodato novo IP pravilo
+ delete: Izbriši
+ expires_in:
+ '1209600': 2 nedelje
+ '15778476': 6 meseci
+ '2629746': 1 mesec
+ '31556952': 1 godina
+ '86400': 1 dan
+ '94670856': 3 godine
+ new:
+ title: Kreiraj novo IP pravilo
+ no_ip_block_selected: Nijedno IP pravilo nije promenjeno jer nijedno nije izabrano
+ title: IP pravila
+ relationships:
+ title: Odnosi korisnika %{acct}
+ relays:
+ add_new: Dodaj novi relej
+ delete: Obriši
+ description_html: "Federalni relej je posrednički server koji razmenjuje velike količine javnih truba između servera na koji je pretplaćen i na koji objavljuje.Može pomoći malim i srednjim serverima da otkriju sadržaj iz fediversa, koji inače zahteva od lokalnih korisnika da ručno pratiti ostale ljude na udaljenim serverima."
+ disable: Isključi
+ disabled: Isključen
+ enable: Uključi
+ enable_hint: Kada se omogući, vaš server će biti pretplaćen na sve javne objave sa ovog releja, i počeće da šalje javne objave ovog servera na njega.
+ enabled: Uključen
+ inbox_url: URL Releja
+ pending: Čeka se odobrenje releja
+ save_and_enable: Sačuvaj i omogući
+ setup: Podesi vezu releja
+ signatures_not_enabled: Prenosi možda neće raditi ispravno dok je uključen bezbedni režim ili režim ograničene federacije
+ status: Status
+ title: Releji
+ report_notes:
+ created_msg: Beleška prijave uspešno napravljena!
+ destroyed_msg: Beleška prijave uspešno izbrisana!
reports:
+ account:
+ notes:
+ few: "%{count} beleške"
+ one: "%{count} beleška"
+ other: "%{count} beležaka"
+ action_log: Zapisnik
action_taken_by: Akciju izveo
+ actions:
+ delete_description_html: Prijavljene objave će biti obrisane i prekršaj će biti upisan da bi Vam olakšali intervenciju prilikom budućih prestupa sa istog naloga.
+ mark_as_sensitive_description_html: Multimedijalni sadržaj sa prijavljenih objava će biti označen kao osetljiv i prekršaj će biti upisan radi lakše intervencije u slučaju daljih prekršaja sa istog naloga.
+ other_description_html: Pogledajte više opcija za kontrolisanje ponašanja naloga i prilagodite komunikaciju sa prijavljenim nalogom.
+ resolve_description_html: Nijedna radnja neće biti preduzeta protiv prijavljenog naloga, nijedan prestup nije upisan i prijava će biti zatvorena.
+ silence_description_html: Nalog će biti vidljiv samo onima koji ga već prate ili koji ga ručno potraže, što će značajno ograničiti njegov domet. Ograničenje se može povući u svakom trenutku. Zatvara sve prijave podnete protiv ovog naloga.
+ suspend_description_html: Nalog i svi njegovi sadržaji će postati nedostupni i u jednom trenutku izbrisani, a interakcija sa nalogom više neće biti moguća. Suspenzija se može povući u roku od 30 dana. Zatvara sve prijave podnete protiv ovog naloga.
+ actions_description_html: Odlučite koju radnju da sprovedete radi rešavanja ove prijave. Ukoliko sprovedete kaznenu radnju protiv prijavljenog naloga, vlasnik naloga će biti obavešten putem i-mejla, osim ukoliko oznaka „Nepoželjne poruke” nije odabrana.
+ actions_description_remote_html: Odlučite koju radnju da preduzmete radi rešavanja ove prijave. Ovo će uticati samo na to kako Vaš server komunicira sa ovim udaljenim nalogom i obrađuje njegov sadržaj.
+ add_to_report: Dodaj još u prijavu
are_you_sure: Da li ste sigurni?
+ assign_to_self: Dodeli meni
+ assigned: Dodeljeni moderator
+ by_target_domain: Domen prijavljenog naloga
+ cancel: Otkaži
+ category: Kategorija
+ category_description_html: Razlog zbog kog je ovaj nalog i/ili sadržaj prijavljen će biti obrazložen u komunikaciji sa prijavljenim nalogom
comment:
none: Ništa
- mark_as_resolved: Označi kao rešen
+ comment_description_html: 'Radi pružanja više informacija, %{name} je napisao/-la:'
+ confirm: Potvrdi
+ confirm_action: Potvrdi moderacijsku radnju prema @%{acct}
+ created_at: Prijavljena
+ delete_and_resolve: Obriši objave
+ forwarded: Prosleđeno
+ forwarded_to: Prosleđeno ka %{domain}
+ mark_as_resolved: Označi kao rešenu
+ mark_as_sensitive: Obeleži kao osetljivo
+ mark_as_unresolved: Označi kao nerešenu
+ no_one_assigned: Niko
+ notes:
+ create: Dodaj belešku
+ create_and_resolve: Reši sa beleškom
+ create_and_unresolve: Otvori ponovo sa beleškom
+ delete: Obriši
+ placeholder: Opišite kakve su radnje preduzete, ili bilo kakve povezane novosti...
+ title: Beleške
+ notes_description_html: Pročitajte i ostavite napomene drugim moderatorima i sebi u budućnosti
+ processed_msg: 'Prijava #%{id} uspešno obrađena'
+ quick_actions_description_html: 'Preduzmite brzu radnju ili se spustite niže da biste videli prijavljeni sadržaj:'
+ remote_user_placeholder: udaljeni korisnik sa %{instance}
+ reopen: Otvori prijavu ponovo
report: 'Prijava #%{id}'
reported_account: Prijavljeni nalog
reported_by: Prijavio
- resolved: Rešeni
+ resolved: Rešena
+ resolved_msg: Prijava uspešno razrešena!
+ skip_to_actions: Preskoči do radnji
+ status: Status
+ statuses: Prijavljeni sadržaj
+ statuses_description_html: Sporni sadržaj će biti naveden u komunikaciji sa prijavljenim nalogom
+ summary:
+ action_preambles:
+ delete_html: 'Upravo ćete obrisati neke od objava korisnika @%{acct}. Ovo će:'
+ mark_as_sensitive_html: 'Upravo ćete označiti neke objave korisnika @%{acct} kao osetljive. Ovo će:'
+ silence_html: 'Upravo ćete ograničiti nalog korisnika @%{acct}. Ovo će:'
+ suspend_html: 'Upravo ćete suspendovati nalog korisnika @%{acct}. Ovo će:'
+ actions:
+ delete_html: Obrišite sporne objave
+ mark_as_sensitive_html: Obeležite medije spornih objava kao osetljive
+ silence_html: Žestoko ograničite domet korisnika @%{acct} tako što ćete učiniti njegov profil i sadržaje vidljive samo ljudima koji ih već prate i ljudima koji ručno potraže profil
+ suspend_html: Suspendujte korisnika @%{acct}, što će učiniti njegov profil i sadržaje nedostupnim za pristup i interakciju
+ close_report: 'Označite prijavu #%{id} kao rešenu'
+ close_reports_html: Označi sve prijave protiv @%{acct} kao rešene
+ delete_data_html: Obriši profil i sadržaje korisnika @%{acct} za 30 dana osim ukoliko suspenzija bude povučena u međuvremenu
+ preview_preamble_html: "@%{acct} će primiti upozorenje sledeće sadržine:"
+ record_strike_html: Upišite prekršaj na ime @%{acct} da bi Vam bilo lakše da u budućnosti intervenišete prilikom daljih prestupa sa ovog naloga
+ send_email_html: Pošalji imejl upozorenja korisniku @%{acct}
+ warning_placeholder: Opciono dodatno obrazloženje za moderacijsku radnju.
+ target_origin: Poreklo prijavljenog naloga
title: Prijave
- unresolved: Nerešeni
+ unassign: Ukloni dodelu
+ unknown_action_msg: 'Nepoznata radnja: %{action}'
+ unresolved: Nerešene
+ updated_at: Ažurirana
+ view_profile: Pogledaj profil
+ roles:
+ add_new: Dodaj ulogu
+ assigned_users:
+ few: "%{count} korisnika"
+ one: "%{count} korisnik"
+ other: "%{count} korisnika"
+ categories:
+ administration: Administracija
+ devops: DevOps
+ invites: Pozivnice
+ moderation: Moderacija
+ special: Posebno
+ delete: Izbriši
+ description_html: Pomoću korisničkih uloga možete da podesite kojim funkcijama i delovima Mastodona Vaši korisnici mogu da pristupe.
+ edit: Izmeni ulogu '%{name}'
+ everyone: Podrazumevana ovlašćenja
+ everyone_full_description_html: Ovo je osnovna uloga koja se odnosi na sve korisnike, čak i one kojima nije dodeljena uloga. Sve druge uloge nasleđuju ovlašćenja od osnovne uloge.
+ permissions_count:
+ few: "%{count} dozvole"
+ one: "%{count} dozvola"
+ other: "%{count} dozvola"
+ privileges:
+ administrator: Administrator
+ administrator_description: Korisnici sa ovom privilegijom mogu da zaobiđu sva druga ograničenja
+ delete_user_data: Izbriši podatke korisnika
+ delete_user_data_description: Dopušta korisnicima da izbrišu podatke drugih korisnika bez odlaganja
+ invite_users: Pozovi korisnike
+ invite_users_description: Dopušta korisnicima da pozove nove ljude na server
+ manage_announcements: Upravljaj obaveštenjima
+ manage_announcements_description: Dopušta korisnicima da rukovode saopštenjima na serveru
+ manage_appeals: Nadgledanje žalbi
+ manage_appeals_description: Dopušta korisnicima da pregledaju žalbe na moderacijske radnje
+ manage_blocks: Nadgledanje blokova
+ manage_blocks_description: Dopušta korisnicima da blokiraju imejl provajdere i IP adrese
+ manage_custom_emojis: Nadležnost nad prilagođenim emodžijima
+ manage_custom_emojis_description: Daje korisnicima kontrolu nad prilagođenim emodžijima na serveru
+ manage_federation: Nadgledanje federacije
+ manage_federation_description: Dopušta korisnicima da blokiraju ili dozvole federaciju sa drugim domenima i kontrolišu isporučivanje podataka drugim serverima
+ manage_invites: Nadgledanje pozivnica
+ manage_invites_description: Dopušta korisnicima da pretražuju i deaktiviraju pozivnice
+ manage_reports: Nadgledanje prijava
+ manage_reports_description: Dopušta korisnicima da pregledaju prijave i izvršavaju moderacijske radnje nad njima
+ manage_roles: Upravljaj ulogama
+ manage_roles_description: Dopušta korisnicima da nadgledaju i dodeljuju uloge sa nižim ovlašćenjima od njihove
+ manage_rules: Upravljaj pravilima
+ manage_rules_description: Dozvoli korisnicima da menjaju pravila servera
+ manage_settings: Upravljaj postavkama
+ manage_settings_description: Dozvoli korisnicima da menjaju postavke sajta
+ manage_taxonomies: Nadgledanje taksonomija
+ manage_taxonomies_description: Dopušta korisnicima da pregledaju sadržaj u trendu i ažuriraju postavke heš oznaka
+ manage_user_access: Nadležnost nad korisničkim pristupom
+ manage_user_access_description: Dopušta korisnicima da onemoguće dvofaktorsku autentifikaciju drugih korisnika, menjaju im imejl adrese i resetuju im lozinke
+ manage_users: Nadležnost nad korisnicima
+ manage_users_description: Dopušta korisnicima da pročitaju detalje drugih korisnika i izvršavaju moderacijske radnje nad njima
+ manage_webhooks: Nadležnost nad webhook elementima
+ manage_webhooks_description: Dopušta korisnicima da uspostave webhook elemente za administrativne radnje
+ view_audit_log: Pročitaj zapisnik revizija
+ view_audit_log_description: Dopušta korisnicima da vide istoriju administrativnih radnji na serveru
+ view_dashboard: Pogledaj kontrolni panel
+ view_dashboard_description: Dopušta korisnicima da pristupe kontrolnom panelu i raznim metrikama
+ view_devops: DevOps
+ view_devops_description: Dopušta korisnicima da pristupe Sidekiq i pgHero kontrolnim panelima
+ title: Uloge
+ rules:
+ add_new: Dodaj pravilo
+ delete: Izbriši
+ description_html: Dok većina tvrdi da je pročitala i slaže se sa uslovima korišćenja, ljudi ih obično ne čitaju sve dok se ne javi problem. Učinite pravila Vašeg servera čitljivijim i pristupačnijim tako što ćete ih izložiti u formi liste. Potrudite se da pojedinačna pravila budu kratka i jednostavna, ali pokušajte i da ih ne iscepkate u previše odvojenih stavki.
+ edit: Uredi pravilo
+ empty: Nijedno pravilo servera još nije definisano.
+ title: Pravila servera
+ settings:
+ about:
+ manage_rules: Upravljanje pravilima servera
+ preamble: Pružite detaljne informacije o tome kako se server vodi, moderira i finansira.
+ rules_hint: Postoji predviđeno mesto za pravila koja se od korisnika očekuje da poštuju.
+ title: Naziv
+ appearance:
+ preamble: Prilagodite veb interfejs Mastodona.
+ title: Izgled
+ branding:
+ preamble: Brendiranje Vašeg servera ga izdvaja od drugih servera na mreži. Ove informacije mogu biti prikazane u raznim okruženjima, poput Mastodonovog veb interfejsa, nativnih aplikacija, u pregledima linkova na drugim serverima i u aplikacijama za razmenu poruka, itd. Iz ovog razloga, najbolje je da ove informacije budu kratke, jasne i koncizne.
+ title: Brendiranje
+ content_retention:
+ preamble: Kontrolišite kako se sadržaj generisan od strane korisnika skladišti na Mastodonu.
+ title: Zadržavanje sadržaja
+ default_noindex:
+ desc_html: Utiče na sve korisnike koji nisu sami promenili ovu postavku
+ title: Podrazumevano isključi korisnike iz indeksiranja pretraživača
+ discovery:
+ follow_recommendations: Preporuke za praćenje
+ preamble: Održavanje zanimljivih sadržaja na površini je ključno u privlačenju novih korisnika koji možda ne znaju nikoga na Mastodonu. Kontrolišite kako različiti načini istraživanja funkcionišu na Vašem serveru.
+ profile_directory: Direktorijum profilâ
+ public_timelines: Javne vremenske linije
+ publish_discovered_servers: Objavi otkrivene servere
+ publish_statistics: Objavi statistiku
+ title: Otkrivanje
+ trends: Trendovi
+ domain_blocks:
+ all: Svima
+ disabled: Nikome
+ users: Prijavljenim lokalnim korisnicima
+ registrations:
+ preamble: Kontrolišite ko sme da napravi nalog na Vašem serveru.
+ title: Registracije
+ registrations_mode:
+ modes:
+ approved: Odobrenje neophodno za registraciju
+ none: Niko ne može da se registruje
+ open: Bilo ko može da se registruje
+ title: Podešavanja servera
+ site_uploads:
+ delete: Obriši otpremljeni fajl
+ destroyed_msg: Otpremanje uspešno obrisano!
statuses:
+ account: Autor
+ application: Aplikacija
back_to_account: Nazad na stranu naloga
+ back_to_report: Nazad na stranicu sa prijavama
+ batch:
+ remove_from_report: Uklonite iz prijave
+ report: Prijavi
+ deleted: Obrisano
+ favourites: Omiljeno
+ history: Istorija verzijâ
+ in_reply_to: Odgovor na
+ language: Jezik
media:
title: Multimedija
+ metadata: Meta podaci
+ no_status_selected: Nijedan status nije promenjen jer nijedan nije izabran
+ open: Otvori objavu
+ original_status: Originalna objava
+ reblogs: Deljenja
+ status_changed: Objava promenjena
title: Statusi naloga
+ trending: U trendu
+ visibility: Vidljivost
with_media: Sa multimedijom
+ strikes:
+ actions:
+ delete_statuses: "%{name} je obrisao/-la objave %{target}"
+ disable: "%{name} je zamrznuo nalog korisnika %{target}"
+ mark_statuses_as_sensitive: "%{name} je označio/-la objave korisnika %{target} kao osetljive"
+ none: "%{name} je poslao/-la upozorenje korisniku %{target}"
+ sensitive: "%{name} je obeležio/-la nalog %{target} kao osetljiv"
+ silence: "%{name} je ograničio/-la nalog %{target}"
+ suspend: "%{name} je suspendovao/-la nalog %{target}"
+ appeal_approved: Žalba uvažena
+ appeal_pending: Žalba u razmatranju
+ appeal_rejected: Žalba odbijena
+ system_checks:
+ database_schema_check:
+ message_html: Selidbe bazâ podataka su na čekanju. Molimo Vas obavite ih da bi se aplikacija ponašala kako treba
+ elasticsearch_running_check:
+ message_html: Povezivanje na Elasticsearch nije bilo moguće. Molimo Vas proverite da li je pokrenut, ili onemogućite pretragu celog teksta
+ elasticsearch_version_check:
+ message_html: 'Neusklađena Elasticsearch verzija: %{value}'
+ version_comparison: Elasticsearch %{running_version} je instaliran a %{required_version} je neophodan
+ rules_check:
+ action: Upravljanje pravilima servera
+ message_html: Niste definisali nijedno pravilo servera.
+ sidekiq_process_check:
+ message_html: Nijedan Sidekiq proces nije pokrenut za red(ove) %{value}. Molimo Vas pregledajte svoju Sidekiq konfiguraciju
+ tags:
+ review: Pregledaj status
+ updated_msg: Podešavanja heš oznaka uspešno ažurirana
title: Administracija
+ trends:
+ allow: Dozvoli
+ approved: Odobreno
+ disallow: Zabrani
+ links:
+ allow: Dozvoli link
+ allow_provider: Dozvoli izdavača
+ description_html: Ovo su linkovi koji se trenutno često dele među nalozima koje Vaš server vidi. Može pomoći Vašim korisnicima da saznaju šta se dešava u svetu. Nijedan link nije javno prikazan sve dok Vi ne odobrite izdavača. Takođe možete da dozvolite ili odbijete zasebne linkove.
+ disallow: Zabrani link
+ disallow_provider: Zabrani izdavača
+ no_link_selected: Nijedan link nije promenjen jer nijedan nije izabran
+ publishers:
+ no_publisher_selected: Nijedan izdavač nije promenjen jer nijedan nije izabran
+ shared_by_over_week:
+ few: Podeljen od strane %{count} osobe tokom prethodne nedelje
+ one: Podeljen od strane jedne osobe tokom prethodne nedelje
+ other: Podeljen od strane %{count} osoba tokom prethodne nedelje
+ title: Linkovi u trendu
+ usage_comparison: Podeljeno %{today} puta danas, u poređenju sa %{yesterday} puta juče
+ not_allowed_to_trend: Nije odobreno za trend
+ only_allowed: Samo dozvoljeno
+ pending_review: Pregled na čekanju
+ preview_card_providers:
+ allowed: Linkovi sa ovog izvora mogu da budu „u trendu”
+ description_html: Ovo su domeni čiji se linkovi često dele na Vašem serveru. Linkovi neće biti javno prikazani kao „u trendu” osim ukoliko je domen linkova odobren. Vaše odobrenje (ili odbijanje) se prenosi i na poddomene.
+ rejected: Linkovi sa ovog izvora neće biti „u trendu”
+ title: Izdavači
+ rejected: Odbijen
+ statuses:
+ allow: Dozvoli objavu
+ allow_account: Odobri autora
+ description_html: Ovo su objave za koje Vaš server zna, a koje se trenutno često dele i koje korisnici često stavljaju u „omiljene”. Mogu pomoći Vašim novim korisnicima i povratnicima da pronađu još ljudi za praćenje. Nijedna objava nije prikazana javno sve dok Vi ne odobrite autora, odnosno dok autor ne dozvoli da njegov/njen nalog bude preporučen drugima. Takođe možete da odobrite ili odbijete zasebne objave.
+ disallow: Zabrani objavu
+ disallow_account: Zabrani autora
+ no_status_selected: Nijedna objava u trendu nije promenjena jer nijedna nije izabrana
+ not_discoverable: Autor nije dao saglasnost da bude preporučen
+ shared_by:
+ few: Podeljeno i stavljeno u „omiljene” %{friendly_count} puta
+ one: Podeljeno ili stavljeno u „omiljene” jednom
+ other: Podeljeno i stavljeno u „omiljene” %{friendly_count} puta
+ title: Objave u trendu
+ tags:
+ current_score: Trenutna vrednost %{score}
+ dashboard:
+ tag_accounts_measure: jedinstvene upotrebe
+ tag_languages_dimension: Najzastupljeniji jezici
+ tag_servers_dimension: Najaktivniji serveri
+ tag_servers_measure: različiti serveri
+ tag_uses_measure: ukupno upotreba
+ description_html: Ovo su heš oznake koje se trenutno često pojavljuju u objavama koje Vaš server vidi. Mogu pomoći Vašim korisnicima da otkriju o čemu se trenutno najviše govori. Nijedna heš oznaka nije prikazana javno sve dok Vi to ne odobrite.
+ listable: Može se preporučiti
+ no_tag_selected: Nijedna oznaka nije izmenjena jer nijedna nije izabrana
+ not_listable: Neće biti preporučeno
+ not_trendable: Neće se pojavljivati u trendovima
+ not_usable: Ne može se koristiti
+ peaked_on_and_decaying: Vrhunac dostignut datuma %{date}, od tada u opadanju
+ title: Heš oznake u trendu
+ trendable: Može da se pojavi pod trendovima
+ trending_rank: 'U trendu #%{rank}'
+ usable: Može se koristiti
+ usage_comparison: Upotrebljeno %{today} puta danas, u poređenju sa %{yesterday} puta juče
+ used_by_over_week:
+ few: Korišćeno od strane %{count} osobe tokom prethodne nedelje
+ one: Korišćeno od strane jedne osobe tokom prethodne nedelje
+ other: Korišćeno od strane %{count} ljudi tokom prethodne nedelje
+ title: Trendovi
+ trending: U trendu
+ warning_presets:
+ add_new: Dodaj novi
+ delete: Izbriši
+ edit_preset: Uredi preset upozorenja
+ empty: Još uvek niste definisali nijedan šablon upozorenja.
+ title: Upravljaj presetima upozorenja
+ webhooks:
+ add_new: Dodaj krajnju tačku
+ delete: Izbriši
+ description_html: "Webhook omogućava Mastodonu da Vašoj aplikaciji isporučuje obaveštenja u realnom vremenu o odabranim događajima, tako da Vaša aplikacija može da automatski izazove reakciju."
+ disable: Onemogući
+ disabled: Onemogućeno
+ edit: Izmeni krajnju tačku
+ empty: Još uvek nemate nijednu konfigurisanu webhook krajnju tačku.
+ enable: Omogući
+ enabled: Aktivno
+ enabled_events:
+ few: "%{count} omogućena događaja"
+ one: 1 omogućen događaj
+ other: "%{count} omogućenih događaja"
+ events: Događaji
+ new: Novi webhook
+ rotate_secret: Rotacija tajni
+ secret: Tajno potpisivanje
+ status: Status
+ title: Veb-presretač
+ webhook: Veb-presretač
admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: obrisati objave korisnika
+ disable: zamrznuti nalog korisnika
+ mark_statuses_as_sensitive: označiti objave korisnika kao osetljive
+ none: upozorenje
+ sensitive: označiti nalog kao osetljiv
+ silence: ograničiti nalog
+ suspend: suspendovati nalog
+ body: "%{target} prilaže žalbu na moderacijsku odluku korisnika %{action_taken_by} od %{date}, koja je glasila %{type}. U žalbi piše:"
+ next_steps: Možete uvažiti žalbu da biste povukli moderacijsku odluku, ili je možete ignorisati.
+ subject: "%{username} prilaže žalbu na moderacijsku odluku sa %{instance}"
+ new_pending_account:
+ body: Detalji novog naloga su navedeni dole. Možete odobriti ili odbiti ovaj zahtev.
+ subject: Nov nalog za pregled na %{instance} (%{username})
new_report:
body: "%{reporter} je prijavio %{target}"
+ body_remote: Neka sa domena %{domain} je prijavio %{target}
subject: Nova prijava za %{instance} (#%{id})
+ new_trends:
+ body: 'Sledeće stavke je potrebno pregledati pre nego što mogu javno da se prikažu:'
+ new_trending_links:
+ title: Linkovi u trendu
+ new_trending_statuses:
+ title: Objave u trendu
+ new_trending_tags:
+ no_approved_tags: Trenutno nema odobrenih heš oznaka u trendu.
+ requirements: 'Bilo koji od sledećih kandidata bi mogao prevazići #%{rank} odobrenu heš oznaku u trendu, koja je trenutno #%{lowest_tag_name} sa vrednošću %{lowest_tag_score}.'
+ title: Heš oznake u trendu
+ subject: Novi trendovi za pregled na %{instance}
+ aliases:
+ add_new: Napravi pseudonim
+ created_msg: Uspešno je napravljen novi pseudonim. Sada možete inicirati preseljenje sa starog naloga.
+ deleted_msg: Uspešno je uklonjen pseudonim. Premeštanje sa tog naloga na ovaj više neće biti moguće.
+ empty: Nemate nijedan pseudonim.
+ hint_html: Ako želite da se preselite sa drugog naloga na ovaj, ovde možete napraviti pseudonim, koji je neophodan pre nego što možete nastaviti sa prebacivanjem pratilaca sa starog naloga na ovaj. Ova radnja sama po sebi je bezopasna i reverzibilna. Preseljenje naloga se inicira sa starog naloga.
+ remove: Odveži pseudonim
+ appearance:
+ advanced_web_interface: Napredno veb okruženje
+ advanced_web_interface_hint: 'Ako želite da iskoristite celu širinu ekrana, napredno veb okruženje vam omogućuje da konfigurišete mnogo različitih kolona da biste videli onoliko informacija u isto vreme koliko želite: početnu stranicu, obaveštenja, združenu vremensku liniju, bilo koji broj lista i heš oznaka.'
+ animations_and_accessibility: Animacije i pristupačnost
+ confirmation_dialogs: Dijalozi potvrde
+ discovery: Otkrivanje
+ localization:
+ body: Mastodon prevode dobrovoljci.
+ guide_link: https://crowdin.com/project/mastodon
+ guide_link_text: Svako može doprineti.
+ sensitive_content: Osetljiv sadržaj
+ toot_layout: Raspored objava
application_mailer:
+ notification_preferences: Promeni preference E-pošte
+ salutation: Poštovani %{name},
settings: 'Promeni podešavanja e-pošte: %{link}'
view: 'Pogledaj:'
+ view_profile: Pogledaj nalog
+ view_status: Pogledaj status
applications:
created: Aplikacija uspešno napravljena
destroyed: Aplikacija uspešno obrisana
+ logout: Odjava
regenerate_token: Rekreiraj pristupni token
token_regenerated: Pristupni token uspešno rekreiran
warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim!
your_token: Vaš pristupni token
auth:
- delete_account: Obriši nalog
- delete_account_html: Ako želite da obrišete Vaš nalog, možete nastaviti ovde. Bićete upitani da potvrdite.
+ apply_for_account: Zatražite nalog
+ change_password: Lozinka
+ confirmations:
+ wrong_email_hint: Ako ta imejl adresa nije ispravna, možete je promeniti u podešavanjima naloga.
+ delete_account: Brisanje naloga
+ delete_account_html: Ako želite da izbrišete vaš nalog, možete nastaviti ovde. Od vas će se tražiti potvrda.
+ description:
+ prefix_invited_by_user: "@%{name} Vas poziva da se pridružite ovom serveru Mastodona!"
+ prefix_sign_up: Pridružite se Mastodonu danas!
+ suffix: Sa nalogom, moći ćete da pratite ljude, objavljujete novosti i razmenjujete poruke sa korisnicima bilo kog Mastodon servera i više!
didnt_get_confirmation: Niste dobili poruku sa uputstvima za potvrdu naloga?
+ dont_have_your_security_key: Nemate sigurnosni ključ?
forgot_password: Zaboravili ste lozinku?
invalid_reset_password_token: Token za resetovanje lozinke je neispravan ili je istekao. Zatražite novi.
+ link_to_otp: Unesite dvofaktorski kod sa svog telefona ili rezervni kod
+ link_to_webauth: Koristite svoj sigurnosni ključ
+ log_in_with: Prijavite se pomoću
login: Prijavi se
logout: Odjava
- migrate_account: Pomeri u drugi nalog
+ migrate_account: Premeštanje u drugi nalog
migrate_account_html: Ako želite da preusmerite ovaj nalog na neki drugi, možete to podesiti ovde.
+ or_log_in_with: Ili se prijavite sa
+ privacy_policy_agreement_html: Pročitao/-la sam i saglasan/-a sam sa politikom privatnosti
+ providers:
+ cas: CAS-om
+ saml: SAML-om
register: Registruj se
+ registration_closed: "%{instance} ne prima nove članove"
resend_confirmation: Pošalji poruku sa uputstvima o potvrdi naloga ponovo
reset_password: Resetuj lozinku
+ rules:
+ accept: Prihvati
+ back: Nazad
+ preamble: Ovo su pravila koja su uspostavili i koja sprovode moderatori servera %{domain}.
+ title: Neka osnovna pravila.
security: Bezbednost
set_new_password: Postavi novu lozinku
+ setup:
+ email_below_hint_html: Ako je imejl adresa ispod neispravna, možete je promeniti ovde i dobiti novi imejl potvrde.
+ email_settings_hint_html: Imejl potvrde je poslat na %{email}. Ako ta imejl adresa nije ispravna, možete je promeniti u podešavanjima naloga.
+ title: Postavljanje
+ sign_in:
+ preamble_html: Prijavite se sa svojim podacima za %{domain}. Ako se Vaš nalog nalazi na drugom serveru, nećete moći da se prijavite ovde.
+ title: Prijavite se na %{domain}
+ sign_up:
+ preamble: Sa nalogom na ovom Mastodon serveru, moći ćete da pratite bilo koga sa mreže, bez obzira na to na kom serveru se njegov/njen nalog nalazi.
+ title: Hajde da Vam namestimo nalog na %{domain}.
+ status:
+ account_status: Status naloga
+ confirming: Čekanje na potvrdu putem imejla.
+ functional: Vaš nalog je potpuno operativan.
+ pending: Vaš zahtev je na čekanju za pregled od strane našeg osoblja. Ovo može potrajati neko vreme. Primićete imejl poruku ukoliko Vam zahtev bude odobren.
+ redirecting_to: Vaš nalog je neaktivan jer preusmerava na %{acct}.
+ view_strikes: Pogledajte prethodne prestupe upisane na Vaše ime
+ too_fast: Formular je podnet prebrzo, pokušajte ponovo.
+ use_security_key: Koristite sigurnosni ključ
authorize_follow:
+ already_following: Već pratite ovaj nalog
+ already_requested: Već ste poslali zahtev za praćenje tom nalogu
error: Nažalost, desila se greška pri traženju udaljenog naloga
follow: Zaprati
follow_request: 'Poslali ste zahtev za praćenjen za:'
following: 'Sjajno! Sada pratite:'
post_follow:
close: Ili možete zatvoriti ovaj prozor.
- return: Vrati se na profil ovog korisnika
+ return: Vrati se na nalog ovog korisnika
web: Idi na veb
title: Zaprati %{acct}
+ challenge:
+ confirm: Nastavi
+ hint_html: "Savet: Nećemo Vas pitati za lozinku ponovo u narednih sat vremena."
+ invalid_password: Neispravna lozinka
+ prompt: Potvrdite lozinku za nastavak
+ crypto:
+ errors:
+ invalid_key: nije validan Ed25519 ili Curve25519 ključ
+ invalid_signature: nije validan Ed25519 potpis
+ date:
+ formats:
+ default: "%d. %b. %Y."
+ with_month_name: "%d. %B %Y."
datetime:
distance_in_words:
+ about_x_hours: "%{count} č."
about_x_months: "%{count}mesec"
about_x_years: "%{count}god"
almost_x_years: "%{count}god"
half_a_minute: Upravo sad
+ less_than_x_minutes: "%{count} min."
less_than_x_seconds: Upravo sad
over_x_years: "%{count}god"
+ x_days: "%{count}d"
+ x_minutes: "%{count} min."
x_months: "%{count}mesec"
+ x_seconds: "%{count} sek."
deletes:
+ challenge_not_passed: Lozinka koju ste uneli nije bila ispravna
confirm_password: Unesite trenutnu lozinku da bismo proverili Vaš identitet
+ confirm_username: Unesite svoje korisničko ime da biste potvrdili proceduru
proceed: Obriši nalog
success_msg: Vaš nalog je uspešno obrisan
+ warning:
+ before: 'Pre nego što nastavite, molimo Vas pažljivo pročitajte sledeće napomene:'
+ caches: Sadržaj koji je keširan na drugim serverima može da ostane netaknut
+ data_removal: Vaše objave i drugi podaci će biti trajno izbrisani
+ email_change_html: Možete promeniti svoju imejl adresu bez brisanja svog naloga
+ email_contact_html: Ako poruka i dalje ne stiže, možete poslati mejl na %{email} za pomoć
+ email_reconfirmation_html: Ukoliko Vam imejl za potvrdu ne stiže, možete ga ponovo zatražiti
+ irreversible: Nećete biti u mogućnosti da vratite ili reaktivirate svoj nalog
+ more_details_html: Za više detalja, pogledajte politiku privatnosti.
+ username_available: Vaše korisničko ime će ponovo postati dostupno
+ username_unavailable: Vaše korisničko ime će ostati nedostupno
+ disputes:
+ strikes:
+ action_taken: Radnja preduzeta
+ appeal: Žalba
+ appeal_approved: Žalba na ovaj prestup je uvažena i prestup više nije validan
+ appeal_rejected: Žalba je odbijena
+ appeal_submitted_at: Žalba je priložena
+ appealed_msg: Vaša žalba je priložena. Bićete obavešteni ukoliko ona bude bila uvažena.
+ appeals:
+ submit: Priloži žalbu
+ approve_appeal: Uvaži žalbu
+ associated_report: Srodna prijava
+ created_at: Datum
+ description_html: Ovo su radnje preduzete protiv Vašeg naloga i upozorenja koja su Vam poslali članovi osoblja %{instance}.
+ recipient: Usmereno prema
+ reject_appeal: Odbij žalbu
+ status: 'Objava #%{id}'
+ status_removed: Objava je već uklonjena iz sistema
+ title: "%{action} od %{date}"
+ title_actions:
+ delete_statuses: Brisanje objava
+ disable: Zamrzavanje naloga
+ mark_statuses_as_sensitive: Označavanje objava kao osetljivih
+ none: Upozorenje
+ sensitive: Označavanje naloga kao osetljivog
+ silence: Ograničenje naloga
+ suspend: Suspenzija naloga
+ your_appeal_approved: Vaša žalba je uvažena
+ your_appeal_pending: Priložili ste žalbu
+ your_appeal_rejected: Vaša žalba je odbijena
+ domain_validator:
+ invalid_domain: nelegitimno ime domena
errors:
- '400': The request you submitted was invalid or malformed.
+ '400': Zahtev koji ste podneli je bio nelegitiman ili u pogrešnom formatu.
'403': Nemate dozvola da vidite ovu stranu.
'404': Strana koju ste tražili ne postoji.
- '406': This page is not available in the requested format.
+ '406': Ova stranica nije dostupna u izabranom formatu.
'410': Strana koju ste tražili više ne postoji.
+ '422':
+ content: Bezbedonosna provera nije uspela. Da ne blokirate kolačiće?
+ title: Bezbedonosna provera nije uspela
'429': Uspored
'500':
content: Izvinjavamo se, nešto je pošlo po zlu sa ove strane.
title: Strana nije ispravna
- '503': The page could not be served due to a temporary server failure.
+ '503': Stranicu nije bilo moguće dostaviti usled privremenog pada servera.
noscript_html: Da biste koristili Mastodont veb aplikaciju, omogućite JavaScript. U suprotnom, probajte neku od originalnih aplikacija za Mastodont za Vašu platformu.
+ existing_username_validator:
+ not_found: nije bilo moguće pronaći lokalnog korisnika sa tim korisničkim imenom
+ not_found_multiple: nije bilo moguće pronaći %{usernames}
exports:
+ archive_takeout:
+ date: Datum
+ download: Preuzmite Vašu arhivu
+ hint_html: Možete zatražiti arhivu vaših objava i otpremljenih medija. Izvezeni podaci će biti u ActivityPub formatu, koji može čitati bilo koji kompatibilan softver. Arhivu možete zatražiti svakih 7 dana.
+ in_progress: Sastavljanje vaše arhive...
+ request: Zatražite svoju arhivu
+ size: Veličina
blocks: Blokirali ste
- mutes: Ućutkali ste
+ bookmarks: Obeleživači
+ csv: CSV
+ domain_blocks: Blokovi domena
+ lists: Liste
+ mutes: Ignorišete
storage: Multimedijalno skladište
+ featured_tags:
+ add_new: Dodaj novu
+ errors:
+ limit: Već ste istakli maksimalan broj heš oznaka
+ hint_html: "Šta su istaknute heš onake? One se prikazuju istaknuto na vašem javnom profilu i omogućuju ljudima da pregledaju vaše javne objave konkretno pod tim heš oznakama. One su sjajan alat za praćenje kreativnih radova ili dugoročnih projekata."
+ filters:
+ contexts:
+ account: Profili
+ home: Vremenska linija početne
+ notifications: Obaveštenja
+ public: Javne vremenske linije
+ thread: Razgovori
+ edit:
+ add_keyword: Dodaj ključnu reč
+ keywords: Ključne reči
+ statuses: Zasebne objave
+ statuses_hint_html: Ovaj filter važi za odabrane zasebne objave bez obzira na to da li sadrže ključne reči navedene ispod. Pregledajte ili uklonite objave iz filtera.
+ title: Izmeni filter
+ errors:
+ deprecated_api_multiple_keywords: Ovi parametri ne mogu biti promenjeni u ovoj aplikaciji zato što se odnose na više od jedne ključne reči. Koristite ažurniju aplikaciju ili veb interfejs.
+ invalid_context: Nijedan ili nevažeći kontekst isporučen
+ index:
+ contexts: Filtrira u %{contexts}
+ delete: Izbriši
+ empty: Nemate filtere.
+ expires_in: Ističe za %{distance}
+ expires_on: Ističe datuma %{date}
+ keywords:
+ few: "%{count} ključne reči"
+ one: "%{count} ključna reč"
+ other: "%{count} ključnih reči"
+ statuses:
+ few: "%{count} objave"
+ one: "%{count} objava"
+ other: "%{count} objava"
+ statuses_long:
+ few: "%{count} zasebne objave sakrivene"
+ one: "%{count} zasebna objava sakrivena"
+ other: "%{count} zasebnih objava sakriveno"
+ title: Filteri
+ new:
+ save: Sačuvaj novi filter
+ title: Dodaj novi filter
+ statuses:
+ back_to_filter: Nazad na filter
+ batch:
+ remove: Ukloni iz filtera
+ index:
+ hint: Ovaj filter važi za odabrane zasebne objave bez obzira na druge kriterijume. Možete da dodate više objava u ovaj filter putem veb interfejsa.
+ title: Filtrirane objave
generic:
+ all: Svi
+ all_items_on_page_selected_html:
+ few: Sve %{count} stavke sa ove stranice su izabrane.
+ one: "%{count} stavka sa ove stranice je izabrana."
+ other: Svih %{count} stavki sa ove stranice je izabrano.
+ all_matching_items_selected_html:
+ few: Sve %{count} stavke koje se poklapaju sa Vašom pretragom su izabrane.
+ one: "%{count} stavka koja se poklapa sa Vašom pretragom je izabrana."
+ other: Svih %{count} stavki koje se poklapaju sa Vašom pretragom su izabrane.
changes_saved_msg: Izmene uspešno sačuvane!
- save_changes: Snimi izmene
+ copy: Kopiraj
+ delete: Izbriši
+ deselect: Poništi sve izbore
+ none: Nijedna
+ order_by: Sortiraj prema
+ save_changes: Sačuvaj promene
+ select_all_matching_items:
+ few: Odaberite sve %{count} stavke koje se poklapaju sa Vašom pretragom.
+ one: Odaberite %{count} stavku koja se poklapa sa Vašom pretragom.
+ other: Odaberite svih %{count} stavki koje se poklapaju sa Vašom pretragom.
+ today: danas
validation_errors:
few: Nešto nije baš kako treba! Pregledajte %{count} greške ispod
one: Nešto nije baš kako treba! Pregledajte greške ispod
other: Nešto nije baš kako treba! Pregledajte %{count} grešaka ispod
imports:
+ errors:
+ invalid_csv_file: 'Neispravan CSV fajl. Greška: %{error}'
+ over_rows_processing_limit: sadrži više od %{count} redova
+ modes:
+ merge: Stapanje
+ merge_long: Zadržite postojeće zapise i dodajte nove
+ overwrite: Zameni
+ overwrite_long: Zameni trenutne zapise novima
preface: Možete uvesti podatke koje ste izvezli sa druge instance, kao što su liste ljudi koje ste pratili ili blokirali.
success: Vaši podaci su uspešno otpremljeni i biće obrađeni uskoro
types:
blocking: Lista blokiranja
+ bookmarks: Obeleživači
+ domain_blocking: Lista blokiranih domena
following: Lista pratilaca
muting: Lista ućutkanih
upload: Otpremi
@@ -242,10 +1269,11 @@ sr-Latn:
'21600': 6 sati
'3600': 1 sad
'43200': 12 sati
- '604800': 1 week
+ '604800': 1 nedelja
'86400': 1 dan
expires_in_prompt: Nikad
generate: Generiši
+ invited_by: 'Pozvao Vas je:'
max_uses:
few: "%{count} korišćenja"
one: 1 korišćenje
@@ -255,100 +1283,460 @@ sr-Latn:
table:
expires_at: Ističe
uses: Korišćenja
- title: Pozovi ljude
+ title: Pozovite ljude
+ lists:
+ errors:
+ limit: Dostigli ste maksimalni broj listâ
+ login_activities:
+ authentication_methods:
+ otp: aplikacija za dvofaktorsku autentifikaciju
+ password: lozinka
+ sign_in_token: imejl sigurnosni kod
+ webauthn: sigurnosni ključevi
+ description_html: Ukoliko primetite aktivnost koju ne prepoznajete, razmislite o tome da promenite svoju lozinku i uključite dvofaktorsku autentifikaciju.
+ empty: Istorija autentifikacije nije dostupna
+ failed_sign_in_html: Neuspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser})
+ successful_sign_in_html: Uspešan pokušaj prijavljivanja putem %{method} sa %{ip} (%{browser})
+ title: Istorija autentifikacije
media_attachments:
validations:
images_and_video: Ne može da se prikači video na status koji već ima slike
+ not_ready: Ne mogu se priložiti fajlovi koji još uvek nisu obrađeni. Pokušajte ponovo za koji trenutak!
too_many: Ne može se prikačiti više od 4 fajla
migrations:
acct: korisnik@domen novog naloga
+ cancel: Otkaži preusmerenje
+ cancel_explanation: Otkazivanje preusmerenja će ponovo aktivirati Vaš sadašnji nalog, ali neće vratiti pratioce koji su premešteni na drugi nalog.
+ cancelled_msg: Uspešno je otkazano preusmerenje.
+ errors:
+ already_moved: već ste se preselili na isti nalog
+ missing_also_known_as: nije pseudonim ovog naloga
+ move_to_self: ne možete se preseliti na sadašnji nalog
+ not_found: nije bilo moguće pronaći nalog
+ on_cooldown: Pod ograničenjem ste
+ followers_count: Pratioci u trenutku premeštaja
+ incoming_migrations: Premeštanje iz drugog naloga
+ incoming_migrations_html: Da biste prešli sa drugog naloga na ovaj, prvo morate kreirate pseudonim naloga.
+ moved_msg: Vaš nalog sada preusmerava na %{acct} i Vaši pratioci se trenutno prebacuju.
+ not_redirecting: Vaš nalog trenutno ne preusmerava ni na jedan drugi nalog.
+ on_cooldown: Nedavno ste se preselili na novi nalog. Ova funkcija će Vam ponovo postati dostupna za %{count} dana.
+ past_migrations: Prethodne selidbe
+ proceed_with_move: Prebacite pratioce
+ redirected_msg: Vaš nalog sada preusmerava na %{acct}.
+ redirecting_to: Vaš nalog preusmerava na %{acct}.
+ set_redirect: Postavi preusmerenje
+ warning:
+ backreference_required: Novi nalog prvo mora biti konfigurisan tako da referiše na ovaj nalog
+ before: 'Pre nego što nastavite, molimo Vas pažljivo pročitajte sledeće napomene:'
+ cooldown: Nakon preseljenja potrebno je da prođe određeno vreme pre nego što ćete ponovo moći da se preselite
+ disabled_account: Vaš trenutni nalog više neće biti upotrebljiv. Međutim, imaćete pristup izvozu podataka kao i reaktivaciji.
+ followers: Ova radnja će premestiti sve pratioce sa trenutnog naloga na novi nalog
+ only_redirect_html: Umesto preseljenja, možete samo dodati preusmeravajući link na svoj profil..
+ other_data: Ostali podaci neće biti automatski prebačeni
+ redirect: Profil Vašeg sadašnjeg naloga će biti ažuriran sa obaveštenjem o preusmerenju i biće isključen iz pretrage
moderation:
title: Moderacija
+ move_handler:
+ carry_blocks_over_text: Ovaj korisnik se preselio sa naloga %{acct}, koji ste blokirali.
+ carry_mutes_over_text: Ovaj korisnik se preselio sa naloga %{acct}, koji ste utišali.
+ copy_account_note_text: 'Ovaj korisnik se preselio sa naloga %{acct}, o kome ste zapisali sledeće beleške:'
+ navigation:
+ toggle_menu: Prikaži/sakrij meni
notification_mailer:
+ admin:
+ report:
+ subject: "%{name} je podneo/-la prijavu"
+ sign_up:
+ subject: "%{name} se registrovao/-la"
favourite:
body: "%{name} je postavio kao omiljen Vaš status:"
subject: "%{name} je postavio kao omiljen Vaš status"
+ title: Novi omiljeni
follow:
body: "%{name} Vas je zapratio!"
subject: "%{name} Vas je zapratio"
+ title: Novi pratioc
follow_request:
+ action: Upravljajte zahtevima za praćenje
body: "%{name} je zatražio da Vas zaprati"
subject: 'Pratioci na čekanju: %{name}'
+ title: Novi zahtev za praćenje
mention:
+ action: Odgovori
body: "%{name} Vas je pomenuo u:"
subject: "%{name} Vas je pomenuo"
+ title: Novo spominjanje
+ poll:
+ subject: Anketa korisnika %{name} se završila
reblog:
- body: "%{name} Vam je podržao(la) status:"
- subject: "%{name} je podržao(la) Vaš status"
+ body: "%{name} Vam je podržao/la status:"
+ subject: "%{name} je podržao/la Vaš status"
+ title: Nova podrška
+ status:
+ subject: "%{name} je upravo postavio/-la objavu"
+ update:
+ subject: "%{name} je izmenio/-la objavu"
+ notifications:
+ email_events: Događaji za obaveštenja e-poštom
+ email_events_hint: 'Izaberite dešavanja za koja želite da primate obaveštenja:'
+ other_settings: Ostala podešavanja obaveštenja
+ number:
+ human:
+ decimal_units:
+ format: "%n %u"
+ units:
+ billion: mlrd.
+ million: mil.
+ quadrillion: tril.
+ thousand: hilj.
+ trillion: bil.
+ otp_authentication:
+ code_hint: Ukucajte kod generisan u Vašoj aplikaciji za autentifikaciju da biste potvrdili
+ description_html: Ako uključite dvofaktorsku autentifikaciju putem aplikacije za autentifikaciju, moraćete da budete pri telefonu prilikom prijavljivanja da biste imali pristup generisanim kodovima za prijavu.
+ enable: Omogući
+ instructions_html: "Skenirajte ovaj QR kod pomoću Google autentifikatora ili slične aplikacije na svom telefonu. Od sada pa ubuduće, ta aplikacija će generisati pristupne kodove koje ćete morati da unesete prilikom prijavljivanja."
+ manual_instructions: 'Ako ne možete da skenirate QR kod i morate da ga unesete ručno, evo njegove tekstualne šifre:'
+ setup: Instalacija
+ wrong_code: Uneseni kod je bio neispravan! Da li su vreme servera i vreme uređaja ispravni?
pagination:
- next: Sledeći
+ newer: Novije
+ next: Sledeće
+ older: Starije
prev: Prethodni
+ truncate: "…"
+ polls:
+ errors:
+ already_voted: Već ste glasali u ovoj anketi
+ duplicate_options: sadrži duplikate
+ duration_too_long: previše je daleko u budućnosti
+ duration_too_short: previše je skoro
+ expired: Anketa je već završena
+ invalid_choice: Izabrana opcija ne postoji
+ over_character_limit: ne može biti duže od po %{max} karaktera
+ too_few_options: mora imati više od jedne opcije
+ too_many_options: ne može da sadrži više od %{max} opcija
+ preferences:
+ other: Ostalo
+ posting_defaults: Podrazumevana podešavanja objavljivanja
+ public_timelines: Javne vremenske linije
+ privacy_policy:
+ title: Politika privatnosti
+ reactions:
+ errors:
+ limit_reached: Dostignuto je ograničenje različitih reakcija
+ unrecognized_emoji: nije prepoznat emodži
+ relationships:
+ activity: Aktivnost naloga
+ confirm_follow_selected_followers: Da li ste sigurni da želite da pratite izabrane pratioce?
+ confirm_remove_selected_followers: Da li ste sigurni da želite da uklonite izabrane pratioce?
+ confirm_remove_selected_follows: Da li ste sigurni da želite da uklonite izabrana praćenja?
+ dormant: Neaktivan
+ follow_failure: Nije moguće pratiti neke od izabranih naloga.
+ follow_selected_followers: Prati izabrane pratioce
+ followers: Pratioci
+ following: Praćenja
+ invited: Pozvan
+ last_active: Poslednji put aktivan
+ most_recent: Najnoviji
+ moved: Premešten
+ mutual: Zajednički
+ primary: Primarni
+ relationship: Odnos
+ remove_selected_domains: Ukloni sve pratioce sa izabranih domena
+ remove_selected_followers: Ukloni izabrane pratioce
+ remove_selected_follows: Otprati izabrane korisnike
+ status: Status naloga
remote_follow:
missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog
+ reports:
+ errors:
+ invalid_rules: ne referiše na legitimna pravila
+ rss:
+ content_warning: 'Upozorenje o sadržaju:'
+ descriptions:
+ account: Javne objave sa @%{acct}
+ tag: 'Javne objave označene sa #%{hashtag}'
+ scheduled_statuses:
+ over_daily_limit: Prekoračili ste granicu od %{limit} planiranih objava za danas
+ over_total_limit: Prekoračili ste granicu od %{limit} planiranih objava
+ too_soon: Planirani datum mora biti u budućnosti
sessions:
activity: Poslednja aktivnost
browser: Veb čitač
browsers:
- chrome: Hrom
+ alipay: Alipej
+ blackberry: Blekberi
+ chrome: Chrome
+ edge: Majkrosoft Edž
+ electron: Elektron
+ firefox: Fajerfoks
generic: Nepoznati veb čitač
+ huawei_browser: Huawei pregledač
+ ie: Internet Eksplorer
+ micro_messenger: MajkroMesendžer
+ nokia: Nokija S40 Ovi Pretraživač
+ opera: Opera
+ otter: Oter
+ phantom_js: FantomDžejEs
+ qq: KjuKju Pretraživač
+ safari: Safari
+ uc_browser: UC Browser
+ unknown_browser: Nepoznati pregledač
+ weibo: Veibo
current_session: Trenutna sesija
description: "%{browser} sa %{platform}"
- explanation: Ovo su trenutno prijavljeni veb čitači na Vaš Mastodont nalog.
+ explanation: Ovo su veb pretraživači koji su trenutno prijavljeni na Vaš Mastodon nalog.
+ ip: IP
platforms:
- adobe_air: Adobe Air-a
+ adobe_air: Adob Er-a
android: Androida
+ blackberry: Blekberi
+ chrome_os: ChromeOS
firefox_os: Fajerfoks OS-a
+ ios: iOS-a
+ kai_os: KaiOS
linux: Linuksa
- mac: Mac-a
- other: nepoznate platforme
- windows: Vindouza
- windows_mobile: Vindouz mobilnog
- windows_phone: Vindouz telefona
+ mac: Meka
+ unknown_platform: Nepoznata platforma
+ windows: Windows
+ windows_mobile: Windows Mobile
+ windows_phone: Windows Phone
revoke: Opozovi
revoke_success: Sesija uspešno opozvana
title: Sesije
+ view_authentication_history: Pogledajte istoriju autentifikacije vašeg naloga
settings:
+ account: Nalog
+ account_settings: Podešavanja naloga
+ aliases: Pseudonimi naloga
+ appearance: Izgled
authorized_apps: Autorizovane aplikacije
- back: Nazad na Mastodonta
+ back: Nazad na Mastodon
delete: Brisanje naloga
development: Razvoj
- edit_profile: Izmena profila
+ edit_profile: Uređivanje profila
export: Izvoz podataka
+ featured_tags: Istaknute heš oznake
import: Uvoz
+ import_and_export: Uvoz i izvoz
migrate: Prebacivanje naloga
notifications: Obaveštenja
preferences: Podešavanja
+ profile: Nalog
+ relationships: Praćenja i pratioci
+ statuses_cleanup: Automatsko brisanje objava
+ strikes: Moderacijski prestupi
two_factor_authentication: Dvofaktorska identifikacija
+ webauthn_authentication: Sigurnosni ključevi
statuses:
+ attached:
+ audio:
+ few: "%{count} audio zapisa"
+ one: "%{count} audio zapis"
+ other: "%{count} audio zapisa"
+ description: 'U prilogu: %{attached}'
+ image:
+ few: "%{count} slika"
+ one: "%{count} sliku"
+ other: "%{count} slika"
+ video:
+ few: "%{count} video zapisa"
+ one: "%{count} video zapis"
+ other: "%{count} video zapisa"
+ boosted_from_html: Podržano od %{acct_link}
+ content_warning: 'Upozorenje na sadržaj: %{warning}'
+ default_language: Isto kao jezik okruženja
+ disallowed_hashtags:
+ few: 'sadrži zabranjene heštegove: %{tags}'
+ one: 'sadrži zabranjeni hešteg: %{tags}'
+ other: 'sadrži zabranjene heštegove: %{tags}'
+ edited_at_html: Izmenjeno %{date}
+ errors:
+ in_reply_not_found: Objava na koju pokušavate da odgovorite naizgled ne postoji.
open_in_web: Otvori u vebu
over_character_limit: ograničenje od %{max} karaktera prekoračeno
pin_errors:
- limit: Već imate prikačen najveći broj tutova
- ownership: Tuđi tutovi ne mogu da se prikače
+ direct: Objave koje su vidljive samo pomenutim korisnicima ne mogu biti prikačene
+ limit: Već ste zakačili maksimalan broj objava
+ ownership: Tuđa objava se ne može zakačiti
reblog: Podrška ne može da se prikači
+ poll:
+ total_people:
+ few: "%{count} osobe"
+ one: "%{count} osoba"
+ other: "%{count} ljudi"
+ total_votes:
+ few: "%{count} glasa"
+ one: "%{count} glas"
+ other: "%{count} glasova"
+ vote: Glasajte
show_more: Prikaži još
+ show_newer: Nikad ne prikazuj
+ show_older: Prikaži starije
+ show_thread: Prikaži niz
+ sign_in_to_participate: Prijavite se da učestvujete u razgovoru
+ title: "%{name}: „%{quote}”"
visibilities:
+ direct: Direktno
private: Samo pratioci
- private_long: Samo prikaži pratiocima
+ private_long: Prikaži samo pratiocima
public: Javno
public_long: Svako može da vidi
unlisted: Neizlistano
- unlisted_long: Svako može da vidi, ali nije izlistano na javnim lajnama
+ unlisted_long: Svako može da vidi, ali nije izlistano na javnim vremenskim linijama
+ statuses_cleanup:
+ enabled: Automatski izbriši stare objave
+ enabled_hint: Automatski briše vaše objave kada dostignu određeni starosni prag, osim ako se ne podudaraju sa jednim od izuzetaka u nastavku
+ exceptions: Izuzeci
+ explanation: Pošto je brisanje objava skupa operacija, ovo se radi polako tokom vremena kada server inače nije zauzet. Iz tog razloga, vaše objave mogu biti izbrisane neko vreme nakon što dostignu starosni prag.
+ ignore_favs: Ignoriši omiljene
+ ignore_reblogs: Ignoriši podržavanja
+ interaction_exceptions: Izuzeci zasnovani na interakcijama
+ interaction_exceptions_explanation: Imajte na umu da ne postoji garancija da će objave biti izbrisane ako broj označavanja kao omiljenih ili broj podržavanja padne ispod praga nakon što ga premaše.
+ keep_direct: Zadrži direktne poruke
+ keep_direct_hint: Ne briše nijednu od vaših direktnih poruka
+ keep_media: Zadrži objave sa medijskim prilozima
+ keep_media_hint: Ne briše nijednu od vaših objava koje imaju medijske priloge
+ keep_pinned: Zadrži zakačene objave
+ keep_pinned_hint: Ne briše nijednu od vaših zakačenih objava
+ keep_polls: Zadrži ankete
+ keep_polls_hint: Ne briše nijednu od vaših anketa
+ keep_self_bookmark: Zadrži objave koje ste dodali u obeleživače
+ keep_self_bookmark_hint: Ne briše vaše sopstvene objave ako ste ih dodlai u obeleživače
+ keep_self_fav: Zadrži omiljene objave
+ keep_self_fav_hint: Ne briše vaše sopstvene objave ako ste ih označili kao omiljene
+ min_age:
+ '1209600': 2 sedmice
+ '15778476': 6 meseci
+ '2629746': 1 mesec
+ '31556952': 1 godina
+ '5259492': 2 meseca
+ '604800': 1 sedmica
+ '63113904': 2 godine
+ '7889238': 3 meseca
+ min_age_label: Starosni prag
+ min_favs: Zadrži objave označene kao omiljene najmanje
+ min_favs_hint: Ne briše nijednu vašu objavu koja je dobila najmanje ovaj broj omiljenih. Ostavite prazno za brisanje objava bez obzira na njihov broj omiljenih
+ min_reblogs: Zadrži objave podržane barem
+ min_reblogs_hint: Ne briše nijednu vašu objavu koja je bila podržana najmanje ovoliko puta. Ostavite prazno za brisanje objava bez obzira na njihov broj podržavanja
stream_entries:
- pinned: Prikačeni tut
+ pinned: Zakačena objava
reblogged: podržano
sensitive_content: Osetljiv sadržaj
+ strikes:
+ errors:
+ too_late: Istekao je rok za podnošenje žalbe na zabeležen prestup
+ tags:
+ does_not_match_previous_name: ne poklapa se sa prethodnim imenom
themes:
- default: Mastodont
+ contrast: Veliki kontrast
+ default: Mastodon
+ mastodon-light: Mastodon (svetlo)
+ time:
+ formats:
+ default: "%d %b %Y, %H:%M"
+ month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
+ add: Dodaj
disable: Isključi
+ disabled_success: Dvofaktorska autentifikacija je uspešno onemogućena
+ edit: Izmeni
enabled: Dvofaktorska identifikacija je uključena
enabled_success: Dvofaktorska identifikacija je uspešno uključena
generate_recovery_codes: Generiši kodove za oporavak
- lost_recovery_codes: Kodovi za oporavak Vam omogućavaju da povratite pristup nalogu ako izgubite telefon. Ako izgubite kodove za oporavak, možete ih regenerisati ovde. Od tog trenutka, stari kodovi za oporavak više ne važe.
+ lost_recovery_codes: Kodovi za oporavak Vam omogućavaju da povratite pristup nalogu ako izgubite telefon. Ako izgubite kodove za oporavak, možete ih re-generisati ovde. Od tog trenutka, stari kodovi za oporavak više ne važe.
+ methods: Metode dvofaktorske autentifikacije
+ otp: Aplikacija za autentifikaciju
recovery_codes: Napravite rezervu kodova za oporavak
- recovery_codes_regenerated: Kodovi za oporavak uspešno regenerisani
+ recovery_codes_regenerated: Kodovi za oporavak uspešno re-generisani
recovery_instructions_html: Ako ikada izgubite pristup telefonu, možete iskoristiti kodove za oporavak date ispod da povratite pristup nalogu. Držite kodove za oporavak na sigurnom. Na primer, odštampajte ih i čuvajte ih sa ostalim važnim dokumentima.
+ webauthn: Sigurnosni ključevi
+ user_mailer:
+ appeal_approved:
+ action: Idite na svoj nalog
+ explanation: Žalba podneta datuma %{appeal_date} na upisan prestup na Vaše ime datuma %{strike_date} je uvažena. Vaš nalog je ponovo u povoljnom položaju.
+ subject: Vaša žalba podneta %{date} je uvažena
+ title: Žalba uvažena
+ appeal_rejected:
+ explanation: Žalba podneta datuma %{appeal_date} na upisan prestup na Vaše ime datuma %{strike_date} je odbijena.
+ subject: Vaša žalba podneta %{date} je odbijena
+ title: Žalba odbijena
+ backup_ready:
+ explanation: Tražili ste potpunu rezervnu kopiju vašeg Mastodon računa. Spremna za preuzimanje!
+ subject: Vaša arhiva je spremna za preuzimanje
+ title: Izvoz arhive
+ suspicious_sign_in:
+ change_password: promenite svoju lozinku
+ details: 'Evo detalja o prijavi:'
+ explanation: Primetili smo prijavu na Vaš nalog sa nepoznate IP adrese.
+ further_actions_html: Ukoliko to niste bili Vi, preporučujemo da odmah %{action} i uključite dvofaktorsku autentifikaciju da biste održali bezbednost svog naloga.
+ subject: Vašem nalogu je pristupljeno sa nepozate IP adrese
+ title: Novo prijavljivanje
+ warning:
+ appeal: Priložite žalbu
+ appeal_description: Ukoliko verujete da je u pitanju greška, možete priložiti žalbu osoblju %{instance}.
+ categories:
+ spam: Neželjena pošta
+ violation: Sadržaj krši sledeća pravila zajednice
+ explanation:
+ delete_statuses: Za neke od Vaših objava je ustanovljeno da krše jedno ili više pravila zajednice i usled toga su uklonjene od strane moderatora %{instance}.
+ disable: Više ne možete da koristite svoj nalog, ali Vaš profil i drugi podaci ostaju netaknuti. Možete da zatražite rezervnu kopiju svojih podataka, promenite podešavanja naloga ili obrišete svoj nalog.
+ mark_statuses_as_sensitive: Neke od Vaših objava su označene kao osetljive od strane moderatora %{instance}. Ovo znači da će ljudi morati da kliknu na multimedije u objavama pre nego što mogu da ih vide. Ubuduće možete sami da označite svoju multimediju kao osetljivu prilikom sastavljanja objave.
+ sensitive: Od sada će svi Vaši otpremljeni multimedijalni fajlovi biti označeni kao osetljivi i sakriveni iza tastera upozorenja.
+ silence: I dalje možete koristiti svoj nalog ali samo ljudi koji Vas već prate će videti Vaše objave na ovom serveru, i možda ćete biti isključeni iz raznih mehanizama otkrivanja. Međutim, drugi ljudi i dalje mogu ručno da Vas zaprate.
+ suspend: Više ne možete da koristite svoj nalog, i Vaš profil i ostali podaci Vam više nisu dostupni. I dalje možete da se prijavite da biste zatražili rezervnu kopiju svojih podataka sve dok se Vaši podaci trajno ne izbrišu za oko 30 dana, s tim što ćemo zadržati neke osnovne podatke da bismo Vas sprečili u eventualnom zaobilaženju suspenzije.
+ reason: 'Obrazloženje:'
+ statuses: 'Citirane objave:'
+ subject:
+ delete_statuses: Vaše objave sa %{acct} su izbrisane
+ disable: Vaš nalog %{acct} je zamrznut
+ mark_statuses_as_sensitive: Vaše objave sa %{acct} su obeležene kao osetljive
+ none: Upozorenje za %{acct}
+ sensitive: Vaše objave sa %{acct} će ubuduće biti označene kao osetljive
+ silence: Vaš nalog %{acct} je ograničen
+ suspend: Vaš nalog %{acct} je suspendovan
+ title:
+ delete_statuses: Objave su obrisane
+ disable: Nalog zamrznut
+ mark_statuses_as_sensitive: Objave su označene kao osetljive
+ none: Upozorenje
+ sensitive: Nalog je označen kao osetljiv
+ silence: Nalog ograničen
+ suspend: Nalog suspendovan
+ welcome:
+ edit_profile_action: Podesi nalog
+ edit_profile_step: Možete prilagoditi svoj profil tako što ćete postaviti profilnu sliku, promeniti ime za prikaz i tako dalje. Možete dati saglasnost da pregledate nove pratioce pre nego što im dozvolite da Vas zaprate.
+ explanation: Evo nekoliko saveta za početak
+ final_action: Počnite objavljivati
+ final_step: 'Počnite da objavljujete! Čak i bez pratilaca, Vaše javne objave su vidljive drugim ljudima, na primer na lokalnoj vremenskoj liniji ili u heš oznakama. Možda želite da se predstavite sa heš oznakom #introductions ili #predstavljanja.'
+ full_handle: Vaš pun nadimak
+ full_handle_hint: Ovo biste rekli svojim prijateljima kako bi vam oni poslali poruku, ili zapratili sa druge instance.
+ subject: Dobrodošli na Mastodon
+ title: Dobrodošli, %{name}!
users:
+ follow_limit_reached: Ne možete pratiti više od %{limit} ljudi
invalid_otp_token: Neispravni dvofaktorski kod
- signed_in_as: 'Prijavljen kao:'
+ otp_lost_help_html: Ako izgubite pristup za oba, možete stupiti u kontakt sa %{email}
+ seamless_external_login: Prijavljeni ste putem spoljašnje usluge, tako da lozinka i podešavanja E-pošte nisu dostupni.
+ signed_in_as: 'Prijavljen/a kao:'
+ verification:
+ explanation_html: 'Možete izvršiti proveru da ste Vi vlasnik veza na Vašem nalogu. Da bi to radilo, povezani veb sajt mora da sadrži vezu nazad ka Vašem Mastodon nalogu. Veza nazad mora da ima rel="me" atribut. Tekstuelni sadržaj veze nije bitan. Evo primera:'
+ verification: Provera
+ webauthn_credentials:
+ add: Dodajte novi sigurnosni ključ
+ create:
+ error: Iskrsao je problem prilikom dodavanja Vašeg sigurnosnog ključa. Molimo Vas pokušajte ponovo.
+ success: Vaš sigurnosni ključ je uspešno dodat.
+ delete: Izbriši
+ delete_confirmation: Da li ste sigurni da želite da izbrišete ovaj sigurnosni ključ?
+ description_html: Ako uključite autentifikaciju sigurnosnim ključem, moraćete da koristite jedan od svojih sigurnosnih ključeva prilikom prijavljivanja.
+ destroy:
+ error: Iskrsao je problem prilikom brisanja Vašeg sigurnosnog ključa. Molimo Vas pokušajte ponovo.
+ success: Vaš sigurnosni ključ je uspešno obrisan.
+ invalid_credential: Neispravan sigurnosni ključ
+ nickname_hint: Unesite nadimak svog novog sigurnosnog ključa
+ not_enabled: Još uvek niste omogućili WebAuthn
+ not_supported: Ovaj pretraživač ne podržava sigurnosne ključeve
+ otp_required: Da biste koristili sigurnosne ključeve, molimo Vas prvo uključite dvofaktorsku autentifikaciju.
+ registered_on: Registrovan/-a %{date}
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 8a56fa7f30..9fc831f202 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -1,23 +1,24 @@
---
sr:
about:
- about_mastodon_html: Мастодон је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта.
+ about_mastodon_html: 'Друштвена мрежа будућности: без реклама, без корпоративног праћења, етички дизајн, и децентрализација! Поседујте своје податке са Мастодоном!'
contact_missing: Није постављено
contact_unavailable: Није доступно
hosted_on: Мастодон хостован на %{domain}
- title: О
+ title: О инстанци
accounts:
- follow: Прати
+ follow: Запрати
followers:
- few: Пратиоци
- one: Пратиоц
- other: Пратиоци
+ few: Пратиоца
+ one: Пратилац
+ other: Пратилаца
following: Пратим
- last_active: последњи пут активни
+ instance_actor_flash: Овај налог је виртуелни актер који не представља ниједног корисника лично, већ сâм сервер. Користи се у сврху федерације и не треба га суспендовати.
+ last_active: најскорија активност
link_verified_on: Власништво над овом везом је проверено %{date}
- nothing_here: Овде нема ништа!
+ nothing_here: Овде нема ничега!
pin_errors:
- following: Морате пратити ову особу ако хоћете да потврдите
+ following: Морате пратити особу коју желите да препоручите
posts:
few: Објаве
one: Објава
@@ -34,16 +35,17 @@ sr:
accounts:
add_email_domain_block: Блокирај домен е-поште
approve: Одобри
+ approved_msg: Захтев за регистрацију корисника %{username} је успешно одобрен
are_you_sure: Да ли сте сигурни?
avatar: Аватар
by_domain: Домен
change_email:
changed_msg: Е-пошта налога успешно промењена!
- current_email: Тренутна е-пошта
- label: Промените е-пошту
- new_email: Нова e-пошта
- submit: Промените e-пошту
- title: Промените e-пошту за %{username}
+ current_email: Тренутна адреса е-поште
+ label: Промените адресу е-поште
+ new_email: Нова адреса e-поште
+ submit: Промените адресу e-поште
+ title: Промените адресу e-поште за %{username}
change_role:
changed_msg: Улога успешно промењена!
label: Промени улогу
@@ -51,21 +53,25 @@ sr:
title: Промени улогу за %{username}
confirm: Потврди
confirmed: Потврђено
- confirming: Потврдување
+ confirming: Потврђивање
custom: Произвољно
delete: Обриши податке
deleted: Избрисано
demote: Ражалуј
- disable: Искључи
+ destroyed_msg: Подаци корисника %{username} су неповратно стављени у ред за брисање
+ disable: Замрзни
+ disable_sign_in_token_auth: Онемогући имејл аутентификацију
disable_two_factor_authentication: Искључи 2FA
- disabled: Искључена
- display_name: Приказано име
+ disabled: Замрзнут
+ display_name: Име за приказ
domain: Домен
edit: Измени
email: Е-пошта
email_status: Статус е-поште
enable: Омогући
- enabled: Укључено
+ enable_sign_in_token_auth: Омогући имејл аутентификацију
+ enabled: Омогућен
+ enabled_msg: Успешно одлеђен налог корисника %{username}
followers: Пратиоци
follows: Праћени
header: Заглавље
@@ -73,18 +79,21 @@ sr:
invite_request_text: Разлози за придруживање
invited_by: Позван од стране
ip: IP
- joined: Придружио се
+ joined: Придружио/-ла се
location:
all: Све
- local: Локалне
- remote: Удаљене
+ local: Локални
+ remote: Удаљени
title: Локација
login_status: Статус пријаве
media_attachments: Мултимедијални прилози
memorialize: Пребаци у in memoriam
+ memorialized: Подигнут споменик
+ memorialized_msg: "%{username} је успешно претворен у меморијални налог"
moderation:
active: Активан
all: Сви
+ disabled: Искључен
pending: На чекању
silenced: Ограничено
suspended: Суспендовани
@@ -92,79 +101,202 @@ sr:
moderation_notes: Модераторске белешке
most_recent_activity: Најскорија активност
most_recent_ip: Најскорија IP адреса
+ no_account_selected: Ниједан налог није промењен јер ниједан није изабран
no_limits_imposed: Нема ограничења
no_role_assigned: Ниједна улога није додељена
not_subscribed: Није претплаћен
pending: Чека на преглед
- perform_full_suspension: Искључи
+ perform_full_suspension: Суспендуј
+ previous_strikes: Претходни прекршаји
+ previous_strikes_description_html:
+ few: Овај налог има %{count} прекршаја.
+ one: Овај налог има један прекршај.
+ other: Овај налог има %{count} прекршаја.
promote: Унапреди
protocol: Протокол
public: Јавно
push_subscription_expires: PuSH претплата истиче
- redownload: Освежи налог
- reject: Одбаци
+ redownload: Освежи профил
+ redownloaded_msg: Успешно освежен профил корисника %{username} из извора
+ reject: Одбиј
+ rejected_msg: Захтев за регистрацију корисника %{username} је успешно одбијен
+ remote_suspension_irreversible: Подаци овог налога су неповратно избрисани.
+ remote_suspension_reversible_hint_html: Налог је суспендован са свог сервера и његови подаци ће бити избрисани датума %{date}. До тада, удаљени сервер може да врати овај налог без икаквих промена. Уколико желите да одмах обришете све податке налога, можете то учинити испод.
remove_avatar: Уклони аватар
remove_header: Одстрани заглавље
removed_avatar_msg: Слика аватара корисника %{username} је успешно уклоњена
+ removed_header_msg: Успешно обрисана слика заглавља корисника %{username}
resend_confirmation:
- already_confirmed: Овој корисник е веќе потврден
- send: Препрати го е-мајлот за потврда
- success: Е-пошта за потврда успешно испратена!
+ already_confirmed: Овај корисник је већ потврђен
+ send: Поново пошаљи имејл потврду
+ success: Имејл за потврду је успешно послат!
reset: Ресетуј
reset_password: Ресетуј лозинку
resubscribe: Поново се претплати
role: Улога
search: Претрага
+ search_same_email_domain: Остали корисници са истим доменом е-поште
+ search_same_ip: Остали корисници са истом IP адресом
+ security: Безбедност
security_measures:
only_password: Само лозинка
+ password_and_2fa: Лозинка и двофакторска аутентификација
+ sensitive: Означи као осетљив
sensitized: Означено као осетљиво
shared_inbox_url: Адреса дељеног сандучета
show:
- created_reports: Направљени извештаји
+ created_reports: Поднете пријаве
targeted_reports: Пријаве од стране других
silence: Ућуткај
silenced: Ућуткан
- statuses: Статуси
+ statuses: Објаве
+ strikes: Претходни преступи
subscribe: Претплати се
suspend: Суспендуј
suspended: Суспендовани
+ suspension_irreversible: Подаци овог налога су неповратно избрисани. Можете одсуспендовати овај налог чиме ће он постати употребљив, али се подаци претходно садржани на налогу неће вратити.
+ suspension_reversible_hint_html: Налог је суспендован и његови подаци ће бити избрисани датума %{date}. До тада, овај налог може бити враћен без икаквих промена. Уколико желите да одмах обришете све податке налога, можете то учинити испод.
title: Налози
unblock_email: Одблокирај адресу е-поште
- unconfirmed_email: Непотврђена е-пошта
+ unblocked_email_msg: Успешно одблокирана имејл адреса корисника %{username}
+ unconfirmed_email: Непотврђена адреса е-поште
+ undo_sensitized: Уклони ознаку „осетљив”
undo_silenced: Укини ћутање
undo_suspension: Укини суспензију
+ unsilenced_msg: Успешно поништено ограничење налога %{username}
unsubscribe: Укини претплату
+ unsuspended_msg: Успешно поништена суспензија налога %{username}
username: Корисничко име
+ view_domain: Прочитај опис домена
warn: Упозори
web: Веб
+ whitelisted: Дозвољена федерација
action_logs:
action_types:
+ approve_appeal: Уважи жалбу
approve_user: Одобри корисника
+ assigned_to_self_report: Додели пријаву
change_email_user: Промени e-адресу корисника
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: Избриши пост
+ destroy_unavailable_domain: Обриши недоступан домен
+ 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: Унапреди корисника
+ reject_appeal: Одбиј жалбу
reject_user: Одбаци корисника
remove_avatar_user: Уклони аватар
+ reopen_report: Поново отвори пријаву
+ resend_user: Поново пошаљи мејл за потврду
+ reset_password_user: Ресетуј лозинку
+ resolve_report: Затвори пријаву
+ sensitive_account: Означи налог као осетљив
silence_account: Ограничи налог
suspend_account: Обустави налог
+ unassigned_report: Повуци пријаву
+ unblock_email_account: Одблокирај имејл адресу
+ unsensitive_account: Уклони додељену ознаку „осетљив”
+ unsilence_account: Повуци ограничење налога
+ unsuspend_account: Повуци суспензију налога
+ update_announcement: Саопштење о ажурирању
+ update_custom_emoji: Ажурирај прилагођене емоџије
+ update_domain_block: Ажурирај домен блок
+ update_ip_block: Ажурирај IP услов
update_status: Уреди објаву
update_user_role: Уреди улогу
actions:
+ 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}"
+ destroy_unavailable_domain_html: "%{name} је поново успоставио/-ла испоручивање домену %{target}"
+ 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}"
+ reject_appeal_html: "%{name} је одбио/-ла жалбу на модерацијску одлуку коју је приложио корисник %{target}"
+ 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} као осетљиве"
+ silence_account_html: "%{name} је ограничио/-ла налог %{target}"
+ suspend_account_html: "%{name} је суспендовао/-ла налог %{target}"
+ unassigned_report_html: "%{name} је повукао/-ла доделу пријаве %{target}"
+ unblock_email_account_html: "%{name} је одблокирао/-ла имејл адресу корисника %{target}"
+ unsensitive_account_html: "%{name} је уклонио/-ла ознаку „осетљиво” са медија налога %{target}"
+ unsilence_account_html: "%{name} је повукао/-ла ограничење налога %{target}"
+ unsuspend_account_html: "%{name} је повукао/-ла суспензију налога %{target}"
+ update_announcement_html: "%{name} је ажурирао/-ла саопштење %{target}"
+ update_custom_emoji_html: "%{name} је ажурирао/-ла емоџи %{target}"
+ update_domain_block_html: "%{name} је ажурирао/-ла блок домена %{target}"
+ update_ip_block_html: "%{name} је променио/-ла IP услов за %{target}"
+ update_status_html: "%{name} је ажурирао/-ла објаву корисника %{target}"
+ update_user_role_html: "%{name} је променио/-ла позицију %{target}"
deleted_account: обрисан налог
+ empty: Није пронађен ниједан лог.
filter_by_action: Филтрирај по активности
filter_by_user: Филтрирај по кориснику
title: Записник
announcements:
+ destroyed_msg: Саопштење је успешно обрисано!
edit:
title: Уреди најаву
empty: Ниједна најава није пронађена.
@@ -174,7 +306,12 @@ sr:
title: Нова најава
publish: Објави
published_msg: Најава успешно објављена!
+ scheduled_for: Заказано за %{time}
+ scheduled_msg: Саопштење је заказано за објављивање!
title: Најаве
+ unpublish: Повуци објаву
+ unpublished_msg: Објава саопштења је успешно повучена!
+ updated_msg: Саопштење је успешно ажурирано!
custom_emojis:
assign_category: Додели категорију
by_domain: Домен
@@ -192,85 +329,212 @@ sr:
enable: Омогући
enabled: Омогућено
enabled_msg: Емоџи успешно омогућен
+ image_hint: PNG или GIF фајл величине до %{size}
+ list: Листа
listed: Излистан
new:
title: Додај нови произвољни емоџи
+ no_emoji_selected: Ниједан емоџи није промењен јер ниједан није изабран
+ not_permitted: Нисте овлашћени да обављате ову радњу
overwrite: Препиши
shortcode: Пречица
shortcode_hint: Најмање 2 карактера, дозвољени су само слова, бројеви и доње црте
title: Произвољни емотиџији
+ uncategorized: Некатегоризовано
+ unlist: Неизлистан
unlisted: Неизлистан
update_failed_msg: Не могу да ажурирам овај емоџи
updated_msg: Емоџи успешно ажуриран!
upload: Отпреми
dashboard:
+ active_users: активни корисници
+ interactions: интеракције
+ media_storage: Мултимедијално складиште
+ new_users: нови корисници
+ opened_reports: отворене пријаве
+ pending_appeals_html:
+ few: "%{count} жалбе на чекању"
+ one: "%{count} жалба на чекању"
+ other: "%{count} жалби на чекању"
+ pending_reports_html:
+ few: "%{count} пријаве на чекању"
+ one: "%{count} пријава на чекању"
+ other: "%{count} пријава на чекању"
+ pending_tags_html:
+ few: "%{count} хеш ознаке на чекању"
+ one: "%{count} хеш ознака на чекању"
+ other: "%{count} хеш ознака на чекању"
+ pending_users_html:
+ few: "%{count} корисника на чекању"
+ one: "%{count} корисник на чекању"
+ other: "%{count} корисника на чекању"
+ resolved_reports: решене пријаве
software: Софтвер
+ sources: Извори регистрација
space: Коришћење простора
title: Командна табла
+ top_languages: Најзаступљенији језици
+ top_servers: Најактивнији сервери
+ website: Вебсајт
+ disputes:
+ appeals:
+ empty: Ниједна жалба није пронађена.
+ title: Жалбе
domain_allows:
+ add_new: Дозволи федерацију са доменом
+ created_msg: Домен је успешно одобрен за федерацију
+ destroyed_msg: Домен је одбијен за федерацију
export: Извоз
import: Увоз
+ undo: Забрани федерацију са доменом
domain_blocks:
add_new: Додај нови блок домена
created_msg: Блокирање домена се обрађује
destroyed_msg: Блокирање домена је опозвано
domain: Домен
+ edit: Измени блок домена
+ existing_domain_block: Већ сте успоставили строжа ограничења према кориснику %{name}.
+ existing_domain_block_html: Већ сте успоставили строжа ограничења према %{name}, потребно је да га прво одблокирате.
export: Извоз
import: Увоз
new:
create: Направи блокаду
hint: Блокирање домена неће спречити прављење налога у бази, али ће ретроактивно и аутоматски применити одређене модераторске методе над тим налозима.
severity:
+ desc_html: "Ограничење ће сакрити објаве налога са овог домена од сваког ко их не прати. Суспензија ће обрисати сав садржај, медије и податке профила са налога овог домена са Вашег сервера. Користите Ништа уколико само желите да одбијете медијске фајлове."
noop: Ништа
+ silence: Ограничи
suspend: Суспензија
title: Ново блокирање домена
+ no_domain_block_selected: Ниједан блок домена није промењен јер ниједан није изабран
+ not_permitted: Нисте овлашћени да обављате ову радњу
+ obfuscate: Сакриј име домена
+ obfuscate_hint: Делимично сакриј име домена на листи ако је рекламирање листе ограничених домена омогућено
private_comment: Приватни коментар
+ private_comment_hint: Коментар о ограничењу овог домена за интерну употребу од стране модератора.
public_comment: Јавни коментар
+ public_comment_hint: Коментар о ограничењу овог домена за јавност, уколико је рекламирање листе ограничених домена омогућено.
reject_media: Одбаци мултимедију
reject_media_hint: Уклања локално ускладиштене мултимедијске фајлове и одбија да их скида убудуће. Небитно је за суспензију
reject_reports: Одбаци извештај
reject_reports_hint: Игнориши све извештаје који долазе са овог домена. Небитно је за суспензије
undo: Поништи блок домена
+ view: Прочитај блок домена
email_domain_blocks:
add_new: Додај нови
+ attempts_over_week:
+ few: "%{count} покушаја током претходне недеље"
+ one: "%{count} покушај током претходне недеље"
+ other: "%{count} покушаја регистрације током претходне недеље"
created_msg: Успешно додао домен Е-поште на црну листу
delete: Обриши
+ dns:
+ types:
+ mx: MX извештај
domain: Домен
new:
create: Додај домен
+ resolve: Претвори домен
title: Нова ставка е-поштe у црној листи
+ no_email_domain_block_selected: Ниједан блок имејл домена није промењен јер ниједан није изабран
+ not_permitted: Није дозвољено
+ resolved_dns_records_hint_html: Име домена се претвара у следеће MX домене, који су напослетку одговорни за прихватање електронске поште. Блокирање MX домена ће блокирати регистрације са сваке имејл адресе која користи тај MX домен, чак и у случају када се видљиво име домена разликује. Водите рачуна о томе да не блокирате велике имејл провајдере.
+ resolved_through_html: Преусмерено кроз %{domain}
title: Црна листа E-поште
+ export_domain_allows:
+ new:
+ title: Увези дозвољене домене
+ no_file: Ниједан фајл није одабран
export_domain_blocks:
import:
+ description_html: Управо ћете увести листу блокираних домена. Молимо Вас, врло пажљиво прегледајте ову листу, посебно уколико је нисте сами направили.
existing_relationships_warning: Постојећи односи у облику праћења
+ private_comment_description_html: 'Да би Вам помогли да пратите одакле су блокови увезени, увезени блокови ће бити направљени са следећим приватним коментаром: %{comment}'
+ private_comment_template: Увезено са извора %{source} на датум %{date}
+ title: Увези блокиране домене
+ invalid_domain_block: 'Један или више блокова домена је прескочен због следеће грешке тј. грешака: %{error}'
+ new:
+ title: Увези блокиране домене
+ no_file: Ниједан фајл није одабран
follow_recommendations:
+ description_html: "Предлози за праћење помажу новим корисницима да брзо пронађу занимљив садржај. Када корисник није довољно интераговао са осталима да би се за њега формирали персонализовани предлози за праћење, ови налози ће бити препоручени уместо тога. Они се генеришу на дневној бази из скупа налога са највише недавних ангажовања и највише локалних пратилаца за један језик."
+ language: За језик
status: Статус
+ suppress: Потисни препоруке за праћење
+ suppressed: Потиснуто
+ title: Препоруке за праћење
+ unsuppress: Врати препоруку за праћење
instances:
+ availability:
+ description_html:
+ few: Уколико испорука домену не успе ниједном током %{count} различитих дана, даљи покушаји испоруке неће бити иницирани осим уколико се не прими испорука са домена.
+ one: Ако испорука домену не успе ниједном у временском периоду од %{count} дана, даљи покушаји испоруке се неће иницирати осим уколико се не прими испорука са домена.
+ other: Уколико испорука домену не успе ниједном током %{count} различитих дана, даљи покушаји испоруке се неће иницирати осим уколико се не прими испорука са домена.
+ failure_threshold_reached: Праг неуспеха достигнут датума %{date}.
+ failures_recorded:
+ few: Неуспели покушаји током %{count} различита дана.
+ one: Неуспели покушај током %{count} дана.
+ other: Неуспели покушаји током %{count} различитих дана.
+ no_failures_recorded: Без забележених неуспеха.
+ title: Доступност
+ warning: Последњи покушај повезивања са овим сервером је био неуспешан
back_to_all: Све
back_to_limited: Ограничено
back_to_warning: Упозорење
by_domain: Домен
+ confirm_purge: Да ли сте сигурни да желите да трајно уклоните податке са овог домена?
content_policies:
+ comment: Интерна белешка
+ description_html: Можете да дефинишете политику садржаја која ће важити за све налоге на овом домену и сваком од његових поддомена.
+ limited_federation_mode_description_html: Можете да одлучите да ли да допустите федерацију са овим доменом.
policies:
+ reject_media: Одбиј мултимедију
+ reject_reports: Одбиј пријаве
silence: Ограничи
suspend: Суспендуј
policy: Политика
reason: Јавни разлог
+ title: Политика садржаја
+ dashboard:
+ instance_accounts_dimension: Најпраћенији налози
+ instance_accounts_measure: ускладиштени налози
+ instance_followers_measure: наши пратиоци овде
+ instance_follows_measure: њихови пратиоци овде
+ instance_languages_dimension: Најзаступљенији језици
+ instance_media_attachments_measure: ускладиштени мултимедијални прилози
+ instance_reports_measure: пријаве против њих
+ instance_statuses_measure: ускладиштене објаве
delivery:
all: Све
+ clear: Очисти грешке приликом испоруке
+ failing: Без успеха
+ restart: Започни испоруку поново
+ stop: Обустави испоруку
unavailable: Недоступно
delivery_available: Достава је доступна
+ delivery_error_days: Дани неуспешних испорука
+ delivery_error_hint: Уколико испорука није могућа %{count} дана, аутоматски ће бити обележена као неиспоручива.
+ destroyed_msg: Подаци са %{domain} су сада у реду за чекање за извесно брисање.
+ empty: Ниједан домен није пронађен.
+ known_accounts:
+ few: "%{count} позната налога"
+ one: "%{count} познат налог"
+ other: "%{count} познатих налога"
moderation:
all: Све
limited: Ограничено
title: Модерација
private_comment: Приватни коментар
public_comment: Јавни коментар
+ purge: Чистка
+ purge_description_html: Уколико верујете да је овај домен трајно угашен, можете да обришете све записе налога и сродне податке овог домена са свог складишта. Ово може да потраје.
title: Федерација
total_blocked_by_us: Блокирано од стране нас
total_followed_by_them: Праћени од стране њих
total_followed_by_us: Праћени од стране нас
total_reported: Пријаве везане за њих
+ total_storage: Мултимедијални прилози
+ totals_time_period_hint_html: Укупне вредности приказане испод укључују податке за сва времена.
invites:
deactivate_all: Деактивирај све
filter:
@@ -280,6 +544,9 @@ sr:
title: Филтер
title: Позивнице
ip_blocks:
+ add_new: Направи правило
+ created_msg: Успешно је додато ново IP правило
+ delete: Избриши
expires_in:
'1209600': 2 недеље
'15778476': 6 месеци
@@ -290,6 +557,7 @@ sr:
new:
title: Креирај ново IP правило
no_ip_block_selected: Ниједно IP правило није промењено јер ниједно није изабрано
+ title: IP правила
relationships:
title: Односи корисника %{acct}
relays:
@@ -305,88 +573,395 @@ sr:
pending: Чека се одобрење релеја
save_and_enable: Сачувај и омогући
setup: Подеси везу релеја
+ signatures_not_enabled: Преноси можда неће радити исправно док је укључен безбедни режим или режим ограничене федерације
status: Статус
title: Релеји
report_notes:
created_msg: Белешка пријаве успешно направљена!
destroyed_msg: Белешка пријаве успешно избрисана!
reports:
+ account:
+ notes:
+ few: "%{count} белешке"
+ one: "%{count} белешка"
+ other: "%{count} бележака"
+ action_log: Записник
action_taken_by: Акцију извео
+ actions:
+ delete_description_html: Пријављене објаве ће бити обрисане и прекршај ће бити уписан да би Вам олакшали интервенцију приликом будућих преступа са истог налога.
+ mark_as_sensitive_description_html: Мултимедијални садржај са пријављених објава ће бити означен као осетљив и прекршај ће бити уписан ради лакше интервенције у случају даљих прекршаја са истог налога.
+ other_description_html: Погледајте више опција за контролисање понашања налога и прилагодите комуникацију са пријављеним налогом.
+ resolve_description_html: Ниједна радња неће бити предузета против пријављеног налога, ниједан преступ није уписан и пријава ће бити затворена.
+ silence_description_html: Налог ће бити видљив само онима који га већ прате или који га ручно потраже, што ће значајно ограничити његов домет. Ограничење се може повући у сваком тренутку. Затвара све пријаве поднете против овог налога.
+ suspend_description_html: Налог и сви његови садржаји ће постати недоступни и у једном тренутку избрисани, а интеракција са налогом више неће бити могућа. Суспензија се може повући у року од 30 дана. Затвара све пријаве поднете против овог налога.
+ actions_description_html: Одлучите коју радњу да спроведете ради решавања ове пријаве. Уколико спроведете казнену радњу против пријављеног налога, власник налога ће бити обавештен путем и-мејла, осим уколико ознака „Непожељне поруке” није одабрана.
+ actions_description_remote_html: Одлучите коју радњу да предузмете ради решавања ове пријаве. Ово ће утицати само на то како Ваш сервер комуницира са овим удаљеним налогом и обрађује његов садржај.
+ add_to_report: Додај још у пријаву
are_you_sure: Да ли сте сигурни?
assign_to_self: Додели мени
assigned: Додељени модератор
+ by_target_domain: Домен пријављеног налога
+ cancel: Откажи
+ category: Категорија
+ category_description_html: Разлог због ког је овај налог и/или садржај пријављен ће бити образложен у комуникацији са пријављеним налогом
comment:
none: Ништа
+ comment_description_html: 'Ради пружања више информација, %{name} је написао/-ла:'
+ confirm: Потврди
+ confirm_action: Потврди модерацијску радњу према @%{acct}
created_at: Пријављена
+ delete_and_resolve: Обриши објаве
+ forwarded: Прослеђено
+ forwarded_to: Прослеђено ка %{domain}
mark_as_resolved: Означи као решену
+ mark_as_sensitive: Обележи као осетљиво
mark_as_unresolved: Означи као нерешену
+ no_one_assigned: Нико
notes:
create: Додај белешку
create_and_resolve: Реши са белешком
create_and_unresolve: Отвори поново са белешком
delete: Обриши
placeholder: Опишите какве су радње предузете, или било какве повезане новости...
+ title: Белешке
+ notes_description_html: Прочитајте и оставите напомене другим модераторима и себи у будућности
+ processed_msg: 'Пријава #%{id} успешно обрађена'
+ quick_actions_description_html: 'Предузмите брзу радњу или се спустите ниже да бисте видели пријављени садржај:'
+ remote_user_placeholder: удаљени корисник са %{instance}
reopen: Отвори пријаву поново
report: 'Пријава #%{id}'
reported_account: Пријављени налог
reported_by: Пријавио
resolved: Решена
resolved_msg: Пријава успешно разрешена!
+ skip_to_actions: Прескочи до радњи
status: Статус
+ statuses: Пријављени садржај
+ statuses_description_html: Спорни садржај ће бити наведен у комуникацији са пријављеним налогом
+ summary:
+ action_preambles:
+ delete_html: 'Управо ћете обрисати неке од објава корисника @%{acct}. Ово ће:'
+ mark_as_sensitive_html: 'Управо ћете означити неке објаве корисника @%{acct} као осетљиве. Ово ће:'
+ silence_html: 'Управо ћете ограничити налог корисника @%{acct}. Ово ће:'
+ suspend_html: 'Управо ћете суспендовати налог корисника @%{acct}. Ово ће:'
+ actions:
+ delete_html: Обришите спорне објаве
+ mark_as_sensitive_html: Обележите медије спорних објава као осетљиве
+ silence_html: Жестоко ограничите домет корисника @%{acct} тако што ћете учинити његов профил и садржаје видљиве само људима који их већ прате и људима који ручно потраже профил
+ suspend_html: Суспендујте корисника @%{acct}, што ће учинити његов профил и садржаје недоступним за приступ и интеракцију
+ close_report: 'Означите пријаву #%{id} као решену'
+ close_reports_html: Означи све пријаве против @%{acct} као решене
+ delete_data_html: Обриши профил и садржаје корисника @%{acct} за 30 дана осим уколико суспензија буде повучена у међувремену
+ preview_preamble_html: "@%{acct} ће примити упозорење следеће садржине:"
+ record_strike_html: Упишите прекршај на име @%{acct} да би Вам било лакше да у будућности интервенишете приликом даљих преступа са овог налога
+ send_email_html: Пошаљи имејл упозорења кориснику @%{acct}
+ warning_placeholder: Опционо додатно образложење за модерацијску радњу.
+ target_origin: Порекло пријављеног налога
title: Пријаве
unassign: Уклони доделу
+ unknown_action_msg: 'Непозната радња: %{action}'
unresolved: Нерешене
updated_at: Ажурирана
view_profile: Погледај профил
roles:
add_new: Додај улогу
+ assigned_users:
+ few: "%{count} корисника"
+ one: "%{count} корисник"
+ other: "%{count} корисника"
categories:
administration: Администрација
+ devops: DevOps
+ invites: Позивнице
moderation: Модерација
+ special: Посебно
delete: Избриши
+ description_html: Помоћу корисничких улога можете да подесите којим функцијама и деловима Мастодона Ваши корисници могу да приступе.
+ edit: Измени улогу '%{name}'
+ everyone: Подразумевана овлашћења
+ everyone_full_description_html: Ово је основна улога која се односи на све кориснике, чак и оне којима није додељена улога. Све друге улоге наслеђују овлашћења од основне улоге.
+ permissions_count:
+ few: "%{count} дозволе"
+ one: "%{count} дозвола"
+ other: "%{count} дозвола"
privileges:
administrator: Администратор
+ administrator_description: Корисници са овом привилегијом могу да заобиђу сва друга ограничења
delete_user_data: Избриши податке корисника
+ delete_user_data_description: Допушта корисницима да избришу податке других корисника без одлагања
invite_users: Позови кориснике
+ invite_users_description: Допушта корисницима да позове нове људе на сервер
manage_announcements: Управљај обавештењима
+ manage_announcements_description: Допушта корисницима да руководе саопштењима на серверу
+ manage_appeals: Надгледање жалби
+ manage_appeals_description: Допушта корисницима да прегледају жалбе на модерацијске радње
+ manage_blocks: Надгледање блокова
+ manage_blocks_description: Допушта корисницима да блокирају имејл провајдере и IP адресе
+ manage_custom_emojis: Надлежност над прилагођеним емоџијима
+ manage_custom_emojis_description: Даје корисницима контролу над прилагођеним емоџијима на серверу
+ manage_federation: Надгледање федерације
+ manage_federation_description: Допушта корисницима да блокирају или дозволе федерацију са другим доменима и контролишу испоручивање података другим серверима
+ manage_invites: Надгледање позивница
+ manage_invites_description: Допушта корисницима да претражују и деактивирају позивнице
+ manage_reports: Надгледање пријава
+ manage_reports_description: Допушта корисницима да прегледају пријаве и извршавају модерацијске радње над њима
manage_roles: Управљај улогама
+ manage_roles_description: Допушта корисницима да надгледају и додељују улоге са нижим овлашћењима од њихове
manage_rules: Управљај правилима
manage_rules_description: Дозволи корисницима да мењају правила сервера
manage_settings: Управљај поставкама
manage_settings_description: Дозволи корисницима да мењају поставке сајта
+ manage_taxonomies: Надгледање таксономија
+ manage_taxonomies_description: Допушта корисницима да прегледају садржај у тренду и ажурирају поставке хеш ознака
+ manage_user_access: Надлежност над корисничким приступом
+ manage_user_access_description: Допушта корисницима да онемогуће двофакторску аутентификацију других корисника, мењају им имејл адресе и ресетују им лозинке
+ manage_users: Надлежност над корисницима
+ manage_users_description: Допушта корисницима да прочитају детаље других корисника и извршавају модерацијске радње над њима
+ manage_webhooks: Надлежност над webhook елементима
+ manage_webhooks_description: Допушта корисницима да успоставе webhook елементе за административне радње
+ view_audit_log: Прочитај записник ревизија
+ view_audit_log_description: Допушта корисницима да виде историју административних радњи на серверу
+ view_dashboard: Погледај контролни панел
+ view_dashboard_description: Допушта корисницима да приступе контролном панелу и разним метрикама
+ view_devops: DevOps
+ view_devops_description: Допушта корисницима да приступе Sidekiq и pgHero контролним панелима
+ title: Улоге
rules:
add_new: Додај правило
delete: Избриши
+ description_html: Док већина тврди да је прочитала и слаже се са условима коришћења, људи их обично не читају све док се не јави проблем. Учините правила Вашег сервера читљивијим и приступачнијим тако што ћете их изложити у форми листе. Потрудите се да појединачна правила буду кратка и једноставна, али покушајте и да их не исцепкате у превише одвојених ставки.
edit: Уреди правило
empty: Ниједно правило сервера још није дефинисано.
title: Правила сервера
settings:
+ about:
+ manage_rules: Управљање правилима сервера
+ preamble: Пружите детаљне информације о томе како се сервер води, модерира и финансира.
+ rules_hint: Постоји предвиђено место за правила која се од корисника очекује да поштују.
+ title: Назив
appearance:
+ preamble: Прилагодите веб интерфејс Мастодона.
title: Изглед
+ branding:
+ preamble: Брендирање Вашег сервера га издваја од других сервера на мрежи. Ове информације могу бити приказане у разним окружењима, попут Мастодоновог веб интерфејса, нативних апликација, у прегледима линкова на другим серверима и у апликацијама за размену порука, итд. Из овог разлога, најбоље је да ове информације буду кратке, јасне и концизне.
+ title: Брендирање
+ content_retention:
+ preamble: Контролишите како се садржај генерисан од стране корисника складишти на Мастодону.
+ title: Задржавање садржаја
default_noindex:
desc_html: Утиче на све кориснике који нису сами променили ову поставку
title: Подразумевано искључи кориснике из индексирања претраживача
discovery:
+ follow_recommendations: Препоруке за праћење
+ preamble: Одржавање занимљивих садржаја на површини је кључно у привлачењу нових корисника који можда не знају никога на Мастодону. Контролишите како различити начини истраживања функционишу на Вашем серверу.
+ profile_directory: Директоријум профилâ
public_timelines: Јавне временске линије
+ publish_discovered_servers: Објави откривене сервере
+ publish_statistics: Објави статистику
title: Откривање
+ trends: Трендови
+ domain_blocks:
+ all: Свима
+ disabled: Никоме
+ users: Пријављеним локалним корисницима
+ registrations:
+ preamble: Контролишите ко сме да направи налог на Вашем серверу.
+ title: Регистрације
+ registrations_mode:
+ modes:
+ approved: Одобрење неопходно за регистрацију
+ none: Нико не може да се региструје
+ open: Било ко може да се региструје
+ title: Подешавања сервера
+ site_uploads:
+ delete: Обриши отпремљени фајл
+ destroyed_msg: Отпремање успешно обрисано!
statuses:
+ account: Аутор
+ application: Апликација
back_to_account: Назад на страну налога
+ back_to_report: Назад на страницу са пријавама
+ batch:
+ remove_from_report: Уклоните из пријаве
+ report: Пријави
+ deleted: Обрисано
+ favourites: Омиљено
+ history: Историја верзијâ
+ in_reply_to: Одговор на
+ language: Језик
media:
title: Мултимедија
+ metadata: Мета подаци
no_status_selected: Ниједан статус није промењен јер ниједан није изабран
+ open: Отвори објаву
+ original_status: Оригинална објава
+ reblogs: Дељења
+ status_changed: Објава промењена
title: Статуси налога
+ trending: У тренду
+ visibility: Видљивост
with_media: Са мултимедијом
+ strikes:
+ actions:
+ delete_statuses: "%{name} је обрисао/-ла објаве %{target}"
+ disable: "%{name} је замрзнуо налог корисника %{target}"
+ mark_statuses_as_sensitive: "%{name} је означио/-ла објаве корисника %{target} као осетљиве"
+ none: "%{name} је послао/-ла упозорење кориснику %{target}"
+ sensitive: "%{name} је обележио/-ла налог %{target} као осетљив"
+ silence: "%{name} је ограничио/-ла налог %{target}"
+ suspend: "%{name} је суспендовао/-ла налог %{target}"
+ appeal_approved: Жалба уважена
+ appeal_pending: Жалба у разматрању
+ appeal_rejected: Жалба одбијена
+ system_checks:
+ database_schema_check:
+ message_html: Селидбе базâ података су на чекању. Молимо Вас обавите их да би се апликација понашала како треба
+ elasticsearch_running_check:
+ message_html: Повезивање на Elasticsearch није било могуће. Молимо Вас проверите да ли је покренут, или онемогућите претрагу целог текста
+ elasticsearch_version_check:
+ message_html: 'Неусклађена Elasticsearch верзија: %{value}'
+ version_comparison: Elasticsearch %{running_version} је инсталиран а %{required_version} је неопходан
+ rules_check:
+ action: Управљање правилима сервера
+ message_html: Нисте дефинисали ниједно правило сервера.
+ sidekiq_process_check:
+ message_html: Ниједан Sidekiq процес није покренут за ред(ове) %{value}. Молимо Вас прегледајте своју Sidekiq конфигурацију
+ tags:
+ review: Прегледај статус
+ updated_msg: Подешавања хеш ознака успешно ажурирана
title: Администрација
+ trends:
+ allow: Дозволи
+ approved: Одобрено
+ disallow: Забрани
+ links:
+ allow: Дозволи линк
+ allow_provider: Дозволи издавача
+ description_html: Ово су линкови који се тренутно често деле међу налозима које Ваш сервер види. Може помоћи Вашим корисницима да сазнају шта се дешава у свету. Ниједан линк није јавно приказан све док Ви не одобрите издавача. Такође можете да дозволите или одбијете засебне линкове.
+ disallow: Забрани линк
+ disallow_provider: Забрани издавача
+ no_link_selected: Ниједан линк није промењен јер ниједан није изабран
+ publishers:
+ no_publisher_selected: Ниједан издавач није промењен јер ниједан није изабран
+ shared_by_over_week:
+ few: Подељен од стране %{count} особе током претходне недеље
+ one: Подељен од стране једне особе током претходне недеље
+ other: Подељен од стране %{count} особа током претходне недеље
+ title: Линкови у тренду
+ usage_comparison: Подељено %{today} пута данас, у поређењу са %{yesterday} пута јуче
+ not_allowed_to_trend: Није одобрено за тренд
+ only_allowed: Само дозвољено
+ pending_review: Преглед на чекању
+ preview_card_providers:
+ allowed: Линкови са овог извора могу да буду „у тренду”
+ description_html: Ово су домени чији се линкови често деле на Вашем серверу. Линкови неће бити јавно приказани као „у тренду” осим уколико је домен линкова одобрен. Ваше одобрење (или одбијање) се преноси и на поддомене.
+ rejected: Линкови са овог извора неће бити „у тренду”
+ title: Издавачи
+ rejected: Одбијен
+ statuses:
+ allow: Дозволи објаву
+ allow_account: Одобри аутора
+ description_html: Ово су објаве за које Ваш сервер зна, а које се тренутно често деле и које корисници често стављају у „омиљене”. Могу помоћи Вашим новим корисницима и повратницима да пронађу још људи за праћење. Ниједна објава није приказана јавно све док Ви не одобрите аутора, односно док аутор не дозволи да његов/њен налог буде препоручен другима. Такође можете да одобрите или одбијете засебне објаве.
+ disallow: Забрани објаву
+ disallow_account: Забрани аутора
+ no_status_selected: Ниједна објава у тренду није промењена јер ниједна није изабрана
+ not_discoverable: Аутор није дао сагласност да буде препоручен
+ shared_by:
+ few: Подељено и стављено у „омиљене” %{friendly_count} пута
+ one: Подељено или стављено у „омиљене” једном
+ other: Подељено и стављено у „омиљене” %{friendly_count} пута
+ title: Објаве у тренду
+ tags:
+ current_score: Тренутна вредност %{score}
+ dashboard:
+ tag_accounts_measure: јединствене употребе
+ tag_languages_dimension: Најзаступљенији језици
+ tag_servers_dimension: Најактивнији сервери
+ tag_servers_measure: различити сервери
+ tag_uses_measure: укупно употреба
+ description_html: Ово су хеш ознаке које се тренутно често појављују у објавама које Ваш сервер види. Могу помоћи Вашим корисницима да открију о чему се тренутно највише говори. Ниједна хеш ознака није приказана јавно све док Ви то не одобрите.
+ listable: Може се препоручити
+ no_tag_selected: Ниједна ознака није измењена јер ниједна није изабрана
+ not_listable: Неће бити препоручено
+ not_trendable: Неће се појављивати у трендовима
+ not_usable: Не може се користити
+ peaked_on_and_decaying: Врхунац достигнут датума %{date}, од тада у опадању
+ title: Хеш ознаке у тренду
+ trendable: Може да се појави под трендовима
+ trending_rank: 'У тренду #%{rank}'
+ usable: Може се користити
+ usage_comparison: Употребљено %{today} пута данас, у поређењу са %{yesterday} пута јуче
+ used_by_over_week:
+ few: Коришћено од стране %{count} особе током претходне недеље
+ one: Коришћено од стране једне особе током претходне недеље
+ other: Коришћено од стране %{count} људи током претходне недеље
+ title: Трендови
+ trending: У тренду
warning_presets:
add_new: Додај нови
delete: Избриши
edit_preset: Уреди пресет упозорења
+ empty: Још увек нисте дефинисали ниједан шаблон упозорења.
title: Управљај пресетима упозорења
+ webhooks:
+ add_new: Додај крајњу тачку
+ delete: Избриши
+ description_html: "Webhook омогућава Мастодону да Вашој апликацији испоручује обавештења у реалном времену о одабраним догађајима, тако да Ваша апликација може да aутоматски изазове реакцију."
+ disable: Онемогући
+ disabled: Онемогућено
+ edit: Измени крајњу тачку
+ empty: Још увек немате ниједну конфигурисану webhook крајњу тачку.
+ enable: Омогући
+ enabled: Активно
+ enabled_events:
+ few: "%{count} омогућена догађаја"
+ one: 1 омогућен догађај
+ other: "%{count} омогућених догађаја"
+ events: Догађаји
+ new: Нови webhook
+ rotate_secret: Ротација тајни
+ secret: Тајно потписивање
+ status: Статус
+ title: Веб-пресретач
+ webhook: Веб-пресретач
admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: обрисати објаве корисника
+ disable: замрзнути налог корисника
+ mark_statuses_as_sensitive: означити објаве корисника као осетљиве
+ none: упозорење
+ sensitive: означити налог као осетљив
+ silence: ограничити налог
+ suspend: суспендовати налог
+ body: "%{target} прилаже жалбу на модерацијску одлуку корисника %{action_taken_by} од %{date}, која је гласила %{type}. У жалби пише:"
+ next_steps: Можете уважити жалбу да бисте повукли модерацијску одлуку, или је можете игнорисати.
+ subject: "%{username} прилаже жалбу на модерацијску одлуку са %{instance}"
+ new_pending_account:
+ body: Детаљи новог налога су наведени доле. Можете одобрити или одбити овај захтев.
+ subject: Нов налог за преглед на %{instance} (%{username})
new_report:
body: "%{reporter} је пријавио %{target}"
body_remote: Нека са домена %{domain} је пријавио %{target}
subject: Нова пријава за %{instance} (#%{id})
+ new_trends:
+ body: 'Следеће ставке је потребно прегледати пре него што могу јавно да се прикажу:'
+ new_trending_links:
+ title: Линкови у тренду
+ new_trending_statuses:
+ title: Објаве у тренду
+ new_trending_tags:
+ no_approved_tags: Тренутно нема одобрених хеш ознака у тренду.
+ requirements: 'Било који од следећих кандидата би могао превазићи #%{rank} одобрену хеш ознаку у тренду, која је тренутно #%{lowest_tag_name} са вредношћу %{lowest_tag_score}.'
+ title: Хеш ознаке у тренду
+ subject: Нови трендови за преглед на %{instance}
+ aliases:
+ add_new: Направи псеудоним
+ created_msg: Успешно је направљен нови псеудоним. Сада можете иницирати пресељење са старог налога.
+ deleted_msg: Успешно је уклоњен псеудоним. Премештање са тог налога на овај више неће бити могуће.
+ empty: Немате ниједан псеудоним.
+ hint_html: Ако желите да се преселите са другог налога на овај, овде можете направити псеудоним, који је неопходан пре него што можете наставити са пребацивањем пратилаца са старог налога на овај. Ова радња сама по себи је безопасна и реверзибилна. Пресељење налога се иницира са старог налога.
+ remove: Одвежи псеудоним
appearance:
advanced_web_interface: Напредно веб окружење
advanced_web_interface_hint: 'Ако желите да искористите целу ширину екрана, напредно веб окружење вам омогућује да конфигуришете много различитих колона да бисте видели онолико информација у исто време колико желите: почетну страницу, обавештења, здружену временску линију, било који број листа и хеш ознака.'
@@ -395,11 +970,13 @@ sr:
discovery: Откривање
localization:
body: Mastodon преводе добровољци.
+ guide_link: https://crowdin.com/project/mastodon
guide_link_text: Свако може допринети.
sensitive_content: Осетљив садржај
toot_layout: Распоред објава
application_mailer:
notification_preferences: Промени преференце Е-поште
+ salutation: Поштовани %{name},
settings: 'Промени подешавања е-поште: %{link}'
view: 'Погледај:'
view_profile: Погледај налог
@@ -407,35 +984,71 @@ sr:
applications:
created: Апликација успешно направљена
destroyed: Апликација успешно обрисана
+ logout: Одјава
regenerate_token: Рекреирај приступни токен
token_regenerated: Приступни токен успешно рекреиран
warning: Опрезно са овим подацима. Никад је не делите ни са ким!
your_token: Ваш приступни токен
auth:
+ apply_for_account: Затражите налог
change_password: Лозинка
+ confirmations:
+ wrong_email_hint: Ако та имејл адреса није исправна, можете је променити у подешавањима налога.
delete_account: Брисање налога
delete_account_html: Ако желите да избришете ваш налог, можете наставити овде. Од вас ће се тражити потврда.
+ description:
+ prefix_invited_by_user: "@%{name} Вас позива да се придружите овом серверу Мастодона!"
+ prefix_sign_up: Придружите се Мастодону данас!
+ suffix: Са налогом, моћи ћете да пратите људе, објављујете новости и размењујете поруке са корисницима било ког Мастодон сервера и више!
didnt_get_confirmation: Нисте добили поруку са упутствима за потврду налога?
+ dont_have_your_security_key: Немате сигурносни кључ?
forgot_password: Заборавили сте лозинку?
invalid_reset_password_token: Токен за ресетовање лозинке је неисправан или је истекао. Затражите нови.
+ link_to_otp: Унесите двофакторски код са свог телефона или резервни код
+ link_to_webauth: Користите свој сигурносни кључ
+ log_in_with: Пријавите се помоћу
login: Пријави се
logout: Одјава
migrate_account: Премештање у други налог
migrate_account_html: Ако желите да преусмерите овај налог на неки други, можете то подесити овде.
or_log_in_with: Или се пријавите са
+ privacy_policy_agreement_html: Прочитао/-ла сам и сагласан/-а сам са политиком приватности
providers:
cas: CAS-ом
saml: SAML-ом
register: Региструј се
+ registration_closed: "%{instance} не прима нове чланове"
resend_confirmation: Пошаљи поруку са упутствима о потврди налога поново
reset_password: Ресетуј лозинку
+ rules:
+ accept: Прихвати
+ back: Назад
+ preamble: Ово су правила која су успоставили и која спроводе модератори сервера %{domain}.
+ title: Нека основна правила.
security: Безбедност
set_new_password: Постави нову лозинку
+ setup:
+ email_below_hint_html: Ако је имејл адреса испод неисправна, можете је променити овде и добити нови имејл потврде.
+ email_settings_hint_html: Имејл потврде је послат на %{email}. Ако та имејл адреса није исправна, можете је променити у подешавањима налога.
+ title: Постављање
+ sign_in:
+ preamble_html: Пријавите се са својим подацима за %{domain}. Ако се Ваш налог налази на другом серверу, нећете моћи да се пријавите овде.
+ title: Пријавите се на %{domain}
+ sign_up:
+ preamble: Са налогом на овом Мастодон серверу, моћи ћете да пратите било кога са мреже, без обзира на то на ком серверу се његов/њен налог налази.
+ title: Хајде да Вам наместимо налог на %{domain}.
status:
account_status: Статус налога
+ confirming: Чекање на потврду путем имејла.
functional: Ваш налог је потпуно оперативан.
+ pending: Ваш захтев је на чекању за преглед од стране нашег особља. Ово може потрајати неко време. Примићете имејл поруку уколико Вам захтев буде одобрен.
+ redirecting_to: Ваш налог је неактиван јер преусмерава на %{acct}.
+ view_strikes: Погледајте претходне преступе уписане на Ваше име
+ too_fast: Формулар је поднет пребрзо, покушајте поново.
+ use_security_key: Користите сигурносни кључ
authorize_follow:
already_following: Већ пратите овај налог
+ already_requested: Већ сте послали захтев за праћење том налогу
error: Нажалост, десила се грешка при тражењу удаљеног налога
follow: Запрати
follow_request: 'Послали сте захтев за праћењен за:'
@@ -445,25 +1058,87 @@ sr:
return: Врати се на налог овог корисника
web: Иди на веб
title: Запрати %{acct}
+ challenge:
+ confirm: Настави
+ hint_html: "Савет: Нећемо Вас питати за лозинку поново у наредних сат времена."
+ invalid_password: Неисправна лозинка
+ prompt: Потврдите лозинку за наставак
+ crypto:
+ errors:
+ invalid_key: није валидан Ed25519 или Curve25519 кључ
+ invalid_signature: није валидан Ed25519 потпис
+ date:
+ formats:
+ default: "%d. %b. %Y."
+ with_month_name: "%d. %B %Y."
datetime:
distance_in_words:
+ about_x_hours: "%{count} ч."
about_x_months: "%{count}месец"
about_x_years: "%{count}год"
almost_x_years: "%{count}год"
half_a_minute: Управо сад
+ less_than_x_minutes: "%{count} мин."
less_than_x_seconds: Управо сад
over_x_years: "%{count}год"
x_days: "%{count}д"
+ x_minutes: "%{count} мин."
x_months: "%{count}месец"
+ x_seconds: "%{count} сек."
deletes:
+ challenge_not_passed: Лозинка коју сте унели није била исправна
confirm_password: Унесите тренутну лозинку да бисмо проверили Ваш идентитет
+ confirm_username: Унесите своје корисничко име да бисте потврдили процедуру
proceed: Обриши налог
success_msg: Ваш налог је успешно обрисан
+ warning:
+ before: 'Пре него што наставите, молимо Вас пажљиво прочитајте следеће напомене:'
+ caches: Садржај који је кеширан на другим серверима може да остане нетакнут
+ data_removal: Ваше објаве и други подаци ће бити трајно избрисани
+ email_change_html: Можете променити своју имејл адресу без брисања свог налога
+ email_contact_html: Ако порука и даље не стиже, можете послати мејл на %{email} за помоћ
+ email_reconfirmation_html: Уколико Вам имејл за потврду не стиже, можете га поново затражити
+ irreversible: Нећете бити у могућности да вратите или реактивирате свој налог
+ more_details_html: За више детаља, погледајте политику приватности.
+ username_available: Ваше корисничко име ће поново постати доступно
+ username_unavailable: Ваше корисничко име ће остати недоступно
+ disputes:
+ strikes:
+ action_taken: Радња предузета
+ appeal: Жалба
+ appeal_approved: Жалба на овај преступ је уважена и преступ више није валидан
+ appeal_rejected: Жалба је одбијена
+ appeal_submitted_at: Жалба је приложена
+ appealed_msg: Ваша жалба је приложена. Бићете обавештени уколико она буде била уважена.
+ appeals:
+ submit: Приложи жалбу
+ approve_appeal: Уважи жалбу
+ associated_report: Сродна пријава
+ created_at: Датум
+ description_html: Ово су радње предузете против Вашег налога и упозорења која су Вам послали чланови особља %{instance}.
+ recipient: Усмерено према
+ reject_appeal: Одбиј жалбу
+ status: 'Објава #%{id}'
+ status_removed: Објава је већ уклоњена из система
+ title: "%{action} од %{date}"
+ title_actions:
+ delete_statuses: Брисање објава
+ disable: Замрзавање налога
+ mark_statuses_as_sensitive: Означавање објава као осетљивих
+ none: Упозорење
+ sensitive: Означавање налога као осетљивог
+ silence: Ограничење налога
+ suspend: Суспензија налога
+ your_appeal_approved: Ваша жалба је уважена
+ your_appeal_pending: Приложили сте жалбу
+ your_appeal_rejected: Ваша жалба је одбијена
+ domain_validator:
+ invalid_domain: нелегитимно име домена
errors:
- '400': The request you submitted was invalid or malformed.
+ '400': Захтев који сте поднели је био нелегитиман или у погрешном формату.
'403': Немате дозвола да видите ову страну.
'404': Страна коју сте тражили не постоји.
- '406': This page is not available in the requested format.
+ '406': Ова страница није доступна у изабраном формату.
'410': Страна коју сте тражили више не постоји.
'422':
content: Безбедоносна провера није успела. Да не блокирате колачиће?
@@ -472,8 +1147,11 @@ sr:
'500':
content: Извињавамо се, нешто је пошло по злу са ове стране.
title: Страна није исправна
- '503': The page could not be served due to a temporary server failure.
+ '503': Страницу није било могуће доставити услед привременoг пада сервера.
noscript_html: Да бисте користили Мастодонт веб апликацију, омогућите JavaScript. У супротном, пробајте неку од оригиналних апликација за Мастодонт за Вашу платформу.
+ existing_username_validator:
+ not_found: није било могуће пронаћи локалног корисника са тим корисничким именом
+ not_found_multiple: није било могуће пронаћи %{usernames}
exports:
archive_takeout:
date: Датум
@@ -483,6 +1161,8 @@ sr:
request: Затражите своју архиву
size: Величина
blocks: Блокирали сте
+ bookmarks: Обележивачи
+ csv: CSV
domain_blocks: Блокови домена
lists: Листе
mutes: Игноришете
@@ -494,33 +1174,90 @@ sr:
hint_html: "Шта су истакнуте хеш онаке? Оне се приказују истакнуто на вашем јавном профилу и омогућују људима да прегледају ваше јавне објаве конкретно под тим хеш ознакама. Оне су сјајан алат за праћење креативних радова или дугорочних пројеката."
filters:
contexts:
+ account: Профили
home: Временска линија почетне
notifications: Обавештења
public: Јавне временске линије
thread: Разговори
edit:
+ add_keyword: Додај кључну реч
+ keywords: Кључне речи
+ statuses: Засебне објаве
+ statuses_hint_html: Овај филтер важи за одабране засебне објаве без обзира на то да ли садрже кључне речи наведене испод. Прегледајте или уклоните објаве из филтера.
title: Измени филтер
errors:
+ deprecated_api_multiple_keywords: Ови параметри не могу бити промењени у овој апликацији зато што се односе на више од једне кључне речи. Користите ажурнију апликацију или веб интерфејс.
invalid_context: Ниједан или неважећи контекст испоручен
index:
+ contexts: Филтрира у %{contexts}
delete: Избриши
empty: Немате филтере.
+ expires_in: Истиче за %{distance}
+ expires_on: Истиче датума %{date}
+ keywords:
+ few: "%{count} кључне речи"
+ one: "%{count} кључна реч"
+ other: "%{count} кључних речи"
+ statuses:
+ few: "%{count} објаве"
+ one: "%{count} објава"
+ other: "%{count} објава"
+ statuses_long:
+ few: "%{count} засебне објаве сакривене"
+ one: "%{count} засебна објава сакривена"
+ other: "%{count} засебних објава сакривено"
title: Филтери
new:
+ save: Сачувај нови филтер
title: Додај нови филтер
+ statuses:
+ back_to_filter: Назад на филтер
+ batch:
+ remove: Уклони из филтера
+ index:
+ hint: Овај филтер важи за одабране засебне објаве без обзира на друге критеријуме. Можете да додате више објава у овај филтер путем веб интерфејса.
+ title: Филтриране објаве
generic:
+ all: Сви
+ all_items_on_page_selected_html:
+ few: Све %{count} ставке са ове странице су изабране.
+ one: "%{count} ставка са ове странице је изабрана."
+ other: Свих %{count} ставки са ове странице је изабрано.
+ all_matching_items_selected_html:
+ few: Све %{count} ставке које се поклапају са Вашом претрагом су изабране.
+ one: "%{count} ставка која се поклапа са Вашом претрагом је изабрана."
+ other: Свих %{count} ставки које се поклапају са Вашом претрагом су изабране.
changes_saved_msg: Измене успешно сачуване!
copy: Копирај
+ delete: Избриши
+ deselect: Поништи све изборе
+ none: Ниједна
+ order_by: Сортирај према
save_changes: Сачувај промене
+ select_all_matching_items:
+ few: Одаберите све %{count} ставке које се поклапају са Вашом претрагом.
+ one: Одаберите %{count} ставку која се поклапа са Вашом претрагом.
+ other: Одаберите свих %{count} ставки које се поклапају са Вашом претрагом.
+ today: данас
validation_errors:
few: Нешто није баш како треба! Прегледајте %{count} грешке испод
one: Нешто није баш како треба! Прегледајте грешке испод
other: Нешто није баш како треба! Прегледајте %{count} грешака испод
imports:
+ errors:
+ invalid_csv_file: 'Неисправан CSV фајл. Грешка: %{error}'
+ over_rows_processing_limit: садржи више од %{count} редова
+ modes:
+ merge: Стапање
+ merge_long: Задржите постојеће записе и додајте нове
+ overwrite: Замени
+ overwrite_long: Замени тренутне записе новима
preface: Можете увести податке које сте извезли са друге инстанце, као што су листе људи које сте пратили или блокирали.
success: Ваши подаци су успешно отпремљени и биће обрађени ускоро
types:
blocking: Листа блокирања
+ bookmarks: Обележивачи
+ domain_blocking: Листа блокираних домена
following: Листа пратилаца
muting: Листа ућутканих
upload: Отпреми
@@ -547,17 +1284,70 @@ sr:
expires_at: Истиче
uses: Коришћења
title: Позовите људе
+ lists:
+ errors:
+ limit: Достигли сте максимални број листâ
+ login_activities:
+ authentication_methods:
+ otp: апликација за двофакторску аутентификацију
+ password: лозинка
+ sign_in_token: имејл сигурносни код
+ webauthn: сигурносни кључеви
+ description_html: Уколико приметите активност коју не препознајете, размислите о томе да промените своју лозинку и укључите двофакторску аутентификацију.
+ empty: Историја аутентификације није доступна
+ failed_sign_in_html: Неуспешан покушај пријављивања путем %{method} са %{ip} (%{browser})
+ successful_sign_in_html: Успешан покушај пријављивања путем %{method} са %{ip} (%{browser})
+ title: Историја аутентификације
media_attachments:
validations:
images_and_video: Не може да се прикачи видео на статус који већ има слике
+ not_ready: Не могу се приложити фајлови који још увек нису обрађени. Покушајте поново за који тренутак!
too_many: Не може се прикачити више од 4 фајла
migrations:
acct: корисник@домен новог налога
+ cancel: Откажи преусмерење
+ cancel_explanation: Отказивање преусмерења ће поново активирати Ваш садашњи налог, али неће вратити пратиоце који су премештени на други налог.
+ cancelled_msg: Успешно је отказано преусмерење.
+ errors:
+ already_moved: већ сте се преселили на исти налог
+ missing_also_known_as: није псеудоним овог налога
+ move_to_self: не можете се преселити на садашњи налог
+ not_found: није било могуће пронаћи налог
+ on_cooldown: Под ограничењем сте
+ followers_count: Пратиоци у тренутку премештаја
incoming_migrations: Премештање из другог налога
incoming_migrations_html: Да бисте прешли са другог налога на овај, прво морате креирате псеудоним налога.
+ moved_msg: Ваш налог сада преусмерава на %{acct} и Ваши пратиоци се тренутно пребацују.
+ not_redirecting: Ваш налог тренутно не преусмерава ни на један други налог.
+ on_cooldown: Недавно сте се преселили на нови налог. Ова функција ће Вам поново постати доступна за %{count} дана.
+ past_migrations: Претходне селидбе
+ proceed_with_move: Пребаците пратиоце
+ redirected_msg: Ваш налог сада преусмерава на %{acct}.
+ redirecting_to: Ваш налог преусмерава на %{acct}.
+ set_redirect: Постави преусмерење
+ warning:
+ backreference_required: Нови налог прво мора бити конфигурисан тако да реферише на овај налог
+ before: 'Пре него што наставите, молимо Вас пажљиво прочитајте следеће напомене:'
+ cooldown: Након пресељења потребно је да прође одређено време пре него што ћете поново моћи да се преселите
+ disabled_account: Ваш тренутни налог више неће бити употребљив. Међутим, имаћете приступ извозу података као и реактивацији.
+ followers: Ова радња ће преместити све пратиоце са тренутног налога на нови налог
+ only_redirect_html: Уместо пресељења, можете само додати преусмеравајући линк на свој профил..
+ other_data: Остали подаци неће бити аутоматски пребачени
+ redirect: Профил Вашег садашњег налога ће бити ажуриран са обавештењем о преусмерењу и биће искључен из претраге
moderation:
title: Модерација
+ move_handler:
+ carry_blocks_over_text: Овај корисник се преселио са налога %{acct}, који сте блокирали.
+ carry_mutes_over_text: Овај корисник се преселио са налога %{acct}, који сте утишали.
+ copy_account_note_text: 'Овај корисник се преселио са налога %{acct}, о коме сте записали следеће белешке:'
+ navigation:
+ toggle_menu: Прикажи/сакриј мени
notification_mailer:
+ admin:
+ report:
+ subject: "%{name} је поднео/-ла пријаву"
+ sign_up:
+ subject: "%{name} се регистровао/-ла"
favourite:
body: "%{name} је поставио као омиљен Ваш статус:"
subject: "%{name} је поставио као омиљен Ваш статус"
@@ -576,29 +1366,72 @@ sr:
body: "%{name} Вас је поменуо у:"
subject: "%{name} Вас је поменуо"
title: Ново спомињање
+ poll:
+ subject: Анкета корисника %{name} се завршила
reblog:
body: "%{name} Вам је подржао/ла статус:"
subject: "%{name} је подржао/ла Ваш статус"
title: Нова подршка
+ status:
+ subject: "%{name} jе управо поставио/-ла објаву"
+ update:
+ subject: "%{name} је изменио/-ла објаву"
notifications:
email_events: Догађаји за обавештења е-поштом
email_events_hint: 'Изаберите дешавања за која желите да примате обавештења:'
other_settings: Остала подешавања обавештења
+ number:
+ human:
+ decimal_units:
+ format: "%n %u"
+ units:
+ billion: млрд.
+ million: мил.
+ quadrillion: трил.
+ thousand: хиљ.
+ trillion: бил.
+ otp_authentication:
+ code_hint: Укуцајте код генерисан у Вашој апликацији за аутентификацију да бисте потврдили
+ description_html: Ако укључите двофакторску аутентификацију путем апликације за аутентификацију, мораћете да будете при телефону приликом пријављивања да бисте имали приступ генерисаним кодовима за пријаву.
+ enable: Омогући
+ instructions_html: "Скенирајте овај QR код помоћу Google аутентификатора или сличне апликације на свом телефону. Од сада па убудуће, та апликација ће генерисати приступне кодове које ћете морати да унесете приликом пријављивања."
+ manual_instructions: 'Ако не можете да скенирате QR код и морате да га унесете ручно, ево његове текстуалне шифре:'
+ setup: Инсталација
+ wrong_code: Унесени код је био неисправан! Да ли су време сервера и време уређаја исправни?
pagination:
newer: Новије
next: Следеће
older: Старије
prev: Претходни
+ truncate: "…"
+ polls:
+ errors:
+ already_voted: Већ сте гласали у овој анкети
+ duplicate_options: садржи дупликате
+ duration_too_long: превише је далеко у будућности
+ duration_too_short: превише је скоро
+ expired: Анкета је већ завршена
+ invalid_choice: Изабрана опција не постоји
+ over_character_limit: не може бити дуже од по %{max} карактера
+ too_few_options: мора имати више од једне опције
+ too_many_options: не може да садржи више од %{max} опција
preferences:
other: Остало
posting_defaults: Подразумевана подешавања објављивања
public_timelines: Јавне временске линије
+ privacy_policy:
+ title: Политика приватности
+ reactions:
+ errors:
+ limit_reached: Достигнуто је ограничење различитих реакција
+ unrecognized_emoji: није препознат емоџи
relationships:
activity: Активност налога
confirm_follow_selected_followers: Да ли сте сигурни да желите да пратите изабране пратиоце?
confirm_remove_selected_followers: Да ли сте сигурни да желите да уклоните изабране пратиоце?
confirm_remove_selected_follows: Да ли сте сигурни да желите да уклоните изабрана праћења?
dormant: Неактиван
+ follow_failure: Није могуће пратити неке од изабраних налога.
follow_selected_followers: Прати изабране пратиоце
followers: Пратиоци
following: Праћења
@@ -615,6 +1448,14 @@ sr:
status: Статус налога
remote_follow:
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
+ reports:
+ errors:
+ invalid_rules: не реферише на легитимна правила
+ rss:
+ content_warning: 'Упозорење о садржају:'
+ descriptions:
+ account: Јавне објаве са @%{acct}
+ tag: 'Јавне објаве означене са #%{hashtag}'
scheduled_statuses:
over_daily_limit: Прекорачили сте границу од %{limit} планираних објава за данас
over_total_limit: Прекорачили сте границу од %{limit} планираних објава
@@ -624,11 +1465,13 @@ sr:
browser: Веб читач
browsers:
alipay: Алипеј
+ blackberry: Блекбери
chrome: Chrome
edge: Мајкрософт Еџ
electron: Електрон
firefox: Фајерфокс
generic: Непознати веб читач
+ huawei_browser: Huawei прегледач
ie: Интернет Експлорер
micro_messenger: МајкроМесенџер
nokia: Нокија С40 Ови Претраживач
@@ -637,18 +1480,24 @@ sr:
phantom_js: ФантомЏејЕс
qq: КјуКју Претраживач
safari: Сафари
+ uc_browser: UC Browser
+ unknown_browser: Непознати прегледач
weibo: Веибо
current_session: Тренутна сесија
description: "%{browser} са %{platform}"
explanation: Ово су веб претраживачи који су тренутно пријављени на Ваш Мастодон налог.
+ ip: IP
platforms:
adobe_air: Адоб Ер-а
android: Андроида
+ blackberry: Блекбери
+ chrome_os: ChromeOS
firefox_os: Фајерфокс ОС-а
ios: иОС-а
+ kai_os: KaiOS
linux: Линукса
mac: Мека
- other: непознате платформе
+ unknown_platform: Непозната платформа
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
@@ -659,6 +1508,7 @@ sr:
settings:
account: Налог
account_settings: Подешавања налога
+ aliases: Псеудоними налога
appearance: Изглед
authorized_apps: Ауторизоване апликације
back: Назад на Мастодон
@@ -675,9 +1525,15 @@ sr:
profile: Налог
relationships: Праћења и пратиоци
statuses_cleanup: Аутоматско брисање објава
+ strikes: Модерацијски преступи
two_factor_authentication: Двофакторска идентификација
+ webauthn_authentication: Сигурносни кључеви
statuses:
attached:
+ audio:
+ few: "%{count} аудио записа"
+ one: "%{count} аудио запис"
+ other: "%{count} аудио записа"
description: 'У прилогу: %{attached}'
image:
few: "%{count} слика"
@@ -694,15 +1550,34 @@ sr:
few: 'садржи забрањене хештегове: %{tags}'
one: 'садржи забрањени хештег: %{tags}'
other: 'садржи забрањене хештегове: %{tags}'
+ edited_at_html: Измењено %{date}
+ errors:
+ in_reply_not_found: Објава на коју покушавате да одговорите наизглед не постоји.
open_in_web: Отвори у вебу
over_character_limit: ограничење од %{max} карактера прекорачено
pin_errors:
+ direct: Објаве које су видљиве само поменутим корисницима не могу бити прикачене
limit: Већ сте закачили максималан број објава
ownership: Туђа објава се не може закачити
reblog: Подршка не може да се прикачи
+ poll:
+ total_people:
+ few: "%{count} особе"
+ one: "%{count} особа"
+ other: "%{count} људи"
+ total_votes:
+ few: "%{count} гласа"
+ one: "%{count} глас"
+ other: "%{count} гласова"
+ vote: Гласајте
show_more: Прикажи још
+ show_newer: Никад не приказуј
+ show_older: Прикажи старије
+ show_thread: Прикажи низ
sign_in_to_participate: Пријавите се да учествујете у разговору
+ title: "%{name}: „%{quote}”"
visibilities:
+ direct: Директно
private: Само пратиоци
private_long: Прикажи само пратиоцима
public: Јавно
@@ -742,44 +1617,99 @@ sr:
min_age_label: Старосни праг
min_favs: Задржи објаве означене као омиљене најмање
min_favs_hint: Не брише ниједну вашу објаву која је добила најмање овај број омиљених. Оставите празно за брисање објава без обзира на њихов број омиљених
+ min_reblogs: Задржи објаве подржане барем
min_reblogs_hint: Не брише ниједну вашу објаву која је била подржана најмање оволико пута. Оставите празно за брисање објава без обзира на њихов број подржавања
stream_entries:
pinned: Закачена објава
reblogged: подржано
sensitive_content: Осетљив садржај
+ strikes:
+ errors:
+ too_late: Истекао је рок за подношење жалбе на забележен преступ
+ tags:
+ does_not_match_previous_name: не поклапа се са претходним именом
themes:
contrast: Велики контраст
default: Мастодон
mastodon-light: Мастодон (светло)
+ time:
+ formats:
+ default: "%d %b %Y, %H:%M"
+ month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
+ add: Додај
disable: Искључи
+ disabled_success: Двофакторска аутентификација је успешно онемогућена
+ edit: Измени
enabled: Двофакторска идентификација је укључена
enabled_success: Двофакторска идентификација је успешно укључена
generate_recovery_codes: Генериши кодове за опоравак
lost_recovery_codes: Кодови за опоравак Вам омогућавају да повратите приступ налогу ако изгубите телефон. Ако изгубите кодове за опоравак, можете их ре-генерисати овде. Од тог тренутка, стари кодови за опоравак више не важе.
+ methods: Методе двофакторске аутентификације
+ otp: Апликација за аутентификацију
recovery_codes: Направите резерву кодова за опоравак
recovery_codes_regenerated: Кодови за опоравак успешно ре-генерисани
recovery_instructions_html: Ако икада изгубите приступ телефону, можете искористити кодове за опоравак дате испод да повратите приступ налогу. Држите кодове за опоравак на сигурном. На пример, одштампајте их и чувајте их са осталим важним документима.
+ webauthn: Сигурносни кључеви
user_mailer:
+ appeal_approved:
+ action: Идите на свој налог
+ explanation: Жалба поднета датума %{appeal_date} на уписан преступ на Ваше име датума %{strike_date} је уважена. Ваш налог је поново у повољном положају.
+ subject: Ваша жалба поднета %{date} је уважена
+ title: Жалба уважена
+ appeal_rejected:
+ explanation: Жалба поднета датума %{appeal_date} на уписан преступ на Ваше име датума %{strike_date} је одбијена.
+ subject: Ваша жалба поднета %{date} је одбијена
+ title: Жалба одбијена
backup_ready:
explanation: Тражили сте потпуну резервну копију вашег Мастодон рачуна. Спремна за преузимање!
subject: Ваша архива је спремна за преузимање
title: Извоз архиве
+ suspicious_sign_in:
+ change_password: промените своју лозинку
+ details: 'Ево детаља о пријави:'
+ explanation: Приметили смо пријаву на Ваш налог са непознате IP адресе.
+ further_actions_html: Уколико то нисте били Ви, препоручујемо да одмах %{action} и укључите двофакторску аутентификацију да бисте одржали безбедност свог налога.
+ subject: Вашем налогу је приступљено са непозате IP адресе
+ title: Ново пријављивање
warning:
+ appeal: Приложите жалбу
+ appeal_description: Уколико верујете да је у питању грешка, можете приложити жалбу особљу %{instance}.
+ categories:
+ spam: Нежељена пошта
+ violation: Садржај крши следећа правила заједнице
+ explanation:
+ delete_statuses: За неке од Ваших објава је установљено да крше једно или више правила заједнице и услед тога су уклоњене од стране модератора %{instance}.
+ disable: Више не можете да користите свој налог, али Ваш профил и други подаци остају нетакнути. Можете да затражите резервну копију својих података, промените подешавања налога или обришете свој налог.
+ mark_statuses_as_sensitive: Неке од Ваших објава су означене као осетљиве од стране модератора %{instance}. Ово значи да ће људи морати да кликну на мултимедије у објавама пре него што могу да их виде. Убудуће можете сами да означите своју мултимедију као осетљиву приликом састављања објаве.
+ sensitive: Од сада ће сви Ваши отпремљени мултимедијални фајлови бити означени као осетљиви и сакривени иза тастера упозорења.
+ silence: И даље можете користити свој налог али само људи који Вас већ прате ће видети Ваше објаве на овом серверу, и можда ћете бити искључени из разних механизама откривања. Међутим, други људи и даље могу ручно да Вас запрате.
+ suspend: Више не можете да користите свој налог, и Ваш профил и остали подаци Вам више нису доступни. И даље можете да се пријавите да бисте затражили резервну копију својих података све док се Ваши подаци трајно не избришу за око 30 дана, с тим што ћемо задржати неке основне податке да бисмо Вас спречили у евентуалном заобилажењу суспензије.
+ reason: 'Образложење:'
+ statuses: 'Цитиране објаве:'
subject:
+ delete_statuses: Ваше објаве са %{acct} су избрисане
disable: Ваш налог %{acct} је замрзнут
+ mark_statuses_as_sensitive: Ваше објаве са %{acct} су обележене као осетљиве
none: Упозорење за %{acct}
+ sensitive: Ваше објаве са %{acct} ће убудуће бити означене као осетљиве
silence: Ваш налог %{acct} је ограничен
suspend: Ваш налог %{acct} је суспендован
title:
+ delete_statuses: Објаве су обрисане
disable: Налог замрзнут
+ mark_statuses_as_sensitive: Објаве су означене као осетљиве
none: Упозорење
+ sensitive: Налог је означен као осетљив
silence: Налог ограничен
suspend: Налог суспендован
welcome:
edit_profile_action: Подеси налог
+ edit_profile_step: Можете прилагодити свој профил тако што ћете поставити профилну слику, променити име за приказ и тако даље. Можете дати сагласност да прегледате нове пратиоце пре него што им дозволите да Вас запрате.
explanation: Ево неколико савета за почетак
final_action: Почните објављивати
+ final_step: 'Почните да објављујете! Чак и без пратилаца, Ваше јавне објаве су видљиве другим људима, на пример на локалној временској линији или у хеш ознакама. Можда желите да се представите са хеш ознаком #introductions или #представљања.'
full_handle: Ваш пун надимак
full_handle_hint: Ово бисте рекли својим пријатељима како би вам они послали поруку, или запратили са друге инстанце.
subject: Добродошли на Мастодон
@@ -793,3 +1723,20 @@ sr:
verification:
explanation_html: 'Можете извршити проверу да сте Ви власник веза на Вашем налогу. Да би то радило, повезани веб сајт мора да садржи везу назад ка Вашем Мастодон налогу. Веза назад мора да има rel="me" атрибут. Текстуелни садржај везе није битан. Ево примера:'
verification: Провера
+ webauthn_credentials:
+ add: Додајте нови сигурносни кључ
+ create:
+ error: Искрсао је проблем приликом додавања Вашег сигурносног кључа. Молимо Вас покушајте поново.
+ success: Ваш сигурносни кључ је успешно додат.
+ delete: Избриши
+ delete_confirmation: Да ли сте сигурни да желите да избришете овај сигурносни кључ?
+ description_html: Ако укључите аутентификацију сигурносним кључем, мораћете да користите један од својих сигурносних кључева приликом пријављивања.
+ destroy:
+ error: Искрсао је проблем приликом брисања Вашег сигурносног кључа. Молимо Вас покушајте поново.
+ success: Ваш сигурносни кључ је успешно обрисан.
+ invalid_credential: Неисправан сигурносни кључ
+ nickname_hint: Унесите надимак свог новог сигурносног кључа
+ not_enabled: Још увек нисте омогућили WebAuthn
+ not_supported: Овај претраживач не подржава сигурносне кључеве
+ otp_required: Да бисте користили сигурносне кључеве, молимо Вас прво укључите двофакторску аутентификацију.
+ registered_on: Регистрован/-а %{date}
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index aea9cea4e6..b543b18cbe 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1405,6 +1405,7 @@ sv:
confirm_remove_selected_followers: Är du säker på att du vill ta bort valda följare?
confirm_remove_selected_follows: Är du säker på att du vill ta bort valda följare?
dormant: Vilande
+ follow_failure: Kan inte följa några av de valda kontona.
follow_selected_followers: Följ valda personer
followers: Följare
following: Följer
@@ -1444,6 +1445,7 @@ sv:
electron: Electron
firefox: Firefox
generic: Okänd browser
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ sv:
qq: QQ browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Okänd browser
weibo: Weibo
current_session: Nuvarande session
description: "%{browser} på %{platform}"
@@ -1465,9 +1468,10 @@ sv:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: okänd plattform
+ unknown_platform: Okänd plattform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 815936a2d1..13a312f269 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -963,7 +963,7 @@ th:
description:
prefix_invited_by_user: "@%{name} เชิญคุณเข้าร่วมเซิร์ฟเวอร์ Mastodon นี้!"
prefix_sign_up: ลงทะเบียนใน Mastodon วันนี้!
- suffix: เมื่อมีบัญชี คุณจะสามารถติดตามผู้คน โพสต์การอัปเดต และแลกเปลี่ยนข้อความกับผู้ใช้จากเซิร์ฟเวอร์ Mastodon และอื่น ๆ!
+ suffix: ด้วยบัญชี คุณจะสามารถติดตามผู้คน โพสต์การอัปเดต และแลกเปลี่ยนข้อความกับผู้ใช้จากเซิร์ฟเวอร์ Mastodon และอื่น ๆ!
didnt_get_confirmation: ไม่ได้รับคำแนะนำการยืนยัน?
dont_have_your_security_key: ไม่มีกุญแจความปลอดภัยของคุณ?
forgot_password: ลืมรหัสผ่านของคุณ?
@@ -999,7 +999,7 @@ th:
preamble_html: ลงชื่อเข้าด้วยข้อมูลประจำตัว %{domain} ของคุณ หากบัญชีของคุณได้รับการโฮสต์ในเซิร์ฟเวอร์อื่น คุณจะไม่สามารถเข้าสู่ระบบได้ที่นี่
title: ลงชื่อเข้า %{domain}
sign_up:
- preamble: เมื่อมีบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์
+ preamble: ด้วยบัญชีในเซิร์ฟเวอร์ Mastodon นี้ คุณจะสามารถติดตามบุคคลอื่นใดในเครือข่าย โดยไม่คำนึงถึงที่ซึ่งบัญชีของเขาได้รับการโฮสต์
title: มาตั้งค่าของคุณใน %{domain} กันเลย
status:
account_status: สถานะบัญชี
@@ -1379,6 +1379,7 @@ th:
confirm_remove_selected_followers: คุณแน่ใจหรือไม่ว่าต้องการเอาผู้ติดตามที่เลือกออก?
confirm_remove_selected_follows: คุณแน่ใจหรือไม่ว่าต้องการเอาการติดตามที่เลือกออก?
dormant: ไม่เคลื่อนไหว
+ follow_failure: ไม่สามารถติดตามบัญชีที่เลือกบางส่วน
follow_selected_followers: ติดตามผู้ติดตามที่เลือก
followers: ผู้ติดตาม
following: กำลังติดตาม
@@ -1418,6 +1419,7 @@ th:
electron: Electron
firefox: Firefox
generic: เบราว์เซอร์ที่ไม่รู้จัก
+ huawei_browser: เบราว์เซอร์ Huawei
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: เบราว์เซอร์ Nokia S40 Ovi
@@ -1427,6 +1429,7 @@ th:
qq: เบราว์เซอร์ QQ
safari: Safari
uc_browser: เบราว์เซอร์ UC
+ unknown_browser: เบราว์เซอร์ที่ไม่รู้จัก
weibo: Weibo
current_session: เซสชันปัจจุบัน
description: "%{browser} ใน %{platform}"
@@ -1439,9 +1442,10 @@ th:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: แพลตฟอร์มที่ไม่รู้จัก
+ unknown_platform: แพลตฟอร์มที่ไม่รู้จัก
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 6cbd3f5103..384e060858 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1405,6 +1405,7 @@ tr:
confirm_remove_selected_followers: Seçili takipçileri kaldırmak istediğinizden emin misiniz?
confirm_remove_selected_follows: Seçili takipleri kaldırmak istediğinizden emin misiniz?
dormant: Uykuda
+ follow_failure: Seçilen hesaplardan bazıları takip edilemedi.
follow_selected_followers: Seçili takipçileri takip et
followers: Takipçiler
following: Takip edilenler
@@ -1444,6 +1445,7 @@ tr:
electron: Electron
firefox: Firefox
generic: Bilinmeyen tarayıcı
+ huawei_browser: Huawei Tarayıcı
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1453,6 +1455,7 @@ tr:
qq: QQ Browser
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Bilinmeyen Tarayıcı
weibo: Weibo
current_session: Geçerli oturum
description: "%{platform} - %{browser}"
@@ -1465,9 +1468,10 @@ tr:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: bilinmeyen platform
+ unknown_platform: Bilinmeyen Platform
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index 9e03822489..d260e8be20 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -2,16 +2,20 @@
tt:
about:
contact_unavailable: Юк
+ title: Проект турында
accounts:
follow: Языл
following: Язылгансыз
admin:
accounts:
+ approve: Хуплау
avatar: Аватар
by_domain: Домен
change_email:
label: Emailны үзгәртү
submit: Emailны үзгәртү
+ change_role:
+ no_role: Рольсез
confirm: Раслау
deleted: Бетерелде
domain: Домен
@@ -19,6 +23,7 @@ tt:
email: Эл. почта
header: Башлам
ip: ІР
+ joined: Кушылды
location:
all: Бөтенесе
local: Җирле
@@ -28,8 +33,13 @@ tt:
all: Бөтенесе
perform_full_suspension: Искә алмау
reset: Ташлату
+ role: Роль
search: Эзләү
+ security: Иминлек
+ security_measures:
+ only_password: Серсүз генә
sensitive: Sizmäle
+ title: Аккаунтлар
username: Кулланучы исеме
web: Веб
action_logs:
@@ -40,10 +50,10 @@ tt:
copy: Күчереп алу
delete: Бетерү
disable: Cүндерү
- disabled: Cүндерелгән
- enable: Кабызу
+ disabled: Cүнек
+ enable: Кушу
list: Исемлек
- upload: Йөкләү
+ upload: Йөкләтү
domain_blocks:
domain: Домен
new:
@@ -101,7 +111,7 @@ tt:
application_mailer:
salutation: "%{name},"
auth:
- change_password: Парол
+ change_password: Серсүз
login: Керү
providers:
cas: САS
@@ -141,7 +151,7 @@ tt:
exports:
archive_takeout:
date: Көне
- size: Olılıq
+ size: Зурлык
bookmarks: Кыстыргычлар
csv: СSV
filters:
@@ -158,7 +168,7 @@ tt:
imports:
types:
bookmarks: Кыстыргычлар
- upload: Йөкләү
+ upload: Йөкләтү
invites:
expired: Гамәлдән чыкты
expires_in:
@@ -172,15 +182,15 @@ tt:
number:
human:
decimal_units:
- format: "%n%u"
+ format: "%n %u"
otp_authentication:
- enable: Кабызу
+ enable: Кушу
pagination:
next: Киләсе
prev: Алдыгы
truncate: "…"
relationships:
- following: Язылгансыз
+ following: Язылулар
sessions:
browser: Браузер
browsers:
@@ -198,7 +208,7 @@ tt:
qq: QQ Brоwser
safari: Safаri
weibo: Weibо
- description: "%{browser} - %{platform}"
+ description: "%{platform} платформасында %{browser}"
ip: ІР
platforms:
adobe_air: Adobе Air
@@ -211,10 +221,10 @@ tt:
windows_mobile: Windows Mоbile
windows_phone: Windоws Phone
settings:
- account: Хисап язмасы
- appearance: Küreneş
- development: Эшләнмә
- edit_profile: Профильны үзгәртү
+ account: Аккаунт
+ appearance: Тышкы кыяфәт
+ development: Ясаучылар өчен
+ edit_profile: Профильне үзгәртү
import: Импортлау
preferences: Caylaw
profile: Профиль
@@ -244,7 +254,7 @@ tt:
edit: Үзгәртү
user_mailer:
warning:
- reason: 'Сәбаб:'
+ reason: 'Сәбәп:'
title:
none: Игътибар
webauthn_credentials:
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index 44d54363f3..8bd005961e 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1457,6 +1457,7 @@ uk:
confirm_remove_selected_followers: Ви дійсно бажаєте видалити вибраних підписників?
confirm_remove_selected_follows: Ви дійсно хочете вилучити вибрані підписки?
dormant: Неактивні
+ follow_failure: Не вдалося підписатися на деякі вибрані облікові записи.
follow_selected_followers: Стежити за вибраними підписниками
followers: Підписники
following: Підписник
@@ -1496,6 +1497,7 @@ uk:
electron: Electron
firefox: Firefox
generic: Невідомий браузер
+ huawei_browser: Huawei Браузер
ie: Internet Explorer
micro_messenger: MicroMessenger
nokia: Nokia S40 Ovi Browser
@@ -1505,6 +1507,7 @@ uk:
qq: QQ Browser
safari: Сафарі
uc_browser: UC Browser
+ unknown_browser: Невідомий браузер
weibo: Weibo
current_session: Поточний сеанс
description: "%{browser} на %{platform}"
@@ -1517,9 +1520,10 @@ uk:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: macOS
- other: невідома платформа
+ unknown_platform: Невідома Платформа
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 88592b7044..81b30e6a2b 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1379,6 +1379,7 @@ vi:
confirm_remove_selected_followers: Bạn có chắc muốn bỏ theo dõi những người đã chọn?
confirm_remove_selected_follows: Bạn có chắc muốn xoá những người theo dõi bạn đã chọn không?
dormant: Chưa
+ follow_failure: Không thể theo dõi một số tài khoản đã chọn.
follow_selected_followers: Theo dõi những người đã chọn
followers: Người theo dõi
following: Đang theo dõi
@@ -1418,6 +1419,7 @@ vi:
electron: Electron
firefox: Firefox
generic: Trình duyệt khác
+ huawei_browser: Huawei Browser
ie: Internet Explorer
micro_messenger: MicroMes hành khách
nokia: Trình duyệt Nokia S40 Ovi
@@ -1427,6 +1429,7 @@ vi:
qq: QQ
safari: Safari
uc_browser: UC Browser
+ unknown_browser: Trình duyệt khác
weibo: Weibo
current_session: Phiên hiện tại
description: "%{browser} trên %{platform}"
@@ -1439,9 +1442,10 @@ vi:
chrome_os: ChromeOS
firefox_os: Hệ điều hành Firefox
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: nền tảng khác
+ unknown_platform: Nền tảng khác
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Điện thoại Windows
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index ed1780ce8d..4267b652fd 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -999,7 +999,7 @@ zh-CN:
preamble_html: 使用您在 %{domain} 的账户和密码登录。如果您的账户托管在其他的服务器上,您将无法在此登录。
title: 登录到 %{domain}
sign_up:
- preamble: 使用此 Mastodon 服务器上的帐号,您将能够关注网络上的任何其他人,无论他们的帐号托管在哪里的主机。
+ preamble: 有了这个Mastodon服务器上的账户,您就可以关注Mastodon网络上的任何其他人,无论他们的账户在哪里。
title: 让我们在 %{domain} 上开始。
status:
account_status: 账户状态
@@ -1379,6 +1379,7 @@ zh-CN:
confirm_remove_selected_followers: 您确定想要取关所选的关注者吗?
confirm_remove_selected_follows: 您确定要删除选定的关注着吗?
dormant: 休眠
+ follow_failure: 无法关注选中的部分账户。
follow_selected_followers: 关注选中的关注者
followers: 关注者
following: 正在关注
@@ -1418,6 +1419,7 @@ zh-CN:
electron: Electron
firefox: 火狐
generic: 未知浏览器
+ huawei_browser: 华为浏览器
ie: IE 浏览器
micro_messenger: 微信
nokia: Nokia S40 Ovi 浏览器
@@ -1427,6 +1429,7 @@ zh-CN:
qq: QQ浏览器
safari: Safari
uc_browser: UC 浏览器
+ unknown_browser: 未知浏览器
weibo: 新浪微博
current_session: 当前会话
description: "%{platform} 上的 %{browser}"
@@ -1439,9 +1442,10 @@ zh-CN:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: 未知平台
+ unknown_platform: 未知平台
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index 405f321d46..835ecd33c1 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1441,7 +1441,6 @@ zh-HK:
ios: iOS
linux: Linux
mac: Mac
- other: 未知平台
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 3174287175..1e31e22491 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1132,7 +1132,7 @@ zh-TW:
domain_blocks: 網域封鎖
lists: 列表
mutes: 您靜音的使用者
- storage: 儲存空間大小
+ storage: 匯出檔案大小
featured_tags:
add_new: 新增
errors:
@@ -1381,6 +1381,7 @@ zh-TW:
confirm_remove_selected_followers: 您確定要移除選取的跟隨者嗎?
confirm_remove_selected_follows: 您確定要取消跟隨這些選取的使用者嗎?
dormant: 潛水中
+ follow_failure: 無法跟隨某些所選取的帳號。
follow_selected_followers: 跟隨選取的跟隨者
followers: 跟隨者
following: 跟隨中
@@ -1420,6 +1421,7 @@ zh-TW:
electron: Electron 瀏覽器
firefox: Firefox 瀏覽器
generic: 未知的瀏覽器
+ huawei_browser: 華為瀏覽器
ie: Internet Explorer 瀏覽器
micro_messenger: 微信
nokia: Nokia S40 Ovi 瀏覽器
@@ -1429,6 +1431,7 @@ zh-TW:
qq: QQ 瀏覽器
safari: Safari 瀏覽器
uc_browser: UC 瀏覽器
+ unknown_browser: 未知的瀏覽器
weibo: 新浪微博
current_session: 目前的 session
description: "%{platform} 上的 %{browser}"
@@ -1441,9 +1444,10 @@ zh-TW:
chrome_os: ChromeOS
firefox_os: Firefox OS
ios: iOS
+ kai_os: KaiOS
linux: Linux
mac: Mac
- other: 不明平台
+ unknown_platform: 未知的平台
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
@@ -1523,8 +1527,8 @@ zh-TW:
enabled_hint: 一旦達到指定的保存期限,就會自動刪除您的嘟文,除非該嘟文符合下列例外
exceptions: 例外
explanation: 因為刪除嘟文是耗費資源的操作,當伺服器不那麼忙碌時才會慢慢完成。因此,您的嘟文會在到達保存期限後一段時間才會被刪除。
- ignore_favs: 忽略最愛
- ignore_reblogs: 忽略轉嘟
+ ignore_favs: 忽略最愛數
+ ignore_reblogs: 忽略轉嘟數
interaction_exceptions: 基於互動的例外規則
interaction_exceptions_explanation: 請注意嘟文是無法保證被刪除的,如果在一次處理過後嘟文低於最愛或轉嘟的門檻。
keep_direct: 保留私訊
@@ -1645,7 +1649,7 @@ zh-TW:
final_action: 開始嘟嘟
final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。'
full_handle: 您的完整帳號名稱
- full_handle_hint: 您需要把這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。
+ full_handle_hint: 您需要將這告訴您的朋友們,這樣他們就能從另一個伺服器向您發送訊息或跟隨您。
subject: 歡迎來到 Mastodon
title: "%{name} 誠摯歡迎您的加入!"
users:
From edc7ca5920641e938cb50c0bf49ff6b0c77a80b4 Mon Sep 17 00:00:00 2001
From: Matt Jankowski
Date: Thu, 16 Mar 2023 17:24:01 -0400
Subject: [PATCH 0280/1254] Roll back unintentionally activated rubocop rules
(#24132)
Co-authored-by: Eugen Rochko
Co-authored-by: Nick Schonning
---
.rubocop.yml | 10 +
.rubocop_todo.yml | 1787 +--------------------------------------------
2 files changed, 11 insertions(+), 1786 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 8eb3d402ef..4f4c98dc93 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -113,6 +113,16 @@ RSpec/NotToNot:
RSpec/Rails/HttpStatus:
EnforcedStyle: numeric
+# Reason:
+# https://docs.rubocop.org/rubocop/cops_style.html#styleclassandmodulechildren
+Style/ClassAndModuleChildren:
+ Enabled: false
+
+# Reason: Classes mostly self-document with their names
+# https://docs.rubocop.org/rubocop/cops_style.html#styledocumentation
+Style/Documentation:
+ Enabled: false
+
Style/HashSyntax:
EnforcedStyle: ruby19_no_mixed_keys
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 85f078dcf2..1df2a7b107 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -150,7 +150,7 @@ Metrics/BlockNesting:
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
- Max: 373
+ Max: 368
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/CyclomaticComplexity:
@@ -1724,455 +1724,6 @@ Style/CaseLikeIf:
Exclude:
- 'app/controllers/concerns/signature_verification.rb'
-# This cop supports unsafe autocorrection (--autocorrect-all).
-# Configuration parameters: EnforcedStyle.
-# SupportedStyles: nested, compact
-Style/ClassAndModuleChildren:
- Exclude:
- - 'app/controllers/activitypub/base_controller.rb'
- - 'app/controllers/activitypub/claims_controller.rb'
- - 'app/controllers/activitypub/collections_controller.rb'
- - 'app/controllers/activitypub/followers_synchronizations_controller.rb'
- - 'app/controllers/activitypub/inboxes_controller.rb'
- - 'app/controllers/activitypub/outboxes_controller.rb'
- - 'app/controllers/activitypub/replies_controller.rb'
- - 'app/controllers/admin/announcements_controller.rb'
- - 'app/controllers/admin/disputes/appeals_controller.rb'
- - 'app/controllers/admin/domain_allows_controller.rb'
- - 'app/controllers/admin/reports/actions_controller.rb'
- - 'app/controllers/admin/settings/about_controller.rb'
- - 'app/controllers/admin/settings/appearance_controller.rb'
- - 'app/controllers/admin/settings/branding_controller.rb'
- - 'app/controllers/admin/settings/content_retention_controller.rb'
- - 'app/controllers/admin/settings/discovery_controller.rb'
- - 'app/controllers/admin/settings/registrations_controller.rb'
- - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb'
- - 'app/controllers/admin/trends/links_controller.rb'
- - 'app/controllers/admin/trends/statuses_controller.rb'
- - 'app/controllers/admin/trends/tags_controller.rb'
- - 'app/controllers/admin/users/roles_controller.rb'
- - 'app/controllers/admin/users/two_factor_authentications_controller.rb'
- - 'app/controllers/admin/webhooks/secrets_controller.rb'
- - 'app/controllers/api/base_controller.rb'
- - 'app/controllers/api/oembed_controller.rb'
- - 'app/controllers/api/v1/accounts/credentials_controller.rb'
- - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb'
- - 'app/controllers/api/v1/accounts/featured_tags_controller.rb'
- - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb'
- - 'app/controllers/api/v1/accounts/lists_controller.rb'
- - 'app/controllers/api/v1/accounts/lookup_controller.rb'
- - 'app/controllers/api/v1/accounts/notes_controller.rb'
- - 'app/controllers/api/v1/accounts/pins_controller.rb'
- - 'app/controllers/api/v1/accounts/relationships_controller.rb'
- - 'app/controllers/api/v1/accounts/search_controller.rb'
- - 'app/controllers/api/v1/accounts/statuses_controller.rb'
- - 'app/controllers/api/v1/accounts_controller.rb'
- - 'app/controllers/api/v1/admin/account_actions_controller.rb'
- - 'app/controllers/api/v1/admin/accounts_controller.rb'
- - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/dimensions_controller.rb'
- - 'app/controllers/api/v1/admin/domain_allows_controller.rb'
- - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/ip_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/measures_controller.rb'
- - 'app/controllers/api/v1/admin/reports_controller.rb'
- - 'app/controllers/api/v1/admin/retention_controller.rb'
- - 'app/controllers/api/v1/admin/trends/links_controller.rb'
- - 'app/controllers/api/v1/admin/trends/statuses_controller.rb'
- - 'app/controllers/api/v1/admin/trends/tags_controller.rb'
- - 'app/controllers/api/v1/announcements/reactions_controller.rb'
- - 'app/controllers/api/v1/announcements_controller.rb'
- - 'app/controllers/api/v1/apps/credentials_controller.rb'
- - 'app/controllers/api/v1/apps_controller.rb'
- - 'app/controllers/api/v1/blocks_controller.rb'
- - 'app/controllers/api/v1/bookmarks_controller.rb'
- - 'app/controllers/api/v1/conversations_controller.rb'
- - 'app/controllers/api/v1/crypto/deliveries_controller.rb'
- - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/claims_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/counts_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/queries_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb'
- - 'app/controllers/api/v1/custom_emojis_controller.rb'
- - 'app/controllers/api/v1/directories_controller.rb'
- - 'app/controllers/api/v1/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/emails/confirmations_controller.rb'
- - 'app/controllers/api/v1/endorsements_controller.rb'
- - 'app/controllers/api/v1/favourites_controller.rb'
- - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb'
- - 'app/controllers/api/v1/featured_tags_controller.rb'
- - 'app/controllers/api/v1/filters_controller.rb'
- - 'app/controllers/api/v1/follow_requests_controller.rb'
- - 'app/controllers/api/v1/followed_tags_controller.rb'
- - 'app/controllers/api/v1/instances/activity_controller.rb'
- - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb'
- - 'app/controllers/api/v1/instances/peers_controller.rb'
- - 'app/controllers/api/v1/instances/privacy_policies_controller.rb'
- - 'app/controllers/api/v1/instances/rules_controller.rb'
- - 'app/controllers/api/v1/instances_controller.rb'
- - 'app/controllers/api/v1/lists/accounts_controller.rb'
- - 'app/controllers/api/v1/lists_controller.rb'
- - 'app/controllers/api/v1/markers_controller.rb'
- - 'app/controllers/api/v1/media_controller.rb'
- - 'app/controllers/api/v1/mutes_controller.rb'
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/api/v1/polls/votes_controller.rb'
- - 'app/controllers/api/v1/polls_controller.rb'
- - 'app/controllers/api/v1/preferences_controller.rb'
- - 'app/controllers/api/v1/push/subscriptions_controller.rb'
- - 'app/controllers/api/v1/reports_controller.rb'
- - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
- - 'app/controllers/api/v1/statuses/bookmarks_controller.rb'
- - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/favourites_controller.rb'
- - 'app/controllers/api/v1/statuses/histories_controller.rb'
- - 'app/controllers/api/v1/statuses/mutes_controller.rb'
- - 'app/controllers/api/v1/statuses/pins_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogs_controller.rb'
- - 'app/controllers/api/v1/statuses/sources_controller.rb'
- - 'app/controllers/api/v1/statuses/translations_controller.rb'
- - 'app/controllers/api/v1/statuses_controller.rb'
- - 'app/controllers/api/v1/streaming_controller.rb'
- - 'app/controllers/api/v1/suggestions_controller.rb'
- - 'app/controllers/api/v1/tags_controller.rb'
- - 'app/controllers/api/v1/timelines/home_controller.rb'
- - 'app/controllers/api/v1/timelines/list_controller.rb'
- - 'app/controllers/api/v1/timelines/public_controller.rb'
- - 'app/controllers/api/v1/timelines/tag_controller.rb'
- - 'app/controllers/api/v1/trends/links_controller.rb'
- - 'app/controllers/api/v1/trends/statuses_controller.rb'
- - 'app/controllers/api/v1/trends/tags_controller.rb'
- - 'app/controllers/api/v2/admin/accounts_controller.rb'
- - 'app/controllers/api/v2/filters/keywords_controller.rb'
- - 'app/controllers/api/v2/filters/statuses_controller.rb'
- - 'app/controllers/api/v2/filters_controller.rb'
- - 'app/controllers/api/v2/instances_controller.rb'
- - 'app/controllers/api/v2/media_controller.rb'
- - 'app/controllers/api/v2/search_controller.rb'
- - 'app/controllers/api/v2/suggestions_controller.rb'
- - 'app/controllers/api/web/base_controller.rb'
- - 'app/controllers/api/web/embeds_controller.rb'
- - 'app/controllers/api/web/push_subscriptions_controller.rb'
- - 'app/controllers/api/web/settings_controller.rb'
- - 'app/controllers/auth/challenges_controller.rb'
- - 'app/controllers/auth/confirmations_controller.rb'
- - 'app/controllers/auth/omniauth_callbacks_controller.rb'
- - 'app/controllers/auth/passwords_controller.rb'
- - 'app/controllers/auth/registrations_controller.rb'
- - 'app/controllers/auth/sessions_controller.rb'
- - 'app/controllers/auth/setup_controller.rb'
- - 'app/controllers/disputes/appeals_controller.rb'
- - 'app/controllers/disputes/base_controller.rb'
- - 'app/controllers/disputes/strikes_controller.rb'
- - 'app/controllers/filters/statuses_controller.rb'
- - 'app/controllers/oauth/authorizations_controller.rb'
- - 'app/controllers/oauth/authorized_applications_controller.rb'
- - 'app/controllers/oauth/tokens_controller.rb'
- - 'app/controllers/settings/aliases_controller.rb'
- - 'app/controllers/settings/applications_controller.rb'
- - 'app/controllers/settings/base_controller.rb'
- - 'app/controllers/settings/deletes_controller.rb'
- - 'app/controllers/settings/exports_controller.rb'
- - 'app/controllers/settings/featured_tags_controller.rb'
- - 'app/controllers/settings/imports_controller.rb'
- - 'app/controllers/settings/login_activities_controller.rb'
- - 'app/controllers/settings/migration/redirects_controller.rb'
- - 'app/controllers/settings/migrations_controller.rb'
- - 'app/controllers/settings/preferences/appearance_controller.rb'
- - 'app/controllers/settings/preferences/notifications_controller.rb'
- - 'app/controllers/settings/preferences/other_controller.rb'
- - 'app/controllers/settings/preferences_controller.rb'
- - 'app/controllers/settings/profiles_controller.rb'
- - 'app/controllers/settings/sessions_controller.rb'
- - 'app/helpers/admin/account_moderation_notes_helper.rb'
- - 'app/helpers/admin/action_logs_helper.rb'
- - 'app/helpers/admin/dashboard_helper.rb'
- - 'app/helpers/admin/filter_helper.rb'
- - 'app/helpers/admin/settings_helper.rb'
- - 'app/helpers/admin/trends/statuses_helper.rb'
- - 'app/lib/activitypub/activity.rb'
- - 'app/lib/activitypub/activity/accept.rb'
- - 'app/lib/activitypub/activity/add.rb'
- - 'app/lib/activitypub/activity/announce.rb'
- - 'app/lib/activitypub/activity/block.rb'
- - 'app/lib/activitypub/activity/create.rb'
- - 'app/lib/activitypub/activity/delete.rb'
- - 'app/lib/activitypub/activity/flag.rb'
- - 'app/lib/activitypub/activity/follow.rb'
- - 'app/lib/activitypub/activity/like.rb'
- - 'app/lib/activitypub/activity/move.rb'
- - 'app/lib/activitypub/activity/reject.rb'
- - 'app/lib/activitypub/activity/remove.rb'
- - 'app/lib/activitypub/activity/undo.rb'
- - 'app/lib/activitypub/activity/update.rb'
- - 'app/lib/activitypub/adapter.rb'
- - 'app/lib/activitypub/case_transform.rb'
- - 'app/lib/activitypub/dereferencer.rb'
- - 'app/lib/activitypub/forwarder.rb'
- - 'app/lib/activitypub/linked_data_signature.rb'
- - 'app/lib/activitypub/parser/custom_emoji_parser.rb'
- - 'app/lib/activitypub/parser/media_attachment_parser.rb'
- - 'app/lib/activitypub/parser/poll_parser.rb'
- - 'app/lib/activitypub/parser/status_parser.rb'
- - 'app/lib/activitypub/serializer.rb'
- - 'app/lib/activitypub/tag_manager.rb'
- - 'app/lib/admin/metrics/dimension.rb'
- - 'app/lib/admin/metrics/dimension/base_dimension.rb'
- - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb'
- - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/servers_dimension.rb'
- - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb'
- - 'app/lib/admin/metrics/dimension/sources_dimension.rb'
- - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb'
- - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb'
- - 'app/lib/admin/metrics/measure.rb'
- - 'app/lib/admin/metrics/measure/active_users_measure.rb'
- - 'app/lib/admin/metrics/measure/base_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_followers_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_follows_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb'
- - 'app/lib/admin/metrics/measure/interactions_measure.rb'
- - 'app/lib/admin/metrics/measure/new_users_measure.rb'
- - 'app/lib/admin/metrics/measure/opened_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_servers_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_uses_measure.rb'
- - 'app/lib/admin/metrics/retention.rb'
- - 'app/lib/admin/system_check.rb'
- - 'app/lib/admin/system_check/base_check.rb'
- - 'app/lib/admin/system_check/database_schema_check.rb'
- - 'app/lib/admin/system_check/elasticsearch_check.rb'
- - 'app/lib/admin/system_check/message.rb'
- - 'app/lib/admin/system_check/rules_check.rb'
- - 'app/lib/admin/system_check/sidekiq_process_check.rb'
- - 'app/lib/connection_pool/shared_connection_pool.rb'
- - 'app/lib/connection_pool/shared_timed_stack.rb'
- - 'app/lib/importer/accounts_index_importer.rb'
- - 'app/lib/importer/base_importer.rb'
- - 'app/lib/importer/statuses_index_importer.rb'
- - 'app/lib/importer/tags_index_importer.rb'
- - 'app/lib/nodeinfo/adapter.rb'
- - 'app/lib/ostatus/tag_manager.rb'
- - 'app/lib/request.rb'
- - 'app/lib/rss/builder.rb'
- - 'app/lib/rss/channel.rb'
- - 'app/lib/rss/element.rb'
- - 'app/lib/rss/item.rb'
- - 'app/lib/rss/media_content.rb'
- - 'app/lib/translation_service/deepl.rb'
- - 'app/lib/translation_service/libre_translate.rb'
- - 'app/lib/translation_service/translation.rb'
- - 'app/lib/vacuum/access_tokens_vacuum.rb'
- - 'app/lib/vacuum/backups_vacuum.rb'
- - 'app/lib/vacuum/feeds_vacuum.rb'
- - 'app/lib/vacuum/media_attachments_vacuum.rb'
- - 'app/lib/vacuum/preview_cards_vacuum.rb'
- - 'app/lib/vacuum/statuses_vacuum.rb'
- - 'app/lib/vacuum/system_keys_vacuum.rb'
- - 'app/models/account/field.rb'
- - 'app/models/account_suggestions/global_source.rb'
- - 'app/models/account_suggestions/past_interactions_source.rb'
- - 'app/models/account_suggestions/setting_source.rb'
- - 'app/models/account_suggestions/source.rb'
- - 'app/models/account_suggestions/suggestion.rb'
- - 'app/models/admin/account_action.rb'
- - 'app/models/admin/action_log.rb'
- - 'app/models/admin/action_log_filter.rb'
- - 'app/models/admin/appeal_filter.rb'
- - 'app/models/admin/import.rb'
- - 'app/models/admin/status_batch_action.rb'
- - 'app/models/admin/status_filter.rb'
- - 'app/models/form/account_batch.rb'
- - 'app/models/form/admin_settings.rb'
- - 'app/models/form/challenge.rb'
- - 'app/models/form/custom_emoji_batch.rb'
- - 'app/models/form/delete_confirmation.rb'
- - 'app/models/form/domain_block_batch.rb'
- - 'app/models/form/email_domain_block_batch.rb'
- - 'app/models/form/ip_block_batch.rb'
- - 'app/models/form/redirect.rb'
- - 'app/models/form/status_filter_batch_action.rb'
- - 'app/models/form/two_factor_confirmation.rb'
- - 'app/models/trends/base.rb'
- - 'app/models/trends/history.rb'
- - 'app/models/trends/links.rb'
- - 'app/models/trends/preview_card_batch.rb'
- - 'app/models/trends/preview_card_filter.rb'
- - 'app/models/trends/preview_card_provider_batch.rb'
- - 'app/models/trends/preview_card_provider_filter.rb'
- - 'app/models/trends/query.rb'
- - 'app/models/trends/status_batch.rb'
- - 'app/models/trends/status_filter.rb'
- - 'app/models/trends/statuses.rb'
- - 'app/models/trends/tag_batch.rb'
- - 'app/models/trends/tag_filter.rb'
- - 'app/models/trends/tags.rb'
- - 'app/models/web/push_subscription.rb'
- - 'app/models/web/setting.rb'
- - 'app/policies/admin/status_policy.rb'
- - 'app/presenters/activitypub/activity_presenter.rb'
- - 'app/presenters/activitypub/collection_presenter.rb'
- - 'app/presenters/webhooks/event_presenter.rb'
- - 'app/serializers/activitypub/accept_follow_serializer.rb'
- - 'app/serializers/activitypub/activity_serializer.rb'
- - 'app/serializers/activitypub/actor_serializer.rb'
- - 'app/serializers/activitypub/add_serializer.rb'
- - 'app/serializers/activitypub/block_serializer.rb'
- - 'app/serializers/activitypub/collection_serializer.rb'
- - 'app/serializers/activitypub/delete_actor_serializer.rb'
- - 'app/serializers/activitypub/delete_serializer.rb'
- - 'app/serializers/activitypub/device_serializer.rb'
- - 'app/serializers/activitypub/emoji_serializer.rb'
- - 'app/serializers/activitypub/encrypted_message_serializer.rb'
- - 'app/serializers/activitypub/flag_serializer.rb'
- - 'app/serializers/activitypub/follow_serializer.rb'
- - 'app/serializers/activitypub/hashtag_serializer.rb'
- - 'app/serializers/activitypub/image_serializer.rb'
- - 'app/serializers/activitypub/like_serializer.rb'
- - 'app/serializers/activitypub/move_serializer.rb'
- - 'app/serializers/activitypub/note_serializer.rb'
- - 'app/serializers/activitypub/one_time_key_serializer.rb'
- - 'app/serializers/activitypub/outbox_serializer.rb'
- - 'app/serializers/activitypub/public_key_serializer.rb'
- - 'app/serializers/activitypub/reject_follow_serializer.rb'
- - 'app/serializers/activitypub/remove_serializer.rb'
- - 'app/serializers/activitypub/undo_announce_serializer.rb'
- - 'app/serializers/activitypub/undo_block_serializer.rb'
- - 'app/serializers/activitypub/undo_follow_serializer.rb'
- - 'app/serializers/activitypub/undo_like_serializer.rb'
- - 'app/serializers/activitypub/update_poll_serializer.rb'
- - 'app/serializers/activitypub/update_serializer.rb'
- - 'app/serializers/activitypub/vote_serializer.rb'
- - 'app/serializers/nodeinfo/discovery_serializer.rb'
- - 'app/serializers/nodeinfo/serializer.rb'
- - 'app/serializers/rest/account_serializer.rb'
- - 'app/serializers/rest/admin/account_serializer.rb'
- - 'app/serializers/rest/admin/canonical_email_block_serializer.rb'
- - 'app/serializers/rest/admin/cohort_serializer.rb'
- - 'app/serializers/rest/admin/dimension_serializer.rb'
- - 'app/serializers/rest/admin/domain_allow_serializer.rb'
- - 'app/serializers/rest/admin/domain_block_serializer.rb'
- - 'app/serializers/rest/admin/email_domain_block_serializer.rb'
- - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb'
- - 'app/serializers/rest/admin/ip_block_serializer.rb'
- - 'app/serializers/rest/admin/ip_serializer.rb'
- - 'app/serializers/rest/admin/measure_serializer.rb'
- - 'app/serializers/rest/admin/report_serializer.rb'
- - 'app/serializers/rest/admin/tag_serializer.rb'
- - 'app/serializers/rest/admin/webhook_event_serializer.rb'
- - 'app/serializers/rest/announcement_serializer.rb'
- - 'app/serializers/rest/application_serializer.rb'
- - 'app/serializers/rest/context_serializer.rb'
- - 'app/serializers/rest/conversation_serializer.rb'
- - 'app/serializers/rest/credential_account_serializer.rb'
- - 'app/serializers/rest/custom_emoji_serializer.rb'
- - 'app/serializers/rest/domain_block_serializer.rb'
- - 'app/serializers/rest/encrypted_message_serializer.rb'
- - 'app/serializers/rest/extended_description_serializer.rb'
- - 'app/serializers/rest/familiar_followers_serializer.rb'
- - 'app/serializers/rest/featured_tag_serializer.rb'
- - 'app/serializers/rest/filter_keyword_serializer.rb'
- - 'app/serializers/rest/filter_result_serializer.rb'
- - 'app/serializers/rest/filter_serializer.rb'
- - 'app/serializers/rest/filter_status_serializer.rb'
- - 'app/serializers/rest/instance_serializer.rb'
- - 'app/serializers/rest/keys/claim_result_serializer.rb'
- - 'app/serializers/rest/keys/device_serializer.rb'
- - 'app/serializers/rest/keys/query_result_serializer.rb'
- - 'app/serializers/rest/list_serializer.rb'
- - 'app/serializers/rest/marker_serializer.rb'
- - 'app/serializers/rest/media_attachment_serializer.rb'
- - 'app/serializers/rest/muted_account_serializer.rb'
- - 'app/serializers/rest/notification_serializer.rb'
- - 'app/serializers/rest/poll_serializer.rb'
- - 'app/serializers/rest/preferences_serializer.rb'
- - 'app/serializers/rest/preview_card_serializer.rb'
- - 'app/serializers/rest/privacy_policy_serializer.rb'
- - 'app/serializers/rest/reaction_serializer.rb'
- - 'app/serializers/rest/relationship_serializer.rb'
- - 'app/serializers/rest/report_serializer.rb'
- - 'app/serializers/rest/role_serializer.rb'
- - 'app/serializers/rest/rule_serializer.rb'
- - 'app/serializers/rest/scheduled_status_serializer.rb'
- - 'app/serializers/rest/search_serializer.rb'
- - 'app/serializers/rest/status_edit_serializer.rb'
- - 'app/serializers/rest/status_serializer.rb'
- - 'app/serializers/rest/status_source_serializer.rb'
- - 'app/serializers/rest/suggestion_serializer.rb'
- - 'app/serializers/rest/tag_serializer.rb'
- - 'app/serializers/rest/translation_serializer.rb'
- - 'app/serializers/rest/trends/link_serializer.rb'
- - 'app/serializers/rest/v1/filter_serializer.rb'
- - 'app/serializers/rest/v1/instance_serializer.rb'
- - 'app/serializers/rest/web_push_subscription_serializer.rb'
- - 'app/serializers/web/notification_serializer.rb'
- - 'app/services/activitypub/fetch_featured_collection_service.rb'
- - 'app/services/activitypub/fetch_featured_tags_collection_service.rb'
- - 'app/services/activitypub/fetch_remote_account_service.rb'
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
- - 'app/services/activitypub/fetch_remote_key_service.rb'
- - 'app/services/activitypub/fetch_remote_poll_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/activitypub/fetch_replies_service.rb'
- - 'app/services/activitypub/prepare_followers_synchronization_service.rb'
- - 'app/services/activitypub/process_account_service.rb'
- - 'app/services/activitypub/process_collection_service.rb'
- - 'app/services/activitypub/process_status_update_service.rb'
- - 'app/services/activitypub/synchronize_followers_service.rb'
- - 'app/services/keys/claim_service.rb'
- - 'app/services/keys/query_service.rb'
- - 'app/workers/activitypub/account_raw_distribution_worker.rb'
- - 'app/workers/activitypub/delivery_worker.rb'
- - 'app/workers/activitypub/distribute_poll_update_worker.rb'
- - 'app/workers/activitypub/distribution_worker.rb'
- - 'app/workers/activitypub/fetch_replies_worker.rb'
- - 'app/workers/activitypub/followers_synchronization_worker.rb'
- - 'app/workers/activitypub/low_priority_delivery_worker.rb'
- - 'app/workers/activitypub/migrated_follow_delivery_worker.rb'
- - 'app/workers/activitypub/move_distribution_worker.rb'
- - 'app/workers/activitypub/post_upgrade_worker.rb'
- - 'app/workers/activitypub/processing_worker.rb'
- - 'app/workers/activitypub/raw_distribution_worker.rb'
- - 'app/workers/activitypub/status_update_distribution_worker.rb'
- - 'app/workers/activitypub/synchronize_featured_collection_worker.rb'
- - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb'
- - 'app/workers/activitypub/update_distribution_worker.rb'
- - 'app/workers/admin/account_deletion_worker.rb'
- - 'app/workers/admin/domain_purge_worker.rb'
- - 'app/workers/admin/suspension_worker.rb'
- - 'app/workers/admin/unsuspension_worker.rb'
- - 'app/workers/import/relationship_worker.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'app/workers/scheduler/follow_recommendations_scheduler.rb'
- - 'app/workers/scheduler/indexing_scheduler.rb'
- - 'app/workers/scheduler/instance_refresh_scheduler.rb'
- - 'app/workers/scheduler/ip_cleanup_scheduler.rb'
- - 'app/workers/scheduler/pghero_scheduler.rb'
- - 'app/workers/scheduler/scheduled_statuses_scheduler.rb'
- - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb'
- - 'app/workers/scheduler/trends/refresh_scheduler.rb'
- - 'app/workers/scheduler/trends/review_notifications_scheduler.rb'
- - 'app/workers/scheduler/user_cleanup_scheduler.rb'
- - 'app/workers/scheduler/vacuum_scheduler.rb'
- - 'app/workers/web/push_notification_worker.rb'
- - 'app/workers/webhooks/delivery_worker.rb'
- - 'lib/mastodon/rack_middleware.rb'
- - 'lib/mastodon/sidekiq_middleware.rb'
- - 'lib/mastodon/snowflake.rb'
- - 'lib/webpacker/helper_extensions.rb'
- - 'lib/webpacker/manifest_extensions.rb'
-
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedMethods, AllowedPatterns.
# AllowedMethods: ==, equal?, eql?
@@ -2191,1342 +1742,6 @@ Style/ConcatArrayLiterals:
Exclude:
- 'app/lib/feed_manager.rb'
-# Configuration parameters: AllowedConstants.
-Style/Documentation:
- Exclude:
- - 'app/chewy/accounts_index.rb'
- - 'app/chewy/statuses_index.rb'
- - 'app/chewy/tags_index.rb'
- - 'app/controllers/about_controller.rb'
- - 'app/controllers/accounts_controller.rb'
- - 'app/controllers/activitypub/base_controller.rb'
- - 'app/controllers/activitypub/claims_controller.rb'
- - 'app/controllers/activitypub/collections_controller.rb'
- - 'app/controllers/activitypub/followers_synchronizations_controller.rb'
- - 'app/controllers/activitypub/inboxes_controller.rb'
- - 'app/controllers/activitypub/outboxes_controller.rb'
- - 'app/controllers/activitypub/replies_controller.rb'
- - 'app/controllers/admin/account_actions_controller.rb'
- - 'app/controllers/admin/account_moderation_notes_controller.rb'
- - 'app/controllers/admin/accounts_controller.rb'
- - 'app/controllers/admin/action_logs_controller.rb'
- - 'app/controllers/admin/announcements_controller.rb'
- - 'app/controllers/admin/base_controller.rb'
- - 'app/controllers/admin/change_emails_controller.rb'
- - 'app/controllers/admin/confirmations_controller.rb'
- - 'app/controllers/admin/custom_emojis_controller.rb'
- - 'app/controllers/admin/dashboard_controller.rb'
- - 'app/controllers/admin/disputes/appeals_controller.rb'
- - 'app/controllers/admin/domain_allows_controller.rb'
- - 'app/controllers/admin/domain_blocks_controller.rb'
- - 'app/controllers/admin/email_domain_blocks_controller.rb'
- - 'app/controllers/admin/export_domain_allows_controller.rb'
- - 'app/controllers/admin/export_domain_blocks_controller.rb'
- - 'app/controllers/admin/follow_recommendations_controller.rb'
- - 'app/controllers/admin/instances_controller.rb'
- - 'app/controllers/admin/invites_controller.rb'
- - 'app/controllers/admin/ip_blocks_controller.rb'
- - 'app/controllers/admin/relationships_controller.rb'
- - 'app/controllers/admin/relays_controller.rb'
- - 'app/controllers/admin/report_notes_controller.rb'
- - 'app/controllers/admin/reports/actions_controller.rb'
- - 'app/controllers/admin/reports_controller.rb'
- - 'app/controllers/admin/resets_controller.rb'
- - 'app/controllers/admin/roles_controller.rb'
- - 'app/controllers/admin/rules_controller.rb'
- - 'app/controllers/admin/settings/about_controller.rb'
- - 'app/controllers/admin/settings/appearance_controller.rb'
- - 'app/controllers/admin/settings/branding_controller.rb'
- - 'app/controllers/admin/settings/content_retention_controller.rb'
- - 'app/controllers/admin/settings/discovery_controller.rb'
- - 'app/controllers/admin/settings/registrations_controller.rb'
- - 'app/controllers/admin/settings_controller.rb'
- - 'app/controllers/admin/site_uploads_controller.rb'
- - 'app/controllers/admin/statuses_controller.rb'
- - 'app/controllers/admin/tags_controller.rb'
- - 'app/controllers/admin/trends/links/preview_card_providers_controller.rb'
- - 'app/controllers/admin/trends/links_controller.rb'
- - 'app/controllers/admin/trends/statuses_controller.rb'
- - 'app/controllers/admin/trends/tags_controller.rb'
- - 'app/controllers/admin/users/roles_controller.rb'
- - 'app/controllers/admin/users/two_factor_authentications_controller.rb'
- - 'app/controllers/admin/warning_presets_controller.rb'
- - 'app/controllers/admin/webhooks/secrets_controller.rb'
- - 'app/controllers/admin/webhooks_controller.rb'
- - 'app/controllers/api/base_controller.rb'
- - 'app/controllers/api/oembed_controller.rb'
- - 'app/controllers/api/v1/accounts/credentials_controller.rb'
- - 'app/controllers/api/v1/accounts/familiar_followers_controller.rb'
- - 'app/controllers/api/v1/accounts/featured_tags_controller.rb'
- - 'app/controllers/api/v1/accounts/follower_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/following_accounts_controller.rb'
- - 'app/controllers/api/v1/accounts/identity_proofs_controller.rb'
- - 'app/controllers/api/v1/accounts/lists_controller.rb'
- - 'app/controllers/api/v1/accounts/lookup_controller.rb'
- - 'app/controllers/api/v1/accounts/notes_controller.rb'
- - 'app/controllers/api/v1/accounts/pins_controller.rb'
- - 'app/controllers/api/v1/accounts/relationships_controller.rb'
- - 'app/controllers/api/v1/accounts/search_controller.rb'
- - 'app/controllers/api/v1/accounts/statuses_controller.rb'
- - 'app/controllers/api/v1/accounts_controller.rb'
- - 'app/controllers/api/v1/admin/account_actions_controller.rb'
- - 'app/controllers/api/v1/admin/accounts_controller.rb'
- - 'app/controllers/api/v1/admin/canonical_email_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/dimensions_controller.rb'
- - 'app/controllers/api/v1/admin/domain_allows_controller.rb'
- - 'app/controllers/api/v1/admin/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/email_domain_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/ip_blocks_controller.rb'
- - 'app/controllers/api/v1/admin/measures_controller.rb'
- - 'app/controllers/api/v1/admin/reports_controller.rb'
- - 'app/controllers/api/v1/admin/retention_controller.rb'
- - 'app/controllers/api/v1/admin/trends/links_controller.rb'
- - 'app/controllers/api/v1/admin/trends/statuses_controller.rb'
- - 'app/controllers/api/v1/admin/trends/tags_controller.rb'
- - 'app/controllers/api/v1/announcements/reactions_controller.rb'
- - 'app/controllers/api/v1/announcements_controller.rb'
- - 'app/controllers/api/v1/apps/credentials_controller.rb'
- - 'app/controllers/api/v1/apps_controller.rb'
- - 'app/controllers/api/v1/blocks_controller.rb'
- - 'app/controllers/api/v1/bookmarks_controller.rb'
- - 'app/controllers/api/v1/conversations_controller.rb'
- - 'app/controllers/api/v1/crypto/deliveries_controller.rb'
- - 'app/controllers/api/v1/crypto/encrypted_messages_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/claims_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/counts_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/queries_controller.rb'
- - 'app/controllers/api/v1/crypto/keys/uploads_controller.rb'
- - 'app/controllers/api/v1/custom_emojis_controller.rb'
- - 'app/controllers/api/v1/directories_controller.rb'
- - 'app/controllers/api/v1/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/emails/confirmations_controller.rb'
- - 'app/controllers/api/v1/endorsements_controller.rb'
- - 'app/controllers/api/v1/favourites_controller.rb'
- - 'app/controllers/api/v1/featured_tags/suggestions_controller.rb'
- - 'app/controllers/api/v1/featured_tags_controller.rb'
- - 'app/controllers/api/v1/filters_controller.rb'
- - 'app/controllers/api/v1/follow_requests_controller.rb'
- - 'app/controllers/api/v1/followed_tags_controller.rb'
- - 'app/controllers/api/v1/instances/activity_controller.rb'
- - 'app/controllers/api/v1/instances/domain_blocks_controller.rb'
- - 'app/controllers/api/v1/instances/extended_descriptions_controller.rb'
- - 'app/controllers/api/v1/instances/peers_controller.rb'
- - 'app/controllers/api/v1/instances/privacy_policies_controller.rb'
- - 'app/controllers/api/v1/instances/rules_controller.rb'
- - 'app/controllers/api/v1/instances_controller.rb'
- - 'app/controllers/api/v1/lists/accounts_controller.rb'
- - 'app/controllers/api/v1/lists_controller.rb'
- - 'app/controllers/api/v1/markers_controller.rb'
- - 'app/controllers/api/v1/media_controller.rb'
- - 'app/controllers/api/v1/mutes_controller.rb'
- - 'app/controllers/api/v1/notifications_controller.rb'
- - 'app/controllers/api/v1/polls/votes_controller.rb'
- - 'app/controllers/api/v1/polls_controller.rb'
- - 'app/controllers/api/v1/preferences_controller.rb'
- - 'app/controllers/api/v1/push/subscriptions_controller.rb'
- - 'app/controllers/api/v1/reports_controller.rb'
- - 'app/controllers/api/v1/scheduled_statuses_controller.rb'
- - 'app/controllers/api/v1/statuses/bookmarks_controller.rb'
- - 'app/controllers/api/v1/statuses/favourited_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/favourites_controller.rb'
- - 'app/controllers/api/v1/statuses/histories_controller.rb'
- - 'app/controllers/api/v1/statuses/mutes_controller.rb'
- - 'app/controllers/api/v1/statuses/pins_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogged_by_accounts_controller.rb'
- - 'app/controllers/api/v1/statuses/reblogs_controller.rb'
- - 'app/controllers/api/v1/statuses/sources_controller.rb'
- - 'app/controllers/api/v1/statuses/translations_controller.rb'
- - 'app/controllers/api/v1/statuses_controller.rb'
- - 'app/controllers/api/v1/streaming_controller.rb'
- - 'app/controllers/api/v1/suggestions_controller.rb'
- - 'app/controllers/api/v1/tags_controller.rb'
- - 'app/controllers/api/v1/timelines/home_controller.rb'
- - 'app/controllers/api/v1/timelines/list_controller.rb'
- - 'app/controllers/api/v1/timelines/public_controller.rb'
- - 'app/controllers/api/v1/timelines/tag_controller.rb'
- - 'app/controllers/api/v1/trends/links_controller.rb'
- - 'app/controllers/api/v1/trends/statuses_controller.rb'
- - 'app/controllers/api/v1/trends/tags_controller.rb'
- - 'app/controllers/api/v2/admin/accounts_controller.rb'
- - 'app/controllers/api/v2/filters/keywords_controller.rb'
- - 'app/controllers/api/v2/filters/statuses_controller.rb'
- - 'app/controllers/api/v2/filters_controller.rb'
- - 'app/controllers/api/v2/instances_controller.rb'
- - 'app/controllers/api/v2/media_controller.rb'
- - 'app/controllers/api/v2/search_controller.rb'
- - 'app/controllers/api/v2/suggestions_controller.rb'
- - 'app/controllers/api/web/base_controller.rb'
- - 'app/controllers/api/web/embeds_controller.rb'
- - 'app/controllers/api/web/push_subscriptions_controller.rb'
- - 'app/controllers/api/web/settings_controller.rb'
- - 'app/controllers/application_controller.rb'
- - 'app/controllers/auth/challenges_controller.rb'
- - 'app/controllers/auth/confirmations_controller.rb'
- - 'app/controllers/auth/omniauth_callbacks_controller.rb'
- - 'app/controllers/auth/passwords_controller.rb'
- - 'app/controllers/auth/registrations_controller.rb'
- - 'app/controllers/auth/sessions_controller.rb'
- - 'app/controllers/auth/setup_controller.rb'
- - 'app/controllers/authorize_interactions_controller.rb'
- - 'app/controllers/concerns/access_token_tracking_concern.rb'
- - 'app/controllers/concerns/account_controller_concern.rb'
- - 'app/controllers/concerns/account_owned_concern.rb'
- - 'app/controllers/concerns/accountable_concern.rb'
- - 'app/controllers/concerns/admin_export_controller_concern.rb'
- - 'app/controllers/concerns/authorization.rb'
- - 'app/controllers/concerns/cache_concern.rb'
- - 'app/controllers/concerns/export_controller_concern.rb'
- - 'app/controllers/concerns/localized.rb'
- - 'app/controllers/concerns/rate_limit_headers.rb'
- - 'app/controllers/concerns/registration_spam_concern.rb'
- - 'app/controllers/concerns/session_tracking_concern.rb'
- - 'app/controllers/concerns/signature_authentication.rb'
- - 'app/controllers/concerns/signature_verification.rb'
- - 'app/controllers/concerns/two_factor_authentication_concern.rb'
- - 'app/controllers/concerns/user_tracking_concern.rb'
- - 'app/controllers/concerns/web_app_controller_concern.rb'
- - 'app/controllers/custom_css_controller.rb'
- - 'app/controllers/disputes/appeals_controller.rb'
- - 'app/controllers/disputes/base_controller.rb'
- - 'app/controllers/disputes/strikes_controller.rb'
- - 'app/controllers/emojis_controller.rb'
- - 'app/controllers/filters/statuses_controller.rb'
- - 'app/controllers/filters_controller.rb'
- - 'app/controllers/follower_accounts_controller.rb'
- - 'app/controllers/following_accounts_controller.rb'
- - 'app/controllers/health_controller.rb'
- - 'app/controllers/home_controller.rb'
- - 'app/controllers/instance_actors_controller.rb'
- - 'app/controllers/intents_controller.rb'
- - 'app/controllers/invites_controller.rb'
- - 'app/controllers/manifests_controller.rb'
- - 'app/controllers/media_controller.rb'
- - 'app/controllers/media_proxy_controller.rb'
- - 'app/controllers/oauth/authorizations_controller.rb'
- - 'app/controllers/oauth/authorized_applications_controller.rb'
- - 'app/controllers/oauth/tokens_controller.rb'
- - 'app/controllers/privacy_controller.rb'
- - 'app/controllers/relationships_controller.rb'
- - 'app/controllers/settings/aliases_controller.rb'
- - 'app/controllers/settings/applications_controller.rb'
- - 'app/controllers/settings/base_controller.rb'
- - 'app/controllers/settings/deletes_controller.rb'
- - 'app/controllers/settings/exports/blocked_accounts_controller.rb'
- - 'app/controllers/settings/exports/blocked_domains_controller.rb'
- - 'app/controllers/settings/exports/bookmarks_controller.rb'
- - 'app/controllers/settings/exports/following_accounts_controller.rb'
- - 'app/controllers/settings/exports/lists_controller.rb'
- - 'app/controllers/settings/exports/muted_accounts_controller.rb'
- - 'app/controllers/settings/exports_controller.rb'
- - 'app/controllers/settings/featured_tags_controller.rb'
- - 'app/controllers/settings/imports_controller.rb'
- - 'app/controllers/settings/login_activities_controller.rb'
- - 'app/controllers/settings/migration/redirects_controller.rb'
- - 'app/controllers/settings/migrations_controller.rb'
- - 'app/controllers/settings/pictures_controller.rb'
- - 'app/controllers/settings/preferences/appearance_controller.rb'
- - 'app/controllers/settings/preferences/notifications_controller.rb'
- - 'app/controllers/settings/preferences/other_controller.rb'
- - 'app/controllers/settings/preferences_controller.rb'
- - 'app/controllers/settings/profiles_controller.rb'
- - 'app/controllers/settings/sessions_controller.rb'
- - 'app/controllers/settings/two_factor_authentication/confirmations_controller.rb'
- - 'app/controllers/settings/two_factor_authentication/otp_authentication_controller.rb'
- - 'app/controllers/settings/two_factor_authentication/recovery_codes_controller.rb'
- - 'app/controllers/settings/two_factor_authentication/webauthn_credentials_controller.rb'
- - 'app/controllers/settings/two_factor_authentication_methods_controller.rb'
- - 'app/controllers/shares_controller.rb'
- - 'app/controllers/statuses_cleanup_controller.rb'
- - 'app/controllers/statuses_controller.rb'
- - 'app/controllers/tags_controller.rb'
- - 'app/controllers/well_known/host_meta_controller.rb'
- - 'app/controllers/well_known/nodeinfo_controller.rb'
- - 'app/controllers/well_known/webfinger_controller.rb'
- - 'app/helpers/accounts_helper.rb'
- - 'app/helpers/admin/account_moderation_notes_helper.rb'
- - 'app/helpers/admin/action_logs_helper.rb'
- - 'app/helpers/admin/dashboard_helper.rb'
- - 'app/helpers/admin/filter_helper.rb'
- - 'app/helpers/admin/settings_helper.rb'
- - 'app/helpers/admin/trends/statuses_helper.rb'
- - 'app/helpers/application_helper.rb'
- - 'app/helpers/branding_helper.rb'
- - 'app/helpers/context_helper.rb'
- - 'app/helpers/domain_control_helper.rb'
- - 'app/helpers/email_helper.rb'
- - 'app/helpers/flashes_helper.rb'
- - 'app/helpers/formatting_helper.rb'
- - 'app/helpers/home_helper.rb'
- - 'app/helpers/instance_helper.rb'
- - 'app/helpers/jsonld_helper.rb'
- - 'app/helpers/languages_helper.rb'
- - 'app/helpers/mascot_helper.rb'
- - 'app/helpers/routing_helper.rb'
- - 'app/helpers/settings_helper.rb'
- - 'app/helpers/statuses_helper.rb'
- - 'app/helpers/webfinger_helper.rb'
- - 'app/lib/access_token_extension.rb'
- - 'app/lib/account_reach_finder.rb'
- - 'app/lib/activity_tracker.rb'
- - 'app/lib/activitypub/activity.rb'
- - 'app/lib/activitypub/activity/accept.rb'
- - 'app/lib/activitypub/activity/add.rb'
- - 'app/lib/activitypub/activity/announce.rb'
- - 'app/lib/activitypub/activity/block.rb'
- - 'app/lib/activitypub/activity/create.rb'
- - 'app/lib/activitypub/activity/delete.rb'
- - 'app/lib/activitypub/activity/flag.rb'
- - 'app/lib/activitypub/activity/follow.rb'
- - 'app/lib/activitypub/activity/like.rb'
- - 'app/lib/activitypub/activity/move.rb'
- - 'app/lib/activitypub/activity/reject.rb'
- - 'app/lib/activitypub/activity/remove.rb'
- - 'app/lib/activitypub/activity/undo.rb'
- - 'app/lib/activitypub/activity/update.rb'
- - 'app/lib/activitypub/adapter.rb'
- - 'app/lib/activitypub/case_transform.rb'
- - 'app/lib/activitypub/dereferencer.rb'
- - 'app/lib/activitypub/forwarder.rb'
- - 'app/lib/activitypub/linked_data_signature.rb'
- - 'app/lib/activitypub/parser/custom_emoji_parser.rb'
- - 'app/lib/activitypub/parser/media_attachment_parser.rb'
- - 'app/lib/activitypub/parser/poll_parser.rb'
- - 'app/lib/activitypub/parser/status_parser.rb'
- - 'app/lib/activitypub/serializer.rb'
- - 'app/lib/activitypub/tag_manager.rb'
- - 'app/lib/admin/metrics/dimension.rb'
- - 'app/lib/admin/metrics/dimension/base_dimension.rb'
- - 'app/lib/admin/metrics/dimension/instance_accounts_dimension.rb'
- - 'app/lib/admin/metrics/dimension/instance_languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/servers_dimension.rb'
- - 'app/lib/admin/metrics/dimension/software_versions_dimension.rb'
- - 'app/lib/admin/metrics/dimension/sources_dimension.rb'
- - 'app/lib/admin/metrics/dimension/space_usage_dimension.rb'
- - 'app/lib/admin/metrics/dimension/tag_languages_dimension.rb'
- - 'app/lib/admin/metrics/dimension/tag_servers_dimension.rb'
- - 'app/lib/admin/metrics/measure.rb'
- - 'app/lib/admin/metrics/measure/active_users_measure.rb'
- - 'app/lib/admin/metrics/measure/base_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_accounts_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_followers_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_follows_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_media_attachments_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/instance_statuses_measure.rb'
- - 'app/lib/admin/metrics/measure/interactions_measure.rb'
- - 'app/lib/admin/metrics/measure/new_users_measure.rb'
- - 'app/lib/admin/metrics/measure/opened_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/resolved_reports_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_accounts_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_servers_measure.rb'
- - 'app/lib/admin/metrics/measure/tag_uses_measure.rb'
- - 'app/lib/admin/metrics/retention.rb'
- - 'app/lib/admin/system_check.rb'
- - 'app/lib/admin/system_check/base_check.rb'
- - 'app/lib/admin/system_check/database_schema_check.rb'
- - 'app/lib/admin/system_check/elasticsearch_check.rb'
- - 'app/lib/admin/system_check/message.rb'
- - 'app/lib/admin/system_check/rules_check.rb'
- - 'app/lib/admin/system_check/sidekiq_process_check.rb'
- - 'app/lib/application_extension.rb'
- - 'app/lib/ascii_folding.rb'
- - 'app/lib/cache_buster.rb'
- - 'app/lib/connection_pool/shared_connection_pool.rb'
- - 'app/lib/connection_pool/shared_timed_stack.rb'
- - 'app/lib/delivery_failure_tracker.rb'
- - 'app/lib/emoji_formatter.rb'
- - 'app/lib/entity_cache.rb'
- - 'app/lib/extractor.rb'
- - 'app/lib/fast_geometry_parser.rb'
- - 'app/lib/fast_ip_map.rb'
- - 'app/lib/feed_manager.rb'
- - 'app/lib/hash_object.rb'
- - 'app/lib/hashtag_normalizer.rb'
- - 'app/lib/html_aware_formatter.rb'
- - 'app/lib/importer/accounts_index_importer.rb'
- - 'app/lib/importer/base_importer.rb'
- - 'app/lib/importer/statuses_index_importer.rb'
- - 'app/lib/importer/tags_index_importer.rb'
- - 'app/lib/inline_renderer.rb'
- - 'app/lib/link_details_extractor.rb'
- - 'app/lib/nodeinfo/adapter.rb'
- - 'app/lib/ostatus/tag_manager.rb'
- - 'app/lib/permalink_redirector.rb'
- - 'app/lib/plain_text_formatter.rb'
- - 'app/lib/potential_friendship_tracker.rb'
- - 'app/lib/rate_limiter.rb'
- - 'app/lib/redis_configuration.rb'
- - 'app/lib/request.rb'
- - 'app/lib/request_pool.rb'
- - 'app/lib/response_with_limit.rb'
- - 'app/lib/rss/builder.rb'
- - 'app/lib/rss/channel.rb'
- - 'app/lib/rss/element.rb'
- - 'app/lib/rss/item.rb'
- - 'app/lib/rss/media_content.rb'
- - 'app/lib/scope_parser.rb'
- - 'app/lib/scope_transformer.rb'
- - 'app/lib/search_query_parser.rb'
- - 'app/lib/search_query_transformer.rb'
- - 'app/lib/settings/extend.rb'
- - 'app/lib/settings/scoped_settings.rb'
- - 'app/lib/status_cache_hydrator.rb'
- - 'app/lib/status_filter.rb'
- - 'app/lib/status_finder.rb'
- - 'app/lib/status_reach_finder.rb'
- - 'app/lib/suspicious_sign_in_detector.rb'
- - 'app/lib/tag_manager.rb'
- - 'app/lib/text_formatter.rb'
- - 'app/lib/themes.rb'
- - 'app/lib/translation_service.rb'
- - 'app/lib/translation_service/deepl.rb'
- - 'app/lib/translation_service/libre_translate.rb'
- - 'app/lib/translation_service/translation.rb'
- - 'app/lib/user_settings_decorator.rb'
- - 'app/lib/vacuum.rb'
- - 'app/lib/vacuum/access_tokens_vacuum.rb'
- - 'app/lib/vacuum/backups_vacuum.rb'
- - 'app/lib/vacuum/feeds_vacuum.rb'
- - 'app/lib/vacuum/media_attachments_vacuum.rb'
- - 'app/lib/vacuum/preview_cards_vacuum.rb'
- - 'app/lib/vacuum/statuses_vacuum.rb'
- - 'app/lib/vacuum/system_keys_vacuum.rb'
- - 'app/lib/validation_error_formatter.rb'
- - 'app/lib/video_metadata_extractor.rb'
- - 'app/lib/webfinger.rb'
- - 'app/lib/webfinger_resource.rb'
- - 'app/mailers/admin_mailer.rb'
- - 'app/mailers/application_mailer.rb'
- - 'app/mailers/notification_mailer.rb'
- - 'app/mailers/user_mailer.rb'
- - 'app/models/account.rb'
- - 'app/models/account/field.rb'
- - 'app/models/account_alias.rb'
- - 'app/models/account_conversation.rb'
- - 'app/models/account_domain_block.rb'
- - 'app/models/account_filter.rb'
- - 'app/models/account_migration.rb'
- - 'app/models/account_moderation_note.rb'
- - 'app/models/account_pin.rb'
- - 'app/models/account_stat.rb'
- - 'app/models/account_statuses_filter.rb'
- - 'app/models/account_suggestions.rb'
- - 'app/models/account_suggestions/global_source.rb'
- - 'app/models/account_suggestions/past_interactions_source.rb'
- - 'app/models/account_suggestions/setting_source.rb'
- - 'app/models/account_suggestions/source.rb'
- - 'app/models/account_suggestions/suggestion.rb'
- - 'app/models/account_summary.rb'
- - 'app/models/account_warning.rb'
- - 'app/models/account_warning_preset.rb'
- - 'app/models/admin.rb'
- - 'app/models/admin/account_action.rb'
- - 'app/models/admin/action_log.rb'
- - 'app/models/admin/action_log_filter.rb'
- - 'app/models/admin/appeal_filter.rb'
- - 'app/models/admin/status_batch_action.rb'
- - 'app/models/admin/status_filter.rb'
- - 'app/models/announcement.rb'
- - 'app/models/announcement_filter.rb'
- - 'app/models/announcement_mute.rb'
- - 'app/models/announcement_reaction.rb'
- - 'app/models/application_record.rb'
- - 'app/models/backup.rb'
- - 'app/models/block.rb'
- - 'app/models/bookmark.rb'
- - 'app/models/canonical_email_block.rb'
- - 'app/models/concerns/account_associations.rb'
- - 'app/models/concerns/account_avatar.rb'
- - 'app/models/concerns/account_counters.rb'
- - 'app/models/concerns/account_finder_concern.rb'
- - 'app/models/concerns/account_header.rb'
- - 'app/models/concerns/account_interactions.rb'
- - 'app/models/concerns/account_merging.rb'
- - 'app/models/concerns/attachmentable.rb'
- - 'app/models/concerns/cacheable.rb'
- - 'app/models/concerns/domain_materializable.rb'
- - 'app/models/concerns/domain_normalizable.rb'
- - 'app/models/concerns/expireable.rb'
- - 'app/models/concerns/follow_limitable.rb'
- - 'app/models/concerns/ldap_authenticable.rb'
- - 'app/models/concerns/lockable.rb'
- - 'app/models/concerns/omniauthable.rb'
- - 'app/models/concerns/paginable.rb'
- - 'app/models/concerns/pam_authenticable.rb'
- - 'app/models/concerns/rate_limitable.rb'
- - 'app/models/concerns/redisable.rb'
- - 'app/models/concerns/relationship_cacheable.rb'
- - 'app/models/concerns/remotable.rb'
- - 'app/models/concerns/status_snapshot_concern.rb'
- - 'app/models/concerns/status_threading_concern.rb'
- - 'app/models/content_retention_policy.rb'
- - 'app/models/context.rb'
- - 'app/models/conversation.rb'
- - 'app/models/conversation_mute.rb'
- - 'app/models/custom_emoji.rb'
- - 'app/models/custom_emoji_category.rb'
- - 'app/models/custom_emoji_filter.rb'
- - 'app/models/custom_filter.rb'
- - 'app/models/custom_filter_keyword.rb'
- - 'app/models/custom_filter_status.rb'
- - 'app/models/device.rb'
- - 'app/models/domain_allow.rb'
- - 'app/models/domain_block.rb'
- - 'app/models/email_domain_block.rb'
- - 'app/models/encrypted_message.rb'
- - 'app/models/export.rb'
- - 'app/models/extended_description.rb'
- - 'app/models/favourite.rb'
- - 'app/models/featured_tag.rb'
- - 'app/models/feed.rb'
- - 'app/models/follow.rb'
- - 'app/models/follow_recommendation.rb'
- - 'app/models/follow_recommendation_filter.rb'
- - 'app/models/follow_recommendation_suppression.rb'
- - 'app/models/follow_request.rb'
- - 'app/models/form/account_batch.rb'
- - 'app/models/form/admin_settings.rb'
- - 'app/models/form/challenge.rb'
- - 'app/models/form/custom_emoji_batch.rb'
- - 'app/models/form/delete_confirmation.rb'
- - 'app/models/form/domain_block_batch.rb'
- - 'app/models/form/email_domain_block_batch.rb'
- - 'app/models/form/ip_block_batch.rb'
- - 'app/models/form/redirect.rb'
- - 'app/models/form/status_filter_batch_action.rb'
- - 'app/models/form/two_factor_confirmation.rb'
- - 'app/models/home_feed.rb'
- - 'app/models/identity.rb'
- - 'app/models/import.rb'
- - 'app/models/instance.rb'
- - 'app/models/instance_filter.rb'
- - 'app/models/invite.rb'
- - 'app/models/invite_filter.rb'
- - 'app/models/ip_block.rb'
- - 'app/models/list.rb'
- - 'app/models/list_account.rb'
- - 'app/models/list_feed.rb'
- - 'app/models/login_activity.rb'
- - 'app/models/marker.rb'
- - 'app/models/media_attachment.rb'
- - 'app/models/mention.rb'
- - 'app/models/message_franking.rb'
- - 'app/models/mute.rb'
- - 'app/models/notification.rb'
- - 'app/models/one_time_key.rb'
- - 'app/models/poll.rb'
- - 'app/models/poll_vote.rb'
- - 'app/models/preview_card.rb'
- - 'app/models/preview_card_provider.rb'
- - 'app/models/privacy_policy.rb'
- - 'app/models/public_feed.rb'
- - 'app/models/relationship_filter.rb'
- - 'app/models/relay.rb'
- - 'app/models/remote_follow.rb'
- - 'app/models/report.rb'
- - 'app/models/report_filter.rb'
- - 'app/models/report_note.rb'
- - 'app/models/scheduled_status.rb'
- - 'app/models/search.rb'
- - 'app/models/session_activation.rb'
- - 'app/models/setting.rb'
- - 'app/models/site_upload.rb'
- - 'app/models/status.rb'
- - 'app/models/status_edit.rb'
- - 'app/models/status_pin.rb'
- - 'app/models/status_stat.rb'
- - 'app/models/status_trend.rb'
- - 'app/models/tag.rb'
- - 'app/models/tag_feed.rb'
- - 'app/models/tag_follow.rb'
- - 'app/models/tombstone.rb'
- - 'app/models/trends.rb'
- - 'app/models/trends/base.rb'
- - 'app/models/trends/history.rb'
- - 'app/models/trends/links.rb'
- - 'app/models/trends/preview_card_batch.rb'
- - 'app/models/trends/preview_card_filter.rb'
- - 'app/models/trends/preview_card_provider_batch.rb'
- - 'app/models/trends/preview_card_provider_filter.rb'
- - 'app/models/trends/query.rb'
- - 'app/models/trends/status_batch.rb'
- - 'app/models/trends/status_filter.rb'
- - 'app/models/trends/statuses.rb'
- - 'app/models/trends/tag_batch.rb'
- - 'app/models/trends/tag_filter.rb'
- - 'app/models/trends/tags.rb'
- - 'app/models/unavailable_domain.rb'
- - 'app/models/user.rb'
- - 'app/models/user_invite_request.rb'
- - 'app/models/user_ip.rb'
- - 'app/models/user_role.rb'
- - 'app/models/web.rb'
- - 'app/models/web/push_subscription.rb'
- - 'app/models/web/setting.rb'
- - 'app/models/webauthn_credential.rb'
- - 'app/models/webhook.rb'
- - 'app/policies/account_moderation_note_policy.rb'
- - 'app/policies/account_policy.rb'
- - 'app/policies/account_warning_policy.rb'
- - 'app/policies/account_warning_preset_policy.rb'
- - 'app/policies/admin/status_policy.rb'
- - 'app/policies/announcement_policy.rb'
- - 'app/policies/appeal_policy.rb'
- - 'app/policies/application_policy.rb'
- - 'app/policies/audit_log_policy.rb'
- - 'app/policies/backup_policy.rb'
- - 'app/policies/canonical_email_block_policy.rb'
- - 'app/policies/custom_emoji_policy.rb'
- - 'app/policies/dashboard_policy.rb'
- - 'app/policies/delivery_policy.rb'
- - 'app/policies/domain_allow_policy.rb'
- - 'app/policies/domain_block_policy.rb'
- - 'app/policies/email_domain_block_policy.rb'
- - 'app/policies/follow_recommendation_policy.rb'
- - 'app/policies/instance_policy.rb'
- - 'app/policies/invite_policy.rb'
- - 'app/policies/ip_block_policy.rb'
- - 'app/policies/poll_policy.rb'
- - 'app/policies/preview_card_policy.rb'
- - 'app/policies/preview_card_provider_policy.rb'
- - 'app/policies/relay_policy.rb'
- - 'app/policies/report_note_policy.rb'
- - 'app/policies/report_policy.rb'
- - 'app/policies/rule_policy.rb'
- - 'app/policies/settings_policy.rb'
- - 'app/policies/status_policy.rb'
- - 'app/policies/tag_policy.rb'
- - 'app/policies/user_policy.rb'
- - 'app/policies/user_role_policy.rb'
- - 'app/policies/webhook_policy.rb'
- - 'app/presenters/account_relationships_presenter.rb'
- - 'app/presenters/activitypub/activity_presenter.rb'
- - 'app/presenters/activitypub/collection_presenter.rb'
- - 'app/presenters/familiar_followers_presenter.rb'
- - 'app/presenters/filter_result_presenter.rb'
- - 'app/presenters/initial_state_presenter.rb'
- - 'app/presenters/instance_presenter.rb'
- - 'app/presenters/status_relationships_presenter.rb'
- - 'app/presenters/tag_relationships_presenter.rb'
- - 'app/presenters/webhooks/event_presenter.rb'
- - 'app/serializers/activitypub/accept_follow_serializer.rb'
- - 'app/serializers/activitypub/activity_serializer.rb'
- - 'app/serializers/activitypub/actor_serializer.rb'
- - 'app/serializers/activitypub/add_serializer.rb'
- - 'app/serializers/activitypub/block_serializer.rb'
- - 'app/serializers/activitypub/collection_serializer.rb'
- - 'app/serializers/activitypub/delete_actor_serializer.rb'
- - 'app/serializers/activitypub/delete_serializer.rb'
- - 'app/serializers/activitypub/device_serializer.rb'
- - 'app/serializers/activitypub/emoji_serializer.rb'
- - 'app/serializers/activitypub/encrypted_message_serializer.rb'
- - 'app/serializers/activitypub/flag_serializer.rb'
- - 'app/serializers/activitypub/follow_serializer.rb'
- - 'app/serializers/activitypub/hashtag_serializer.rb'
- - 'app/serializers/activitypub/image_serializer.rb'
- - 'app/serializers/activitypub/like_serializer.rb'
- - 'app/serializers/activitypub/move_serializer.rb'
- - 'app/serializers/activitypub/note_serializer.rb'
- - 'app/serializers/activitypub/one_time_key_serializer.rb'
- - 'app/serializers/activitypub/outbox_serializer.rb'
- - 'app/serializers/activitypub/public_key_serializer.rb'
- - 'app/serializers/activitypub/reject_follow_serializer.rb'
- - 'app/serializers/activitypub/remove_serializer.rb'
- - 'app/serializers/activitypub/undo_announce_serializer.rb'
- - 'app/serializers/activitypub/undo_block_serializer.rb'
- - 'app/serializers/activitypub/undo_follow_serializer.rb'
- - 'app/serializers/activitypub/undo_like_serializer.rb'
- - 'app/serializers/activitypub/update_poll_serializer.rb'
- - 'app/serializers/activitypub/update_serializer.rb'
- - 'app/serializers/activitypub/vote_serializer.rb'
- - 'app/serializers/initial_state_serializer.rb'
- - 'app/serializers/manifest_serializer.rb'
- - 'app/serializers/nodeinfo/discovery_serializer.rb'
- - 'app/serializers/nodeinfo/serializer.rb'
- - 'app/serializers/oembed_serializer.rb'
- - 'app/serializers/rest/account_serializer.rb'
- - 'app/serializers/rest/admin/account_serializer.rb'
- - 'app/serializers/rest/admin/canonical_email_block_serializer.rb'
- - 'app/serializers/rest/admin/cohort_serializer.rb'
- - 'app/serializers/rest/admin/dimension_serializer.rb'
- - 'app/serializers/rest/admin/domain_allow_serializer.rb'
- - 'app/serializers/rest/admin/domain_block_serializer.rb'
- - 'app/serializers/rest/admin/email_domain_block_serializer.rb'
- - 'app/serializers/rest/admin/existing_domain_block_error_serializer.rb'
- - 'app/serializers/rest/admin/ip_block_serializer.rb'
- - 'app/serializers/rest/admin/ip_serializer.rb'
- - 'app/serializers/rest/admin/measure_serializer.rb'
- - 'app/serializers/rest/admin/report_serializer.rb'
- - 'app/serializers/rest/admin/tag_serializer.rb'
- - 'app/serializers/rest/admin/webhook_event_serializer.rb'
- - 'app/serializers/rest/announcement_serializer.rb'
- - 'app/serializers/rest/application_serializer.rb'
- - 'app/serializers/rest/context_serializer.rb'
- - 'app/serializers/rest/conversation_serializer.rb'
- - 'app/serializers/rest/credential_account_serializer.rb'
- - 'app/serializers/rest/custom_emoji_serializer.rb'
- - 'app/serializers/rest/domain_block_serializer.rb'
- - 'app/serializers/rest/encrypted_message_serializer.rb'
- - 'app/serializers/rest/extended_description_serializer.rb'
- - 'app/serializers/rest/familiar_followers_serializer.rb'
- - 'app/serializers/rest/featured_tag_serializer.rb'
- - 'app/serializers/rest/filter_keyword_serializer.rb'
- - 'app/serializers/rest/filter_result_serializer.rb'
- - 'app/serializers/rest/filter_serializer.rb'
- - 'app/serializers/rest/filter_status_serializer.rb'
- - 'app/serializers/rest/instance_serializer.rb'
- - 'app/serializers/rest/keys/claim_result_serializer.rb'
- - 'app/serializers/rest/keys/device_serializer.rb'
- - 'app/serializers/rest/keys/query_result_serializer.rb'
- - 'app/serializers/rest/list_serializer.rb'
- - 'app/serializers/rest/marker_serializer.rb'
- - 'app/serializers/rest/media_attachment_serializer.rb'
- - 'app/serializers/rest/muted_account_serializer.rb'
- - 'app/serializers/rest/notification_serializer.rb'
- - 'app/serializers/rest/poll_serializer.rb'
- - 'app/serializers/rest/preferences_serializer.rb'
- - 'app/serializers/rest/preview_card_serializer.rb'
- - 'app/serializers/rest/privacy_policy_serializer.rb'
- - 'app/serializers/rest/reaction_serializer.rb'
- - 'app/serializers/rest/relationship_serializer.rb'
- - 'app/serializers/rest/report_serializer.rb'
- - 'app/serializers/rest/role_serializer.rb'
- - 'app/serializers/rest/rule_serializer.rb'
- - 'app/serializers/rest/scheduled_status_serializer.rb'
- - 'app/serializers/rest/search_serializer.rb'
- - 'app/serializers/rest/status_edit_serializer.rb'
- - 'app/serializers/rest/status_serializer.rb'
- - 'app/serializers/rest/status_source_serializer.rb'
- - 'app/serializers/rest/suggestion_serializer.rb'
- - 'app/serializers/rest/tag_serializer.rb'
- - 'app/serializers/rest/translation_serializer.rb'
- - 'app/serializers/rest/trends/link_serializer.rb'
- - 'app/serializers/rest/v1/filter_serializer.rb'
- - 'app/serializers/rest/v1/instance_serializer.rb'
- - 'app/serializers/rest/web_push_subscription_serializer.rb'
- - 'app/serializers/web/notification_serializer.rb'
- - 'app/serializers/webfinger_serializer.rb'
- - 'app/services/account_search_service.rb'
- - 'app/services/account_statuses_cleanup_service.rb'
- - 'app/services/activitypub/fetch_featured_collection_service.rb'
- - 'app/services/activitypub/fetch_featured_tags_collection_service.rb'
- - 'app/services/activitypub/fetch_remote_account_service.rb'
- - 'app/services/activitypub/fetch_remote_actor_service.rb'
- - 'app/services/activitypub/fetch_remote_key_service.rb'
- - 'app/services/activitypub/fetch_remote_poll_service.rb'
- - 'app/services/activitypub/fetch_remote_status_service.rb'
- - 'app/services/activitypub/fetch_replies_service.rb'
- - 'app/services/activitypub/prepare_followers_synchronization_service.rb'
- - 'app/services/activitypub/process_account_service.rb'
- - 'app/services/activitypub/process_collection_service.rb'
- - 'app/services/activitypub/process_status_update_service.rb'
- - 'app/services/activitypub/synchronize_followers_service.rb'
- - 'app/services/after_block_domain_from_account_service.rb'
- - 'app/services/after_block_service.rb'
- - 'app/services/after_unallow_domain_service.rb'
- - 'app/services/app_sign_up_service.rb'
- - 'app/services/appeal_service.rb'
- - 'app/services/approve_appeal_service.rb'
- - 'app/services/authorize_follow_service.rb'
- - 'app/services/backup_service.rb'
- - 'app/services/base_service.rb'
- - 'app/services/batched_remove_status_service.rb'
- - 'app/services/block_domain_service.rb'
- - 'app/services/block_service.rb'
- - 'app/services/bootstrap_timeline_service.rb'
- - 'app/services/clear_domain_media_service.rb'
- - 'app/services/concerns/payloadable.rb'
- - 'app/services/create_featured_tag_service.rb'
- - 'app/services/delete_account_service.rb'
- - 'app/services/deliver_to_device_service.rb'
- - 'app/services/fan_out_on_write_service.rb'
- - 'app/services/favourite_service.rb'
- - 'app/services/fetch_link_card_service.rb'
- - 'app/services/fetch_oembed_service.rb'
- - 'app/services/fetch_remote_status_service.rb'
- - 'app/services/fetch_resource_service.rb'
- - 'app/services/follow_migration_service.rb'
- - 'app/services/follow_service.rb'
- - 'app/services/import_service.rb'
- - 'app/services/keys/claim_service.rb'
- - 'app/services/keys/query_service.rb'
- - 'app/services/move_service.rb'
- - 'app/services/mute_service.rb'
- - 'app/services/notify_service.rb'
- - 'app/services/post_status_service.rb'
- - 'app/services/precompute_feed_service.rb'
- - 'app/services/process_hashtags_service.rb'
- - 'app/services/process_mentions_service.rb'
- - 'app/services/purge_domain_service.rb'
- - 'app/services/reblog_service.rb'
- - 'app/services/reject_follow_service.rb'
- - 'app/services/remove_domains_from_followers_service.rb'
- - 'app/services/remove_featured_tag_service.rb'
- - 'app/services/remove_from_followers_service.rb'
- - 'app/services/remove_status_service.rb'
- - 'app/services/report_service.rb'
- - 'app/services/resolve_account_service.rb'
- - 'app/services/resolve_url_service.rb'
- - 'app/services/search_service.rb'
- - 'app/services/suspend_account_service.rb'
- - 'app/services/tag_search_service.rb'
- - 'app/services/translate_status_service.rb'
- - 'app/services/unallow_domain_service.rb'
- - 'app/services/unblock_domain_service.rb'
- - 'app/services/unblock_service.rb'
- - 'app/services/unfavourite_service.rb'
- - 'app/services/unfollow_service.rb'
- - 'app/services/unmute_service.rb'
- - 'app/services/unsuspend_account_service.rb'
- - 'app/services/update_account_service.rb'
- - 'app/services/update_status_service.rb'
- - 'app/services/verify_link_service.rb'
- - 'app/services/vote_service.rb'
- - 'app/services/webhook_service.rb'
- - 'app/validators/blacklisted_email_validator.rb'
- - 'app/validators/disallowed_hashtags_validator.rb'
- - 'app/validators/domain_validator.rb'
- - 'app/validators/ed25519_key_validator.rb'
- - 'app/validators/ed25519_signature_validator.rb'
- - 'app/validators/email_mx_validator.rb'
- - 'app/validators/existing_username_validator.rb'
- - 'app/validators/follow_limit_validator.rb'
- - 'app/validators/import_validator.rb'
- - 'app/validators/language_validator.rb'
- - 'app/validators/note_length_validator.rb'
- - 'app/validators/poll_validator.rb'
- - 'app/validators/reaction_validator.rb'
- - 'app/validators/registration_form_time_validator.rb'
- - 'app/validators/status_length_validator.rb'
- - 'app/validators/status_pin_validator.rb'
- - 'app/validators/unique_username_validator.rb'
- - 'app/validators/unreserved_username_validator.rb'
- - 'app/validators/url_validator.rb'
- - 'app/validators/vote_validator.rb'
- - 'app/workers/account_deletion_worker.rb'
- - 'app/workers/account_merging_worker.rb'
- - 'app/workers/activitypub/account_raw_distribution_worker.rb'
- - 'app/workers/activitypub/delivery_worker.rb'
- - 'app/workers/activitypub/distribute_poll_update_worker.rb'
- - 'app/workers/activitypub/distribution_worker.rb'
- - 'app/workers/activitypub/fetch_replies_worker.rb'
- - 'app/workers/activitypub/followers_synchronization_worker.rb'
- - 'app/workers/activitypub/low_priority_delivery_worker.rb'
- - 'app/workers/activitypub/migrated_follow_delivery_worker.rb'
- - 'app/workers/activitypub/move_distribution_worker.rb'
- - 'app/workers/activitypub/post_upgrade_worker.rb'
- - 'app/workers/activitypub/processing_worker.rb'
- - 'app/workers/activitypub/raw_distribution_worker.rb'
- - 'app/workers/activitypub/status_update_distribution_worker.rb'
- - 'app/workers/activitypub/synchronize_featured_collection_worker.rb'
- - 'app/workers/activitypub/synchronize_featured_tags_collection_worker.rb'
- - 'app/workers/activitypub/update_distribution_worker.rb'
- - 'app/workers/admin/account_deletion_worker.rb'
- - 'app/workers/admin/domain_purge_worker.rb'
- - 'app/workers/admin/suspension_worker.rb'
- - 'app/workers/admin/unsuspension_worker.rb'
- - 'app/workers/after_account_domain_block_worker.rb'
- - 'app/workers/after_unallow_domain_worker.rb'
- - 'app/workers/authorize_follow_worker.rb'
- - 'app/workers/backup_worker.rb'
- - 'app/workers/block_worker.rb'
- - 'app/workers/bootstrap_timeline_worker.rb'
- - 'app/workers/cache_buster_worker.rb'
- - 'app/workers/concerns/exponential_backoff.rb'
- - 'app/workers/delete_mute_worker.rb'
- - 'app/workers/distribution_worker.rb'
- - 'app/workers/domain_block_worker.rb'
- - 'app/workers/domain_clear_media_worker.rb'
- - 'app/workers/feed_insert_worker.rb'
- - 'app/workers/fetch_reply_worker.rb'
- - 'app/workers/import/relationship_worker.rb'
- - 'app/workers/import_worker.rb'
- - 'app/workers/link_crawl_worker.rb'
- - 'app/workers/local_notification_worker.rb'
- - 'app/workers/merge_worker.rb'
- - 'app/workers/move_worker.rb'
- - 'app/workers/mute_worker.rb'
- - 'app/workers/poll_expiration_notify_worker.rb'
- - 'app/workers/post_process_media_worker.rb'
- - 'app/workers/publish_announcement_reaction_worker.rb'
- - 'app/workers/publish_scheduled_announcement_worker.rb'
- - 'app/workers/publish_scheduled_status_worker.rb'
- - 'app/workers/push_conversation_worker.rb'
- - 'app/workers/push_encrypted_message_worker.rb'
- - 'app/workers/push_update_worker.rb'
- - 'app/workers/redownload_avatar_worker.rb'
- - 'app/workers/redownload_header_worker.rb'
- - 'app/workers/redownload_media_worker.rb'
- - 'app/workers/refollow_worker.rb'
- - 'app/workers/regeneration_worker.rb'
- - 'app/workers/remote_account_refresh_worker.rb'
- - 'app/workers/removal_worker.rb'
- - 'app/workers/remove_featured_tag_worker.rb'
- - 'app/workers/resolve_account_worker.rb'
- - 'app/workers/scheduler/accounts_statuses_cleanup_scheduler.rb'
- - 'app/workers/scheduler/follow_recommendations_scheduler.rb'
- - 'app/workers/scheduler/indexing_scheduler.rb'
- - 'app/workers/scheduler/instance_refresh_scheduler.rb'
- - 'app/workers/scheduler/ip_cleanup_scheduler.rb'
- - 'app/workers/scheduler/pghero_scheduler.rb'
- - 'app/workers/scheduler/scheduled_statuses_scheduler.rb'
- - 'app/workers/scheduler/suspended_user_cleanup_scheduler.rb'
- - 'app/workers/scheduler/trends/refresh_scheduler.rb'
- - 'app/workers/scheduler/trends/review_notifications_scheduler.rb'
- - 'app/workers/scheduler/user_cleanup_scheduler.rb'
- - 'app/workers/scheduler/vacuum_scheduler.rb'
- - 'app/workers/thread_resolve_worker.rb'
- - 'app/workers/trigger_webhook_worker.rb'
- - 'app/workers/unfavourite_worker.rb'
- - 'app/workers/unfollow_follow_worker.rb'
- - 'app/workers/unmerge_worker.rb'
- - 'app/workers/unpublish_announcement_worker.rb'
- - 'app/workers/verify_account_links_worker.rb'
- - 'app/workers/web/push_notification_worker.rb'
- - 'app/workers/webhooks/delivery_worker.rb'
- - 'db/migrate/20160220174730_create_accounts.rb'
- - 'db/migrate/20160220211917_create_statuses.rb'
- - 'db/migrate/20160221003140_create_users.rb'
- - 'db/migrate/20160221003621_create_follows.rb'
- - 'db/migrate/20160222122600_create_stream_entries.rb'
- - 'db/migrate/20160222143943_add_profile_fields_to_accounts.rb'
- - 'db/migrate/20160223162837_add_metadata_to_statuses.rb'
- - 'db/migrate/20160223164502_make_uris_nullable_in_statuses.rb'
- - 'db/migrate/20160223165723_add_url_to_statuses.rb'
- - 'db/migrate/20160223165855_add_url_to_accounts.rb'
- - 'db/migrate/20160223171800_create_favourites.rb'
- - 'db/migrate/20160224223247_create_mentions.rb'
- - 'db/migrate/20160227230233_add_attachment_avatar_to_accounts.rb'
- - 'db/migrate/20160305115639_add_devise_to_users.rb'
- - 'db/migrate/20160306172223_create_doorkeeper_tables.rb'
- - 'db/migrate/20160312193225_add_attachment_header_to_accounts.rb'
- - 'db/migrate/20160314164231_add_owner_to_application.rb'
- - 'db/migrate/20160316103650_add_missing_indices.rb'
- - 'db/migrate/20160322193748_add_avatar_remote_url_to_accounts.rb'
- - 'db/migrate/20160325130944_add_admin_to_users.rb'
- - 'db/migrate/20160826155805_add_superapp_to_oauth_applications.rb'
- - 'db/migrate/20160905150353_create_media_attachments.rb'
- - 'db/migrate/20160919221059_add_subscription_expires_at_to_accounts.rb'
- - 'db/migrate/20160920003904_remove_verify_token_from_accounts.rb'
- - 'db/migrate/20160926213048_remove_owner_from_application.rb'
- - 'db/migrate/20161003142332_add_confirmable_to_users.rb'
- - 'db/migrate/20161003145426_create_blocks.rb'
- - 'db/migrate/20161006213403_rails_settings_migration.rb'
- - 'db/migrate/20161009120834_create_domain_blocks.rb'
- - 'db/migrate/20161027172456_add_silenced_to_accounts.rb'
- - 'db/migrate/20161104173623_create_tags.rb'
- - 'db/migrate/20161105130633_create_statuses_tags_join_table.rb'
- - 'db/migrate/20161116162355_add_locale_to_users.rb'
- - 'db/migrate/20161119211120_create_notifications.rb'
- - 'db/migrate/20161122163057_remove_unneeded_indexes.rb'
- - 'db/migrate/20161123093447_add_sensitive_to_statuses.rb'
- - 'db/migrate/20161128103007_create_subscriptions.rb'
- - 'db/migrate/20161130142058_add_last_successful_delivery_at_to_subscriptions.rb'
- - 'db/migrate/20161130185319_add_visibility_to_statuses.rb'
- - 'db/migrate/20161202132159_add_in_reply_to_account_id_to_statuses.rb'
- - 'db/migrate/20161203164520_add_from_account_id_to_notifications.rb'
- - 'db/migrate/20161205214545_add_suspended_to_accounts.rb'
- - 'db/migrate/20161221152630_add_hidden_to_stream_entries.rb'
- - 'db/migrate/20161222201034_add_locked_to_accounts.rb'
- - 'db/migrate/20161222204147_create_follow_requests.rb'
- - 'db/migrate/20170105224407_add_shortcode_to_media_attachments.rb'
- - 'db/migrate/20170109120109_create_web_settings.rb'
- - 'db/migrate/20170112154826_migrate_settings.rb'
- - 'db/migrate/20170114194937_add_application_to_statuses.rb'
- - 'db/migrate/20170114203041_add_website_to_oauth_application.rb'
- - 'db/migrate/20170119214911_create_preview_cards.rb'
- - 'db/migrate/20170123162658_add_severity_to_domain_blocks.rb'
- - 'db/migrate/20170123203248_add_reject_media_to_domain_blocks.rb'
- - 'db/migrate/20170125145934_add_spoiler_text_to_statuses.rb'
- - 'db/migrate/20170127165745_add_devise_two_factor_to_users.rb'
- - 'db/migrate/20170205175257_remove_devices.rb'
- - 'db/migrate/20170209184350_add_reply_to_statuses.rb'
- - 'db/migrate/20170214110202_create_reports.rb'
- - 'db/migrate/20170217012631_add_reblog_of_id_foreign_key_to_statuses.rb'
- - 'db/migrate/20170301222600_create_mutes.rb'
- - 'db/migrate/20170303212857_add_last_emailed_at_to_users.rb'
- - 'db/migrate/20170304202101_add_type_to_media_attachments.rb'
- - 'db/migrate/20170317193015_add_search_index_to_accounts.rb'
- - 'db/migrate/20170318214217_add_header_remote_url_to_accounts.rb'
- - 'db/migrate/20170322021028_add_lowercase_index_to_accounts.rb'
- - 'db/migrate/20170322143850_change_primary_key_to_bigint_on_statuses.rb'
- - 'db/migrate/20170322162804_add_search_index_to_tags.rb'
- - 'db/migrate/20170330021336_add_counter_caches.rb'
- - 'db/migrate/20170330163835_create_imports.rb'
- - 'db/migrate/20170330164118_add_attachment_data_to_imports.rb'
- - 'db/migrate/20170403172249_add_action_taken_by_account_id_to_reports.rb'
- - 'db/migrate/20170405112956_add_index_on_mentions_status_id.rb'
- - 'db/migrate/20170406215816_add_notifications_and_favourites_indices.rb'
- - 'db/migrate/20170409170753_add_last_webfingered_at_to_accounts.rb'
- - 'db/migrate/20170414080609_add_devise_two_factor_backupable_to_users.rb'
- - 'db/migrate/20170414132105_add_language_to_statuses.rb'
- - 'db/migrate/20170418160728_add_indexes_to_reports_for_accounts.rb'
- - 'db/migrate/20170423005413_add_allowed_languages_to_user.rb'
- - 'db/migrate/20170424003227_create_account_domain_blocks.rb'
- - 'db/migrate/20170424112722_add_status_id_index_to_statuses_tags.rb'
- - 'db/migrate/20170425131920_add_media_attachment_meta.rb'
- - 'db/migrate/20170425202925_add_oembed_to_preview_cards.rb'
- - 'db/migrate/20170427011934_re_add_owner_to_application.rb'
- - 'db/migrate/20170506235850_create_conversations.rb'
- - 'db/migrate/20170507000211_add_conversation_id_to_statuses.rb'
- - 'db/migrate/20170507141759_optimize_index_subscriptions.rb'
- - 'db/migrate/20170508230434_create_conversation_mutes.rb'
- - 'db/migrate/20170516072309_add_index_accounts_on_uri.rb'
- - 'db/migrate/20170520145338_change_language_filter_to_opt_out.rb'
- - 'db/migrate/20170601210557_add_index_on_media_attachments_account_id.rb'
- - 'db/migrate/20170604144747_add_foreign_keys_for_accounts.rb'
- - 'db/migrate/20170606113804_change_tag_search_index_to_btree.rb'
- - 'db/migrate/20170609145826_remove_default_language_from_statuses.rb'
- - 'db/migrate/20170610000000_add_statuses_index_on_account_id_id.rb'
- - 'db/migrate/20170623152212_create_session_activations.rb'
- - 'db/migrate/20170624134742_add_description_to_session_activations.rb'
- - 'db/migrate/20170625140443_add_access_token_id_to_session_activations.rb'
- - 'db/migrate/20170711225116_fix_null_booleans.rb'
- - 'db/migrate/20170713112503_make_tag_search_case_insensitive.rb'
- - 'db/migrate/20170713175513_create_web_push_subscriptions.rb'
- - 'db/migrate/20170713190709_add_web_push_subscription_to_session_activations.rb'
- - 'db/migrate/20170714184731_add_domain_to_subscriptions.rb'
- - 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb'
- - 'db/migrate/20170718211102_add_activitypub_to_accounts.rb'
- - 'db/migrate/20170720000000_add_index_favourites_on_account_id_and_id.rb'
- - 'db/migrate/20170823162448_create_status_pins.rb'
- - 'db/migrate/20170824103029_add_timestamps_to_status_pins.rb'
- - 'db/migrate/20170829215220_remove_status_pins_account_index.rb'
- - 'db/migrate/20170901141119_truncate_preview_cards.rb'
- - 'db/migrate/20170901142658_create_join_table_preview_cards_statuses.rb'
- - 'db/migrate/20170905044538_add_index_id_account_id_activity_type_on_notifications.rb'
- - 'db/migrate/20170905165803_add_local_to_statuses.rb'
- - 'db/migrate/20170913000752_create_site_uploads.rb'
- - 'db/migrate/20170917153509_create_custom_emojis.rb'
- - 'db/migrate/20170918125918_ids_to_bigints.rb'
- - 'db/migrate/20170920024819_status_ids_to_timestamp_ids.rb'
- - 'db/migrate/20170920032311_fix_reblogs_in_feeds.rb'
- - 'db/migrate/20170924022025_ids_to_bigints2.rb'
- - 'db/migrate/20170927215609_add_description_to_media_attachments.rb'
- - 'db/migrate/20170928082043_create_email_domain_blocks.rb'
- - 'db/migrate/20171005102658_create_account_moderation_notes.rb'
- - 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb'
- - 'db/migrate/20171006142024_add_uri_to_custom_emojis.rb'
- - 'db/migrate/20171010023049_add_foreign_key_to_account_moderation_notes.rb'
- - 'db/migrate/20171010025614_change_accounts_nonnullable_in_account_moderation_notes.rb'
- - 'db/migrate/20171020084748_add_visible_in_picker_to_custom_emoji.rb'
- - 'db/migrate/20171028221157_add_reblogs_to_follows.rb'
- - 'db/migrate/20171107143332_add_memorial_to_accounts.rb'
- - 'db/migrate/20171107143624_add_disabled_to_users.rb'
- - 'db/migrate/20171109012327_add_moderator_to_accounts.rb'
- - 'db/migrate/20171114080328_add_index_domain_to_email_domain_blocks.rb'
- - 'db/migrate/20171114231651_create_lists.rb'
- - 'db/migrate/20171116161857_create_list_accounts.rb'
- - 'db/migrate/20171118012443_add_moved_to_account_id_to_accounts.rb'
- - 'db/migrate/20171119172437_create_admin_action_logs.rb'
- - 'db/migrate/20171122120436_add_index_account_and_reblog_of_id_to_statuses.rb'
- - 'db/migrate/20171125024930_create_invites.rb'
- - 'db/migrate/20171125031751_add_invite_id_to_users.rb'
- - 'db/migrate/20171125185353_add_index_reblog_of_id_and_account_to_statuses.rb'
- - 'db/migrate/20171125190735_remove_old_reblog_index_on_statuses.rb'
- - 'db/migrate/20171129172043_add_index_on_stream_entries.rb'
- - 'db/migrate/20171130000000_add_embed_url_to_preview_cards.rb'
- - 'db/migrate/20171201000000_change_account_id_nonnullable_in_lists.rb'
- - 'db/migrate/20171212195226_remove_duplicate_indexes_in_lists.rb'
- - 'db/migrate/20171226094803_more_faster_index_on_notifications.rb'
- - 'db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'db/migrate/20180109143959_add_remember_token_to_users.rb'
- - 'db/migrate/20180204034416_create_identities.rb'
- - 'db/migrate/20180206000000_change_user_id_nonnullable.rb'
- - 'db/migrate/20180211015820_create_backups.rb'
- - 'db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb'
- - 'db/migrate/20180310000000_change_columns_in_notifications_nonnullable.rb'
- - 'db/migrate/20180402031200_add_assigned_account_id_to_reports.rb'
- - 'db/migrate/20180402040909_create_report_notes.rb'
- - 'db/migrate/20180410204633_add_fields_to_accounts.rb'
- - 'db/migrate/20180416210259_add_uri_to_relationships.rb'
- - 'db/migrate/20180506221944_add_actor_type_to_accounts.rb'
- - 'db/migrate/20180510214435_add_access_token_id_to_web_push_subscriptions.rb'
- - 'db/migrate/20180510230049_migrate_web_push_subscriptions.rb'
- - 'db/migrate/20180514130000_improve_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'db/migrate/20180514140000_revert_index_change_on_statuses_for_api_v1_accounts_account_id_statuses.rb'
- - 'db/migrate/20180528141303_fix_accounts_unique_index.rb'
- - 'db/migrate/20180608213548_reject_following_blocked_users.rb'
- - 'db/migrate/20180609104432_migrate_web_push_subscriptions2.rb'
- - 'db/migrate/20180615122121_add_autofollow_to_invites.rb'
- - 'db/migrate/20180616192031_add_chosen_languages_to_users.rb'
- - 'db/migrate/20180617162849_remove_unused_indexes.rb'
- - 'db/migrate/20180628181026_create_custom_filters.rb'
- - 'db/migrate/20180707154237_add_whole_word_to_custom_filter.rb'
- - 'db/migrate/20180711152640_create_relays.rb'
- - 'db/migrate/20180808175627_create_account_pins.rb'
- - 'db/migrate/20180812123222_change_relays_enabled.rb'
- - 'db/migrate/20180812162710_create_status_stats.rb'
- - 'db/migrate/20180812173710_copy_status_stats.rb'
- - 'db/migrate/20180814171349_add_confidential_to_doorkeeper_application.rb'
- - 'db/migrate/20180820232245_add_foreign_key_indices.rb'
- - 'db/migrate/20180831171112_create_bookmarks.rb'
- - 'db/migrate/20180929222014_create_account_conversations.rb'
- - 'db/migrate/20181007025445_create_pghero_space_stats.rb'
- - 'db/migrate/20181010141500_add_silent_to_mentions.rb'
- - 'db/migrate/20181017170937_add_reject_reports_to_domain_blocks.rb'
- - 'db/migrate/20181018205649_add_unread_to_account_conversations.rb'
- - 'db/migrate/20181024224956_migrate_account_conversations.rb'
- - 'db/migrate/20181026034033_remove_faux_remote_account_duplicates.rb'
- - 'db/migrate/20181116165755_create_account_stats.rb'
- - 'db/migrate/20181116173541_copy_account_stats.rb'
- - 'db/migrate/20181127130500_identity_id_to_bigint.rb'
- - 'db/migrate/20181127165847_add_show_replies_to_lists.rb'
- - 'db/migrate/20181203003808_create_accounts_tags_join_table.rb'
- - 'db/migrate/20181203021853_add_discoverable_to_accounts.rb'
- - 'db/migrate/20181204193439_add_last_status_at_to_account_stats.rb'
- - 'db/migrate/20181204215309_create_account_tag_stats.rb'
- - 'db/migrate/20181207011115_downcase_custom_emoji_domains.rb'
- - 'db/migrate/20181213184704_create_account_warnings.rb'
- - 'db/migrate/20181213185533_create_account_warning_presets.rb'
- - 'db/migrate/20181219235220_add_created_by_application_id_to_users.rb'
- - 'db/migrate/20181226021420_add_also_known_as_to_accounts.rb'
- - 'db/migrate/20190103124649_create_scheduled_statuses.rb'
- - 'db/migrate/20190103124754_add_scheduled_status_id_to_media_attachments.rb'
- - 'db/migrate/20190117114553_create_tombstones.rb'
- - 'db/migrate/20190201012802_add_overwrite_to_imports.rb'
- - 'db/migrate/20190203180359_create_featured_tags.rb'
- - 'db/migrate/20190225031541_create_polls.rb'
- - 'db/migrate/20190225031625_create_poll_votes.rb'
- - 'db/migrate/20190226003449_add_poll_id_to_statuses.rb'
- - 'db/migrate/20190304152020_add_uri_to_poll_votes.rb'
- - 'db/migrate/20190306145741_add_lock_version_to_polls.rb'
- - 'db/migrate/20190307234537_add_approved_to_users.rb'
- - 'db/migrate/20190314181829_migrate_open_registrations_setting.rb'
- - 'db/migrate/20190316190352_create_account_identity_proofs.rb'
- - 'db/migrate/20190317135723_add_uri_to_reports.rb'
- - 'db/migrate/20190403141604_add_comment_to_invites.rb'
- - 'db/migrate/20190409054914_create_user_invite_requests.rb'
- - 'db/migrate/20190420025523_add_blurhash_to_media_attachments.rb'
- - 'db/migrate/20190509164208_add_by_moderator_to_tombstone.rb'
- - 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
- - 'db/migrate/20190529143559_preserve_old_layout_for_existing_users.rb'
- - 'db/migrate/20190627222225_create_custom_emoji_categories.rb'
- - 'db/migrate/20190627222826_add_category_id_to_custom_emojis.rb'
- - 'db/migrate/20190701022101_add_trust_level_to_accounts.rb'
- - 'db/migrate/20190705002136_create_domain_allows.rb'
- - 'db/migrate/20190715164535_add_instance_actor.rb'
- - 'db/migrate/20190726175042_add_case_insensitive_index_to_tags.rb'
- - 'db/migrate/20190729185330_add_score_to_tags.rb'
- - 'db/migrate/20190805123746_add_capabilities_to_tags.rb'
- - 'db/migrate/20190807135426_add_comments_to_domain_blocks.rb'
- - 'db/migrate/20190815225426_add_last_status_at_to_tags.rb'
- - 'db/migrate/20190819134503_add_deleted_at_to_statuses.rb'
- - 'db/migrate/20190820003045_update_statuses_index.rb'
- - 'db/migrate/20190823221802_add_local_index_to_statuses.rb'
- - 'db/migrate/20190901035623_add_max_score_to_tags.rb'
- - 'db/migrate/20190904222339_create_markers.rb'
- - 'db/migrate/20190914202517_create_account_migrations.rb'
- - 'db/migrate/20190915194355_create_account_aliases.rb'
- - 'db/migrate/20190917213523_add_remember_token_index.rb'
- - 'db/migrate/20190927232842_add_voters_count_to_polls.rb'
- - 'db/migrate/20191001213028_add_lock_version_to_account_stats.rb'
- - 'db/migrate/20191007013357_update_pt_locales.rb'
- - 'db/migrate/20191031163205_change_list_account_follow_nullable.rb'
- - 'db/migrate/20191212003415_increase_backup_size.rb'
- - 'db/migrate/20191212163405_add_hide_collections_to_accounts.rb'
- - 'db/migrate/20191218153258_create_announcements.rb'
- - 'db/migrate/20200113125135_create_announcement_mutes.rb'
- - 'db/migrate/20200114113335_create_announcement_reactions.rb'
- - 'db/migrate/20200119112504_add_public_index_to_statuses.rb'
- - 'db/migrate/20200126203551_add_published_at_to_announcements.rb'
- - 'db/migrate/20200306035625_add_processing_to_media_attachments.rb'
- - 'db/migrate/20200309150742_add_forwarded_to_reports.rb'
- - 'db/migrate/20200312144258_add_title_to_account_warning_presets.rb'
- - 'db/migrate/20200312162302_add_status_ids_to_announcements.rb'
- - 'db/migrate/20200312185443_add_parent_id_to_email_domain_blocks.rb'
- - 'db/migrate/20200317021758_add_expires_at_to_mutes.rb'
- - 'db/migrate/20200407201300_create_unavailable_domains.rb'
- - 'db/migrate/20200407202420_migrate_unavailable_inboxes.rb'
- - 'db/migrate/20200417125749_add_storage_schema_version.rb'
- - 'db/migrate/20200508212852_reset_unique_jobs_locks.rb'
- - 'db/migrate/20200510110808_reset_web_app_secret.rb'
- - 'db/migrate/20200510181721_remove_duplicated_indexes_pghero.rb'
- - 'db/migrate/20200516180352_create_devices.rb'
- - 'db/migrate/20200516183822_create_one_time_keys.rb'
- - 'db/migrate/20200518083523_create_encrypted_messages.rb'
- - 'db/migrate/20200521180606_encrypted_message_ids_to_timestamp_ids.rb'
- - 'db/migrate/20200529214050_add_devices_url_to_accounts.rb'
- - 'db/migrate/20200601222558_create_system_keys.rb'
- - 'db/migrate/20200605155027_add_blurhash_to_preview_cards.rb'
- - 'db/migrate/20200608113046_add_sign_in_token_to_users.rb'
- - 'db/migrate/20200614002136_add_sensitized_to_accounts.rb'
- - 'db/migrate/20200620164023_add_fixed_lowercase_index_to_accounts.rb'
- - 'db/migrate/20200622213645_media_attachment_ids_to_timestamp_ids.rb'
- - 'db/migrate/20200627125810_add_thumbnail_columns_to_media_attachments.rb'
- - 'db/migrate/20200628133322_create_account_notes.rb'
- - 'db/migrate/20200630190240_create_webauthn_credentials.rb'
- - 'db/migrate/20200630190544_add_webauthn_id_to_users.rb'
- - 'db/migrate/20200908193330_create_account_deletion_requests.rb'
- - 'db/migrate/20200917192924_add_notify_to_follows.rb'
- - 'db/migrate/20200917193034_add_type_to_notifications.rb'
- - 'db/migrate/20200917222316_add_index_notifications_on_type.rb'
- - 'db/migrate/20201008202037_create_ip_blocks.rb'
- - 'db/migrate/20201008220312_add_sign_up_ip_to_users.rb'
- - 'db/migrate/20201017233919_add_suspension_origin_to_accounts.rb'
- - 'db/migrate/20201206004238_create_instances.rb'
- - 'db/migrate/20201218054746_add_obfuscate_to_domain_blocks.rb'
- - 'db/migrate/20210221045109_create_rules.rb'
- - 'db/migrate/20210306164523_account_ids_to_timestamp_ids.rb'
- - 'db/migrate/20210322164601_create_account_summaries.rb'
- - 'db/migrate/20210323114347_create_follow_recommendations.rb'
- - 'db/migrate/20210324171613_create_follow_recommendation_suppressions.rb'
- - 'db/migrate/20210416200740_create_canonical_email_blocks.rb'
- - 'db/migrate/20210421121431_add_case_insensitive_btree_index_to_tags.rb'
- - 'db/migrate/20210425135952_add_index_on_media_attachments_account_id_status_id.rb'
- - 'db/migrate/20210505174616_update_follow_recommendations_to_version_2.rb'
- - 'db/migrate/20210609202149_create_login_activities.rb'
- - 'db/migrate/20210616214526_create_user_ips.rb'
- - 'db/migrate/20210621221010_add_skip_sign_in_token_to_users.rb'
- - 'db/migrate/20210630000137_fix_canonical_email_blocks_foreign_key.rb'
- - 'db/migrate/20210722120340_create_account_statuses_cleanup_policies.rb'
- - 'db/migrate/20210904215403_add_edited_at_to_statuses.rb'
- - 'db/migrate/20210908220918_create_status_edits.rb'
- - 'db/migrate/20211031031021_create_preview_card_providers.rb'
- - 'db/migrate/20211112011713_add_language_to_preview_cards.rb'
- - 'db/migrate/20211115032527_add_trendable_to_preview_cards.rb'
- - 'db/migrate/20211123212714_add_link_type_to_preview_cards.rb'
- - 'db/migrate/20211213040746_update_account_summaries_to_version_2.rb'
- - 'db/migrate/20211231080958_add_category_to_reports.rb'
- - 'db/migrate/20220105163928_remove_mentions_status_id_index.rb'
- - 'db/migrate/20220115125126_add_report_id_to_account_warnings.rb'
- - 'db/migrate/20220115125341_fix_account_warning_actions.rb'
- - 'db/migrate/20220116202951_add_deleted_at_index_on_statuses.rb'
- - 'db/migrate/20220124141035_create_appeals.rb'
- - 'db/migrate/20220202200743_add_trendable_to_accounts.rb'
- - 'db/migrate/20220202200926_add_trendable_to_statuses.rb'
- - 'db/migrate/20220210153119_add_overruled_at_to_account_warnings.rb'
- - 'db/migrate/20220224010024_add_ips_to_email_domain_blocks.rb'
- - 'db/migrate/20220227041951_add_last_used_at_to_oauth_access_tokens.rb'
- - 'db/migrate/20220302232632_add_ordered_media_attachment_ids_to_statuses.rb'
- - 'db/migrate/20220303000827_add_ordered_media_attachment_ids_to_status_edits.rb'
- - 'db/migrate/20220304195405_migrate_hide_network_preference.rb'
- - 'db/migrate/20220307094650_fix_featured_tags_constraints.rb'
- - 'db/migrate/20220309213005_fix_reblog_deleted_at.rb'
- - 'db/migrate/20220316233212_update_kurdish_locales.rb'
- - 'db/migrate/20220428112511_add_index_statuses_on_account_id.rb'
- - 'db/migrate/20220428112727_add_index_statuses_pins_on_status_id.rb'
- - 'db/migrate/20220428114454_add_index_reports_on_assigned_account_id.rb'
- - 'db/migrate/20220428114902_add_index_reports_on_action_taken_by_account_id.rb'
- - 'db/migrate/20220606044941_create_webhooks.rb'
- - 'db/migrate/20220611210335_create_user_roles.rb'
- - 'db/migrate/20220611212541_add_role_id_to_users.rb'
- - 'db/migrate/20220613110628_create_custom_filter_keywords.rb'
- - 'db/migrate/20220613110711_migrate_custom_filters.rb'
- - 'db/migrate/20220613110834_add_action_to_custom_filters.rb'
- - 'db/migrate/20220710102457_add_display_name_to_tags.rb'
- - 'db/migrate/20220714171049_create_tag_follows.rb'
- - 'db/migrate/20220808101323_create_custom_filter_statuses.rb'
- - 'db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb'
- - 'db/migrate/20220824233535_create_status_trends.rb'
- - 'db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb'
- - 'db/migrate/20220829192633_add_languages_to_follows.rb'
- - 'db/migrate/20220829192658_add_languages_to_follow_requests.rb'
- - 'db/migrate/20221006061337_create_preview_card_trends.rb'
- - 'db/migrate/20221012181003_add_blurhash_to_site_uploads.rb'
- - 'db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb'
- - 'db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb'
- - 'db/migrate/20221104133904_add_name_to_featured_tags.rb'
- - 'db/post_migrate/20180813113448_copy_status_stats_cleanup.rb'
- - 'db/post_migrate/20181116184611_copy_account_stats_cleanup.rb'
- - 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb'
- - 'db/post_migrate/20190519130537_remove_boosts_widening_audience.rb'
- - 'db/post_migrate/20190706233204_drop_stream_entries.rb'
- - 'db/post_migrate/20190715031050_drop_subscriptions.rb'
- - 'db/post_migrate/20190901040524_remove_score_from_tags.rb'
- - 'db/post_migrate/20190927124642_remove_invalid_web_push_subscription.rb'
- - 'db/post_migrate/20200917193528_migrate_notifications_type.rb'
- - 'db/post_migrate/20200917222734_remove_index_notifications_on_account_activity.rb'
- - 'db/post_migrate/20201017234926_fill_account_suspension_origin.rb'
- - 'db/post_migrate/20210308133107_remove_subscription_expires_at_from_accounts.rb'
- - 'db/post_migrate/20210502233513_drop_account_tag_stats.rb'
- - 'db/post_migrate/20210507001928_remove_hub_url_from_accounts.rb'
- - 'db/post_migrate/20210526193025_remove_lock_version_from_account_stats.rb'
- - 'db/post_migrate/20210616214135_remove_current_sign_in_ip_from_users.rb'
- - 'db/post_migrate/20210808071221_clear_orphaned_account_notes.rb'
- - 'db/post_migrate/20211126000907_drop_account_identity_proofs.rb'
- - 'db/post_migrate/20220109213908_remove_action_taken_from_reports.rb'
- - 'db/post_migrate/20220118183010_remove_index_users_on_remember_token.rb'
- - 'db/post_migrate/20220118183123_remove_rememberable_from_users.rb'
- - 'db/post_migrate/20220202201015_remove_trust_level_from_accounts.rb'
- - 'db/post_migrate/20220303203437_remove_media_attachments_changed_from_status_edits.rb'
- - 'db/post_migrate/20220307083603_optimize_null_index_conversations_uri.rb'
- - 'db/post_migrate/20220310060545_optimize_null_index_statuses_in_reply_to_account_id.rb'
- - 'db/post_migrate/20220310060556_optimize_null_index_statuses_in_reply_to_id.rb'
- - 'db/post_migrate/20220310060614_optimize_null_index_media_attachments_scheduled_status_id.rb'
- - 'db/post_migrate/20220310060626_optimize_null_index_media_attachments_shortcode.rb'
- - 'db/post_migrate/20220310060641_optimize_null_index_users_reset_password_token.rb'
- - 'db/post_migrate/20220310060653_optimize_null_index_users_created_by_application_id.rb'
- - 'db/post_migrate/20220310060706_optimize_null_index_statuses_uri.rb'
- - 'db/post_migrate/20220310060722_optimize_null_index_accounts_moved_to_account_id.rb'
- - 'db/post_migrate/20220310060740_optimize_null_index_oauth_access_tokens_refresh_token.rb'
- - 'db/post_migrate/20220310060750_optimize_null_index_accounts_url.rb'
- - 'db/post_migrate/20220310060809_optimize_null_index_oauth_access_tokens_resource_owner_id.rb'
- - 'db/post_migrate/20220310060833_optimize_null_index_announcement_reactions_custom_emoji_id.rb'
- - 'db/post_migrate/20220310060854_optimize_null_index_appeals_approved_by_account_id.rb'
- - 'db/post_migrate/20220310060913_optimize_null_index_account_migrations_target_account_id.rb'
- - 'db/post_migrate/20220310060926_optimize_null_index_appeals_rejected_by_account_id.rb'
- - 'db/post_migrate/20220310060939_optimize_null_index_list_accounts_follow_id.rb'
- - 'db/post_migrate/20220310060959_optimize_null_index_web_push_subscriptions_access_token_id.rb'
- - 'db/post_migrate/20220429101025_remove_ips_from_email_domain_blocks.rb'
- - 'db/post_migrate/20220429101850_clear_email_domain_blocks.rb'
- - 'db/post_migrate/20220527114923_remove_filtered_languages_from_users.rb'
- - 'db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb'
- - 'db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb'
- - 'db/post_migrate/20220617202502_migrate_roles.rb'
- - 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb'
- - 'db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb'
- - 'db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb'
- - 'db/post_migrate/20221101190723_backfill_admin_action_logs.rb'
- - 'db/post_migrate/20221206114142_backfill_admin_action_logs_again.rb'
- - 'lib/active_record/batches.rb'
- - 'lib/active_record/database_tasks_extensions.rb'
- - 'lib/chewy/strategy/mastodon.rb'
- - 'lib/cli.rb'
- - 'lib/devise/two_factor_ldap_authenticatable.rb'
- - 'lib/devise/two_factor_pam_authenticatable.rb'
- - 'lib/exceptions.rb'
- - 'lib/generators/post_deployment_migration_generator.rb'
- - 'lib/mastodon/accounts_cli.rb'
- - 'lib/mastodon/cache_cli.rb'
- - 'lib/mastodon/canonical_email_blocks_cli.rb'
- - 'lib/mastodon/cli_helper.rb'
- - 'lib/mastodon/domains_cli.rb'
- - 'lib/mastodon/email_domain_blocks_cli.rb'
- - 'lib/mastodon/emoji_cli.rb'
- - 'lib/mastodon/feeds_cli.rb'
- - 'lib/mastodon/ip_blocks_cli.rb'
- - 'lib/mastodon/maintenance_cli.rb'
- - 'lib/mastodon/media_cli.rb'
- - 'lib/mastodon/premailer_webpack_strategy.rb'
- - 'lib/mastodon/preview_cards_cli.rb'
- - 'lib/mastodon/rack_middleware.rb'
- - 'lib/mastodon/search_cli.rb'
- - 'lib/mastodon/settings_cli.rb'
- - 'lib/mastodon/sidekiq_middleware.rb'
- - 'lib/mastodon/snowflake.rb'
- - 'lib/mastodon/statuses_cli.rb'
- - 'lib/mastodon/upgrade_cli.rb'
- - 'lib/mastodon/version.rb'
- - 'lib/paperclip/attachment_extensions.rb'
- - 'lib/paperclip/blurhash_transcoder.rb'
- - 'lib/paperclip/color_extractor.rb'
- - 'lib/paperclip/gif_transcoder.rb'
- - 'lib/paperclip/image_extractor.rb'
- - 'lib/paperclip/lazy_thumbnail.rb'
- - 'lib/paperclip/response_with_limit_adapter.rb'
- - 'lib/paperclip/type_corrector.rb'
- - 'lib/paperclip/url_generator_extensions.rb'
- - 'lib/public_file_server_middleware.rb'
- - 'lib/rails/engine_extensions.rb'
- - 'lib/redis/namespace_extensions.rb'
- - 'lib/sanitize_ext/sanitize_config.rb'
- - 'lib/simple_navigation/item_extensions.rb'
- - 'lib/terrapin/multi_pipe_extensions.rb'
- - 'lib/webpacker/helper_extensions.rb'
- - 'lib/webpacker/manifest_extensions.rb'
-
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowedVars.
Style/FetchEnvVar:
From 75e5a6e43738c278390c03c96d5d3e8575a2783c Mon Sep 17 00:00:00 2001
From: Eugen Rochko
Date: Thu, 16 Mar 2023 22:46:52 +0100
Subject: [PATCH 0281/1254] Change user backups to use expiring URLs for
download when possible (#24136)
---
app/controllers/backups_controller.rb | 27 ++++++++++++++++++++
app/models/backup.rb | 2 +-
app/views/settings/exports/show.html.haml | 2 +-
app/views/user_mailer/backup_ready.html.haml | 2 +-
app/views/user_mailer/backup_ready.text.erb | 2 +-
config/routes.rb | 1 +
6 files changed, 32 insertions(+), 4 deletions(-)
create mode 100644 app/controllers/backups_controller.rb
diff --git a/app/controllers/backups_controller.rb b/app/controllers/backups_controller.rb
new file mode 100644
index 0000000000..2f4b400b8d
--- /dev/null
+++ b/app/controllers/backups_controller.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class BackupsController < ApplicationController
+ include RoutingHelper
+
+ skip_before_action :require_functional!
+
+ before_action :authenticate_user!
+ before_action :set_backup
+
+ def download
+ case Paperclip::Attachment.default_options[:storage]
+ when :s3
+ redirect_to @backup.dump.expiring_url(10)
+ when :fog
+ redirect_to @backup.dump.expiring_url(Time.now.utc + 10)
+ when :filesystem
+ redirect_to full_asset_url(@backup.dump.url)
+ end
+ end
+
+ private
+
+ def set_backup
+ @backup = current_user.backups.find(params[:id])
+ end
+end
diff --git a/app/models/backup.rb b/app/models/backup.rb
index bec3cbfe5e..dca06eb588 100644
--- a/app/models/backup.rb
+++ b/app/models/backup.rb
@@ -18,6 +18,6 @@
class Backup < ApplicationRecord
belongs_to :user, inverse_of: :backups
- has_attached_file :dump
+ has_attached_file :dump, s3_permissions: 'private'
validates_attachment_content_type :dump, content_type: /\Aapplication/
end
diff --git a/app/views/settings/exports/show.html.haml b/app/views/settings/exports/show.html.haml
index c49613fdc0..d7b59af270 100644
--- a/app/views/settings/exports/show.html.haml
+++ b/app/views/settings/exports/show.html.haml
@@ -64,6 +64,6 @@
%td= l backup.created_at
- if backup.processed?
%td= number_to_human_size backup.dump_file_size
- %td= table_link_to 'download', t('exports.archive_takeout.download'), backup.dump.url
+ %td= table_link_to 'download', t('exports.archive_takeout.download'), download_backup_url(backup)
- else
%td{ colspan: 2 }= t('exports.archive_takeout.in_progress')
diff --git a/app/views/user_mailer/backup_ready.html.haml b/app/views/user_mailer/backup_ready.html.haml
index 85140b08be..465ead2c8b 100644
--- a/app/views/user_mailer/backup_ready.html.haml
+++ b/app/views/user_mailer/backup_ready.html.haml
@@ -55,5 +55,5 @@
%tbody
%tr
%td.button-primary
- = link_to full_asset_url(@backup.dump.url) do
+ = link_to download_backup_url(@backup) do
%span= t 'exports.archive_takeout.download'
diff --git a/app/views/user_mailer/backup_ready.text.erb b/app/views/user_mailer/backup_ready.text.erb
index eb89e7d743..8ebbaae85a 100644
--- a/app/views/user_mailer/backup_ready.text.erb
+++ b/app/views/user_mailer/backup_ready.text.erb
@@ -4,4 +4,4 @@
<%= t 'user_mailer.backup_ready.explanation' %>
-=> <%= full_asset_url(@backup.dump.url) %>
+=> <%= download_backup_url(@backup) %>
diff --git a/config/routes.rb b/config/routes.rb
index ea595e1e12..8850545ca7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -220,6 +220,7 @@ Rails.application.routes.draw do
resource :statuses_cleanup, controller: :statuses_cleanup, only: [:show, :update]
get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy, format: false
+ get '/backups/:id/download', to: 'backups#download', as: :download_backup, format: false
resource :authorize_interaction, only: [:show, :create]
resource :share, only: [:show, :create]
From 8fdf49b11deca38f4dcb39179daf8c56de25b938 Mon Sep 17 00:00:00 2001
From: Claire
Date: Thu, 16 Mar 2023 22:47:01 +0100
Subject: [PATCH 0282/1254] Add warning for object storage misconfiguration
(#24137)
---
app/lib/admin/system_check.rb | 1 +
.../admin/system_check/media_privacy_check.rb | 105 ++++++++++++++++++
app/lib/admin/system_check/message.rb | 11 +-
app/views/admin/dashboard/index.html.haml | 2 +-
config/locales/en.yml | 6 +
5 files changed, 119 insertions(+), 6 deletions(-)
create mode 100644 app/lib/admin/system_check/media_privacy_check.rb
diff --git a/app/lib/admin/system_check.rb b/app/lib/admin/system_check.rb
index f512635abb..89dfcef9f1 100644
--- a/app/lib/admin/system_check.rb
+++ b/app/lib/admin/system_check.rb
@@ -2,6 +2,7 @@
class Admin::SystemCheck
ACTIVE_CHECKS = [
+ Admin::SystemCheck::MediaPrivacyCheck,
Admin::SystemCheck::DatabaseSchemaCheck,
Admin::SystemCheck::SidekiqProcessCheck,
Admin::SystemCheck::RulesCheck,
diff --git a/app/lib/admin/system_check/media_privacy_check.rb b/app/lib/admin/system_check/media_privacy_check.rb
new file mode 100644
index 0000000000..1df05b120e
--- /dev/null
+++ b/app/lib/admin/system_check/media_privacy_check.rb
@@ -0,0 +1,105 @@
+# frozen_string_literal: true
+
+class Admin::SystemCheck::MediaPrivacyCheck < Admin::SystemCheck::BaseCheck
+ include RoutingHelper
+
+ def skip?
+ !current_user.can?(:view_devops)
+ end
+
+ def pass?
+ check_media_uploads!
+ @failure_message.nil?
+ end
+
+ def message
+ Admin::SystemCheck::Message.new(@failure_message, @failure_value, @failure_action, true)
+ end
+
+ private
+
+ def check_media_uploads!
+ if Rails.configuration.x.use_s3
+ check_media_listing_inaccessible_s3!
+ else
+ check_media_listing_inaccessible!
+ end
+ end
+
+ def check_media_listing_inaccessible!
+ full_url = full_asset_url(media_attachment.file.url(:original, false))
+
+ # Check if we can list the uploaded file. If true, that's an error
+ directory_url = Addressable::URI.parse(full_url)
+ directory_url.query = nil
+ filename = directory_url.path.gsub(%r{.*/}, '')
+ directory_url.path = directory_url.path.gsub(%r{/[^/]+\Z}, '/')
+ Request.new(:get, directory_url, allow_local: true).perform do |res|
+ if res.truncated_body&.include?(filename)
+ @failure_message = use_storage? ? :upload_check_privacy_error_object_storage : :upload_check_privacy_error
+ @failure_action = 'https://docs.joinmastodon.org/admin/optional/object-storage/#FS'
+ end
+ end
+ rescue
+ nil
+ end
+
+ def check_media_listing_inaccessible_s3!
+ urls_to_check = []
+ paperclip_options = Paperclip::Attachment.default_options
+ s3_protocol = paperclip_options[:s3_protocol]
+ s3_host_alias = paperclip_options[:s3_host_alias]
+ s3_host_name = paperclip_options[:s3_host_name]
+ bucket_name = paperclip_options.dig(:s3_credentials, :bucket)
+
+ urls_to_check << "#{s3_protocol}://#{s3_host_alias}/" if s3_host_alias.present?
+ urls_to_check << "#{s3_protocol}://#{s3_host_name}/#{bucket_name}/"
+ urls_to_check.uniq.each do |full_url|
+ check_s3_listing!(full_url)
+ break if @failure_message.present?
+ end
+ rescue
+ nil
+ end
+
+ def check_s3_listing!(full_url)
+ bucket_url = Addressable::URI.parse(full_url)
+ bucket_url.path = bucket_url.path.delete_suffix(media_attachment.file.path(:original))
+ bucket_url.query = "max-keys=1&x-random=#{SecureRandom.hex(10)}"
+ Request.new(:get, bucket_url, allow_local: true).perform do |res|
+ if res.truncated_body&.include?('ListBucketResult')
+ @failure_message = :upload_check_privacy_error_object_storage
+ @failure_action = 'https://docs.joinmastodon.org/admin/optional/object-storage/#S3'
+ end
+ end
+ end
+
+ def media_attachment
+ @media_attachment ||= begin
+ attachment = Account.representative.media_attachments.first
+ if attachment.present?
+ attachment.touch # rubocop:disable Rails/SkipsModelValidations
+ attachment
+ else
+ create_test_attachment!
+ end
+ end
+ end
+
+ def create_test_attachment!
+ Tempfile.create(%w(test-upload .jpg), binmode: true) do |tmp_file|
+ tmp_file.write(
+ Base64.decode64(
+ '/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' \
+ 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' \
+ 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' \
+ 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAEAAgMBEQACEQEDEQH/x' \
+ 'ABKAAEAAAAAAAAAAAAAAAAAAAALEAEAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAAAAAAAAAA' \
+ 'AAAAAEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwA/8H//2Q=='
+ )
+ )
+ tmp_file.flush
+ Account.representative.media_attachments.create!(file: tmp_file)
+ end
+ end
+end
diff --git a/app/lib/admin/system_check/message.rb b/app/lib/admin/system_check/message.rb
index bfcad3bf3d..ad8d4b6073 100644
--- a/app/lib/admin/system_check/message.rb
+++ b/app/lib/admin/system_check/message.rb
@@ -1,11 +1,12 @@
# frozen_string_literal: true
class Admin::SystemCheck::Message
- attr_reader :key, :value, :action
+ attr_reader :key, :value, :action, :critical
- def initialize(key, value = nil, action = nil)
- @key = key
- @value = value
- @action = action
+ def initialize(key, value = nil, action = nil, critical = false)
+ @key = key
+ @value = value
+ @action = action
+ @critical = critical
end
end
diff --git a/app/views/admin/dashboard/index.html.haml b/app/views/admin/dashboard/index.html.haml
index e05215327f..ab7cb9de65 100644
--- a/app/views/admin/dashboard/index.html.haml
+++ b/app/views/admin/dashboard/index.html.haml
@@ -12,7 +12,7 @@
- unless @system_checks.empty?
.flash-message-stack
- @system_checks.each do |message|
- .flash-message.warning
+ .flash-message{ class: message.critical ? 'alert' : 'warning' }
= t("admin.system_checks.#{message.key}.message_html", value: message.value ? content_tag(:strong, message.value) : nil)
- if message.action
= link_to t("admin.system_checks.#{message.key}.action"), message.action
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 87231836ae..c6b1139561 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -812,6 +812,12 @@ en:
message_html: You haven't defined any server rules.
sidekiq_process_check:
message_html: No Sidekiq process running for the %{value} queue(s). Please review your Sidekiq configuration
+ upload_check_privacy_error:
+ action: Check here for more information
+ message_html: "Your web server is misconfigured. The privacy of your users is at risk."
+ upload_check_privacy_error_object_storage:
+ action: Check here for more information
+ message_html: "Your object storage is misconfigured. The privacy of your users is at risk."
tags:
review: Review status
updated_msg: Hashtag settings updated successfully
From 681dcd3fa35e886a21853ca829ff1be7f220e83a Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Thu, 16 Mar 2023 18:07:25 -0400
Subject: [PATCH 0283/1254] Ignore additional Style/OptionalBooleanParameter
(#24138)
---
.rubocop_todo.yml | 1 +
1 file changed, 1 insertion(+)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index 1df2a7b107..e41c10e1c3 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -2222,6 +2222,7 @@ Style/OptionalBooleanParameter:
Exclude:
- 'app/helpers/admin/account_moderation_notes_helper.rb'
- 'app/helpers/jsonld_helper.rb'
+ - 'app/lib/admin/system_check/message.rb'
- 'app/lib/request.rb'
- 'app/lib/webfinger.rb'
- 'app/services/block_domain_service.rb'
From 8f97ffe91e79c0418666f64b5830d3e74fcc83ba Mon Sep 17 00:00:00 2001
From: Christian Schmidt
Date: Thu, 16 Mar 2023 11:07:24 +0100
Subject: [PATCH 0284/1254] [Glitch] Replace `Status#translatable?` with
language matrix in separate endpoint
Port bd047acc356671727c112336bb237f979bba517d to glitch-soc
Signed-off-by: Claire
---
.../flavours/glitch/actions/server.js | 27 +++++++++++++++++++
.../glitch/components/status_content.jsx | 13 +++++++--
.../flavours/glitch/features/ui/index.jsx | 3 ++-
.../flavours/glitch/reducers/server.js | 9 +++++++
4 files changed, 49 insertions(+), 3 deletions(-)
diff --git a/app/javascript/flavours/glitch/actions/server.js b/app/javascript/flavours/glitch/actions/server.js
index 31d4aea100..091af0f0fe 100644
--- a/app/javascript/flavours/glitch/actions/server.js
+++ b/app/javascript/flavours/glitch/actions/server.js
@@ -5,6 +5,10 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS';
export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL';
+
export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST';
export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS';
export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL';
@@ -37,6 +41,29 @@ const fetchServerFail = error => ({
error,
});
+export const fetchServerTranslationLanguages = () => (dispatch, getState) => {
+ dispatch(fetchServerTranslationLanguagesRequest());
+
+ api(getState)
+ .get('/api/v1/instance/translation_languages').then(({ data }) => {
+ dispatch(fetchServerTranslationLanguagesSuccess(data));
+ }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err)));
+};
+
+const fetchServerTranslationLanguagesRequest = () => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+});
+
+const fetchServerTranslationLanguagesSuccess = translationLanguages => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ translationLanguages,
+});
+
+const fetchServerTranslationLanguagesFail = error => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
+ error,
+});
+
export const fetchExtendedDescription = () => (dispatch, getState) => {
dispatch(fetchExtendedDescriptionRequest());
diff --git a/app/javascript/flavours/glitch/components/status_content.jsx b/app/javascript/flavours/glitch/components/status_content.jsx
index f217320659..6e1cc275e6 100644
--- a/app/javascript/flavours/glitch/components/status_content.jsx
+++ b/app/javascript/flavours/glitch/components/status_content.jsx
@@ -3,6 +3,7 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import { FormattedMessage, injectIntl } from 'react-intl';
import Permalink from './permalink';
+import { connect } from 'react-redux';
import classnames from 'classnames';
import Icon from 'flavours/glitch/components/icon';
import { autoPlayGif, languages as preloadedLanguages } from 'flavours/glitch/initial_state';
@@ -99,7 +100,12 @@ class TranslateButton extends React.PureComponent {
}
-export default @injectIntl
+const mapStateToProps = state => ({
+ languages: state.getIn(['server', 'translationLanguages', 'items']),
+});
+
+export default @connect(mapStateToProps)
+@injectIntl
class StatusContent extends React.PureComponent {
static contextTypes = {
@@ -120,6 +126,7 @@ class StatusContent extends React.PureComponent {
onUpdate: PropTypes.func,
tagLinks: PropTypes.bool,
rewriteMentions: PropTypes.string,
+ languages: ImmutablePropTypes.map,
intl: PropTypes.object,
};
@@ -315,7 +322,9 @@ class StatusContent extends React.PureComponent {
} = this.props;
const hidden = this.props.onExpandedToggle ? !this.props.expanded : this.state.hidden;
- const renderTranslate = this.props.onTranslate && status.get('translatable');
+ const contentLocale = intl.locale.replace(/[_-].*/, '');
+ const targetLanguages = this.props.languages?.get(status.get('language') || 'und');
+ const renderTranslate = this.props.onTranslate && this.context.identity.signedIn && ['public', 'unlisted'].includes(status.get('visibility')) && status.get('contentHtml').length > 0 && targetLanguages?.includes(contentLocale);
const content = { __html: status.get('translation') ? status.getIn(['translation', 'content']) : status.get('contentHtml') };
const spoilerContent = { __html: status.get('spoilerHtml') };
diff --git a/app/javascript/flavours/glitch/features/ui/index.jsx b/app/javascript/flavours/glitch/features/ui/index.jsx
index 9255e346e4..488c1b919d 100644
--- a/app/javascript/flavours/glitch/features/ui/index.jsx
+++ b/app/javascript/flavours/glitch/features/ui/index.jsx
@@ -10,7 +10,7 @@ import { debounce } from 'lodash';
import { uploadCompose, resetCompose, changeComposeSpoilerness } from 'flavours/glitch/actions/compose';
import { expandHomeTimeline } from 'flavours/glitch/actions/timelines';
import { expandNotifications, notificationsSetVisibility } from 'flavours/glitch/actions/notifications';
-import { fetchServer } from 'flavours/glitch/actions/server';
+import { fetchServer, fetchServerTranslationLanguages } from 'flavours/glitch/actions/server';
import { clearHeight } from 'flavours/glitch/actions/height_cache';
import { changeLayout } from 'flavours/glitch/actions/app';
import { synchronouslySubmitMarkers, submitMarkers, fetchMarkers } from 'flavours/glitch/actions/markers';
@@ -419,6 +419,7 @@ class UI extends React.Component {
this.props.dispatch(fetchMarkers());
this.props.dispatch(expandHomeTimeline());
this.props.dispatch(expandNotifications());
+ this.props.dispatch(fetchServerTranslationLanguages());
setTimeout(() => this.props.dispatch(fetchServer()), 3000);
}
diff --git a/app/javascript/flavours/glitch/reducers/server.js b/app/javascript/flavours/glitch/reducers/server.js
index cc5798fb34..af0cfc7a90 100644
--- a/app/javascript/flavours/glitch/reducers/server.js
+++ b/app/javascript/flavours/glitch/reducers/server.js
@@ -2,6 +2,9 @@ import {
SERVER_FETCH_REQUEST,
SERVER_FETCH_SUCCESS,
SERVER_FETCH_FAIL,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
EXTENDED_DESCRIPTION_REQUEST,
EXTENDED_DESCRIPTION_SUCCESS,
EXTENDED_DESCRIPTION_FAIL,
@@ -35,6 +38,12 @@ export default function server(state = initialState, action) {
return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false);
case SERVER_FETCH_FAIL:
return state.setIn(['server', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST:
+ return state.setIn(['translationLanguages', 'isLoading'], true);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS:
+ return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL:
+ return state.setIn(['translationLanguages', 'isLoading'], false);
case EXTENDED_DESCRIPTION_REQUEST:
return state.setIn(['extendedDescription', 'isLoading'], true);
case EXTENDED_DESCRIPTION_SUCCESS:
From f53970abcefd44593341d561ac9d38c1660e5209 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 17 Mar 2023 09:43:16 +0100
Subject: [PATCH 0285/1254] Bump glob from 8.1.0 to 9.3.0 (#24110)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 40 ++++++++++++++++++++++++++++++++--------
2 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/package.json b/package.json
index 81e265ffab..d077c8aeab 100644
--- a/package.json
+++ b/package.json
@@ -62,7 +62,7 @@
"file-loader": "^6.2.0",
"font-awesome": "^4.7.0",
"fuzzysort": "^2.0.4",
- "glob": "^8.1.0",
+ "glob": "^9.3.0",
"history": "^4.10.1",
"http-link-header": "^1.1.0",
"immutable": "^4.3.0",
diff --git a/yarn.lock b/yarn.lock
index 4e647d44ce..befdd60288 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5310,16 +5310,15 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e"
- integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==
+glob@^9.3.0:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0"
+ integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==
dependencies:
fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^5.0.1"
- once "^1.3.0"
+ minimatch "^7.4.1"
+ minipass "^4.2.4"
+ path-scurry "^1.6.1"
global-modules@^1.0.0:
version "1.0.0"
@@ -7172,6 +7171,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lru-cache@^7.14.1:
+ version "7.18.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89"
+ integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==
+
lz-string@^1.4.4:
version "1.4.4"
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
@@ -7426,6 +7430,13 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
+minimatch@^7.4.1:
+ version "7.4.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f"
+ integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist-options@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619"
@@ -7468,6 +7479,11 @@ minipass@^3.0.0, minipass@^3.1.1:
dependencies:
yallist "^4.0.0"
+minipass@^4.0.2, minipass@^4.2.4:
+ version "4.2.5"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.5.tgz#9e0e5256f1e3513f8c34691dd68549e85b2c8ceb"
+ integrity sha512-+yQl7SX3bIT83Lhb4BVorMAHVuqsskxRdlmO9kTpyukp8vsm2Sn/fUOV9xlnG8/a5JsypJzap21lz/y3FBMJ8Q==
+
minizlib@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
@@ -8114,6 +8130,14 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+path-scurry@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.6.1.tgz#dab45f7bb1d3f45a0e271ab258999f4ab7e23132"
+ integrity sha512-OW+5s+7cw6253Q4E+8qQ/u1fVvcJQCJo/VFD8pje+dbJCF1n5ZRMV2AEHbGp+5Q7jxQIYJxkHopnj6nzdGeZLA==
+ dependencies:
+ lru-cache "^7.14.1"
+ minipass "^4.0.2"
+
path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
From be9a4912d8e61123dfe77c921a58cc5e8e22ae6d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 17 Mar 2023 10:08:10 +0100
Subject: [PATCH 0286/1254] Bump rimraf from 4.1.2 to 4.4.0 (#24048)
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
package.json | 2 +-
yarn.lock | 12 +++++++-----
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index d077c8aeab..53648a86f7 100644
--- a/package.json
+++ b/package.json
@@ -115,7 +115,7 @@
"regenerator-runtime": "^0.13.11",
"requestidlecallback": "^0.3.0",
"reselect": "^4.1.7",
- "rimraf": "^4.1.2",
+ "rimraf": "^4.4.0",
"sass": "^1.59.3",
"sass-loader": "^10.2.0",
"stacktrace-js": "^2.0.2",
diff --git a/yarn.lock b/yarn.lock
index befdd60288..c5e71d1334 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5310,7 +5310,7 @@ glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^9.3.0:
+glob@^9.2.0, glob@^9.3.0:
version "9.3.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-9.3.0.tgz#be6e50d172d025c3fcf87903ae25b36b787c0bb0"
integrity sha512-EAZejC7JvnQINayvB/7BJbpZpNOJ8Lrw2OZNEvQxe0vaLn1SuwMcfV7/MNaX8L/T0wmptBFI4YMtDvSBxYDc7w==
@@ -9455,10 +9455,12 @@ rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
-rimraf@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.1.2.tgz#20dfbc98083bdfaa28b01183162885ef213dbf7c"
- integrity sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==
+rimraf@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-4.4.0.tgz#c7a9f45bb2ec058d2e60ef9aca5167974313d605"
+ integrity sha512-X36S+qpCUR0HjXlkDe4NAOhS//aHH0Z+h8Ckf2auGJk3PTnx5rLmrHkwNdbVQuCSUhOyFrlRvFEllZOYE+yZGQ==
+ dependencies:
+ glob "^9.2.0"
ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.2"
From d75a1e5054bc51d00b2ded834887f0cac23537b4 Mon Sep 17 00:00:00 2001
From: CSDUMMI <31551856+CSDUMMI@users.noreply.github.com>
Date: Fri, 17 Mar 2023 10:09:01 +0100
Subject: [PATCH 0287/1254] Link to the Identity provider's account settings
from the account settings (#24100)
Co-authored-by: Claire
---
app/controllers/application_controller.rb | 10 ++++++++++
app/views/auth/registrations/edit.html.haml | 4 +++-
config/locales/en.yml | 1 +
3 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index cee2061b5d..fb01abb935 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -16,6 +16,8 @@ class ApplicationController < ActionController::Base
helper_method :current_theme
helper_method :single_user_mode?
helper_method :use_seamless_external_login?
+ helper_method :omniauth_only?
+ helper_method :sso_account_settings
helper_method :whitelist_mode?
rescue_from ActionController::ParameterMissing, Paperclip::AdapterRegistry::NoHandlerError, with: :bad_request
@@ -118,6 +120,14 @@ class ApplicationController < ActionController::Base
Devise.pam_authentication || Devise.ldap_authentication
end
+ def omniauth_only?
+ ENV['OMNIAUTH_ONLY'] == 'true'
+ end
+
+ def sso_account_settings
+ ENV.fetch('SSO_ACCOUNT_SETTINGS')
+ end
+
def current_account
return @current_account if defined?(@current_account)
diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml
index 60fd1635ef..27d3f331eb 100644
--- a/app/views/auth/registrations/edit.html.haml
+++ b/app/views/auth/registrations/edit.html.haml
@@ -8,7 +8,7 @@
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, class: 'auth_edit', novalidate: false }) do |f|
= render 'shared/error_messages', object: resource
- - if !use_seamless_external_login? || resource.encrypted_password.present?
+ - if (!use_seamless_external_login? || resource.encrypted_password.present?) && !omniauth_only?
.fields-row
.fields-row__column.fields-group.fields-row__column-6
= f.input :email, wrapper: :with_label, input_html: { 'aria-label': t('simple_form.labels.defaults.email') }, required: true, disabled: current_account.suspended?
@@ -23,6 +23,8 @@
.actions
= f.button :button, t('generic.save_changes'), type: :submit, class: 'button', disabled: current_account.suspended?
+ - elsif omniauth_only? && sso_account_settings.present?
+ = link_to t('users.go_to_sso_account_settings'), sso_account_settings
- else
%p.hint= t('users.seamless_external_login')
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c6b1139561..5924501008 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1691,6 +1691,7 @@ en:
title: Welcome aboard, %{name}!
users:
follow_limit_reached: You cannot follow more than %{limit} people
+ go_to_sso_account_settings: Go to your identity provider's account settings
invalid_otp_token: Invalid two-factor code
otp_lost_help_html: If you lost access to both, you may get in touch with %{email}
seamless_external_login: You are logged in via an external service, so password and e-mail settings are not available.
From b22b4bac03182aecdc09e2e6b896ff7ec67d7dd6 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Fri, 17 Mar 2023 05:13:28 -0400
Subject: [PATCH 0288/1254] Include config/ and update all rubcop deps (#23963)
---
.rubocop.yml | 2 +-
.rubocop_todo.yml | 404 +++++++++++++++++++++++++++++++-
Gemfile | 2 +
Gemfile.lock | 9 +-
app/helpers/languages_helper.rb | 4 +-
5 files changed, 412 insertions(+), 9 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
index 4f4c98dc93..9e9240636f 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -8,6 +8,7 @@ require:
- rubocop-rails
- rubocop-rspec
- rubocop-performance
+ - rubocop-capybara
AllCops:
TargetRubyVersion: 2.7
@@ -19,7 +20,6 @@ AllCops:
NewCops: enable
Exclude:
- db/schema.rb
- - 'config/**/*'
- 'bin/*'
- 'Rakefile'
- 'node_modules/**/*'
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index e41c10e1c3..a3536e2023 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -13,6 +13,81 @@ Bundler/OrderedGems:
Exclude:
- 'Gemfile'
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle, IndentationWidth.
+# SupportedStyles: with_first_argument, with_fixed_indentation
+Layout/ArgumentAlignment:
+ Exclude:
+ - 'config/initializers/cors.rb'
+ - 'config/initializers/session_store.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: empty_lines, no_empty_lines
+Layout/EmptyLinesAroundBlockBody:
+ Exclude:
+ - 'config/routes.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
+Layout/ExtraSpacing:
+ Exclude:
+ - 'config/initializers/omniauth.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
+# SupportedHashRocketStyles: key, separator, table
+# SupportedColonStyles: key, separator, table
+# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
+Layout/HashAlignment:
+ Exclude:
+ - 'config/boot.rb'
+ - 'config/environments/production.rb'
+ - 'config/initializers/rack_attack.rb'
+ - 'config/routes.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: Width, AllowedPatterns.
+Layout/IndentationWidth:
+ Exclude:
+ - 'config/initializers/ffmpeg.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowDoxygenCommentStyle, AllowGemfileRubyComment.
+Layout/LeadingCommentSpace:
+ Exclude:
+ - 'config/application.rb'
+ - 'config/initializers/omniauth.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces.
+# SupportedStyles: space, no_space
+# SupportedStylesForEmptyBraces: space, no_space
+Layout/SpaceBeforeBlockBraces:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: require_no_space, require_space
+Layout/SpaceInLambdaLiteral:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/initializers/content_security_policy.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: space, no_space
+Layout/SpaceInsideStringInterpolation:
+ Exclude:
+ - 'config/initializers/webauthn.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowInHeredoc.
+Layout/TrailingWhitespace:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
Lint/AmbiguousBlockAssociation:
Exclude:
@@ -26,6 +101,11 @@ Lint/AmbiguousBlockAssociation:
- 'spec/services/unsuspend_account_service_spec.rb'
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
+# This cop supports safe autocorrection (--autocorrect).
+Lint/AmbiguousOperatorPrecedence:
+ Exclude:
+ - 'config/initializers/rack_attack.rb'
+
# Configuration parameters: AllowedMethods.
# AllowedMethods: enums
Lint/ConstantDefinitionInBlock:
@@ -109,9 +189,24 @@ Lint/OrAssignmentToConstant:
Exclude:
- 'lib/sanitize_ext/sanitize_config.rb'
+# This cop supports safe autocorrection (--autocorrect).
+Lint/SendWithMixinArgument:
+ Exclude:
+ - 'config/application.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
+Lint/UnusedBlockArgument:
+ Exclude:
+ - 'config/initializers/content_security_policy.rb'
+ - 'config/initializers/doorkeeper.rb'
+ - 'config/initializers/paperclip.rb'
+ - 'config/initializers/simple_form.rb'
+
Lint/UselessAssignment:
Exclude:
- 'app/services/activitypub/process_status_update_service.rb'
+ - 'config/initializers/omniauth.rb'
- 'db/migrate/20190511134027_add_silenced_at_suspended_at_to_accounts.rb'
- 'db/post_migrate/20190511152737_remove_suspended_silenced_account_fields.rb'
- 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
@@ -141,7 +236,7 @@ Metrics/AbcSize:
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns, inherit_mode.
# AllowedMethods: refine
Metrics/BlockLength:
- Max: 433
+ Max: 544
# Configuration parameters: CountBlocks, Max.
Metrics/BlockNesting:
@@ -185,6 +280,13 @@ Naming/AccessorMethodName:
Exclude:
- 'app/controllers/auth/sessions_controller.rb'
+# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
+# CheckDefinitionPathHierarchyRoots: lib, spec, test, src
+# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
+Naming/FileName:
+ Exclude:
+ - 'config/locales/sr-Latn.rb'
+
# Configuration parameters: EnforcedStyleForLeadingUnderscores.
# SupportedStylesForLeadingUnderscores: disallowed, required, optional
Naming/MemoizedInstanceVariableName:
@@ -195,6 +297,7 @@ Naming/MemoizedInstanceVariableName:
- 'app/lib/activitypub/activity.rb'
- 'app/services/resolve_url_service.rb'
- 'app/services/search_service.rb'
+ - 'config/initializers/rack_attack.rb'
# Configuration parameters: EnforcedStyle, CheckMethodNames, CheckSymbols, AllowedIdentifiers, AllowedPatterns.
# SupportedStyles: snake_case, normalcase, non_integer
@@ -227,6 +330,7 @@ Performance/CollectionLiteralInLoop:
- 'app/services/fetch_resource_service.rb'
- 'app/services/suspend_account_service.rb'
- 'app/services/unsuspend_account_service.rb'
+ - 'config/deploy.rb'
- 'lib/mastodon/media_cli.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
@@ -279,6 +383,12 @@ Performance/RedundantEqualityComparisonBlock:
Exclude:
- 'spec/requests/link_headers_spec.rb'
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: MaxKeyValuePairs.
+Performance/RedundantMerge:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: SafeMultiline.
Performance/StartWith:
@@ -679,6 +789,29 @@ RSpec/LetSetup:
- 'spec/workers/scheduler/accounts_statuses_cleanup_scheduler_spec.rb'
- 'spec/workers/scheduler/user_cleanup_scheduler_spec.rb'
+# This cop supports safe autocorrection (--autocorrect).
+RSpec/MatchArray:
+ Exclude:
+ - 'spec/controllers/activitypub/followers_synchronizations_controller_spec.rb'
+ - 'spec/controllers/admin/export_domain_blocks_controller_spec.rb'
+ - 'spec/controllers/api/v1/accounts/follower_accounts_controller_spec.rb'
+ - 'spec/controllers/api/v1/accounts/following_accounts_controller_spec.rb'
+ - 'spec/controllers/api/v1/accounts/statuses_controller_spec.rb'
+ - 'spec/controllers/api/v1/bookmarks_controller_spec.rb'
+ - 'spec/controllers/api/v1/favourites_controller_spec.rb'
+ - 'spec/controllers/api/v1/reports_controller_spec.rb'
+ - 'spec/controllers/api/v1/statuses/favourited_by_accounts_controller_spec.rb'
+ - 'spec/controllers/api/v1/statuses/reblogged_by_accounts_controller_spec.rb'
+ - 'spec/models/account_filter_spec.rb'
+ - 'spec/models/account_spec.rb'
+ - 'spec/models/account_statuses_cleanup_policy_spec.rb'
+ - 'spec/models/custom_emoji_filter_spec.rb'
+ - 'spec/models/status_spec.rb'
+ - 'spec/models/user_spec.rb'
+ - 'spec/presenters/familiar_followers_presenter_spec.rb'
+ - 'spec/services/activitypub/fetch_featured_collection_service_spec.rb'
+ - 'spec/services/update_status_service_spec.rb'
+
RSpec/MessageChain:
Exclude:
- 'spec/controllers/api/v1/media_controller_spec.rb'
@@ -962,8 +1095,9 @@ RSpec/NoExpectationExample:
RSpec/PendingWithoutReason:
Exclude:
+ - 'spec/controllers/statuses_controller_spec.rb'
- 'spec/models/account_spec.rb'
- - 'spec/support/examples/lib/settings/scoped_settings.rb'
+ - 'spec/models/user_spec.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Strict, EnforcedStyle, AllowedExplicitMatchers.
@@ -1348,6 +1482,7 @@ Rails/CompactBlank:
- 'app/models/poll.rb'
- 'app/models/user.rb'
- 'app/services/import_service.rb'
+ - 'config/initializers/paperclip.rb'
# This cop supports safe autocorrection (--autocorrect).
Rails/ContentTag:
@@ -1369,16 +1504,24 @@ Rails/CreateTableWithTimestamps:
- 'db/migrate/20221006061337_create_preview_card_trends.rb'
# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: Severity.
Rails/DeprecatedActiveModelErrorsMethods:
Exclude:
- 'lib/mastodon/accounts_cli.rb'
# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: Severity.
Rails/DuplicateAssociation:
Exclude:
- 'app/serializers/activitypub/collection_serializer.rb'
- 'app/serializers/activitypub/note_serializer.rb'
+# Configuration parameters: Include.
+# Include: app/**/*.rb, config/**/*.rb, lib/**/*.rb
+Rails/Exit:
+ Exclude:
+ - 'config/boot.rb'
+
# Configuration parameters: EnforcedStyle.
# SupportedStyles: slashes, arguments
Rails/FilePath:
@@ -1386,6 +1529,7 @@ Rails/FilePath:
- 'app/lib/themes.rb'
- 'app/models/setting.rb'
- 'app/validators/reaction_validator.rb'
+ - 'config/environments/test.rb'
- 'db/migrate/20170716191202_add_hide_notifications_to_mute.rb'
- 'db/migrate/20170918125918_ids_to_bigints.rb'
- 'db/migrate/20171005171936_add_disabled_to_custom_emojis.rb'
@@ -1558,6 +1702,16 @@ Rails/Output:
Exclude:
- 'lib/mastodon/ip_blocks_cli.rb'
+Rails/OutputSafety:
+ Exclude:
+ - 'config/initializers/simple_form.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: NotNilAndNotEmpty, NotBlank, UnlessBlank.
+Rails/Present:
+ Exclude:
+ - 'config/initializers/content_security_policy.rb'
+
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: Include.
# Include: **/Rakefile, **/*.rake
@@ -1570,6 +1724,15 @@ Rails/RakeEnvironment:
- 'lib/tasks/repo.rake'
- 'lib/tasks/statistics.rake'
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: Include.
+# Include: spec/controllers/**/*.rb, spec/requests/**/*.rb, test/controllers/**/*.rb, test/integration/**/*.rb
+Rails/ResponseParsedBody:
+ Exclude:
+ - 'spec/controllers/follower_accounts_controller_spec.rb'
+ - 'spec/controllers/following_accounts_controller_spec.rb'
+ - 'spec/controllers/settings/two_factor_authentication/webauthn_credentials_controller_spec.rb'
+
# Configuration parameters: Include.
# Include: db/**/*.rb
Rails/ReversibleMigration:
@@ -1718,6 +1881,12 @@ Rails/WhereExists:
- 'spec/services/purge_domain_service_spec.rb'
- 'spec/services/unallow_domain_service_spec.rb'
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: AllowOnConstant, AllowOnSelfClass.
+Style/CaseEquality:
+ Exclude:
+ - 'config/initializers/trusted_proxies.rb'
+
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: MinBranchesCount.
Style/CaseLikeIf:
@@ -1732,6 +1901,10 @@ Style/ClassEqualityComparison:
- 'app/helpers/jsonld_helper.rb'
- 'app/serializers/activitypub/outbox_serializer.rb'
+Style/ClassVars:
+ Exclude:
+ - 'config/initializers/devise.rb'
+
Style/CombinableLoops:
Exclude:
- 'app/models/form/custom_emoji_batch.rb'
@@ -1749,6 +1922,16 @@ Style/FetchEnvVar:
- 'app/helpers/application_helper.rb'
- 'app/lib/redis_configuration.rb'
- 'app/lib/translation_service.rb'
+ - 'config/environments/development.rb'
+ - 'config/environments/production.rb'
+ - 'config/initializers/2_whitelist_mode.rb'
+ - 'config/initializers/blacklists.rb'
+ - 'config/initializers/cache_buster.rb'
+ - 'config/initializers/content_security_policy.rb'
+ - 'config/initializers/devise.rb'
+ - 'config/initializers/omniauth.rb'
+ - 'config/initializers/paperclip.rb'
+ - 'config/initializers/vapid.rb'
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/mastodon/redis_config.rb'
- 'lib/tasks/repo.rake'
@@ -1757,9 +1940,11 @@ Style/FetchEnvVar:
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: EnforcedStyle, MaxUnannotatedPlaceholdersAllowed, AllowedMethods, AllowedPatterns.
# SupportedStyles: annotated, template, unannotated
+# AllowedMethods: redirect
Style/FormatStringToken:
Exclude:
- 'app/models/privacy_policy.rb'
+ - 'config/initializers/devise.rb'
- 'lib/mastodon/maintenance_cli.rb'
- 'lib/paperclip/color_extractor.rb'
@@ -1771,6 +1956,52 @@ Style/FrozenStringLiteralComment:
- 'app/views/accounts/show.rss.ruby'
- 'app/views/tags/show.rss.ruby'
- 'app/views/well_known/host_meta/show.xml.ruby'
+ - 'config/application.rb'
+ - 'config/boot.rb'
+ - 'config/environment.rb'
+ - 'config/environments/development.rb'
+ - 'config/environments/production.rb'
+ - 'config/environments/test.rb'
+ - 'config/initializers/0_post_deployment_migrations.rb'
+ - 'config/initializers/active_model_serializers.rb'
+ - 'config/initializers/application_controller_renderer.rb'
+ - 'config/initializers/assets.rb'
+ - 'config/initializers/backtrace_silencers.rb'
+ - 'config/initializers/cache_logging.rb'
+ - 'config/initializers/chewy.rb'
+ - 'config/initializers/content_security_policy.rb'
+ - 'config/initializers/cookies_serializer.rb'
+ - 'config/initializers/cors.rb'
+ - 'config/initializers/devise.rb'
+ - 'config/initializers/doorkeeper.rb'
+ - 'config/initializers/fast_blank.rb'
+ - 'config/initializers/ffmpeg.rb'
+ - 'config/initializers/filter_parameter_logging.rb'
+ - 'config/initializers/http_client_proxy.rb'
+ - 'config/initializers/httplog.rb'
+ - 'config/initializers/inflections.rb'
+ - 'config/initializers/mail_delivery_job.rb'
+ - 'config/initializers/makara.rb'
+ - 'config/initializers/mime_types.rb'
+ - 'config/initializers/oj.rb'
+ - 'config/initializers/omniauth.rb'
+ - 'config/initializers/open_uri_redirection.rb'
+ - 'config/initializers/permissions_policy.rb'
+ - 'config/initializers/pghero.rb'
+ - 'config/initializers/preload_link_headers.rb'
+ - 'config/initializers/premailer_rails.rb'
+ - 'config/initializers/rack_attack_logging.rb'
+ - 'config/initializers/redis.rb'
+ - 'config/initializers/session_store.rb'
+ - 'config/initializers/simple_form.rb'
+ - 'config/initializers/stoplight.rb'
+ - 'config/initializers/trusted_proxies.rb'
+ - 'config/initializers/twitter_regex.rb'
+ - 'config/initializers/webauthn.rb'
+ - 'config/initializers/wrap_parameters.rb'
+ - 'config/locales/sr-Latn.rb'
+ - 'config/locales/sr.rb'
+ - 'config/puma.rb'
- 'db/migrate/20160220174730_create_accounts.rb'
- 'db/migrate/20160220211917_create_statuses.rb'
- 'db/migrate/20160221003140_create_users.rb'
@@ -2117,6 +2348,18 @@ Style/FrozenStringLiteralComment:
- 'lib/tasks/branding.rake'
- 'spec/fabricators_spec.rb'
+# This cop supports unsafe autocorrection (--autocorrect-all).
+Style/GlobalStdStream:
+ Exclude:
+ - 'config/boot.rb'
+ - 'config/environments/development.rb'
+ - 'config/environments/production.rb'
+
+# Configuration parameters: AllowedVariables.
+Style/GlobalVars:
+ Exclude:
+ - 'config/initializers/statsd.rb'
+
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: MinBodyLength, AllowConsecutiveConditionals.
Style/GuardClause:
@@ -2143,6 +2386,7 @@ Style/GuardClause:
- 'app/workers/redownload_header_worker.rb'
- 'app/workers/redownload_media_worker.rb'
- 'app/workers/remote_account_refresh_worker.rb'
+ - 'config/initializers/devise.rb'
- 'db/migrate/20170901141119_truncate_preview_cards.rb'
- 'db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb'
- 'lib/devise/two_factor_ldap_authenticatable.rb'
@@ -2187,14 +2431,48 @@ Style/HashTransformValues:
- 'app/serializers/rest/web_push_subscription_serializer.rb'
- 'app/services/import_service.rb'
+# This cop supports unsafe autocorrection (--autocorrect-all).
+Style/IdenticalConditionalBranches:
+ Exclude:
+ - 'config/initializers/content_security_policy.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+Style/IfUnlessModifier:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/initializers/devise.rb'
+ - 'config/initializers/ffmpeg.rb'
+
# This cop supports unsafe autocorrection (--autocorrect-all).
# Configuration parameters: InverseMethods, InverseBlocks.
Style/InverseMethods:
Exclude:
+ - 'app/controllers/concerns/signature_verification.rb'
+ - 'app/helpers/jsonld_helper.rb'
+ - 'app/lib/activitypub/activity/create.rb'
+ - 'app/lib/activitypub/activity/move.rb'
+ - 'app/lib/feed_manager.rb'
+ - 'app/lib/link_details_extractor.rb'
+ - 'app/models/concerns/attachmentable.rb'
+ - 'app/models/concerns/remotable.rb'
- 'app/models/custom_filter.rb'
+ - 'app/models/webhook.rb'
+ - 'app/services/activitypub/process_status_update_service.rb'
+ - 'app/services/fetch_link_card_service.rb'
+ - 'app/services/search_service.rb'
- 'app/services/update_account_service.rb'
+ - 'app/workers/web/push_notification_worker.rb'
+ - 'lib/paperclip/color_extractor.rb'
- 'spec/controllers/activitypub/replies_controller_spec.rb'
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: line_count_dependent, lambda, literal
+Style/Lambda:
+ Exclude:
+ - 'config/initializers/simple_form.rb'
+ - 'config/routes.rb'
+
# This cop supports unsafe autocorrection (--autocorrect-all).
Style/MapToHash:
Exclude:
@@ -2213,9 +2491,21 @@ Style/MutableConstant:
- 'app/services/delete_account_service.rb'
- 'app/services/fetch_link_card_service.rb'
- 'app/services/resolve_url_service.rb'
+ - 'config/initializers/twitter_regex.rb'
- 'lib/mastodon/snowflake.rb'
- 'spec/controllers/api/base_controller_spec.rb'
+# This cop supports safe autocorrection (--autocorrect).
+Style/NilLambda:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: MinDigits, Strict, AllowedNumbers, AllowedPatterns.
+Style/NumericLiterals:
+ Exclude:
+ - 'config/initializers/strong_migrations.rb'
+
# Configuration parameters: AllowedMethods.
# AllowedMethods: respond_to_missing?
Style/OptionalBooleanParameter:
@@ -2231,6 +2521,44 @@ Style/OptionalBooleanParameter:
- 'app/workers/unfollow_follow_worker.rb'
- 'lib/mastodon/redis_config.rb'
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: PreferredDelimiters.
+Style/PercentLiteralDelimiters:
+ Exclude:
+ - 'config/deploy.rb'
+ - 'config/initializers/doorkeeper.rb'
+
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: short, verbose
+Style/PreferredHashMethods:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+Style/RedundantBegin:
+ Exclude:
+ - 'config/initializers/simple_form.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+Style/RedundantConstantBase:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/initializers/sidekiq.rb'
+ - 'config/initializers/statsd.rb'
+ - 'config/locales/sr-Latn.rb'
+ - 'config/locales/sr.rb'
+
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: SafeForConstants.
+Style/RedundantFetchBlock:
+ Exclude:
+ - 'config/initializers/1_hosts.rb'
+ - 'config/initializers/chewy.rb'
+ - 'config/initializers/devise.rb'
+ - 'config/initializers/paperclip.rb'
+ - 'config/puma.rb'
+
# This cop supports safe autocorrection (--autocorrect).
Style/RedundantRegexpCharacterClass:
Exclude:
@@ -2239,6 +2567,7 @@ Style/RedundantRegexpCharacterClass:
- 'app/models/domain_allow.rb'
- 'app/models/domain_block.rb'
- 'app/services/fetch_oembed_service.rb'
+ - 'config/initializers/rack_attack.rb'
- 'lib/tasks/emojis.rake'
- 'lib/tasks/mastodon.rake'
@@ -2249,6 +2578,7 @@ Style/RedundantRegexpEscape:
- 'app/models/account.rb'
- 'app/models/tag.rb'
- 'app/services/fetch_link_card_service.rb'
+ - 'config/initializers/twitter_regex.rb'
- 'lib/paperclip/color_extractor.rb'
- 'lib/tasks/mastodon.rake'
@@ -2270,6 +2600,9 @@ Style/RegexpLiteral:
- 'app/services/backup_service.rb'
- 'app/services/fetch_oembed_service.rb'
- 'app/services/search_service.rb'
+ - 'config/initializers/rack_attack.rb'
+ - 'config/initializers/twitter_regex.rb'
+ - 'config/routes.rb'
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/mastodon.rake'
@@ -2317,6 +2650,73 @@ Style/SlicingWithRange:
- 'lib/mastodon/premailer_webpack_strategy.rb'
- 'lib/tasks/repo.rake'
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: require_parentheses, require_no_parentheses
+Style/StabbyLambdaParentheses:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/initializers/content_security_policy.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+Style/StderrPuts:
+ Exclude:
+ - 'config/boot.rb'
+
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: Mode.
+Style/StringConcatenation:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
+# SupportedStyles: single_quotes, double_quotes
+Style/StringLiterals:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/initializers/backtrace_silencers.rb'
+ - 'config/initializers/http_client_proxy.rb'
+ - 'config/initializers/rack_attack.rb'
+ - 'config/initializers/webauthn.rb'
+ - 'config/routes.rb'
+
+# This cop supports unsafe autocorrection (--autocorrect-all).
+# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
+# AllowedMethods: define_method, mail, respond_to
+Style/SymbolProc:
+ Exclude:
+ - 'config/initializers/omniauth.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyle, AllowSafeAssignment.
+# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
+Style/TernaryParentheses:
+ Exclude:
+ - 'config/environments/development.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyleForMultiline.
+# SupportedStylesForMultiline: comma, consistent_comma, no_comma
+Style/TrailingCommaInArguments:
+ Exclude:
+ - 'config/initializers/paperclip.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: EnforcedStyleForMultiline.
+# SupportedStylesForMultiline: comma, consistent_comma, no_comma
+Style/TrailingCommaInHashLiteral:
+ Exclude:
+ - 'config/environments/production.rb'
+ - 'config/environments/test.rb'
+
+# This cop supports safe autocorrection (--autocorrect).
+# Configuration parameters: WordRegex.
+# SupportedStyles: percent, brackets
+Style/WordArray:
+ EnforcedStyle: percent
+ MinSize: 6
+
# This cop supports safe autocorrection (--autocorrect).
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
# URISchemes: http, https
diff --git a/Gemfile b/Gemfile
index e5353a08c9..b5669582bf 100644
--- a/Gemfile
+++ b/Gemfile
@@ -105,6 +105,8 @@ group :development, :test do
gem 'i18n-tasks', '~> 1.0', require: false
gem 'rspec-rails', '~> 6.0'
gem 'rspec_chunked', '~> 0.6'
+
+ gem 'rubocop-capybara', require: false
gem 'rubocop-performance', require: false
gem 'rubocop-rails', require: false
gem 'rubocop-rspec', require: false
diff --git a/Gemfile.lock b/Gemfile.lock
index c7e1d17504..8b16b9308b 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -613,19 +613,19 @@ GEM
unicode-display_width (>= 2.4.0, < 3.0)
rubocop-ast (1.27.0)
parser (>= 3.2.1.0)
- rubocop-capybara (2.17.0)
+ rubocop-capybara (2.17.1)
rubocop (~> 1.41)
rubocop-performance (1.16.0)
rubocop (>= 1.7.0, < 2.0)
rubocop-ast (>= 0.4.0)
- rubocop-rails (2.17.4)
+ rubocop-rails (2.18.0)
activesupport (>= 4.2.0)
rack (>= 1.1)
rubocop (>= 1.33.0, < 2.0)
- rubocop-rspec (2.18.1)
+ rubocop-rspec (2.19.0)
rubocop (~> 1.33)
rubocop-capybara (~> 2.17)
- ruby-progressbar (1.11.0)
+ ruby-progressbar (1.13.0)
ruby-saml (1.13.0)
nokogiri (>= 1.10.5)
rexml
@@ -864,6 +864,7 @@ DEPENDENCIES
rspec_chunked (~> 0.6)
rspec_junit_formatter (~> 0.6)
rubocop
+ rubocop-capybara
rubocop-performance
rubocop-rails
rubocop-rspec
diff --git a/app/helpers/languages_helper.rb b/app/helpers/languages_helper.rb
index 5843947584..bbf0a97fc3 100644
--- a/app/helpers/languages_helper.rb
+++ b/app/helpers/languages_helper.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-# rubocop:disable Metrics/ModuleLength, Style/WordArray
+# rubocop:disable Metrics/ModuleLength
module LanguagesHelper
ISO_639_1 = {
@@ -275,4 +275,4 @@ module LanguagesHelper
end
end
-# rubocop:enable Metrics/ModuleLength, Style/WordArray
+# rubocop:enable Metrics/ModuleLength
From 160f38f03d821b026ea62b09e1c817eb311507e1 Mon Sep 17 00:00:00 2001
From: Jean byroot Boussier
Date: Fri, 17 Mar 2023 13:37:30 +0000
Subject: [PATCH 0289/1254] Workaround the ActiveRecord / Marshal serialization
bug on Ruby 3.2 (#24142)
Co-authored-by: Jean Boussier
---
app/controllers/concerns/cache_concern.rb | 163 +++++++++++++++++++++-
config/environments/test.rb | 6 +
2 files changed, 166 insertions(+), 3 deletions(-)
diff --git a/app/controllers/concerns/cache_concern.rb b/app/controllers/concerns/cache_concern.rb
index 05e431b19a..e606218acb 100644
--- a/app/controllers/concerns/cache_concern.rb
+++ b/app/controllers/concerns/cache_concern.rb
@@ -3,6 +3,158 @@
module CacheConcern
extend ActiveSupport::Concern
+ module ActiveRecordCoder
+ EMPTY_HASH = {}.freeze
+
+ class << self
+ def dump(record)
+ instances = InstanceTracker.new
+ serialized_associations = serialize_associations(record, instances)
+ serialized_records = instances.map { |r| serialize_record(r) }
+ [serialized_associations, *serialized_records]
+ end
+
+ def load(payload)
+ instances = InstanceTracker.new
+ serialized_associations, *serialized_records = payload
+ serialized_records.each { |attrs| instances.push(deserialize_record(*attrs)) }
+ deserialize_associations(serialized_associations, instances)
+ end
+
+ private
+
+ # Records without associations, or which have already been visited before,
+ # are serialized by their id alone.
+ #
+ # Records with associations are serialized as a two-element array including
+ # their id and the record's association cache.
+ #
+ def serialize_associations(record, instances)
+ return unless record
+
+ if (id = instances.lookup(record))
+ payload = id
+ else
+ payload = instances.push(record)
+
+ cached_associations = record.class.reflect_on_all_associations.select do |reflection|
+ record.association_cached?(reflection.name)
+ end
+
+ unless cached_associations.empty?
+ serialized_associations = cached_associations.map do |reflection|
+ association = record.association(reflection.name)
+
+ serialized_target = if reflection.collection?
+ association.target.map { |target_record| serialize_associations(target_record, instances) }
+ else
+ serialize_associations(association.target, instances)
+ end
+
+ [reflection.name, serialized_target]
+ end
+
+ payload = [payload, serialized_associations]
+ end
+ end
+
+ payload
+ end
+
+ def deserialize_associations(payload, instances)
+ return unless payload
+
+ id, associations = payload
+ record = instances.fetch(id)
+
+ associations&.each do |name, serialized_target|
+ begin
+ association = record.association(name)
+ rescue ActiveRecord::AssociationNotFoundError
+ raise AssociationMissingError, "undefined association: #{name}"
+ end
+
+ target = if association.reflection.collection?
+ serialized_target.map! { |serialized_record| deserialize_associations(serialized_record, instances) }
+ else
+ deserialize_associations(serialized_target, instances)
+ end
+
+ association.target = target
+ end
+
+ record
+ end
+
+ def serialize_record(record)
+ arguments = [record.class.name, attributes_for_database(record)]
+ arguments << true if record.new_record?
+ arguments
+ end
+
+ if Rails.gem_version >= Gem::Version.new('7.0')
+ def attributes_for_database(record)
+ attributes = record.attributes_for_database
+ attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr }
+ attributes
+ end
+ else
+ def attributes_for_database(record)
+ attributes = record.instance_variable_get(:@attributes).send(:attributes).transform_values(&:value_for_database)
+ attributes.transform_values! { |attr| attr.is_a?(::ActiveModel::Type::Binary::Data) ? attr.to_s : attr }
+ attributes
+ end
+ end
+
+ def deserialize_record(class_name, attributes_from_database, new_record = false) # rubocop:disable Style/OptionalBooleanParameter
+ begin
+ klass = Object.const_get(class_name)
+ rescue NameError
+ raise ClassMissingError, "undefined class: #{class_name}"
+ end
+
+ # Ideally we'd like to call `klass.instantiate`, however it doesn't allow to pass
+ # wether the record was persisted or not.
+ attributes = klass.attributes_builder.build_from_database(attributes_from_database, EMPTY_HASH)
+ klass.allocate.init_with_attributes(attributes, new_record)
+ end
+ end
+
+ class Error < StandardError
+ end
+
+ class ClassMissingError < Error
+ end
+
+ class AssociationMissingError < Error
+ end
+
+ class InstanceTracker
+ def initialize
+ @instances = []
+ @ids = {}.compare_by_identity
+ end
+
+ def map(&block)
+ @instances.map(&block)
+ end
+
+ def fetch(...)
+ @instances.fetch(...)
+ end
+
+ def push(instance)
+ id = @ids[instance] = @instances.size
+ @instances << instance
+ id
+ end
+
+ def lookup(instance)
+ @ids[instance]
+ end
+ end
+ end
+
def render_with_cache(**options)
raise ArgumentError, 'only JSON render calls are supported' unless options.key?(:json) || block_given?
@@ -34,8 +186,13 @@ module CacheConcern
raw = raw.cache_ids.to_a if raw.is_a?(ActiveRecord::Relation)
return [] if raw.empty?
- cached_keys_with_value = Rails.cache.read_multi(*raw).transform_keys(&:id)
- uncached_ids = raw.map(&:id) - cached_keys_with_value.keys
+ cached_keys_with_value = begin
+ Rails.cache.read_multi(*raw, namespace: 'v2').transform_keys(&:id).transform_values { |r| ActiveRecordCoder.load(r) }
+ rescue ActiveRecordCoder::Error
+ {} # The serialization format may have changed, let's pretend it's a cache miss.
+ end
+
+ uncached_ids = raw.map(&:id) - cached_keys_with_value.keys
klass.reload_stale_associations!(cached_keys_with_value.values) if klass.respond_to?(:reload_stale_associations!)
@@ -43,7 +200,7 @@ module CacheConcern
uncached = klass.where(id: uncached_ids).with_includes.index_by(&:id)
uncached.each_value do |item|
- Rails.cache.write(item, item)
+ Rails.cache.write(item, ActiveRecordCoder.dump(item), namespace: 'v2')
end
end
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 1328e155a3..493b041ebb 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -51,6 +51,12 @@ Rails.application.configure do
config.i18n.default_locale = :en
config.i18n.fallbacks = true
+
+ config.to_prepare do
+ # Force Status to always be SHAPE_TOO_COMPLEX
+ # Ref: https://github.com/mastodon/mastodon/issues/23644
+ 10.times { |i| Status.allocate.instance_variable_set(:"@ivar_#{i}", nil) }
+ end
end
Paperclip::Attachment.default_options[:path] = "#{Rails.root}/spec/test_files/:class/:id_partition/:style.:extension"
From 9758112c978df17d195ad31405061b2419ac3d17 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Mar 2023 03:09:39 -0400
Subject: [PATCH 0290/1254] Dedupe yarn.lock with yarn-deduplicate (#24119)
---
yarn.lock | 141 +++++++++---------------------------------------------
1 file changed, 23 insertions(+), 118 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index c5e71d1334..dfceca518e 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -31,12 +31,7 @@
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1":
- version "7.20.1"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30"
- integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==
-
-"@babel/compat-data@^7.20.5":
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
version "7.20.10"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
@@ -161,15 +156,7 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
- version "7.19.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
- integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
- dependencies:
- "@babel/template" "^7.18.10"
- "@babel/types" "^7.19.0"
-
-"@babel/helper-function-name@^7.21.0":
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
@@ -184,14 +171,7 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-member-expression-to-functions@^7.20.7":
- version "7.20.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05"
- integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==
- dependencies:
- "@babel/types" "^7.20.7"
-
-"@babel/helper-member-expression-to-functions@^7.21.0":
+"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
@@ -260,14 +240,7 @@
dependencies:
"@babel/types" "^7.20.2"
-"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
- version "7.18.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818"
- integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==
- dependencies:
- "@babel/types" "^7.18.9"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
+"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
version "7.20.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
@@ -1537,35 +1510,17 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
-"@jridgewell/resolve-uri@^3.0.3":
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
- integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
-
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-"@jridgewell/sourcemap-codec@1.4.14":
+"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.14"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-"@jridgewell/sourcemap-codec@^1.4.10":
- version "1.4.10"
- resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
- integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
-
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
- version "0.3.15"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
- integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
- dependencies:
- "@jridgewell/resolve-uri" "^3.0.3"
- "@jridgewell/sourcemap-codec" "^1.4.10"
-
-"@jridgewell/trace-mapping@^0.3.17":
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.17"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
@@ -1969,19 +1924,19 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@^17":
- version "17.0.44"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
- integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
+"@types/react@*", "@types/react@>=16.9.11":
+ version "18.0.26"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
+ integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
-"@types/react@>=16.9.11":
- version "18.0.26"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
- integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
+"@types/react@^17":
+ version "17.0.44"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
+ integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -3826,11 +3781,6 @@ cssstyle@^3.0.0:
dependencies:
rrweb-cssom "^0.6.0"
-csstype@^2.6.7:
- version "2.6.13"
- resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
- integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==
-
csstype@^3.0.2:
version "3.0.6"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
@@ -4154,15 +4104,7 @@ dom-helpers@^3.4.0:
dependencies:
"@babel/runtime" "^7.1.2"
-dom-helpers@^5.0.1:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821"
- integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==
- dependencies:
- "@babel/runtime" "^7.6.3"
- csstype "^2.6.7"
-
-dom-helpers@^5.2.0:
+dom-helpers@^5.0.1, dom-helpers@^5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
@@ -4184,12 +4126,7 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-domelementtype@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
- integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
-
-domelementtype@^2.2.0:
+domelementtype@^2.0.1, domelementtype@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
@@ -4353,7 +4290,7 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
+es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
version "1.20.4"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
@@ -5232,7 +5169,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
@@ -5829,16 +5766,7 @@ internal-ip@^4.3.0:
default-gateway "^4.2.0"
ipaddr.js "^1.9.0"
-internal-slot@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
- integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
- dependencies:
- get-intrinsic "^1.1.0"
- has "^1.0.3"
- side-channel "^1.0.4"
-
-internal-slot@^1.0.4:
+internal-slot@^1.0.3, internal-slot@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3"
integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==
@@ -5939,12 +5867,7 @@ is-accessor-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-arguments@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
- integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
-
-is-arguments@^1.1.1:
+is-arguments@^1.0.4, is-arguments@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
@@ -6018,12 +5941,7 @@ is-data-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-date-object@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
- integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
-
-is-date-object@^1.0.5:
+is-date-object@^1.0.1, is-date-object@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -7783,15 +7701,7 @@ object-inspect@^1.12.2, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
-object-is@^1.0.1:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81"
- integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.18.0-next.1"
-
-object-is@^1.1.5:
+object-is@^1.0.1, object-is@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
@@ -8176,12 +8086,7 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-pg-connection-string@^2.4.0:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10"
- integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==
-
-pg-connection-string@^2.5.0:
+pg-connection-string@^2.4.0, pg-connection-string@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
From f7b9b36fc3d54817831d35923fcd347f89c6c9e5 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Mar 2023 04:05:01 -0400
Subject: [PATCH 0291/1254] Revert "Dedupe yarn.lock with yarn-deduplicate"
(#24155)
---
yarn.lock | 141 +++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 118 insertions(+), 23 deletions(-)
diff --git a/yarn.lock b/yarn.lock
index dfceca518e..c5e71d1334 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -31,7 +31,12 @@
dependencies:
"@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1", "@babel/compat-data@^7.20.5":
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.1":
+ version "7.20.1"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30"
+ integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==
+
+"@babel/compat-data@^7.20.5":
version "7.20.10"
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec"
integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==
@@ -156,7 +161,15 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0", "@babel/helper-function-name@^7.21.0":
+"@babel/helper-function-name@^7.18.9", "@babel/helper-function-name@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
+ integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-function-name@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4"
integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==
@@ -171,7 +184,14 @@
dependencies:
"@babel/types" "^7.18.6"
-"@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0":
+"@babel/helper-member-expression-to-functions@^7.20.7":
+ version "7.20.7"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.20.7.tgz#a6f26e919582275a93c3aa6594756d71b0bb7f05"
+ integrity sha512-9J0CxJLq315fEdi4s7xK5TQaNYjZw+nDVpVqr1axNGKzdrdwYBD5b4uKv3n75aABG0rCCTK8Im8Ww7eYfMrZgw==
+ dependencies:
+ "@babel/types" "^7.20.7"
+
+"@babel/helper-member-expression-to-functions@^7.21.0":
version "7.21.0"
resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5"
integrity sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==
@@ -240,7 +260,14 @@
dependencies:
"@babel/types" "^7.20.2"
-"@babel/helper-skip-transparent-expression-wrappers@^7.18.9", "@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
+"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818"
+ integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.20.0":
version "7.20.0"
resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684"
integrity sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==
@@ -1510,17 +1537,35 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
+ integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
+
"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1":
version "1.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
-"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10":
+"@jridgewell/sourcemap-codec@1.4.14":
version "1.4.14"
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
-"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
+"@jridgewell/sourcemap-codec@^1.4.10":
+ version "1.4.10"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.10.tgz#baf57b4e2a690d4f38560171f91783656b7f8186"
+ integrity sha512-Ht8wIW5v165atIX1p+JvKR5ONzUyF4Ac8DZIQ5kZs9zrb6M8SJNXpx1zn04rn65VjBMygRoMXcyYwNK0fT7bEg==
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9":
+ version "0.3.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
+ integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/trace-mapping@^0.3.17":
version "0.3.17"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985"
integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==
@@ -1924,19 +1969,19 @@
dependencies:
"@types/react" "*"
-"@types/react@*", "@types/react@>=16.9.11":
- version "18.0.26"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
- integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
+"@types/react@*", "@types/react@^17":
+ version "17.0.44"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
+ integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
csstype "^3.0.2"
-"@types/react@^17":
- version "17.0.44"
- resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.44.tgz#c3714bd34dd551ab20b8015d9d0dbec812a51ec7"
- integrity sha512-Ye0nlw09GeMp2Suh8qoOv0odfgCoowfM/9MG6WeRD60Gq9wS90bdkdRtYbRkNhXOpG4H+YXGvj4wOWhAC0LJ1g==
+"@types/react@>=16.9.11":
+ version "18.0.26"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.26.tgz#8ad59fc01fef8eaf5c74f4ea392621749f0b7917"
+ integrity sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==
dependencies:
"@types/prop-types" "*"
"@types/scheduler" "*"
@@ -3781,6 +3826,11 @@ cssstyle@^3.0.0:
dependencies:
rrweb-cssom "^0.6.0"
+csstype@^2.6.7:
+ version "2.6.13"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz#a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f"
+ integrity sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==
+
csstype@^3.0.2:
version "3.0.6"
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.6.tgz#865d0b5833d7d8d40f4e5b8a6d76aea3de4725ef"
@@ -4104,7 +4154,15 @@ dom-helpers@^3.4.0:
dependencies:
"@babel/runtime" "^7.1.2"
-dom-helpers@^5.0.1, dom-helpers@^5.2.0:
+dom-helpers@^5.0.1:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.3.tgz#7233248eb3a2d1f74aafca31e52c5299cc8ce821"
+ integrity sha512-nZD1OtwfWGRBWlpANxacBEZrEuLa16o1nh7YopFWeoF68Zt8GGEmzHu6Xv4F3XaFIC+YXtTLrzgqKxFgLEe4jw==
+ dependencies:
+ "@babel/runtime" "^7.6.3"
+ csstype "^2.6.7"
+
+dom-helpers@^5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.1.tgz#d9400536b2bf8225ad98fe052e029451ac40e902"
integrity sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==
@@ -4126,7 +4184,12 @@ domain-browser@^1.1.1:
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-domelementtype@^2.0.1, domelementtype@^2.2.0:
+domelementtype@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
+ integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
+
+domelementtype@^2.2.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
@@ -4290,7 +4353,7 @@ error-stack-parser@^2.0.6:
dependencies:
stackframe "^1.1.1"
-es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
+es-abstract@^1.18.0-next.1, es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.4:
version "1.20.4"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861"
integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==
@@ -5169,7 +5232,7 @@ get-caller-file@^2.0.1, get-caller-file@^2.0.5:
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
-get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
+get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385"
integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==
@@ -5766,7 +5829,16 @@ internal-ip@^4.3.0:
default-gateway "^4.2.0"
ipaddr.js "^1.9.0"
-internal-slot@^1.0.3, internal-slot@^1.0.4:
+internal-slot@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c"
+ integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
+ dependencies:
+ get-intrinsic "^1.1.0"
+ has "^1.0.3"
+ side-channel "^1.0.4"
+
+internal-slot@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3"
integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==
@@ -5867,7 +5939,12 @@ is-accessor-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-arguments@^1.0.4, is-arguments@^1.1.1:
+is-arguments@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
+ integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
+
+is-arguments@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
@@ -5941,7 +6018,12 @@ is-data-descriptor@^1.0.0:
dependencies:
kind-of "^6.0.0"
-is-date-object@^1.0.1, is-date-object@^1.0.5:
+is-date-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+
+is-date-object@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f"
integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
@@ -7701,7 +7783,15 @@ object-inspect@^1.12.2, object-inspect@^1.9.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
-object-is@^1.0.1, object-is@^1.1.5:
+object-is@^1.0.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.3.tgz#2e3b9e65560137455ee3bd62aec4d90a2ea1cc81"
+ integrity sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+object-is@^1.1.5:
version "1.1.5"
resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
@@ -8086,7 +8176,12 @@ performance-now@^2.1.0:
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-pg-connection-string@^2.4.0, pg-connection-string@^2.5.0:
+pg-connection-string@^2.4.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz#c979922eb47832999a204da5dbe1ebf2341b6a10"
+ integrity sha512-3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ==
+
+pg-connection-string@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34"
integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==
From 34096bc6ea788fece267116ef190e0d218f77b18 Mon Sep 17 00:00:00 2001
From: Nick Schonning
Date: Sat, 18 Mar 2023 04:05:17 -0400
Subject: [PATCH 0292/1254] Upgrade redis-node to latest (#24154)
---
package.json | 2 +-
yarn.lock | 117 +++++++++++++++++++++++----------------------------
2 files changed, 53 insertions(+), 66 deletions(-)
diff --git a/package.json b/package.json
index 53648a86f7..ee3eab9985 100644
--- a/package.json
+++ b/package.json
@@ -108,7 +108,7 @@
"react-swipeable-views": "^0.14.0",
"react-textarea-autosize": "^8.4.0",
"react-toggle": "^4.1.3",
- "redis": "^4.0.6 <4.1.0",
+ "redis": "^4.6.5",
"redux": "^4.2.1",
"redux-immutable": "^4.0.0",
"redux-thunk": "^2.4.2",
diff --git a/yarn.lock b/yarn.lock
index c5e71d1334..cd5e4f1a76 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1580,41 +1580,6 @@
dependencies:
eslint-scope "5.1.1"
-"@node-redis/bloom@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@node-redis/bloom/-/bloom-1.0.1.tgz#144474a0b7dc4a4b91badea2cfa9538ce0a1854e"
- integrity sha512-mXEBvEIgF4tUzdIN89LiYsbi6//EdpFA7L8M+DHCvePXg+bfHWi+ct5VI6nHUFQE5+ohm/9wmgihCH3HSkeKsw==
-
-"@node-redis/client@1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@node-redis/client/-/client-1.0.5.tgz#ebac5e2bbf12214042a37621604973a954ede755"
- integrity sha512-ESZ3bd1f+od62h4MaBLKum+klVJfA4wAeLHcVQBkoXa1l0viFesOWnakLQqKg+UyrlJhZmXJWtu0Y9v7iTMrig==
- dependencies:
- cluster-key-slot "1.1.0"
- generic-pool "3.8.2"
- redis-parser "3.0.0"
- yallist "4.0.0"
-
-"@node-redis/graph@1.0.0":
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/@node-redis/graph/-/graph-1.0.0.tgz#baf8eaac4a400f86ea04d65ec3d65715fd7951ab"
- integrity sha512-mRSo8jEGC0cf+Rm7q8mWMKKKqkn6EAnA9IA2S3JvUv/gaWW/73vil7GLNwion2ihTptAm05I9LkepzfIXUKX5g==
-
-"@node-redis/json@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@node-redis/json/-/json-1.0.2.tgz#8ad2d0f026698dc1a4238cc3d1eb099a3bee5ab8"
- integrity sha512-qVRgn8WfG46QQ08CghSbY4VhHFgaTY71WjpwRBGEuqGPfWwfRcIf3OqSpR7Q/45X+v3xd8mvYjywqh0wqJ8T+g==
-
-"@node-redis/search@1.0.5":
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/@node-redis/search/-/search-1.0.5.tgz#96050007eb7c50a7e47080320b4f12aca8cf94c4"
- integrity sha512-MCOL8iCKq4v+3HgEQv8zGlSkZyXSXtERgrAJ4TSryIG/eLFy84b57KmNNa/V7M1Q2Wd2hgn2nPCGNcQtk1R1OQ==
-
-"@node-redis/time-series@1.0.2":
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/@node-redis/time-series/-/time-series-1.0.2.tgz#5dd3638374edd85ebe0aa6b0e87addc88fb9df69"
- integrity sha512-HGQ8YooJ8Mx7l28tD7XjtB3ImLEjlUxG1wC1PAjxu6hPJqjPshUZxAICzDqDjtIbhDTf48WXXUcx8TQJB1XTKA==
-
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
@@ -1658,6 +1623,40 @@
resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.7.tgz#b09dc5b2105dd267e8374c47e4490240451dc7f6"
integrity sha512-0e7WQ4LE/+LEfW2zfAw9ppsB6A8RmxbdAUPAF++UT80epY+7emuQDkKXmaK0a9lp6An50RvzezI0cIQjp1A58w==
+"@redis/bloom@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@redis/bloom/-/bloom-1.2.0.tgz#d3fd6d3c0af3ef92f26767b56414a370c7b63b71"
+ integrity sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==
+
+"@redis/client@1.5.6":
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/@redis/client/-/client-1.5.6.tgz#869cc65718d7d5493ef655a71dc40f3bc64a1b28"
+ integrity sha512-dFD1S6je+A47Lj22jN/upVU2fj4huR7S9APd7/ziUXsIXDL+11GPYti4Suv5y8FuXaN+0ZG4JF+y1houEJ7ToA==
+ dependencies:
+ cluster-key-slot "1.1.2"
+ generic-pool "3.9.0"
+ yallist "4.0.0"
+
+"@redis/graph@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@redis/graph/-/graph-1.1.0.tgz#cc2b82e5141a29ada2cce7d267a6b74baa6dd519"
+ integrity sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==
+
+"@redis/json@1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@redis/json/-/json-1.0.4.tgz#f372b5f93324e6ffb7f16aadcbcb4e5c3d39bda1"
+ integrity sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==
+
+"@redis/search@1.1.2":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@redis/search/-/search-1.1.2.tgz#6a8f66ba90812d39c2457420f859ce8fbd8f3838"
+ integrity sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA==
+
+"@redis/time-series@1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@redis/time-series/-/time-series-1.0.4.tgz#af85eb080f6934580e4d3b58046026b6c2b18717"
+ integrity sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==
+
"@restart/hooks@^0.4.7":
version "0.4.7"
resolved "https://registry.yarnpkg.com/@restart/hooks/-/hooks-0.4.7.tgz#d79ca6472c01ce04389fc73d4a79af1b5e33cd39"
@@ -3328,10 +3327,10 @@ clone-deep@^4.0.1:
kind-of "^6.0.2"
shallow-clone "^3.0.0"
-cluster-key-slot@1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
- integrity sha512-2Nii8p3RwAPiFwsnZvukotvow2rIHM+yQ6ZcBXGHdniadkYGZYiGmkHJIbZPIV9nfv7m/U1IPMVVcAhoWFeklw==
+cluster-key-slot@1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac"
+ integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==
co@^4.6.0:
version "4.6.0"
@@ -5217,10 +5216,10 @@ gauge@^5.0.0:
strip-ansi "^6.0.1"
wide-align "^1.1.5"
-generic-pool@3.8.2:
- version "3.8.2"
- resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.8.2.tgz#aab4f280adb522fdfbdc5e5b64d718d3683f04e9"
- integrity sha512-nGToKy6p3PAbYQ7p1UlWl6vSPwfwU6TMSWK7TTu+WUY4ZjyZQGniGGt2oNVvyNSpyZYSB43zMXVLcBm08MTMkg==
+generic-pool@3.9.0:
+ version "3.9.0"
+ resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.9.0.tgz#36f4a678e963f4fdb8707eab050823abc4e8f5e4"
+ integrity sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==
gensync@^1.0.0-beta.2:
version "1.0.0-beta.2"
@@ -9195,29 +9194,17 @@ redent@^3.0.0:
indent-string "^4.0.0"
strip-indent "^3.0.0"
-redis-errors@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad"
- integrity sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=
-
-redis-parser@3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4"
- integrity sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=
+redis@^4.6.5:
+ version "4.6.5"
+ resolved "https://registry.yarnpkg.com/redis/-/redis-4.6.5.tgz#f32fbde44429e96f562bb0c9b1db0143ab8cfa4f"
+ integrity sha512-O0OWA36gDQbswOdUuAhRL6mTZpHFN525HlgZgDaVNgCJIAZR3ya06NTESb0R+TUZ+BFaDpz6NnnVvoMx9meUFg==
dependencies:
- redis-errors "^1.0.0"
-
-"redis@^4.0.6 <4.1.0":
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/redis/-/redis-4.0.6.tgz#a2ded4d9f4f4bad148e54781051618fc684cd858"
- integrity sha512-IaPAxgF5dV0jx+A9l6yd6R9/PAChZIoAskDVRzUODeLDNhsMlq7OLLTmu0AwAr0xjrJ1bibW5xdpRwqIQ8Q0Xg==
- dependencies:
- "@node-redis/bloom" "1.0.1"
- "@node-redis/client" "1.0.5"
- "@node-redis/graph" "1.0.0"
- "@node-redis/json" "1.0.2"
- "@node-redis/search" "1.0.5"
- "@node-redis/time-series" "1.0.2"
+ "@redis/bloom" "1.2.0"
+ "@redis/client" "1.5.6"
+ "@redis/graph" "1.1.0"
+ "@redis/json" "1.0.4"
+ "@redis/search" "1.1.2"
+ "@redis/time-series" "1.0.4"
redux-immutable@^4.0.0:
version "4.0.0"
From 94cbd808b5b3e7999c7e77dc724b7e8c9dd2bdec Mon Sep 17 00:00:00 2001
From: Vyr Cossont
Date: Sat, 18 Mar 2023 23:47:54 -0700
Subject: [PATCH 0293/1254] Webhooks for local status.create, status.update,
account.update (#24133)
---
.rubocop_todo.yml | 2 +-
app/models/account.rb | 7 +++++++
app/models/status.rb | 11 +++++++++++
app/models/webhook.rb | 3 +++
app/workers/webhooks/delivery_worker.rb | 2 +-
5 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml
index a3536e2023..b2f8bf52cb 100644
--- a/.rubocop_todo.yml
+++ b/.rubocop_todo.yml
@@ -245,7 +245,7 @@ Metrics/BlockNesting:
# Configuration parameters: CountComments, CountAsOne.
Metrics/ClassLength:
- Max: 368
+ Max: 375
# Configuration parameters: AllowedMethods, AllowedPatterns.
Metrics/CyclomaticComplexity:
diff --git a/app/models/account.rb b/app/models/account.rb
index 1ff083e54a..c4df488789 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -122,6 +122,8 @@ class Account < ApplicationRecord
scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) }
scope :not_domain_blocked_by_account, ->(account) { where(arel_table[:domain].eq(nil).or(arel_table[:domain].not_in(account.excluded_from_timeline_domains))) }
+ after_update_commit :trigger_update_webhooks
+
delegate :email,
:unconfirmed_email,
:current_sign_in_at,
@@ -593,4 +595,9 @@ class Account < ApplicationRecord
CanonicalEmailBlock.where(reference_account: self).delete_all
end
+
+ # NOTE: the `account.created` webhook is triggered by the `User` model, not `Account`.
+ def trigger_update_webhooks
+ TriggerWebhookWorker.perform_async('account.updated', 'Account', id) if local?
+ end
end
diff --git a/app/models/status.rb b/app/models/status.rb
index e7ea191a80..2e32c3f16b 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -111,6 +111,9 @@ class Status < ApplicationRecord
where('NOT EXISTS (SELECT * FROM statuses_tags forbidden WHERE forbidden.status_id = statuses.id AND forbidden.tag_id IN (?))', tag_ids)
}
+ after_create_commit :trigger_create_webhooks
+ after_update_commit :trigger_update_webhooks
+
cache_associated :application,
:media_attachments,
:conversation,
@@ -535,4 +538,12 @@ class Status < ApplicationRecord
reblog&.decrement_count!(:reblogs_count) if reblog?
thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && distributable?
end
+
+ def trigger_create_webhooks
+ TriggerWebhookWorker.perform_async('status.created', 'Status', id) if local?
+ end
+
+ def trigger_update_webhooks
+ TriggerWebhookWorker.perform_async('status.updated', 'Status', id) if local?
+ end
end
diff --git a/app/models/webhook.rb b/app/models/webhook.rb
index 4aafb1257b..9a056a3862 100644
--- a/app/models/webhook.rb
+++ b/app/models/webhook.rb
@@ -17,7 +17,10 @@ class Webhook < ApplicationRecord
EVENTS = %w(
account.approved
account.created
+ account.updated
report.created
+ status.created
+ status.updated
).freeze
scope :enabled, -> { where(enabled: true) }
diff --git a/app/workers/webhooks/delivery_worker.rb b/app/workers/webhooks/delivery_worker.rb
index b1e345c5ef..f8ed669fb5 100644
--- a/app/workers/webhooks/delivery_worker.rb
+++ b/app/workers/webhooks/delivery_worker.rb
@@ -19,7 +19,7 @@ class Webhooks::DeliveryWorker
private
def perform_request
- request = Request.new(:post, @webhook.url, body: @body)
+ request = Request.new(:post, @webhook.url, body: @body, allow_local: true)
request.add_headers(
'Content-Type' => 'application/json',
From 02ac94490a67659c7cc669ead5b107b724db6e68 Mon Sep 17 00:00:00 2001
From: Plastikmensch
Date: Sun, 19 Mar 2023 17:26:02 +0100
Subject: [PATCH 0294/1254] Add getting-started-misc to route (#2141)
* Add getting-started-misc to web_app_paths
Signed-off-by: Plastikmensch
* Add signed in check to navigation entries
Enabling routing for getting-started-misc allows the column to be directly accessible, which showed every entry and threw unnecessary errors.
Also fixed the keys as these were literally "i++".
Signed-off-by: Plastikmensch
* Remove "Extended information" from getting-started-misc
I couldn't find any reference to this translation string, so I removed it too.
Signed-off-by: Plastikmensch
---------
Signed-off-by: Plastikmensch
---
.../features/getting_started_misc/index.jsx | 27 ++++++++++---------
.../flavours/glitch/locales/en.json | 1 -
config/routes.rb | 1 +
3 files changed, 15 insertions(+), 14 deletions(-)
diff --git a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
index 613b43df7f..f3779280f2 100644
--- a/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
+++ b/app/javascript/flavours/glitch/features/getting_started_misc/index.jsx
@@ -16,10 +16,8 @@ const messages = defineMessages({
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
domain_blocks: { id: 'navigation_bar.domain_blocks', defaultMessage: 'Hidden domains' },
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
- info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
show_me_around: { id: 'getting_started.onboarding', defaultMessage: 'Show me around' },
pins: { id: 'navigation_bar.pins', defaultMessage: 'Pinned posts' },
- info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
keyboard_shortcuts: { id: 'navigation_bar.keyboard_shortcuts', defaultMessage: 'Keyboard shortcuts' },
featured_users: { id: 'navigation_bar.featured_users', defaultMessage: 'Featured users' },
});
@@ -28,6 +26,11 @@ export default @connect()
@injectIntl
class gettingStartedMisc extends ImmutablePureComponent {
+ static contextTypes = {
+ router: PropTypes.object.isRequired,
+ identity: PropTypes.object,
+ };
+
static propTypes = {
intl: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired,
@@ -43,8 +46,7 @@ class gettingStartedMisc extends ImmutablePureComponent {
render () {
const { intl } = this.props;
-
- let i = 1;
+ const { signedIn } = this.context.identity;
return (
@@ -52,15 +54,14 @@ class gettingStartedMisc extends ImmutablePureComponent {